From <kaleb@redhat.com>: kaleb@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@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@redhat.com>