libucontext: use hard/soft float

When building for qemuarm-secureboot in meta-arn with musl and clang,
the following compile error is seen:
- | ../sources/libucontext-1.3.2/arch/arm/swapcontext.S:23:11: error: unknown token in expression
- |  ldr r4, =#0x56465001
- |           ^

This is happening because 1.3 added ifdefs for assembly code for both
hard and soft float, and bcause neither is being defined, it is taking
this path with the issue.

Since we can tell if soft or hard float is being used via the TARGET_FPU
variable, use that and set the relevant makefile flag.

(From OE-Core rev: 61c54f169db74b818f587b3147c9abb611f64e0d)

Signed-off-by: Jon Mason <jon.mason@arm.com>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Jon Mason authored and Richard Purdie committed 2025-07-03 10:40:17 +01:00
1 parent 35c7f98770
commit 39c22500c1
1 file changed
+6
@@ -48,3 +48,9 @@ def map_kernel_arch(a, d):
EXTRA_OEMESON = "-Dcpu=${@map_kernel_arch(d.getVar('TARGET_ARCH'), d)}"
inherit meson
ARM_TARGET_CPPFLAGS = ""
ARM_TARGET_CPPFLAGS:append:arm = "${@bb.utils.contains('TARGET_FPU', 'hard', ' -DFORCE_HARD_FLOAT', '', d)}"
ARM_TARGET_CPPFLAGS:append:arm = "${@bb.utils.contains('TARGET_FPU', 'soft', ' -DFORCE_SOFT_FLOAT', '', d)}"
TARGET_CPPFLAGS .= "${ARM_TARGET_CPPFLAGS}"