From 40cd8ce45da262317264168681ae6c04a29215a9 Mon Sep 17 00:00:00 2001 From: Etienne Carriere Date: Mon, 17 Aug 2020 11:07:17 +0200 Subject: [PATCH] libutils: embed AEABI personality routines upon CFG_UNWIND Fix a TA build issue found when CFG_UNWIND=n. This issue produces a build error trace like the below: .../toolchains/aarch32/bin/arm-linux-gnueabihf-ld.bfd: .../toolchains/aarch32/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/libgcc_eh.a(unwind-arm.o): in function `__aeabi_unwind_cpp_pr0': /tmp/dgboter/bbs/rhev-vm8--rhe6x86_64/buildbot/rhe6x86_64--arm-linux-gnueabihf/build/src/gcc/libgcc/config/arm/unwind-arm.c:494: multiple definition of `__aeabi_unwind_cpp_pr0'; .../optee_os/out/arm/export-ta_arm32/lib/libutils.a(aeabi_unwind.o): .../optee_os/lib/libutils/ext/arch/arm/aeabi_unwind.c:9: first defined here .../optee_os/out/arm/export-ta_arm32/mk/link.mk:109: recipe for target 'out/5b9e0e40-2636-11e1-ad9e-0002a5d5c51b.elf' failed I don't understand why toolchain support for __aeabi_unwind_cpp_pr0() conflicts with the libutils implementation only when CFG_UNWIND=n. Yet the current change works around the issue. Fixes: https://github.com/OP-TEE/optee_test/issues/440 Acked-by: Jens Wiklander Acked-by: Jerome Forissier Signed-off-by: Etienne Carriere --- lib/libutils/ext/arch/arm/sub.mk | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/libutils/ext/arch/arm/sub.mk b/lib/libutils/ext/arch/arm/sub.mk index f5566985de2..dc5eed674e6 100644 --- a/lib/libutils/ext/arch/arm/sub.mk +++ b/lib/libutils/ext/arch/arm/sub.mk @@ -1,4 +1,6 @@ +ifeq ($(CFG_UNWIND),y) srcs-$(CFG_ARM32_$(sm)) += aeabi_unwind.c +endif srcs-$(CFG_ARM32_$(sm)) += atomic_a32.S srcs-$(CFG_ARM64_$(sm)) += atomic_a64.S ifneq ($(sm),ldelf) # TA, core