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.

Reply via email to