glibc: Pass linker choice via compiler flags

glibc configury tries to detect ld version and assumes BFD or gold
linker but when system ld is pointing to lld or mold it might fail the
linker check, therefore pass LD variable to explicitly point at ld.bfd
we are using BFD linker only to link glibc after all.

Second problem in such a case is that some partial objects are linked
with CC -r which will fail if we do not inform the compiler to use BFD
linker thusly pass it via appending to CC variable

(From OE-Core rev: d1a9d11130b2e0ee4fac8665f0b4c63084d85a86)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit 63248d2cbd7a15aec5b864d0058fe919eb17c46c)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
This commit is contained in:
Khem Raj
2023-06-10 08:50:21 -07:00
committed by Steve Sakoman
parent 810b3457f3
commit e5f891e4e6

View File

@@ -103,10 +103,12 @@ do_configure () {
# version check and doesn't really help with anything
(cd ${S} && gnu-configize) || die "failure in running gnu-configize"
find ${S} -name "configure" | xargs touch
CPPFLAGS="" oe_runconf
CPPFLAGS="" LD="${HOST_PREFIX}ld.bfd ${TOOLCHAIN_OPTIONS}" oe_runconf
}
LDFLAGS += "-fuse-ld=bfd"
CC += "-fuse-ld=bfd"
do_compile () {
base_do_compile
echo "Adjust ldd script"