From a4830bb881d09f541802a468523f625d58b15d86 Mon Sep 17 00:00:00 2001 From: hschang Date: Thu, 3 Jul 2014 11:39:35 +0900 Subject: [PATCH 1/1] revert OE-core commit "python: remove the default optimization" (commit : 165ed464bbb9bf985dde9d8c15d000809901fff6) 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. --- .../python-native/04-default-is-optimized.patch | 20 ++++++++ .../python/python-native_2.7.3.bbappend | 5 +- .../python/python/04-default-is-optimized.patch | 60 ++++++++++++++++++++++ .../python/99-ignore-optimization-flag.patch | 21 ++++++++ .../recipes-devtools/python/python_2.7.3.bbappend | 4 +- 5 files changed, 108 insertions(+), 2 deletions(-) create mode 100644 meta-openvuplus/recipes-devtools/python/python-native/04-default-is-optimized.patch create mode 100644 meta-openvuplus/recipes-devtools/python/python/04-default-is-optimized.patch create mode 100644 meta-openvuplus/recipes-devtools/python/python/99-ignore-optimization-flag.patch diff --git a/meta-openvuplus/recipes-devtools/python/python-native/04-default-is-optimized.patch b/meta-openvuplus/recipes-devtools/python/python-native/04-default-is-optimized.patch new file mode 100644 index 0000000..8fe147e --- /dev/null +++ b/meta-openvuplus/recipes-devtools/python/python-native/04-default-is-optimized.patch @@ -0,0 +1,20 @@ +Upstream-Status: Inappropriate [embedded specific] + +# When compiling for an embedded system, we need every bit of +# performance we can get. default to optimized with the option +# of opt-out. +# Signed-Off: Michael 'Mickey' Lauer + +Index: Python-2.6.1/Python/compile.c +=================================================================== +--- Python-2.6.1.orig/Python/compile.c ++++ Python-2.6.1/Python/compile.c +@@ -32,7 +32,7 @@ + #include "symtable.h" + #include "opcode.h" + +-int Py_OptimizeFlag = 0; ++int Py_OptimizeFlag = 1; + + #define DEFAULT_BLOCK_SIZE 16 + #define DEFAULT_BLOCKS 8 diff --git a/meta-openvuplus/recipes-devtools/python/python-native_2.7.3.bbappend b/meta-openvuplus/recipes-devtools/python/python-native_2.7.3.bbappend index 6b7c568..66116fb 100644 --- a/meta-openvuplus/recipes-devtools/python/python-native_2.7.3.bbappend +++ b/meta-openvuplus/recipes-devtools/python/python-native_2.7.3.bbappend @@ -1,4 +1,7 @@ -PR .= "-vuplus0" +PR .= "-vuplus1" + +SRC_URI += "file://04-default-is-optimized.patch" RPROVIDES_${PN} += "python-pickle-native python-pprint-native" +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" diff --git a/meta-openvuplus/recipes-devtools/python/python/04-default-is-optimized.patch b/meta-openvuplus/recipes-devtools/python/python/04-default-is-optimized.patch new file mode 100644 index 0000000..7ce819a --- /dev/null +++ b/meta-openvuplus/recipes-devtools/python/python/04-default-is-optimized.patch @@ -0,0 +1,60 @@ +Upstream-Status: Inappropriate [embedded specific] + +Updated original patch for python 2.7.3 + +Signed-Off-By: Nitin A Kamble +2012/05/01 + + +# when compiling for an embedded system, we need every bit of +# performance we can get. default to optimized with the option +# of opt-out. +# Signed-Off: Michael 'Mickey' Lauer + +Index: Python-2.7.3/Python/compile.c +=================================================================== +--- Python-2.7.3.orig/Python/compile.c ++++ Python-2.7.3/Python/compile.c +@@ -32,7 +32,7 @@ + #include "symtable.h" + #include "opcode.h" + +-int Py_OptimizeFlag = 0; ++int Py_OptimizeFlag = 1; + + #define DEFAULT_BLOCK_SIZE 16 + #define DEFAULT_BLOCKS 8 +Index: Python-2.7.3/Modules/main.c +=================================================================== +--- Python-2.7.3.orig/Modules/main.c ++++ Python-2.7.3/Modules/main.c +@@ -40,7 +40,7 @@ static char **orig_argv; + static int orig_argc; + + /* command line options */ +-#define BASE_OPTS "3bBc:dEhiJm:OQ:RsStuUvVW:xX?" ++#define BASE_OPTS "3bBc:dEhiJm:NOQ:RsStuUvVW:xX?" + + #ifndef RISCOS + #define PROGRAM_OPTS BASE_OPTS +@@ -69,8 +69,7 @@ Options and arguments (and corresponding + static char *usage_2 = "\ + if stdin does not appear to be a terminal; also PYTHONINSPECT=x\n\ + -m mod : run library module as a script (terminates option list)\n\ +--O : optimize generated bytecode slightly; also PYTHONOPTIMIZE=x\n\ +--OO : remove doc-strings in addition to the -O optimizations\n\ ++-N : do NOT optimize generated bytecode\n\ + -R : use a pseudo-random salt to make hash() values of various types be\n\ + unpredictable between separate invocations of the interpreter, as\n\ + a defense against denial-of-service attacks\n\ +@@ -365,8 +364,8 @@ Py_Main(int argc, char **argv) + + /* case 'J': reserved for Jython */ + +- case 'O': +- Py_OptimizeFlag++; ++ case 'N': ++ Py_OptimizeFlag=0; + break; + + case 'B': diff --git a/meta-openvuplus/recipes-devtools/python/python/99-ignore-optimization-flag.patch b/meta-openvuplus/recipes-devtools/python/python/99-ignore-optimization-flag.patch new file mode 100644 index 0000000..a5d9812 --- /dev/null +++ b/meta-openvuplus/recipes-devtools/python/python/99-ignore-optimization-flag.patch @@ -0,0 +1,21 @@ +Upstream-Status: Inappropriate [embedded specific] + +# Reinstate the empty -O option to fix weird mixing of native and target +# binaries and libraries with LD_LIBRARY_PATH when host==target +# +# Signed-off-by: Denys Dmytriyenko + +Index: Python-2.6.6/Modules/main.c +=================================================================== +--- Python-2.6.6.orig/Modules/main.c ++++ Python-2.6.6/Modules/main.c +@@ -327,6 +327,9 @@ Py_Main(int argc, char **argv) + + /* case 'J': reserved for Jython */ + ++ case 'O': /* ignore it */ ++ break; ++ + case 'N': + Py_OptimizeFlag=0; + break; diff --git a/meta-openvuplus/recipes-devtools/python/python_2.7.3.bbappend b/meta-openvuplus/recipes-devtools/python/python_2.7.3.bbappend index 9a2b602..0045644 100644 --- a/meta-openvuplus/recipes-devtools/python/python_2.7.3.bbappend +++ b/meta-openvuplus/recipes-devtools/python/python_2.7.3.bbappend @@ -1,12 +1,14 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" -PR .= "-vuplus0" +PR .= "-vuplus1" SRC_URI += " \ file://some_configure_fixes.patch \ file://fix_pthread_site.patch \ file://no-ldconfig.patch \ file://ctypes-error-handling-fix.patch \ + file://04-default-is-optimized.patch \ + file://99-ignore-optimization-flag.patch \ " EXTRA_OECONF += " \ -- 2.7.4