aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavide Grohmann <davide.grohmann@arm.com>2022-08-15 17:11:54 +0200
committerDavide Grohmann <davide.grohmann@arm.com>2022-08-17 16:10:43 +0200
commit244a9b8514d066a457574b73ef82cc5925148fc2 (patch)
tree188fad38a0af95faab9b6da94e795eb09ce57412
parentec72e9bc21a6b0c03b424ab882652e96c2b291b4 (diff)
downloadethos-u-core-platform-244a9b8514d066a457574b73ef82cc5925148fc2.tar.gz
Make sure that unused symbols are dropped when using GCC22.08-rc2
Add compiler and linker options to add each symbols in its own section so unused one can be dropped. Also adds missing noexcept Change-Id: I9143ae5865c4a071c6e09d14eb08ce3069b4b2db
-rw-r--r--applications/message_handler/lib/freertos_allocator.cpp8
-rw-r--r--cmake/toolchain/arm-none-eabi-gcc.cmake6
2 files changed, 9 insertions, 5 deletions
diff --git a/applications/message_handler/lib/freertos_allocator.cpp b/applications/message_handler/lib/freertos_allocator.cpp
index c7fdba6..883ada8 100644
--- a/applications/message_handler/lib/freertos_allocator.cpp
+++ b/applications/message_handler/lib/freertos_allocator.cpp
@@ -28,18 +28,18 @@ void *operator new[](size_t size) {
return pvPortMalloc(size);
}
-void operator delete(void *ptr) {
+void operator delete(void *ptr) noexcept {
vPortFree(ptr);
}
-void operator delete(void *ptr, std::size_t) {
+void operator delete(void *ptr, std::size_t) noexcept {
vPortFree(ptr);
}
-void operator delete[](void *ptr) {
+void operator delete[](void *ptr) noexcept {
vPortFree(ptr);
}
-void operator delete[](void *ptr, std::size_t) {
+void operator delete[](void *ptr, std::size_t) noexcept {
vPortFree(ptr);
}
diff --git a/cmake/toolchain/arm-none-eabi-gcc.cmake b/cmake/toolchain/arm-none-eabi-gcc.cmake
index ce54cd5..492abc5 100644
--- a/cmake/toolchain/arm-none-eabi-gcc.cmake
+++ b/cmake/toolchain/arm-none-eabi-gcc.cmake
@@ -52,7 +52,9 @@ add_compile_options(
-mcpu=${GCC_CPU}
-mthumb
"$<$<CONFIG:DEBUG>:-gdwarf-3>"
- "$<$<COMPILE_LANGUAGE:CXX>:-fno-unwind-tables;-fno-rtti;-fno-exceptions>")
+ "$<$<COMPILE_LANGUAGE:CXX>:-fno-unwind-tables;-fno-rtti;-fno-exceptions>"
+ -fdata-sections
+ -ffunction-sections)
# Compile defines
add_compile_definitions(
@@ -88,6 +90,8 @@ if (FLOAT)
add_link_options(-mfloat-abi=${FLOAT})
endif()
+add_link_options(LINKER:--nmagic,--gc-sections)
+
# Compilation warnings
add_compile_options(
-Wall