From d628fdb35caf810073b2bf6f57ab79b08090d1dd Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 3 Sep 2020 00:18:26 -0400 Subject: [PATCH] Minor cleanup, add comment to tupfile --- .../Board/v3/Middlewares/Third_Party/FreeRTOS/Source/tasks.c | 2 +- Firmware/Tupfile.lua | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Firmware/Board/v3/Middlewares/Third_Party/FreeRTOS/Source/tasks.c b/Firmware/Board/v3/Middlewares/Third_Party/FreeRTOS/Source/tasks.c index 32c83890..220b867b 100644 --- a/Firmware/Board/v3/Middlewares/Third_Party/FreeRTOS/Source/tasks.c +++ b/Firmware/Board/v3/Middlewares/Third_Party/FreeRTOS/Source/tasks.c @@ -369,7 +369,7 @@ typedef tskTCB TCB_t; /*lint -e956 A manual analysis and inspection has been used to determine which static variables must be declared volatile. */ -PRIVILEGED_INITIALIZED_DATA TCB_t * volatile pxCurrentTCB __attribute__((used)) = NULL; +__attribute__((used)) PRIVILEGED_INITIALIZED_DATA TCB_t * volatile pxCurrentTCB = NULL; /* Lists for ready and blocked tasks. --------------------*/ PRIVILEGED_DATA static List_t pxReadyTasksLists[ configMAX_PRIORITIES ];/*< Prioritised ready tasks. */ diff --git a/Firmware/Tupfile.lua b/Firmware/Tupfile.lua index ff0cf41e..bd59d526 100644 --- a/Firmware/Tupfile.lua +++ b/Firmware/Tupfile.lua @@ -158,6 +158,9 @@ toolchain = GCCToolchain('arm-none-eabi-', 'build', FLAGS, LDFLAGS) -- Load list of source files Makefile that was autogenerated by CubeMX vars = parse_makefile_vars(board.dir..'/Makefile') + +-- ASM sources must precede C sources due to LTO removing weak symbols which appear after strong symbols +-- in the call to the linker: https://bugs.launchpad.net/gcc-arm-embedded/+bug/1747966 all_stm_sources = (vars['ASM_SOURCES'] or '')..' '..(vars['CPP_SOURCES'] or '')..' '..(vars['C_SOURCES'] or '') for src in string.gmatch(all_stm_sources, "%S+") do stm_sources += board.dir..'/'..src