This is a quick update about building the 9.5.beta5 version of Sage on an M1 Mac under Docker aarch64 Linux.
After installing Tachyon system wide, the build completes. This Cython module won't import due to an issue with libgomp, which is evidently some openMP parallel computing library, failing with " /lib/aarch64-linux-gnu/libgomp.so.1: cannot allocate memory in static TLS block". See below for the failed test. A quick search reveals this discussion of exactly this sort of problem: https://github.com/opencv/opencv/issues/14884 It sounds like a bug in how SageMath is built (or the library is imported) that will need a workaround on aarch64. This comment https://github.com/opencv/opencv/issues/14884#issuecomment-815632861 seems most actionable. I was NOT able to reproduce this by just starting sage or Python and importing modules. It has something to do with how doctests are run. The suggestion in the github issue I link to above to use LD_PRELOAD *does* work, i.e., LD_PRELOAD=/lib/aarch64-linux-gnu/libgomp.so.1 ./sage -t src/sage/algebras/quatalg/quaternion_algebra_cython.pyx ... works fine. I might just set LD_PRELOAD for cocalc-docker if nobody has a better idea. I'm keeping track of all these issues with Sage + aarch64 here: https://github.com/sagemathinc/cocalc-docker/issues/138 --- root@8bff70fbbc1c:/usr/local/sage# ./sage -t src/sage/algebras/quatalg/quaternion_algebra_cython.pyx no stored timings available Running doctests with ID 2021-11-02-15-54-57-8a128eb1. Git branch: HEAD Using --optional=build,debian,dochtml,pip,sage,sage.geometry.polyhedron,sage.rings.real_double,sage_spkg Doctesting 1 file. Traceback (most recent call last): File "/usr/local/sage/src/bin/sage-runtests", line 151, in <module> err = DC.run() File "/usr/local/sage/local/var/lib/sage/venv-python3.8/lib/python3.8/site-packages/sage/doctest/control.py", line 1254, in run self.run_doctests() File "/usr/local/sage/local/var/lib/sage/venv-python3.8/lib/python3.8/site-packages/sage/doctest/control.py", line 951, in run_doctests self.dispatcher = DocTestDispatcher(self) File "/usr/local/sage/local/var/lib/sage/venv-python3.8/lib/python3.8/site-packages/sage/doctest/forker.py", line 1614, in __init__ init_sage(controller) File "/usr/local/sage/local/var/lib/sage/venv-python3.8/lib/python3.8/site-packages/sage/doctest/forker.py", line 192, in init_sage controller.load_environment() File "/usr/local/sage/local/var/lib/sage/venv-python3.8/lib/python3.8/site-packages/sage/doctest/control.py", line 572, in load_environment return import_module(self.options.environment) File "/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1014, in _gcd_import File "<frozen importlib._bootstrap>", line 991, in _find_and_load File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 671, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 848, in exec_module File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "/usr/local/sage/local/var/lib/sage/venv-python3.8/lib/python3.8/site-packages/sage/repl/ipython_kernel/all_jupyter.py", line 5, in <module> from sage.all_cmdline import * File "/usr/local/sage/local/var/lib/sage/venv-python3.8/lib/python3.8/site-packages/sage/all_cmdline.py", line 19, in <module> from sage.all import * File "/usr/local/sage/local/var/lib/sage/venv-python3.8/lib/python3.8/site-packages/sage/all.py", line 129, in <module> from sage.algebras.all import * File "/usr/local/sage/local/var/lib/sage/venv-python3.8/lib/python3.8/site-packages/sage/algebras/all.py", line 21, in <module> import sage.algebras.catalog as algebras File "/usr/local/sage/local/var/lib/sage/venv-python3.8/lib/python3.8/site-packages/sage/algebras/catalog.py", line 80, in <module> from sage.algebras.quatalg.quaternion_algebra import QuaternionAlgebra as Quaternion File "/usr/local/sage/local/var/lib/sage/venv-python3.8/lib/python3.8/site-packages/sage/algebras/quatalg/quaternion_algebra.py", line 69, in <module> from . import quaternion_algebra_cython File "sage/algebras/quatalg/quaternion_algebra_cython.pyx", line 1, in init sage.algebras.quatalg.quaternion_algebra_cython (build/cythonized/sage/algebras/quatalg/quaternion_algebra_cython.cpp:6215) File "sage/matrix/matrix_integer_dense.pyx", line 1, in init sage.matrix.matrix_integer_dense (build/cythonized/sage/matrix/matrix_integer_dense.cpp:57704) ImportError: /lib/aarch64-linux-gnu/libgomp.so.1: cannot allocate memory in static TLS block On Mon, Nov 1, 2021 at 5:33 PM William Stein <[email protected]> wrote: > > > On Mon, Nov 1, 2021 at 4:35 PM Dima Pasechnik <[email protected]> wrote: > >> >> >> On Mon, Nov 1, 2021 at 11:28 PM William Stein <[email protected]> wrote: >> >>> Great idea. Thanks Dima! >>> >>> On Mon, Nov 1, 2021 at 3:37 PM Dima Pasechnik <[email protected]> wrote: >>> >>>> >>>> >>>> On Mon, Nov 1, 2021 at 10:18 PM William Stein <[email protected]> wrote: >>>> >>>>> I tried to build sage-9.5.beta5 on a very clean Linux Ubuntu:20.04 >>>>> image with standard dev packages (in Docker) but on an ARM aarch64 >>>>> architecture instead of Intel. It fails with Tachyon simply saying >>>>> "Error: >>>>> Sorry, your platform isn't supported by Tachyon and/or Sage. Exiting...". >>>>> I don't know what that is about. >>>>> >>>> I found https://trac.sagemath.org/ticket/23712 which is a 2-year old >>>>> ticket about how upgrading Tachyon is needed " to make Sage work on >>>>> arm64/aarch64." >>>>> >>>>> Any suggestions? My goal is to make an aarch64 version of the >>>>> cocalc-docker image. Is there an easy workaround for this problem, or >>>>> should I just do some hack to disable building tachyon (since it is a >>>>> runtime only dependency)? Is the right way to disable building a standard >>>>> package these days still to touch some file somewhere, or did that change? >>>>> >>>> >> by the way, it would be great to know if our usual "install as many >> system packages as ./configure advises >> at the end" scheme works well on aarch64, don't stop at tachyon please. >> > > Good idea, definitely. > > Is there an official Dockerfile for building Sage these days somewhere? > I'm using one that I found years ago from @ebray, and all that > advertisement about the fantastic support for system-wide packages (which I > forgot about) is hidden behind automation. [searches...]. Yes, there is: > > https://github.com/sagemath/sage/blob/develop/docker/Dockerfile > > That's a pretty enormous Dockerfile, and I imagine it solves many > subtle problems. A cursory glance suggests that it installs a minimal > collection of system-wide packages. Maybe somebody should try what you > just suggested (modify it to depend on system packages) starting with that > Dockerfile too, to see how it goes (or as a different CI test)... > > William > > > > >> >> >> >>>> Just install the system tachyon package, and let ./configure do its job. >>>> You don't need to build it. >>>> >>>> >>>>> >>>>> gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04) >>>>> **************************************************** >>>>> Package 'tachyon' is currently not installed >>>>> No legacy uninstaller found for 'tachyon'; nothing to do >>>>> >>>>> **************************************************************************************** >>>>> Error: Sorry, your platform isn't supported by Tachyon and/or Sage. >>>>> Exiting... >>>>> >>>>> **************************************************************************************** >>>>> >>>>> real 0m0.013s >>>>> user 0m0.007s >>>>> sys 0m0.009s >>>>> >>>>> ************************************************************************ >>>>> Error installing package tachyon-0.98.9.p7 >>>>> >>>>> ************************************************************************ >>>>> Please email sage-devel (http://groups.google.com/group/sage-devel) >>>>> explaining the problem and including the log files >>>>> /usr/local/sage/logs/pkgs/tachyon-0.98.9.p7.log >>>>> and >>>>> /usr/local/sage/config.log >>>>> Describe your computer, operating system, etc. >>>>> If you want to try to fix the problem yourself, *don't* just cd to >>>>> /usr/local/sage/local/var/tmp/sage/build/tachyon-0.98.9.p7 and type >>>>> 'make' or whatever is appropriate. >>>>> Instead, the following commands setup all environment variables >>>>> correctly and load a subshell for you to debug the error: >>>>> (cd '/usr/local/sage/local/var/tmp/sage/build/tachyon-0.98.9.p7' && >>>>> '/usr/local/sage/sage' --buildsh) >>>>> When you are done debugging, you can type "exit" to leave the subshell. >>>>> >>>>> ************************************************************************ >>>>> >>>>> On Sat, Oct 30, 2021 at 2:54 PM Samuel Lelievre < >>>>> [email protected]> wrote: >>>>> >>>>>> 2021-10-30 18:34:21 UTC, Emmanuel Charpentier: >>>>>> > >>>>>> > After rebuilding and reinstalling the same (really) >>>>>> > optional packages, `ptestlong` gets exactly one >>>>>> > (reproducible) failure, i. e. the one reported by >>>>>> > Samuel Lelièvre. >>>>>> > >>>>>> > I am at loss as to why I needed to rebuild 9.5 >>>>>> > from sratch instead of upgrading from 9.3. Ideas? >>>>>> >>>>>> I'm sure you mean: "why I needed to rebuild 9.5.beta5 >>>>>> from scratch instead of upgrading from 9.5.beta3". >>>>>> >>>>>> Not sure why a distclean was needed in that case. >>>>>> >>>>>> -- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "sage-release" group. >>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>> send an email to [email protected]. >>>>>> To view this discussion on the web visit >>>>>> https://groups.google.com/d/msgid/sage-release/422c4441-dfb2-4b97-85d6-7f706a2be402n%40googlegroups.com >>>>>> <https://groups.google.com/d/msgid/sage-release/422c4441-dfb2-4b97-85d6-7f706a2be402n%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>> . >>>>>> >>>>> >>>>> >>>>> -- >>>>> William (http://wstein.org) >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "sage-release" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to [email protected]. >>>>> To view this discussion on the web visit >>>>> https://groups.google.com/d/msgid/sage-release/CACLE5GBVsNZbe%2BnikwGR-uxsL8WWVSk1EzEqziR--DT-ERTs_A%40mail.gmail.com >>>>> <https://groups.google.com/d/msgid/sage-release/CACLE5GBVsNZbe%2BnikwGR-uxsL8WWVSk1EzEqziR--DT-ERTs_A%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>> . >>>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "sage-release" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/sage-release/CAAWYfq3FDgxH_UOcEhMY1wvbLkvEPkMhjchtPMDJ1X6YzG7DmQ%40mail.gmail.com >>>> <https://groups.google.com/d/msgid/sage-release/CAAWYfq3FDgxH_UOcEhMY1wvbLkvEPkMhjchtPMDJ1X6YzG7DmQ%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>> >>> >>> -- >>> William (http://wstein.org) >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "sage-release" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/sage-release/CACLE5GAHQpnqrfC74jimwXA-UXU4j%2BLSE98tvW2%3DyMQ%2BC05okw%40mail.gmail.com >>> <https://groups.google.com/d/msgid/sage-release/CACLE5GAHQpnqrfC74jimwXA-UXU4j%2BLSE98tvW2%3DyMQ%2BC05okw%40mail.gmail.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "sage-release" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/sage-release/CAAWYfq3HSp6ZsRqWPQBSJPQU3%3DQa1owhk4tMGpa3j5Wsqxg3zQ%40mail.gmail.com >> <https://groups.google.com/d/msgid/sage-release/CAAWYfq3HSp6ZsRqWPQBSJPQU3%3DQa1owhk4tMGpa3j5Wsqxg3zQ%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> > > > -- > William (http://wstein.org) > -- William (http://wstein.org) -- You received this message because you are subscribed to the Google Groups "sage-release" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/sage-release/CACLE5GAQS0h%2B9hxg9GSHRMRJmr-_JcTSMwtLk1%2B56AqrPTvKyg%40mail.gmail.com.
