summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobert Yang <liezhi.yang@windriver.com>2013-05-08 16:29:48 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-05-10 11:43:12 +0100
commit2f7c588c5a8148eec37405186c34bdd1425ea30b (patch)
treeef4e7ba977d961740172ea04d977ae43c6d5f42f
parenta86b00651f825c51e381b2e009269d014486cd55 (diff)
downloadpoky-2f7c588c5a8148eec37405186c34bdd1425ea30b.tar.gz
python: remove the default optimization
We had hard coded python-native and python's default optimization to 1, which made the "assert" statement didn't work, and removed the "-O/-OO" (optimization options), the target python had a "-N" option to disable the default optimization, but the native python didn't. I think that we can set the environment variable PYTHONOPTIMIZE or use "python -O" if we need to optimize, but I'm not sure whether we need to set it by default, it would confuse the user or cause/hide unexpected problems if the "assert" doesn't work. [YOCTO #4427] (From OE-Core rev: 165ed464bbb9bf985dde9d8c15d000809901fff6) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-devtools/python/python-native/04-default-is-optimized.patch20
-rw-r--r--meta/recipes-devtools/python/python-native_2.7.3.bb2
-rw-r--r--meta/recipes-devtools/python/python/04-default-is-optimized.patch60
-rw-r--r--meta/recipes-devtools/python/python/99-ignore-optimization-flag.patch21
-rw-r--r--meta/recipes-devtools/python/python_2.7.3.bb2
5 files changed, 1 insertions, 104 deletions
diff --git a/meta/recipes-devtools/python/python-native/04-default-is-optimized.patch b/meta/recipes-devtools/python/python-native/04-default-is-optimized.patch
deleted file mode 100644
index 8fe147e0ef..0000000000
--- a/meta/recipes-devtools/python/python-native/04-default-is-optimized.patch
+++ /dev/null
@@ -1,20 +0,0 @@
1Upstream-Status: Inappropriate [embedded specific]
2
3# When compiling for an embedded system, we need every bit of
4# performance we can get. default to optimized with the option
5# of opt-out.
6# Signed-Off: Michael 'Mickey' Lauer <mickey@vanille-media.de>
7
8Index: Python-2.6.1/Python/compile.c
9===================================================================
10--- Python-2.6.1.orig/Python/compile.c
11+++ Python-2.6.1/Python/compile.c
12@@ -32,7 +32,7 @@
13 #include "symtable.h"
14 #include "opcode.h"
15
16-int Py_OptimizeFlag = 0;
17+int Py_OptimizeFlag = 1;
18
19 #define DEFAULT_BLOCK_SIZE 16
20 #define DEFAULT_BLOCKS 8
diff --git a/meta/recipes-devtools/python/python-native_2.7.3.bb b/meta/recipes-devtools/python/python-native_2.7.3.bb
index 162ecedb73..722d92c096 100644
--- a/meta/recipes-devtools/python/python-native_2.7.3.bb
+++ b/meta/recipes-devtools/python/python-native_2.7.3.bb
@@ -4,7 +4,7 @@ EXTRANATIVEPATH += "bzip2-native"
4DEPENDS = "openssl-native bzip2-replacement-native zlib-native readline-native sqlite3-native" 4DEPENDS = "openssl-native bzip2-replacement-native zlib-native readline-native sqlite3-native"
5PR = "${INC_PR}.1" 5PR = "${INC_PR}.1"
6 6
7SRC_URI += "file://04-default-is-optimized.patch \ 7SRC_URI += "\
8 file://05-enable-ctypes-cross-build.patch \ 8 file://05-enable-ctypes-cross-build.patch \
9 file://06-ctypes-libffi-fix-configure.patch \ 9 file://06-ctypes-libffi-fix-configure.patch \
10 file://10-distutils-fix-swig-parameter.patch \ 10 file://10-distutils-fix-swig-parameter.patch \
diff --git a/meta/recipes-devtools/python/python/04-default-is-optimized.patch b/meta/recipes-devtools/python/python/04-default-is-optimized.patch
deleted file mode 100644
index 7ce819a3c9..0000000000
--- a/meta/recipes-devtools/python/python/04-default-is-optimized.patch
+++ /dev/null
@@ -1,60 +0,0 @@
1Upstream-Status: Inappropriate [embedded specific]
2
3Updated original patch for python 2.7.3
4
5Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
62012/05/01
7
8
9# when compiling for an embedded system, we need every bit of
10# performance we can get. default to optimized with the option
11# of opt-out.
12# Signed-Off: Michael 'Mickey' Lauer <mickey@vanille-media.de>
13
14Index: Python-2.7.3/Python/compile.c
15===================================================================
16--- Python-2.7.3.orig/Python/compile.c
17+++ Python-2.7.3/Python/compile.c
18@@ -32,7 +32,7 @@
19 #include "symtable.h"
20 #include "opcode.h"
21
22-int Py_OptimizeFlag = 0;
23+int Py_OptimizeFlag = 1;
24
25 #define DEFAULT_BLOCK_SIZE 16
26 #define DEFAULT_BLOCKS 8
27Index: Python-2.7.3/Modules/main.c
28===================================================================
29--- Python-2.7.3.orig/Modules/main.c
30+++ Python-2.7.3/Modules/main.c
31@@ -40,7 +40,7 @@ static char **orig_argv;
32 static int orig_argc;
33
34 /* command line options */
35-#define BASE_OPTS "3bBc:dEhiJm:OQ:RsStuUvVW:xX?"
36+#define BASE_OPTS "3bBc:dEhiJm:NOQ:RsStuUvVW:xX?"
37
38 #ifndef RISCOS
39 #define PROGRAM_OPTS BASE_OPTS
40@@ -69,8 +69,7 @@ Options and arguments (and corresponding
41 static char *usage_2 = "\
42 if stdin does not appear to be a terminal; also PYTHONINSPECT=x\n\
43 -m mod : run library module as a script (terminates option list)\n\
44--O : optimize generated bytecode slightly; also PYTHONOPTIMIZE=x\n\
45--OO : remove doc-strings in addition to the -O optimizations\n\
46+-N : do NOT optimize generated bytecode\n\
47 -R : use a pseudo-random salt to make hash() values of various types be\n\
48 unpredictable between separate invocations of the interpreter, as\n\
49 a defense against denial-of-service attacks\n\
50@@ -365,8 +364,8 @@ Py_Main(int argc, char **argv)
51
52 /* case 'J': reserved for Jython */
53
54- case 'O':
55- Py_OptimizeFlag++;
56+ case 'N':
57+ Py_OptimizeFlag=0;
58 break;
59
60 case 'B':
diff --git a/meta/recipes-devtools/python/python/99-ignore-optimization-flag.patch b/meta/recipes-devtools/python/python/99-ignore-optimization-flag.patch
deleted file mode 100644
index a5d9812caf..0000000000
--- a/meta/recipes-devtools/python/python/99-ignore-optimization-flag.patch
+++ /dev/null
@@ -1,21 +0,0 @@
1Upstream-Status: Inappropriate [embedded specific]
2
3# Reinstate the empty -O option to fix weird mixing of native and target
4# binaries and libraries with LD_LIBRARY_PATH when host==target
5#
6# Signed-off-by: Denys Dmytriyenko <denis@denix.org>
7
8Index: Python-2.6.6/Modules/main.c
9===================================================================
10--- Python-2.6.6.orig/Modules/main.c
11+++ Python-2.6.6/Modules/main.c
12@@ -327,6 +327,9 @@ Py_Main(int argc, char **argv)
13
14 /* case 'J': reserved for Jython */
15
16+ case 'O': /* ignore it */
17+ break;
18+
19 case 'N':
20 Py_OptimizeFlag=0;
21 break;
diff --git a/meta/recipes-devtools/python/python_2.7.3.bb b/meta/recipes-devtools/python/python_2.7.3.bb
index aace95e729..f76f2185fe 100644
--- a/meta/recipes-devtools/python/python_2.7.3.bb
+++ b/meta/recipes-devtools/python/python_2.7.3.bb
@@ -7,11 +7,9 @@ DISTRO_SRC_URI_linuxstdbase = ""
7SRC_URI += "\ 7SRC_URI += "\
8 file://01-use-proper-tools-for-cross-build.patch \ 8 file://01-use-proper-tools-for-cross-build.patch \
9 file://03-fix-tkinter-detection.patch \ 9 file://03-fix-tkinter-detection.patch \
10 file://04-default-is-optimized.patch \
11 file://05-enable-ctypes-cross-build.patch \ 10 file://05-enable-ctypes-cross-build.patch \
12 file://06-ctypes-libffi-fix-configure.patch \ 11 file://06-ctypes-libffi-fix-configure.patch \
13 file://06-avoid_usr_lib_termcap_path_in_linking.patch \ 12 file://06-avoid_usr_lib_termcap_path_in_linking.patch \
14 file://99-ignore-optimization-flag.patch \
15 ${DISTRO_SRC_URI} \ 13 ${DISTRO_SRC_URI} \
16 file://multilib.patch \ 14 file://multilib.patch \
17 file://cgi_py.patch \ 15 file://cgi_py.patch \