Continuing my monologe;) Mathias Waack wrote: > I've embedded python into a legacy application. It works - most of the > time. In some special situations the app crashes executing the "import > random". There are two different situations: > > 1. the sources compiled with gcc 4.1.2 crash with illegal instruction > error: > > (running my application) > > Python 2.3.5 (#1, Jun 9 2006, 11:49:02) > [GCC 4.1.2 20060604 (prerelease) (Debian 4.1.1-2)] on linux2 > Type "help", "copyright", "credits" or "license" for more information. > dlopen("/usr/lib/python2.3/lib-dynload/readline.so", 2); > import readline # dynamically loaded > from /usr/lib/python2.3/lib-dynload/readline.so >>>> import random > import random # from /usr/lib/python2.3/random.py > # can't create /usr/lib/python2.3/random.pyc > dlopen("/usr/lib/python2.3/lib-dynload/math.so", 2); > import math # dynamically loaded from > /usr/lib/python2.3/lib-dynload/math.so Illegal instruction > > Running python itself works.
The error occurred in calls to math.log(). I've patched mathmodule.c and call log1p(x-1) instead of log. It works as a first workaround. BTW, does anybody know why the c-lib offers both log and log1p? Mathias -- http://mail.python.org/mailman/listinfo/python-list