58 lines
2.2 KiB
Diff
58 lines
2.2 KiB
Diff
Author: Andrei Gherzan <andrei@gherzan.ro>
|
|
Date: Sun Mar 25 02:02:27 2012 +0200
|
|
|
|
This patch was added for 64bit host machines. In the compile process python
|
|
is checking if platform is a 64bit platform using sys.maxint which is the host's
|
|
value. The patch fixes this issue so that python would check if TARGET machine
|
|
is 64bit not the HOST machine. In this way will have "dl" and "imageop" modules
|
|
built if HOST machine is 64bit but the target machine is 32bit.
|
|
|
|
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
|
|
|
|
Upstream-Status: Pending
|
|
|
|
Index: Python-2.7.2/setup.py
|
|
===================================================================
|
|
--- Python-2.7.2.orig/setup.py 2012-03-25 01:10:41.540163187 +0200
|
|
+++ Python-2.7.2/setup.py 2012-03-25 01:26:06.092539990 +0200
|
|
@@ -23,6 +23,21 @@
|
|
# This global variable is used to hold the list of modules to be disabled.
|
|
disabled_module_list = []
|
|
|
|
+def target_is_64bit_platform ():
|
|
+ """
|
|
+ In case of cross-compile, some modules are not build as setup checks if HOST
|
|
+ is 64bit and not TARGET.
|
|
+ As python was built for TARGET we can check this in pyconfig.h in this way:
|
|
+ Sizeof LONG on a 32 bit platform is 4 bytes
|
|
+ Sizeof LONG on a 64 bit platform is 8 bytes
|
|
+ """
|
|
+ pyconf = open("pyconfig.h").read()
|
|
+ aux = re.search(r"#s*define\s+SIZEOF_LONG\s+8\s*", pyconf)
|
|
+ if aux is not None:
|
|
+ return True
|
|
+ else:
|
|
+ return False
|
|
+
|
|
def add_dir_to_list(dirlist, dir):
|
|
"""Add the directory 'dir' to the list 'dirlist' (at the front) if
|
|
1) 'dir' is not already in 'dirlist'
|
|
@@ -628,7 +643,7 @@
|
|
exts.append( Extension('audioop', ['audioop.c']) )
|
|
|
|
# Disabled on 64-bit platforms
|
|
- if sys.maxint != 9223372036854775807L:
|
|
+ if not target_is_64bit_platform():
|
|
# Operations on images
|
|
exts.append( Extension('imageop', ['imageop.c']) )
|
|
else:
|
|
@@ -1418,7 +1433,7 @@
|
|
missing.append('_codecs_%s' % loc)
|
|
|
|
# Dynamic loading module
|
|
- if sys.maxint == 0x7fffffff:
|
|
+ if not target_is_64bit_platform():
|
|
# This requires sizeof(int) == sizeof(long) == sizeof(char*)
|
|
dl_inc = find_file('dlfcn.h', [], inc_dirs)
|
|
if (dl_inc is not None) and (platform not in ['atheos']):
|