aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Yao <[email protected]>2013-09-26 13:42:41 -0400
committerBrian Behlendorf <[email protected]>2013-10-10 16:56:51 -0700
commit31fc19399e597e3391f19f1392ab120f1de0d5f2 (patch)
treed2a559a1071ac6f65d5f5b321827472c470d5036
parent1db7b9be75a225cedb3b7a60028ca5695e5b8346 (diff)
Generate libraries with correct DT_NEEDED entries
Libraries that depend on other libraries should list them in ELF's DT_NEEDED field so that programs linking to them do not need to specify those libraries unless they depend on them as well. This is not the case in the current code and the consequence is that anything that needs a library must know its dependencies. This is fragile and caused GRUB2's configure script to break when a dependency was added on libblkid in libzfs. This resolves that problem by using LIBADD/LDADD to specify libraries in Makefile.am instead of LDFLAGS. This ensures that proper DT_NEEDED entries are generated and prevents GRUB2's configure script from breaking in the presence of a libblkid dependency. This also removes unneeded dependencies from various files. Signed-off-by: Richard Yao <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]> Issue #1751
-rw-r--r--cmd/mount_zfs/Makefile.am3
-rw-r--r--cmd/zdb/Makefile.am2
-rw-r--r--cmd/zfs/Makefile.am3
-rw-r--r--cmd/zhack/Makefile.am2
-rw-r--r--cmd/zinject/Makefile.am2
-rw-r--r--cmd/zpool/Makefile.am2
-rw-r--r--cmd/zstreamdump/Makefile.am2
-rw-r--r--cmd/ztest/Makefile.am2
-rw-r--r--lib/libefi/Makefile.am2
-rw-r--r--lib/libspl/Makefile.am2
-rw-r--r--lib/libzfs/Makefile.am3
-rw-r--r--lib/libzfs_core/Makefile.am2
-rw-r--r--lib/libzpool/Makefile.am3
13 files changed, 15 insertions, 15 deletions
diff --git a/cmd/mount_zfs/Makefile.am b/cmd/mount_zfs/Makefile.am
index 7abcc30c1..74524f031 100644
--- a/cmd/mount_zfs/Makefile.am
+++ b/cmd/mount_zfs/Makefile.am
@@ -20,5 +20,4 @@ mount_zfs_LDADD = \
$(top_builddir)/lib/libzpool/libzpool.la \
$(top_builddir)/lib/libzfs/libzfs.la
-mount_zfs_LDFLAGS = \
- -pthread -lm $(ZLIB) -lrt -ldl $(LIBUUID) $(LIBBLKID) $(LIBSELINUX)
+mount_zfs_LDADD += $(LIBSELINUX)
diff --git a/cmd/zdb/Makefile.am b/cmd/zdb/Makefile.am
index f82f1a3b5..49dbf50bc 100644
--- a/cmd/zdb/Makefile.am
+++ b/cmd/zdb/Makefile.am
@@ -16,4 +16,4 @@ zdb_LDADD = \
$(top_builddir)/lib/libzpool/libzpool.la \
$(top_builddir)/lib/libzfs/libzfs.la
-zdb_LDFLAGS = -pthread -lm $(ZLIB) -lrt -ldl $(LIBUUID) $(LIBBLKID)
+zdb_LDADD += $(ZLIB)
diff --git a/cmd/zfs/Makefile.am b/cmd/zfs/Makefile.am
index c1499a2a8..08580c92d 100644
--- a/cmd/zfs/Makefile.am
+++ b/cmd/zfs/Makefile.am
@@ -19,4 +19,5 @@ zfs_LDADD = \
$(top_builddir)/lib/libzfs/libzfs.la \
$(top_builddir)/lib/libzfs_core/libzfs_core.la
-zfs_LDFLAGS = -pthread -lm $(ZLIB) -lrt -ldl $(LIBUUID) $(LIBBLKID)
+zfs_LDADD += $(ZLIB)
+zfs_LDFLAGS = -pthread
diff --git a/cmd/zhack/Makefile.am b/cmd/zhack/Makefile.am
index 47da2453e..944e64257 100644
--- a/cmd/zhack/Makefile.am
+++ b/cmd/zhack/Makefile.am
@@ -15,4 +15,4 @@ zhack_LDADD = \
$(top_builddir)/lib/libzpool/libzpool.la \
$(top_builddir)/lib/libzfs/libzfs.la
-zhack_LDFLAGS = -pthread -lm $(ZLIB) -lrt -ldl $(LIBUUID) $(LIBBLKID)
+zhack_LDADD += $(ZLIB)
diff --git a/cmd/zinject/Makefile.am b/cmd/zinject/Makefile.am
index d1d32d57f..f53956911 100644
--- a/cmd/zinject/Makefile.am
+++ b/cmd/zinject/Makefile.am
@@ -16,5 +16,3 @@ zinject_LDADD = \
$(top_builddir)/lib/libuutil/libuutil.la \
$(top_builddir)/lib/libzpool/libzpool.la \
$(top_builddir)/lib/libzfs/libzfs.la
-
-zinject_LDFLAGS = -pthread -lm $(ZLIB) -lrt -ldl $(LIBUUID) $(LIBBLKID)
diff --git a/cmd/zpool/Makefile.am b/cmd/zpool/Makefile.am
index 2ce8efc5c..e7d31c60c 100644
--- a/cmd/zpool/Makefile.am
+++ b/cmd/zpool/Makefile.am
@@ -18,5 +18,3 @@ zpool_LDADD = \
$(top_builddir)/lib/libuutil/libuutil.la \
$(top_builddir)/lib/libzpool/libzpool.la \
$(top_builddir)/lib/libzfs/libzfs.la
-
-zpool_LDFLAGS = -pthread -lm $(ZLIB) -lrt -ldl $(LIBUUID) $(LIBBLKID)
diff --git a/cmd/zstreamdump/Makefile.am b/cmd/zstreamdump/Makefile.am
index 3d7ec4124..175874ffa 100644
--- a/cmd/zstreamdump/Makefile.am
+++ b/cmd/zstreamdump/Makefile.am
@@ -15,4 +15,4 @@ zstreamdump_LDADD = \
$(top_builddir)/lib/libzpool/libzpool.la \
$(top_builddir)/lib/libzfs/libzfs.la
-zstreamdump_LDFLAGS = -pthread -lm $(ZLIB) -lrt -ldl $(LIBUUID) $(LIBBLKID)
+zstreamdump_LDADD += $(ZLIB)
diff --git a/cmd/ztest/Makefile.am b/cmd/ztest/Makefile.am
index 39892013a..403b858c4 100644
--- a/cmd/ztest/Makefile.am
+++ b/cmd/ztest/Makefile.am
@@ -17,4 +17,4 @@ ztest_LDADD = \
$(top_builddir)/lib/libzpool/libzpool.la \
$(top_builddir)/lib/libzfs/libzfs.la
-ztest_LDFLAGS = -pthread -lm $(ZLIB) -lrt -ldl $(LIBUUID) $(LIBBLKID)
+ztest_LDADD += -lm -ldl
diff --git a/lib/libefi/Makefile.am b/lib/libefi/Makefile.am
index aa57dba9a..55f7b1196 100644
--- a/lib/libefi/Makefile.am
+++ b/lib/libefi/Makefile.am
@@ -10,3 +10,5 @@ noinst_LTLIBRARIES = libefi.la
libefi_la_SOURCES = \
$(top_srcdir)/lib/libefi/rdwr_efi.c
+
+libefi_la_LIBADD = $(LIBUUID) $(ZLIB)
diff --git a/lib/libspl/Makefile.am b/lib/libspl/Makefile.am
index 089056c56..dbf85c40f 100644
--- a/lib/libspl/Makefile.am
+++ b/lib/libspl/Makefile.am
@@ -30,4 +30,4 @@ libspl_la_SOURCES = \
$(top_srcdir)/lib/libspl/include/sys/list.h \
$(top_srcdir)/lib/libspl/include/sys/list_impl.h
-libspl_la_LDFLAGS = -lrt
+libspl_la_LIBADD = -lrt
diff --git a/lib/libzfs/Makefile.am b/lib/libzfs/Makefile.am
index 14abd7ab3..75f1775a2 100644
--- a/lib/libzfs/Makefile.am
+++ b/lib/libzfs/Makefile.am
@@ -27,4 +27,5 @@ libzfs_la_LIBADD = \
$(top_builddir)/lib/libnvpair/libnvpair.la \
$(top_builddir)/lib/libzpool/libzpool.la
-libzfs_la_LDFLAGS = -lm -ldl -version-info 1:1:0 $(LIBSELINUX)
+libzfs_la_LIBADD += -lm -ldl $(LIBBLKID)
+libzfs_la_LDFLAGS = -version-info 1:1:0
diff --git a/lib/libzfs_core/Makefile.am b/lib/libzfs_core/Makefile.am
index 180292de1..d8e2061ac 100644
--- a/lib/libzfs_core/Makefile.am
+++ b/lib/libzfs_core/Makefile.am
@@ -12,4 +12,4 @@ libzfs_core_la_SOURCES = \
libzfs_core_la_LIBADD = \
$(top_builddir)/lib/libnvpair/libnvpair.la
-libzfs_core_la_LDFLAGS = -pthread -version-info 1:1:0
+libzfs_core_la_LDFLAGS = -version-info 1:1:0
diff --git a/lib/libzpool/Makefile.am b/lib/libzpool/Makefile.am
index 637dc15da..32221694a 100644
--- a/lib/libzpool/Makefile.am
+++ b/lib/libzpool/Makefile.am
@@ -99,7 +99,8 @@ libzpool_la_LIBADD = \
$(top_builddir)/lib/libuutil/libuutil.la \
$(top_builddir)/lib/libnvpair/libnvpair.la
-libzpool_la_LDFLAGS = -pthread -version-info 1:1:0
+libzpool_la_LIBADD += $(ZLIB)
+libzpool_la_LDFLAGS = -version-info 1:1:0
EXTRA_DIST = \
$(top_srcdir)/module/zfs/vdev_disk.c \