I am focusing on the Sage 9.8 issue of the missing symbol __ZN6FFPACK8CharPolyIN6Givaro8Poly1DomINS1_7ModularIddvEENS1_5DenseEEEEERNT_7ElementERKS7_S9_mNS7_8Domain_t11Element_ptrEmRNSC_8RandIterENS_19FFPACK_CHARPOLY_TAGEm
Demangled with c++filt, the missing symbol is: Givaro::Poly1Dom<Givaro::Modular<double, double, void>, Givaro::Dense>::Element& FFPACK::CharPoly<Givaro::Poly1Dom<Givaro::Modular<double, double, void>, Givaro::Dense> >(Givaro::Poly1Dom<Givaro::Modular<double, double, void>, Givaro::Dense> const&, Givaro::Poly1Dom<Givaro::Modular<double, double, void>, Givaro::Dense>::Element&, unsigned long, Givaro::Poly1Dom<Givaro::Modular<double, double, void>, Givaro::Dense>::Domain_t::Element_ptr, unsigned long, Givaro::Poly1Dom<Givaro::Modular<double, double, void>, Givaro::Dense>::Domain_t::RandIter&, FFPACK::FFPACK_CHARPOLY_TAG, unsigned long) I expect this to be in ffpack, so I made sure that ffpack is indeed picked up from the dedicated conda environment: lsof -p 70202 | grep -i ffpack python3.1 70202 matthias txt REG 1,15 1132624 5917685 /Users/matthias/anaconda3/envs/sage98-py311/lib/libffpack.1.dylib I then looked whether similar symbols are available in ffpack with the following command: nm /Users/matthias/anaconda3/envs/sage98-py311/lib/libffpack.1.dylib | grep __ZN6FFPACK8CharPolyIN6Givaro8Poly1DomINS1_7ModularIddvEENS1_5DenseEEEEERNT_7ElementERKS7_S9_mNS7_8Domain_t11Element_ptrEm Which gave: 000000000004f17c T __ZN6FFPACK8CharPolyIN6Givaro8Poly1DomINS1_7ModularIddvEENS1_5DenseEEEEERNT_7ElementERKS7_S9_mNS7_8Domain_t11Element_ptrEmNS_19FFPACK_CHARPOLY_TAGEm 000000000004ec10 T __ZN6FFPACK8CharPolyIN6Givaro8Poly1DomINS1_7ModularIddvEENS1_5DenseEEEEERNT_7ElementERKS7_S9_mNS7_8Domain_t11Element_ptrEmRNS7_8Domain_t8RandIterENS_19FFPACK_CHARPOLY_TAGEm which demangled gives: Givaro::Poly1Dom<Givaro::Modular<double, double, void>, Givaro::Dense>::Element& FFPACK::CharPoly<Givaro::Poly1Dom<Givaro::Modular<double, double, void>, Givaro::Dense> >(Givaro::Poly1Dom<Givaro::Modular<double, double, void>, Givaro::Dense> const&, Givaro::Poly1Dom<Givaro::Modular<double, double, void>, Givaro::Dense>::Element&, unsigned long, Givaro::Poly1Dom<Givaro::Modular<double, double, void>, Givaro::Dense>::Domain_t::Element_ptr, unsigned long, FFPACK::FFPACK_CHARPOLY_TAG, unsigned long) Givaro::Poly1Dom<Givaro::Modular<double, double, void>, Givaro::Dense>::Element& FFPACK::CharPoly<Givaro::Poly1Dom<Givaro::Modular<double, double, void>, Givaro::Dense> >(Givaro::Poly1Dom<Givaro::Modular<double, double, void>, Givaro::Dense> const&, Givaro::Poly1Dom<Givaro::Modular<double, double, void>, Givaro::Dense>::Element&, unsigned long, Givaro::Poly1Dom<Givaro::Modular<double, double, void>, Givaro::Dense>::Domain_t::Element_ptr, unsigned long, Givaro::Poly1Dom<Givaro::Modular<double, double, void>, Givaro::Dense>::Domain_t::RandIter&, FFPACK::FFPACK_CHARPOLY_TAG, unsigned long) And then I got confused: the latter demangled method has the same signature as the missing one. In other words: from a C++ perspective, the missing method is there, it is just that the way the name and signature get mangled is different between linbox_flint_interface.cpython-311-darwin.so and libffpack.1.dylib So it seems it is an ABI problem where we get two different managled names for the same function signature. I am not sure what to make out of this and have only two explanations: 1. It is a bug in the C++ compiler. 2. The two libraries were compiled with different C++ compilers or with different compiler options. On Wednesday, May 31, 2023 at 11:01:20 AM UTC-7 Matthias Goerner wrote: Sorry for the late reply. Here are the details about my conda environment. I am not exactly sure what other information is useful to debug this. I am familiar with the linux tools, but am struggling with otool and vmmap to figure out what is going on here and see whether I am picking up any library from something that is not in the dedicated conda environment. On Friday, May 26, 2023 at 8:05:04 AM UTC-7 Matthias Koeppe wrote: config.log please On Wednesday, May 24, 2023 at 3:16:25 PM UTC-7 Matthias Goerner wrote: Hi! I can't get sage to work when installing it with conda on a new MacBook Pro with M2 chip and Ventura 13.3. I tried conda -n sage create sage=9.X python=3.Y for (X,Y) = (5,10), (8,10), (8,11). With Sage 9.5, I get the attached crash report. With Sage 9.8, I get the following linking error below. Cheers, Matthias (sage-py310) matthias@matthiass-air-2 ~ % sage ┌────────────────────────────────────────────────────────────────────┐ │ SageMath version 9.8, Release Date: 2023-02-11 │ │ Using Python 3.10.11. Type "help()" for help. │ └────────────────────────────────────────────────────────────────────┘ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ Warning: sage.all is not available; this is a limited REPL. ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ sage: import sage.all --------------------------------------------------------------------------- ImportError Traceback (most recent call last) Cell In[1], line 1 ----> 1 import sage.all File ~/anaconda3/envs/sage-py310/lib/python3.10/site-packages/sage/all.py:168 166 from sage.modules.all import * 167 from sage.monoids.all import * --> 168 from sage.algebras.all import * 169 from sage.modular.all import * 170 from sage.sat.all import * File ~/anaconda3/envs/sage-py310/lib/python3.10/site-packages/sage/algebras/all.py:21 5 #***************************************************************************** 6 # Copyright (C) 2005 William Stein [...] 7 # (...) 17 # http://www.gnu.org/licenses/ 18 #***************************************************************************** 19 from sage.misc.lazy_import import lazy_import ---> 21 import sage.algebras.catalog as algebras 23 from .quatalg.all import * 24 from .steenrod.all import * File ~/anaconda3/envs/sage-py310/lib/python3.10/site-packages/sage/algebras/catalog.py:84 1 r""" 2 Catalog of Algebras 3 (...) 80 <sage.algebras.yokonuma_hecke_algebra.YokonumaHeckeAlgebra>` 81 """ 83 from sage.algebras.free_algebra import FreeAlgebra as Free ---> 84 from sage.algebras.quatalg.quaternion_algebra import QuaternionAlgebra as Quaternion 85 from sage.algebras.steenrod.steenrod_algebra import SteenrodAlgebra as Steenrod 86 from sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra import FiniteDimensionalAlgebra as FiniteDimensional File ~/anaconda3/envs/sage-py310/lib/python3.10/site-packages/sage/algebras/quatalg/quaternion_algebra.py:68 61 from operator import itemgetter 63 from .quaternion_algebra_element import ( 64 QuaternionAlgebraElement_abstract, 65 QuaternionAlgebraElement_generic, 66 QuaternionAlgebraElement_rational_field, 67 QuaternionAlgebraElement_number_field) ---> 68 from . import quaternion_algebra_cython 70 from sage.modular.modsym.p1list import P1List 72 from sage.misc.cachefunc import cached_method File ~/anaconda3/envs/sage-py310/lib/python3.10/site-packages/sage/algebras/quatalg/quaternion_algebra_cython.pyx:1, in init sage.algebras.quatalg.quaternion_algebra_cython (build/cythonized/sage/algebras/quatalg/quaternion_algebra_cython.cpp:6484)() ----> 1 # distutils: language = c++ 2 # distutils: libraries = gmp m NTL_LIBRARIES 3 # distutils: extra_compile_args = NTL_CFLAGS File ~/anaconda3/envs/sage-py310/lib/python3.10/site-packages/sage/matrix/matrix_integer_dense.pyx:1, in init sage.matrix.matrix_integer_dense (build/cythonized/sage/matrix/matrix_integer_dense.cpp:59322)() ----> 1 # -*- coding: utf-8 -*- 2 # distutils: extra_compile_args = NTL_CFLAGS M4RI_CFLAGS 3 # distutils: libraries = iml NTL_LIBRARIES gmp m CBLAS_LIBRARIES ImportError: dlopen(/Users/matthias/anaconda3/envs/sage-py310/lib/python3.10/site-packages/sage/libs/linbox/ linbox_flint_interface.cpython-310-darwin.so, 0x0002): symbol not found in flat namespace '__ZN6FFPACK8CharPolyIN6Givaro8Poly1DomINS1_7ModularIddvEENS1_5DenseEEEEERNT_7ElementERKS7_S9_mNS7_8Domain_t11Element_ptrEmRNSC_8RandIterENS_19FFPACK_CHARPOLY_TAGEm' -- You received this message because you are subscribed to the Google Groups "sage-support" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-support+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sage-support/c028a399-8ecc-4370-9130-88b303487e50n%40googlegroups.com.