Link against missed libraries to resolve symbols
When external programs perform a dlopen("..so", RTLD_LAZY|RTLD_LOCAL) on some shared objects like xlators, it can fail with dlerror set to error string "undefined symbol <some-type>". This was observed for the following shared objects: fuse.so, quota.so, quotad.so, server.so, libgfrpc.so and socket.so P.S: This was found while running a go program which fetches the list of xlator options (volume_option_t) from xlator's shared object. BUG: 1193929 Change-Id: I7b958409cf11fb67c2be32a3f85a96fb1260236b Signed-off-by: Prashanth Pai <ppai@redhat.com> Reviewed-on: https://review.gluster.org/17659 Smoke: Gluster Build System <jenkins@build.gluster.org> Reviewed-by: Amar Tumballi <amarts@redhat.com> CentOS-regression: Gluster Build System <jenkins@build.gluster.org> NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org> Reviewed-by: Jeff Darcy <jeff@pl.atyp.us>
This commit is contained in:
parent
5a67bc07db
commit
97a0869805
@ -4,7 +4,8 @@ libgfrpc_la_SOURCES = auth-unix.c rpcsvc-auth.c rpcsvc.c auth-null.c \
|
||||
rpc-transport.c xdr-rpc.c xdr-rpcclnt.c rpc-clnt.c auth-glusterfs.c \
|
||||
rpc-drc.c $(CONTRIBDIR)/sunrpc/xdr_sizeof.c rpc-clnt-ping.c
|
||||
|
||||
libgfrpc_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
|
||||
libgfrpc_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la \
|
||||
$(top_builddir)/rpc/xdr/src/libgfxdr.la
|
||||
libgfrpc_la_LDFLAGS = -version-info $(LIBGFRPC_LT_VERSION) $(GF_LDFLAGS)
|
||||
|
||||
libgfrpc_la_HEADERS = rpcsvc.h rpc-transport.h xdr-common.h xdr-rpc.h xdr-rpcclnt.h \
|
||||
|
@ -6,7 +6,9 @@ rpctransportdir = $(libdir)/glusterfs/$(PACKAGE_VERSION)/rpc-transport
|
||||
socket_la_LDFLAGS = -module -avoid-version
|
||||
|
||||
socket_la_SOURCES = socket.c name.c
|
||||
socket_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la -lssl
|
||||
socket_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la \
|
||||
$(top_builddir)/rpc/xdr/src/libgfxdr.la \
|
||||
-lssl
|
||||
|
||||
AM_CPPFLAGS = $(GF_CPPFLAGS) \
|
||||
-I$(top_srcdir)/libglusterfs/src \
|
||||
|
@ -5,10 +5,12 @@ quota_la_LDFLAGS = -module $(GF_XLATOR_DEFAULT_LDFLAGS)
|
||||
quotad_la_LDFLAGS = -module -avoid-version -export-symbols $(top_srcdir)/xlators/features/quota/src/quotad.sym
|
||||
|
||||
quota_la_SOURCES = quota.c quota-enforcer-client.c
|
||||
quota_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
|
||||
quota_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la \
|
||||
$(top_builddir)/rpc/xdr/src/libgfxdr.la
|
||||
|
||||
quotad_la_SOURCES = quotad.c quotad-helpers.c quotad-aggregator.c
|
||||
quotad_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
|
||||
quotad_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la \
|
||||
$(top_builddir)/rpc/xdr/src/libgfxdr.la
|
||||
|
||||
noinst_HEADERS = quota-mem-types.h quota.h quotad-aggregator.h \
|
||||
quotad-helpers.h quota-messages.h
|
||||
|
@ -27,7 +27,7 @@ fuse_la_SOURCES = fuse-helpers.c fuse-resolve.c fuse-bridge.c \
|
||||
$(CONTRIBDIR)/fuse-lib/misc.c $(mount_source)
|
||||
|
||||
fuse_la_LDFLAGS = -module $(GF_XLATOR_DEFAULT_LDFLAGS)
|
||||
fuse_la_LIBADD = $(GF_LDADD) @GF_FUSE_LDADD@
|
||||
fuse_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la $(GF_LDADD) @GF_FUSE_LDADD@
|
||||
|
||||
AM_CPPFLAGS = $(GF_CPPFLAGS) -I$(top_srcdir)/libglusterfs/src \
|
||||
-I$(top_srcdir)/rpc/xdr/src -I$(top_builddir)/rpc/xdr/src \
|
||||
|
@ -1562,7 +1562,7 @@ notify (xlator_t *this, int32_t event, void *data, ...)
|
||||
UNLOCK (&ctx->volfile_lock);
|
||||
if (victim_found)
|
||||
(*trav_p) = (*trav_p)->next;
|
||||
glusterfs_mgmt_pmap_signout (glusterfsd_ctx,
|
||||
glusterfs_mgmt_pmap_signout (ctx,
|
||||
victim->name);
|
||||
glusterfs_autoscale_threads (THIS->ctx, -1);
|
||||
default_notify (victim, GF_EVENT_CLEANUP, data);
|
||||
|
Loading…
x
Reference in New Issue
Block a user