The darwin-perl-lib files are all i386 or ppc7400 binaries. The native PERL in OSX 10.6 is 64 bit (X86_64) and cannot call 32 bit libraries. The following files need to be compiled with the X866_64 flag as an architecture. It is unclear if the ppc7400 type binary will run on all ppc systems and should be the generic ppc architecture instead.
The offending files are SSLeay.bundle, Compress.bundle, Crypt/SSLeay.bundle and Expat.bundle
The final application is built as a 32 bit as well but since it is calling PERL I *think* it is ok. But changing that compile option should be trivial.
The problem is that perl5.10.0 on OSX 10.6.6 crashes. It is crashing in
/Applications/OCSNG.app/Contents/Resources/lib//auto/Net/SSLeay/SSLeay.bundle which is the one bundle that seems to have x86_64 architecture!!! ??
I have attached the crash log.
-Scott
% find darwin-perl-lib -perm +0111 -type f -exec file \{\} \;
darwin-perl-lib/auto/Net/SSLeay/SSLeay.bundle: Mach-O universal binary with 4 architectures
darwin-perl-lib/auto/Net/SSLeay/SSLeay.bundle (for architecture ppc7400): Mach-O bundle ppc
darwin-perl-lib/auto/Net/SSLeay/SSLeay.bundle (for architecture ppc64): Mach-O 64-bit bundle ppc64
darwin-perl-lib/auto/Net/SSLeay/SSLeay.bundle (for architecture i386): Mach-O bundle i386
darwin-perl-lib/auto/Net/SSLeay/SSLeay.bundle (for architecture x86_64): Mach-O 64-bit bundle x86_64
darwin-perl-lib/darwin-thread-multi-2level/auto/Compress/Raw/Zlib/Zlib.bundle: Mach-O universal binary with 2 architectures
darwin-perl-lib/darwin-thread-multi-2level/auto/Compress/Raw/Zlib/Zlib.bundle (for architecture i386): Mach-O bundle i386
darwin-perl-lib/darwin-thread-multi-2level/auto/Compress/Raw/Zlib/Zlib.bundle (for architecture ppc7400): Mach-O bundle ppc
darwin-perl-lib/darwin-thread-multi-2level/auto/Crypt/SSLeay/SSLeay.bundle: Mach-O universal binary with 2 architectures
darwin-perl-lib/darwin-thread-multi-2level/auto/Crypt/SSLeay/SSLeay.bundle (for architecture i386): Mach-O bundle i386
darwin-perl-lib/darwin-thread-multi-2level/auto/Crypt/SSLeay/SSLeay.bundle (for architecture ppc7400): Mach-O bundle ppc
darwin-perl-lib/darwin-thread-multi-2level/auto/XML/Parser/Expat/Expat.bundle: Mach-O universal binary with 2 architectures
darwin-perl-lib/darwin-thread-multi-2level/auto/XML/Parser/Expat/Expat.bundle (for architecture i386): Mach-O bundle i386
darwin-perl-lib/darwin-thread-multi-2level/auto/XML/Parser/Expat/Expat.bundle (for architecture ppc7400): Mach-O bundle ppc
Hi Scott,
Thanks a lot for your report. Yes, the bundle files you specify are compiled to support only i386 and ppc 7400 architecture. I don't have a MacOSX 64 bits to test it or recompile the files :( :(.
If you have Xcode and and a little bit of courage, can you try to regenerate the embedded CPAN tree with your 64 bits MacOSX computer to see if it solves the problem ? You can generate the CPAN module tree using the script 'create- darwin- perl-lib_ fromCPAN. pl' which is in the tools/macosx/ scripts directory of the OCS Unix agent sources. This script will generate the tarball 'macosx- perl-lib- dep-snapshot. tar.gz' which corresponds to the Resources/lib/ tree in OCSNG.app.
From my part, I will take a look to see if there is an easy way to specify the architectures in CPAN compilation options.
Kind regards
Guillaume