diff options
author | Robert Yang <liezhi.yang@windriver.com> | 2013-05-08 16:29:48 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-05-10 11:43:12 +0100 |
commit | 2f7c588c5a8148eec37405186c34bdd1425ea30b (patch) | |
tree | ef4e7ba977d961740172ea04d977ae43c6d5f42f | |
parent | a86b00651f825c51e381b2e009269d014486cd55 (diff) | |
download | poky-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>
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 @@ | |||
1 | Upstream-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 | |||
8 | Index: 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" | |||
4 | DEPENDS = "openssl-native bzip2-replacement-native zlib-native readline-native sqlite3-native" | 4 | DEPENDS = "openssl-native bzip2-replacement-native zlib-native readline-native sqlite3-native" |
5 | PR = "${INC_PR}.1" | 5 | PR = "${INC_PR}.1" |
6 | 6 | ||
7 | SRC_URI += "file://04-default-is-optimized.patch \ | 7 | SRC_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 @@ | |||
1 | Upstream-Status: Inappropriate [embedded specific] | ||
2 | |||
3 | Updated original patch for python 2.7.3 | ||
4 | |||
5 | Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com> | ||
6 | 2012/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 | |||
14 | Index: 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 | ||
27 | Index: 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 @@ | |||
1 | Upstream-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 | |||
8 | Index: 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 = "" | |||
7 | SRC_URI += "\ | 7 | SRC_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 \ |