Whamcloud - gitweb
LU-11368 build: link the shared libraries properly 46/33146/2
authorLi Dongyang <dongyangli@ddn.com>
Wed, 12 Sep 2018 12:13:02 +0000 (22:13 +1000)
committerOleg Drokin <green@whamcloud.com>
Fri, 5 Oct 2018 22:28:48 +0000 (22:28 +0000)
Make sure the -l options come after the objects.
Otherwise on distros(e.g. ubuntu18) use --as-needed
by default, we won't actully link against those libs.

Test-Parameters: trivial
Signed-off-by: Li Dongyang <dongyangli@ddn.com>
Change-Id: If828fc409a54e48e0818f8a11087c266d46652c1
Reviewed-on: https://review.whamcloud.com/33146
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: James Simmons <uja.ornl@yahoo.com>
Reviewed-by: Nathaniel Clark <nclark@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
config/lustre-build-zfs.m4
lustre/utils/Makefile.am

index 5120ce0..7ea8071 100644 (file)
@@ -336,9 +336,11 @@ AC_DEFUN([LB_ZFS_USER], [
        AC_MSG_RESULT([$zfsinc])
 
        ZFS_LIBZFS_INCLUDE=${zfsinc}
        AC_MSG_RESULT([$zfsinc])
 
        ZFS_LIBZFS_INCLUDE=${zfsinc}
-       ZFS_LIBZFS_LDFLAGS="-lzfs -lnvpair ${zfslib}"
+       ZFS_LIBZFS_LDFLAGS=${zfslib}
+       ZFS_LIBZFS_LIBS="-lzfs -lnvpair"
        AC_SUBST(ZFS_LIBZFS_INCLUDE)
        AC_SUBST(ZFS_LIBZFS_LDFLAGS)
        AC_SUBST(ZFS_LIBZFS_INCLUDE)
        AC_SUBST(ZFS_LIBZFS_LDFLAGS)
+       AC_SUBST(ZFS_LIBZFS_LIBS)
 ])
 
 AC_DEFUN([LB_CONFIG_ZFS], [
 ])
 
 AC_DEFUN([LB_CONFIG_ZFS], [
index 9d68b2f..5fd9d94 100644 (file)
@@ -138,7 +138,8 @@ if UTILS
 
 PLUGIN_LIB =
 if PLUGINS
 
 PLUGIN_LIB =
 if PLUGINS
-MNTMODLDFLAGS := -rdynamic -ldl
+MNTMODLDFLAGS := -rdynamic
+MNTMODLIBS := -ldl
 MNTMODCFLAGS := -DPLUGIN_DIR=\"${pkglibdir}\"
 endif # PLUGINS
 
 MNTMODCFLAGS := -DPLUGIN_DIR=\"${pkglibdir}\"
 endif # PLUGINS
 
@@ -153,9 +154,11 @@ lib_LTLIBRARIES += libmount_utils_zfs.la
 libmount_utils_zfs.la : libmount_utils_zfs.a
        $(CC) $(LDFLAGS) $(MNTMODLDFLAGS) -shared -export-dynamic -pthread \
                         $(ZFS_LIBZFS_LDFLAGS) -o mount_osd_zfs.so \
 libmount_utils_zfs.la : libmount_utils_zfs.a
        $(CC) $(LDFLAGS) $(MNTMODLDFLAGS) -shared -export-dynamic -pthread \
                         $(ZFS_LIBZFS_LDFLAGS) -o mount_osd_zfs.so \
-                        `$(AR) -t libmount_utils_zfs.a`
+                        `$(AR) -t libmount_utils_zfs.a` \
+                        $(MNTMODLIBS) $(ZFS_LIBZFS_LIBS)
 else
 MNTMODLDFLAGS := $(ZFS_LIBZFS_LDFLAGS)
 else
 MNTMODLDFLAGS := $(ZFS_LIBZFS_LDFLAGS)
+MNTMODLIBS := $(ZFS_LIBZFS_LIBS)
 PLUGIN_LIB += libmount_utils_zfs.a
 endif # PLUGINS
 endif # ZFS_ENABLED
 PLUGIN_LIB += libmount_utils_zfs.a
 endif # PLUGINS
 endif # ZFS_ENABLED
@@ -170,8 +173,9 @@ if PLUGINS
 lib_LTLIBRARIES += libmount_utils_ldiskfs.la
 libmount_utils_ldiskfs.la : libmount_utils_ldiskfs.a
        $(CC) $(LDFLAGS) $(MNTMODLDFLAGS) -shared -export-dynamic \
 lib_LTLIBRARIES += libmount_utils_ldiskfs.la
 libmount_utils_ldiskfs.la : libmount_utils_ldiskfs.a
        $(CC) $(LDFLAGS) $(MNTMODLDFLAGS) -shared -export-dynamic \
-                        $(SELINUX) -o mount_osd_ldiskfs.so \
-                        `$(AR) -t libmount_utils_ldiskfs.a`
+                        -o mount_osd_ldiskfs.so \
+                        `$(AR) -t libmount_utils_ldiskfs.a` \
+                        $(MNTMODLIBS) $(SELINUX)
 else
 PLUGIN_LIB += libmount_utils_ldiskfs.a
 endif # PLUGINS
 else
 PLUGIN_LIB += libmount_utils_ldiskfs.a
 endif # PLUGINS
@@ -181,7 +185,7 @@ mount_lustre_SOURCES = mount_lustre.c mount_utils.c mount_utils.h $(GSSSRC)
 mount_lustre_CPPFLAGS := ${MNTMODCFLAGS}
 mount_lustre_LDFLAGS  := ${MNTMODLDFLAGS}
 mount_lustre_LDADD    := $(SELINUX) $(LDLIBMOUNT) $(PLUGIN_LIB) $(GSSLIB) \
 mount_lustre_CPPFLAGS := ${MNTMODCFLAGS}
 mount_lustre_LDFLAGS  := ${MNTMODLDFLAGS}
 mount_lustre_LDADD    := $(SELINUX) $(LDLIBMOUNT) $(PLUGIN_LIB) $(GSSLIB) \
-                        $(top_builddir)/libcfs/libcfs/libcfs.la
+                        $(top_builddir)/libcfs/libcfs/libcfs.la $(MNTMODLIBS)
 
 mkfs_lustre_SOURCES = mkfs_lustre.c mount_utils.c mount_utils.h $(GSSSRC)
 mkfs_lustre_CPPFLAGS := -UTUNEFS ${MNTMODCFLAGS}
 
 mkfs_lustre_SOURCES = mkfs_lustre.c mount_utils.c mount_utils.h $(GSSSRC)
 mkfs_lustre_CPPFLAGS := -UTUNEFS ${MNTMODCFLAGS}