From 09276311eec133eb6a562cc6993e561549753b4e Mon Sep 17 00:00:00 2001 From: Thierry Monteil Date: Tue, 19 Jul 2022 16:01:44 +0200 Subject: [PATCH 1/4] #32088 : gfan patch to fix int size on 32bit arch --- .../patches/fix-int64-for-32bit-archs.patch | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 build/pkgs/gfan/patches/fix-int64-for-32bit-archs.patch diff --git a/build/pkgs/gfan/patches/fix-int64-for-32bit-archs.patch b/build/pkgs/gfan/patches/fix-int64-for-32bit-archs.patch new file mode 100644 index 00000000000..0d1baf45cec --- /dev/null +++ b/build/pkgs/gfan/patches/fix-int64-for-32bit-archs.patch @@ -0,0 +1,21 @@ +Description: Use int64_t instead of signed long int for 64-bit integer typedef. +On 32-bit architectures, longs are only 32 bits. The resulting overflow was +causing an infinite loop in the 0602ResultantFanProjection test. + +References: +https://trac.sagemath.org/ticket/32088 +https://salsa.debian.org/math-team/gfan/-/commit/acaaa70 +https://github.com/void-linux/void-packages/pull/34182 + +Author: Doug Torrance + +--- a/src/vektor.h ++++ b/src/vektor.h +@@ -10,7 +10,7 @@ + + using namespace std; + +-typedef signed long int int64; ++typedef int64_t int64; + + void outOfRange(int i, int n); From 561ed35a6645130945338fa97a3730b022d6b580 Mon Sep 17 00:00:00 2001 From: Thierry Monteil Date: Tue, 19 Jul 2022 20:10:07 +0200 Subject: [PATCH 2/4] #32088 : add -ffloat-store flag to let gfan 0009RenderStairCase testuite pass on 32bit machines --- build/pkgs/gfan/spkg-install.in | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/build/pkgs/gfan/spkg-install.in b/build/pkgs/gfan/spkg-install.in index b90f704d4aa..61546e1cb5a 100644 --- a/build/pkgs/gfan/spkg-install.in +++ b/build/pkgs/gfan/spkg-install.in @@ -7,6 +7,14 @@ cd src # clash of log2 macro with standard library (C++ >= 14), #28984 find src -type f -print0 | xargs -0 sed -i.bak "s/log2/logger2/g" +# To let testsuite/0009RenderStairCase pass on 32bit machines +# See https://trac.sagemath.org/ticket/32088 +case "$($CC -dumpmachine)" in + i[3456]86*) + CFLAGS+=" -ffloat-store" + ;; +esac + echo "Now building gfan..." # We don't use the makefile to install gfan so we don't need to set PREFIX sdh_make CPPFLAGS="-I$SAGE_LOCAL/include" From 6592da5472ba3186193330e7096d4140e76a5e82 Mon Sep 17 00:00:00 2001 From: Thierry Monteil Date: Tue, 19 Jul 2022 21:50:01 +0200 Subject: [PATCH 3/4] #32088 : CFLAGS -> CXXFLAGS --- build/pkgs/gfan/spkg-install.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/pkgs/gfan/spkg-install.in b/build/pkgs/gfan/spkg-install.in index 61546e1cb5a..f3224735e4f 100644 --- a/build/pkgs/gfan/spkg-install.in +++ b/build/pkgs/gfan/spkg-install.in @@ -11,7 +11,7 @@ find src -type f -print0 | xargs -0 sed -i.bak "s/log2/logger2/g" # See https://trac.sagemath.org/ticket/32088 case "$($CC -dumpmachine)" in i[3456]86*) - CFLAGS+=" -ffloat-store" + CXXFLAGS+=" -ffloat-store" ;; esac From 54702a1732248253ca30242345d31831fc2a5f7a Mon Sep 17 00:00:00 2001 From: Thierry Monteil Date: Tue, 19 Jul 2022 21:53:33 +0200 Subject: [PATCH 4/4] #32088 : enable gfan testsuite in the CI --- build/bin/write-dockerfile.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build/bin/write-dockerfile.sh b/build/bin/write-dockerfile.sh index bf3afa3947f..c64b9c76f2d 100755 --- a/build/bin/write-dockerfile.sh +++ b/build/bin/write-dockerfile.sh @@ -252,7 +252,7 @@ ARG NUMPROC=8 ENV MAKE="make -j\${NUMPROC}" ARG USE_MAKEFLAGS="-k V=0" ENV SAGE_CHECK=warn -ENV SAGE_CHECK_PACKAGES="!gfan,!cython,!r,!python3,!gap,!cysignals,!linbox,!git,!ppl,!cmake,!rpy2,!sage_sws2rst" +ENV SAGE_CHECK_PACKAGES="!cython,!r,!python3,!gap,!cysignals,!linbox,!git,!ppl,!cmake,!rpy2,!sage_sws2rst" #:make: ARG TARGETS_PRE="all-sage-local" $RUN make SAGE_SPKG="sage-spkg -y -o" \${USE_MAKEFLAGS} \${TARGETS_PRE} $ENDRUN @@ -262,7 +262,7 @@ ARG NUMPROC=8 ENV MAKE="make -j\${NUMPROC}" ARG USE_MAKEFLAGS="-k V=0" ENV SAGE_CHECK=warn -ENV SAGE_CHECK_PACKAGES="!gfan,!cython,!r,!python3,!gap,!cysignals,!linbox,!git,!ppl,!cmake,!rpy2,!sage_sws2rst" +ENV SAGE_CHECK_PACKAGES="!cython,!r,!python3,!gap,!cysignals,!linbox,!git,!ppl,!cmake,!rpy2,!sage_sws2rst" $ADD src src ARG TARGETS="build" $RUN make SAGE_SPKG="sage-spkg -y -o" \${USE_MAKEFLAGS} \${TARGETS} $ENDRUN @@ -272,7 +272,7 @@ ARG NUMPROC=8 ENV MAKE="make -j\${NUMPROC}" ARG USE_MAKEFLAGS="-k V=0" ENV SAGE_CHECK=warn -ENV SAGE_CHECK_PACKAGES="!gfan,!cython,!r,!python3,!gap,!cysignals,!linbox,!git,!ppl,!cmake,!rpy2,!sage_sws2rst" +ENV SAGE_CHECK_PACKAGES="!cython,!r,!python3,!gap,!cysignals,!linbox,!git,!ppl,!cmake,!rpy2,!sage_sws2rst" ARG TARGETS_OPTIONAL="ptest" $RUN make SAGE_SPKG="sage-spkg -y -o" \${USE_MAKEFLAGS} \${TARGETS_OPTIONAL} || echo "(error ignored)" $ENDRUN