Skip Menu |

This queue is for tickets about the ZeroMQ CPAN distribution.

Report information
The Basics
Id: 64520
Status: resolved
Priority: 0/
Queue: ZeroMQ

People
Owner: Nobody in particular
Requestors: jason [...] ball.net
Cc:
AdminCc:

Bug Information
Severity: Important
Broken in: 0.04
Fixed in: (no value)



Subject: ZeroMQ-0.04 Fails to compile on RHEL 5, Perl 5.8.8.
I have tested the build with zeromq-2.1.0 and 2.0.10 and get the same errors. ======================================= [root@bjbld02 ZeroMQ-0.04]# make gcc -c "-I." "-I." -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -Wall -Wextra -Wdeclaration-after-statement -Wc++-compat -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -DVERSION=\"0.04\" -DXS_VERSION=\"0.04\" -o xs/perl_zeromq.o -fPIC "-I/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE" -DUSE_PPPORT xs/perl_zeromq.c In file included from xs/perl_zeromq.xs:2: xs/perl_zeromq.h:20: error: expected specifier-qualifier-list before 'tTHX' In file included from xs/perl_zeromq.xs:2: xs/perl_zeromq.h:47:30: warning: no newline at end of file xs/perl_zeromq.xs: In function 'PerlZMQ_Raw_Context_mg_free': xs/perl_zeromq.xs:62: error: 'PerlZMQ_Raw_Context' has no member named 'interp' xs/perl_zeromq.xs:67: error: 'PerlZMQ_Raw_Context' has no member named 'ctxt' xs/perl_zeromq.xs: In function 'XS_ZeroMQ__Raw_zmq_init': xs/perl_zeromq.xs:191: warning: value computed is not used xs/perl_zeromq.xs:192: error: 'PerlZMQ_Raw_Context' has no member named 'interp' xs/perl_zeromq.xs:193: error: 'PerlZMQ_Raw_Context' has no member named 'ctxt' xs/perl_zeromq.xs: In function 'XS_ZeroMQ__Raw_zmq_term': xs/perl_zeromq.xs:208: error: 'PerlZMQ_Raw_Context' has no member named 'ctxt' xs/perl_zeromq.xs: In function 'XS_ZeroMQ__Raw_zmq_socket': xs/perl_zeromq.xs:311: error: 'PerlZMQ_Raw_Context' has no member named 'ctxt' xs/perl_zeromq.xs: In function 'XS_ZeroMQ__Raw_zmq_poll': xs/perl_zeromq.xs:547: warning: comparison between signed and unsigned xs/perl_zeromq.xs:548: warning: comparison between signed and unsigned xs/perl_zeromq.xs:567: warning: passing argument 5 of 'Perl_hv_fetch' makes integer from pointer without a cast xs/perl_zeromq.xs:578: warning: passing argument 5 of 'Perl_hv_fetch' makes integer from pointer without a cast xs/perl_zeromq.xs:587: warning: passing argument 5 of 'Perl_hv_fetch' makes integer from pointer without a cast xs/perl_zeromq.xs:595: warning: passing argument 5 of 'Perl_hv_fetch' makes integer from pointer without a cast xs/perl_zeromq.c: In function 'boot_ZeroMQ': xs/perl_zeromq.c:1492: error: 'ZMQ_XSUB' undeclared (first use in this function) xs/perl_zeromq.c:1492: error: (Each undeclared identifier is reported only once xs/perl_zeromq.c:1492: error: for each function it appears in.) xs/perl_zeromq.c:1534: error: 'ZMQ_RECOVERY_IVL_MSEC' undeclared (first use in this function) xs/perl_zeromq.c:1548: error: 'ZMQ_XPUB' undeclared (first use in this function) make: *** [xs/perl_zeromq.o] Error 1 =================================
Argh, I know what the error is. Thanks for the report. I'll get around to fixing it soon-ish, hopefully within a day (cross my fingers) --d
Hi, can you check if this tarball works for you? https://github.com/lestrrat/ZeroMQ-Perl/tarball/master
From: jason [...] ball.net
On Thu Jan 06 00:57:26 2011, DMAKI wrote: Show quoted text
> Hi, can you check if this tarball works for you? > > https://github.com/lestrrat/ZeroMQ-Perl/tarball/master
A different error this time - not sure why on this one.. Writing README from lib/ZeroMQ.pm Can't locate object method "output_fh" via package "Pod::Text" at /usr/lib/perl5/vendor_perl/5.8.8/Module/Install/ReadmeFromPod.pm line 24. if I bypass that step in the Makefile.PL the build dies due to dependencies: /usr/bin/perl "-Iinc" /usr/lib/perl5/vendor_perl/5.8.8/ExtUtils/xsubpp -typemap /usr/lib/perl5/5.8.8/ExtUtils/typemap xs/perl_zeromq.xs > xs/perl_zeromq.xsc && mv xs/perl_zeromq.xsc xs/perl_zeromq.c Cannot open 'const-xs.inc': No such file or directory in perl_zeromq.xs, line 178 make: *** [xs/perl_zeromq.c] Error 1 Ive had this problem with all the releases since ZeroMQ_02, it's only today I'm trying to upgrade due to some nasty bugs... Cheers J.
Show quoted text
> Writing README from lib/ZeroMQ.pm > Can't locate object method "output_fh" via package "Pod::Text" at > /usr/lib/perl5/vendor_perl/5.8.8/Module/Install/ReadmeFromPod.pm line 24. > > > if I bypass that step in the Makefile.PL the build dies due to dependencies:
Okay, let's just remove that one bit. I don't need to include it in the dist. I'll go ahead and remove that from the Makefile.PL Show quoted text
> > /usr/bin/perl "-Iinc" /usr/lib/perl5/vendor_perl/5.8.8/ExtUtils/xsubpp > -typemap /usr/lib/perl5/5.8.8/ExtUtils/typemap xs/perl_zeromq.xs > > xs/perl_zeromq.xsc && mv xs/perl_zeromq.xsc xs/perl_zeromq.c > Cannot open 'const-xs.inc': No such file or directory in perl_zeromq.xs, > line 178 > make: *** [xs/perl_zeromq.c] Error 1 > > > Ive had this problem with all the releases since ZeroMQ_02, it's only > today I'm trying to upgrade due to some nasty bugs...
Now, this is presumably because you're failing to run tools/genfiles.pl can you simply run perl tools/genfiles.pl by hand and tell me what happens? I guess there's an error.
From: jason [...] ball.net
Show quoted text
> Now, this is presumably because you're failing to run > tools/genfiles.pl > > can you simply run perl tools/genfiles.pl by hand and tell me what > happens? I guess there's > an error.
=== $perl tools/genfiles.pl Could not open file /usr/local/include/zmq.h for reading: No such file or directory at tools/genfiles.pl line 79 === Changing genfiles.pl to specify /usr/include to match this install fixed that error. Easily patched. Rerunning the build failed with the same error as first reported: ===== In file included from xs/perl_zeromq.xs:2: xs/perl_zeromq.h:20: error: expected specifier-qualifier-list before 'tTHX' In file included from xs/perl_zeromq.xs:2: xs/perl_zeromq.h:47:30: warning: no newline at end of file xs/perl_zeromq.xs: In function 'PerlZMQ_Raw_Context_mg_free': ====== etc.
From: jason [...] ball.net
hold on --- some of the constants are from zeromq 2.1.0. I'll update and retry with that version tonight. Cheers J.
okay, so right now I'm hardcoding /usr/local/include/zmq.h because in my environment there's no way to auto-detect the location of your .h file. in the future you can do ZMQ_H=/usr/include/zmq.h perl Makefile.PL or you can give me a patch that uses pkg-config to auto-probe where zmq.h is :) Show quoted text
> In file included from xs/perl_zeromq.xs:2: > xs/perl_zeromq.h:20: error: expected specifier-qualifier-list before 'tTHX' > In file included from xs/perl_zeromq.xs:2:
that above tTHX looks odd. hmm. are you using threaded or non-threaded perl?
BTW, just to make sure, please run make clean, and THEN run perl tools/genfiles.pl. On 2011-1月-06 木 01:46:51, agronaught wrote: Show quoted text
> hold on --- some of the constants are from zeromq 2.1.0. I'll update > and retry with that version tonight. > > Cheers > J.
Show quoted text
> > In file included from xs/perl_zeromq.xs:2: > > xs/perl_zeromq.h:20: error: expected specifier-qualifier-list before
> 'tTHX'
> > In file included from xs/perl_zeromq.xs:2:
> > that above tTHX looks odd. hmm. > are you using threaded or non-threaded perl?
ah, tTHX doesn't exist in perl-5.8.8. I'm going to have to think of a better way to do this.
From: jason [...] ball.net
Show quoted text
> > ah, tTHX doesn't exist in perl-5.8.8. I'm going to have to think of a > better way to do this. >
I'm not even sure what tTHX is.. some reading to do... The build fails against 0MQ 2.1.0 and 2.0.10. There are some errors that show this version of the perl module will only work against 2.1.0 and above - not the end of the world there ;) ==== In file included from xs/perl_zeromq.xs:2: xs/perl_zeromq.h:20: error: expected specifier-qualifier-list before 'tTHX' In file included from xs/perl_zeromq.xs:2: xs/perl_zeromq.h:47:30: warning: no newline at end of file xs/perl_zeromq.xs: In function 'PerlZMQ_Raw_Context_mg_free': xs/perl_zeromq.xs:62: error: 'PerlZMQ_Raw_Context' has no member named 'interp' xs/perl_zeromq.xs:67: error: 'PerlZMQ_Raw_Context' has no member named 'ctxt' xs/perl_zeromq.xs: In function 'XS_ZeroMQ__Raw_zmq_init': xs/perl_zeromq.xs:191: warning: value computed is not used xs/perl_zeromq.xs:192: error: 'PerlZMQ_Raw_Context' has no member named 'interp' xs/perl_zeromq.xs:193: error: 'PerlZMQ_Raw_Context' has no member named 'ctxt' xs/perl_zeromq.xs: In function 'XS_ZeroMQ__Raw_zmq_term': xs/perl_zeromq.xs:208: error: 'PerlZMQ_Raw_Context' has no member named 'ctxt' xs/perl_zeromq.xs: In function 'XS_ZeroMQ__Raw_zmq_socket': xs/perl_zeromq.xs:311: error: 'PerlZMQ_Raw_Context' has no member named 'ctxt' xs/perl_zeromq.xs: In function 'XS_ZeroMQ__Raw_zmq_poll': xs/perl_zeromq.xs:547: warning: comparison between signed and unsigned xs/perl_zeromq.xs:548: warning: comparison between signed and unsigned xs/perl_zeromq.xs:567: warning: passing argument 5 of 'Perl_hv_fetch' makes integer from pointer without a cast xs/perl_zeromq.xs:578: warning: passing argument 5 of 'Perl_hv_fetch' makes integer from pointer without a cast xs/perl_zeromq.xs:587: warning: passing argument 5 of 'Perl_hv_fetch' makes integer from pointer without a cast xs/perl_zeromq.xs:595: warning: passing argument 5 of 'Perl_hv_fetch' makes integer from pointer without a cast make: *** [xs/perl_zeromq.o] Error 1 ===
From: jason [...] ball.net
which version of perl are you using ?
On 2011-1月-06 木 03:23:09, agronaught wrote: Show quoted text
> which version of perl are you using ?
my perl is: $ perl -v This is perl 5, version 12, subversion 2 (v5.12.2) built for darwin-thread-multi-2level but I also switch back and forth between 5.12.2 threaded or not, and 5.10.1 threaded or not. I'm just ran a very rudimentary test with perl-5.8.9 threaded. Can you checkout the tarball again? If it still doesn't work, please show me your perl -V. If you can attach the entire build process to this ticket, that would help too.
From: jason [...] ball.net
On Thu Jan 06 03:23:09 2011, agronaught wrote: Show quoted text
> which version of perl are you using ?
I can confirm the build works with perl-5.12.2. I'll proceed with this for now. J.
From: jason [...] ball.net
Show quoted text
> $ perl -v > This is perl 5, version 12, subversion 2 (v5.12.2) built for darwin- > thread-multi-2level > > but I also switch back and forth between 5.12.2 threaded or not, and > 5.10.1 threaded or not. > > > I'm just ran a very rudimentary test with perl-5.8.9 threaded. > Can you checkout the tarball again?
The module compiled that time and passed the tests with the stock perl on RHEL5 and Centos 5. I'll upgrade my environment (large scale prototype in progress) and see if I get the message corruptions I was seeing on earlier versions of the API -- no point raising a bug before testing the new version ;) === [root@bjbld02 lestrrat-ZeroMQ-Perl-95ea6ea]# make test PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "\$ENV{q{LC_ALL}} = q{C}; test_harness(0, 'inc', 'blib/lib', 'blib/arch'); " t/*.t xt/*.t t/000_compile.t .......... 1/? # # This is ZeroMQ.pm version 0.04 # Linked against zeromq2 2.1.0 t/000_compile.t .......... ok t/001_context.t .......... ok t/002_socket.t ........... ok t/003_message.t .......... ok t/004_version.t .......... ok t/005_poll.t ............. ok t/006_anyevent.t ......... ok t/100_basic.t ............ ok t/101_threads.t .......... ok t/103_json.t ............. ok t/104_ipc.t .............. ok xt/100_eg_hello_world.t .. ok xt/101_eg_pubsub.t ....... ok xt/102_eg_threaded.t ..... skipped: # Current version of Test::SharedFork does not supports ithreads. at /usr/lib/perl5/site_perl/5.8.8/Test/SharedFork.pm line 50. xt/103_eg_xreqxrep.t ..... ok xt/999_leak.t ............ skipped: Set TEST_LEAK to run leak tests xt/999_pod-coverage.t .... ok xt/999_pod.t ............. ok All tests successful. Files=18, Tests=73, 6 wallclock secs ( 0.09 usr 0.18 sys + 1.45 cusr 0.52 csys = 2.24 CPU) Result: PASS Thanks for the work :) Let me know how I can help. Cheers J.
Show quoted text
> The module compiled that time and passed the tests with the stock perl > on RHEL5 and Centos > 5.
Cool, I believe RHEL was 5.8.8-threaded, so tTHX problem solved :) I'll close this ticket for now, and release 0.05 tonight.