[Pythonmac-SIG] Unwanted PPC build in setuptools

Ronald Oussoren ronaldoussoren at mac.com
Wed Oct 21 21:59:02 CEST 2009


On 19 Oct, 2009, at 23:20, Robert Kern wrote:

> On 2009-10-19 15:59 PM, Ronald Oussoren wrote:
>>
>> On 19 Oct, 2009, at 22:47, Chris Fonnesbeck wrote:
>>
>>> Is there any way of convincing setuptools to *not* build for PPC?  
>>> For
>>> some reason, it tries to build a universal binary by default:
>>>
>>> g++ -arch i386 -arch ppc -isysroot /Developer/SDKs/ 
>>> MacOSX10.4u.sdk ...etc
>>>
>>> Which results in errors:
>>>
>>> ld warning: in
>>> /Developer/SDKs/MacOSX10.4u.sdk/Library/Frameworks/ 
>>> Python.framework/Versions/4.3.0/lib/libz.dylib,
>>>
>>> file is not of required architecture
>>> ld: in
>>> /Developer/SDKs/MacOSX10.4u.sdk/Library/Frameworks/ 
>>> Python.framework/Versions/4.3.0/lib/libz.1.dylib,
>>>
>>> file is not of required architecture for architecture ppc
>>>
>>> I have no interest in building universals -- how can I switch this
>>> off? I already tried putting "-arch i386" in my LDFLAGS, but to no
>>> avail.
>
> Edit /Library/Frameworks/.../lib/python2.5/config/Makefile to remove  
> the occurrences of "-arch ppc" if you never want to build PPC  
> versions of stuff again. More recent versions of EPD should have  
> that done already.

Patching the installation is evil.

>
>> Add ['-arch', 'i386'] to both extra_compile_args and extra_link  
>> args of
>> the Extension objects.
>
> Will that get rid of the pre-existing "-arch ppc" flags?

Yes.  Distutils assumes that you know what you're doing when you  
specify a -arch flag and strips all existing -arch flags from the  
default flags. Likewise for -isysroot, if you specify that the  
existing one will be removed automaticly.


>
>> BTW. The path's in the error-messages above are fishy, there  
>> shouldn't
>> be a '4.3.0' version in Python.framework.
>
> I presume he's using the Enthought Python Distribution (disclosure:  
> I work for Enthought), which does have such a version number. It's  
> basically a not-entirely-palatable hack to make sure that users can  
> install and uninstall EPD in order to try it out without breaking  
> their previously installed Pythons.

Wouldn't it be better to use '--with-framework-name', IIRC I  
introduced that in 2.6:

	./configure --enable-framework --with-framework-name=EPD

This will create a framework named 'EPD.framework' instead of  
'Python.framework'.

Ronald

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3567 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/pythonmac-sig/attachments/20091021/7c29c93b/attachment.bin>


More information about the Pythonmac-SIG mailing list