revert OE-core commit "python: remove the default optimization" (commit : 165ed464bbb...
authorhschang <chang@dev3>
Thu, 3 Jul 2014 02:39:35 +0000 (11:39 +0900)
committerhschang <chang@dev3>
Mon, 7 Jul 2014 01:11:17 +0000 (10:11 +0900)
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.

meta-openvuplus/recipes-devtools/python/python-native/04-default-is-optimized.patch [new file with mode: 0644]
meta-openvuplus/recipes-devtools/python/python-native_2.7.3.bbappend
meta-openvuplus/recipes-devtools/python/python/04-default-is-optimized.patch [new file with mode: 0644]
meta-openvuplus/recipes-devtools/python/python/99-ignore-optimization-flag.patch [new file with mode: 0644]
meta-openvuplus/recipes-devtools/python/python_2.7.3.bbappend

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 (file)
index 0000000..8fe147e
--- /dev/null
@@ -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 <mickey@vanille-media.de>
+
+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
index 6b7c568..66116fb 100644 (file)
@@ -1,4 +1,7 @@
-PR .= "-vuplus0"
+PR .= "-vuplus1"
+
+SRC_URI += "file://04-default-is-optimized.patch"
 
 RPROVIDES_${PN} += "python-pickle-native python-pprint-native"
 
 
 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 (file)
index 0000000..7ce819a
--- /dev/null
@@ -0,0 +1,60 @@
+Upstream-Status: Inappropriate [embedded specific]
+
+Updated original patch for python 2.7.3
+
+Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
+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 <mickey@vanille-media.de>
+
+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 (file)
index 0000000..a5d9812
--- /dev/null
@@ -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 <denis@denix.org>
+
+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;
index 9a2b602..0045644 100644 (file)
@@ -1,12 +1,14 @@
 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
 
 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 \
 
 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 += " \
 "
 
 EXTRA_OECONF += " \