From 1d82db506d1cd5b20d14820d89033de2e4a14210 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Fri, 31 Jul 2015 14:11:15 -0400 Subject: build: export minimum symbols from xlators for correct resolution We've been lucky that we haven't had any symbol collisions until now. Now we have a collision between the snapview-client's svc_lookup() and libntirpc's svc_lookup() with nfs-ganesha's FSAL_GLUSTER and libgfapi. As a short term solution all the snapview-client's FOP methods were changed to static scope. See http://review.gluster.org/11805. This works in snapview-client because all the FOP methods are defined in a single source file. This solution doesn't work for other xlators with FOP methods defined in multiple source files. To address this we link with libtool's '-export-symbols $symbol-file' (a wrapper around `ld --version-script ...` --- on linux anyway) and only export the minimum required symbols from the xlator sharedlib. N.B. the libtool man page says that the symbol file should be named foo.sym, thus the rename of *.exports to *.sym. While foo.exports worked, we will follow the documentation. Signed-off-by: Kaleb S. KEITHLEY BUG: 1248669 Change-Id: I1de68b3e3be58ae690d8bfb2168bfc019983627c Reviewed-on: http://review.gluster.org/11814 Tested-by: NetBSD Build System Tested-by: Gluster Build System Reviewed-by: soumya k Reviewed-by: Niels de Vos --- xlators/performance/io-cache/src/Makefile.am | 2 +- xlators/performance/io-threads/src/Makefile.am | 2 +- xlators/performance/md-cache/src/Makefile.am | 2 +- xlators/performance/open-behind/src/Makefile.am | 2 +- xlators/performance/quick-read/src/Makefile.am | 2 +- xlators/performance/read-ahead/src/Makefile.am | 2 +- xlators/performance/readdir-ahead/src/Makefile.am | 2 +- xlators/performance/symlink-cache/src/Makefile.am | 2 +- xlators/performance/write-behind/src/Makefile.am | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) (limited to 'xlators/performance') diff --git a/xlators/performance/io-cache/src/Makefile.am b/xlators/performance/io-cache/src/Makefile.am index 2176ea75ca8..9fd312cee9a 100644 --- a/xlators/performance/io-cache/src/Makefile.am +++ b/xlators/performance/io-cache/src/Makefile.am @@ -1,7 +1,7 @@ xlator_LTLIBRARIES = io-cache.la xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/performance -io_cache_la_LDFLAGS = -module -avoid-version +io_cache_la_LDFLAGS = $(GF_XLATOR_DEFAULT_LDFLAGS) io_cache_la_SOURCES = io-cache.c page.c ioc-inode.c io_cache_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la diff --git a/xlators/performance/io-threads/src/Makefile.am b/xlators/performance/io-threads/src/Makefile.am index 36a733159d6..250c5abe5fe 100644 --- a/xlators/performance/io-threads/src/Makefile.am +++ b/xlators/performance/io-threads/src/Makefile.am @@ -1,7 +1,7 @@ xlator_LTLIBRARIES = io-threads.la xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/performance -io_threads_la_LDFLAGS = -module -avoid-version +io_threads_la_LDFLAGS = $(GF_XLATOR_DEFAULT_LDFLAGS) io_threads_la_SOURCES = io-threads.c io_threads_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la diff --git a/xlators/performance/md-cache/src/Makefile.am b/xlators/performance/md-cache/src/Makefile.am index 8260b2bb04e..ba8ce63d8ec 100644 --- a/xlators/performance/md-cache/src/Makefile.am +++ b/xlators/performance/md-cache/src/Makefile.am @@ -1,7 +1,7 @@ xlator_LTLIBRARIES = md-cache.la xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/performance -md_cache_la_LDFLAGS = -module -avoid-version +md_cache_la_LDFLAGS = $(GF_XLATOR_DEFAULT_LDFLAGS) md_cache_la_SOURCES = md-cache.c md_cache_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la diff --git a/xlators/performance/open-behind/src/Makefile.am b/xlators/performance/open-behind/src/Makefile.am index eb6dfb105f9..a73bf3e2802 100644 --- a/xlators/performance/open-behind/src/Makefile.am +++ b/xlators/performance/open-behind/src/Makefile.am @@ -1,7 +1,7 @@ xlator_LTLIBRARIES = open-behind.la xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/performance -open_behind_la_LDFLAGS = -module -avoid-version +open_behind_la_LDFLAGS = $(GF_XLATOR_DEFAULT_LDFLAGS) open_behind_la_SOURCES = open-behind.c open_behind_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la diff --git a/xlators/performance/quick-read/src/Makefile.am b/xlators/performance/quick-read/src/Makefile.am index 6344aaff8c1..4f26e43b6c3 100644 --- a/xlators/performance/quick-read/src/Makefile.am +++ b/xlators/performance/quick-read/src/Makefile.am @@ -1,7 +1,7 @@ xlator_LTLIBRARIES = quick-read.la xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/performance -quick_read_la_LDFLAGS = -module -avoid-version +quick_read_la_LDFLAGS = $(GF_XLATOR_DEFAULT_LDFLAGS) quick_read_la_SOURCES = quick-read.c quick_read_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la diff --git a/xlators/performance/read-ahead/src/Makefile.am b/xlators/performance/read-ahead/src/Makefile.am index 56823b38b67..bfef8feeab6 100644 --- a/xlators/performance/read-ahead/src/Makefile.am +++ b/xlators/performance/read-ahead/src/Makefile.am @@ -1,7 +1,7 @@ xlator_LTLIBRARIES = read-ahead.la xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/performance -read_ahead_la_LDFLAGS = -module -avoid-version +read_ahead_la_LDFLAGS = $(GF_XLATOR_DEFAULT_LDFLAGS) read_ahead_la_SOURCES = read-ahead.c page.c read_ahead_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la diff --git a/xlators/performance/readdir-ahead/src/Makefile.am b/xlators/performance/readdir-ahead/src/Makefile.am index 70525f4bf68..7423b933195 100644 --- a/xlators/performance/readdir-ahead/src/Makefile.am +++ b/xlators/performance/readdir-ahead/src/Makefile.am @@ -1,7 +1,7 @@ xlator_LTLIBRARIES = readdir-ahead.la xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/performance -readdir_ahead_la_LDFLAGS = -module -avoid-version +readdir_ahead_la_LDFLAGS = $(GF_XLATOR_DEFAULT_LDFLAGS) readdir_ahead_la_SOURCES = readdir-ahead.c readdir_ahead_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la diff --git a/xlators/performance/symlink-cache/src/Makefile.am b/xlators/performance/symlink-cache/src/Makefile.am index 4be8968b3fd..517894b9ced 100644 --- a/xlators/performance/symlink-cache/src/Makefile.am +++ b/xlators/performance/symlink-cache/src/Makefile.am @@ -1,7 +1,7 @@ xlator_LTLIBRARIES = symlink-cache.la xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/testing/performance -symlink_cache_la_LDFLAGS = -module -avoid-version +symlink_cache_la_LDFLAGS = $(GF_XLATOR_DEFAULT_LDFLAGS) symlink_cache_la_SOURCES = symlink-cache.c symlink_cache_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la diff --git a/xlators/performance/write-behind/src/Makefile.am b/xlators/performance/write-behind/src/Makefile.am index 8f2b664290c..c51c377c36c 100644 --- a/xlators/performance/write-behind/src/Makefile.am +++ b/xlators/performance/write-behind/src/Makefile.am @@ -1,7 +1,7 @@ xlator_LTLIBRARIES = write-behind.la xlatordir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator/performance -write_behind_la_LDFLAGS = -module -avoid-version +write_behind_la_LDFLAGS = $(GF_XLATOR_DEFAULT_LDFLAGS) write_behind_la_SOURCES = write-behind.c write_behind_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la -- cgit