build: run garbage collection while linking plugins 85/29785/2
authorDamjan Marion <damarion@cisco.com>
Thu, 5 Nov 2020 16:55:53 +0000 (17:55 +0100)
committerFlorin Coras <florin.coras@gmail.com>
Thu, 5 Nov 2020 20:49:03 +0000 (20:49 +0000)
Ask linker to remove symbols which are not referenced or exported.

Type: improvement
Change-Id: Iec01fda7ec5b14bab8f36d25c2652bd6fe619961
Signed-off-by: Damjan Marion <damarion@cisco.com>
src/cmake/plugin.cmake

index 516588c..2aae895 100644 (file)
@@ -46,6 +46,9 @@ macro(add_vpp_plugin name)
   add_library(${plugin_name} SHARED ${PLUGIN_SOURCES} ${api_includes})
   set_target_properties(${plugin_name} PROPERTIES NO_SONAME 1)
   target_compile_options(${plugin_name} PRIVATE "-fvisibility=hidden")
+  target_compile_options (${plugin_name} PRIVATE "-ffunction-sections")
+  target_compile_options (${plugin_name} PRIVATE "-fdata-sections")
+  target_link_libraries (${plugin_name} "-Wl,--gc-sections")
   set(deps "")
   if(PLUGIN_API_FILES)
     list(APPEND deps ${plugin_name}_api_headers)