python: Add the needed patches to compile python2.7 in buildroot.

Signed-off-by: Maxime Ripard <ripard@archos.com>
This commit is contained in:
Maxime Ripard 2010-12-10 23:13:36 +01:00 committed by Thomas Petazzoni
parent d82df10e90
commit 10e1927e1a
2 changed files with 57 additions and 0 deletions

View File

@ -0,0 +1,19 @@
Python's configure assume than when cross-compiling the target has no
support for long long int. This assumption breaks compilation later in the
process. Since gcc handles long long support, we can change the value to
assume that there is such support.
Patch by Maxime Ripard <ripard@archos.com>
diff -rduNp Python-2.7.orig/configure Python-2.7/configure
--- Python-2.7.orig/configure 2010-09-30 12:05:54.000000000 +0200
+++ Python-2.7/configure 2010-09-30 12:12:30.000000000 +0200
@@ -13517,7 +13517,7 @@ $as_echo_n "checking for %lld and %llu p
$as_echo_n "(cached) " >&6
else
if test "$cross_compiling" = yes; then :
- ac_cv_have_long_long_format=no
+ ac_cv_have_long_long_format=yes
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */

View File

@ -0,0 +1,38 @@
The compileall script is used to compile to python bytecode all the modules.
However, it relies on the struct package that is not built for the host
python, thus crashing at execution when compiling the target python.
When compiling, the removed code block is never executed, so we can safely
remove it, removing in the same time the dependency on struct.
Patch by Maxime Ripard <ripard@archos.com>
Index: Python-2.7/Lib/compileall.py
===================================================================
--- Python-2.7.orig/Lib/compileall.py (révision 84276)
+++ Python-2.7/Lib/compileall.py (copie de travail)
@@ -14,7 +14,6 @@
import os
import sys
import py_compile
-import struct
import imp
__all__ = ["compile_dir","compile_file","compile_path"]
@@ -83,17 +82,6 @@
if os.path.isfile(fullname):
head, tail = name[:-3], name[-3:]
if tail == '.py':
- if not force:
- try:
- mtime = int(os.stat(fullname).st_mtime)
- expect = struct.pack('<4sl', imp.get_magic(), mtime)
- cfile = fullname + (__debug__ and 'c' or 'o')
- with open(cfile, 'rb') as chandle:
- actual = chandle.read(8)
- if expect == actual:
- return success
- except IOError:
- pass
if not quiet:
print 'Compiling', fullname, '...'
try: