diff --git a/.gitignore b/.gitignore index 919b1830c9..8c08337548 100644 --- a/.gitignore +++ b/.gitignore @@ -217,6 +217,7 @@ test-*.trs /po/remove-potcdate.sin /src/NetworkManager +/src/NetworkManager-all-sym /src/NetworkManager.ver /src/devices/bluetooth/tests/nm-bt-test /src/devices/tests/test-acd diff --git a/Makefile.am b/Makefile.am index 5841cbe72a..0f2f5da0f7 100644 --- a/Makefile.am +++ b/Makefile.am @@ -2406,7 +2406,26 @@ $(src_libNetworkManagerTest_la_OBJECTS): $(libnm_core_lib_h_pub_mkenums) ############################################################################### -src/NetworkManager.ver: src/libNetworkManager.la $(core_plugins) +noinst_PROGRAMS += src/NetworkManager-all-sym + +src_NetworkManager_all_sym_CPPFLAGS = $(src_cppflags) + +src_NetworkManager_all_sym_SOURCES = \ + src/main.c + +src_NetworkManager_all_sym_LDADD = \ + src/libNetworkManager.la \ + $(GLIB_LIBS) \ + $(NULL) + +src_NetworkManager_all_sym_LDFLAGS = \ + -rdynamic \ + $(SANITIZER_EXEC_LDFLAGS) \ + $(NULL) + +$(src_NetworkManager_all_sym_OBJECTS): $(libnm_core_lib_h_pub_mkenums) + +src/NetworkManager.ver: src/NetworkManager-all-sym $(core_plugins) $(AM_V_GEN) NM="$(NM)" "$(srcdir)/tools/create-exports-NetworkManager.sh" --called-from-build "$(srcdir)" CLEANFILES += src/NetworkManager.ver diff --git a/src/meson.build b/src/meson.build index b2ea2ba0a1..5fc03d8d59 100644 --- a/src/meson.build +++ b/src/meson.build @@ -267,8 +267,8 @@ symbol_map_name = 'NetworkManager.ver' # add dependencies with link_whole, only supported in meson >= 0.46. # Create an executable with full symbols that we use in place of the # library to enumerate the symbols. -network_manager_sym = executable( - 'nm-full-symbols', +network_manager_all_sym = executable( + 'NetworkManager-all-sym', 'main.c', dependencies: nm_deps, c_args: daemon_c_flags, @@ -280,7 +280,7 @@ network_manager_sym = executable( ver_script = custom_target( symbol_map_name, output: symbol_map_name, - depends: [network_manager_sym, core_plugins], + depends: [network_manager_all_sym, core_plugins], command: [create_exports_networkmanager, '--called-from-build', source_root], ) diff --git a/tools/create-exports-NetworkManager.sh b/tools/create-exports-NetworkManager.sh index 47061f9dda..f439bd3112 100755 --- a/tools/create-exports-NetworkManager.sh +++ b/tools/create-exports-NetworkManager.sh @@ -40,11 +40,7 @@ call_nm() { } get_symbols_nm () { - if [ -z "$from_meson" ]; then - base=./src/.libs/libNetworkManager.a - else - base=./src/nm-full-symbols - fi + base=./src/NetworkManager-all-sym call_nm "$base" | sed -n 's/^[tTDGRBS] //p' | _sort