summaryrefslogtreecommitdiffstats
path: root/meta/classes/linuxloader.bbclass
diff options
context:
space:
mode:
authorJonas Gorski <jonas.gorski@bisdn.de>2024-06-26 16:14:53 +0200
committerSteve Sakoman <steve@sakoman.com>2024-07-09 06:06:09 -0700
commitb5381de5ba025aa2dec957bb7cea78709afb7224 (patch)
treecaaafc5f7d905a2dd56c28e69dcd0acace959be0 /meta/classes/linuxloader.bbclass
parent979f68bad09969bf85b2b6ecb575a6d264c0dc5e (diff)
downloadpoky-b5381de5ba025aa2dec957bb7cea78709afb7224.tar.gz
linuxloader: add -armhf on arm only for TARGET_FPU 'hard'
There are two types of soft FPU options for arm, soft and softfp, and if using the latter the wrong dynamic loader will be used. E.g. go will link against ld-linux-armhf.so.3, but libc6 will only ship a ld-linux.so.3, so go programs will fail to start. Fix this by instead checking for TARGET_FPU being 'hard' and then applying the suffix. (From OE-Core rev: c7426629245db2ea8d9f3cf25b575ac31b5a83b0) Signed-off-by: Jonas Gorski <jonas.gorski@bisdn.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 07b4c7a2bd23f8645810e13439e814caaaf9cd94) Signed-off-by: Steve Sakoman <steve@sakoman.com>
Diffstat (limited to 'meta/classes/linuxloader.bbclass')
-rw-r--r--meta/classes/linuxloader.bbclass2
1 files changed, 1 insertions, 1 deletions
diff --git a/meta/classes/linuxloader.bbclass b/meta/classes/linuxloader.bbclass
index 4447c8847c..1fd10f62c7 100644
--- a/meta/classes/linuxloader.bbclass
+++ b/meta/classes/linuxloader.bbclass
@@ -49,7 +49,7 @@ def get_glibc_loader(d):
49 elif re.search("i.86", targetarch): 49 elif re.search("i.86", targetarch):
50 dynamic_loader = "${base_libdir}/ld-linux.so.2" 50 dynamic_loader = "${base_libdir}/ld-linux.so.2"
51 elif targetarch == "arm": 51 elif targetarch == "arm":
52 dynamic_loader = "${base_libdir}/ld-linux${@['-armhf', ''][d.getVar('TARGET_FPU') == 'soft']}.so.3" 52 dynamic_loader = "${base_libdir}/ld-linux${@['', '-armhf'][d.getVar('TARGET_FPU') == 'hard']}.so.3"
53 elif targetarch.startswith("aarch64"): 53 elif targetarch.startswith("aarch64"):
54 dynamic_loader = "${base_libdir}/ld-linux-aarch64${ARMPKGSFX_ENDIAN_64}.so.1" 54 dynamic_loader = "${base_libdir}/ld-linux-aarch64${ARMPKGSFX_ENDIAN_64}.so.1"
55 elif targetarch.startswith("riscv64"): 55 elif targetarch.startswith("riscv64"):