Merge some Master PRs into staging
No native hashes should be changed
This commit is contained in:
commit
1dd63de9a0
@ -20,7 +20,7 @@
|
|||||||
, enableMultilib ? false
|
, enableMultilib ? false
|
||||||
, name ? "gcc"
|
, name ? "gcc"
|
||||||
, libcCross ? null
|
, libcCross ? null
|
||||||
, crossStageStatic ? true
|
, crossStageStatic ? false
|
||||||
, gnat ? null
|
, gnat ? null
|
||||||
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
|
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
|
||||||
, stripped ? true
|
, stripped ? true
|
||||||
@ -213,7 +213,9 @@ stdenv.mkDerivation ({
|
|||||||
''
|
''
|
||||||
else null;
|
else null;
|
||||||
|
|
||||||
inherit noSysDirs profiledCompiler staticCompiler langJava crossStageStatic
|
# TODO(@Ericson2314): Make passthru instead. Weird to avoid mass rebuild,
|
||||||
|
crossStageStatic = targetPlatform == hostPlatform || crossStageStatic;
|
||||||
|
inherit noSysDirs profiledCompiler staticCompiler langJava
|
||||||
libcCross crossMingw;
|
libcCross crossMingw;
|
||||||
|
|
||||||
nativeBuildInputs = [ texinfo which gettext ]
|
nativeBuildInputs = [ texinfo which gettext ]
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
, enablePlugin ? true # whether to support user-supplied plug-ins
|
, enablePlugin ? true # whether to support user-supplied plug-ins
|
||||||
, name ? "gcc"
|
, name ? "gcc"
|
||||||
, libcCross ? null
|
, libcCross ? null
|
||||||
, crossStageStatic ? true
|
, crossStageStatic ? false
|
||||||
, gnat ? null
|
, gnat ? null
|
||||||
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
|
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
|
||||||
, stripped ? true
|
, stripped ? true
|
||||||
@ -284,7 +284,9 @@ stdenv.mkDerivation ({
|
|||||||
''
|
''
|
||||||
else null;
|
else null;
|
||||||
|
|
||||||
inherit noSysDirs staticCompiler langJava crossStageStatic
|
# TODO(@Ericson2314): Make passthru instead. Weird to avoid mass rebuild,
|
||||||
|
crossStageStatic = targetPlatform == hostPlatform || crossStageStatic;
|
||||||
|
inherit noSysDirs staticCompiler langJava
|
||||||
libcCross crossMingw;
|
libcCross crossMingw;
|
||||||
|
|
||||||
nativeBuildInputs = [ texinfo which gettext ]
|
nativeBuildInputs = [ texinfo which gettext ]
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
, enablePlugin ? true # whether to support user-supplied plug-ins
|
, enablePlugin ? true # whether to support user-supplied plug-ins
|
||||||
, name ? "gcc"
|
, name ? "gcc"
|
||||||
, libcCross ? null
|
, libcCross ? null
|
||||||
, crossStageStatic ? true
|
, crossStageStatic ? false
|
||||||
, gnat ? null
|
, gnat ? null
|
||||||
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
|
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
|
||||||
, stripped ? true
|
, stripped ? true
|
||||||
@ -280,7 +280,9 @@ stdenv.mkDerivation ({
|
|||||||
''
|
''
|
||||||
else null;
|
else null;
|
||||||
|
|
||||||
inherit noSysDirs staticCompiler langJava crossStageStatic
|
# TODO(@Ericson2314): Make passthru instead. Weird to avoid mass rebuild,
|
||||||
|
crossStageStatic = targetPlatform == hostPlatform || crossStageStatic;
|
||||||
|
inherit noSysDirs staticCompiler langJava
|
||||||
libcCross crossMingw;
|
libcCross crossMingw;
|
||||||
|
|
||||||
nativeBuildInputs = [ texinfo which gettext ]
|
nativeBuildInputs = [ texinfo which gettext ]
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
, enablePlugin ? true # whether to support user-supplied plug-ins
|
, enablePlugin ? true # whether to support user-supplied plug-ins
|
||||||
, name ? "gcc"
|
, name ? "gcc"
|
||||||
, libcCross ? null
|
, libcCross ? null
|
||||||
, crossStageStatic ? true
|
, crossStageStatic ? false
|
||||||
, gnat ? null
|
, gnat ? null
|
||||||
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
|
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
|
||||||
, stripped ? true
|
, stripped ? true
|
||||||
@ -298,7 +298,9 @@ stdenv.mkDerivation ({
|
|||||||
''
|
''
|
||||||
else null;
|
else null;
|
||||||
|
|
||||||
inherit noSysDirs staticCompiler langJava crossStageStatic
|
# TODO(@Ericson2314): Make passthru instead. Weird to avoid mass rebuild,
|
||||||
|
crossStageStatic = targetPlatform == hostPlatform || crossStageStatic;
|
||||||
|
inherit noSysDirs staticCompiler langJava
|
||||||
libcCross crossMingw;
|
libcCross crossMingw;
|
||||||
|
|
||||||
nativeBuildInputs = [ texinfo which gettext ]
|
nativeBuildInputs = [ texinfo which gettext ]
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
, enablePlugin ? true # whether to support user-supplied plug-ins
|
, enablePlugin ? true # whether to support user-supplied plug-ins
|
||||||
, name ? "gcc"
|
, name ? "gcc"
|
||||||
, libcCross ? null
|
, libcCross ? null
|
||||||
, crossStageStatic ? true
|
, crossStageStatic ? false
|
||||||
, gnat ? null
|
, gnat ? null
|
||||||
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
|
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
|
||||||
, stripped ? true
|
, stripped ? true
|
||||||
@ -292,7 +292,9 @@ stdenv.mkDerivation ({
|
|||||||
''
|
''
|
||||||
else null;
|
else null;
|
||||||
|
|
||||||
inherit noSysDirs staticCompiler langJava crossStageStatic
|
# TODO(@Ericson2314): Make passthru instead. Weird to avoid mass rebuild,
|
||||||
|
crossStageStatic = targetPlatform == hostPlatform || crossStageStatic;
|
||||||
|
inherit noSysDirs staticCompiler langJava
|
||||||
libcCross crossMingw;
|
libcCross crossMingw;
|
||||||
|
|
||||||
nativeBuildInputs = [ texinfo which gettext ]
|
nativeBuildInputs = [ texinfo which gettext ]
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
, enablePlugin ? true # whether to support user-supplied plug-ins
|
, enablePlugin ? true # whether to support user-supplied plug-ins
|
||||||
, name ? "gcc"
|
, name ? "gcc"
|
||||||
, libcCross ? null
|
, libcCross ? null
|
||||||
, crossStageStatic ? true
|
, crossStageStatic ? false
|
||||||
, gnat ? null
|
, gnat ? null
|
||||||
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
|
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
|
||||||
, stripped ? true
|
, stripped ? true
|
||||||
@ -294,7 +294,9 @@ stdenv.mkDerivation ({
|
|||||||
''
|
''
|
||||||
else null;
|
else null;
|
||||||
|
|
||||||
inherit noSysDirs staticCompiler langJava crossStageStatic
|
# TODO(@Ericson2314): Make passthru instead. Weird to avoid mass rebuild,
|
||||||
|
crossStageStatic = targetPlatform == hostPlatform || crossStageStatic;
|
||||||
|
inherit noSysDirs staticCompiler langJava
|
||||||
libcCross crossMingw;
|
libcCross crossMingw;
|
||||||
|
|
||||||
nativeBuildInputs = [ texinfo which gettext ]
|
nativeBuildInputs = [ texinfo which gettext ]
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
, enablePlugin ? true # whether to support user-supplied plug-ins
|
, enablePlugin ? true # whether to support user-supplied plug-ins
|
||||||
, name ? "gcc"
|
, name ? "gcc"
|
||||||
, libcCross ? null
|
, libcCross ? null
|
||||||
, crossStageStatic ? true
|
, crossStageStatic ? false
|
||||||
, gnat ? null
|
, gnat ? null
|
||||||
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
|
, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd
|
||||||
, stripped ? true
|
, stripped ? true
|
||||||
@ -281,7 +281,9 @@ stdenv.mkDerivation ({
|
|||||||
''
|
''
|
||||||
else null;
|
else null;
|
||||||
|
|
||||||
inherit noSysDirs staticCompiler langJava crossStageStatic
|
# TODO(@Ericson2314): Make passthru instead. Weird to avoid mass rebuild,
|
||||||
|
crossStageStatic = targetPlatform == hostPlatform || crossStageStatic;
|
||||||
|
inherit noSysDirs staticCompiler langJava
|
||||||
libcCross crossMingw;
|
libcCross crossMingw;
|
||||||
|
|
||||||
nativeBuildInputs = [ texinfo which gettext ]
|
nativeBuildInputs = [ texinfo which gettext ]
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
args@{ fetchgit, stdenv, autoconf, automake, automake111x, libtool
|
args@{ fetchgit, stdenv, autoconf, automake, automake111x, libtool
|
||||||
, texinfo, glibcCross, hurdPartedCross, libuuid, samba
|
, texinfo, glibcCross, hurdPartedCross, libuuid, samba
|
||||||
, gccCrossStageStatic, gccCrossStageFinal
|
, gccCrossStageStatic, gcc
|
||||||
, forceSystem, newScope, platform, config
|
, forceSystem, newScope, platform, config
|
||||||
, targetPlatform, buildPlatform
|
, targetPlatform, buildPlatform
|
||||||
, overrides ? {}
|
, overrides ? {}
|
||||||
@ -28,7 +28,7 @@ let
|
|||||||
automake = automake111x;
|
automake = automake111x;
|
||||||
headersOnly = false;
|
headersOnly = false;
|
||||||
cross = assert targetPlatform != buildPlatform; targetPlatform;
|
cross = assert targetPlatform != buildPlatform; targetPlatform;
|
||||||
gccCross = gccCrossStageFinal;
|
gccCross = gcc;
|
||||||
};
|
};
|
||||||
|
|
||||||
hurdCrossIntermediate = forcedNativePackages.callPackage ./hurd {
|
hurdCrossIntermediate = forcedNativePackages.callPackage ./hurd {
|
||||||
|
@ -59,17 +59,18 @@ rec {
|
|||||||
makeStdenvCross = { stdenv
|
makeStdenvCross = { stdenv
|
||||||
, cc
|
, cc
|
||||||
, buildPlatform, hostPlatform, targetPlatform
|
, buildPlatform, hostPlatform, targetPlatform
|
||||||
|
, # Prior overrides are surely not valid as packages built
|
||||||
|
# with this run on a different platform, so disable by
|
||||||
|
# default.
|
||||||
|
overrides ? _: _: {}
|
||||||
} @ overrideArgs: let
|
} @ overrideArgs: let
|
||||||
stdenv = overrideArgs.stdenv.override {
|
stdenv = overrideArgs.stdenv.override {
|
||||||
inherit
|
inherit
|
||||||
buildPlatform hostPlatform targetPlatform
|
buildPlatform hostPlatform targetPlatform
|
||||||
cc;
|
cc overrides;
|
||||||
|
|
||||||
allowedRequisites = null;
|
allowedRequisites = null;
|
||||||
|
extraBuildInputs = [ ]; # Old ones run on wrong platform
|
||||||
# Overrides are surely not valid as packages built with this run on a
|
|
||||||
# different platform.
|
|
||||||
overrides = _: _: {};
|
|
||||||
};
|
};
|
||||||
in stdenv // {
|
in stdenv // {
|
||||||
mkDerivation =
|
mkDerivation =
|
||||||
@ -105,7 +106,7 @@ rec {
|
|||||||
# without proper `file` command, libtool sometimes fails
|
# without proper `file` command, libtool sometimes fails
|
||||||
# to recognize 64-bit DLLs
|
# to recognize 64-bit DLLs
|
||||||
++ stdenv.lib.optional (hostPlatform.config == "x86_64-w64-mingw32") pkgs.file
|
++ stdenv.lib.optional (hostPlatform.config == "x86_64-w64-mingw32") pkgs.file
|
||||||
++ stdenv.lib.optional (hostPlatform.config == "aarch64-linux-gnu") pkgs.updateAutotoolsGnuConfigScriptsHook
|
++ stdenv.lib.optional hostPlatform.isAarch64 pkgs.updateAutotoolsGnuConfigScriptsHook
|
||||||
;
|
;
|
||||||
|
|
||||||
# Cross-linking dynamic libraries, every buildInput should
|
# Cross-linking dynamic libraries, every buildInput should
|
||||||
|
@ -35,7 +35,7 @@ in bootStages ++ [
|
|||||||
targetPlatform = crossSystem;
|
targetPlatform = crossSystem;
|
||||||
cc = if crossSystem.useiOSCross or false
|
cc = if crossSystem.useiOSCross or false
|
||||||
then buildPackages.darwin.ios-cross
|
then buildPackages.darwin.ios-cross
|
||||||
else buildPackages.gccCrossStageFinal;
|
else buildPackages.gcc;
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -219,7 +219,7 @@ in
|
|||||||
};
|
};
|
||||||
extraNativeBuildInputs = [ prevStage.patchelf prevStage.paxctl ] ++
|
extraNativeBuildInputs = [ prevStage.patchelf prevStage.paxctl ] ++
|
||||||
# Many tarballs come with obsolete config.sub/config.guess that don't recognize aarch64.
|
# Many tarballs come with obsolete config.sub/config.guess that don't recognize aarch64.
|
||||||
lib.optional (system == "aarch64-linux") prevStage.updateAutotoolsGnuConfigScriptsHook;
|
lib.optional localSystem.isAarch64 prevStage.updateAutotoolsGnuConfigScriptsHook;
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@ -251,7 +251,7 @@ in
|
|||||||
};
|
};
|
||||||
extraNativeBuildInputs = [ prevStage.patchelf prevStage.xz ] ++
|
extraNativeBuildInputs = [ prevStage.patchelf prevStage.xz ] ++
|
||||||
# Many tarballs come with obsolete config.sub/config.guess that don't recognize aarch64.
|
# Many tarballs come with obsolete config.sub/config.guess that don't recognize aarch64.
|
||||||
lib.optional (system == "aarch64-linux") prevStage.updateAutotoolsGnuConfigScriptsHook;
|
lib.optional localSystem.isAarch64 prevStage.updateAutotoolsGnuConfigScriptsHook;
|
||||||
})
|
})
|
||||||
|
|
||||||
# Construct the final stdenv. It uses the Glibc and GCC, and adds
|
# Construct the final stdenv. It uses the Glibc and GCC, and adds
|
||||||
@ -281,7 +281,7 @@ in
|
|||||||
|
|
||||||
extraNativeBuildInputs = [ prevStage.patchelf prevStage.paxctl ] ++
|
extraNativeBuildInputs = [ prevStage.patchelf prevStage.paxctl ] ++
|
||||||
# Many tarballs come with obsolete config.sub/config.guess that don't recognize aarch64.
|
# Many tarballs come with obsolete config.sub/config.guess that don't recognize aarch64.
|
||||||
lib.optional (system == "aarch64-linux") prevStage.updateAutotoolsGnuConfigScriptsHook;
|
lib.optional localSystem.isAarch64 prevStage.updateAutotoolsGnuConfigScriptsHook;
|
||||||
|
|
||||||
cc = prevStage.gcc;
|
cc = prevStage.gcc;
|
||||||
|
|
||||||
@ -312,7 +312,7 @@ in
|
|||||||
glibc.out glibc.dev glibc.bin/*propagated from .dev*/ linuxHeaders
|
glibc.out glibc.dev glibc.bin/*propagated from .dev*/ linuxHeaders
|
||||||
gcc gcc.cc gcc.cc.lib gcc.expand-response-params
|
gcc gcc.cc gcc.cc.lib gcc.expand-response-params
|
||||||
]
|
]
|
||||||
++ lib.optionals (system == "aarch64-linux")
|
++ lib.optionals localSystem.isAarch64
|
||||||
[ prevStage.updateAutotoolsGnuConfigScriptsHook prevStage.gnu-config ];
|
[ prevStage.updateAutotoolsGnuConfigScriptsHook prevStage.gnu-config ];
|
||||||
|
|
||||||
overrides = self: super: {
|
overrides = self: super: {
|
||||||
|
@ -5381,6 +5381,7 @@ with pkgs;
|
|||||||
gambit = callPackage ../development/compilers/gambit { };
|
gambit = callPackage ../development/compilers/gambit { };
|
||||||
gerbil = callPackage ../development/compilers/gerbil { };
|
gerbil = callPackage ../development/compilers/gerbil { };
|
||||||
|
|
||||||
|
gccFun = callPackage ../development/compilers/gcc/6;
|
||||||
gcc = gcc6;
|
gcc = gcc6;
|
||||||
gcc-unwrapped = gcc.cc;
|
gcc-unwrapped = gcc.cc;
|
||||||
|
|
||||||
@ -5429,6 +5430,8 @@ with pkgs;
|
|||||||
cc = buildPackages.gccCrossStageStatic;
|
cc = buildPackages.gccCrossStageStatic;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# The GCC used to build libc for the target platform. Normal gccs will be
|
||||||
|
# built with, and use, that cross-compiled libc.
|
||||||
gccCrossStageStatic = assert targetPlatform != buildPlatform; let
|
gccCrossStageStatic = assert targetPlatform != buildPlatform; let
|
||||||
libcCross1 =
|
libcCross1 =
|
||||||
if targetPlatform.libc == "msvcrt" then __targetPackages.windows.mingw_w64_headers
|
if targetPlatform.libc == "msvcrt" then __targetPackages.windows.mingw_w64_headers
|
||||||
@ -5436,12 +5439,18 @@ with pkgs;
|
|||||||
else null;
|
else null;
|
||||||
in wrapCCWith {
|
in wrapCCWith {
|
||||||
name = "gcc-cross-wrapper";
|
name = "gcc-cross-wrapper";
|
||||||
cc = gcc.cc.override {
|
cc = gccFun {
|
||||||
|
# copy-pasted
|
||||||
|
inherit noSysDirs;
|
||||||
|
# PGO seems to speed up compilation by gcc by ~10%, see #445 discussion
|
||||||
|
profiledCompiler = with stdenv; (!isDarwin && (isi686 || isx86_64));
|
||||||
|
isl = if !stdenv.isDarwin then isl_0_14 else null;
|
||||||
|
|
||||||
|
# just for stage static
|
||||||
crossStageStatic = true;
|
crossStageStatic = true;
|
||||||
langCC = false;
|
langCC = false;
|
||||||
libcCross = libcCross1;
|
libcCross = libcCross1;
|
||||||
enableShared = false;
|
enableShared = false;
|
||||||
# Why is this needed?
|
|
||||||
};
|
};
|
||||||
libc = libcCross1;
|
libc = libcCross1;
|
||||||
};
|
};
|
||||||
@ -5453,14 +5462,6 @@ with pkgs;
|
|||||||
libc = windows.mingw_headers2;
|
libc = windows.mingw_headers2;
|
||||||
};
|
};
|
||||||
|
|
||||||
gccCrossStageFinal = assert targetPlatform != buildPlatform; wrapCCWith {
|
|
||||||
name = "gcc-cross-wrapper";
|
|
||||||
cc = gcc.cc.override {
|
|
||||||
crossStageStatic = false;
|
|
||||||
};
|
|
||||||
libc = libcCross;
|
|
||||||
};
|
|
||||||
|
|
||||||
gcc45 = lowPrio (wrapCC (callPackage ../development/compilers/gcc/4.5 {
|
gcc45 = lowPrio (wrapCC (callPackage ../development/compilers/gcc/4.5 {
|
||||||
inherit noSysDirs;
|
inherit noSysDirs;
|
||||||
texinfo = texinfo4;
|
texinfo = texinfo4;
|
||||||
@ -6225,8 +6226,9 @@ with pkgs;
|
|||||||
ccWrapperFun = callPackage ../build-support/cc-wrapper;
|
ccWrapperFun = callPackage ../build-support/cc-wrapper;
|
||||||
|
|
||||||
wrapCC = cc: wrapCCWith {
|
wrapCC = cc: wrapCCWith {
|
||||||
|
name = lib.optionalString (targetPlatform != hostPlatform) "gcc-cross-wrapper";
|
||||||
inherit cc;
|
inherit cc;
|
||||||
inherit (stdenv.cc) libc;
|
libc = if targetPlatform != hostPlatform then libcCross else stdenv.cc.libc;
|
||||||
};
|
};
|
||||||
# legacy version, used for gnat bootstrapping
|
# legacy version, used for gnat bootstrapping
|
||||||
wrapGCC-old = baseGCC: callPackage ../build-support/gcc-wrapper-old {
|
wrapGCC-old = baseGCC: callPackage ../build-support/gcc-wrapper-old {
|
||||||
|
@ -19,7 +19,7 @@ let
|
|||||||
};
|
};
|
||||||
|
|
||||||
gnuCommon = lib.recursiveUpdate common {
|
gnuCommon = lib.recursiveUpdate common {
|
||||||
buildPackages.gccCrossStageFinal = nativePlatforms;
|
buildPackages.gcc = nativePlatforms;
|
||||||
coreutils = nativePlatforms;
|
coreutils = nativePlatforms;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user