diff options
Diffstat (limited to 'pkgs/stdenv')
-rw-r--r-- | pkgs/stdenv/generic/default.nix | 2 | ||||
-rw-r--r-- | pkgs/stdenv/generic/setup.sh | 20 | ||||
-rw-r--r-- | pkgs/stdenv/native/default.nix | 5 | ||||
-rw-r--r-- | pkgs/stdenv/native/posthook.sh | 0 | ||||
-rw-r--r-- | pkgs/stdenv/nix-linux/boot.nix | 25 | ||||
-rw-r--r-- | pkgs/stdenv/nix-linux/default.nix | 24 | ||||
-rw-r--r-- | pkgs/stdenv/nix-linux/posthook.sh | 0 | ||||
-rw-r--r-- | pkgs/stdenv/nix-linux/prehook-boot.sh | 17 | ||||
-rw-r--r-- | pkgs/stdenv/nix-linux/prehook.sh | 17 | ||||
-rw-r--r-- | pkgs/stdenv/nix/posthook.sh | 0 |
10 files changed, 48 insertions, 62 deletions
diff --git a/pkgs/stdenv/generic/default.nix b/pkgs/stdenv/generic/default.nix index c816e58880802..9c877252e2be6 100644 --- a/pkgs/stdenv/generic/default.nix +++ b/pkgs/stdenv/generic/default.nix @@ -1,4 +1,4 @@ -{ stdenv, name, preHook, postHook, initialPath, gcc +{ stdenv, name, preHook ? null, postHook ? null, initialPath, gcc , param1 ? "", param2 ? "", param3 ? "", param4 ? "", param5 ? "" }: diff --git a/pkgs/stdenv/generic/setup.sh b/pkgs/stdenv/generic/setup.sh index c1b2ef99236bf..259417afaa3be 100644 --- a/pkgs/stdenv/generic/setup.sh +++ b/pkgs/stdenv/generic/setup.sh @@ -1,9 +1,11 @@ set -e +test -z $NIX_GCC && NIX_GCC=@gcc@ + # Set up the initial path. PATH= -for i in @gcc@ @initialPath@; do +for i in $NIX_GCC @initialPath@; do PATH=$PATH${PATH:+:}$i/bin done @@ -18,12 +20,18 @@ param2=@param2@ param3=@param3@ param4=@param4@ param5=@param5@ -. @preHook@ +if test -n "@preHook@"; then + . @preHook@ +fi + + +# Check that the pre-hook initialised SHELL. +if test -z "$SHELL"; then echo "SHELL not set"; exit 1; fi # Hack: run gcc's setup hook. -if test -f @gcc@/nix-support/setup-hook; then - . @gcc@/nix-support/setup-hook +if test -f $NIX_GCC/nix-support/setup-hook; then + . $NIX_GCC/nix-support/setup-hook fi @@ -93,7 +101,9 @@ export TZ=UTC # Execute the post-hook. -. @postHook@ +if test -n "@postHook@"; then + . @postHook@ +fi PATH=$_PATH${_PATH:+:}$PATH if test "$NIX_DEBUG" = "1"; then diff --git a/pkgs/stdenv/native/default.nix b/pkgs/stdenv/native/default.nix index cf5a1da198788..2fd6b670c3996 100644 --- a/pkgs/stdenv/native/default.nix +++ b/pkgs/stdenv/native/default.nix @@ -3,15 +3,14 @@ (import ../generic) { name = "stdenv-native"; preHook = ./prehook.sh; - postHook = ./posthook.sh; initialPath = "/usr/local /usr /"; inherit stdenv; gcc = (import ../../build-support/gcc-wrapper) { - inherit stdenv; name = "gcc-native"; isNative = true; - gcc = "/usr"; + nativePrefix = "/usr"; + inherit stdenv; }; } diff --git a/pkgs/stdenv/native/posthook.sh b/pkgs/stdenv/native/posthook.sh deleted file mode 100644 index e69de29bb2d1d..0000000000000 --- a/pkgs/stdenv/native/posthook.sh +++ /dev/null diff --git a/pkgs/stdenv/nix-linux/boot.nix b/pkgs/stdenv/nix-linux/boot.nix index c42b3f33302af..cc5ab2122e871 100644 --- a/pkgs/stdenv/nix-linux/boot.nix +++ b/pkgs/stdenv/nix-linux/boot.nix @@ -1,13 +1,16 @@ -{system, glibc}: (import ../generic) { - name = "stdenv-linux-boot"; - system = system; - prehook = ./prehook-boot.sh; - posthook = ./posthook.sh; +{stdenv, glibc}: + +(import ../generic) { + name = "stdenv-nix-linux-boot"; + preHook = ./prehook-boot.sh; initialPath = "/usr/local /usr /"; - param1 = ""; - param2 = ""; - param3 = ""; - param4 = glibc; - param5 = ""; - noSysDirs = true; + + inherit stdenv; + + gcc = (import ../../build-support/gcc-wrapper) { + name = "gcc-native"; + isNative = true; + nativePrefix = "/usr"; + inherit stdenv glibc; + }; } diff --git a/pkgs/stdenv/nix-linux/default.nix b/pkgs/stdenv/nix-linux/default.nix index b0898826b5d72..518939757488c 100644 --- a/pkgs/stdenv/nix-linux/default.nix +++ b/pkgs/stdenv/nix-linux/default.nix @@ -1,13 +1,19 @@ -{bootStdenv, pkgs, glibc}: (import ../generic) { +{stdenv, glibc, pkgs}: + +(import ../generic) { name = "stdenv-nix-linux"; - system = bootStdenv.system; - prehook = ./prehook.sh; - posthook = ./posthook.sh; + preHook = ./prehook.sh; initialPath = (import ../nix/path.nix) {pkgs = pkgs;}; + + inherit stdenv; + + gcc = (import ../../build-support/gcc-wrapper) { + name = "gcc-native"; + isNative = false; + gcc = pkgs.gcc; + binutils = pkgs.binutils; + inherit stdenv glibc; + }; + param1 = pkgs.bash; - param2 = pkgs.gcc; - param3 = pkgs.binutils; - param4 = glibc; - param5 = ""; - noSysDirs = true; } diff --git a/pkgs/stdenv/nix-linux/posthook.sh b/pkgs/stdenv/nix-linux/posthook.sh deleted file mode 100644 index e69de29bb2d1d..0000000000000 --- a/pkgs/stdenv/nix-linux/posthook.sh +++ /dev/null diff --git a/pkgs/stdenv/nix-linux/prehook-boot.sh b/pkgs/stdenv/nix-linux/prehook-boot.sh index 193f232c33746..af1ba16ccbeb6 100644 --- a/pkgs/stdenv/nix-linux/prehook-boot.sh +++ b/pkgs/stdenv/nix-linux/prehook-boot.sh @@ -1,18 +1 @@ export SHELL=/bin/sh - -export NIX_CC=/usr/bin/gcc -export NIX_CXX=/usr/bin/g++ -export NIX_LD=/usr/bin/ld - -# The "-B$param4/lib" is a quick hack to force gcc to link against the -# crt1.o from our own glibc, rather than the one in /usr/lib. The -# real solution is of course to prevent those paths from being used by -# gcc in the first place. -# !!! -B should really be in NIX_CFLAGS_LINK, but ld-wrapper also uses -# that one (incorrectly?). -export NIX_CFLAGS_COMPILE="-B$param4/lib -isystem $param4/include $NIX_CFLAGS_COMPILE" -export NIX_CFLAGS_LINK="-L$param4/lib $NIX_CFLAGS_LINK" -export NIX_LDFLAGS="-dynamic-linker $param4/lib/ld-linux.so.2 -rpath $param4/lib $NIX_LDFLAGS" - -export NIX_LIBC_INCLUDES="$param4/include" -export NIX_LIBC_LIBS="$param4/lib" diff --git a/pkgs/stdenv/nix-linux/prehook.sh b/pkgs/stdenv/nix-linux/prehook.sh index 087b245401cb2..0e0bada4fcb26 100644 --- a/pkgs/stdenv/nix-linux/prehook.sh +++ b/pkgs/stdenv/nix-linux/prehook.sh @@ -1,18 +1,3 @@ export SHELL=$param1 -export NIX_CC=$param2/bin/gcc -export NIX_CXX=$param2/bin/g++ -export NIX_LD=$param3/bin/ld - -# The "-B$param4/lib" is a quick hack to force gcc to link against the -# crt1.o from our own glibc, rather than the one in /usr/lib. The -# real solution is of course to prevent those paths from being used by -# gcc in the first place. -# !!! -B should really be in NIX_CFLAGS_LINK, but ld-wrapper also uses -# that one (incorrectly?). -export NIX_CFLAGS_COMPILE="-B$param4/lib -isystem $param4/include $NIX_CFLAGS_COMPILE" -export NIX_CFLAGS_LINK="-L$param4/lib -L$param2/lib $NIX_CFLAGS_LINK" -export NIX_LDFLAGS="-dynamic-linker $param4/lib/ld-linux.so.2 -rpath $param4/lib -rpath $param2/lib $NIX_LDFLAGS" - -export NIX_LIBC_INCLUDES="$param4/include" -export NIX_LIBC_LIBS="$param4/lib" +export NIX_ENFORCE_PURITY=1 diff --git a/pkgs/stdenv/nix/posthook.sh b/pkgs/stdenv/nix/posthook.sh deleted file mode 100644 index e69de29bb2d1d..0000000000000 --- a/pkgs/stdenv/nix/posthook.sh +++ /dev/null |