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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -99,17 +99,17 @@ in stdenv.mkDerivation (rec {
configureFlags = [ configureFlags = [
"CC=${stdenv.ccCross}/bin/${cross.config}-cc" "CC=${stdenv.ccCross}/bin/${cross.config}-cc"
"LD=${stdenv.binutilsCross}/bin/${cross.config}-ld" "LD=${stdenv.binutils}/bin/${cross.config}-ld"
"AR=${stdenv.binutilsCross}/bin/${cross.config}-ar" "AR=${stdenv.binutils}/bin/${cross.config}-ar"
"NM=${stdenv.binutilsCross}/bin/${cross.config}-nm" "NM=${stdenv.binutils}/bin/${cross.config}-nm"
"RANLIB=${stdenv.binutilsCross}/bin/${cross.config}-ranlib" "RANLIB=${stdenv.binutils}/bin/${cross.config}-ranlib"
"--target=${cross.config}" "--target=${cross.config}"
"--enable-bootstrap-with-devel-snapshot" "--enable-bootstrap-with-devel-snapshot"
] ++ ] ++
# fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/ # 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"; 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; dontSetConfigureCross = true;
@ -118,6 +118,6 @@ in stdenv.mkDerivation (rec {
cc = "${stdenv.ccCross}/bin/${cross.config}-cc"; 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 , onlyHeaders ? false
, onlyPthreads ? false , onlyPthreads ? false
}: }:
@ -27,7 +27,7 @@ stdenv.mkDerivation ({
cd mingw-w64-libraries/winpthreads cd mingw-w64-libraries/winpthreads
''; '';
} else { } else {
buildInputs = [ gccCross binutilsCross ]; buildInputs = [ gccCross binutils ];
crossConfig = gccCross.crossConfig; 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 let
name = "mingwrt-3.20"; name = "mingwrt-3.20";
@ -20,7 +20,7 @@ stdenv.mkDerivation (rec {
cp -R include $out cp -R include $out
''; '';
} else { } else {
buildInputs = [ gccCross binutilsCross ]; buildInputs = [ gccCross binutils ];
crossConfig = gccCross.crossConfig; crossConfig = gccCross.crossConfig;

View file

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

View file

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

View file

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

View file

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