sagemath/sage

Drop support for GCC < 6.3 in Sage 9.7

Closed this issue · 44 comments

(see Meta-ticket #32074: Remove support for outdated distros)

This ticket can be used as a dependency for upgrade tickets that impose stricter compiler requirements.

CC: @dimpase @kliem

Component: build: configure

Author: Matthias Koeppe

Branch/Commit: 7c0072e

Reviewer: Jonathan Kliem

Issue created by migration from https://trac.sagemath.org/ticket/33316

Dependencies: #33187

Branch pushed to git repo; I updated commit sha1. New commits:

bf96a8aREADME.md, src/doc/en/installation/source.rst: Update info on GCC versions

Author: Matthias Koeppe

Work Issues: Update platforms tested on GH Actions, best on top of #33062

Changed commit from bf96a8a to 4e8b2c2

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

1124dedbuild/pkgs/gcc/spkg-configure.m4: Bump minimum version to 6.3
4e8b2c2README.md, src/doc/en/installation/source.rst: Update info on GCC versions

Branch pushed to git repo; I updated commit sha1. New commits:

9b388ea.github/workflows/tox*.yml: Update platforms for drop of GCC < 6.3

Changed commit from 4e8b2c2 to 9b388ea

Changed work issues from Update platforms tested on GH Actions, best on top of #33062 to none

Changed dependencies from #33187 to none

Branch pushed to git repo; I updated commit sha1. New commits:

e7ff2a8build/pkgs/gcc/spkg-configure.m4: Fixup

Changed commit from 9b388ea to e7ff2a8

Branch pushed to git repo; I updated commit sha1. New commits:

0713f53.github/workflows/tox*.yml: Replace ubuntu-xenial by ubuntu-xenial-toolchain-gcc_9

Changed commit from e7ff2a8 to 0713f53

comment:13

On ubuntu-trusty-toolchain-gcc_9-minimal (https://github.com/mkoeppe/sage/runs/6221011844) and -standard, nauty, ecm, ntl fail with
Error: operand size mismatch for vmovdqa64'orError: operand size mismatch for vmovdqu64'; and fflas_ffpack fails with many different operand size mismatch errors.

kliem commented
comment:14

I'm guessing the problem is in https://github.com/linbox-team/fflas-ffpack/blob/b51626baf2715c8b8bcb0c334856b204f9a4a901/fflas-ffpack/fflas/fflas_simd/simd512_double.inl

They are calling _mm512_and_pd with const __mm512d instead of just __m512d. The problem should mostly go away, because stuff is inlined, but it might fail with g++ 9.

It seems to work with g++ 11.3.0 for me. At least I cannot reproduce the bug, even though I have available the avx512... instructions. But then again, it works for the other workflows, so this doesn't seem to be a problem in other cases. Just in the toolchain-gcc_9-minimal workflow.

Can we configure fflas_ffpack with --disable-avx512dq in this case?

comment:15

I'll try first if installing binutils-2.26 (and setting PATH="/usr/lib/binutils-2.26/bin:$PATH") helps.

Branch pushed to git repo; I updated commit sha1. New commits:

d650177Merge tag '9.6.rc2' into t/33316/drop_support_for_gcc___6_3_in_sage_9_7
a0e037fbuild/bin/write-dockerfile.sh [debian]: Handle EXTRA_PATH, EXTRA_SYSTEM_PACKAGES
dae2d08tox.ini (ubuntu-trusty-toolchain): Use binutils-2.26

Changed commit from 0713f53 to dae2d08

comment:18

Replying to @mkoeppe:

I'll try first if installing binutils-2.26 (and setting PATH="/usr/lib/binutils-2.26/bin:$PATH") helps.

It seems to work. Ready for review

Changed commit from dae2d08 to 33ca131

Branch pushed to git repo; I updated commit sha1. New commits:

33ca131tox.ini, .github/workflows/tox*.yml: Add ubuntu-kinetic, linuxmint-21, fedora-37
kliem commented

Changed reviewer from https://github.com/mkoeppe/sage/actions/runs/2260846479 to Jonathan Kliem

kliem commented
comment:20

LGTM.

comment:21

Thank you!

comment:22

If configure doesn't find a supported version we should just install it instead of giving users instructions for other configure flags:

configure: error: 
    Given --with-system-gcc=force, but no system package could be used.
    That's an error.  Please install the indicated package to continue.
    (To override this error, use ./configure --without-system-gcc)
comment:23

Replying to @vbraun:

If configure doesn't find a supported version we should just install it instead of giving users instructions for other configure flags:

configure: error: 
    Given --with-system-gcc=force, but no system package could be used.
    That's an error.  Please install the indicated package to continue.
    (To override this error, use ./configure --without-system-gcc)

Volker, it is not a bug, it is how =force option is meant to be.

comment:24

For reference, this behavior was implemented in #32060.

comment:25

Breaks the Debian 9 buildbot, we can merge this after I get around to update the buildbot config

comment:26

See #32074 - we're dropping support for Debian 9.

comment:27

Debian 9 is still LTS

comment:28

Replying to @mkoeppe:

See #32074 - we're dropping support for Debian 9.

Sorry, I was off by one. Debian 9 is fine. What's the problem on your buildbot?

comment:29

so needs_work but not on the ticket

comment:30

Replying to @vbraun:

Debian 9 is still LTS

but only till 01.07.2022, so we should be dropping it in 9.7, I guess.

Dependencies: #33888

Changed dependencies from #33888 to none

comment:33

Merge failure on top of:

08609a40ad Trac #33829: sage.graphs: Do not use SAGE_TMP in doctests

eca52b2 Trac #33922: Add missing title to conf.py

e9bfcd2 Trac #33980: codespell in graphs: fix a few typos

28f70e0 Trac #31153: Fix latex of elements of multivariate polynomial quotient ring

b36c11c Trac #33983: sage_setup: Add missing dependency

6edac51 Trac #33970: Remove a period sneaked in the documentation website

6d60bf3 Trac #33977: fix pycodestyle E306 in geometry and schemes

edd7a74 Trac #33976: some pycodestyle fixes in pxd and pxi files

b0973af Trac #33975: get rid of commented old-style prints

b3d6a0b Trac #33956: some better .join with iterator inside

a33f2df Trac #33949: get rid of have_ring option in singular interface

ad1c3ac Trac #33946: fix pycodestyle E306 in rings and algebras

4942ca9 Trac #33945: fix pycodestyle E306 outside of algebras,rings,graphs,schemes,categories

8dad9ce Trac #30683: Nu Tamari

346b3b0 Trac #33968: Replace $...$ in docstrings by ...

f793558 Trac #33967: sage -t: Print git commit hash and SAGE_LOCAL, SAGE_VENV

0e48fec Trac #33963: wrong sign for symbolic Legendre polynomial at 0

34d562e Trac #33962: wrong sign for value of Legendre polynomial at 0

bd33f87 Trac #33961: compute square roots modulo powers of two in polynomial time

16af958 Trac #33940: enhance maple interface

8d921a4 Trac #33872: Upgrade memory allocator to 0.1.3

29499f8 Trac #33871: Don't run singular in spkg-configure.m4 when cross compiling

4cc978b Trac #33823: sage -t --optional='sage,!FEATURE'

6b6f0cf Trac #33776: move method distance_graph to graph.py

65e866a Trac #23443: More Schubert polynomial shenanigans

a6e696e Updated SageMath version to 9.7.beta2

merge was not clean: conflicts in .github/workflows/tox.yml

Branch pushed to git repo; I updated commit sha1. New commits:

7c0072eMerge tag '9.7.beta2' into t/33316/drop_support_for_gcc___6_3_in_sage_9_7

Changed commit from 33ca131 to 7c0072e