summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2016-03-08 17:21:22 +0100
committerThomas Haller <thaller@redhat.com>2016-03-08 17:45:50 +0100
commit24d96e6f65cf29c76b462c37362190c54a4c0698 (patch)
tree649f4c4bef0e1220b9dbda79e63203e36e2904be
parentd5cc42ff6f12abd82a0b703f83cd77963bcffde4 (diff)
downloadNetworkManager-24d96e6f65cf29c76b462c37362190c54a4c0698.tar.gz
build: hide internal symbols in NetworkManager binary
We must export some symbols from NetworkManager binary so that the device plugins can function. However, many symbols are truly private and must not be exposed. Especially, our internal clone of the systemd ABI must be hidden to avoid resolution conflicts when loading any external systemd libraries.
-rw-r--r--src/Makefile.am4
-rw-r--r--src/NetworkManager.ver9
2 files changed, 12 insertions, 1 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index ff3d0ba873..65787a18f4 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -524,7 +524,9 @@ if WITH_LIBSOUP
libNetworkManager_la_LIBADD += $(LIBSOUP_LIBS)
endif
-NetworkManager_LDFLAGS = -rdynamic
+NetworkManager_LDFLAGS = \
+ -rdynamic \
+ -Wl,--version-script="$(srcdir)/NetworkManager.ver"
######################
diff --git a/src/NetworkManager.ver b/src/NetworkManager.ver
new file mode 100644
index 0000000000..b4397b9c20
--- /dev/null
+++ b/src/NetworkManager.ver
@@ -0,0 +1,9 @@
+{
+global:
+ nm*;
+ _nm*;
+ NM*;
+ _NM*;
+local:
+ *;
+};