cschwan / sage-on-gentoo

(Unofficial) Gentoo Overlay for Sage- and Sage-related ebuilds
79 stars 26 forks source link

fplll - undefined symbol: _ZN5fplll12LDConvHelper4tempE #710

Closed strogdon closed 8 months ago

strogdon commented 1 year ago

On vanilla I have the failure

sage -t --long --warn-long 93.6 --random-seed=87359793992300476882619054025347213940 src/sage/schemes/elliptic_curves/ell_rational_field.py
**********************************************************************
File "src/sage/schemes/elliptic_curves/ell_rational_field.py", line 5791, in sage.schemes.elliptic_curves.ell_rational_field.EllipticCurve_rational_field.integral_x_coords_in_interval
Failed example:
    E.integral_points()
Exception raised:
    Traceback (most recent call last):
      File "/local/sage-git/sage/src/sage/doctest/forker.py", line 695, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/local/sage-git/sage/src/sage/doctest/forker.py", line 1093, in compile_and_execute
        exec(compiled, globs)
      File "<doctest sage.schemes.elliptic_curves.ell_rational_field.EllipticCurve_rational_field.integral_x_coords_in_interval[6]>", line 1, in <module>
        E.integral_points()
      File "/local/sage-git/sage/src/sage/schemes/elliptic_curves/ell_rational_field.py", line 6094, in integral_points
        m_LLL = m.LLL()
      File "sage/matrix/matrix_integer_dense.pyx", line 3247, in sage.matrix.matrix_integer_dense.Matrix_integer_dense.LLL
        from fpylll import LLL, IntegerMatrix
      File "/local/sage-git/sage/local/var/lib/sage/venv-python3.10/lib/python3.10/site-packages/fpylll/__init__.py", line 3, in <module>
        from .fplll.integer_matrix import IntegerMatrix
      File "src/fpylll/fplll/integer_matrix.pyx", line 1, in init fpylll.fplll.integer_matrix
      File "src/fpylll/util.pyx", line 1, in init fpylll.util
    ImportError: /local/sage-git/sage/local/var/lib/sage/venv-python3.10/lib/python3.10/site-packages/fpylll/fplll/gso.cpython-310-x86_64-linux-gnu.so: undefined symbol: _ZN5fplll12LDConvHelper4tempE

Rebuilding Sage's fpylll resolved the issue. So something changed. The same doctest failed on s-o-g and rebuilding the s-o-g fpylll resolved things. Should fpylll have been rebuilt automatically? I believe I can understand the vanilla issue since other system libs could be linked into fpylll. But I don't know about s-o-g? This is with 9.7.rc1 and I haven't tested since 9.7.beta8.

kiwifb commented 1 year ago

Yes, it is likely that an upgrade in fplll should trigger a rebuild of fpylll. Unfortunately, I am not sure the latest update of fplll changed the library soname and consequently the subslot. This is tricky when something that is only a header changes for example. But I think here the soname should have been changed since something has been removed. I'll check.

kiwifb commented 1 year ago

Yes, 5.4.0, which was removed a month ago and 5.4.2 have the same subslot. So, no automatic trigger. And checking fplll they did not increase the right thing to take into account the symbol removal. No way to figure out that things will break.