diff options
author | Matthew Bauer <mjbauer95@gmail.com> | 2019-05-07 14:25:33 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-07 14:25:33 -0400 |
commit | 424f467e06daa3363581ebef8ea354dbbfeb3cf5 (patch) | |
tree | 75bb2748bbb37e88cf2c80732caf8b5202aab8ee /pkgs/stdenv | |
parent | 5a69a4ecc1650e7989a39146a598bb6d97837a3f (diff) | |
parent | 929fe5ca2129d257b20d2cb22e195f8ed8cda9e8 (diff) | |
download | nixpkgs-424f467e06daa3363581ebef8ea354dbbfeb3cf5.tar nixpkgs-424f467e06daa3363581ebef8ea354dbbfeb3cf5.tar.gz nixpkgs-424f467e06daa3363581ebef8ea354dbbfeb3cf5.tar.bz2 nixpkgs-424f467e06daa3363581ebef8ea354dbbfeb3cf5.tar.lz nixpkgs-424f467e06daa3363581ebef8ea354dbbfeb3cf5.tar.xz nixpkgs-424f467e06daa3363581ebef8ea354dbbfeb3cf5.tar.zst nixpkgs-424f467e06daa3363581ebef8ea354dbbfeb3cf5.zip |
Merge branch 'master' into update-ios-gnu-config
Diffstat (limited to 'pkgs/stdenv')
-rw-r--r-- | pkgs/stdenv/cross/default.nix | 5 | ||||
-rw-r--r-- | pkgs/stdenv/darwin/darwin-secure-format.patch | 15 | ||||
-rw-r--r-- | pkgs/stdenv/darwin/default.nix | 51 | ||||
-rw-r--r-- | pkgs/stdenv/darwin/make-bootstrap-tools.nix | 8 | ||||
-rw-r--r-- | pkgs/stdenv/generic/default.nix | 2 | ||||
-rw-r--r-- | pkgs/stdenv/generic/make-derivation.nix | 6 | ||||
-rw-r--r-- | pkgs/stdenv/generic/setup.sh | 11 |
7 files changed, 47 insertions, 51 deletions
diff --git a/pkgs/stdenv/cross/default.nix b/pkgs/stdenv/cross/default.nix index 2b64604c066..3bc4cd9a8fa 100644 --- a/pkgs/stdenv/cross/default.nix +++ b/pkgs/stdenv/cross/default.nix @@ -37,7 +37,8 @@ in lib.init bootStages ++ [ # Run Packages (buildPackages: { inherit config; - overlays = overlays ++ crossOverlays; + overlays = overlays ++ crossOverlays + ++ (if crossSystem.isWasm then [(import ../../top-level/static.nix)] else []); selfBuild = false; stdenv = buildPackages.stdenv.override (old: rec { buildPlatform = localSystem; @@ -63,7 +64,7 @@ in lib.init bootStages ++ [ (hostPlatform.isLinux && !buildPlatform.isLinux) [ buildPackages.patchelf ] ++ lib.optional - (let f = p: !p.isx86 || p.libc == "musl" || p.isiOS; in f hostPlatform && !(f buildPlatform)) + (let f = p: !p.isx86 || p.libc == "musl" || p.libc == "wasilibc" || p.isiOS; in f hostPlatform && !(f buildPlatform)) buildPackages.updateAutotoolsGnuConfigScriptsHook # without proper `file` command, libtool sometimes fails # to recognize 64-bit DLLs diff --git a/pkgs/stdenv/darwin/darwin-secure-format.patch b/pkgs/stdenv/darwin/darwin-secure-format.patch deleted file mode 100644 index b14d8be6ef1..00000000000 --- a/pkgs/stdenv/darwin/darwin-secure-format.patch +++ /dev/null @@ -1,15 +0,0 @@ -With format string strictness, High Sierra also enforces that %n isn't used -in dynamic format strings, but we should just disable its use on darwin in -general. - ---- a/lib/vasnprintf.c 2017-06-22 15:19:15.000000000 -0700 -+++ b/lib/vasnprintf.c 2017-06-22 15:20:20.000000000 -0700 -@@ -4869,7 +4869,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t * - #endif - *fbp = dp->conversion; - #if USE_SNPRINTF --# if !(((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) && !defined __UCLIBC__) || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)) -+# if !defined(__APPLE__) && !(((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) && !defined __UCLIBC__) || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)) - fbp[1] = '%'; - fbp[2] = 'n'; - fbp[3] = '\0'; diff --git a/pkgs/stdenv/darwin/default.nix b/pkgs/stdenv/darwin/default.nix index b7d8e3ba523..3c3917c827e 100644 --- a/pkgs/stdenv/darwin/default.nix +++ b/pkgs/stdenv/darwin/default.nix @@ -132,9 +132,6 @@ in rec { extraAttrs = { inherit platform; parent = last; - - # This is used all over the place so I figured I'd just leave it here for now - secure-format-patch = ./darwin-secure-format.patch; }; overrides = self: super: (overrides self super) // { fetchurl = thisStdenv.fetchurlBoot; }; }; @@ -158,7 +155,7 @@ in rec { dyld = bootstrapTools; }; - llvmPackages_5 = { + llvmPackages_7 = { libcxx = stdenv.mkDerivation { name = "bootstrap-stage0-libcxx"; phases = [ "installPhase" "fixupPhase" ]; @@ -200,7 +197,12 @@ in rec { python2 = self.python; ninja = super.ninja.override { buildDocs = false; }; - darwin = super.darwin // { cctools = super.darwin.cctools.override { llvm = null; }; }; + darwin = super.darwin // { + cctools = super.darwin.cctools.override { + llvm = null; + enableTapiSupport = false; + }; + }; }; in with prevStage; stageFun 1 prevStage { extraPreHook = "export NIX_CFLAGS_COMPILE+=\" -F${bootstrapTools}/Library/Frameworks\""; @@ -260,9 +262,9 @@ in rec { # Avoid pulling in a full python and its extra dependencies for the llvm/clang builds. libxml2 = super.libxml2.override { pythonSupport = false; }; - llvmPackages_5 = super.llvmPackages_5 // (let - libraries = super.llvmPackages_5.libraries.extend (_: _: { - inherit (llvmPackages_5) libcxx libcxxabi; + llvmPackages_7 = super.llvmPackages_7 // (let + libraries = super.llvmPackages_7.libraries.extend (_: _: { + inherit (llvmPackages_7) libcxx libcxxabi; }); in { inherit libraries; } // libraries); @@ -278,8 +280,8 @@ in rec { # enables patchShebangs above. Unfortunately, patchShebangs ignores our $SHELL setting # and instead goes by $PATH, which happens to contain bootstrapTools. So it goes and # patches our shebangs back to point at bootstrapTools. This makes sure bash comes first. - extraNativeBuildInputs = with pkgs; [ xz pkgs.bash ]; - extraBuildInputs = [ pkgs.darwin.CF ]; + extraNativeBuildInputs = with pkgs; [ xz ]; + extraBuildInputs = [ pkgs.darwin.CF pkgs.bash ]; libcxx = pkgs.libcxx; extraPreHook = '' @@ -314,18 +316,20 @@ in rec { ]; }); - llvmPackages_5 = super.llvmPackages_5 // (let - tools = super.llvmPackages_5.tools.extend (llvmSelf: _: { - inherit (llvmPackages_5) llvm clang-unwrapped; + llvmPackages_7 = super.llvmPackages_7 // (let + tools = super.llvmPackages_7.tools.extend (llvmSelf: _: { + clang-unwrapped = llvmPackages_7.clang-unwrapped.override { llvm = llvmSelf.llvm; }; + llvm = llvmPackages_7.llvm.override { libxml2 = self.darwin.libxml2-nopython; }; }); - libraries = super.llvmPackages_5.libraries.extend (llvmSelf: _: { - inherit (llvmPackages_5) libcxx libcxxabi compiler-rt; + libraries = super.llvmPackages_7.libraries.extend (llvmSelf: _: { + inherit (llvmPackages_7) libcxx libcxxabi compiler-rt; }); in { inherit tools libraries; } // tools // libraries); darwin = super.darwin // rec { inherit (darwin) dyld Libsystem libiconv locale; + cctools = super.darwin.cctools.override { enableTapiSupport = false; }; libxml2-nopython = super.libxml2.override { pythonSupport = false; }; CF = super.darwin.CF.override { libxml2 = libxml2-nopython; @@ -335,8 +339,8 @@ in rec { }; in with prevStage; stageFun 4 prevStage { shell = "${pkgs.bash}/bin/bash"; - extraNativeBuildInputs = with pkgs; [ xz pkgs.bash ]; - extraBuildInputs = [ pkgs.darwin.CF ]; + extraNativeBuildInputs = with pkgs; [ xz ]; + extraBuildInputs = [ pkgs.darwin.CF pkgs.bash ]; libcxx = pkgs.libcxx; extraPreHook = '' @@ -353,12 +357,12 @@ in rec { ncurses libffi zlib llvm gmp pcre gnugrep coreutils findutils diffutils patchutils; - llvmPackages_5 = super.llvmPackages_5 // (let - tools = super.llvmPackages_5.tools.extend (_: super: { - inherit (llvmPackages_5) llvm clang-unwrapped; + llvmPackages_7 = super.llvmPackages_7 // (let + tools = super.llvmPackages_7.tools.extend (_: super: { + inherit (llvmPackages_7) llvm clang-unwrapped; }); - libraries = super.llvmPackages_5.libraries.extend (_: _: { - inherit (llvmPackages_5) compiler-rt libcxx libcxxabi; + libraries = super.llvmPackages_7.libraries.extend (_: _: { + inherit (llvmPackages_7) compiler-rt libcxx libcxxabi; }); in { inherit tools libraries; } // tools // libraries); @@ -414,9 +418,6 @@ in rec { inherit platform bootstrapTools; libc = pkgs.darwin.Libsystem; shellPackage = pkgs.bash; - - # This is used all over the place so I figured I'd just leave it here for now - secure-format-patch = ./darwin-secure-format.patch; }; allowedRequisites = (with pkgs; [ diff --git a/pkgs/stdenv/darwin/make-bootstrap-tools.nix b/pkgs/stdenv/darwin/make-bootstrap-tools.nix index 670215a735d..cfa8aac0578 100644 --- a/pkgs/stdenv/darwin/make-bootstrap-tools.nix +++ b/pkgs/stdenv/darwin/make-bootstrap-tools.nix @@ -3,7 +3,7 @@ with import pkgspath { inherit system; }; let - llvmPackages = llvmPackages_5; + llvmPackages = llvmPackages_7; in rec { coreutils_ = coreutils.override (args: { # We want coreutils without ACL support. @@ -80,14 +80,14 @@ in rec { cp -d ${libxml2.out}/lib/libxml2*.dylib $out/lib # Copy what we need of clang - cp -d ${llvmPackages.clang-unwrapped}/bin/clang $out/bin - cp -d ${llvmPackages.clang-unwrapped}/bin/clang++ $out/bin - cp -d ${llvmPackages.clang-unwrapped}/bin/clang-[0-9].[0-9] $out/bin + cp -d ${llvmPackages.clang-unwrapped}/bin/clang* $out/bin cp -rL ${llvmPackages.clang-unwrapped}/lib/clang $out/lib cp -d ${llvmPackages.libcxx}/lib/libc++*.dylib $out/lib cp -d ${llvmPackages.libcxxabi}/lib/libc++abi*.dylib $out/lib + cp -d ${llvmPackages.llvm.lib}/lib/libLLVM.dylib $out/lib + cp -d ${libffi}/lib/libffi*.dylib $out/lib mkdir $out/include cp -rd ${llvmPackages.libcxx}/include/c++ $out/include diff --git a/pkgs/stdenv/generic/default.nix b/pkgs/stdenv/generic/default.nix index 04117de3269..1ef2ab52029 100644 --- a/pkgs/stdenv/generic/default.nix +++ b/pkgs/stdenv/generic/default.nix @@ -88,7 +88,7 @@ let # there (yet?) so it goes here until then. preHook = preHook+ lib.optionalString buildPlatform.isDarwin '' export NIX_BUILD_DONT_SET_RPATH=1 - '' + lib.optionalString hostPlatform.isDarwin '' + '' + lib.optionalString (hostPlatform.isDarwin || (hostPlatform.parsed.kernel.execFormat != lib.systems.parse.execFormats.elf && hostPlatform.parsed.kernel.execFormat != lib.systems.parse.execFormats.macho)) '' export NIX_DONT_SET_RPATH=1 export NIX_NO_SELF_RPATH=1 '' diff --git a/pkgs/stdenv/generic/make-derivation.nix b/pkgs/stdenv/generic/make-derivation.nix index 417c10363b5..1c6f6490bf7 100644 --- a/pkgs/stdenv/generic/make-derivation.nix +++ b/pkgs/stdenv/generic/make-derivation.nix @@ -86,6 +86,8 @@ in rec { , hardeningEnable ? [] , hardeningDisable ? [] + , patches ? [] + , ... } @ attrs: let @@ -235,6 +237,8 @@ in rec { ++ optional (elem "host" configurePlatforms) "--host=${stdenv.hostPlatform.config}" ++ optional (elem "target" configurePlatforms) "--target=${stdenv.targetPlatform.config}"; + inherit patches; + inherit doCheck doInstallCheck; inherit outputs; @@ -253,6 +257,8 @@ in rec { enableParallelChecking = attrs.enableParallelChecking or true; } // lib.optionalAttrs (hardeningDisable != [] || hardeningEnable != []) { NIX_HARDENING_ENABLE = enabledHardeningOptions; + } // lib.optionalAttrs (stdenv.hostPlatform.isx86_64 && stdenv.hostPlatform ? platform.gcc.arch) { + requiredSystemFeatures = attrs.requiredSystemFeatures or [] ++ [ "gccarch-${stdenv.hostPlatform.platform.gcc.arch}" ]; } // lib.optionalAttrs (stdenv.buildPlatform.isDarwin) { inherit __darwinAllowLocalNetworking; # TODO: remove lib.unique once nix has a list canonicalization primitive diff --git a/pkgs/stdenv/generic/setup.sh b/pkgs/stdenv/generic/setup.sh index 8dff3557807..6f1a654a38a 100644 --- a/pkgs/stdenv/generic/setup.sh +++ b/pkgs/stdenv/generic/setup.sh @@ -182,10 +182,8 @@ addToSearchPathWithCustomDelimiter() { fi } -PATH_DELIMITER=':' - addToSearchPath() { - addToSearchPathWithCustomDelimiter "${PATH_DELIMITER}" "$@" + addToSearchPathWithCustomDelimiter ":" "$@" } # Add $1/lib* into rpaths. @@ -508,7 +506,7 @@ activatePackage() { fi if [[ "$hostOffset" -eq 0 && -d "$pkg/bin" ]]; then - addToSearchPath HOST_PATH "$pkg/bin" + addToSearchPath _HOST_PATH "$pkg/bin" fi if [[ -f "$pkg/nix-support/setup-hook" ]]; then @@ -617,10 +615,15 @@ fi PATH="${_PATH-}${_PATH:+${PATH:+:}}$PATH" +HOST_PATH="${_HOST_PATH-}${_HOST_PATH:+${HOST_PATH:+:}}$HOST_PATH" if (( "${NIX_DEBUG:-0}" >= 1 )); then echo "final path: $PATH" + echo "final host path: $HOST_PATH" fi +unset _PATH +unset _HOST_PATH + # Make GNU Make produce nested output. export NIX_INDENT_MAKE=1 |