summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2011-04-04 23:02:28 (GMT)
committerYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2011-04-04 23:02:28 (GMT)
commit942bd0e2a7207f295e88e6b0f07fb73b215e060e (patch)
tree2ab4224b08f5bee43a007f7477be66db9451a4ec
parent2e7f8019d2420a8131289544655d8957961f1fc7 (diff)
binutils/binutils: add blind option to force use of ld.bfd during build
gold is not capable of building glibc/eglibc, so we have to force using the BFD linker, ld.bfd. Offer a blind option that affected components can select to force use of the BFD linker during the build. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
-rw-r--r--config/binutils/binutils.in8
-rw-r--r--scripts/build/binutils/binutils.sh5
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.