[Python-Dev] Python 2.7 Mac universal builds seem broken on trunk

M.-A. Lemburg mal at egenix.com
Tue Sep 29 21:55:35 CEST 2009


Ronald Oussoren wrote:
> 
> On 29 Sep, 2009, at 18:17, M.-A. Lemburg wrote:
> 
>> Ronald Oussoren wrote:
>>>
>>>>> Use:
>>>>>
>>>>>   ./configure --enable-framework --enable-universalsdk=/
>>>>>
>>>>> The --with-universal-archs flag selects whichs architectures should be
>>>>> included when you build a universal binary, defaulting to 32-bit.
>>>>
>>>> The Python default on 10.6 is 64-bit, so wouldn't it be better
>>>> to default to that on 10.6 and use 32-bit as default on 10.3/4/5 ?!
>>>
>>> Defaulting to a 32-bit build has several advantages. The first is that
>>> the defaults match the binary installer on the python.org website,
>>
>> What build options does that installer use ? (the web-page doesn't say)
> 
> The installer is build using the script in Mac/BuildScript, and uses
> --enable-framework --with-universalsk.
> 
> This creates a 32-bit fat build that runs on 10.3.9 or later.

Ok, so the installed has 32-bit x86 and ppc code, just like for
the older releases.

>>
>>> and
>>> secondly there are still 3th-party libraries that don't work in 64-bit
>>> mode (mostly GUI libraries, until recently Tk and wxWidgets wrapped the
>>> Carbon libraries which are not available in 64-bit mode; AFAIK both have
>>> betas that wrap the Cocoa libraries instead).
>>>
>>> To mimick the system default you'd have to default to 32-bit on 10.4,
>>> 4-way universal on 10.5 and 3-way universal on 10.6, and that is without
>>> considering deployment targets.  All of those are available as options,
>>> I'd prefer to keep it this way for now to keep things simple.
>>
>> Hmm, so I guess the only way to support them all is by building
>> extensions
>> using 4-way universal on 10.5. No wonder they are called "fat"
>> binaries ;-)
> 
> I like the technology though, much more convenient than having parallel
> directory tries as on Linux.

True, but it also makes it harder to get rid off parts you
don't need and the often necessary separate combine step
(using lipo) can get tedious at times, e.g. when trying
to build OpenSSL or other software that uses different
configuration data or optimizations depending on the underlying
architecture.

>>>>> I'll write some documentation on the build options on OSX,  but don't
>>>>> know what's the best location to do so.
>>>>
>>>> Please put that information into Mac/README which already has
>>>> documentation for how to build universal binaries on Mac.
>>>
>>> I know that, I wrote most of that file ;-).
>>
>> Which is why I was surprised you asked :-)
> 
> I hoped to find a document on docs.python.org that explains how to
> install Python, but sadly enough there isn't. Mac/README contains the
> right information, but isn't easily found if you're searching on the web
> or even if you're looking for documentation in the source tree.

True. The download page used to have a bit of information on how
to build Python, but that got trimmed away it seems. The Python
docs only have this page:

Unix: http://docs.python.org/using/unix.html
Window: http://docs.python.org/using/windows.html#installing-python
Mac: http://docs.python.org/using/mac.html#getting-and-installing-macpython

Neither of those pages has the in-depth information of the README
files and, frankly, I wouldn't be looking for an installation guide
in a "Using Python" section either.

Perhaps something for a sprint to change...

-- 
Marc-Andre Lemburg
eGenix.com

Professional Python Services directly from the Source  (#1, Sep 29 2009)
>>> Python/Zope Consulting and Support ...        http://www.egenix.com/
>>> mxODBC.Zope.Database.Adapter ...             http://zope.egenix.com/
>>> mxODBC, mxDateTime, mxTextTools ...        http://python.egenix.com/
________________________________________________________________________

::: Try our new mxODBC.Connect Python Database Interface for free ! ::::


   eGenix.com Software, Skills and Services GmbH  Pastor-Loeh-Str.48
    D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg
           Registered at Amtsgericht Duesseldorf: HRB 46611
               http://www.egenix.com/company/contact/


More information about the Python-Dev mailing list