From b926d50aaf166585c1395092adbdaaa7b572632b Mon Sep 17 00:00:00 2001 From: Ben Siraphob Date: Sat, 2 May 2026 01:28:38 -0700 Subject: [PATCH 1/7] minimal-bootstrap: reduce bootstrap time --- pkgs/os-specific/linux/minimal-bootstrap/gcc/10.nix | 5 ++++- pkgs/os-specific/linux/minimal-bootstrap/gcc/4.6.cxx.nix | 5 ++++- pkgs/os-specific/linux/minimal-bootstrap/gcc/4.6.nix | 1 + pkgs/os-specific/linux/minimal-bootstrap/gcc/glibc.nix | 4 ++++ pkgs/os-specific/linux/minimal-bootstrap/gcc/latest.nix | 5 ++++- pkgs/os-specific/linux/minimal-bootstrap/glibc/default.nix | 1 + 6 files changed, 18 insertions(+), 3 deletions(-) diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gcc/10.nix b/pkgs/os-specific/linux/minimal-bootstrap/gcc/10.nix index 090b939acd7f..3146c350dddb 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/gcc/10.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/gcc/10.nix @@ -127,7 +127,10 @@ bash.runCommand "${pname}-${version}" # Configure export CC="gcc -Wl,-dynamic-linker -Wl,${musl}/lib/libc.so" export CXX="g++ -Wl,-dynamic-linker -Wl,${musl}/lib/libc.so" - export CFLAGS_FOR_TARGET="-Wl,-dynamic-linker -Wl,${musl}/lib/libc.so" + export CFLAGS="-O1" + export CXXFLAGS="-O1" + export CFLAGS_FOR_TARGET="-O0 -Wl,-dynamic-linker -Wl,${musl}/lib/libc.so" + export CXXFLAGS_FOR_TARGET="$CFLAGS_FOR_TARGET" export C_INCLUDE_PATH="${musl}/include" export CPLUS_INCLUDE_PATH="$C_INCLUDE_PATH" export LIBRARY_PATH="${musl}/lib" diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gcc/4.6.cxx.nix b/pkgs/os-specific/linux/minimal-bootstrap/gcc/4.6.cxx.nix index 0f442367f72f..9eb873ea0da5 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/gcc/4.6.cxx.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/gcc/4.6.cxx.nix @@ -130,7 +130,10 @@ bash.runCommand "${pname}-${version}" # Configure export CC="gcc -Wl,-dynamic-linker -Wl,${musl}/lib/libc.so" - export CFLAGS_FOR_TARGET="-Wl,-dynamic-linker -Wl,${musl}/lib/libc.so" + export CFLAGS="-O1" + export CXXFLAGS="-O1" + export CFLAGS_FOR_TARGET="-O0 -Wl,-dynamic-linker -Wl,${musl}/lib/libc.so" + export CXXFLAGS_FOR_TARGET="$CFLAGS_FOR_TARGET" export C_INCLUDE_PATH="${musl}/include" export CPLUS_INCLUDE_PATH="$C_INCLUDE_PATH" export LIBRARY_PATH="${musl}/lib" diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gcc/4.6.nix b/pkgs/os-specific/linux/minimal-bootstrap/gcc/4.6.nix index d9c37f5a0562..7c533e2d0d5b 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/gcc/4.6.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/gcc/4.6.nix @@ -110,6 +110,7 @@ bash.runCommand "${pname}-${version}" # Configure export CC="tcc -B ${tinycc.libs}/lib" + export CFLAGS="-O2" export C_INCLUDE_PATH="${tinycc.libs}/include:$(pwd)/mpfr/src" export CPLUS_INCLUDE_PATH="$C_INCLUDE_PATH" diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gcc/glibc.nix b/pkgs/os-specific/linux/minimal-bootstrap/gcc/glibc.nix index 890098aa66b9..eb8da7723f98 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/gcc/glibc.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/gcc/glibc.nix @@ -126,6 +126,10 @@ bash.runCommand "${pname}-${version}" # Configure export CC="gcc -Wl,-dynamic-linker -Wl,${musl}/lib/libc.so" export CXX="g++ -Wl,-dynamic-linker -Wl,${musl}/lib/libc.so" + export CFLAGS="-O1 -pipe" + export CXXFLAGS="-O1 -pipe" + export CFLAGS_FOR_TARGET="-O0" + export CXXFLAGS_FOR_TARGET="-O0" bash ./configure \ --prefix=$out \ diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gcc/latest.nix b/pkgs/os-specific/linux/minimal-bootstrap/gcc/latest.nix index e55acf5caecd..287f894626e0 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/gcc/latest.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/gcc/latest.nix @@ -124,7 +124,10 @@ bash.runCommand "${pname}-${version}" # Configure export CC="gcc -Wl,-dynamic-linker -Wl,${musl}/lib/libc.so" export CXX="g++ -Wl,-dynamic-linker -Wl,${musl}/lib/libc.so" - export CFLAGS_FOR_TARGET="-Wl,-dynamic-linker -Wl,${musl}/lib/libc.so" + export CFLAGS="-O1" + export CXXFLAGS="-O1" + export CFLAGS_FOR_TARGET="-O0 -Wl,-dynamic-linker -Wl,${musl}/lib/libc.so" + export CXXFLAGS_FOR_TARGET="$CFLAGS_FOR_TARGET" export LIBRARY_PATH="${musl}/lib" bash ./configure \ diff --git a/pkgs/os-specific/linux/minimal-bootstrap/glibc/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/glibc/default.nix index a9694d349f5e..b1df854db276 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/glibc/default.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/glibc/default.nix @@ -98,6 +98,7 @@ bash.runCommand "${pname}-${version}" cd build # libstdc++.so is built against musl and fails to link export CXX=false + export CFLAGS="-O1" bash ../configure \ --prefix=$out \ --build=${buildPlatform.config} \ From 08521f3b58242c879b96105dc23102c8ea708d5f Mon Sep 17 00:00:00 2001 From: Ben Siraphob Date: Wed, 6 May 2026 17:34:32 +0000 Subject: [PATCH 2/7] minimal-bootstrap.binutils: --disable-{gold,plugins} --- pkgs/os-specific/linux/minimal-bootstrap/binutils/default.nix | 2 ++ pkgs/os-specific/linux/minimal-bootstrap/binutils/static.nix | 2 ++ 2 files changed, 4 insertions(+) diff --git a/pkgs/os-specific/linux/minimal-bootstrap/binutils/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/binutils/default.nix index 4ba20f13192e..eb34c121e9da 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/binutils/default.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/binutils/default.nix @@ -54,6 +54,8 @@ let # libbfd and libopcodes into a default visibility. Drop default lib # path to force users to declare their use of these libraries. "--with-lib-path=:" + "--disable-gold" + "--disable-plugins" ]; in bash.runCommand "${pname}-${version}" diff --git a/pkgs/os-specific/linux/minimal-bootstrap/binutils/static.nix b/pkgs/os-specific/linux/minimal-bootstrap/binutils/static.nix index fd0681ca4d41..90e2eb8126ea 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/binutils/static.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/binutils/static.nix @@ -56,6 +56,8 @@ let # libbfd and libopcodes into a default visibility. Drop default lib # path to force users to declare their use of these libraries. "--with-lib-path=:" + "--disable-gold" + "--disable-plugins" ]; in bash.runCommand "${pname}-${version}" From 9eb073dafa87aa513a1ac5e353c3c9948903f072 Mon Sep 17 00:00:00 2001 From: Ben Siraphob Date: Wed, 6 May 2026 17:34:32 +0000 Subject: [PATCH 3/7] minimal-bootstrap.glibc: --disable-{nscd,build-nscd,profile,timezone-tools,mathvec} --- pkgs/os-specific/linux/minimal-bootstrap/glibc/default.nix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pkgs/os-specific/linux/minimal-bootstrap/glibc/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/glibc/default.nix index b1df854db276..f156f862ecc0 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/glibc/default.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/glibc/default.nix @@ -104,7 +104,12 @@ bash.runCommand "${pname}-${version}" --build=${buildPlatform.config} \ --host=${hostPlatform.config} \ --with-headers=${linux-headers}/include \ - --disable-dependency-tracking + --disable-dependency-tracking \ + --disable-nscd \ + --disable-build-nscd \ + --disable-profile \ + --disable-timezone-tools \ + --disable-mathvec # Build make -j $NIX_BUILD_CORES From 4791df2472f2b75a852a49306884d9b88e2e6c56 Mon Sep 17 00:00:00 2001 From: Ben Siraphob Date: Wed, 6 May 2026 17:34:32 +0000 Subject: [PATCH 4/7] minimal-bootstrap.gcc46-cxx: --disable-{libsanitizer,shared} --- pkgs/os-specific/linux/minimal-bootstrap/gcc/4.6.cxx.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gcc/4.6.cxx.nix b/pkgs/os-specific/linux/minimal-bootstrap/gcc/4.6.cxx.nix index 9eb873ea0da5..3016e751e72f 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/gcc/4.6.cxx.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/gcc/4.6.cxx.nix @@ -155,7 +155,9 @@ bash.runCommand "${pname}-${version}" --disable-libstdcxx-pch \ --disable-lto \ --disable-multilib \ - --disable-nls + --disable-nls \ + --disable-libsanitizer \ + --disable-shared # Build make -j $NIX_BUILD_CORES From 1ea118f2b0a43aa573848517968a1ac90ff3e225 Mon Sep 17 00:00:00 2001 From: Ben Siraphob Date: Wed, 6 May 2026 17:34:33 +0000 Subject: [PATCH 5/7] minimal-bootstrap.gcc10: drop ISL, --disable-{libstdcxx-filesystem-ts,shared} --- pkgs/os-specific/linux/minimal-bootstrap/gcc/10.nix | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gcc/10.nix b/pkgs/os-specific/linux/minimal-bootstrap/gcc/10.nix index 3146c350dddb..25b06eb13f00 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/gcc/10.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/gcc/10.nix @@ -48,12 +48,6 @@ let url = "mirror://gnu/mpc/mpc-${mpcVersion}.tar.gz"; hash = "sha256-q2QkkvXPiCt0qgy3MM1BCoHtzb7IlRg86TDnBsHHWbg="; }; - - islVersion = "0.24"; - isl = fetchurl { - url = "https://gcc.gnu.org/pub/gcc/infrastructure/isl-${islVersion}.tar.bz2"; - hash = "sha256-/PeN2WVsEOuM+fvV9ZoLawE4YgX+GTSzsoegoYmBRcA="; - }; in bash.runCommand "${pname}-${version}" { @@ -112,13 +106,11 @@ bash.runCommand "${pname}-${version}" tar xf ${gmp} tar xf ${mpfr} tar xf ${mpc} - tar xf ${isl} cd gcc-${version} ln -s ../gmp-${gmpVersion} gmp ln -s ../mpfr-${mpfrVersion} mpfr ln -s ../mpc-${mpcVersion} mpc - ln -s ../isl-${islVersion} isl # Patch # doesn't recognise musl @@ -157,7 +149,10 @@ bash.runCommand "${pname}-${version}" --disable-lto \ --disable-multilib \ --disable-nls \ - --disable-plugin + --disable-plugin \ + --without-isl \ + --disable-libstdcxx-filesystem-ts \ + --disable-shared # Build make -j $NIX_BUILD_CORES From 9ced5a330a4bca970d931aa622ddab02eef359bc Mon Sep 17 00:00:00 2001 From: Ben Siraphob Date: Wed, 6 May 2026 17:34:33 +0000 Subject: [PATCH 6/7] minimal-bootstrap.gcc-latest: drop ISL, --disable-shared --- .../linux/minimal-bootstrap/gcc/latest.nix | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gcc/latest.nix b/pkgs/os-specific/linux/minimal-bootstrap/gcc/latest.nix index 287f894626e0..d003f164abad 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/gcc/latest.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/gcc/latest.nix @@ -45,12 +45,6 @@ let url = "mirror://gnu/mpc/mpc-${mpcVersion}.tar.gz"; hash = "sha256-q2QkkvXPiCt0qgy3MM1BCoHtzb7IlRg86TDnBsHHWbg="; }; - - islVersion = "0.24"; - isl = fetchurl { - url = "https://gcc.gnu.org/pub/gcc/infrastructure/isl-${islVersion}.tar.bz2"; - hash = "sha256-/PeN2WVsEOuM+fvV9ZoLawE4YgX+GTSzsoegoYmBRcA="; - }; in bash.runCommand "${pname}-${version}" { @@ -109,13 +103,11 @@ bash.runCommand "${pname}-${version}" tar xf ${gmp} tar xf ${mpfr} tar xf ${mpc} - tar xf ${isl} cd gcc-${version} ln -s ../gmp-${gmpVersion} gmp ln -s ../mpfr-${mpfrVersion} mpfr ln -s ../mpc-${mpcVersion} mpc - ln -s ../isl-${islVersion} isl # Patch # force musl even if host triple is gnu @@ -151,7 +143,9 @@ bash.runCommand "${pname}-${version}" --disable-lto \ --disable-multilib \ --disable-nls \ - --disable-plugin + --disable-plugin \ + --without-isl \ + --disable-shared # Build make -j $NIX_BUILD_CORES From 0571f521a81fbd72eda2f9c8dae949ad54594f1c Mon Sep 17 00:00:00 2001 From: Ben Siraphob Date: Wed, 6 May 2026 17:34:33 +0000 Subject: [PATCH 7/7] minimal-bootstrap.gcc-glibc: drop ISL, --disable-libstdcxx-{backtrace,filesystem-ts} --- .../linux/minimal-bootstrap/gcc/glibc.nix | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gcc/glibc.nix b/pkgs/os-specific/linux/minimal-bootstrap/gcc/glibc.nix index eb8da7723f98..3188453cea74 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/gcc/glibc.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/gcc/glibc.nix @@ -52,12 +52,6 @@ let url = "mirror://gnu/mpc/mpc-${mpcVersion}.tar.gz"; hash = "sha256-q2QkkvXPiCt0qgy3MM1BCoHtzb7IlRg86TDnBsHHWbg="; }; - - islVersion = "0.24"; - isl = fetchurl { - url = "https://gcc.gnu.org/pub/gcc/infrastructure/isl-${islVersion}.tar.bz2"; - hash = "sha256-/PeN2WVsEOuM+fvV9ZoLawE4YgX+GTSzsoegoYmBRcA="; - }; in bash.runCommand "${pname}-${version}" { @@ -115,13 +109,11 @@ bash.runCommand "${pname}-${version}" tar xf ${gmp} tar xf ${mpfr} tar xf ${mpc} - tar xf ${isl} cd gcc-${version} ln -s ../gmp-${gmpVersion} gmp ln -s ../mpfr-${mpfrVersion} mpfr ln -s ../mpc-${mpcVersion} mpc - ln -s ../isl-${islVersion} isl # Configure export CC="gcc -Wl,-dynamic-linker -Wl,${musl}/lib/libc.so" @@ -152,7 +144,10 @@ bash.runCommand "${pname}-${version}" --disable-multilib \ --disable-nls \ --disable-plugin \ - --with-specs="%x{-dynamic-linker=${glibc}/lib/${linkerName}} %x{-L${glibc}/lib/} -B${glibc}/lib" + --with-specs="%x{-dynamic-linker=${glibc}/lib/${linkerName}} %x{-L${glibc}/lib/} -B${glibc}/lib" \ + --without-isl \ + --disable-libstdcxx-backtrace \ + --disable-libstdcxx-filesystem-ts # Build make -j $NIX_BUILD_CORES