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
>>>> 
>> 

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to