[ python-Bugs-1619130 ] 64-bit Universal Binary build broken

SourceForge.net noreply at sourceforge.net
Thu Jul 12 07:51:07 CEST 2007


Bugs item #1619130, was opened at 2006-12-20 00:22
Message generated for change (Comment added) made by ronaldoussoren
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1619130&group_id=5470

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Macintosh
Group: Python 2.6
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Thomas Treadway (treadway)
>Assigned to: Ronald Oussoren (ronaldoussoren)
Summary: 64-bit Universal Binary build broken

Initial Comment:
Hi,
I'm running into problem building a 4-way universal binary of python.
The following has cropped up on both python2.5 and python2.4.2

The configure goes OK, but the make bombs.
[2244]$  ./configure --prefix=$VISITPATH/python OPT="-fast -Wall \
-Wstrict-prototypes -fno-common -fPIC \
-isysroot /Developer/SDKs/MacOSX10.4u.sdk \
-arch ppc -arch i386 -arch ppc64 -arch x86_64" \
LDFLAGS="-Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk,\
-headerpad_max_install_names -arch ppc -arch i386 \
-arch ppc64 -arch x86_64"

. . .
[2245]$ make
gcc -c -fno-strict-aliasing -Wno-long-double -no-cpp-precomp -mno-fused-madd -DNDEBUG -fast -Wall -Wstrict-prototypes -fno-common -fPIC -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386 -arch ppc64 -arch x86_64  -I. -I./Include   -DPy_BUILD_CORE -o Modules/python.o ./Modules/python.c
In file included from ./Include/Python.h:57In file included from ./Include/Python.h:57,
                 from ./Modules/python.c:3:
./Include/pyport.h:730:2: error: #error "LONG_BIT definition appears wrong for platform (bad gcc/glibc config?)."
,
                 from ./Modules/python.c:3:
./Include/pyport.h:730:2: error: #error "LONG_BIT definition appears wrong for platform (bad gcc/glibc config?)."
lipo: can't figure out the architecture type of: /var/tmp//ccL3Ewl4.out
make: *** [Modules/python.o] Error 1

Comenting out the "#error" statement in pyport.h get me a little further
befor getting:
gcc -c -fno-strict-aliasing -Wno-long-double -no-cpp-precomp -mno-fused-madd -DNDEBUG -fast -Wall -Wstrict-prototypes -fno-common -fPIC -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386 -arch ppc64 -arch x86_64  -I. -I./Include   -DPy_BUILD_CORE -o Python/mactoolboxglue.o Python/mactoolboxglue.c
In file included from /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/DriverServices.h:32,
                 from /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/CarbonCore.h:125,
  . . .
                 from /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/Carbon.framework/Headers/Carbon.h:20,
                 from ./Include/pymactoolbox.h:10,
                 from Python/mactoolboxglue.c:27:
/Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/fp.h:1338: error: 'SIGDIGLEN' undeclared here (not in a function)
lipo: can't figure out the architecture type of: /var/tmp//ccEYbpTz.out
make: *** [Python/mactoolboxglue.o] Error 1

Seem Carbon doesn't support 64-bits!
Is there a solution?
   trt
--
Thomas R. Treadway
Computer Scientist
Lawrence Livermore Nat'l Lab
7000 East Avenue, L-159
Livermore, CA 94550-0611


----------------------------------------------------------------------

>Comment By: Ronald Oussoren (ronaldoussoren)
Date: 2007-07-12 07:51

Message:
Logged In: YES 
user_id=580910
Originator: NO

Even two-way universal builds aren't supported in 64-bit mode. 
Non-universal 64-bit builds do work properly, the problem with 2-way
universal 64-bit builds is that not all features that configure detects are
the same on x86_64 and ppc64, the only one I've found so far is
VA_LIST_IS_ARRAY (defined on one architecture but not the other).

I'll pobably fix that soonish, 4-way universal builds will be more work
although mostly in thinking about the right policies and especiall this
issue:

Will distutils in a 4-way universal build default to building? If yes, how
will users be able to specify that an extension should be build in 32-bit
mode only? If no, how does one build 64-bit extensions?

I'm currently leaning towards:
- Default to 32-bit only on Tiger and 4-way on Leopard
- Patch build_ext and/or Extension to enable overriding the default
without fiddling with CFLAGS/LDFLAGS (or there equivalents in distutils)

(This is for a 4-way universal build only, 2-way universal builds and
non-universal builds will keep behaving as they do now). 

BTW. 64-bit builds on any released version of OSX don't have access to
anything but libSystem, which means: no GUI code and no access to Apple
frameworks in general.  This will change in Leopard (see Apple's website
for that), but as this OS is still under NDA I won't comment on the
details.

Asssinged this bug to myself because I'm more likely to fix this than Jack
is.

----------------------------------------------------------------------

Comment By: Martin v. Löwis (loewis)
Date: 2007-01-03 17:08

Message:
Logged In: YES 
user_id=21627
Originator: NO

You are right: four-way universal builds are not supported currently.

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1619130&group_id=5470


More information about the Python-bugs-list mailing list