public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] [PATCH] toolchain-funcs.eclass: tc-ld-force-bfd: unset LD before calling tc-getLD
@ 2023-11-02 15:34 Mike Gilbert
  0 siblings, 0 replies; only message in thread
From: Mike Gilbert @ 2023-11-02 15:34 UTC (permalink / raw)
  To: gentoo-dev

The previous logic would fail with common values of LD set by the user:

LD="ld.lld" -> LD="ld.lld.bfd"
LD="ld.gold" -> LD="ld.gold.bfd"
LD="mold" -> LD="mold.bfd"

It makes more sense to ignore the user's LD setting and use the default
value given by tc-getLD.

If the user doesn't have binutils installed, the "type -P" check will still
fail and LD will be unaltered.

Closes: https://github.com/gentoo/gentoo/pull/33650
Signed-off-by: Mike Gilbert <floppym@gentoo.org>
---
 eclass/toolchain-funcs.eclass | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/eclass/toolchain-funcs.eclass b/eclass/toolchain-funcs.eclass
index 4559894ca04a..8fef764ad597 100644
--- a/eclass/toolchain-funcs.eclass
+++ b/eclass/toolchain-funcs.eclass
@@ -534,10 +534,9 @@ tc-ld-force-bfd() {
 	ewarn "Forcing usage of the BFD linker"
 
 	# Set up LD to point directly to bfd if it's available.
-	local ld=$(tc-getLD "$@")
-	# We need to extract the first word in case there are flags appended
-	# to its value (like multilib), bug #545218.
-	local bfd_ld="${ld%% *}.bfd"
+	# Unset LD first so we get the default value from tc-getLD.
+	local ld=$(unset LD; tc-getLD "$@")
+	local bfd_ld="${ld}.bfd"
 	local path_ld=$(type -P "${bfd_ld}" 2>/dev/null)
 	[[ -e ${path_ld} ]] && export LD=${bfd_ld}
 
-- 
2.42.0



^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2023-11-02 15:34 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-11-02 15:34 [gentoo-dev] [PATCH] toolchain-funcs.eclass: tc-ld-force-bfd: unset LD before calling tc-getLD Mike Gilbert

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox