Thanks for the comments. Good reading. Haven't tested anything yet. > > LD_LIBRARY_PATH does NOT contain the libaceclnt.so (third party .so lib). > > LD_RUN_PATH is empty. > > Where exactly is libaceclnt.so on the two machines? I'd guess > /usr/local/lib...
They're over in PREFIX/../acelib/. i.e. parallel to custom Perl libs. > There are *significant* differences between the two versions - one is built > with shrplib, one without, and the libpths are different - specifically the > working one includes /usr/local/lib, and the broken one doesn't. I don't think that matters. These libs aren't in /usr/local/lib. > He can verify this by using 'ldd' and 'dump -Lv' on the various perl, > libperl.so and module .so files and looking at the dependencies. Another > trick is to do 'LD_DEBUG=libs perl sometestscript' which will display the > library search processing. Very interesting... Will investigate and report back. > > As for a fix, he can hack the module Makefile.PL - I'm not sure which would > work best, adding -R<library path> to LIBS, or using > dynamic_lib => { OTHERLDFLAGS => '-R<library path>' } > Whatever, he should use 'dump -Lv' on the resulting .so and check that > libaceclnt.so appears in the NEEDED section, and the directory it is in > appears in RUNPATH/RPATH. More good stuff. I think, if I understand you correctly, the problem is the Makefile.PL was hardcoded with "-L" and not "-R", so it breaks on the 64bit box built with Sun's compiler, but works fine on pretty much any gcc-built system. I'm thinking along the lines of patching the Makefile.PL to do the right thing a la some suncc-specific hinting. BTW, the module in question is the CPAN module Authen::ACE4. The Makefile.PL is a bit different from your standard MakeMaker fare, but it's not that complicated. Please thank your "guru". Mike --------------------------------------------- http://www.valuenet.net