Make sure that unused symbols are dropped when using GCC
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
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 @@
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 @@
-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 @@
add_link_options(-mfloat-abi=${FLOAT})
endif()
+add_link_options(LINKER:--nmagic,--gc-sections)
+
# Compilation warnings
add_compile_options(
-Wall