11package: GCC-Toolchain
22version: " %(tag_basename)s"
3- tag: v14.2 .0-alice2
3+ tag: v15.3 .0-alice2
44license: GPL-3.0
55source: https://github.com/alisw/gcc-toolchain
66prepend_path:
@@ -15,6 +15,7 @@ prefer_system_check: |
1515 set -e
1616 which gfortran || { echo " gfortran missing" ; exit 1; }
1717 case $REQUESTED_VERSION in
18+ v15* ) MIN_GCC_VERSION=150300 ;;
1819 v14* ) MIN_GCC_VERSION=140200 ;;
1920 v13* ) MIN_GCC_VERSION=130200 ;;
2021 v12* ) MIN_GCC_VERSION=120100 ;;
@@ -96,6 +97,17 @@ rsync -a gcc/gmp/ gmp
9697rsync -a gcc/isl/ isl
9798rsync -a gcc/mpc/ mpc
9899
100+ # isl 0.27 ships C++17 self-tests (isl_test_cpp17, isl_test_cpp17-checked) that
101+ # break the in-tree GCC build: AX_CXX_COMPILE_STDCXX_17 sets HAVE_CXX17=1 when
102+ # the host compiler accepts C++17 "by default" but adds no -std switch, then the
103+ # TUs get compiled with __cplusplus < 201703L so the C++17-only members
104+ # (id::try_user, the std::any ctor) are invisible. These tests are not needed to
105+ # build libisl for GCC, so drop them from both isl copies before autoreconf
106+ # regenerates the Makefiles.
107+ for islmf in gcc/isl/Makefile.am isl/Makefile.am; do
108+ [ -f " $islmf " ] && perl -ni -e ' print unless /^if HAVE_CXX17$/ .. /^endif$/' " $islmf "
109+ done
110+
99111pushd gcc
100112 [ -d mpfr ] && (cd mpfr && autoreconf -ivf)
101113 [ -d mpc ] && (cd mpc && autoreconf -ivf)
@@ -215,6 +227,7 @@ mkdir -p build-isl
215227mkdir -p build-mpc
216228
217229pushd build-gmp
230+ CFLAGS=" -O2 -pedantic -fomit-frame-pointer -std=gnu17" \
218231 ../gmp/configure --prefix=" $INSTALLROOT /libexec/extra" \
219232 --disable-shared \
220233 --enable-static
0 commit comments