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
-~----------~----~----~----~------~----~------~--~---

Reply via email to