From e2fa65d1acd4d27c5506602a4ad90318f04966d4 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Thu, 13 Feb 2020 00:21:59 -0800 Subject: 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 (From OE-Core rev: 5ee10b10b3316a368cea73df470befd587ef1cd0) Signed-off-by: Khem Raj Signed-off-by: Richard Purdie --- meta/recipes-devtools/binutils/binutils.inc | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'meta/recipes-devtools') 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") +} -- cgit v1.2.3-54-g00ecf