Rust gcc-builder fails with isl error when trying to build latest gcc on Debian 13/trixie
While waiting for issue #23 to be fixed, I tried the rust version, gcc-builder (on Debian 13/trixie). I believe that I followed the directions correctly.
I executed: gcc-builder --latest --prefix $HOME/gcc --jobs $(nproc) --build-dir /tmp/gcc-build
and, after everything was downloaded, received:
checking for isl 0.15 or later... no required isl version is 0.15 or later configure: error: Unable to find a usable isl. See config.log for details.
I don't know what isl is, or where to find it. apt doesn't seem to find it (there is no Debian isl package), so I think I'm stuck.
Looking around the internet, I saw that perhaps isl is provided by the libisl package. But that is already installed (as is libisl-dev). The current version of libisl installed on trixie from the debian stable repository is 0.27 (therefore > 0.15).
In case this bug was something to do with the fact that it was happening an a system that had been upgraded from bookworm to trixie, I built a virtualbox VM from scratch and installed the latest trixie on that, and then followed the instructions to install the rust version of gcc-builder. Unfortunately I ended up with exactly the same error when I tried to execute the newly-installed gcc-builder to create and install the latest version of gcc (version 15.2).
In a way, I suppose it's good that it behaved exactly the same way as the physical machine that had been upgraded to trixie. But it does mean that I am still stuck, with no way forward :-(
FWIW, here is the config.log from the VM. It doesn't tell me anything useful, but perhaps it's of some help to you.
So... although it's MUCH more complicated that simply using the rust gcc-builder that fails, I have found that blindly following the instructions located at: https://tutorialforlinux.com/2025/08/18/how-to-install-gcc-15-from-source-on-debian-trixie-installation/3/ does not complain with the isl error, and does appear to execute to completion without error on a pristine virtual machine running trixie.
That, I fervently hope, is a helpful clue as to what's going wrong with gcc-builder.
Oh, I forget to mention that there is a minor error in the instructions at the tutorialforlinux.com site:
the step (for c, c++, fortran, objc, obj-c++ and go): ..configure --enable-languages=c,c++,fortran,objc,obj-c++,go --prefix="/usr/local"
should be: ../configure --enable-languages=c,c++,fortran,objc,obj-c++,go --prefix="/usr/local"
I just built C and C++. Probably all I really needed was C++, since that's all I ever write in, but I thought it might be safer to add C.
I can confirm that the instructions at https://tutorialforlinux.com/2025/08/18/how-to-install-gcc-15-from-source-on-debian-trixie-installation/3/ do seem to work correctly: I now have g++ 15.2 running on trixie, building a sizeable project in C++-26 mode, and all seems as it should. (The code uses some C++-26 features, and will not build on the default g++ compiler included with trixie.)
So I hope that you'll be able to compare your bash build-gcc.sh and your rust gcc-builder with the instructions at tutorialforlinux.com and spot (and fix) why your scripts are currently failing.
Let me know if I can give you any further info.
I updated the other support ticket so, yes, this should be fixed.
Nope... I created a brand new VM and installed debian trixie on it, then followed the instructions at: https://github.com/slyfox1186/script-repo/tree/main/rust
It failed exactly the same way as it did when I originally reported the bug:
gcc-builder built OK, and then I issued the command: ./target/release/gcc-builder --versions 15 --prefix $HOME/gcc-15 --verbose --build-dir ~/zbrew/gcc-build
and the result was:
...
checking for isl 0.15 or later... no required isl version is 0.15 or later configure: error: Unable to find a usable isl. See config.log for details. [2025-11-08 11:20:40 ERROR] Command failed with exit code 1 after 5.687925659s: /home/n7dr/zbrew/gcc-build/workspace/gcc-15.2.0/configure --prefix=/home/n7dr/gcc-15/gcc-15.2.0 --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --target=x86_64-pc-linux-gnu --program-suffix=-15 --with-gcc-major-version-only --enable-checking=release --enable-threads=posix --disable-bootstrap --with-system-zlib --with-isl=/usr --enable-languages=all --enable-shared --disable-nls --disable-multilib --enable-default-pie --enable-gnu-unique-object --with-link-serialization=2 --enable-cet [2025-11-08 11:20:40 INFO] 🏁 Build slot released for GCC 15.0.0 (duration: 494.300734003s, success: false) [2025-11-08 11:20:40 ERROR] ❌ Build failed: Build failed: configure - Configure failed: Command execution failed: /home/n7dr/zbrew/gcc-build/workspace/gcc-15.2.0/configure --prefix=/home/n7dr/gcc-15/gcc-15.2.0 --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --target=x86_64-pc-linux-gnu --program-suffix=-15 --with-gcc-major-version-only --enable-checking=release --enable-threads=posix --disable-bootstrap --with-system-zlib --with-isl=/usr --enable-languages=all --enable-shared --disable-nls --disable-multilib --enable-default-pie --enable-gnu-unique-object --with-link-serialization=2 --enable-cet - 1 [2025-11-08 11:20:40 INFO]
If this fixes your issues let me know. I removed all ISL related code and now GCC itself will by DEFAULT handle the ISL package for us.
GCC Builder - Quick Setup
Quick Start (3 Commands)
# 1. Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"
# 2. Clone and build
git clone https://github.com/slyfox1186/script-repo.git
cd script-repo/rust
sudo apt update && sudo apt install -y build-essential curl wget m4 flex bison
cargo build --release
# 3. Run GCC builder
./target/release/gcc-builder --latest --prefix $HOME/gcc --verbose
Usage Examples
# Build latest GCC (recommended)
./target/release/gcc-builder --latest --prefix $HOME/gcc --jobs $(nproc --all)
# Build specific versions
./target/release/gcc-builder --versions 13 --prefix $HOME/gcc-13
./target/release/gcc-builder --versions 13,14,15 --prefix $HOME/gcc-multi
# Quick test (dry run)
./target/release/gcc-builder --latest --prefix $HOME/gcc --dry-run
# Production build
./target/release/gcc-builder --preset production --prefix $HOME/gcc-prod
Common Options
--latest- Build latest stable GCC--versions X- Build specific version(s)--preset minimal|development|production- Use presets--prefix PATH- Installation directory--jobs N- Parallel jobs (default: auto-detect)--verbose- Show detailed output--dry-run- Show what would be done
Troubleshooting
Permission errors:
# Use home directory instead of system directories
./target/release/gcc-builder --latest --prefix $HOME/gcc
Memory issues:
# Reduce parallel jobs
./target/release/gcc-builder --latest --prefix $HOME/gcc --jobs 4
Debug issues:
# Enable full logging
./target/release/gcc-builder --latest --prefix $HOME/gcc --verbose --debug
Install System-wide (Optional)
sudo cp ./target/release/gcc-builder /usr/local/bin/
Now you can run gcc-builder from anywhere.
Features: Zero configuration • Multi-version support • Automatic dependency handling • Works on Ubuntu/Debian
It nearly worked.
I issued the command:
./target/release/gcc-builder --latest --prefix $HOME/gcc --verbose --build-dir /home/n7dr/remote/zbrew-tmp
It built, but did not install (copy and paste from the terminal):
... Build completed successfully in 6980.31s
[2025-11-15 10:48:29 INFO] Completed: 🏗 Building GCC 15.2.0 (parallel) (took 6980.31s) [2025-11-15 10:48:29 INFO] 📦 Step 6/7: Installing GCC 15.2.0 to /home/n7dr/gcc/gcc-15.2.0... [2025-11-15 10:48:29 INFO] Starting: 📦 Installing GCC
───────────────────────────────────────────────────────────────── 📦 Installing GCC 15.2.0 to /home/n7dr/gcc/gcc-15.2.0 ───────────────────────────────────────────────────────────────── This requires sudo privileges. You may be prompted for your password.
Install output: ───────────────────────────────────────────────────────────────── [sudo] password for n7dr: make: stat: GNUmakefile: Permission denied make: stat: makefile: Permission denied make: stat: Makefile: Permission denied make: stat: install-strip: Permission denied make: *** No rule to make target 'install-strip'. Stop. [2025-11-15 11:53:21 ERROR] Command failed with exit code 2 after 3892.351368095s: sudo make install-strip [2025-11-15 11:53:21 INFO] 🏁 Build slot released for GCC 15.2.0 (duration: 11362.917372882s, success: false) [2025-11-15 11:53:21 ERROR] ❌ Build failed: Build failed: install - Installation failed: Command execution failed: sudo make install-strip - 2 [2025-11-15 11:53:21 INFO] 💡 Suggestions to resolve this issue: ──────────────────────────────────────────────────
ℹ 1. Check build logs Review the detailed build logs for more information
Commands:
Enable verbose output:
./gcc-builder --verbose --debug ...
Save logs to file:
./gcc-builder --log-file build.log ... ──────────────────────────────────────────────────
So:
- it's a puzzle why installing into a directory in my own user file tree required sudo priveleges.
- having entered a correct password, it's a puzzle why there are those "permission denied" errors associated with the makefiles.
- the lack of a target "install-strip" is probably something to do with the makefile errors.
I'm not sure where the compiler actually ended up; going to the workspace directory and issuing "find . -name g++*" produces a bunch of hits, but none of them appear to be the actual compiler (or a link to it), but perhaps I'm just being blind.