From e21778c81bb11b9830a813e44d0656e6af30cd68 Mon Sep 17 00:00:00 2001 From: Jake Hamilton Date: Tue, 20 Aug 2024 13:33:06 -0700 Subject: [PATCH] wip: fix extend, no working cross compile --- foundation/flake.lock | 13 +- tidepool/flake.lock | 24 +- tidepool/src/builders/basic.nix | 11 +- tidepool/src/export.nix | 18 +- tidepool/src/lib/types.nix | 47 ++- tidepool/src/packages/aux/a.nix | 2 +- .../packages/foundation/binutils/default.nix | 193 +++++------ .../src/packages/foundation/gcc/default.nix | 302 +++++++++++------- .../src/packages/foundation/glibc/default.nix | 10 +- 9 files changed, 384 insertions(+), 236 deletions(-) diff --git a/foundation/flake.lock b/foundation/flake.lock index 37bbbad..f58668e 100644 --- a/foundation/flake.lock +++ b/foundation/flake.lock @@ -3,17 +3,18 @@ "lib": { "locked": { "dir": "lib", - "dirtyRev": "2be3111b2c0911f40b47fe0a1fb22b5f5188cf59-dirty", - "dirtyShortRev": "2be3111-dirty", - "lastModified": 1719251485, - "narHash": "sha256-63NvfFVeTDITfNu60rmCUlaZtAeZUnvrIaOLSk9ScC8=", + "lastModified": 1723737980, + "narHash": "sha256-1WnFatW5kSuO2jjt62hvSbH84TSYyO+VmvkJ0d5e/ZY=", + "ref": "master", + "rev": "cadfaabc853d20f2bc20bad794fcbe520ea48f13", + "revCount": 82, "type": "git", - "url": "file:../?dir=lib" + "url": "file:../" }, "original": { "dir": "lib", "type": "git", - "url": "file:../?dir=lib" + "url": "file:../" } }, "root": { diff --git a/tidepool/flake.lock b/tidepool/flake.lock index 990a516..9318c85 100644 --- a/tidepool/flake.lock +++ b/tidepool/flake.lock @@ -8,33 +8,33 @@ }, "locked": { "dir": "foundation", - "dirtyRev": "3f9d287065ac685ce500c2cddb35428b2927f5a2-dirty", - "dirtyShortRev": "3f9d287-dirty", - "lastModified": 1720514984, - "narHash": "sha256-AuixwSlYk34Z6+GEc7y4QotF3Hk963zC9I9hAwX5KCE=", + "dirtyRev": "cadfaabc853d20f2bc20bad794fcbe520ea48f13-dirty", + "dirtyShortRev": "cadfaab-dirty", + "lastModified": 1723737980, + "narHash": "sha256-wytg4odrfvFVYvTskWUficyi8VnaaEt54aIlKUn3SKw=", "type": "git", - "url": "file:../?dir=foundation" + "url": "file:../" }, "original": { "dir": "foundation", "type": "git", - "url": "file:../?dir=foundation" + "url": "file:../" } }, "lib": { "locked": { "dir": "lib", - "dirtyRev": "3f9d287065ac685ce500c2cddb35428b2927f5a2-dirty", - "dirtyShortRev": "3f9d287-dirty", - "lastModified": 1720514984, - "narHash": "sha256-AuixwSlYk34Z6+GEc7y4QotF3Hk963zC9I9hAwX5KCE=", + "dirtyRev": "cadfaabc853d20f2bc20bad794fcbe520ea48f13-dirty", + "dirtyShortRev": "cadfaab-dirty", + "lastModified": 1723737980, + "narHash": "sha256-wytg4odrfvFVYvTskWUficyi8VnaaEt54aIlKUn3SKw=", "type": "git", - "url": "file:../?dir=lib" + "url": "file:../" }, "original": { "dir": "lib", "type": "git", - "url": "file:../?dir=lib" + "url": "file:../" } }, "root": { diff --git a/tidepool/src/builders/basic.nix b/tidepool/src/builders/basic.nix index e7badef..f2e01d2 100644 --- a/tidepool/src/builders/basic.nix +++ b/tidepool/src/builders/basic.nix @@ -65,7 +65,15 @@ in PATH = let bins = lib.paths.bin ( - (lib.packages.dependencies.get dependencies.build.host) + (lib.packages.dependencies.get dependencies.build.only) + ++ (lib.packages.dependencies.get dependencies.build.build) + ++ (lib.packages.dependencies.get dependencies.build.host) + ++ (lib.packages.dependencies.get dependencies.build.target) + ++ (lib.packages.dependencies.get dependencies.host.only) + ++ (lib.packages.dependencies.get dependencies.host.host) + ++ (lib.packages.dependencies.get dependencies.host.target) + ++ (lib.packages.dependencies.get dependencies.target.only) + ++ (lib.packages.dependencies.get dependencies.target.target) ++ [ foundation.stage2-bash foundation.stage2-coreutils @@ -99,6 +107,7 @@ in } ); in + # (builtins.trace "build: ${package.name} -> build=${package.platform.build.triple} host=${package.platform.host.triple} target=${package.platform.target.triple}") built // { inherit (package) meta; diff --git a/tidepool/src/export.nix b/tidepool/src/export.nix index 8eb98c3..dd23814 100644 --- a/tidepool/src/export.nix +++ b/tidepool/src/export.nix @@ -26,16 +26,32 @@ in # })) # .config; foundation-gcc = config.packages.foundation.gcc; + foundation-glibc = config.packages.foundation.glibc; foundation-binutils = config.packages.foundation.binutils; foundation-linux-headers = config.packages.foundation.linux-headers; # foundation-linux-headers = config.packages.foundation.linux-headers.versions.latest.extend { # platform.host = lib.modules.overrides.force "x86_64-linux"; # }; - # example-x = config.packages.example.x; cross-aux-a-x86_64-linux = config.packages.cross.x86_64-linux.aux.a; cross-foundation-gcc-x86_64-linux = config.packages.cross.x86_64-linux.foundation.gcc; + + example-a = config.packages.foundation.gcc.versions.latest.extend { + platform = { + target = lib.modules.override 0 "x86_64-linux"; + }; + }; }; }; + # exported.packages.i686-linux.example-b = + # let + # pkg = + # config.packages.foundation.gcc.versions.latest.extend { + # platform = { + # target = "aarch64-linux"; + # }; + # }; + # in + # pkg.package; # exported.packages.i686-linux.cross-foundation-gcc-x86_64-linux = config.packages.cross.x86_64-linux.foundation.gcc.package; }; diff --git a/tidepool/src/lib/types.nix b/tidepool/src/lib/types.nix index d4723b1..16caad9 100644 --- a/tidepool/src/lib/types.nix +++ b/tidepool/src/lib/types.nix @@ -230,6 +230,34 @@ in default.value = [ ]; }; + # extend = lib.options.create { + # description = "Extend the package definition."; + # type = lib.types.function lib.types.raw; + # internal = true; + # writable = false; + # default.value = module: + # let + # normalized = + # if builtins.isList module then + # module + # else if builtins.isFunction module || module ? config then + # [ module ] + # else + # [{ + # config = module; + # }]; + # result = meta.extend { + # modules = + # normalized ++ [ + # { + # config.__modules__ = lib.modules.overrides.force (config.__modules__ ++ normalized); + # } + # ]; + # }; + # in + # result.config; + # }; + extend = lib.options.create { description = "Extend the package definition."; type = lib.types.function lib.types.raw; @@ -246,13 +274,14 @@ in [{ config = module; }]; - result = meta.extend { - modules = - normalized ++ [ - { - config.__modules__ = lib.modules.overrides.force (config.__modules__ ++ normalized); - } - ]; + + modules = config.__modules__ ++ normalized; + + result = lib.modules.run { + modules = [ + submodule + { config.__modules__ = modules; } + ] ++ modules; }; in result.config; @@ -261,8 +290,8 @@ in meta = { description = lib.options.create { description = "The description for the package."; - type = lib.types.nullish lib.types.string; - default.value = null; + type = lib.types.string; + default.value = ""; }; homepage = lib.options.create { diff --git a/tidepool/src/packages/aux/a.nix b/tidepool/src/packages/aux/a.nix index 3848de8..7efef9b 100644 --- a/tidepool/src/packages/aux/a.nix +++ b/tidepool/src/packages/aux/a.nix @@ -1,4 +1,4 @@ -{ lib', config }: +{ config }: let inherit (config) builders packages; in diff --git a/tidepool/src/packages/foundation/binutils/default.nix b/tidepool/src/packages/foundation/binutils/default.nix index 77c4bdd..7289cee 100644 --- a/tidepool/src/packages/foundation/binutils/default.nix +++ b/tidepool/src/packages/foundation/binutils/default.nix @@ -1,8 +1,8 @@ -{ - lib, - lib', - config, - options, +{ lib +, lib' +, config +, options +, }: let inherit (config) @@ -27,101 +27,112 @@ in }; }; - config = { - meta = { - platforms = [ "i686-linux" ]; - }; + config = + let + isBuildBootstrapped = config.platform.build.double == "i686-linux"; + isHostBootstrapped = config.platform.host.double == "i686-linux"; - pname = "binutils"; - version = "2.41"; + isBootstrapped = isBuildBootstrapped && isHostBootstrapped; + in + { + meta = { + platforms = [ "i686-linux" ]; + }; - builder = builders.basic; + pname = "binutils"; + version = "2.41"; - deps = { - build = { - host = { - inherit (packages.foundation) gcc; + builder = builders.basic; + + deps = { + build = { + only = { + gcc = lib.modules.when (!isBootstrapped) packages.foundation.gcc; + }; }; }; - }; - env = { - PATH = lib.paths.bin [ - # foundation.stage2-gcc - foundation.stage2-binutils - foundation.stage2-gnumake - foundation.stage2-gnupatch - foundation.stage2-gnused - foundation.stage2-gnugrep - foundation.stage2-gawk - foundation.stage2-diffutils - foundation.stage2-findutils - foundation.stage2-gnutar - foundation.stage1-xz - ]; - }; - - phases = - let - patches = [ - # Make binutils output deterministic by default. - ./patches/deterministic.patch - ]; - - configureFlags = [ - # "CC=musl-gcc" - "LDFLAGS=--static" - "--prefix=${builtins.placeholder "out"}" - "--build=${config.platform.build.triple}" - "--host=${config.platform.host.triple}" - "--target=${config.platform.target.triple}" - - "--with-sysroot=/" - "--enable-deterministic-archives" - # depends on bison - "--disable-gprofng" - - # Turn on --enable-new-dtags by default to make the linker set - # RUNPATH instead of RPATH on binaries. This is important because - # RUNPATH can be overridden using LD_LIBRARY_PATH at runtime. - "--enable-new-dtags" - - # By default binutils searches $libdir for libraries. This brings in - # 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-multilib" - ]; - in - { - unpack = '' - tar xf ${config.src} - cd binutils-${config.version} - ''; - - patch = '' - ${lib.strings.concatMapSep "\n" (file: "patch -Np1 -i ${file}") patches} - ''; - - configure = '' - bash ./configure ${builtins.concatStringsSep " " configureFlags} - ''; - - build = '' - make -j $NIX_BUILD_CORES - ''; - - install = '' - make -j $NIX_BUILD_CORES install-strip - ''; + env = { + PATH = lib.paths.bin ( + lib.lists.when isBootstrapped + [ foundation.stage2-gcc ] + ++ [ + foundation.stage2-gcc + foundation.stage2-binutils + foundation.stage2-gnumake + foundation.stage2-gnupatch + foundation.stage2-gnused + foundation.stage2-gnugrep + foundation.stage2-gawk + foundation.stage2-diffutils + foundation.stage2-findutils + foundation.stage2-gnutar + foundation.stage1-xz + ] + ); }; - src = builtins.fetchurl { - url = "${mirrors.gnu}/binutils/binutils-${config.version}.tar.xz"; - sha256 = "rppXieI0WeWWBuZxRyPy0//DHAMXQZHvDQFb3wYAdFA="; + phases = + let + patches = [ + # Make binutils output deterministic by default. + ./patches/deterministic.patch + ]; + + configureFlags = [ + # "CC=musl-gcc" + "LDFLAGS=--static" + "--prefix=${builtins.placeholder "out"}" + "--build=${config.platform.build.triple}" + "--host=${config.platform.host.triple}" + "--target=${config.platform.target.triple}" + + "--with-sysroot=/" + "--enable-deterministic-archives" + # depends on bison + "--disable-gprofng" + + # Turn on --enable-new-dtags by default to make the linker set + # RUNPATH instead of RPATH on binaries. This is important because + # RUNPATH can be overridden using LD_LIBRARY_PATH at runtime. + "--enable-new-dtags" + + # By default binutils searches $libdir for libraries. This brings in + # 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-multilib" + ]; + in + { + unpack = '' + tar xf ${config.src} + cd binutils-${config.version} + ''; + + patch = '' + ${lib.strings.concatMapSep "\n" (file: "patch -Np1 -i ${file}") patches} + ''; + + configure = '' + bash ./configure ${builtins.concatStringsSep " " configureFlags} + ''; + + build = '' + make -j $NIX_BUILD_CORES + ''; + + install = '' + make -j $NIX_BUILD_CORES install-strip + ''; + }; + + src = builtins.fetchurl { + url = "${mirrors.gnu}/binutils/binutils-${config.version}.tar.xz"; + sha256 = "rppXieI0WeWWBuZxRyPy0//DHAMXQZHvDQFb3wYAdFA="; + }; }; - }; }; }; }; diff --git a/tidepool/src/packages/foundation/gcc/default.nix b/tidepool/src/packages/foundation/gcc/default.nix index 44df14e..4aaf6f7 100644 --- a/tidepool/src/packages/foundation/gcc/default.nix +++ b/tidepool/src/packages/foundation/gcc/default.nix @@ -84,133 +84,207 @@ in }; }; - config = { - meta = { - platforms = [ "i686-linux" ]; - }; + config = + let + isBuildBootstrapped = config.platform.build.double == "i686-linux"; + isHostBootstrapped = config.platform.host.double == "i686-linux"; - pname = "gcc"; - version = "13.2.0"; - - builder = builders.basic; - - env = { - PATH = lib.paths.bin [ - foundation.stage2-gcc - foundation.stage2-binutils - foundation.stage2-gnumake - foundation.stage2-gnused - foundation.stage2-gnugrep - foundation.stage2-gawk - foundation.stage2-diffutils - foundation.stage2-findutils - foundation.stage2-gnutar - foundation.stage2-gzip - foundation.stage2-bzip2 - foundation.stage1-xz - ]; - }; - - phases = - let - host = lib.systems.withBuildInfo config.platform.host; - - mbits = if host.system.cpu.family == "x86" then if host.is64bit then "-m64" else "-m32" else ""; - in - { - unpack = '' - # Unpack - tar xf ${config.src} - tar xf ${config.gmp.src} - tar xf ${config.mpfr.src} - tar xf ${config.mpc.src} - tar xf ${config.isl.src} - cd gcc-${config.version} - - ln -s ../gmp-${config.gmp.version} gmp - ln -s ../mpfr-${config.mpfr.version} mpfr - ln -s ../mpc-${config.mpc.version} mpc - ln -s ../isl-${config.isl.version} isl - ''; - - patch = '' - # Patch - # force musl even if host triple is gnu - sed -i 's|"os/gnu-linux"|"os/generic"|' libstdc++-v3/configure.host - ''; - - configure = '' - # Configure - export CC="gcc -Wl,-dynamic-linker -Wl,${foundation.stage1-musl}/lib/libc.so" - export CXX="g++ -Wl,-dynamic-linker -Wl,${foundation.stage1-musl}/lib/libc.so" - export CFLAGS_FOR_TARGET="-Wl,-dynamic-linker -Wl,${foundation.stage1-musl}/lib/libc.so" - export LIBRARY_PATH="${foundation.stage1-musl}/lib" - - bash ./configure \ - --prefix=$out \ - --build=${config.platform.build.triple} \ - --host=${config.platform.host.triple} \ - --target=${config.platform.target.triple} \ - --with-native-system-header-dir=/include \ - --with-sysroot=${foundation.stage1-musl} \ - --enable-languages=c,c++ \ - --disable-bootstrap \ - --disable-libsanitizer \ - --disable-lto \ - --disable-multilib \ - --disable-plugin \ - CFLAGS=-static \ - CXXFLAGS=-static - ''; - - build = '' - # Build - make -j $NIX_BUILD_CORES - ''; - - install = '' - # Install - make -j $NIX_BUILD_CORES install-strip - ''; + isBootstrapped = isBuildBootstrapped && isHostBootstrapped; + in + { + meta = { + platforms = [ "i686-linux" ]; }; - src = builtins.fetchurl { - url = "${mirrors.gnu}/gcc/gcc-${config.version}/gcc-${config.version}.tar.xz"; - sha256 = "4nXnZEKmBnNBon8Exca4PYYTFEAEwEE1KIY9xrXHQ9o="; - }; + pname = "gcc-${config.platform.build.double}--${config.platform.host.double}--${config.platform.target.double}"; + version = "13.2.0"; + + builder = builders.basic; + + # hooks = ctx: let + # + # in { + # "aux:gcc:env" = lib.dag.entry.before [ "unpack" ] '' + # + # ''; + # }; + + deps = + let + platform = + if !isBuildBootstrapped then + { + build = "i686-linux"; + host = lib.modules.override 0 config.platform.build.triple; + target = lib.modules.override 0 config.platform.build.triple; + } + else + { + build = "i686-linux"; + host = "i686-linux"; + target = lib.modules.override 0 config.platform.host.triple; + }; + in + { + build = { + only = { + gcc = + lib.modules.when + (!isBootstrapped) + (packages.foundation.gcc.versions.latest.extend { + inherit platform; + }); + }; + build = { + binutils = packages.foundation.binutils; + linux-headers = packages.foundation.linux-headers; + glibc = packages.foundation.glibc; + }; + }; + }; + + hooks = ctx: { + "aux:compiler:setup" = lib.dag.entry.before [ "unpack" ] '' + : ''${AUX_COMPILER_LIBRARY_PATH:=} + ''; + }; + + env = { + PATH = lib.paths.bin ( + lib.lists.when + (isBootstrapped) + [ + foundation.stage2-gcc + # foundation.stage2-binutils + ] + ++ [ + foundation.stage2-gnumake + foundation.stage2-gnused + foundation.stage2-gnugrep + foundation.stage2-gawk + foundation.stage2-diffutils + foundation.stage2-findutils + foundation.stage2-gnutar + foundation.stage2-gzip + foundation.stage2-bzip2 + foundation.stage1-xz + ] + ); + }; + + phases = + let + host = lib.systems.withBuildInfo config.platform.host; + + compiler = if isBootstrapped then "gcc" else "${config.platform.build.triple}-gcc"; + + mbits = if host.system.cpu.family == "x86" then if host.is64bit then "-m64" else "-m32" else ""; + in + { + "aux:compiler:setup" = '' + : ''${AUX_COMPILER_LIBRARY_PATH:=} + ''; + + unpack = '' + # Unpack + tar xf ${config.src} + tar xf ${config.gmp.src} + tar xf ${config.mpfr.src} + tar xf ${config.mpc.src} + tar xf ${config.isl.src} + cd gcc-${config.version} + + ln -s ../gmp-${config.gmp.version} gmp + ln -s ../mpfr-${config.mpfr.version} mpfr + ln -s ../mpc-${config.mpc.version} mpc + ln -s ../isl-${config.isl.version} isl + ''; + + patch = '' + # Patch + # force musl even if host triple is gnu + # sed -i 's|"os/gnu-linux"|"os/generic"|' libstdc++-v3/configure.host + ''; + + configure = '' + # Configure + # export CC="gcc -Wl,-dynamic-linker -Wl,${foundation.stage1-musl}/lib/libc.so" + # export CXX="g++ -Wl,-dynamic-linker -Wl,${foundation.stage1-musl}/lib/libc.so" + # export CFLAGS_FOR_TARGET="-Wl,-dynamic-linker -Wl,${foundation.stage1-musl}/lib/libc.so" + export CC="gcc -Wl,-dynamic-linker" + export CXX="g++ -Wl,-dynamic-linker" + export CFLAGS_FOR_TARGET="-Wl,-dynamic-linker" + # export LIBRARY_PATH="${foundation.stage1-musl}/lib" + export LIBRARY_PATH="$AUX_COMPILER_LIBRARY_PATH" + + : ''${LD_LIBRARY_PATH:=} + export LD_LIBRARY_PATH="$NIX_BUILD_TOP/gmp/lib:$NIX_BUILD_TOP/mpfr/lib:$NIX_BUILD_TOP/mpc/lib:$NIX_BUILD_TOP/isl/lib:$LD_LIBRARY_PATH" + + # --with-sysroot=${foundation.stage1-musl} \ + # --with-native-system-header-dir=/include \ + bash ./configure \ + --prefix=$out \ + --build=${config.platform.build.triple} \ + --host=${config.platform.host.triple} \ + --target=${config.platform.target.triple} \ + --enable-languages=c,c++ \ + --disable-bootstrap \ + --disable-libsanitizer \ + --disable-lto \ + --disable-multilib \ + --disable-plugin \ + CFLAGS=-static \ + CXXFLAGS=-static + ''; + + build = '' + # Build + make -j $NIX_BUILD_CORES + ''; + + install = '' + # Install + make -j $NIX_BUILD_CORES install + ''; + }; - gmp = { - version = "6.3.0"; src = builtins.fetchurl { - url = "${mirrors.gnu}/gmp/gmp-${config.gmp.version}.tar.xz"; - sha256 = "o8K4AgG4nmhhb0rTC8Zq7kknw85Q4zkpyoGdXENTiJg="; + url = "${mirrors.gnu}/gcc/gcc-${config.version}/gcc-${config.version}.tar.xz"; + sha256 = "4nXnZEKmBnNBon8Exca4PYYTFEAEwEE1KIY9xrXHQ9o="; }; - }; - mpfr = { - version = "4.2.1"; - src = builtins.fetchurl { - url = "${mirrors.gnu}/mpfr/mpfr-${config.mpfr.version}.tar.xz"; - sha256 = "J3gHNTpnJpeJlpRa8T5Sgp46vXqaW3+yeTiU4Y8fy7I="; + gmp = { + version = "6.3.0"; + src = builtins.fetchurl { + url = "${mirrors.gnu}/gmp/gmp-${config.gmp.version}.tar.xz"; + sha256 = "o8K4AgG4nmhhb0rTC8Zq7kknw85Q4zkpyoGdXENTiJg="; + }; }; - }; - mpc = { - version = "1.3.1"; - src = builtins.fetchurl { - url = "${mirrors.gnu}/mpc/mpc-${config.mpc.version}.tar.gz"; - sha256 = "q2QkkvXPiCt0qgy3MM1BCoHtzb7IlRg86TDnBsHHWbg="; + mpfr = { + version = "4.2.1"; + src = builtins.fetchurl { + url = "${mirrors.gnu}/mpfr/mpfr-${config.mpfr.version}.tar.xz"; + sha256 = "J3gHNTpnJpeJlpRa8T5Sgp46vXqaW3+yeTiU4Y8fy7I="; + }; }; - }; - isl = { - version = "0.24"; - src = builtins.fetchurl { - url = "https://gcc.gnu.org/pub/gcc/infrastructure/isl-${config.isl.version}.tar.bz2"; - sha256 = "/PeN2WVsEOuM+fvV9ZoLawE4YgX+GTSzsoegoYmBRcA="; + mpc = { + version = "1.3.1"; + src = builtins.fetchurl { + url = "${mirrors.gnu}/mpc/mpc-${config.mpc.version}.tar.gz"; + sha256 = "q2QkkvXPiCt0qgy3MM1BCoHtzb7IlRg86TDnBsHHWbg="; + }; + }; + + isl = { + version = "0.24"; + src = builtins.fetchurl { + url = "https://gcc.gnu.org/pub/gcc/infrastructure/isl-${config.isl.version}.tar.bz2"; + sha256 = "/PeN2WVsEOuM+fvV9ZoLawE4YgX+GTSzsoegoYmBRcA="; + }; }; }; - }; }; }; }; diff --git a/tidepool/src/packages/foundation/glibc/default.nix b/tidepool/src/packages/foundation/glibc/default.nix index 8e8de03..3eb9449 100644 --- a/tidepool/src/packages/foundation/glibc/default.nix +++ b/tidepool/src/packages/foundation/glibc/default.nix @@ -41,6 +41,12 @@ in builder = builders.basic; + hooks = ctx: { + "aux:glibc:env" = lib.dag.entry.between ["aux:compiler:setup"] ["configure"] '' + AUX_COMPILER_LIBRARY_PATH="${config.package}/lib:$AUX_COMPILER_LIBRARY_PATH" + ''; + }; + env = { PATH = let @@ -74,6 +80,8 @@ in foundation.stage2-gnutar foundation.stage2-gzip foundation.stage2-bzip2 + foundation.stage1-python + foundation.stage1-bison foundation.stage1-xz ]; }; @@ -103,7 +111,7 @@ in install = '' # Install - make -j $NIX_BUILD_CORES install-strip + make -j $NIX_BUILD_CORES INSTALL_UNCOMPRESSED=yes install ''; }; };