diff options
-rw-r--r-- | config/binutils/binutils.in | 8 | ||||
-rw-r--r-- | scripts/build/binutils/binutils.sh | 5 |
2 files changed, 13 insertions, 0 deletions
diff --git a/config/binutils/binutils.in b/config/binutils/binutils.in index 2a28d22..425fb04 100644 --- a/config/binutils/binutils.in +++ b/config/binutils/binutils.in @@ -80,6 +80,12 @@ config ARCH_arm config ARCH_x86 select BINUTILS_GOLD_SUPPORTS_ARCH +# Force using the BFD linker if needed +# This is the case for some C libraries (eg. glibc and +# eglibc at least) and affected components can select this +config BINUTILS_FORCE_LD_BFD + bool + choice bool prompt "Linkers to enable" @@ -95,6 +101,7 @@ config BINUTILS_LINKER_GOLD prompt "gold" depends on BINUTILS_HAS_GOLD depends on BINUTILS_GOLD_SUPPORTS_ARCH + depends on ! BINUTILS_FORCE_LD_BFD depends on EXPERIMENTAL select BINUTILS_GOLD_INSTALLED help @@ -125,6 +132,7 @@ config BINUTILS_LINKER_GOLD_LD depends on EXPERIMENTAL select BINUTILS_GOLD_INSTALLED select BINUTILS_LINKER_BOTH + select BINUTILS_LD_WRAPPER if BINUTILS_FORCE_LD_BFD help Both the historical ld and the new gold linkers will be installed, with gold being the default linker used. diff --git a/scripts/build/binutils/binutils.sh b/scripts/build/binutils/binutils.sh index 67a6196..dc8f81e 100644 --- a/scripts/build/binutils/binutils.sh +++ b/scripts/build/binutils/binutils.sh @@ -96,6 +96,11 @@ do_binutils() { chmod +x "${CT_PREFIX_DIR}/bin/${CT_TARGET}-ld" cp -a "${CT_PREFIX_DIR}/bin/${CT_TARGET}-ld" \ "${CT_PREFIX_DIR}/${CT_TARGET}/bin/ld" + + # If needed, force using ld.bfd during the toolchain build + if [ "${CT_BINUTILS_FORCE_LD_BFD}" = "y" ]; then + export CTNG_LD_IS=bfd + fi fi # Make those new tools available to the core C compilers to come. |