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

Reply via email to