Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

linbox 1.3.2 cause a great number of failures in sage-5.4rc1 #166

Closed
kiwifb opened this issue Oct 10, 2012 · 17 comments
Closed

linbox 1.3.2 cause a great number of failures in sage-5.4rc1 #166

kiwifb opened this issue Oct 10, 2012 · 17 comments
Assignees

Comments

@kiwifb
Copy link
Collaborator

kiwifb commented Oct 10, 2012

Numerous failure killed by signal 6.
sage -t -long -force_lib -verbose "devel/sage-main/sage/schemes/elliptic_curves/heegner.py" gives the following:

Trying:
    E.heegner_index(-Integer(7))###line 81:_sage_    >>> E.heegner_index(-7)
Expecting:
    3.0000?


ERROR (at getWritePointer in /usr/include/linbox/matrix/permutation-matrix.h:175): 
Precondition not met:P_.size()
terminate called after throwing an instance of 'LinBox::PreconditionFailed'
/usr/lib64/libcsage.so(print_backtrace+0x23)[0x7f361162729f]
/usr/lib64/libcsage.so(sigdie+0x1d)[0x7f36116275b7]
/usr/lib64/libcsage.so(sage_signal_handler+0x172)[0x7f361162776d]
/lib64/libpthread.so.0(+0x10bf0)[0x7f3613522bf0]
/lib64/libc.so.6(gsignal+0x35)[0x7f36131a2b45]
/lib64/libc.so.6(abort+0x17b)[0x7f36131a3fbb]
/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/libstdc++.so.6(_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0x11d)[0x7f36107817cd]
/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/libstdc++.so.6(+0xb8976)[0x7f361077f976]
/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/libstdc++.so.6(+0xb89a3)[0x7f361077f9a3]
/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/libstdc++.so.6(+0xb8a9e)[0x7f361077fa9e]
/usr/lib64/python2.7/site-packages/sage/matrix/matrix_modn_dense_float.so(_ZN6LinBox10LQUPMatrixINS_7ModularIfEEEC2ERNS_10BlasMatrixIS2_EERNS_15BlasPermutationImEES9_+0x426)[0x7f35f19ee026]
/usr/lib64/python2.7/site-packages/sage/matrix/matrix_modn_dense_float.so(_ZN6LinBox17EchelonFormDomainINS_7ModularIfEEE20columnReducedEchelonINS_10BlasMatrixIS2_EEEEiRT_+0x79)[0x7f35f19ee81d]
/usr/lib64/python2.7/site-packages/sage/matrix/matrix_modn_dense_float.so(_ZN6LinBox17EchelonFormDomainINS_7ModularIfEEE17rowReducedEchelonINS_10BlasMatrixIS2_EEEEiRT_RKS7_+0xbd)[0x7f35f19eefad]
/usr/lib64/python2.7/site-packages/sage/matrix/matrix_modn_dense_float.so(+0x36217)[0x7f35f19b3217]
/usr/lib64/libpython2.7.so.1.0(PyCFunction_Call+0x76)[0x7f36137ae85b]
/usr/lib64/libpython2.7.so.1.0(PyObject_Call+0x75)[0x7f36137798a9]
/usr/lib64/python2.7/site-packages/sage/matrix/matrix_modn_dense_float.so(+0x28630)[0x7f35f19a5630]
/usr/lib64/libpython2.7.so.1.0(PyCFunction_Call+0x76)[0x7f36137ae85b]
/usr/lib64/libpython2.7.so.1.0(PyObject_Call+0x75)[0x7f36137798a9]
/usr/lib64/python2.7/site-packages/sage/matrix/matrix2.so(+0xcb626)[0x7f35f3243626]
@ghost ghost assigned kiwifb Oct 10, 2012
@kiwifb
Copy link
Collaborator Author

kiwifb commented Oct 12, 2012

More or less fixed fflas-ffpack but now linbox is broken for real. It wants lapack but is not linked to it. It uses mpfr but is not linked to it.
Sage's version doesn't need either????

@kiwifb
Copy link
Collaborator Author

kiwifb commented Oct 14, 2012

gdb

sage -t -long -force_lib -gdb "devel/sage-main/sage/schemes/elliptic_curves/heegner.py"
********************************************************************************
Type r at the (gdb) prompt to run the doctests.
Type bt if there is a crash to see a traceback.
********************************************************************************
GNU gdb (Gentoo 7.3.1 p2) 7.3.1
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
For bug reporting instructions, please see:
...
Reading symbols from /usr/bin/python...(no debugging symbols found)...done.
(gdb) run
Starting program: /usr/bin/python /home/fbissey/.sage/tmp/heegner_12218.py
warning: Could not load shared library symbols for linux-vdso.so.1.
Do you need "set solib-search-path" or "set sysroot"?
process 12221 is executing new program: /usr/bin/python2.7
warning: Could not load shared library symbols for linux-vdso.so.1.
Do you need "set solib-search-path" or "set sysroot"?
[Thread debugging using libthread_db enabled]
ERROR (at getWritePointer in /usr/include/linbox/matrix/permutation-matrix.h:175): 
Precondition not met:P_.size()
terminate called after throwing an instance of 'LinBox::PreconditionFailed'
Program received signal SIGABRT, Aborted.
0x00007ffff749cb45 in __GI_raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
64      ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
        in ../nptl/sysdeps/unix/sysv/linux/raise.c
(gdb) bt
#0  0x00007ffff749cb45 in __GI_raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#1  0x00007ffff749dfbb in __GI_abort () at abort.c:91
#2  0x00007ffff4a327cd in __gnu_cxx::__verbose_terminate_handler ()
    at /scratch/portage/sys-devel/gcc-4.6.3/work/gcc-4.6.3/libstdc++-v3/libsupc++/vterminate.cc:95
#3  0x00007ffff4a30976 in __cxxabiv1::__terminate (handler=)
    at /scratch/portage/sys-devel/gcc-4.6.3/work/gcc-4.6.3/libstdc++-v3/libsupc++/eh_terminate.cc:40
#4  0x00007ffff4a309a3 in std::terminate () at /scratch/portage/sys-devel/gcc-4.6.3/work/gcc-4.6.3/libstdc++-v3/libsupc++/eh_terminate.cc:50
#5  0x00007ffff4a30a9e in __cxxabiv1::__cxa_throw (obj=0x2d61440, tinfo=, dest=)
    at /scratch/portage/sys-devel/gcc-4.6.3/work/gcc-4.6.3/libstdc++-v3/libsupc++/eh_throw.cc:83
#6  0x00007fffd5cbedb6 in getWritePointer (this=) at /usr/include/linbox/matrix/permutation-matrix.h:175
#7  LinBox::LQUPMatrix >::LQUPMatrix (this=0x7fffffff8aa0, A=, P=, Q=)
    at /usr/include/linbox/matrix/factorized-matrix.inl:810
#8  0x00007fffd5cbf5ad in LinBox::EchelonFormDomain >::columnReducedEchelon > > (this=0x41cda70, E=...) at /usr/include/linbox/algorithms/echelon-form.h:205
#9  0x00007fffd5cbfd3d in LinBox::EchelonFormDomain >::rowReducedEchelon > >
    (this=0x41cda70, E=..., A=...) at /usr/include/linbox/algorithms/echelon-form.h:107
#10 0x00007fffd5c832e7 in __pyx_f_4sage_6matrix_23matrix_modn_dense_float_linbox_echelonize_efd (__pyx_v_ncols=2, __pyx_v_entries=0x848d140, 
    __pyx_v_modulus=, __pyx_v_nrows=0) at sage/matrix/matrix_modn_dense_float.cpp:4043
#11 __pyx_pf_4sage_6matrix_23matrix_modn_dense_float_26Matrix_modn_dense_template_34_echelonize_linbox (__pyx_v_efd=0x7ffff7d90bf0, 
    __pyx_v_self=0x83e52f8) at sage/matrix/matrix_modn_dense_float.cpp:11210
#12 __pyx_pw_4sage_6matrix_23matrix_modn_dense_float_26Matrix_modn_dense_template_35_echelonize_linbox (__pyx_v_self=0x83e52f8, 
    __pyx_args=, __pyx_kwds=) at sage/matrix/matrix_modn_dense_float.cpp:11115
#13 0x00007ffff7aa885b in PyCFunction_Call (func=0x83cb9e0, arg=0x7ffff7fba050, kw=) at Objects/methodobject.c:85
#14 0x00007ffff7a738a9 in PyObject_Call (func=0x83cb9e0, arg=0x7ffff7fba050, kw=0x848d770) at Objects/abstract.c:2529
#15 0x00007fffd5c755f9 in __pyx_pf_4sage_6matrix_23matrix_modn_dense_float_26Matrix_modn_dense_template_32echelonize (
    __pyx_v_kwds=0x848e8d0, __pyx_v_algorithm=0x1d92360, __pyx_v_self=0x83e52f8) at sage/matrix/matrix_modn_dense_float.cpp:10823
#16 __pyx_pw_4sage_6matrix_23matrix_modn_dense_float_26Matrix_modn_dense_template_33echelonize (__pyx_v_self=0x83e52f8, 
    __pyx_args=, __pyx_kwds=) at sage/matrix/matrix_modn_dense_float.cpp:10674

@kiwifb
Copy link
Collaborator Author

kiwifb commented Oct 15, 2012

OK so I discovered that while we didn't patch configure.ac/makefile.am eautoreconf was run. Because AT_M4DIR was not empty in the ebuild. elibtoolize is still run and there is nothing we can do about it I think. It may be the source of trouble with linbox in conjunction with very bad config macros. It is the only reason I can think we end up with something different from sage.
Right now for example if configure detect, say iml, LINBOX_HAVE_IML will be defined in linbox-config.h IML_LIBS will be defined to -liml but IML_LIBS will not be added to libutil_la_LDFLAGS anywhere. So the code for iml is enabled by the define but not linked... I wonder why it works in sage [update I found out that iml in sage is too old! So it may be that.]. In the case of iml setting --with-iml=no seem to suppress the iml problem.

And f course our problem may be elsewhere.

@kiwifb
Copy link
Collaborator Author

kiwifb commented Oct 15, 2012

LB_CHECK_* functions have subtle bracketing problems.

@kiwifb
Copy link
Collaborator Author

kiwifb commented Oct 17, 2012

From the vanilla sage shell:

(sage-sh) fbissey@QCD-nzi3:sage-5.4.rc0$ ldd -r local/lib/liblinboxsage.so.0.0.0 
        linux-vdso.so.1 (0x00007fff457ff000)
        libntl.so => /home/work/fbissey/sandbox/sage-5.4.rc0/local/lib/libntl.so (0x00007f51995f5000)
        liblinbox.so.0 => /home/work/fbissey/sandbox/sage-5.4.rc0/local/lib/liblinbox.so.0 (0x00007f51993c5000)
        libgivaro.so.0 => /home/work/fbissey/sandbox/sage-5.4.rc0/local/lib/libgivaro.so.0 (0x00007f5199168000)
        libgmpxx.so.1 => /home/work/fbissey/sandbox/sage-5.4.rc0/local/lib/libgmpxx.so.1 (0x00007f5198f62000)
        libgmp.so.7 => /home/work/fbissey/sandbox/sage-5.4.rc0/local/lib/libgmp.so.7 (0x00007f5198ce7000)
        libcblas.so => /home/work/fbissey/sandbox/sage-5.4.rc0/local/lib/libcblas.so (0x00007f5198ac7000)
        libatlas.so => /home/work/fbissey/sandbox/sage-5.4.rc0/local/lib/libatlas.so (0x00007f51982ef000)
        libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/libstdc++.so.6 (0x00007f5197fa1000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f5197cae000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f5197907000)
        libgcc_s.so.1 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/libgcc_s.so.1 (0x00007f51976f0000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f51974d3000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f5199e21000)
undefined symbol: mpfr_mul_2ui  (/home/work/fbissey/sandbox/sage-5.4.rc0/local/lib/liblinbox.so.0)
undefined symbol: mpfr_set_z    (/home/work/fbissey/sandbox/sage-5.4.rc0/local/lib/liblinbox.so.0)
undefined symbol: mpfr_clear    (/home/work/fbissey/sandbox/sage-5.4.rc0/local/lib/liblinbox.so.0)
undefined symbol: mpfr_set_erangeflag   (/home/work/fbissey/sandbox/sage-5.4.rc0/local/lib/liblinbox.so.0)
undefined symbol: mpfr_mul      (/home/work/fbissey/sandbox/sage-5.4.rc0/local/lib/liblinbox.so.0)
undefined symbol: mpfr_rint     (/home/work/fbissey/sandbox/sage-5.4.rc0/local/lib/liblinbox.so.0)
undefined symbol: mpfr_set_d    (/home/work/fbissey/sandbox/sage-5.4.rc0/local/lib/liblinbox.so.0)
undefined symbol: mpfr_set4     (/home/work/fbissey/sandbox/sage-5.4.rc0/local/lib/liblinbox.so.0)
undefined symbol: mpfr_add      (/home/work/fbissey/sandbox/sage-5.4.rc0/local/lib/liblinbox.so.0)
undefined symbol: mpfr_set_nan  (/home/work/fbissey/sandbox/sage-5.4.rc0/local/lib/liblinbox.so.0)
undefined symbol: __gmpfr_out_str       (/home/work/fbissey/sandbox/sage-5.4.rc0/local/lib/liblinbox.so.0)
undefined symbol: mpfr_sub      (/home/work/fbissey/sandbox/sage-5.4.rc0/local/lib/liblinbox.so.0)
undefined symbol: mpfr_div      (/home/work/fbissey/sandbox/sage-5.4.rc0/local/lib/liblinbox.so.0)
undefined symbol: mpfr_get_si   (/home/work/fbissey/sandbox/sage-5.4.rc0/local/lib/liblinbox.so.0)
undefined symbol: mpfr_get_z_2exp       (/home/work/fbissey/sandbox/sage-5.4.rc0/local/lib/liblinbox.so.0)
undefined symbol: mpfr_set_si   (/home/work/fbissey/sandbox/sage-5.4.rc0/local/lib/liblinbox.so.0)
undefined symbol: mpfr_init     (/home/work/fbissey/sandbox/sage-5.4.rc0/local/lib/liblinbox.so.0)
undefined symbol: mpfr_cmp3     (/home/work/fbissey/sandbox/sage-5.4.rc0/local/lib/liblinbox.so.0)
undefined symbol: mpfr_set_default_prec (/home/work/fbissey/sandbox/sage-5.4.rc0/local/lib/liblinbox.so.0)
undefined symbol: mpfr_set_si   (local/lib/liblinboxsage.so.0.0.0)
undefined symbol: maxMagnMP     (local/lib/liblinboxsage.so.0.0.0)
undefined symbol: mpfr_cmp3     (local/lib/liblinboxsage.so.0.0.0)
undefined symbol: mpfr_get_z_2exp       (local/lib/liblinboxsage.so.0.0.0)
undefined symbol: findRNS       (local/lib/liblinboxsage.so.0.0.0)
undefined symbol: mpfr_mul      (local/lib/liblinboxsage.so.0.0.0)
undefined symbol: mpfr_set_nan  (local/lib/liblinboxsage.so.0.0.0)
undefined symbol: RNSbound      (local/lib/liblinboxsage.so.0.0.0)
undefined symbol: certSolveMP   (local/lib/liblinboxsage.so.0.0.0)
undefined symbol: mpfr_rint     (local/lib/liblinboxsage.so.0.0.0)
undefined symbol: mpfr_get_si   (local/lib/liblinboxsage.so.0.0.0)
undefined symbol: certSolveRedMP        (local/lib/liblinboxsage.so.0.0.0)
undefined symbol: mpfr_sub      (local/lib/liblinboxsage.so.0.0.0)
undefined symbol: mpfr_set_z    (local/lib/liblinboxsage.so.0.0.0)
undefined symbol: mpfr_init     (local/lib/liblinboxsage.so.0.0.0)
undefined symbol: nonsingSolvLlhsMM     (local/lib/liblinboxsage.so.0.0.0)
undefined symbol: mpfr_set_d    (local/lib/liblinboxsage.so.0.0.0)
undefined symbol: mpfr_clear    (local/lib/liblinboxsage.so.0.0.0)
undefined symbol: mpfr_mul_2ui  (local/lib/liblinboxsage.so.0.0.0)
undefined symbol: __gmpfr_out_str       (local/lib/liblinboxsage.so.0.0.0)
undefined symbol: mpfr_add      (local/lib/liblinboxsage.so.0.0.0)
undefined symbol: mpfr_set_erangeflag   (local/lib/liblinboxsage.so.0.0.0)
undefined symbol: mpfr_div      (local/lib/liblinboxsage.so.0.0.0)
undefined symbol: mpfr_set_default_prec (local/lib/liblinboxsage.so.0.0.0)
undefined symbol: nonsingSolvRNSMM      (local/lib/liblinboxsage.so.0.0.0)
undefined symbol: mpfr_set4     (local/lib/liblinboxsage.so.0.0.0)
(sage-sh) fbissey@QCD-nzi3:sage-5.4.rc0$ ldd -r local/lib/liblinbox.so.0.0.0                                                                 
        linux-vdso.so.1 (0x00007fffdf1ff000)
        libgivaro.so.0 => /home/work/fbissey/sandbox/sage-5.4.rc0/local/lib/libgivaro.so.0 (0x00007f0971795000)
        libgmpxx.so.1 => /home/work/fbissey/sandbox/sage-5.4.rc0/local/lib/libgmpxx.so.1 (0x00007f097158e000)
        libgmp.so.7 => /home/work/fbissey/sandbox/sage-5.4.rc0/local/lib/libgmp.so.7 (0x00007f0971314000)
        libcblas.so => /home/work/fbissey/sandbox/sage-5.4.rc0/local/lib/libcblas.so (0x00007f09710f4000)
        libatlas.so => /home/work/fbissey/sandbox/sage-5.4.rc0/local/lib/libatlas.so (0x00007f097091b000)
        libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/libstdc++.so.6 (0x00007f09705ce000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f09702db000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f096ff33000)
        libgcc_s.so.1 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/libgcc_s.so.1 (0x00007f096fd1d000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f096fb00000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f0971c22000)
undefined symbol: mpfr_mul_2ui  (local/lib/liblinbox.so.0.0.0)
undefined symbol: mpfr_set_z    (local/lib/liblinbox.so.0.0.0)
undefined symbol: mpfr_clear    (local/lib/liblinbox.so.0.0.0)
undefined symbol: mpfr_set_erangeflag   (local/lib/liblinbox.so.0.0.0)
undefined symbol: mpfr_mul      (local/lib/liblinbox.so.0.0.0)
undefined symbol: mpfr_rint     (local/lib/liblinbox.so.0.0.0)
undefined symbol: mpfr_set_d    (local/lib/liblinbox.so.0.0.0)
undefined symbol: mpfr_set4     (local/lib/liblinbox.so.0.0.0)
undefined symbol: mpfr_add      (local/lib/liblinbox.so.0.0.0)
undefined symbol: mpfr_set_nan  (local/lib/liblinbox.so.0.0.0)
undefined symbol: __gmpfr_out_str       (local/lib/liblinbox.so.0.0.0)
undefined symbol: mpfr_sub      (local/lib/liblinbox.so.0.0.0)
undefined symbol: mpfr_div      (local/lib/liblinbox.so.0.0.0)
undefined symbol: mpfr_get_si   (local/lib/liblinbox.so.0.0.0)
undefined symbol: mpfr_get_z_2exp       (local/lib/liblinbox.so.0.0.0)
undefined symbol: mpfr_set_si   (local/lib/liblinbox.so.0.0.0)
undefined symbol: mpfr_init     (local/lib/liblinbox.so.0.0.0)
undefined symbol: mpfr_cmp3     (local/lib/liblinbox.so.0.0.0)
undefined symbol: mpfr_set_default_prec (local/lib/liblinbox.so.0.0.0)

so that linking problem is upstream as well....

@strogdon
Copy link
Contributor

Curiously, deleting "append-ldflags -lmpfr" from pkg_setup() and adding "--with-mpfr=no" to myeconfargs in the linbox ebuild cures the undefined symbol issue and sage will start. However the heegner.py test still fails with the same failure.

@kiwifb
Copy link
Collaborator Author

kiwifb commented Oct 17, 2012

On Wed, 17 Oct 2012 12:53:34 Steven Trogdon wrote:

Curiously, deleting "append-ldflags -lmpfr" from pkg_setup() and adding
"--with-mpfr=no" to myeconfargs in the linbox ebuild cures the undefined
symbol issue and sage will start. However the heegner.py test still fails
with the same failure.

I have been through that phase. I tried quite a number of combination.
Although I thought doing that was still giving you missing symbols for mpfr
in liblinboxsage.so.
Because vanilla sage appear to default (even if by accident) to using mpfr and
iml I think we should do too - but with with linbox libraries completely
resolved unlike in vanilla. I am pushing it after this email.
I'll look at givaro next.

Cheers,
Francois

@kiwifb
Copy link
Collaborator Author

kiwifb commented Oct 17, 2012

Anyone who tried 5.4rc1, what blas/cblas are you using?

@strogdon
Copy link
Contributor

On Wed, 17 Oct 2012 14:04:32 -0700
François Bissey notifications@github.com wrote:

Anyone who tried 5.4rc1, what blas/cblas are you using?


Reply to this email directly or view it on GitHub:
#166 (comment)

I'm using gslcblas and blas-reference on all platforms.

@kiwifb
Copy link
Collaborator Author

kiwifb commented Oct 20, 2012

tried atlas-3.8.4 and 3.10 same failure. bt full is slightly different each time though. This is very strange. I also took a vanilla and linked the system liblinbox.so.0 in local/lib and ran the same test from vanilla sage. Everything passed. So linbox itself seems to be ok. There may be something in fflas-ffpack but I don't know what - it's just headers and inline files.

@strogdon
Copy link
Contributor

As a shot in the dark I tried:

--- module_list.py.orig 2012-10-20 13:56:31.000000000 -0500
+++ module_list.py      2012-10-20 14:13:16.000000000 -0500
@@ -991,13 +991,13 @@
               sources = ['sage/matrix/matrix_modn_dense_float.pyx'],
               language="c++",
               libraries = ['linbox', 'givaro', 'mpfr', 'gmpxx', 'gmp', 'gslcblas'],
-              extra_compile_args = ['-DDISABLE_COMMENTATOR'] + givaro_extra_compile_args),
+              extra_compile_args = ['-DDISABLE_COMMENTATOR'] + givaro_extra_compile_args + ['-DNDEBUG']),

     Extension('sage.matrix.matrix_modn_dense_double',
               sources = ['sage/matrix/matrix_modn_dense_double.pyx'],
               language="c++",
               libraries = ['linbox', 'givaro', 'mpfr', 'gmpxx', 'gmp', 'gslcblas'],
-              extra_compile_args = ['-DDISABLE_COMMENTATOR'] + givaro_extra_compile_args),
+              extra_compile_args = ['-DDISABLE_COMMENTATOR'] + givaro_extra_compile_args + ['-DNDEBUG']),

     Extension('sage.matrix.matrix_modn_sparse',
               sources = ['sage/matrix/matrix_modn_sparse.pyx'],

and the SIGABRTs are no longer present. Is something being covered up by doing this?

@kiwifb
Copy link
Collaborator Author

kiwifb commented Oct 21, 2012

Good shot. Of course vanilla sage is fully compiled with "-DNDEBUG" has it comes from their version of python. We used to add it and then limited its use to singular where it is needed. The good question here is: is it necessary for givaro or linbox? All linbox compilation are associated with givaro so adding it to givaro_extra_compile_args should cover us. My money is on linbox rather than givaro but we never know.

kiwifb added a commit that referenced this issue Oct 21, 2012
@kiwifb
Copy link
Collaborator Author

kiwifb commented Oct 21, 2012

hum doesn't work for me....

@strogdon
Copy link
Contributor

This is strange. The most up-to-date commit also results in a failure here. However adding -DNDEBUG to just the two locations mentioned above gives no SIGABRT. I've tried this on three machines. Now the Precondition not met error is thrown by code in the linbox header util/debug.h where there is a #ifdef NDEBUG ... endif block. So unless I misunderstand what's going on something must be defining NDEBUG in order to get debug output.

@strogdon
Copy link
Contributor

correction: it looks like the #ifdef NDEBUG ... #endif block in util/debug.h is commented out. So I don't see where the source of the Precondition not met error is when the two -DNDEBUGs are not added.

@strogdon
Copy link
Contributor

OK, try this sed line

sed -i "s:-D__STDC_LIMIT_MACROS:-D__STDC_LIMIT_MACROS', '-DNDEBUG:g" \

and see if fixes things on your end. This worked here.

@kiwifb
Copy link
Collaborator Author

kiwifb commented Oct 22, 2012

I see I would have had the syntax wrong and it interpreted the thing another way. Thank you very much for your hard work on this Steve. And with this I will close this ticket.

The only annoyning thing left to do in 5.4 is getting a newer jmol. But that won't be easy as we need to unbundle a new jar not currently in portage. I hope someone else (Jeffro?) pick that one up.

@kiwifb kiwifb closed this as completed Oct 22, 2012
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants