[Pythonmac-SIG] Fat Python?

Bob Ippolito bob at redivi.com
Sat Oct 8 21:55:56 CEST 2005


On Oct 8, 2005, at 11:48 AM, Ronald Oussoren wrote:

>
> On 7-okt-2005, at 19:58, Bob Ippolito wrote:
>
>
>>
>> On Oct 7, 2005, at 6:33 AM, Kent Quirk wrote:
>>
>>
>>> We're trying to get our application ready for the forthcoming  
>>> Intel Macs, and we'll need to have a fat binaries version of  
>>> Python and support for it in py2app.
>>>
>>> We have successfully built an intel version of the Python.org  
>>> version of Python 2.4 using gnu readline, but we haven't even  
>>> tried to make fat binaries yet, nor do we have the full set of  
>>> source changes found in Mac Python. Doing so would require quite  
>>> a bit more autoconf-foo than we have at hand.
>>>
>>> We've also been looking at macholib to see about making it (and  
>>> by extension, py2app) aware of little-endian binaries. But that's  
>>> going slowly.
>>>
>>> Has anyone else tackled this yet? Are the Mac Python sources  
>>> available?
>>>
>>> Bob, have you done anything with this since the spring? Can you  
>>> perhaps enlighten us with what you know regarding the task queue  
>>> to pull this off?
>>>
>>
>> I have no plans or interest in doing the work to support little  
>> endian until I have a little endian machine.  That's not going to  
>> happen unless someone gives me one, or Apple comes out with a  
>> little endian powerbook.
>>
>
> I do have access to a little endian machine at work, but because  
> changing Python to support fat binaries is likely to be very boring  
> for the most part I won't work on it as well unless I'd actually  
> have a good reason to do so.
>
> What you could do is building a native python on PPC, a native  
> python on x86 and then merge the two. This would give you most of  
> the functionality you're after.
>
> If I'd work on fat binary support I'd do it in this order:
> 1) Somehow automate the two builds + merge
> 2) Modify distutils to build fat binaries
> 3) Try to factor out all CPU-dependent autoconf stuff, such as by  
> adding a py-cpuinfo.h
>
> If you go for step 2 it might be useful to add building against  
> SDKs as well (10.3 or even 10.2 for PPC and 10.4 for x86). Step 1  
> is easy, step 3 is easy as well (except for the "get the patch  
> merged into Python CVS" part), step 2 is a lot harder.

Note that the two builds + merge scenario is the *ONLY* way to  
support Mac OS X 10.3 or earlier, if that matters.  That's what I'd  
do also.

The easiest way would probably just be to have two separate Python  
installs (PPC and x86), run through the build twice (once with each),  
then have a tool that merges every Mach-O that is in both trees into  
a third tree.  That way, if any build tools try and do some  
introspection, it should still work.

-bob



More information about the Pythonmac-SIG mailing list