gcc: stop passing --with-ld when cross compiling (#400734)

Changed files
+4 -7
pkgs
build-support
development
compilers
gcc
+4 -5
pkgs/build-support/cc-wrapper/add-flags.sh
···
mangleVarBool "$var" ${role_suffixes[@]+"${role_suffixes[@]}"}
done
-
# Arocc does not support "-B"
-
if [[ -z "@isArocc@" ]]; then
-
# `-B@bintools@/bin' forces cc to use ld-wrapper.sh when calling ld.
-
NIX_CFLAGS_COMPILE_@suffixSalt@="-B@bintools@/bin/@bintools_targetPrefix@ $NIX_CFLAGS_COMPILE_@suffixSalt@"
-
fi
+
# Prepending `@bintools@/bin' to $PATH forces cc to use ld-wrapper.sh when calling ld.
+
# $path_backup is where cc-wrapper.sh stores the $PATH that will be used for the
+
# compiler invocation.
+
path_backup="@bintools@/bin:$path_backup"
# Export and assign separately in order that a failing $(..) will fail
# the script.
-1
pkgs/build-support/cc-wrapper/default.nix
···
cc = optionalString (!nativeTools) cc;
wrapperName = "CC_WRAPPER";
inherit suffixSalt coreutils_bin bintools;
-
bintools_targetPrefix = bintools.targetPrefix;
inherit libc_bin libc_dev libc_lib;
inherit darwinPlatformForCC;
default_hardening_flags_str = builtins.toString defaultHardeningFlags;
-1
pkgs/development/compilers/gcc/common/configure-flags.nix
···
"--with-as=${
if targetPackages.stdenv.cc.bintools.isLLVM then binutils else targetPackages.stdenv.cc.bintools
}/bin/${targetPlatform.config}-as"
-
"--with-ld=${targetPackages.stdenv.cc.bintools}/bin/${targetPlatform.config}-ld"
]
++ (
if withoutTargetLibc then