Ah, I see about BOOST_LDFLAGS. I just checked the thrift source that we run off and see that I fixed that bug in my 591 patch. That's why make check works for me.
You didn't write a Jira bug about that? (I'm getting ready to write 2 of them.) On Aug 13, 2010, at 5:24 PM, Michael Lum wrote: > Sure, I could submit a configure.ac patch to do the perl checks. > > The make check fails because UnitTests_LDADD in the test/Makefile.am doesn't > include $(BOOST_LDFLAGS), so if boost is in a non-standard location (for > example MacPorts puts it in /opt/local), the Makefile can't find it at link > time. I sent a patch for that yesterday to the list, but can attach it to a > JIRA ticket if need be. > > On 8/13/2010 5:12 PM, Rush Manbert wrote: >> Well, if it's a runtime requirement, then the configure should check for it, >> but only if --with-perl=yes, and fail if it's not installed. Then if I don't >> want to install it I can just configure with --with-perl=no. >> >> HOWEVER, I started fresh and configured like this: >> >> ./configure --prefix=/Users/rmanbert/Kits/thrift/thrift-0.4.0_Install >> --with-boos >> t=/Volumes/DevSsd/devSsd/dev/client/thirdPartyLibs/installedMac/individual/boost >> --with-zlib=/Volumes/DevSsd/devSsd/dev >> /client/thirdPartyLibs/installedMac/individual/zlib --enable-gen-perl=no >> --with-perl=no >> >> The configure succeeded, but the make fails like this: >> ../compiler/cpp/thrift --gen cpp:dense ThriftTest.thrift >> [FAILURE:/Users/rmanbert/Kits/thrift/thrift-0.4.0/test/ThriftTest.thrift:27] >> No generator named 'perl' could be found! >> make[3]: *** [gen-cpp/ThriftTest_types.cpp] Error 1 >> make[2]: *** [all-recursive] Error 1 >> make[1]: *** [all-recursive] Error 1 >> make: *** [all] Error 2 >> >> which seems like a bug of a different stripe, and it makes me wonder whether >> any of the --enable-lang-gen options really work if you set them to no. >> >> So I started fresh again and configured like this: >> ./configure --prefix=/Users/rmanbert/Kits/thrift/thrift-0.4.0_Install >> --with-boost=/Volumes/DevSsd/devSsd/dev/client/thirdPartyLibs/installedMac/individual/boost >> --with-zlib=/Volumes/DevSsd/devSsd/dev/client/third >> PartyLibs/installedMac/individual/zlib --with-perl=no >> >> Configure succeeds. >> >> Make succeeds. >> >> Make check fails with this: >> libtool: link: g++ -g -O2 -o .libs/UnitTests UnitTestMain.o >> TMemoryBufferTest.o TBufferBaseTest.o -Wl,-bind_at_load >> ./.libs/libtestgencpp.a >> /Users/rmanbert/Kits/thrift/thrift-0.4.0/lib/cpp/.libs/libthrift.dylib >> -lboost_unit_test_framework -lpthread >> ld: library not found for -lboost_unit_test_framework >> collect2: ld returned 1 exit status >> make[3]: *** [UnitTests] Error 1 >> make[2]: *** [check-am] Error 2 >> make[1]: *** [check-recursive] Error 1 >> make: *** [check-recursive] Error 1 >> >> because all of my boost libraries have threading, debug, etc. encoded into >> their names. So on my system the boost unit test library is named >> "libboost_unit_test_framework-mt.a" or "libboost_unit_test_framework-mt-d.a". >> >> The thrift libraries themselves got built, so it was okay that the libraries >> they need use this naming convention. Why does a link associated with the >> tests fail? >> >> So now I'm sort of -2. ;-) >> >> This is because: >> 1) The perl librarues require Bit::Vector to be installed, but it's not >> checked for at configure time. I think it should fail unless you have >> specified --with-perl=no. >> (If we all agree on this, I'll file the Jira. Maybe you can submit the >> patrch?) >> 2) The C++ library tests have a hardcoded notion of what the name of the >> boost unit test library is, which doesn't match the boost library naming >> conventions. (available here: >> http://www.boost.org/doc/libs/1_43_0/more/getting_started/unix-variants.html#library-naming >> ) >> IIRC, this used to work, because I run the make check as part of our >> standard build of the libraries, but we're still running off of pre-0.1 code. >> >> There also seems to be a problem with specifying --enable-lang-gen=no to >> configure, but I'll let that one go. >> >> - Rush >> >> On Aug 13, 2010, at 4:11 PM, Michael Lum wrote: >> >>> It looks like Bit::Vector is referenced in Thrift::BinaryProtocol as well >>> as the Makefile.PL, so it appears to be a runtime dependency, not just a >>> test one. >>> >>> The other way to do this is to not build the Thrift perl libraries if the >>> module detection fails, by tweaking the WITH_PERL variable. >>> >>> On 8/13/2010 3:29 PM, Rush Manbert wrote: >>>> If I read it correctly, the effect of this patch is that the configure >>>> will fail on stock OSX 10.6.4. (That's what I have - no special Perl >>>> modules installed) Is that correct? >>>> >>>> I don't use Perl any more, so don't know what you get in a standard Perl >>>> installation. If Bit::Vector isn't included, then I would tend to classify >>>> this more as a bug in the tests and I wouldn't make the config fail if >>>> it's not there. But possibly this is specific to OSX? >>>> >>>> - Rush >>>> >>>> On Aug 13, 2010, at 3:00 PM, Michael Lum wrote: >>>> >>>>> It's complaining about Bit::Vector not being there. I'm not sure if its >>>>> required by the Thrift library itself, or just the tests, but one way to >>>>> address it would be this patch, which checks for Bit::Vector at configure >>>>> time. >>>>> >>>>> --- configure.ac.orig 2010-08-13 14:31:33.000000000 -0700 >>>>> +++ configure.ac 2010-08-13 14:58:56.000000000 -0700 >>>>> @@ -118,6 +118,9 @@ >>>>> AX_THRIFT_LIB(perl, [Perl], yes) >>>>> if test "$with_perl" = "yes"; then >>>>> AC_PATH_PROG([PERL], [perl]) >>>>> + if test -n "`$PERL -MBit::Vector -e exit 2>&1`"; then >>>>> + AC_MSG_ERROR([Perl module Bit::Vector not installed]) >>>>> + fi >>>>> fi >>>>> AM_CONDITIONAL(WITH_PERL, [test -n "$PERL"]) >>>>> >>>>> >>>>> >>>>> On 8/13/2010 1:34 PM, Rush Manbert wrote: >>>>>> On Aug 12, 2010, at 9:40 PM, Bryan Duxbury wrote: >>>>>> >>>>>>> Hi all, >>>>>>> >>>>>>> As discussed, in all the time it took for us to finally release Thrift >>>>>>> 0.3, >>>>>>> we've accumulated enough changes for Thrift 0.4! >>>>>>> >>>>>>> I propose we accept >>>>>>> http://people.apache.org/~bryanduxbury/thrift-0.4.0-rc0.tar.gz<http://people.apache.org/%7Ebryanduxbury/thrift-0.4.0-rc0.tar.gz>as >>>>>>> the official Thrift 0.4.0 release. >>>>>>> >>>>>> <snip> >>>>>> >>>>>> I used the tarball on Mac OS X 10.6.4, Xcode 3.2.2, boost 1.42, zlib >>>>>> 1.2.3. >>>>>> >>>>>> configures fine. >>>>>> >>>>>> make completes successfully. >>>>>> >>>>>> make check errors like so: >>>>>> Making check in perl >>>>>> Making check in test >>>>>> make check-local >>>>>> ../../../compiler/cpp/thrift --gen perl ../../../test/ThriftTest.thrift >>>>>> make -f Makefile-perl.mk >>>>>> find blib -name 'Makefile*' -exec rm -f {} \; >>>>>> make check-local >>>>>> /opt/local/bin/perl -Iblib/lib >>>>>> -I/Users/rmanbert/Kits/thrift/thrift-0.4.0/lib/perl -I./test/gen-perl \ >>>>>> /Users/rmanbert/Kits/thrift/thrift-0.4.0/lib/perl/test.pl >>>>>> /Users/rmanbert/Kits/thrift/thrift-0.4.0/lib/perl/test/*.t >>>>>> /Users/rmanbert/Kits/thrift/thrift-0.4.0/lib/perl/test/memory_buffer....Can't >>>>>> locate Bit/Vector.pm in @INC (@INC contains: blib/lib >>>>>> /Users/rmanbert/Kits/thrift/thrift-0.4.0/lib/perl ./test/gen-perl >>>>>> /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level >>>>>> /opt/local/lib/perl5/site_perl/5.8.9 /opt/local/lib/perl5/site_perl >>>>>> /opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level >>>>>> /opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level >>>>>> /opt/local/lib/perl5/vendor_perl/5.8.9 >>>>>> /opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level >>>>>> /opt/local/lib/perl5/vendor_perl/5.8.9 /opt/local/lib/perl5/vendor_perl >>>>>> /opt/local/lib/perl5/5.8.9/darwin-2level >>>>>> /opt/local/lib/perl5/5.8.9/darwin-2level /opt/local/lib/perl5/5.8.9 . >>>>>> /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level >>>>>> /opt/local/lib/perl5/site_perl/5.8.9 /opt/local/lib/perl5/site_perl >>>>>> /opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level >>>>>> /opt/local/lib/perl5/vendor_perl/5.8.9 /opt/local/lib/perl5/vendor_perl >>>>>> /opt/local/lib/perl5/5.8.9/darwin-2level / > op >>> t/ >>>>> local/lib/perl5/5.8.9 .) at blib/lib/Thrift/BinaryProtocol.pm line 31. >>>>>> BEGIN failed--compilation aborted at blib/lib/Thrift/BinaryProtocol.pm >>>>>> line 31. >>>>>> Compilation failed in require at >>>>>> /Users/rmanbert/Kits/thrift/thrift-0.4.0/lib/perl/test/memory_buffer.t >>>>>> line 27. >>>>>> BEGIN failed--compilation aborted at >>>>>> /Users/rmanbert/Kits/thrift/thrift-0.4.0/lib/perl/test/memory_buffer.t >>>>>> line 27. >>>>>> # Looks like your test died before it could output anything. >>>>>> /Users/rmanbert/Kits/thrift/thrift-0.4.0/lib/perl/test/memory_buffer....dubious >>>>>> Test returned status 255 (wstat 65280, 0xff00) >>>>>> DIED. FAILED tests 1-6 >>>>>> Failed 6/6 tests, 0.00% okay >>>>>> /Users/rmanbert/Kits/thrift/thrift-0.4.0/lib/perl/test/processor........Can't >>>>>> locate Bit/Vector.pm in @INC (@INC contains: blib/lib >>>>>> /Users/rmanbert/Kits/thrift/thrift-0.4.0/lib/perl ./test/gen-perl >>>>>> /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level >>>>>> /opt/local/lib/perl5/site_perl/5.8.9 /opt/local/lib/perl5/site_perl >>>>>> /opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level >>>>>> /opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level >>>>>> /opt/local/lib/perl5/vendor_perl/5.8.9 >>>>>> /opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level >>>>>> /opt/local/lib/perl5/vendor_perl/5.8.9 /opt/local/lib/perl5/vendor_perl >>>>>> /opt/local/lib/perl5/5.8.9/darwin-2level >>>>>> /opt/local/lib/perl5/5.8.9/darwin-2level /opt/local/lib/perl5/5.8.9 . >>>>>> /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level >>>>>> /opt/local/lib/perl5/site_perl/5.8.9 /opt/local/lib/perl5/site_perl >>>>>> /opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level >>>>>> /opt/local/lib/perl5/vendor_perl/5.8.9 /opt/local/lib/perl5/vendor_perl >>>>>> /opt/local/lib/perl5/5.8.9/darwin-2level / > op >>> t/ >>>>> local/lib/perl5/5.8.9 .) at blib/lib/Thrift/BinaryProtocol.pm line 31. >>>>>> BEGIN failed--compilation aborted at blib/lib/Thrift/BinaryProtocol.pm >>>>>> line 31. >>>>>> Compilation failed in require at >>>>>> /Users/rmanbert/Kits/thrift/thrift-0.4.0/lib/perl/test/processor.t line >>>>>> 26. >>>>>> BEGIN failed--compilation aborted at >>>>>> /Users/rmanbert/Kits/thrift/thrift-0.4.0/lib/perl/test/processor.t line >>>>>> 26. >>>>>> # Looks like your test died before it could output anything. >>>>>> /Users/rmanbert/Kits/thrift/thrift-0.4.0/lib/perl/test/processor........dubious >>>>>> Test returned status 255 (wstat 65280, 0xff00) >>>>>> DIED. FAILED tests 1-2 >>>>>> Failed 2/2 tests, 0.00% okay >>>>>> Failed Test Stat Wstat Total Fail List of >>>>>> Failed >>>>>> ------------------------------------------------------------------------------- >>>>>> /Users/rmanbert/Kits/thrift/thrift-0.4.0/ 255 65280 6 12 1-6 >>>>>> /Users/rmanbert/Kits/thrift/thrift-0.4.0/ 255 65280 2 4 1-2 >>>>>> Failed 2/2 test scripts. 8/8 subtests failed. >>>>>> Files=2, Tests=8, 1 wallclock secs ( 0.05 cusr + 0.02 csys = 0.07 CPU) >>>>>> Failed 2/2 test programs. 8/8 subtests failed. >>>>>> make[4]: *** [check-local] Error 255 >>>>>> make[3]: *** [check-am] Error 2 >>>>>> make[2]: *** [check-recursive] Error 1 >>>>>> make[1]: *** [check-recursive] Error 1 >>>>>> make: *** [check-recursive] Error 1 >>>>>> >>>>>> So I guess it's a -1 from me. >>>>>> >>>>>> - Rush >>>> >>
smime.p7s
Description: S/MIME cryptographic signature
