]> code.ossystems Code Review - openembedded-core.git/commitdiff
mips: Enable gnu-hash-style on glibc
authorKhem Raj <raj.khem@gmail.com>
Tue, 14 Jan 2020 16:24:39 +0000 (08:24 -0800)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sun, 19 Jan 2020 13:24:31 +0000 (13:24 +0000)
latest glibc 2.31 [1] and binutils [2] has finally added the needed support for
gnu hash-style, which brings mips into same fold as other architectures

Fix check for MIPS specific section for gnu hash information

[1] https://sourceware.org/ml/libc-alpha/2019-06/msg00456.html
[2] https://sourceware.org/ml/binutils/2019-07/msg00098.html

Signed-off-by: Khem Raj <raj.khem@gmail.com>
meta/classes/insane.bbclass
meta/conf/bitbake.conf

index 723348fc8e7fd89903b06212efc429b8b88c8ee8..60b5599b865e0104647eb85f70d7e95da6069c8d 100644 (file)
@@ -373,11 +373,10 @@ def package_qa_hash_style(path, name, d, elf, messages):
     for line in phdrs.split("\n"):
         if "SYMTAB" in line:
             has_syms = True
-        if "GNU_HASH" in line:
+        if "GNU_HASH" or "DT_MIPS_XHASH" in line:
             sane = True
-        if "[mips32]" in line or "[mips64]" in line:
+        if ("[mips32]" in line or "[mips64]" in line) and d.getVar('TCLIBC') == "musl":
             sane = True
-
     if has_syms and not sane:
         package_qa_add_message(messages, "ldflags", "No GNU_HASH in the ELF binary %s, didn't pass LDFLAGS?" % path)
 
index 62b5466b7171c39986ad11484cb04871667466e9..8c44f277516ba12ae52ccc0dcd2921c0ae3a7057 100644 (file)
@@ -586,8 +586,6 @@ export BUILD_LDFLAGS = "-L${STAGING_LIBDIR_NATIVE} \
 BUILDSDK_LDFLAGS = "-Wl,-O1"
 
 LINKER_HASH_STYLE ??= "gnu"
-# mips does not support GNU hash style therefore we override
-LINKER_HASH_STYLE_mipsarch = "sysv"
 
 TARGET_LINK_HASH_STYLE ?= "${@['-Wl,--hash-style=gnu',''][d.getVar('LINKER_HASH_STYLE') != 'gnu']}"
 
@@ -595,6 +593,8 @@ ASNEEDED ?= "-Wl,--as-needed"
 
 export LDFLAGS = "${TARGET_LDFLAGS}"
 TARGET_LDFLAGS = "-Wl,-O1 ${TARGET_LINK_HASH_STYLE} ${ASNEEDED}"
+# mips does not support GNU hash style therefore we override
+LINKER_HASH_STYLE_mipsarch_libc-musl = "sysv"
 
 # Pass parallel make options to the compile task
 EXTRA_OEMAKE_prepend_task-compile = "${PARALLEL_MAKE} "