"Undefined symbol" revealed by 'make ptestlong'

75 views
Skip to first unread message

Richard_L

unread,
Aug 26, 2025, 11:35:04 AMAug 26
to sage-devel
All(?) tests invoking matplotlib show at least one of two error messages. See attachment "plot_fail". However, the build finished and reported success (install.snip), while 'make ptestlong' shows 200+ errors (test.log). Neither matplotllb nor  matplotlib-inline report failure. [ Note: install.log too big to attach; therefore the tail of install.log attached here as install.snip. ]
Please inform if some other log file is needed to debug this. 
Thanks
plot_fail
matplotlib-3.10.1.log
matplotlib_inline-0.1.6.log
install.snip

Richard_L

unread,
Aug 26, 2025, 7:14:39 PMAug 26
to sage-devel
1) Sorry, I forgot to mention, I am building sage-10.7 from source on openSUSE-15.6.
2) It turns out not to matter whether sage builds matplotlib or if it is installed from the OS repository.

Suggestions welcome.

Nils Bruin

unread,
Aug 26, 2025, 8:32:23 PM (14 days ago) Aug 26
to sage-devel
A loader symbol lookup error probably means that the dynamic library loaded during runtime differs from the one that was assumed during compile time. "agg" is a component of matplotlib, so it could be that the inconsistency lies within matplotlib itself. Could it be the case that an old version of a library is hanging around in ~/.local or something like that, which ends up shadowing the actual (hopefully freshly installed) version of the library? There are some big changes in the build/installation system in sage-10.7, so it could be that an artifact that was previously harmless now gets in the way. While you're waiting for an expert, you could try and see if building/running in a cleaner environment makes the problem go away.

Richard_L

unread,
Aug 27, 2025, 2:09:22 PM (13 days ago) Aug 27
to sage-devel
Nils - It's always possible, but I don't see any obvious culprits in my path. OTOH, I do see is that readme calls for "GCC versions from 8.4.0 to 13.x" whereas I'm running gcc 14.3.0. (Has anyone else tested gcc 14.x?) I also see that readme calls for python3 versions "3.9.x to 3.12.x" whereas I'm running python3 3.6.15, which induces a build of python by the build script. Since the symbol in question is in a cpython .so file, the bug may have to do with sage's building of python3-3.12.5 in "~/sage-10.7/local/var/lib/sage/venv-python3.12.5". (Has anyone else tested with the script-built python3-3.12.5?)

Nils Bruin

unread,
Aug 27, 2025, 2:20:26 PM (13 days ago) Aug 27
to sage-devel
On many systems, GCC14 should be fine: Recent linux distributions have now moved to GCC15, which is a problem. But then changing the build options to use gcc14 works fine (see https://groups.google.com/g/sage-devel/c/tJCbTnelvSg/m/IfzQF0HGBQAJ ). On those same distributions, sagemath is running fine on Python 3.13. It look to me the readme might have not been updated for a while (or for some reason you have a really old one ... in which case that could be a lead to follow why you're getting inconsistent build results.

Richard_L

unread,
Aug 27, 2025, 8:25:13 PM (13 days ago) Aug 27
to sage-devel
Could the error be related to this message near the end of matplotlib-3.10.1.log?

"[spkg-install] Warning: Wheel building needed to use "--no-isolation --skip-dependency-check" to succeed. This means that a dependencies file in build/pkgs/ needs to be updated. Please report this to sage-...@googlegroups.com, including the build log of this package."

Dima Pasechnik

unread,
Aug 27, 2025, 9:52:37 PM (13 days ago) Aug 27
to sage-...@googlegroups.com
yes, this is exactly the problem.
no-build-isolation is the last resort which can potentially lead to this sort of trouble.

it's probably fixed in <https://github.com/sagemath/sage/pull/40633>, but there are versions shenanigans there, stemming from our rather outdated way to deal with Python packaging.



Reply all
Reply to author
Forward
0 new messages