瀏覽代碼

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>
Khem Raj 2 年之前
父節點
當前提交
e5f891e4e6
共有 1 個文件被更改,包括 3 次插入1 次删除
  1. 3 1
      meta/recipes-core/glibc/glibc_2.37.bb

+ 3 - 1
meta/recipes-core/glibc/glibc_2.37.bb

@@ -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"