summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmily Trau <emily@downunderctf.com>2023-09-25 00:12:23 -0700
committerEmily Trau <emily@downunderctf.com>2023-09-26 22:20:35 -0700
commit1c1962f97536041ce38116feebc52e4e35ec9396 (patch)
tree046444825e6547091d3fb318f92e832afb289bbf
parentminimal-bootstrap.tinycc-musl: unstable-2023-04-20 -> unstable-2023-07-10 (diff)
downloadnixpkgs-1c1962f97536041ce38116feebc52e4e35ec9396.tar.gz
minimal-bootstrap.bash: build with musl
-rw-r--r--pkgs/os-specific/linux/minimal-bootstrap/bash/default.nix35
-rw-r--r--pkgs/os-specific/linux/minimal-bootstrap/bash/mksignames-flush.patch10
-rw-r--r--pkgs/os-specific/linux/minimal-bootstrap/default.nix7
-rw-r--r--pkgs/os-specific/linux/minimal-bootstrap/gcc/4.6.nix2
4 files changed, 35 insertions, 19 deletions
diff --git a/pkgs/os-specific/linux/minimal-bootstrap/bash/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/bash/default.nix
index dea5ad9f017f..35c4da7acf93 100644
--- a/pkgs/os-specific/linux/minimal-bootstrap/bash/default.nix
+++ b/pkgs/os-specific/linux/minimal-bootstrap/bash/default.nix
@@ -4,15 +4,14 @@
, fetchurl
, bootBash
, gnumake
+, gnupatch
, gnused
, gnugrep
, gnutar
, gawk
, gzip
-, gcc
-, glibc
-, binutils
-, linux-headers
+, diffutils
+, tinycc
, derivationWithMeta
, bash
, coreutils
@@ -25,19 +24,26 @@ let
url = "mirror://gnu/bash/bash-${version}.tar.gz";
sha256 = "132qng0jy600mv1fs95ylnlisx2wavkkgpb19c6kmz7lnmjhjwhk";
};
+
+ patches = [
+ # flush output for generated code
+ ./mksignames-flush.patch
+ ];
in
bootBash.runCommand "${pname}-${version}" {
inherit pname version;
nativeBuildInputs = [
- gcc
- binutils
+ coreutils
+ tinycc.compiler
gnumake
+ gnupatch
gnused
gnugrep
gnutar
gawk
gzip
+ diffutils
];
passthru.runCommand = name: env: buildCommand:
@@ -78,22 +84,23 @@ bootBash.runCommand "${pname}-${version}" {
tar xzf ${src}
cd bash-${version}
+ # Patch
+ ${lib.concatMapStringsSep "\n" (f: "patch -Np1 -i ${f}") patches}
+
# Configure
- export CC="gcc -I${glibc}/include -I${linux-headers}/include"
- export LIBRARY_PATH="${glibc}/lib"
- export LIBS="-lc -lnss_files -lnss_dns -lresolv"
- export ac_cv_func_dlopen=no
+ export CC="tcc -B ${tinycc.libs}/lib"
+ export AR="tcc -ar"
+ export LD=tcc
bash ./configure \
--prefix=$out \
--build=${buildPlatform.config} \
--host=${hostPlatform.config} \
- --disable-nls \
- --disable-net-redirections
+ --without-bash-malloc
# Build
- make SHELL=bash
+ make -j $NIX_BUILD_CORES SHELL=bash
# Install
- make install
+ make -j $NIX_BUILD_CORES install
ln -s bash $out/bin/sh
''
diff --git a/pkgs/os-specific/linux/minimal-bootstrap/bash/mksignames-flush.patch b/pkgs/os-specific/linux/minimal-bootstrap/bash/mksignames-flush.patch
new file mode 100644
index 000000000000..6e64dfa7fa3a
--- /dev/null
+++ b/pkgs/os-specific/linux/minimal-bootstrap/bash/mksignames-flush.patch
@@ -0,0 +1,10 @@
+--- a/support/mksignames.c
++++ b/support/mksignames.c
+@@ -68,6 +68,7 @@ write_signames (stream)
+ fprintf (stream, "};\n\n");
+ fprintf (stream, "#define initialize_signames()\n\n");
+ #endif
++ fflush(stream);
+ }
+
+ int
diff --git a/pkgs/os-specific/linux/minimal-bootstrap/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/default.nix
index b872b058a9f3..d0eed2f87aaf 100644
--- a/pkgs/os-specific/linux/minimal-bootstrap/default.nix
+++ b/pkgs/os-specific/linux/minimal-bootstrap/default.nix
@@ -17,8 +17,10 @@ lib.makeScope
bash = callPackage ./bash {
bootBash = bash_2_05;
- gcc = gcc2;
- glibc = glibc22;
+ tinycc = tinycc-musl;
+ coreutils = coreutils-musl;
+ gnumake = gnumake-musl;
+ gnutar = gnutar-musl;
};
binutils = callPackage ./binutils {
@@ -73,7 +75,6 @@ lib.makeScope
};
gcc46 = callPackage ./gcc/4.6.nix {
- coreutils = coreutils-musl;
tinycc = tinycc-musl;
gnumake = gnumake-musl;
gnutar = gnutar-musl;
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 02094413b2c7..4af069523f2c 100644
--- a/pkgs/os-specific/linux/minimal-bootstrap/gcc/4.6.nix
+++ b/pkgs/os-specific/linux/minimal-bootstrap/gcc/4.6.nix
@@ -3,7 +3,6 @@
, hostPlatform
, fetchurl
, bash
-, coreutils
, tinycc
, binutils
, gnumake
@@ -57,7 +56,6 @@ bash.runCommand "${pname}-${version}" {
inherit pname version;
nativeBuildInputs = [
- coreutils
tinycc.compiler
binutils
gnumake