Hmm, that patch mentions that the stack pointer issue is on 10.4, not 10.5?
PK On 13 Mar 2011, at 2:27 PM, Mark Dootson wrote: > Hi, > > Don't take my word for it. > > Attached are a patch for Perl 5.12.3 source and an sh file with appropriate > config args. > > You could build a Perl 5.12 on 10.6 and check out that this really is the > issue. > > Regards > > Mark > > <5.12.3-osx.patch> > > <myconfig.sh> > > > > On 13 Mar 2011, at 13:08, Philip Kime wrote: > >> Hmm, I have to use 5.12 unfortunately, I may need to see if I can get this >> working on a real 10.5 machine. >> >> PK >> >> On 13 Mar 2011, at 2:05 PM, Mark Dootson wrote: >> >>> Hi, >>> >>> I'm pretty sure none of the binary components of your Perl can run on >>> anything lower than 10.6 because of the -fstack-protector flag introduced >>> with Perl 5.12. >>> >>> As an experiment, try a MacPort of 5.10 and I think all will work. >>> >>> Regards >>> >>> Mark >>> >>> On 13/03/2011 12:55, Philip Kime wrote: >>>> [bbf-osx32][~]> perl -V >>>> Summary of my perl5 (revision 5 version 12 subversion 3) configuration: >>>> >>>> Platform: >>>> osname=darwin, osvers=10.6.0, archname=darwin-thread-multi-2level >>>> uname='darwin bbf-osx32.local 10.6.0 darwin kernel version 10.6.0: sun >>>> jan 9 16:31:48 est 2011; legacy kernel v6 >>>> :xnu-1504.9.26buildobjrelease_i386 i386 ' >>>> config_args='-D inc_version_list=5.12.2/darwin-thread-multi-2level >>>> 5.12.2 5.12.1/darwin-thread-multi-2level 5.12.1 >>>> 5.12.0/darwin-thread-multi-2level 5.12.0 -Dusethreads -Duseshrplib -des >>>> -Dprefix=/opt/local -Dscriptdir=/opt/local/bin >>>> -Dcppflags=-I/opt/local/include -isysroot /Developer/SDKs/MacOSX10.5.sdk >>>> -Dccflags=-pipe -O2 -isysroot /Developer/SDKs/MacOSX10.5.sdk -arch i386 >>>> -Dldflags=-L/opt/local/lib -Wl,-syslibroot,/Developer/SDKs/MacOSX10.5.sdk >>>> -arch i386 -Dvendorprefix=/opt/local -Dusemultiplicity=y -D >>>> cc=/usr/bin/gcc-4.0 -D ld=/usr/bin/gcc-4.0 -D man1ext=1pm -D man3ext=3pm >>>> -D man1dir=/opt/local/share/man/man1p -D >>>> man3dir=/opt/local/share/man/man3p -D >>>> siteman1dir=/opt/local/share/man/man1 -D >>>> siteman3dir=/opt/local/share/man/man3 -D >>>> vendorman1dir=/opt/local/share/man/man1 -D >>>> vendorman3dir=/opt/local/share/man/man3 -D pager=/usr/bin/less -sR' >>>> hint=recommended, useposix=true, d_sigaction=define >>>> useithreads=define, usemultiplicity=define >>>> useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef >>>> use64bitint=undef, use64bitall=undef, uselongdouble=undef >>>> usemymalloc=n, bincompat5005=undef >>>> Compiler: >>>> cc='/usr/bin/gcc-4.0', ccflags ='-pipe -O2 -isysroot >>>> /Developer/SDKs/MacOSX10.5.sdk -arch i386 -fno-common -DPERL_DARWIN >>>> -I/opt/local/include -isysroot /Developer/SDKs/MacOSX10.5.sdk >>>> -no-cpp-precomp -fno-strict-aliasing -fstack-protector >>>> -I/opt/local/include', >>>> optimize='-O3', >>>> cppflags='-I/opt/local/include -isysroot /Developer/SDKs/MacOSX10.5.sdk >>>> -no-cpp-precomp -pipe -O2 -isysroot /Developer/SDKs/MacOSX10.5.sdk -arch >>>> i386 -fno-common -DPERL_DARWIN -I/opt/local/include -isysroot >>>> /Developer/SDKs/MacOSX10.5.sdk -no-cpp-precomp -fno-strict-aliasing >>>> -fstack-protector -I/opt/local/include' >>>> ccversion='', gccversion='4.0.1 (Apple Inc. build 5493)', gccosandvers='' >>>> intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 >>>> d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16 >>>> ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', >>>> lseeksize=8 >>>> alignbytes=8, prototype=define >>>> Linker and Libraries: >>>> ld='env MACOSX_DEPLOYMENT_TARGET=10.6 /usr/bin/gcc-4.0', ldflags >>>> ='-L/opt/local/lib -Wl,-syslibroot,/Developer/SDKs/MacOSX10.5.sdk -arch >>>> i386 -fstack-protector' >>>> libpth=/opt/local/lib /usr/lib >>>> libs=-lgdbm -ldbm -ldl -lm -lutil -lc >>>> perllibs=-ldl -lm -lutil -lc >>>> libc=/usr/lib/libc.dylib, so=dylib, useshrplib=true, >>>> libperl=libperl.dylib >>>> gnulibc_version='' >>>> Dynamic Linking: >>>> dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' ' >>>> cccdlflags=' ', lddlflags='-L/opt/local/lib >>>> -Wl,-syslibroot,/Developer/SDKs/MacOSX10.5.sdk -arch i386 -bundle >>>> -undefined dynamic_lookup -fstack-protector' >>>> >>>> >>>> Characteristics of this binary (from libperl): >>>> Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV >>>> PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP USE_ITHREADS >>>> USE_LARGE_FILES USE_PERLIO USE_PERL_ATOF >>>> USE_REENTRANT_API >>>> Built under darwin >>>> Compiled at Mar 11 2011 22:30:02 >>>> @INC: >>>> /opt/local/lib/perl5/site_perl/5.12.3/darwin-thread-multi-2level >>>> /opt/local/lib/perl5/site_perl/5.12.3 >>>> /opt/local/lib/perl5/vendor_perl/5.12.3/darwin-thread-multi-2level >>>> /opt/local/lib/perl5/vendor_perl/5.12.3 >>>> /opt/local/lib/perl5/5.12.3/darwin-thread-multi-2level >>>> /opt/local/lib/perl5/5.12.3 >>>> /opt/local/lib/perl5/site_perl >>>> /opt/local/lib/perl5/vendor_perl >>>> >>>> >>>> >>>> >>>> [bbf-osx32][~]> otool -L /opt/local/bin/perl >>>> /opt/local/bin/perl: >>>> >>>> /opt/local/lib/perl5/5.12.3/darwin-thread-multi-2level/CORE/libperl.dylib >>>> (compatibility version 5.12.0, current version 5.12.3) >>>> /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current >>>> version 111.1.4) >>>> /usr/lib/libutil.dylib (compatibility version 1.0.0, current version >>>> 1.0.0) >>>> /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version >>>> 1.0.0) >>>> >>>> >>>> >>>> On 13 Mar 2011, at 1:53 PM, Mark Dootson wrote: >>>> >>>>> Hi, >>>>> >>>>> What's your output from perl -V and otool -L path/to/bin/perl >>>>> >>>>> >>>>> >>>>> On 13/03/2011 12:46, Philip Kime wrote: >>>>>> Greetings, >>>>>> I have to package an application for OSX 10.5 32-bit on a 64-bit OSX >>>>>> 10.6 box. I am using macports for all of the software and have set this >>>>>> to use only the 10.5 SDK and 32-bit compilation which all works fine. >>>>>> This works as macports sets some compile flags to point to the 10.5 SDK >>>>>> for all compiles. perl is compiled like this and so all perl modules get >>>>>> the same flags and every piece of the stuff to package is 10.5 >>>>>> compliant. However, when I come to pack with pp, it doesn't seem to use >>>>>> the flags which perl was compiled with to create the binary and so the >>>>>> executable dies on 10.5 with the famous: >>>>>> >>>>>>> dyld: unknown required load command 0x80000022 >>>>>>> Trace/BPT trap >>>>>> >>>>>> which is a known problem trying to run 10.6 compiled binaries on 10.5. >>>>>> This should work however if you compile for 32-bit only and also force >>>>>> the 10.5 SDK, which is what I have done. pp doesn't seem to understand >>>>>> this though and the resulting binary fails on 10.5. Since I'm not sure >>>>>> how pp prepares its binary, I am wondering if I can add flags to the >>>>>> compiler step or something similar to force it to use the 10.5 SDK so >>>>>> that the 10.6-specific features which cause this problem can be avoided? >>>>>> >>>>>> PK >>>>>> >>>>>> -- >>>>>> Dr Philip Kime >>>>>> >>>>> >>>> >>>> -- >>>> Dr Philip Kime >>>> >>> >> >> -- >> Dr Philip Kime >> > -- Dr Philip Kime
