Bugs item #1689617, was opened at 2007-03-28 04:26 Message generated for change (Comment added) made by mforbes You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1689617&group_id=5470
Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Build Group: Python 2.5 Status: Open Resolution: None Priority: 5 Private: No Submitted By: Michael Forbes (mforbes) Assigned to: Nobody/Anonymous (nobody) Summary: Intel icc build fails with optimizations -O2 Initial Comment: When building python 2.5 with the free Intel compilers for non-commercial use (icc), the build works without optimizations, but fails when optimizations -O2 and -O3 are used. The compilation proceedes without errors (though there are lot's of warnings and remarks) and makes a python executable, but when the python setup starts, the intepreter cannot import certain packages and cannot add two strings. case $MAKEFLAGS in \ *-s*) CC='icc -pthread' LDSHARED='icc -pthread -shared' OPT='-DNDEBUG -g -O2 -Ob2 -w1' ./python -E ./setup.py -q build;; \ *) CC='icc -pthread' LDSHARED='icc -pthread -shared' OPT='-DNDEBUG -g -O2 -Ob2 -w1' ./python -E ./setup.py build;; \ esac 'import site' failed; use -v for traceback Traceback (most recent call last): File "./setup.py", line 6, in <module> import sys, os, imp, re, optparse File "/int/apps/mmf/src/Python-2.5_intel/Lib/optparse.py", line 71, in <module> import textwrap File "/int/apps/mmf/src/Python-2.5_intel/Lib/textwrap.py", line 10, in <module> import string, re File "/int/apps/mmf/src/Python-2.5_intel/Lib/string.py", line 26, in <module> letters = lowercase + uppercase SystemError: error return without exception set make: *** [sharedmods] Error 1 For example: $ ./python 'import site' failed; use -v for traceback Python 2.5 (r25:51908, Mar 27 2007, 20:10:22) [GCC Intel(R) C++ gcc 3.4 mode] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> a = "123" >>> a + "12" Traceback (most recent call last): File "<stdin>", line 1, in <module> SystemError: error return without exception set >>> Note that both the import of the site file fails and the addition fails. Python was configured with the following options: ./configure --with-gcc=icc\ --with-cxx-main=icc\ --prefix=/int/apps/mmf/apps/Python-2.5_intel/\ OPT="-g -O2 -Ob2 -w1" ---------------------------- When compiled with fewer optimiztions, everything seems to work. ./configure --with-gcc=icc\ --with-cxx-main=icc\ --prefix=/int/apps/mmf/apps/Python-2.5_intel/\ OPT="-g -O1 -Ob2 -w1" ---------------------------------------------------------------------- >Comment By: Michael Forbes (mforbes) Date: 2007-04-01 00:53 Message: Logged In: YES user_id=253921 Originator: YES I have narrowed the problem a bit to the file Python/ceval.c. If you build this manually without optimizations, then everything works fine ("make test" works). icc -pthread -c -fno-strict-aliasing -DNDEBUG -g -w1 -O1 \ -I. -I./Include -DPy_BUILD_CORE -o Python/ceval.o Python/ceval.c I have included the warnings the compiler spits out (but it spits out similar warnings everywhere, so I doubt that these are the problem) and attached the "optimization report". I tried turning off as much as possible (inlining, loop unrolling etc.) but could still not get it to work. There are some threads about loop unrolling issues with icc, but these were for -O3 optimizations: http://softwarecommunity.intel.com/isn/community/en-us/forums/thread/321812.aspx If I compile with -O1 and -Ob1 then it breaks and I get the optimization report attached. The wierd thing is that if I use -O1 and -finline, I get an empty optimization report and it works. TFM states that "-finline [is the] Same as -Ob1." This at least is a compiler problem! I suspect that -Ob1 is doing more than just inlining (it looks that way from the report) so I am not exactly sure where the problem is here yet. icc -pthread -c -fno-strict-aliasing -DNDEBUG -g -Wall -O1\ -Ob1 -opt-report -opt-report-level=max -opt-report-file=opt.rep.txt\ -I. -I./Include -DPy_BUILD_CORE -o Python/ceval.o Python/ceval.c Python/ceval.c(198): remark #869: parameter "self" was never referenced PyEval_GetCallStats(PyObject *self) ^ Python/ceval.c(2710): remark #981: operands are evaluated in unspecified order PyString_AsString(keyword)); ^ Python/ceval.c(2706): remark #981: operands are evaluated in unspecified order PyErr_Format(PyExc_TypeError, ^ Python/ceval.c(2722): remark #981: operands are evaluated in unspecified order PyString_AsString(keyword)); ^ Python/ceval.c(2717): remark #981: operands are evaluated in unspecified order PyErr_Format(PyExc_TypeError, ^ Python/ceval.c(3690): remark #981: operands are evaluated in unspecified order PyEval_GetFuncDesc(func), ^ Python/ceval.c(3686): remark #981: operands are evaluated in unspecified order PyErr_Format(PyExc_TypeError, ^ Python/ceval.c(3800): remark #981: operands are evaluated in unspecified order PyEval_GetFuncDesc(func)); ^ Python/ceval.c(3796): remark #981: operands are evaluated in unspecified order PyErr_Format(PyExc_TypeError, ^ Python/ceval.c(3815): remark #981: operands are evaluated in unspecified order PyEval_GetFuncDesc(func)); ^ Python/ceval.c(3811): remark #981: operands are evaluated in unspecified order PyErr_Format(PyExc_TypeError, ^ File Added: opt.rep.txt ---------------------------------------------------------------------- Comment By: Michael Forbes (mforbes) Date: 2007-03-31 20:31 Message: Logged In: YES user_id=253921 Originator: YES It does not appear to be a problem with aliasing (icc accepts the -fno-strict-aliasing flag and it is set by default using ./configure. It is another question of whether or not icc behaves this flag!). This looks similar to a previous problem but I am not using any processor specific optimizations: http://mail.python.org/pipermail/python-list/2005-March/312145.html ---------------------------------------------------------------------- Comment By: Neal Norwitz (nnorwitz) Date: 2007-03-31 19:56 Message: Logged In: YES user_id=33168 Originator: NO My guess is that it relates to strict aliasing (which Python violates). Can you find the equivalent flag to gcc's -fno-strict-aliasing in icc? ---------------------------------------------------------------------- Comment By: Michael Forbes (mforbes) Date: 2007-03-29 22:06 Message: Logged In: YES user_id=253921 Originator: YES I have spoken with some people who have had similar issues with the intel compilers in other applications, so it looks like it might be a compiler bug. I will look into this. Can anyone confirm this behaviour? (I only have access to one linux box). ---------------------------------------------------------------------- Comment By: Martin v. Löwis (loewis) Date: 2007-03-28 11:32 Message: Logged In: YES user_id=21627 Originator: NO Can you debug this further to determine a specific problem? It could be a compiler bug also, for all I can tell. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1689617&group_id=5470 _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com