binutilsCross: Remove and use binutils instead always

See previous commit for what was done to `binutils` to make this
possible.

There were some uses of `forcedNativePackages` added. The
combination of overrides with that attribute is highly spooky: it's
often important that if an overridden package comes from it, the
replaced arguments for that package come from it. Long term this
package set and all the spookiness should be gone and irrelevant:

  "Move along, nothing to see here!"

No hashes should be changed with this commit
This commit is contained in:
John Ericson 2017-04-25 21:18:29 -04:00
parent 85b4d30c0b
commit 295315cc87
13 changed files with 40 additions and 53 deletions

View File

@ -20,7 +20,6 @@
, enableMultilib ? false
, name ? "gcc"
, cross ? null
, binutilsCross ? null
, libcCross ? null
, crossStageStatic ? true
, gnat ? null
@ -225,7 +224,7 @@ stdenv.mkDerivation ({
++ (optional langJava boehmgc)
++ (optionals langJava [zip unzip])
++ (optionals javaAwtGtk ([gtk2 pkgconfig libart_lgpl] ++ xlibs))
++ (optionals (cross != null) [binutilsCross])
++ (optionals (cross != null) [binutils])
++ (optionals langAda [gnatboot])
++ (optionals langVhdl [gnat])
;

View File

@ -26,7 +26,6 @@
, enablePlugin ? true # whether to support user-supplied plug-ins
, name ? "gcc"
, cross ? null
, binutilsCross ? null
, libcCross ? null
, crossStageStatic ? true
, gnat ? null
@ -171,8 +170,8 @@ let version = "4.8.5";
else " --with-headers=${libcCross.dev}/include") +
# Ensure that -print-prog-name is able to find the correct programs.
(stdenv.lib.optionalString (crossMingw || crossDarwin) (
" --with-as=${binutilsCross}/bin/${cross.config}-as" +
" --with-ld=${binutilsCross}/bin/${cross.config}-ld"
" --with-as=${binutils}/bin/${cross.config}-as" +
" --with-ld=${binutils}/bin/${cross.config}-ld"
)) +
" --enable-__cxa_atexit" +
" --enable-long-long" +
@ -294,7 +293,7 @@ stdenv.mkDerivation ({
++ (optional (zlib != null) zlib)
++ (optionals langJava [ boehmgc zip unzip ])
++ (optionals javaAwtGtk ([ gtk2 libart_lgpl ] ++ xlibs))
++ (optionals (cross != null) [binutilsCross])
++ (optionals (cross != null) [binutils])
++ (optionals langAda [gnatboot])
++ (optionals langVhdl [gnat])

View File

@ -26,7 +26,6 @@
, enablePlugin ? true # whether to support user-supplied plug-ins
, name ? "gcc"
, cross ? null
, binutilsCross ? null
, libcCross ? null
, crossStageStatic ? true
, gnat ? null
@ -172,8 +171,8 @@ let version = "4.9.4";
else " --with-headers=${libcCross.dev}/include") +
# Ensure that -print-prog-name is able to find the correct programs.
(stdenv.lib.optionalString (crossMingw || crossDarwin) (
" --with-as=${binutilsCross}/bin/${cross.config}-as" +
" --with-ld=${binutilsCross}/bin/${cross.config}-ld"
" --with-as=${binutils}/bin/${cross.config}-as" +
" --with-ld=${binutils}/bin/${cross.config}-ld"
)) +
" --enable-__cxa_atexit" +
" --enable-long-long" +
@ -299,7 +298,7 @@ stdenv.mkDerivation ({
++ (optional (zlib != null) zlib)
++ (optionals langJava [ boehmgc zip unzip ])
++ (optionals javaAwtGtk ([ gtk2 libart_lgpl ] ++ xlibs))
++ (optionals (cross != null) [binutilsCross])
++ (optionals (cross != null) [binutils])
++ (optionals langAda [gnatboot])
++ (optionals langVhdl [gnat])

View File

@ -26,7 +26,6 @@
, enablePlugin ? true # whether to support user-supplied plug-ins
, name ? "gcc"
, cross ? null
, binutilsCross ? null
, libcCross ? null
, crossStageStatic ? true
, gnat ? null
@ -176,8 +175,8 @@ let version = "5.4.0";
else " --with-headers=${getDev libcCross}/include") +
# Ensure that -print-prog-name is able to find the correct programs.
(stdenv.lib.optionalString (crossMingw || crossDarwin) (
" --with-as=${binutilsCross}/bin/${cross.config}-as" +
" --with-ld=${binutilsCross}/bin/${cross.config}-ld"
" --with-as=${binutils}/bin/${cross.config}-as" +
" --with-ld=${binutils}/bin/${cross.config}-ld"
)) +
" --enable-__cxa_atexit" +
" --enable-long-long" +
@ -309,7 +308,7 @@ stdenv.mkDerivation ({
++ (optional (zlib != null) zlib)
++ (optionals langJava [ boehmgc zip unzip ])
++ (optionals javaAwtGtk ([ gtk2 libart_lgpl ] ++ xlibs))
++ (optionals (cross != null) [binutilsCross])
++ (optionals (cross != null) [binutils])
++ (optionals langAda [gnatboot])
++ (optionals langVhdl [gnat])

View File

@ -26,7 +26,6 @@
, enablePlugin ? true # whether to support user-supplied plug-ins
, name ? "gcc"
, cross ? null
, binutilsCross ? null
, libcCross ? null
, crossStageStatic ? true
, gnat ? null
@ -172,8 +171,8 @@ let version = "6.3.0";
else " --with-headers=${getDev libcCross}/include") +
# Ensure that -print-prog-name is able to find the correct programs.
(stdenv.lib.optionalString (crossMingw || crossDarwin) (
" --with-as=${binutilsCross}/bin/${cross.config}-as" +
" --with-ld=${binutilsCross}/bin/${cross.config}-ld"
" --with-as=${binutils}/bin/${cross.config}-as" +
" --with-ld=${binutils}/bin/${cross.config}-ld"
)) +
" --enable-__cxa_atexit" +
" --enable-long-long" +
@ -297,7 +296,7 @@ stdenv.mkDerivation ({
++ (optional (zlib != null) zlib)
++ (optionals langJava [ boehmgc zip unzip ])
++ (optionals javaAwtGtk ([ gtk2 libart_lgpl ] ++ xlibs))
++ (optionals (cross != null) [binutilsCross])
++ (optionals (cross != null) [binutils])
++ (optionals langAda [gnatboot])
++ (optionals langVhdl [gnat])

View File

@ -26,7 +26,6 @@
, enablePlugin ? true # whether to support user-supplied plug-ins
, name ? "gcc"
, cross ? null
, binutilsCross ? null
, libcCross ? null
, crossStageStatic ? true
, gnat ? null
@ -172,8 +171,8 @@ let version = "7-20170409";
else " --with-headers=${getDev libcCross}/include") +
# Ensure that -print-prog-name is able to find the correct programs.
(stdenv.lib.optionalString (crossMingw || crossDarwin) (
" --with-as=${binutilsCross}/bin/${cross.config}-as" +
" --with-ld=${binutilsCross}/bin/${cross.config}-ld"
" --with-as=${binutils}/bin/${cross.config}-as" +
" --with-ld=${binutils}/bin/${cross.config}-ld"
)) +
" --enable-__cxa_atexit" +
" --enable-long-long" +
@ -297,7 +296,7 @@ stdenv.mkDerivation ({
++ (optional (zlib != null) zlib)
++ (optionals langJava [ boehmgc zip unzip ])
++ (optionals javaAwtGtk ([ gtk2 libart_lgpl ] ++ xlibs))
++ (optionals (cross != null) [binutilsCross])
++ (optionals (cross != null) [binutils])
++ (optionals langAda [gnatboot])
++ (optionals langVhdl [gnat])

View File

@ -99,17 +99,17 @@ in stdenv.mkDerivation (rec {
configureFlags = [
"CC=${stdenv.ccCross}/bin/${cross.config}-cc"
"LD=${stdenv.binutilsCross}/bin/${cross.config}-ld"
"AR=${stdenv.binutilsCross}/bin/${cross.config}-ar"
"NM=${stdenv.binutilsCross}/bin/${cross.config}-nm"
"RANLIB=${stdenv.binutilsCross}/bin/${cross.config}-ranlib"
"LD=${stdenv.binutils}/bin/${cross.config}-ld"
"AR=${stdenv.binutils}/bin/${cross.config}-ar"
"NM=${stdenv.binutils}/bin/${cross.config}-nm"
"RANLIB=${stdenv.binutils}/bin/${cross.config}-ranlib"
"--target=${cross.config}"
"--enable-bootstrap-with-devel-snapshot"
] ++
# fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/
lib.optional (cross.config or null == "aarch64-apple-darwin14") "--disable-large-address-space";
buildInputs = commonBuildInputs ++ [ stdenv.ccCross stdenv.binutilsCross ];
buildInputs = commonBuildInputs ++ [ stdenv.ccCross stdenv.binutils ];
dontSetConfigureCross = true;
@ -118,6 +118,6 @@ in stdenv.mkDerivation (rec {
cc = "${stdenv.ccCross}/bin/${cross.config}-cc";
ld = "${stdenv.binutilsCross}/bin/${cross.config}-ld";
ld = "${stdenv.binutils}/bin/${cross.config}-ld";
};
})

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, binutilsCross ? null, gccCross ? null
{ stdenv, fetchurl, binutils ? null, gccCross ? null
, onlyHeaders ? false
, onlyPthreads ? false
}:
@ -27,7 +27,7 @@ stdenv.mkDerivation ({
cd mingw-w64-libraries/winpthreads
'';
} else {
buildInputs = [ gccCross binutilsCross ];
buildInputs = [ gccCross binutils ];
crossConfig = gccCross.crossConfig;

View File

@ -1,4 +1,4 @@
{stdenv, fetchurl, binutilsCross ? null, gccCross ? null, onlyHeaders ? false}:
{stdenv, fetchurl, binutils ? null, gccCross ? null, onlyHeaders ? false}:
let
name = "mingwrt-3.20";
@ -20,7 +20,7 @@ stdenv.mkDerivation (rec {
cp -R include $out
'';
} else {
buildInputs = [ gccCross binutilsCross ];
buildInputs = [ gccCross binutils ];
crossConfig = gccCross.crossConfig;

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, xz, binutilsCross ? null
{ stdenv, fetchurl, xz, binutils ? null
, gccCross ? null, onlyHeaders ? false }:
let
@ -23,7 +23,7 @@ stdenv.mkDerivation ({
cp -R include $out
'';
} else {
buildInputs = [ gccCross binutilsCross ];
buildInputs = [ gccCross binutils ];
crossConfig = gccCross.crossConfig;

View File

@ -56,7 +56,7 @@ rec {
# Return a modified stdenv that adds a cross compiler to the
# builds.
makeStdenvCross = stdenv: cross: binutilsCross: gccCross: stdenv // {
makeStdenvCross = stdenv: cross: binutils: gccCross: stdenv // {
# Overrides are surely not valid as packages built with this run on a
# different platform.
@ -91,7 +91,7 @@ rec {
name = name + "-" + cross.config;
nativeBuildInputs = nativeBuildInputs
++ nativeInputsFromBuildInputs
++ [ gccCross binutilsCross ]
++ [ gccCross binutils ]
++ stdenv.lib.optional selfNativeBuildInput nativeDrv
# without proper `file` command, libtool sometimes fails
# to recognize 64-bit DLLs
@ -110,7 +110,7 @@ rec {
crossConfig = cross.config;
} // args.crossAttrs or {});
inherit gccCross binutilsCross;
inherit gccCross binutils;
ccCross = gccCross;
};

View File

@ -39,7 +39,7 @@ in bootStages ++ [
binutils cc
else buildPackages.makeStdenvCross
buildPackages.stdenv crossSystem
buildPackages.binutilsCross buildPackages.gccCrossStageFinal;
buildPackages.binutils buildPackages.gccCrossStageFinal;
})
]

View File

@ -4982,10 +4982,10 @@ with pkgs;
libcCross = libcCross1;
enableShared = false;
# Why is this needed?
inherit (forcedNativePackages) binutilsCross;
inherit (forcedNativePackages) binutils;
};
libc = libcCross1;
binutils = binutilsCross;
inherit (forcedNativePackages) binutils;
cross = targetPlatform;
};
@ -4993,7 +4993,7 @@ with pkgs;
gccCrossMingw2 = assert targetPlatform != buildPlatform; wrapGCCCross {
gcc = gccCrossStageStatic.gcc;
libc = windows.mingw_headers2;
binutils = binutilsCross;
inherit (forcedNativePackages) binutils;
cross = targetPlatform;
};
@ -5006,10 +5006,10 @@ with pkgs;
# <http://hydra.nixos.org/build/4268232>), so don't even try.
langCC = targetPlatform.config != "i686-pc-mingw32";
# Why is this needed?
inherit (forcedNativePackages) binutilsCross;
inherit (forcedNativePackages) binutils;
};
libc = libcCross;
binutils = binutilsCross;
inherit (forcedNativePackages) binutils;
cross = targetPlatform;
};
@ -6346,13 +6346,6 @@ with pkgs;
gold = false;
});
binutilsCross = assert targetPlatform != buildPlatform; lowPrio (
if targetPlatform.libc == "libSystem" then darwin.cctools_cross
else forcedNativePackages.binutils.override {
noSysDirs = true;
cross = targetPlatform;
});
bison2 = callPackage ../development/tools/parsing/bison/2.x.nix { };
bison3 = callPackage ../development/tools/parsing/bison/3.x.nix { };
bison = bison3;
@ -12305,7 +12298,7 @@ with pkgs;
w32api = callPackage ../os-specific/windows/w32api {
gccCross = gccCrossStageStatic;
binutilsCross = binutilsCross;
binutils = binutils;
};
w32api_headers = w32api.override {
@ -12314,7 +12307,7 @@ with pkgs;
mingw_runtime = callPackage ../os-specific/windows/mingwrt {
gccCross = gccCrossMingw2;
binutilsCross = binutilsCross;
binutils = binutils;
};
mingw_runtime_headers = mingw_runtime.override {
@ -12338,7 +12331,7 @@ with pkgs;
mingw_w64 = callPackage ../os-specific/windows/mingw-w64 {
gccCross = gccCrossStageStatic;
binutilsCross = binutilsCross;
binutils = binutils;
};
mingw_w64_headers = callPackage ../os-specific/windows/mingw-w64 {