3
0
Fork 0
forked from mirrors/nixpkgs

cc-wrapper: Remove stdenv.is* for targetPlatform.is*

Modify bootstrapping stdenvs to make sure `targetPlatform` also passed.
This commit is contained in:
John Ericson 2017-05-21 14:51:02 -04:00 committed by John Ericson
parent 8f970d09fe
commit c4ba2e3ef6
6 changed files with 13 additions and 5 deletions

View file

@ -10,6 +10,7 @@
, zlib ? null, extraPackages ? [], extraBuildCommands ? ""
, dyld ? null # TODO: should this be a setup-hook on dyld?
, isGNU ? false, isClang ? cc.isClang or false, gnugrep ? null
, targetPlatform
}:
with stdenv.lib;
@ -35,7 +36,7 @@ let
# The wrapper scripts use 'cat' and 'grep', so we may need coreutils.
coreutils_bin = if nativeTools then "" else getBin coreutils;
default_cxx_stdlib_compile=optionalString (stdenv.isLinux && !(cc.isGNU or false))
default_cxx_stdlib_compile=optionalString (targetPlatform.isLinux && !(cc.isGNU or false))
"-isystem $(echo -n ${cc.gcc}/include/c++/*) -isystem $(echo -n ${cc.gcc}/include/c++/*)/$(${cc.gcc}/bin/gcc -dumpmachine)";
in
@ -78,7 +79,7 @@ stdenv.mkDerivation {
}
''
+ optionalString (!nativeLibc) (if (!stdenv.isDarwin) then ''
+ optionalString (!nativeLibc) (if (!targetPlatform.isDarwin) then ''
dynamicLinker="${libc_lib}/lib/$dynamicLinker"
echo $dynamicLinker > $out/nix-support/dynamic-linker
@ -117,7 +118,7 @@ stdenv.mkDerivation {
''
+ (if nativeTools then ''
ccPath="${if stdenv.isDarwin then cc else nativePrefix}/bin"
ccPath="${if targetPlatform.isDarwin then cc else nativePrefix}/bin"
ldPath="${nativePrefix}/bin"
'' else ''
echo $cc > $out/nix-support/orig-cc
@ -166,7 +167,7 @@ stdenv.mkDerivation {
echo ${toString extraPackages} > $out/nix-support/propagated-native-build-inputs
''
+ optionalString (stdenv.isSunOS && nativePrefix != "") ''
+ optionalString (targetPlatform.isSunOS && nativePrefix != "") ''
# Solaris needs an additional ld wrapper.
ldPath="${nativePrefix}/bin"
exec="$ldPath/ld"
@ -271,7 +272,7 @@ stdenv.mkDerivation {
(if stdenv.system == "i686-linux" then "ld-linux.so.2" else
if stdenv.system == "x86_64-linux" then "ld-linux-x86-64.so.2" else
# ARM with a wildcard, which can be "" or "-armhf".
if stdenv.isArm then "ld-linux*.so.3" else
if targetPlatform.isArm32 then "ld-linux*.so.3" else
if stdenv.system == "aarch64-linux" then "ld-linux-aarch64.so.1" else
if stdenv.system == "powerpc-linux" then "ld.so.1" else
if stdenv.system == "mips64el-linux" then "ld.so.1" else

View file

@ -73,6 +73,7 @@ in rec {
nativeTools = true;
nativePrefix = bootstrapTools;
nativeLibc = false;
targetPlatform = localSystem;
libc = last.pkgs.darwin.Libsystem;
isClang = true;
cc = { name = "clang-9.9.9"; outPath = bootstrapTools; };
@ -295,6 +296,7 @@ in rec {
inherit shell;
nativeTools = false;
nativeLibc = false;
targetPlatform = localSystem;
inherit (pkgs) coreutils binutils gnugrep;
inherit (pkgs.darwin) dyld;
cc = pkgs.llvmPackages.clang-unwrapped;

View file

@ -77,6 +77,7 @@ let inherit (localSystem) system; in
nativeTools = true;
nativePrefix = "/usr";
nativeLibc = true;
targetPlatform = localSystem;
inherit (prevStage) stdenv;
cc = {
name = "clang-9.9.9";

View file

@ -76,6 +76,7 @@ let
else lib.makeOverridable (import ../../build-support/cc-wrapper) {
nativeTools = false;
nativeLibc = false;
targetPlatform = localSystem;
cc = prevStage.gcc-unwrapped;
isGNU = true;
libc = prevStage.glibc;
@ -239,6 +240,7 @@ in
nativeTools = false;
nativeLibc = false;
isGNU = true;
targetPlatform = localSystem;
cc = prevStage.gcc-unwrapped;
libc = self.glibc;
inherit (self) stdenv binutils coreutils gnugrep;

View file

@ -125,6 +125,7 @@ in
"i686-solaris" = "/usr/gnu";
"x86_64-solaris" = "/opt/local/gcc47";
}.${system} or "/usr";
targetPlatform = localSystem;
inherit stdenv;
};

View file

@ -30,6 +30,7 @@ bootStages ++ [
nativeTools = false;
nativePrefix = stdenv.lib.optionalString hostPlatform.isSunOS "/usr";
nativeLibc = true;
targetPlatform = localSystem;
inherit stdenv;
inherit (prevStage) binutils coreutils gnugrep;
cc = prevStage.gcc.cc;