From c739fca5ed4faa56ac1bec9062882df5371d4bd1 Mon Sep 17 00:00:00 2001 From: Denys Dmytriyenko Date: Tue, 19 Aug 2014 01:08:40 +0000 Subject: [PATCH] am33x-cm3: pass float ABI flag to fix gcc-4.9.1 issue with stubs Since we are re-using the Linux cross-compiler to compile Cortex-M3 firmware code and not a dedicated bare-metal compiler, we have to match the float ABI for the compiler to find the correct gnu/stubs.h files. In other words, if we built a hardfp compiler, it doesn't have the corresponding gnu/stubs-soft.h header and fails when building anything non-hardfp. Even though float ABI flag doesn't make any sense for Cortex-M3 build. The error looks like this: | CC src/sys_exec/trace.o | CC src/sys_exec/sys_init.o | In file included from /OE/sysroots/am335x-evm/usr/include/features.h:402:0, | from /OE/sysroots/am335x-evm/usr/include/stdint.h:25, | from /OE/sysroots/x86_64-linux/usr/lib/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/4.9.1/include/stdint.h:9, | from src/sys_exec/rsc_table.h:13, | from src/sys_exec/sys_init.c:19: | /OE/sysroots/am335x-evm/usr/include/gnu/stubs.h:7:29: fatal error: gnu/stubs-soft.h: No such file or directory | # include | ^ | compilation terminated. | Makefile:51: recipe for target 'src/sys_exec/sys_init.o' failed | make: *** [src/sys_exec/sys_init.o] Error 1 Signed-off-by: Denys Dmytriyenko --- recipes-bsp/am33x-cm3/am33x-cm3_git.bb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/recipes-bsp/am33x-cm3/am33x-cm3_git.bb b/recipes-bsp/am33x-cm3/am33x-cm3_git.bb index 51ec9bdd..7731992c 100644 --- a/recipes-bsp/am33x-cm3/am33x-cm3_git.bb +++ b/recipes-bsp/am33x-cm3/am33x-cm3_git.bb @@ -14,8 +14,10 @@ SRC_URI = "git://git.ti.com/ti-cm3-pm-firmware/amx3-cm3.git;protocol=git;branch= S = "${WORKDIR}/git" +FLOATABI = "${@base_contains("TUNE_FEATURES", "vfp", base_contains("TUNE_FEATURES", "callconvention-hard", " -mfloat-abi=hard", " -mfloat-abi=softfp", d), "" ,d)}" + do_compile() { - make CROSS_COMPILE="${TARGET_PREFIX}" + make CROSS_COMPILE="${TARGET_PREFIX}" CC="${TARGET_PREFIX}gcc ${FLOATABI}" } do_install() {