firasuke/mussel

Build failure on Debian Bullseye

minnyres opened this issue · 18 comments

Error information in the log file:

g++ -DHAVE_CONFIG_H   -I. -I/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl -I/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/include -Iinclude/ -I/home/cat/git/mussel/sources/gcc/gcc-12.2.0/gmp -I/home/cat/git/mussel/builds/cross-gcc/./gmp   -g -O2   -MT isl_test_cpp17.o -MD -MP -MF $depbase.Tpo -c -o isl_test_cpp17.o /home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17.cc &&\
mv -f $depbase.Tpo $depbase.Po
In file included from /home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17.cc:20:
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17-generic.cc: In function ‘isl::id construct_id(isl::ctx, bool*)’:
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17-generic.cc:25:24: error: no matching function for call to ‘isl::id::id(isl::ctx&, const char [2], std::shared_ptr<S>&)’
   25 |  isl::id id(ctx, "S", s);
      |                        ^
In file included from /home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17.cc:7:
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/include/isl/cpp.h:10634:1: note: candidate: ‘isl::id::id(isl::ctx, const string&)’
10634 | id::id(isl::ctx ctx, const std::string &str)
      | ^~
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/include/isl/cpp.h:10634:1: note:   candidate expects 2 arguments, 3 provided
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/include/isl/cpp.h:10622:1: note: candidate: ‘isl::id::id(const isl::id&)’
10622 | id::id(const id &obj)
      | ^~
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/include/isl/cpp.h:10622:1: note:   candidate expects 1 argument, 3 provided
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/include/isl/cpp.h:10619:1: note: candidate: ‘isl::id::id()’
10619 | id::id()
      | ^~
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/include/isl/cpp.h:10619:1: note:   candidate expects 0 arguments, 3 provided
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/include/isl/cpp.h:10616:1: note: candidate: ‘isl::id::id(isl_id*)’
10616 | id::id(__isl_take isl_id *ptr)
      | ^~
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/include/isl/cpp.h:10616:1: note:   candidate expects 1 argument, 3 provided
In file included from /home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17.cc:20:
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17-generic.cc: In function ‘void test_try_user(isl::ctx)’:
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17-generic.cc:39:27: error: no matching function for call to ‘isl::id::id(isl::ctx&, const char [5], int)’
   39 |  isl::id id(ctx, "test", 5);
      |                           ^
In file included from /home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17.cc:7:
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/include/isl/cpp.h:10634:1: note: candidate: ‘isl::id::id(isl::ctx, const string&)’
10634 | id::id(isl::ctx ctx, const std::string &str)
      | ^~
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/include/isl/cpp.h:10634:1: note:   candidate expects 2 arguments, 3 provided
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/include/isl/cpp.h:10622:1: note: candidate: ‘isl::id::id(const isl::id&)’
10622 | id::id(const id &obj)
      | ^~
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/include/isl/cpp.h:10622:1: note:   candidate expects 1 argument, 3 provided
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/include/isl/cpp.h:10619:1: note: candidate: ‘isl::id::id()’
10619 | id::id()
      | ^~
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/include/isl/cpp.h:10619:1: note:   candidate expects 0 arguments, 3 provided
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/include/isl/cpp.h:10616:1: note: candidate: ‘isl::id::id(isl_id*)’
10616 | id::id(__isl_take isl_id *ptr)
      | ^~
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/include/isl/cpp.h:10616:1: note:   candidate expects 1 argument, 3 provided
In file included from /home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17.cc:20:
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17-generic.cc:42:22: error: ‘class isl::id’ has no member named ‘try_user’
   42 |  auto maybe_int = id.try_user<int>();
      |                      ^~~~~~~~
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17-generic.cc:42:31: error: expected primary-expression before ‘int’
   42 |  auto maybe_int = id.try_user<int>();
      |                               ^~~
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17-generic.cc:43:20: error: ‘class isl::id’ has no member named ‘try_user’
   43 |  auto maybe_s = id.try_user<std::shared_ptr<S>>();
      |                    ^~~~~~~~
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17-generic.cc:43:46: error: expected primary-expression before ‘>’ token
   43 |  auto maybe_s = id.try_user<std::shared_ptr<S>>();
      |                                              ^~
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17-generic.cc:43:49: error: expected primary-expression before ‘)’ token
   43 |  auto maybe_s = id.try_user<std::shared_ptr<S>>();
      |                                                 ^
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17-generic.cc:44:24: error: ‘class isl::id’ has no member named ‘try_user’
   44 |  auto maybe_int2 = id2.try_user<int>();
      |                        ^~~~~~~~
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17-generic.cc:44:33: error: expected primary-expression before ‘int’
   44 |  auto maybe_int2 = id2.try_user<int>();
      |                                 ^~~
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17-generic.cc:60:21: error: ‘class isl::id’ has no member named ‘try_user’
   60 |   auto maybe_s = id.try_user<std::shared_ptr<S>>();
      |                     ^~~~~~~~
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17-generic.cc:60:47: error: expected primary-expression before ‘>’ token
   60 |   auto maybe_s = id.try_user<std::shared_ptr<S>>();
      |                                               ^~
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17-generic.cc:60:50: error: expected primary-expression before ‘)’ token
   60 |   auto maybe_s = id.try_user<std::shared_ptr<S>>();
      |                                                  ^
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17.cc: In function ‘void test_user(isl::ctx)’:
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17.cc:44:27: error: no matching function for call to ‘isl::id::id(isl::ctx&, const char [5], int)’
   44 |  isl::id id(ctx, "test", 5);
      |                           ^
In file included from /home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17.cc:7:
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/include/isl/cpp.h:10634:1: note: candidate: ‘isl::id::id(isl::ctx, const string&)’
10634 | id::id(isl::ctx ctx, const std::string &str)
      | ^~
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/include/isl/cpp.h:10634:1: note:   candidate expects 2 arguments, 3 provided
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/include/isl/cpp.h:10622:1: note: candidate: ‘isl::id::id(const isl::id&)’
10622 | id::id(const id &obj)
      | ^~
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/include/isl/cpp.h:10622:1: note:   candidate expects 1 argument, 3 provided
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/include/isl/cpp.h:10619:1: note: candidate: ‘isl::id::id()’
10619 | id::id()
      | ^~
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/include/isl/cpp.h:10619:1: note:   candidate expects 0 arguments, 3 provided
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/include/isl/cpp.h:10616:1: note: candidate: ‘isl::id::id(isl_id*)’
10616 | id::id(__isl_take isl_id *ptr)
      | ^~
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/include/isl/cpp.h:10616:1: note:   candidate expects 1 argument, 3 provided
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17.cc:46:44: error: no matching function for call to ‘isl::id::id(isl::ctx&, const char [6], std::string)’
   46 |  isl::id id3(ctx, "test3", std::string("s"));
      |                                            ^
In file included from /home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17.cc:7:
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/include/isl/cpp.h:10634:1: note: candidate: ‘isl::id::id(isl::ctx, const string&)’
10634 | id::id(isl::ctx ctx, const std::string &str)
      | ^~
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/include/isl/cpp.h:10634:1: note:   candidate expects 2 arguments, 3 provided
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/include/isl/cpp.h:10622:1: note: candidate: ‘isl::id::id(const isl::id&)’
10622 | id::id(const id &obj)
      | ^~
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/include/isl/cpp.h:10622:1: note:   candidate expects 1 argument, 3 provided
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/include/isl/cpp.h:10619:1: note: candidate: ‘isl::id::id()’
10619 | id::id()
      | ^~
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/include/isl/cpp.h:10619:1: note:   candidate expects 0 arguments, 3 provided
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/include/isl/cpp.h:10616:1: note: candidate: ‘isl::id::id(isl_id*)’
10616 | id::id(__isl_take isl_id *ptr)
      | ^~
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/include/isl/cpp.h:10616:1: note:   candidate expects 1 argument, 3 provided
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17.cc:48:21: error: ‘class isl::id’ has no member named ‘user’
   48 |  auto int_user = id.user<int>();
      |                     ^~~~
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17.cc:48:26: error: expected primary-expression before ‘int’
   48 |  auto int_user = id.user<int>();
      |                          ^~~
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17.cc:51:20: error: ‘class isl::id’ has no member named ‘user’
   51 |  auto s_user = id3.user<std::string>();
      |                    ^~~~
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17.cc:51:36: error: expected primary-expression before ‘>’ token
   51 |  auto s_user = id3.user<std::string>();
      |                                    ^
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17.cc:51:38: error: expected primary-expression before ‘)’ token
   51 |  auto s_user = id3.user<std::string>();
      |                                      ^
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17.cc: In lambda function:
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17.cc:54:30: error: ‘class isl::id’ has no member named ‘user’
   54 |  check_invalid([&id] () { id.user<std::string>(); });
      |                              ^~~~
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17.cc:54:46: error: expected primary-expression before ‘>’ token
   54 |  check_invalid([&id] () { id.user<std::string>(); });
      |                                              ^
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17.cc:54:48: error: expected primary-expression before ‘)’ token
   54 |  check_invalid([&id] () { id.user<std::string>(); });
      |                                                ^
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17.cc: In lambda function:
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17.cc:55:32: error: ‘class isl::id’ has no member named ‘user’
   55 |  check_invalid([&id2] () { id2.user<int>(); });
      |                                ^~~~
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17.cc:55:37: error: expected primary-expression before ‘int’
   55 |  check_invalid([&id2] () { id2.user<int>(); });
      |                                     ^~~
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17.cc: In lambda function:
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17.cc:56:32: error: ‘class isl::id’ has no member named ‘user’
   56 |  check_invalid([&id2] () { id2.user<std::string>(); });
      |                                ^~~~
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17.cc:56:48: error: expected primary-expression before ‘>’ token
   56 |  check_invalid([&id2] () { id2.user<std::string>(); });
      |                                                ^
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17.cc:56:50: error: expected primary-expression before ‘)’ token
   56 |  check_invalid([&id2] () { id2.user<std::string>(); });
      |                                                  ^
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17.cc: In lambda function:
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17.cc:57:32: error: ‘class isl::id’ has no member named ‘user’
   57 |  check_invalid([&id3] () { id3.user<int>(); });
      |                                ^~~~
/home/cat/git/mussel/sources/gcc/gcc-12.2.0/isl/isl_test_cpp17.cc:57:37: error: expected primary-expression before ‘int’
   57 |  check_invalid([&id3] () { id3.user<int>(); });
      |                                     ^~~
make[3]: *** [Makefile:1970: isl_test_cpp17.o] Error 1
make[3]: Leaving directory '/home/cat/git/mussel/builds/cross-gcc/isl'
make[2]: *** [Makefile:2101: all-recursive] Error 1
make[2]: Leaving directory '/home/cat/git/mussel/builds/cross-gcc/isl'
make[1]: *** [Makefile:1589: all] Error 2
make[1]: Leaving directory '/home/cat/git/mussel/builds/cross-gcc/isl'
make: *** [Makefile:6565: all-isl] Error 2

Can you upload the entire log file?

Hi this is the entire log.
log.txt

I haven't tested mussel on Debian based distributions, and I haven't encountered this issue neither on Arch nor on Fedora.

It appears to be related to C++17 issues used with the latest isl 0.25, a workaround to solve this would be adding ax_cv_cxx_compile_cxx17=no \ before line 12 so that it becomes:

printf -- "${BLUEC}..${NORMALC} Configuring cross-gcc (compiler)...\n"
ax_cv_cxx_compile_cxx17=no \
$SRCDIR/gcc/gcc-$gcc_ver/configure \
  --prefix=$MPREFIX \
  --target=$XTARGET \
  --with-sysroot=$MSYSROOT \
  --enable-languages=c,c++ \
  --disable-multilib \
  --disable-bootstrap \
  --disable-libsanitizer \
  --disable-werror \
  --enable-initfini-array $XGCCARGS >> $MLOG 2>&1

Thanks for your reply, but I still meet the error with this patch.

log.txt

That is weird, C++17 is only used for a test here. I think you'll have to wait until your host's compiler is actually capable of supporting C++17, or perhaps try passing ax_cv_cxx_compile_cxx17=no as a global environment variable and see if that works for you.

try passing ax_cv_cxx_compile_cxx17=no as a global environment

still not working.

wait until your host's compiler is actually capable of supporting C++17

I will update the result when Debian upgrades to GCC 11 or 12.

still not working.

That's unfortunate...

I will update the result when Debian upgrades to GCC 11 or 12.

Please do. I'll keep this issue open until then.

hello, havin the same error but also a fix

my environment:

$ ./check.sh 
bash:      4.4.20(1)-release
bc:        1.07.1
binutils:  Binutils for Ubuntu) 2.30
bison:     3.0.4
bzip2:     1.0.6
ccache:    3.4.1
coreutils: 8.28
diffutils: 3.6
findutils: 4.7.0-git
g++:       8.4.0-1ubuntu1~18.04)
gawk:      4.1.4
gcc:       8.4.0-1ubuntu1~18.04)
git:       2.17.1
glibc:     ./check.sh: line 52: /lib/libc.so.6: No such file or directory
grep:      3.1
gzip:      1.6
linux:     5.4.0-122-generic
lzip:      1.20
m4:        1.4.18
make:      4.1
perl:      5.26.1
rsync:     3.1.2
sed:       4.4
tar:       1.29
texinfo:   6.5
xz:        5.2.2
zstd:      v1.3.3

i added the option --disable-cxx to the invokation of mussel.sh and the following patch:

$ git diff
diff --git a/mussel.sh b/mussel.sh
index 7962eb5..b7d5742 100755
--- a/mussel.sh
+++ b/mussel.sh
@@ -42,7 +42,7 @@ pkgconf_ver=1.9.3
 # ----- Package URLs ----- #
 binutils_url=https://ftpmirror.gnu.org/binutils/binutils-$binutils_ver.tar.lz
 gcc_url=https://ftpmirror.gnu.org/gcc/gcc-$gcc_ver/gcc-$gcc_ver.tar.xz
-gmp_url=https://ftpmirror.gnu.org/gmp/gmp-$gmp_ver.tar.zst
+gmp_url=https://ftpmirror.gnu.org/gmp/gmp-$gmp_ver.tar.xz
 isl_url=https://libisl.sourceforge.io/isl-$isl_ver.tar.xz
 linux_url=https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-$linux_ver.tar.xz
 mpc_url=https://ftpmirror.gnu.org/mpc/mpc-$mpc_ver.tar.gz
@@ -502,7 +502,7 @@ printf -- "${BLUEC}..${NORMALC} Preparing cross-gcc (compiler)...\n"
 cp -ar $SRCDIR/gmp/gmp-$gmp_ver $SRCDIR/gcc/gcc-$gcc_ver/gmp
 cp -ar $SRCDIR/mpfr/mpfr-$mpfr_ver $SRCDIR/gcc/gcc-$gcc_ver/mpfr
 cp -ar $SRCDIR/mpc/mpc-$mpc_ver $SRCDIR/gcc/gcc-$gcc_ver/mpc
-cp -ar $SRCDIR/isl/isl-$isl_ver $SRCDIR/gcc/gcc-$gcc_ver/isl
+#cp -ar $SRCDIR/isl/isl-$isl_ver $SRCDIR/gcc/gcc-$gcc_ver/isl
 
 cd $BLDDIR
 mkdir cross-gcc
@@ -518,6 +518,7 @@ $SRCDIR/gcc/gcc-$gcc_ver/configure \
   --disable-bootstrap \
   --disable-libsanitizer \
   --disable-werror \
+  --without-isl \
   --enable-initfini-array $XGCCARGS >> $MLOG 2>&1
 
 printf -- "${BLUEC}..${NORMALC} Building cross-gcc (compiler)...\n"

Yes, well disabling isl isn't a good idea here.

I see that you're using gcc 8.4.0, and I recommend trying with gcc 11 or 12, which in theory should fix this issue correctly.

linux mint 19.3 does not have gcc 11 or 12

i also checked LFS ... they also dont use isl

maybe i need to write my own build script

I'm not saying you can't use ISL, but if you don't you'll miss on loop optimizations.

Quoting from the GCC install prerequisites page:

Necessary to build GCC with the Graphite loop optimizations. It can be downloaded from https://gcc.gnu.org/pub/gcc/infrastructure/. If an isl source distribution is found in a subdirectory of your GCC sources named isl, it will be built together with GCC. Alternatively, the --with-isl configure option should be used if isl is not installed in your default library search path.

Hope that clears up the confusion.

maybe i need to write my own build script

Well that's up to you, it's easier to fork this script and disable ISL only to enable it later on because eventually your distribution's GCC will be updated, than write your own script from scratch. Either ways good luck!

i would like to continue using your script.

would you mind adding an option like --without-isl to your script ?

the impact of not having isl in gcc is not that impacting in my usecase, as i use it to build only intermediate (stage 2) compilers.

as i final step, i would like to compile different sets (profiles ie. versions) of (stage 3) compilers with matching libraries like those given in the LFS documents or various distributions, maybe as far back as gcc3.

would you mind adding an option like --without-isl to your script ?

perhaps it is better to manually change the version of isl

diff --git a/mussel.sh b/mussel.sh
index 7962eb5..28110bd 100755
--- a/mussel.sh
+++ b/mussel.sh
@@ -32,7 +32,7 @@ NORMALC='\033[0m'
 binutils_ver=2.39
 gcc_ver=12.2.0
 gmp_ver=6.2.1
-isl_ver=0.25
+isl_ver=0.24
 linux_ver=5.19.4
 mpc_ver=1.2.1
 mpfr_ver=4.1.1
@@ -54,7 +54,7 @@ pkgconf_url=https://distfiles.dereferenced.org/pkgconf/pkgconf-$pkgconf_ver.tar.
 binutils_sum=ec4206ca366796d012cabba0f1b0851fd3e1afd428346751f8bbe1da5e79ece6006a2e692be7324f902e0a18c1fb10ac067220076300a85f79e25a146dde17a2
 gcc_sum=e9e857bd81bf7a370307d6848c81b2f5403db8c7b5207f54bce3f3faac3bde63445684092c2bc1a2427cddb6f7746496d9fbbef05fbbd77f2810b2998f1f9173
 gmp_sum=1dfd3a5cd9afa2db2f2e491b0df045e3c15863e61f4efc7b93c5b32bdfefe572b25bb7621df4075bf8427274d438df194629f5169250a058dadaeaaec599291b
-isl_sum=81ac6b404a71e146bb705efe647ecf3bee19c3254f534cb44228cec13ffc7a33d7d58b980106dbb120ffdc557403d966619e219328edd0a4b3cbc4ac66acb255
+isl_sum=ff6bdcff839e1cd473f2a0c1e4dd4a3612ec6fee4544ccbc62b530a7248db2cf93b4b99bf493a86ddf2aba00e768927265d5d411f92061ea85fd7929073428e8
 linux_sum=1d03f5b1ecb61adb52fcb2222b4d21548ca65e9fc0dc768d7b63c984644c9998bebab78cff4ec37af0fa15e4add84bb3fbd6c1e69d4aeac39dd0c59afa9f5e62
 mpc_sum=3279f813ab37f47fdcc800e4ac5f306417d07f539593ca715876e43e04896e1d5bceccfb288ef2908a3f24b760747d0dbd0392a24b9b341bc3e12082e5c836ee
 mpfr_sum=be468749bd88870dec37be35e544983a8fb7bda638eb9414c37334b9d553099ea2aa067045f51ae2c8ab86d852ef833e18161d173e414af0928e9a438c9b91f1

would you mind adding an option like --without-isl to your script ?

perhaps it is better to manually change the version of isl

diff --git a/mussel.sh b/mussel.sh
index 7962eb5..28110bd 100755
--- a/mussel.sh
+++ b/mussel.sh
@@ -32,7 +32,7 @@ NORMALC='\033[0m'
 binutils_ver=2.39
 gcc_ver=12.2.0
 gmp_ver=6.2.1
-isl_ver=0.25
+isl_ver=0.24
 linux_ver=5.19.4
 mpc_ver=1.2.1
 mpfr_ver=4.1.1
@@ -54,7 +54,7 @@ pkgconf_url=https://distfiles.dereferenced.org/pkgconf/pkgconf-$pkgconf_ver.tar.
 binutils_sum=ec4206ca366796d012cabba0f1b0851fd3e1afd428346751f8bbe1da5e79ece6006a2e692be7324f902e0a18c1fb10ac067220076300a85f79e25a146dde17a2
 gcc_sum=e9e857bd81bf7a370307d6848c81b2f5403db8c7b5207f54bce3f3faac3bde63445684092c2bc1a2427cddb6f7746496d9fbbef05fbbd77f2810b2998f1f9173
 gmp_sum=1dfd3a5cd9afa2db2f2e491b0df045e3c15863e61f4efc7b93c5b32bdfefe572b25bb7621df4075bf8427274d438df194629f5169250a058dadaeaaec599291b
-isl_sum=81ac6b404a71e146bb705efe647ecf3bee19c3254f534cb44228cec13ffc7a33d7d58b980106dbb120ffdc557403d966619e219328edd0a4b3cbc4ac66acb255
+isl_sum=ff6bdcff839e1cd473f2a0c1e4dd4a3612ec6fee4544ccbc62b530a7248db2cf93b4b99bf493a86ddf2aba00e768927265d5d411f92061ea85fd7929073428e8
 linux_sum=1d03f5b1ecb61adb52fcb2222b4d21548ca65e9fc0dc768d7b63c984644c9998bebab78cff4ec37af0fa15e4add84bb3fbd6c1e69d4aeac39dd0c59afa9f5e62
 mpc_sum=3279f813ab37f47fdcc800e4ac5f306417d07f539593ca715876e43e04896e1d5bceccfb288ef2908a3f24b760747d0dbd0392a24b9b341bc3e12082e5c836ee
 mpfr_sum=be468749bd88870dec37be35e544983a8fb7bda638eb9414c37334b9d553099ea2aa067045f51ae2c8ab86d852ef833e18161d173e414af0928e9a438c9b91f1

That would also work, since isl version 0.24 doesn't require C++17.

But it's a temporary downgrade until gcc on Debian is updated to support C++17.

@minnyres is this still an issue?

Debian stable is still using GCC 10.2.1. The problem may be solved when GCC 11 or higher is available on Debian stable.

It works in Debian 12 with GCC 12.2 so this issue can be closed.

Glad that it is working again!