From <kaleb(a)redhat.com>:
kaleb(a)redhat.com has uploaded this change for review. (
https://review.gerrithub.io/428095
Change subject: RFC: [do not merge] (lib)ganesha_nfsd as a DSO
......................................................................
RFC: [do not merge] (lib)ganesha_nfsd as a DSO
Build ganesha as a DSO, i.e. libganesha_nfsd.so.
The ganesha.nfsd daemon consists of just nfs_main::main() and is
linked with the DSO.
Then all the FSALs (except FSAL_PSEUDO and FSAL_MDCACHE*) are linked
with libganesha_nfsd.so, (and ${SYSTEM_LIBS} and ${LTTNG_LIBS}) for
resolution of various calls including calls back into ganesha.nfsd.
This will be required if, e.g., Fedora, decides to require default
linking with '-z defs'. They tried to do it for F29 but retreated
when they found that too many applications broke. In the end this may
all be just "truth and beauty."
*FSAL_PSEUDO and FSAL_MDCACHE are special; they are included in the
DSO so do not need to be (and can't be) linked with the DSO.
There might be more cmake-ish ways to create the various libs, e.g.
as OBJECTs instead of STATICs but this seems to require substantially
more changes everywhere. There might also be a better way to link with
libganesha_nfsd.so but I don't know cmake well enough to determine what
that might be.
A couple other things that could be done are
1) link libganesha_nfsd.so with a .sym file to explicitly control which
symbols are visible to the FSALs.
2) don't link ganesha.nfsd with -bdynamic as it's no longer needed
Change-Id: I6ddb691845e45094b7c636f3d5530a595c13acb2
Signed-off-by: Kaleb S. KEITHLEY <kkeithle(a)redhat.com>
---
M src/CMakeLists.txt
M src/FSAL/CMakeLists.txt
M src/FSAL/FSAL_CEPH/CMakeLists.txt
M src/FSAL/FSAL_GLUSTER/CMakeLists.txt
M src/FSAL/FSAL_GPFS/CMakeLists.txt
M src/FSAL/FSAL_MEM/CMakeLists.txt
M src/FSAL/FSAL_PROXY/CMakeLists.txt
M src/FSAL/FSAL_PSEUDO/CMakeLists.txt
M src/FSAL/FSAL_RGW/CMakeLists.txt
M src/FSAL/FSAL_VFS/os/CMakeLists.txt
M src/FSAL/FSAL_VFS/panfs/CMakeLists.txt
M src/FSAL/FSAL_VFS/vfs/CMakeLists.txt
M src/FSAL/FSAL_VFS/xfs/CMakeLists.txt
M src/FSAL/Stackable_FSALs/CMakeLists.txt
M src/FSAL/Stackable_FSALs/FSAL_MDCACHE/CMakeLists.txt
M src/FSAL/Stackable_FSALs/FSAL_NULL/CMakeLists.txt
M src/MainNFSD/CMakeLists.txt
M src/Protocols/9P/CMakeLists.txt
M src/Protocols/NFS/CMakeLists.txt
M src/Protocols/NLM/CMakeLists.txt
M src/Protocols/RQUOTA/CMakeLists.txt
M src/Protocols/XDR/CMakeLists.txt
M src/RPCAL/CMakeLists.txt
M src/SAL/CMakeLists.txt
M src/avl/CMakeLists.txt
M src/cidr/CMakeLists.txt
M src/config_parsing/CMakeLists.txt
M src/dbus/CMakeLists.txt
M src/gtest/CMakeLists.txt
M src/hashtable/CMakeLists.txt
M src/idmapper/CMakeLists.txt
M src/log/CMakeLists.txt
M src/nfs-ganesha.spec-in.cmake
M src/os/CMakeLists.txt
M src/support/CMakeLists.txt
M src/tracing/CMakeLists.txt
36 files changed, 108 insertions(+), 84 deletions(-)
git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/95/428095/1
--
To view, visit
https://review.gerrithub.io/428095
To unsubscribe, or for help writing mail filters, visit
https://review.gerrithub.io/settings
Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-MessageType: newchange
Gerrit-Change-Id: I6ddb691845e45094b7c636f3d5530a595c13acb2
Gerrit-Change-Number: 428095
Gerrit-PatchSet: 1
Gerrit-Owner: Anonymous Coward <kaleb(a)redhat.com>