Michael, An update. I rebuilt liblinboxsage.a by omiting Communicator.o and using a simple g++ -shared -o command that tied in the .o files. I think the crash occured at Communicator.c but I saw a - DDISABLE_COMMUNICATOR. So, I rebuilt the .a file and then it loaded properly until the next crash. The earlier crashes were linked to the first instance of a routine not executing properly due to a shared object that was not built properly. Now I am facing another kind of error where the same routine executes correctly a few times and then crashes at return sage.rings.rational.Rational(x, base) in rational_field.py. I modified it:
(Pdb) c rational_field.py: SSS: after crash myretval = 1 rational_field.py: SSS: before crash, x = 1 base = 0 > /usr/local/PET/src/build/sage-3.1.1/local/lib/python2.5/site-packages/sage/rings/rational_field.py(221)__call__() -> myretval = sage.rings.rational.Rational(x, base) (Pdb) s ------------------------------------------------------------ Unhandled SIGSEGV: A segmentation fault occured in SAGE. This probably occured because a *compiled* component of SAGE has a bug in it (typically accessing invalid memory) or is not properly wrapped with _sig_on, _sig_off. You might want to run SAGE under gdb with 'sage -gdb' to debug this. But the output suggests that it works properly some times: > ./sage args = , sage_startup_cmd = , import sage.misc.misc; print sage.misc.misc.branch_current_hg_notice(sage.misc.misc.branch_current_hg()); from sage.misc.interpreter import preparser; preparser(True);import sage.all_cmdline; sage.all_cmdline._init_cmdline(globals());from sage.all import Integer, RealNumber;import os; os.chdir("/usr/local/ PET/src/build/sage-3.1.1");import sage.misc.interpreter;from sage.misc.interpreter import attached_files;from sage.all_cmdline import *;_=sage.misc.interpreter.load_startup_file("/Dev_users/ sameer/.sage//init.sage") ---------------------------------------------------------------------- | SAGE Version 3.1.1, Release Date: 2008-08-17 | | Type notebook() for the GUI, and license() for information. | ---------------------------------------------------------------------- real_mpfi: after __init__ real_mpfi: after __init__ real_mpfi: after __init__ real_mpfi: after __init__ rational_field.py: SSS: before crash, x = 0 base = 0 rational_field.py: SSS: after crash myretval = 0 rational_field.py: SSS: before crash, x = 1 base = 0 rational_field.py: SSS: after crash myretval = 1 rational_field.py: SSS: before crash, x = 0 base = 0 rational_field.py: SSS: after crash myretval = 0 rational_field.py: SSS: before crash, x = 1 base = 0 rational_field.py: SSS: after crash myretval = 1 real_mpfi: after __init__ qqbar.py: SSS: After self._descr._interval_fast : self._value = 0.? e-21 real_mpfi: after __init__ qqbar.py: SSS: After self._descr._interval_fast : self._value = 1.00000000000000000000? real_mpfi: after __init__ qqbar.py: SSS: After self._descr._interval_fast : self._value = 0.? e-21 real_mpfi: after __init__ qqbar.py: SSS: After self._descr._interval_fast : self._value = 1.00000000000000000000? real_mpfi: after __init__ qqbar.py: SSS: After self._descr._interval_fast : self._value = 0.? e-21 real_mpfi: after __init__ qqbar.py: SSS: After self._descr._interval_fast : self._value = 1.00000000000000000000? real_mpfi: after __init__ qqbar.py: SSS: After self._descr._interval_fast : self._value = 0.? e-21 real_mpfi: after __init__ qqbar.py: SSS: After self._descr._interval_fast : self._value = -1.00000000000000000000? real_mpfi: after __init__ rational_field.py: SSS: before crash, x = 0 base = 0 rational_field.py: SSS: after crash myretval = 0 rational_field.py: SSS: before crash, x = 1 base = 0 rational_field.py: SSS: after crash myretval = 1 rational_field.py: SSS: before crash, x = 0 base = 0 rational_field.py: SSS: after crash myretval = 0 rational_field.py: SSS: before crash, x = 1 base = 0 rational_field.py: SSS: after crash myretval = 1 real_mpfi: after __init__ rational_field.py: SSS: before crash, x = 0 base = 0 rational_field.py: SSS: after crash myretval = 0 rational_field.py: SSS: before crash, x = 1 base = 0 rational_field.py: SSS: after crash myretval = 1 rational_field.py: SSS: before crash, x = 1 base = 0 rational_field.py: SSS: after crash myretval = 1 rational_field.py: SSS: before crash, x = 1 base = 0 rational_field.py: SSS: after crash myretval = 1 real_mpfi: after __init__ qqbar.py: SSS: After self._descr._interval_fast : self._value = 0.? e-21 rational_field.py: SSS: before crash, x = -1 base = 0 rational_field.py: SSS: after crash myretval = -1 rational_field.py: SSS: before crash, x = 0 base = 0 rational_field.py: SSS: after crash myretval = 0 rational_field.py: SSS: before crash, x = 1 base = 0 rational_field.py: SSS: after crash myretval = 1 rational_field.py: SSS: before crash, x = 1 base = 0 ------------------------------------------------------------ Unhandled SIGSEGV: A segmentation fault occured in SAGE. This probably occured because a *compiled* component of SAGE has a bug in it (typically accessing invalid memory) or is not properly wrapped with _sig_on, _sig_off. You might want to run SAGE under gdb with 'sage -gdb' to debug this. SAGE will now terminate (sorry). ------------------------------------------------------------ What do you recommend for such a case? We seem to be chugging right along.. Thanks! - Sameer On Nov 3, 7:20 pm, mabshoff <[EMAIL PROTECTED] dortmund.de> wrote: > On Nov 3, 7:04 pm, Sameer <[EMAIL PROTECTED]> wrote: > > > Hi Michael,> > Here is an update on AIX. I found why sage startup was > > crashing in > > > > real_mpfi.so. I rebuilt libmpfi.so and recompiled real_mpfi.pyx and > > > > complex_double.pyx. The illegal instruction error was due to an error > > > > in building libmpfi.so caused by arguments given by libtool. By > > > > testing with the supplied testcases I was able to narrow it down. > > > > Ok, can you give some details what had to be changed? > > > I just did a manual: > > > % cd spkg/build; cp -r mpfi* mympfi (the package builds without error > > and deletes the sources, so it is important to copy it midway while it > > is building); > > Yes. Just run "./sage -sh", then cd into spkg/standard, tar xjf > foo.spkg, cd into foo and run ./spkg-install. > > > % cd mympfi; make; > > % gcc -shared -o libmpfi.so ../src/.libs/*.o -L/usr/local/PET/src/ > > build/sage-3.1.1/local/lib -lmpfr -lgmp > > cp libmpfi $SAGE_LOCAL/lib > > > and tested with the tests/test_mpfi to make sure it didn't crash with > > the illegal instruction. > > Ok, but why would a static library crash? > > <SNIP> > > > Thanks I will rebuild it! > > - Sameer > > Cheers, > > Michael --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-support@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-support URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---