summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/binutils
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2020-02-13 00:21:59 -0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-02-14 13:04:48 +0000
commit5ee10b10b3316a368cea73df470befd587ef1cd0 (patch)
tree4fb8db5eaa17fe9376a19086e246c95ce1f6b697 /meta/recipes-devtools/binutils
parentaec9f9bd9549938a6ed42e9879f3a2fdcc89463d (diff)
downloadopenembedded-core-contrib-5ee10b10b3316a368cea73df470befd587ef1cd0.tar.gz
binutils: Bail out if gold is used on 32/64 bit RISC-V
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>
Diffstat (limited to 'meta/recipes-devtools/binutils')
-rw-r--r--meta/recipes-devtools/binutils/binutils.inc7
1 files changed, 7 insertions, 0 deletions
diff --git a/meta/recipes-devtools/binutils/binutils.inc b/meta/recipes-devtools/binutils/binutils.inc
index 0fb6cae407..a4b9aa586d 100644
--- a/meta/recipes-devtools/binutils/binutils.inc
+++ b/meta/recipes-devtools/binutils/binutils.inc
@@ -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")
+}