]> code.ossystems Code Review - openembedded-core.git/commitdiff
binutils: Bail out if gold is used on 32/64 bit RISC-V
authorKhem Raj <raj.khem@gmail.com>
Thu, 13 Feb 2020 08:21:59 +0000 (00:21 -0800)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 14 Feb 2020 13:04:48 +0000 (13:04 +0000)
gold is not supporting risc-v yet and, this will cause subltle errors
during build e.g. autoconf not finding certain features like visibility
and it could take a while to unwind the problem. Its better to error out
early

Remove dwp and ld.gold for rv32 as well

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-devtools/binutils/binutils.inc

index 0fb6cae407b5abe116304b60560e7c59ca07fbeb..a4b9aa586dbe50e6539f027df488b2c67cd0f83a 100644 (file)
@@ -40,6 +40,7 @@ FILES_${PN}-dev = " \
 
 LDGOLD_ALTS ?= "ld.gold dwp"
 LDGOLD_ALTS_riscv64 = ""
+LDGOLD_ALTS_riscv32 = ""
 
 USE_ALTERNATIVES_FOR = " \
        addr2line \
@@ -83,6 +84,7 @@ LDGOLD_class-native = ""
 LDGOLD_class-crosssdk = ""
 LDGOLD ?= "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', '--enable-gold=default --enable-threads', '--enable-gold --enable-ld=default --enable-threads', d)}"
 
+
 # This is necessary due to a bug in the binutils Makefiles
 # EXTRA_OEMAKE = "configure-build-libiberty all"
 
@@ -163,3 +165,8 @@ inherit update-alternatives
 ALTERNATIVE_PRIORITY = "100"
 
 ALTERNATIVE_${PN}_class-target = "${USE_ALTERNATIVES_FOR}"
+
+python () {
+    if bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', True, False, d) and bb.utils.contains_any('TARGET_ARCH', 'riscv32 riscv64', True, False, d):
+        bb.fatal("Gold linker does not _yet_ support RISC-V architecture please remove ld-is-gold from DISTRO_FEATURES")
+}