From 39c22500c1e303770b3c3ff0b46d79a73c47bbf5 Mon Sep 17 00:00:00 2001 From: Jon Mason Date: Tue, 1 Jul 2025 09:27:23 -0400 Subject: [PATCH] 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 Signed-off-by: Antonin Godard Signed-off-by: Richard Purdie --- meta/recipes-core/musl/libucontext_1.3.2.bb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/meta/recipes-core/musl/libucontext_1.3.2.bb b/meta/recipes-core/musl/libucontext_1.3.2.bb index 2362cba5c8..c5b802207b 100644 --- a/meta/recipes-core/musl/libucontext_1.3.2.bb +++ b/meta/recipes-core/musl/libucontext_1.3.2.bb @@ -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}"