bintools: Add isXXX flags to check linker type

main
Shea Levy 2 years ago
parent a73b59a157
commit dee9af9323
No known key found for this signature in database
GPG Key ID: 5C0BD6957D86FE27
  1. 9
      pkgs/build-support/bintools-wrapper/default.nix
  2. 2
      pkgs/development/compilers/llvm/10/bintools/default.nix
  3. 2
      pkgs/development/compilers/llvm/11/bintools/default.nix
  4. 2
      pkgs/development/compilers/llvm/12/bintools/default.nix
  5. 2
      pkgs/development/compilers/llvm/13/bintools/default.nix
  6. 2
      pkgs/development/compilers/llvm/14/bintools/default.nix
  7. 2
      pkgs/development/compilers/llvm/7/bintools/default.nix
  8. 2
      pkgs/development/compilers/llvm/8/bintools/default.nix
  9. 2
      pkgs/development/compilers/llvm/9/bintools/default.nix
  10. 2
      pkgs/development/compilers/llvm/git/bintools/default.nix
  11. 5
      pkgs/development/tools/misc/binutils/default.nix
  12. 1
      pkgs/os-specific/darwin/binutils/default.nix

@ -31,6 +31,13 @@
# Darwin code signing support utilities # Darwin code signing support utilities
, postLinkSignHook ? null, signingUtils ? null , postLinkSignHook ? null, signingUtils ? null
# Linker type
, isLld ? bintools.isLld or false
, isCctools ? bintools.isCctools or false
, isGNU ? bintools.isGNU or false
, isGold ? bintools.isGold or false
, isBfd ? bintools.isBfd or false
}: }:
with lib; with lib;
@ -113,6 +120,8 @@ stdenv.mkDerivation {
passthru = { passthru = {
inherit bintools libc nativeTools nativeLibc nativePrefix; inherit bintools libc nativeTools nativeLibc nativePrefix;
inherit isLld isCctools isGNU isGold isBfd;
emacsBufferSetup = pkgs: '' emacsBufferSetup = pkgs: ''
; We should handle propagation here too ; We should handle propagation here too
(mapc (mapc

@ -5,7 +5,7 @@ let
if stdenv.hostPlatform != stdenv.targetPlatform if stdenv.hostPlatform != stdenv.targetPlatform
then "${stdenv.targetPlatform.config}-" then "${stdenv.targetPlatform.config}-"
else ""; else "";
in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } '' in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; passthru.isLld = true; } ''
mkdir -p $out/bin mkdir -p $out/bin
for prog in ${lld}/bin/*; do for prog in ${lld}/bin/*; do
ln -s $prog $out/bin/${prefix}$(basename $prog) ln -s $prog $out/bin/${prefix}$(basename $prog)

@ -5,7 +5,7 @@ let
if stdenv.hostPlatform != stdenv.targetPlatform if stdenv.hostPlatform != stdenv.targetPlatform
then "${stdenv.targetPlatform.config}-" then "${stdenv.targetPlatform.config}-"
else ""; else "";
in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } '' in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; passthru.isLld = true; } ''
mkdir -p $out/bin mkdir -p $out/bin
for prog in ${lld}/bin/*; do for prog in ${lld}/bin/*; do
ln -s $prog $out/bin/${prefix}$(basename $prog) ln -s $prog $out/bin/${prefix}$(basename $prog)

@ -5,7 +5,7 @@ let
if stdenv.hostPlatform != stdenv.targetPlatform if stdenv.hostPlatform != stdenv.targetPlatform
then "${stdenv.targetPlatform.config}-" then "${stdenv.targetPlatform.config}-"
else ""; else "";
in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } '' in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; passthru.isLld = true; } ''
mkdir -p $out/bin mkdir -p $out/bin
for prog in ${lld}/bin/*; do for prog in ${lld}/bin/*; do
ln -s $prog $out/bin/${prefix}$(basename $prog) ln -s $prog $out/bin/${prefix}$(basename $prog)

@ -5,7 +5,7 @@ let
if stdenv.hostPlatform != stdenv.targetPlatform if stdenv.hostPlatform != stdenv.targetPlatform
then "${stdenv.targetPlatform.config}-" then "${stdenv.targetPlatform.config}-"
else ""; else "";
in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } ('' in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; passthru.isLld = true; } (''
mkdir -p $out/bin mkdir -p $out/bin
for prog in ${lld}/bin/*; do for prog in ${lld}/bin/*; do
ln -s $prog $out/bin/${prefix}$(basename $prog) ln -s $prog $out/bin/${prefix}$(basename $prog)

@ -5,7 +5,7 @@ let
if stdenv.hostPlatform != stdenv.targetPlatform if stdenv.hostPlatform != stdenv.targetPlatform
then "${stdenv.targetPlatform.config}-" then "${stdenv.targetPlatform.config}-"
else ""; else "";
in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } ('' in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; passthru.isLld = true; } (''
mkdir -p $out/bin mkdir -p $out/bin
for prog in ${lld}/bin/*; do for prog in ${lld}/bin/*; do
ln -s $prog $out/bin/${prefix}$(basename $prog) ln -s $prog $out/bin/${prefix}$(basename $prog)

@ -5,7 +5,7 @@ let
if stdenv.hostPlatform != stdenv.targetPlatform if stdenv.hostPlatform != stdenv.targetPlatform
then "${stdenv.targetPlatform.config}-" then "${stdenv.targetPlatform.config}-"
else ""; else "";
in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } '' in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; passthru.isLld = true; } ''
mkdir -p $out/bin mkdir -p $out/bin
for prog in ${lld}/bin/*; do for prog in ${lld}/bin/*; do
ln -s $prog $out/bin/${prefix}$(basename $prog) ln -s $prog $out/bin/${prefix}$(basename $prog)

@ -5,7 +5,7 @@ let
if stdenv.hostPlatform != stdenv.targetPlatform if stdenv.hostPlatform != stdenv.targetPlatform
then "${stdenv.targetPlatform.config}-" then "${stdenv.targetPlatform.config}-"
else ""; else "";
in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } '' in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; passthru.isLld = true; } ''
mkdir -p $out/bin mkdir -p $out/bin
for prog in ${lld}/bin/*; do for prog in ${lld}/bin/*; do
ln -s $prog $out/bin/${prefix}$(basename $prog) ln -s $prog $out/bin/${prefix}$(basename $prog)

@ -5,7 +5,7 @@ let
if stdenv.hostPlatform != stdenv.targetPlatform if stdenv.hostPlatform != stdenv.targetPlatform
then "${stdenv.targetPlatform.config}-" then "${stdenv.targetPlatform.config}-"
else ""; else "";
in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } '' in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; passthru.isLld = true; } ''
mkdir -p $out/bin mkdir -p $out/bin
for prog in ${lld}/bin/*; do for prog in ${lld}/bin/*; do
ln -s $prog $out/bin/${prefix}$(basename $prog) ln -s $prog $out/bin/${prefix}$(basename $prog)

@ -5,7 +5,7 @@ let
if stdenv.hostPlatform != stdenv.targetPlatform if stdenv.hostPlatform != stdenv.targetPlatform
then "${stdenv.targetPlatform.config}-" then "${stdenv.targetPlatform.config}-"
else ""; else "";
in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } ('' in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; passthru.isLld = true; } (''
mkdir -p $out/bin mkdir -p $out/bin
for prog in ${lld}/bin/*; do for prog in ${lld}/bin/*; do
ln -s $prog $out/bin/${prefix}$(basename $prog) ln -s $prog $out/bin/${prefix}$(basename $prog)

@ -197,6 +197,11 @@ stdenv.mkDerivation {
inherit targetPrefix; inherit targetPrefix;
hasGold = enableGold; hasGold = enableGold;
isGNU = true; isGNU = true;
# TODO Currently platform.linker == "gold" has no effect outside
# of building GHC. If/when that's fixed, these flags should
# probably move to the invocations of bintools-wrapper
isGold = false;
isBfd = true;
}; };
meta = with lib; { meta = with lib; {

@ -65,6 +65,7 @@ stdenv.mkDerivation {
passthru = { passthru = {
inherit targetPrefix; inherit targetPrefix;
isCctools = true;
}; };
meta = { meta = {

Loading…
Cancel
Save