binutils-unwrapped: expose if built with ld.gold
ld.gold is “A new, faster, ELF only linker”. Thus we only should pass the configure flag --with-gold if our target platform will actually support gold (in which case binutil's configure script silently disables it). With this change, not only will configureFlags represent the actual configuration more closely, but we can also expose if the binutils derivation contains ld.gold via a passthru attr. Specifically this means that: nix-repl> pkgsCross.mingwW64.stdenv.cc.bintools.bintools.hasGold false The intended way to use this is to check `stdenv.cc.bintools.bintools or false` which returns accurate results regardless of the actual linker derivation. TODO: maybe also add hasGold to binutils wrapper as it also symlinks ld.gold in?
This commit is contained in:
parent
b6d8e46a57
commit
4c75874560
1 changed files with 10 additions and 1 deletions
|
@ -1,16 +1,24 @@
|
|||
let
|
||||
execFormatIsELF = platform: platform.parsed.kernel.execFormat.name == "elf";
|
||||
in
|
||||
|
||||
{ stdenv, lib, buildPackages
|
||||
, fetchFromGitHub, fetchurl, zlib, autoreconfHook, gettext
|
||||
# Enabling all targets increases output size to a multiple.
|
||||
, withAllTargets ? false, libbfd, libopcodes
|
||||
, enableShared ? !stdenv.hostPlatform.isStatic
|
||||
, noSysDirs
|
||||
, gold ? true
|
||||
, gold ? execFormatIsELF stdenv.targetPlatform
|
||||
, bison ? null
|
||||
, flex
|
||||
, texinfo
|
||||
, perl
|
||||
}:
|
||||
|
||||
# configure silently disables ld.gold if it's unsupported,
|
||||
# so we need to make sure that intent matches result ourselves.
|
||||
assert gold -> execFormatIsELF stdenv.targetPlatform;
|
||||
|
||||
# Note: this package is used for bootstrapping fetchurl, and thus
|
||||
# cannot use fetchpatch! All mutable patches (generated by GitHub or
|
||||
# cgit) that are needed here should be included directly in Nixpkgs as
|
||||
|
@ -163,6 +171,7 @@ stdenv.mkDerivation {
|
|||
|
||||
passthru = {
|
||||
inherit targetPrefix;
|
||||
hasGold = gold;
|
||||
isGNU = true;
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue