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>
This commit is contained in:
Robert Yang
2013-05-08 16:29:48 +08:00
committed by Richard Purdie
parent a86b00651f
commit 2f7c588c5a
5 changed files with 1 additions and 104 deletions

View File

@@ -1,60 +0,0 @@
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':

View File

@@ -1,21 +0,0 @@
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;