[Libguestfs] [PATCH nbdkit 8/9] Add -no-undefined when compiling all internal plugins, filters and tests.

Richard W.M. Jones rjones at redhat.com
Thu Mar 26 18:25:33 UTC 2020


(Except for the -undefined test added previously.)

We also add -lnbdkit as that is now required when linking using this
new method.

Note that on Linux at least libtool appears to ignore -no-undefined so
actually -lnbdkit is not really required.
---
 filters/blocksize/Makefile.am    |  5 +++-
 filters/cache/Makefile.am        |  3 ++-
 filters/cacheextents/Makefile.am |  3 ++-
 filters/cow/Makefile.am          |  3 ++-
 filters/delay/Makefile.am        |  5 +++-
 filters/error/Makefile.am        |  3 ++-
 filters/exitlast/Makefile.am     |  5 +++-
 filters/ext2/Makefile.am         |  3 ++-
 filters/extentlist/Makefile.am   |  3 ++-
 filters/fua/Makefile.am          |  5 +++-
 filters/ip/Makefile.am           |  3 ++-
 filters/limit/Makefile.am        |  3 ++-
 filters/log/Makefile.am          |  3 ++-
 filters/nocache/Makefile.am      |  5 +++-
 filters/noextents/Makefile.am    |  5 +++-
 filters/nofilter/Makefile.am     |  5 +++-
 filters/noparallel/Makefile.am   |  5 +++-
 filters/nozero/Makefile.am       |  5 +++-
 filters/offset/Makefile.am       |  3 ++-
 filters/partition/Makefile.am    |  3 ++-
 filters/rate/Makefile.am         |  3 ++-
 filters/readahead/Makefile.am    |  3 ++-
 filters/retry/Makefile.am        |  3 ++-
 filters/stats/Makefile.am        |  3 ++-
 filters/truncate/Makefile.am     |  3 ++-
 filters/xz/Makefile.am           |  3 ++-
 plugins/curl/Makefile.am         |  3 ++-
 plugins/data/Makefile.am         |  3 ++-
 plugins/eval/Makefile.am         |  3 ++-
 plugins/example1/Makefile.am     |  5 +++-
 plugins/example2/Makefile.am     |  5 +++-
 plugins/example3/Makefile.am     |  5 +++-
 plugins/ext2/Makefile.am         |  3 ++-
 plugins/file/Makefile.am         |  3 ++-
 plugins/floppy/Makefile.am       |  3 ++-
 plugins/full/Makefile.am         |  5 +++-
 plugins/guestfs/Makefile.am      |  3 ++-
 plugins/gzip/Makefile.am         |  3 ++-
 plugins/info/Makefile.am         |  3 ++-
 plugins/iso/Makefile.am          |  3 ++-
 plugins/libvirt/Makefile.am      |  3 ++-
 plugins/linuxdisk/Makefile.am    |  3 ++-
 plugins/lua/Makefile.am          |  5 +++-
 plugins/memory/Makefile.am       |  3 ++-
 plugins/nbd/Makefile.am          |  3 ++-
 plugins/null/Makefile.am         |  5 +++-
 plugins/ocaml/Makefile.am        |  4 +++
 plugins/partitioning/Makefile.am |  3 ++-
 plugins/pattern/Makefile.am      |  5 +++-
 plugins/perl/Makefile.am         |  3 ++-
 plugins/python/Makefile.am       |  3 ++-
 plugins/random/Makefile.am       |  5 +++-
 plugins/ruby/Makefile.am         |  3 ++-
 plugins/sh/Makefile.am           |  3 ++-
 plugins/split/Makefile.am        |  3 ++-
 plugins/ssh/Makefile.am          |  3 ++-
 plugins/streaming/Makefile.am    |  5 +++-
 plugins/tcl/Makefile.am          |  5 +++-
 plugins/tmpdisk/Makefile.am      |  3 ++-
 plugins/vddk/Makefile.am         |  3 ++-
 plugins/zero/Makefile.am         |  5 +++-
 tests/Makefile.am                | 45 +++++++++++++++++++++++++-------
 62 files changed, 200 insertions(+), 69 deletions(-)

diff --git a/filters/blocksize/Makefile.am b/filters/blocksize/Makefile.am
index 25d6513b..29f3b5c5 100644
--- a/filters/blocksize/Makefile.am
+++ b/filters/blocksize/Makefile.am
@@ -46,9 +46,12 @@ nbdkit_blocksize_filter_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_blocksize_filter_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_blocksize_filter_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/filters/filters.syms \
 	$(NULL)
+nbdkit_blocksize_filter_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
+	$(NULL)
 
 if HAVE_POD
 
diff --git a/filters/cache/Makefile.am b/filters/cache/Makefile.am
index 6496df07..5720da18 100644
--- a/filters/cache/Makefile.am
+++ b/filters/cache/Makefile.am
@@ -55,10 +55,11 @@ nbdkit_cache_filter_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_cache_filter_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_cache_filter_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/filters/filters.syms \
 	$(NULL)
 nbdkit_cache_filter_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(top_builddir)/common/bitmap/libbitmap.la \
 	$(top_builddir)/common/utils/libutils.la \
 	$(NULL)
diff --git a/filters/cacheextents/Makefile.am b/filters/cacheextents/Makefile.am
index bd0f47a8..12c584b2 100644
--- a/filters/cacheextents/Makefile.am
+++ b/filters/cacheextents/Makefile.am
@@ -47,10 +47,11 @@ nbdkit_cacheextents_filter_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_cacheextents_filter_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_cacheextents_filter_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/filters/filters.syms \
 	$(NULL)
 nbdkit_cacheextents_filter_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(top_builddir)/common/utils/libutils.la \
 	$(NULL)
 
diff --git a/filters/cow/Makefile.am b/filters/cow/Makefile.am
index 39532c82..ba14a9f6 100644
--- a/filters/cow/Makefile.am
+++ b/filters/cow/Makefile.am
@@ -50,10 +50,11 @@ nbdkit_cow_filter_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_cow_filter_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_cow_filter_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/filters/filters.syms \
 	$(NULL)
 nbdkit_cow_filter_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(top_builddir)/common/bitmap/libbitmap.la \
 	$(top_builddir)/common/utils/libutils.la \
 	$(NULL)
diff --git a/filters/delay/Makefile.am b/filters/delay/Makefile.am
index 1b70b11e..197b0bc1 100644
--- a/filters/delay/Makefile.am
+++ b/filters/delay/Makefile.am
@@ -45,9 +45,12 @@ nbdkit_delay_filter_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_delay_filter_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_delay_filter_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/filters/filters.syms \
 	$(NULL)
+nbdkit_delay_filter_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
+	$(NULL)
 
 if HAVE_POD
 
diff --git a/filters/error/Makefile.am b/filters/error/Makefile.am
index 3a5aecb5..b8940dcc 100644
--- a/filters/error/Makefile.am
+++ b/filters/error/Makefile.am
@@ -47,10 +47,11 @@ nbdkit_error_filter_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_error_filter_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_error_filter_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/filters/filters.syms \
 	$(NULL)
 nbdkit_error_filter_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(top_builddir)/common/utils/libutils.la \
 	$(NULL)
 
diff --git a/filters/exitlast/Makefile.am b/filters/exitlast/Makefile.am
index 690008f1..f6e4d1db 100644
--- a/filters/exitlast/Makefile.am
+++ b/filters/exitlast/Makefile.am
@@ -43,9 +43,12 @@ nbdkit_exitlast_filter_la_SOURCES = \
 nbdkit_exitlast_filter_la_CPPFLAGS = -I$(top_srcdir)/include
 nbdkit_exitlast_filter_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_exitlast_filter_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/filters/filters.syms \
 	$(NULL)
+nbdkit_exitlast_filter_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
+	$(NULL)
 
 if HAVE_POD
 
diff --git a/filters/ext2/Makefile.am b/filters/ext2/Makefile.am
index 1fb7ede5..975bd4e0 100644
--- a/filters/ext2/Makefile.am
+++ b/filters/ext2/Makefile.am
@@ -53,11 +53,12 @@ nbdkit_ext2_filter_la_CFLAGS = \
 	$(EXT2FS_CFLAGS) $(COM_ERR_CFLAGS) \
 	$(NULL)
 nbdkit_ext2_filter_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(EXT2FS_LIBS) $(COM_ERR_LIBS) \
 	$(top_builddir)/common/utils/libutils.la \
 	$(NULL)
 nbdkit_ext2_filter_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/filters/filters.syms \
 	$(NULL)
 
diff --git a/filters/extentlist/Makefile.am b/filters/extentlist/Makefile.am
index 88a9afe1..7edd8ae3 100644
--- a/filters/extentlist/Makefile.am
+++ b/filters/extentlist/Makefile.am
@@ -47,10 +47,11 @@ nbdkit_extentlist_filter_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_extentlist_filter_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_extentlist_filter_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/filters/filters.syms \
 	$(NULL)
 nbdkit_extentlist_filter_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(top_builddir)/common/utils/libutils.la \
 	$(NULL)
 
diff --git a/filters/fua/Makefile.am b/filters/fua/Makefile.am
index ef249efa..c34e1047 100644
--- a/filters/fua/Makefile.am
+++ b/filters/fua/Makefile.am
@@ -45,9 +45,12 @@ nbdkit_fua_filter_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_fua_filter_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_fua_filter_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/filters/filters.syms \
 	$(NULL)
+nbdkit_fua_filter_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
+	$(NULL)
 
 if HAVE_POD
 
diff --git a/filters/ip/Makefile.am b/filters/ip/Makefile.am
index 81842a2e..dd6ef58c 100644
--- a/filters/ip/Makefile.am
+++ b/filters/ip/Makefile.am
@@ -47,10 +47,11 @@ nbdkit_ip_filter_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_ip_filter_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_ip_filter_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/filters/filters.syms \
 	$(NULL)
 nbdkit_ip_filter_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(top_builddir)/common/utils/libutils.la \
 	$(NULL)
 
diff --git a/filters/limit/Makefile.am b/filters/limit/Makefile.am
index 14d53ec4..7068f83e 100644
--- a/filters/limit/Makefile.am
+++ b/filters/limit/Makefile.am
@@ -46,10 +46,11 @@ nbdkit_limit_filter_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_limit_filter_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_limit_filter_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/filters/filters.syms \
 	$(NULL)
 nbdkit_limit_filter_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(top_builddir)/common/utils/libutils.la \
 	$(NULL)
 
diff --git a/filters/log/Makefile.am b/filters/log/Makefile.am
index f0762cc0..c66453b9 100644
--- a/filters/log/Makefile.am
+++ b/filters/log/Makefile.am
@@ -46,10 +46,11 @@ nbdkit_log_filter_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_log_filter_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_log_filter_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/filters/filters.syms \
 	$(NULL)
 nbdkit_log_filter_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(top_builddir)/common/utils/libutils.la \
 	$(NULL)
 
diff --git a/filters/nocache/Makefile.am b/filters/nocache/Makefile.am
index 68fefdf4..c0f69e16 100644
--- a/filters/nocache/Makefile.am
+++ b/filters/nocache/Makefile.am
@@ -46,9 +46,12 @@ nbdkit_nocache_filter_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_nocache_filter_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_nocache_filter_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/filters/filters.syms \
 	$(NULL)
+nbdkit_nocache_filter_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
+	$(NULL)
 
 if HAVE_POD
 
diff --git a/filters/noextents/Makefile.am b/filters/noextents/Makefile.am
index 8e4f905d..bd8435a1 100644
--- a/filters/noextents/Makefile.am
+++ b/filters/noextents/Makefile.am
@@ -45,9 +45,12 @@ nbdkit_noextents_filter_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_noextents_filter_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_noextents_filter_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/filters/filters.syms \
 	$(NULL)
+nbdkit_noextents_filter_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
+	$(NULL)
 
 if HAVE_POD
 
diff --git a/filters/nofilter/Makefile.am b/filters/nofilter/Makefile.am
index 8fb18ffd..fe1dd344 100644
--- a/filters/nofilter/Makefile.am
+++ b/filters/nofilter/Makefile.am
@@ -46,9 +46,12 @@ nbdkit_nofilter_filter_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_nofilter_filter_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_nofilter_filter_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/filters/filters.syms \
 	$(NULL)
+nbdkit_nofilter_filter_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
+	$(NULL)
 
 if HAVE_POD
 
diff --git a/filters/noparallel/Makefile.am b/filters/noparallel/Makefile.am
index ac15c609..96855e7e 100644
--- a/filters/noparallel/Makefile.am
+++ b/filters/noparallel/Makefile.am
@@ -46,9 +46,12 @@ nbdkit_noparallel_filter_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_noparallel_filter_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_noparallel_filter_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/filters/filters.syms \
 	$(NULL)
+nbdkit_noparallel_filter_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
+	$(NULL)
 
 if HAVE_POD
 
diff --git a/filters/nozero/Makefile.am b/filters/nozero/Makefile.am
index 9b8fbeb1..f9deb561 100644
--- a/filters/nozero/Makefile.am
+++ b/filters/nozero/Makefile.am
@@ -46,9 +46,12 @@ nbdkit_nozero_filter_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_nozero_filter_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_nozero_filter_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/filters/filters.syms \
 	$(NULL)
+nbdkit_nozero_filter_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
+	$(NULL)
 
 if HAVE_POD
 
diff --git a/filters/offset/Makefile.am b/filters/offset/Makefile.am
index 70d89c98..cd6b7932 100644
--- a/filters/offset/Makefile.am
+++ b/filters/offset/Makefile.am
@@ -46,10 +46,11 @@ nbdkit_offset_filter_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_offset_filter_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_offset_filter_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/filters/filters.syms \
 	$(NULL)
 nbdkit_offset_filter_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(top_builddir)/common/utils/libutils.la \
 	$(NULL)
 
diff --git a/filters/partition/Makefile.am b/filters/partition/Makefile.am
index 0f95d429..a7612d13 100644
--- a/filters/partition/Makefile.am
+++ b/filters/partition/Makefile.am
@@ -51,10 +51,11 @@ nbdkit_partition_filter_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_partition_filter_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_partition_filter_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/filters/filters.syms \
 	$(NULL)
 nbdkit_partition_filter_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(top_builddir)/common/utils/libutils.la \
 	$(NULL)
 
diff --git a/filters/rate/Makefile.am b/filters/rate/Makefile.am
index 4e749de4..b02df48f 100644
--- a/filters/rate/Makefile.am
+++ b/filters/rate/Makefile.am
@@ -49,10 +49,11 @@ nbdkit_rate_filter_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_rate_filter_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_rate_filter_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(top_builddir)/common/utils/libutils.la \
 	$(NULL)
 nbdkit_rate_filter_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/filters/filters.syms \
 	$(NULL)
 
diff --git a/filters/readahead/Makefile.am b/filters/readahead/Makefile.am
index 96fc822c..190d034c 100644
--- a/filters/readahead/Makefile.am
+++ b/filters/readahead/Makefile.am
@@ -47,10 +47,11 @@ nbdkit_readahead_filter_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_readahead_filter_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_readahead_filter_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/filters/filters.syms \
 	$(NULL)
 nbdkit_readahead_filter_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(top_builddir)/common/utils/libutils.la \
 	$(NULL)
 
diff --git a/filters/retry/Makefile.am b/filters/retry/Makefile.am
index 86011bb9..0fab3242 100644
--- a/filters/retry/Makefile.am
+++ b/filters/retry/Makefile.am
@@ -47,10 +47,11 @@ nbdkit_retry_filter_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_retry_filter_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_retry_filter_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/filters/filters.syms \
 	$(NULL)
 nbdkit_retry_filter_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(top_builddir)/common/utils/libutils.la \
 	$(NULL)
 
diff --git a/filters/stats/Makefile.am b/filters/stats/Makefile.am
index 0c16ded6..3fdb5404 100644
--- a/filters/stats/Makefile.am
+++ b/filters/stats/Makefile.am
@@ -47,10 +47,11 @@ nbdkit_stats_filter_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_stats_filter_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_stats_filter_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/filters/filters.syms \
 	$(NULL)
 nbdkit_stats_filter_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(top_builddir)/common/utils/libutils.la \
 	$(NULL)
 
diff --git a/filters/truncate/Makefile.am b/filters/truncate/Makefile.am
index 38e2047c..de4e13ce 100644
--- a/filters/truncate/Makefile.am
+++ b/filters/truncate/Makefile.am
@@ -47,10 +47,11 @@ nbdkit_truncate_filter_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_truncate_filter_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_truncate_filter_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/filters/filters.syms \
 	$(NULL)
 nbdkit_truncate_filter_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(top_builddir)/common/utils/libutils.la \
 	$(NULL)
 
diff --git a/filters/xz/Makefile.am b/filters/xz/Makefile.am
index 3ba9765d..a48cee6b 100644
--- a/filters/xz/Makefile.am
+++ b/filters/xz/Makefile.am
@@ -55,11 +55,12 @@ nbdkit_xz_filter_la_CFLAGS = \
 	$(LIBLZMA_CFLAGS) \
 	$(NULL)
 nbdkit_xz_filter_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(LIBLZMA_LIBS) \
 	$(top_builddir)/common/utils/libutils.la \
 	$(NULL)
 nbdkit_xz_filter_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/filters/filters.syms \
 	$(NULL)
 
diff --git a/plugins/curl/Makefile.am b/plugins/curl/Makefile.am
index 6595eb95..221d72f6 100644
--- a/plugins/curl/Makefile.am
+++ b/plugins/curl/Makefile.am
@@ -50,10 +50,11 @@ nbdkit_curl_plugin_la_CFLAGS = \
 	$(CURL_CFLAGS) \
 	$(NULL)
 nbdkit_curl_plugin_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(CURL_LIBS) \
 	$(NULL)
 nbdkit_curl_plugin_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/plugins/plugins.syms \
 	$(NULL)
 
diff --git a/plugins/data/Makefile.am b/plugins/data/Makefile.am
index 45121bac..f2177ebe 100644
--- a/plugins/data/Makefile.am
+++ b/plugins/data/Makefile.am
@@ -56,10 +56,11 @@ nbdkit_data_plugin_la_CFLAGS = \
 	$(GNUTLS_CFLAGS) \
 	$(NULL)
 nbdkit_data_plugin_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/plugins/plugins.syms \
 	$(NULL)
 nbdkit_data_plugin_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(top_builddir)/common/sparse/libsparse.la \
 	$(top_builddir)/common/utils/libutils.la \
 	$(GNUTLS_LIBS) \
diff --git a/plugins/eval/Makefile.am b/plugins/eval/Makefile.am
index cfe5541c..2f62be2e 100644
--- a/plugins/eval/Makefile.am
+++ b/plugins/eval/Makefile.am
@@ -64,10 +64,11 @@ nbdkit_eval_plugin_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_eval_plugin_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_eval_plugin_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(top_builddir)/common/utils/libutils.la \
 	$(NULL)
 nbdkit_eval_plugin_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/plugins/plugins.syms \
 	$(NULL)
 
diff --git a/plugins/example1/Makefile.am b/plugins/example1/Makefile.am
index c557d3c8..b3b019c6 100644
--- a/plugins/example1/Makefile.am
+++ b/plugins/example1/Makefile.am
@@ -45,9 +45,12 @@ nbdkit_example1_plugin_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_example1_plugin_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_example1_plugin_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/plugins/plugins.syms \
 	$(NULL)
+nbdkit_example1_plugin_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
+	$(NULL)
 
 if HAVE_POD
 
diff --git a/plugins/example2/Makefile.am b/plugins/example2/Makefile.am
index ebd95377..851b5e88 100644
--- a/plugins/example2/Makefile.am
+++ b/plugins/example2/Makefile.am
@@ -45,9 +45,12 @@ nbdkit_example2_plugin_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_example2_plugin_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_example2_plugin_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/plugins/plugins.syms \
 	$(NULL)
+nbdkit_example2_plugin_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
+	$(NULL)
 
 if HAVE_POD
 
diff --git a/plugins/example3/Makefile.am b/plugins/example3/Makefile.am
index bdf6db3c..d0f776c5 100644
--- a/plugins/example3/Makefile.am
+++ b/plugins/example3/Makefile.am
@@ -45,9 +45,12 @@ nbdkit_example3_plugin_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_example3_plugin_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_example3_plugin_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/plugins/plugins.syms \
 	$(NULL)
+nbdkit_example3_plugin_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
+	$(NULL)
 
 if HAVE_POD
 
diff --git a/plugins/ext2/Makefile.am b/plugins/ext2/Makefile.am
index bb799af0..4b81e773 100644
--- a/plugins/ext2/Makefile.am
+++ b/plugins/ext2/Makefile.am
@@ -50,10 +50,11 @@ nbdkit_ext2_plugin_la_CFLAGS = \
 	$(EXT2FS_CFLAGS) $(COM_ERR_CFLAGS) \
 	$(NULL)
 nbdkit_ext2_plugin_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(EXT2FS_LIBS) $(COM_ERR_LIBS) \
 	$(NULL)
 nbdkit_ext2_plugin_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/plugins/plugins.syms \
 	$(NULL)
 
diff --git a/plugins/file/Makefile.am b/plugins/file/Makefile.am
index d0372b3c..e925e09e 100644
--- a/plugins/file/Makefile.am
+++ b/plugins/file/Makefile.am
@@ -47,10 +47,11 @@ nbdkit_file_plugin_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_file_plugin_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_file_plugin_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/plugins/plugins.syms \
 	$(NULL)
 nbdkit_file_plugin_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(top_builddir)/common/utils/libutils.la \
 	$(NULL)
 
diff --git a/plugins/floppy/Makefile.am b/plugins/floppy/Makefile.am
index 4ae12e75..72afa4ff 100644
--- a/plugins/floppy/Makefile.am
+++ b/plugins/floppy/Makefile.am
@@ -54,10 +54,11 @@ nbdkit_floppy_plugin_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_floppy_plugin_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_floppy_plugin_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/plugins/plugins.syms \
 	$(NULL)
 nbdkit_floppy_plugin_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(top_builddir)/common/regions/libregions.la \
 	$(top_builddir)/common/utils/libutils.la \
 	$(NULL)
diff --git a/plugins/full/Makefile.am b/plugins/full/Makefile.am
index b168439e..e172e686 100644
--- a/plugins/full/Makefile.am
+++ b/plugins/full/Makefile.am
@@ -45,9 +45,12 @@ nbdkit_full_plugin_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_full_plugin_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_full_plugin_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/plugins/plugins.syms \
 	$(NULL)
+nbdkit_full_plugin_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
+	$(NULL)
 
 if HAVE_POD
 
diff --git a/plugins/guestfs/Makefile.am b/plugins/guestfs/Makefile.am
index f07db5d2..d3c07b7b 100644
--- a/plugins/guestfs/Makefile.am
+++ b/plugins/guestfs/Makefile.am
@@ -51,11 +51,12 @@ nbdkit_guestfs_plugin_la_CFLAGS = \
 	$(LIBGUESTFS_CFLAGS) \
 	$(NULL)
 nbdkit_guestfs_plugin_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(LIBGUESTFS_LIBS) \
 	$(top_builddir)/common/utils/libutils.la \
 	$(NULL)
 nbdkit_guestfs_plugin_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/plugins/plugins.syms \
 	$(NULL)
 
diff --git a/plugins/gzip/Makefile.am b/plugins/gzip/Makefile.am
index 18c3d16b..1480fc6a 100644
--- a/plugins/gzip/Makefile.am
+++ b/plugins/gzip/Makefile.am
@@ -50,10 +50,11 @@ nbdkit_gzip_plugin_la_CFLAGS = \
 	$(ZLIB_CFLAGS) \
 	$(NULL)
 nbdkit_gzip_plugin_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(ZLIB_LIBS) \
 	$(NULL)
 nbdkit_gzip_plugin_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/plugins/plugins.syms \
 	$(NULL)
 
diff --git a/plugins/info/Makefile.am b/plugins/info/Makefile.am
index 442753be..141ef63a 100644
--- a/plugins/info/Makefile.am
+++ b/plugins/info/Makefile.am
@@ -46,10 +46,11 @@ nbdkit_info_plugin_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_info_plugin_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_info_plugin_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/plugins/plugins.syms \
 	$(NULL)
 nbdkit_info_plugin_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(NULL)
 
 if HAVE_POD
diff --git a/plugins/iso/Makefile.am b/plugins/iso/Makefile.am
index 69f452c6..2bfd1ea8 100644
--- a/plugins/iso/Makefile.am
+++ b/plugins/iso/Makefile.am
@@ -49,10 +49,11 @@ nbdkit_iso_plugin_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_iso_plugin_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_iso_plugin_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/plugins/plugins.syms \
 	$(NULL)
 nbdkit_iso_plugin_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(top_builddir)/common/utils/libutils.la \
 	$(NULL)
 
diff --git a/plugins/libvirt/Makefile.am b/plugins/libvirt/Makefile.am
index a7a78875..e1002b68 100644
--- a/plugins/libvirt/Makefile.am
+++ b/plugins/libvirt/Makefile.am
@@ -50,10 +50,11 @@ nbdkit_libvirt_plugin_la_CFLAGS = \
 	$(LIBVIRT_CFLAGS) \
 	$(NULL)
 nbdkit_libvirt_plugin_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(LIBVIRT_LIBS) \
 	$(NULL)
 nbdkit_libvirt_plugin_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/plugins/plugins.syms \
 	$(NULL)
 
diff --git a/plugins/linuxdisk/Makefile.am b/plugins/linuxdisk/Makefile.am
index c05a92ad..c0dbd477 100644
--- a/plugins/linuxdisk/Makefile.am
+++ b/plugins/linuxdisk/Makefile.am
@@ -55,12 +55,13 @@ nbdkit_linuxdisk_plugin_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_linuxdisk_plugin_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_linuxdisk_plugin_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(top_builddir)/common/gpt/libgpt.la \
 	$(top_builddir)/common/regions/libregions.la \
 	$(top_builddir)/common/utils/libutils.la \
 	$(NULL)
 nbdkit_linuxdisk_plugin_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/plugins/plugins.syms \
 	$(NULL)
 
diff --git a/plugins/lua/Makefile.am b/plugins/lua/Makefile.am
index 99b32beb..1004253b 100644
--- a/plugins/lua/Makefile.am
+++ b/plugins/lua/Makefile.am
@@ -53,10 +53,13 @@ nbdkit_lua_plugin_la_CFLAGS = \
 	$(LUA_CFLAGS) \
 	$(NULL)
 nbdkit_lua_plugin_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/plugins/plugins.syms \
 	$(LUA_LIBS) \
 	$(NULL)
+nbdkit_lua_plugin_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
+	$(NULL)
 
 if HAVE_POD
 
diff --git a/plugins/memory/Makefile.am b/plugins/memory/Makefile.am
index 029f3f84..7ddc9a0e 100644
--- a/plugins/memory/Makefile.am
+++ b/plugins/memory/Makefile.am
@@ -47,10 +47,11 @@ nbdkit_memory_plugin_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_memory_plugin_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_memory_plugin_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/plugins/plugins.syms \
 	$(NULL)
 nbdkit_memory_plugin_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(top_builddir)/common/sparse/libsparse.la \
 	$(top_builddir)/common/utils/libutils.la \
 	$(NULL)
diff --git a/plugins/nbd/Makefile.am b/plugins/nbd/Makefile.am
index 4f6def32..0c17e101 100644
--- a/plugins/nbd/Makefile.am
+++ b/plugins/nbd/Makefile.am
@@ -53,10 +53,11 @@ nbdkit_nbd_plugin_la_CFLAGS = \
 	$(LIBNBD_CFLAGS) \
 	$(NULL)
 nbdkit_nbd_plugin_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/plugins/plugins.syms \
 	$(NULL)
 nbdkit_nbd_plugin_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(top_builddir)/common/utils/libutils.la \
 	$(LIBNBD_LIBS) \
 	$(NULL)
diff --git a/plugins/null/Makefile.am b/plugins/null/Makefile.am
index a75fbb9f..0fb18714 100644
--- a/plugins/null/Makefile.am
+++ b/plugins/null/Makefile.am
@@ -45,9 +45,12 @@ nbdkit_null_plugin_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_null_plugin_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_null_plugin_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/plugins/plugins.syms \
 	$(NULL)
+nbdkit_null_plugin_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
+	$(NULL)
 
 if HAVE_POD
 
diff --git a/plugins/ocaml/Makefile.am b/plugins/ocaml/Makefile.am
index b9c70bd9..57a923f0 100644
--- a/plugins/ocaml/Makefile.am
+++ b/plugins/ocaml/Makefile.am
@@ -71,6 +71,10 @@ libnbdkitocaml_la_CFLAGS = \
 	-fPIC \
 	$(NULL)
 
+libnbdkitocaml_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
+	$(NULL)
+
 # The example plugin.
 noinst_SCRIPTS = nbdkit-ocamlexample-plugin.so
 nbdkit-ocamlexample-plugin.so: example.cmx libnbdkitocaml.la NBDKit.cmi NBDKit.cmx
diff --git a/plugins/partitioning/Makefile.am b/plugins/partitioning/Makefile.am
index c6c32671..eb62ce24 100644
--- a/plugins/partitioning/Makefile.am
+++ b/plugins/partitioning/Makefile.am
@@ -53,10 +53,11 @@ nbdkit_partitioning_plugin_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_partitioning_plugin_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_partitioning_plugin_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/plugins/plugins.syms \
 	$(NULL)
 nbdkit_partitioning_plugin_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(top_builddir)/common/gpt/libgpt.la \
 	$(top_builddir)/common/regions/libregions.la \
 	$(NULL)
diff --git a/plugins/pattern/Makefile.am b/plugins/pattern/Makefile.am
index 600861e3..03f29a66 100644
--- a/plugins/pattern/Makefile.am
+++ b/plugins/pattern/Makefile.am
@@ -46,9 +46,12 @@ nbdkit_pattern_plugin_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_pattern_plugin_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_pattern_plugin_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/plugins/plugins.syms \
 	$(NULL)
+nbdkit_pattern_plugin_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
+	$(NULL)
 
 if HAVE_POD
 
diff --git a/plugins/perl/Makefile.am b/plugins/perl/Makefile.am
index a9a07de0..f7a6039a 100644
--- a/plugins/perl/Makefile.am
+++ b/plugins/perl/Makefile.am
@@ -55,10 +55,11 @@ nbdkit_perl_plugin_la_CFLAGS = \
 	-I$(PERL_ARCHLIB)/CORE \
 	$(NULL)
 nbdkit_perl_plugin_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(top_builddir)/common/utils/libutils.la \
 	$(NULL)
 nbdkit_perl_plugin_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/plugins/plugins.syms \
 	$(PERL_LDOPTS) \
 	$(NULL)
diff --git a/plugins/python/Makefile.am b/plugins/python/Makefile.am
index b99c5912..7fb1c440 100644
--- a/plugins/python/Makefile.am
+++ b/plugins/python/Makefile.am
@@ -55,11 +55,12 @@ nbdkit_python_plugin_la_CFLAGS = \
 	$(PYTHON_CFLAGS) \
 	$(NULL)
 nbdkit_python_plugin_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(PYTHON_LIBS) \
 	$(top_builddir)/common/utils/libutils.la \
 	$(NULL)
 nbdkit_python_plugin_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/plugins/plugins.syms \
 	$(PYTHON_LDFLAGS) \
 	$(NULL)
diff --git a/plugins/random/Makefile.am b/plugins/random/Makefile.am
index 4371e197..49d4bda5 100644
--- a/plugins/random/Makefile.am
+++ b/plugins/random/Makefile.am
@@ -46,9 +46,12 @@ nbdkit_random_plugin_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_random_plugin_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_random_plugin_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/plugins/plugins.syms \
 	$(NULL)
+nbdkit_random_plugin_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
+	$(NULL)
 
 if HAVE_POD
 
diff --git a/plugins/ruby/Makefile.am b/plugins/ruby/Makefile.am
index bf519cbc..7b2bd9dd 100644
--- a/plugins/ruby/Makefile.am
+++ b/plugins/ruby/Makefile.am
@@ -53,10 +53,11 @@ nbdkit_ruby_plugin_la_CFLAGS = \
 	$(RUBY_CFLAGS) \
 	$(NULL)
 nbdkit_ruby_plugin_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(RUBY_LIBS) \
 	$(NULL)
 nbdkit_ruby_plugin_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/plugins/plugins.syms \
 	$(RUBY_LDFLAGS) \
 	$(NULL)
diff --git a/plugins/sh/Makefile.am b/plugins/sh/Makefile.am
index 5963e3f6..03086645 100644
--- a/plugins/sh/Makefile.am
+++ b/plugins/sh/Makefile.am
@@ -54,10 +54,11 @@ nbdkit_sh_plugin_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_sh_plugin_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_sh_plugin_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(top_builddir)/common/utils/libutils.la \
 	$(NULL)
 nbdkit_sh_plugin_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/plugins/plugins.syms \
 	$(NULL)
 
diff --git a/plugins/split/Makefile.am b/plugins/split/Makefile.am
index ceff3494..b6747383 100644
--- a/plugins/split/Makefile.am
+++ b/plugins/split/Makefile.am
@@ -46,10 +46,11 @@ nbdkit_split_plugin_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_split_plugin_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_split_plugin_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/plugins/plugins.syms \
 	$(NULL)
 nbdkit_split_plugin_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(top_builddir)/common/utils/libutils.la \
 	$(NULL)
 
diff --git a/plugins/ssh/Makefile.am b/plugins/ssh/Makefile.am
index 0b0f140d..accd50c8 100644
--- a/plugins/ssh/Makefile.am
+++ b/plugins/ssh/Makefile.am
@@ -51,10 +51,11 @@ nbdkit_ssh_plugin_la_CFLAGS = \
 	$(SSH_CFLAGS) \
 	$(NULL)
 nbdkit_ssh_plugin_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(SSH_LIBS) \
 	$(NULL)
 nbdkit_ssh_plugin_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/plugins/plugins.syms \
 	$(NULL)
 
diff --git a/plugins/streaming/Makefile.am b/plugins/streaming/Makefile.am
index eece24c3..881831ff 100644
--- a/plugins/streaming/Makefile.am
+++ b/plugins/streaming/Makefile.am
@@ -45,9 +45,12 @@ nbdkit_streaming_plugin_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_streaming_plugin_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_streaming_plugin_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/plugins/plugins.syms \
 	$(NULL)
+nbdkit_streaming_plugin_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
+	$(NULL)
 
 if HAVE_POD
 
diff --git a/plugins/tcl/Makefile.am b/plugins/tcl/Makefile.am
index 3b057245..f9221f78 100644
--- a/plugins/tcl/Makefile.am
+++ b/plugins/tcl/Makefile.am
@@ -53,10 +53,13 @@ nbdkit_tcl_plugin_la_CFLAGS = \
 	$(TCL_CFLAGS) \
 	$(NULL)
 nbdkit_tcl_plugin_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/plugins/plugins.syms \
 	$(TCL_LIBS) \
 	$(NULL)
+nbdkit_tcl_plugin_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
+	$(NULL)
 
 if HAVE_POD
 
diff --git a/plugins/tmpdisk/Makefile.am b/plugins/tmpdisk/Makefile.am
index 2e487e92..1422811e 100644
--- a/plugins/tmpdisk/Makefile.am
+++ b/plugins/tmpdisk/Makefile.am
@@ -46,10 +46,11 @@ nbdkit_tmpdisk_plugin_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_tmpdisk_plugin_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_tmpdisk_plugin_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/plugins/plugins.syms \
 	$(NULL)
 nbdkit_tmpdisk_plugin_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(top_builddir)/common/utils/libutils.la \
 	$(NULL)
 
diff --git a/plugins/vddk/Makefile.am b/plugins/vddk/Makefile.am
index b806a7d9..b9ecc8a6 100644
--- a/plugins/vddk/Makefile.am
+++ b/plugins/vddk/Makefile.am
@@ -55,11 +55,12 @@ nbdkit_vddk_plugin_la_CPPFLAGS = \
 	$(NULL)
 nbdkit_vddk_plugin_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_vddk_plugin_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(top_builddir)/common/utils/libutils.la \
 	$(DL_LIBS) \
 	$(NULL)
 nbdkit_vddk_plugin_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/plugins/plugins.syms \
 	$(NULL)
 
diff --git a/plugins/zero/Makefile.am b/plugins/zero/Makefile.am
index 38cb270c..b7555116 100644
--- a/plugins/zero/Makefile.am
+++ b/plugins/zero/Makefile.am
@@ -44,9 +44,12 @@ nbdkit_zero_plugin_la_CPPFLAGS = \
 	-I$(top_srcdir)/include
 nbdkit_zero_plugin_la_CFLAGS = $(WARNINGS_CFLAGS)
 nbdkit_zero_plugin_la_LDFLAGS = \
-	-module -avoid-version -shared \
+	-module -avoid-version -shared -no-undefined \
 	-Wl,--version-script=$(top_srcdir)/plugins/plugins.syms \
 	$(NULL)
+nbdkit_zero_plugin_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
+	$(NULL)
 
 if HAVE_POD
 
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 8622440c..34375381 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -302,7 +302,10 @@ test_flush_plugin_la_CFLAGS = $(WARNINGS_CFLAGS)
 # For use of the -rpath option, see:
 # https://lists.gnu.org/archive/html/libtool/2007-07/msg00067.html
 test_flush_plugin_la_LDFLAGS = \
-	-module -avoid-version -shared -rpath /nowhere \
+	-module -avoid-version -shared -no-undefined -rpath /nowhere \
+	$(NULL)
+test_flush_plugin_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(NULL)
 
 # check_LTLIBRARIES won't build a shared library (see automake manual).
@@ -321,7 +324,10 @@ test_shutdown_plugin_la_CFLAGS = $(WARNINGS_CFLAGS)
 # For use of the -rpath option, see:
 # https://lists.gnu.org/archive/html/libtool/2007-07/msg00067.html
 test_shutdown_plugin_la_LDFLAGS = \
-	-module -avoid-version -shared -rpath /nowhere \
+	-module -avoid-version -shared -no-undefined -rpath /nowhere \
+	$(NULL)
+test_shutdown_plugin_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(NULL)
 
 endif HAVE_PLUGINS
@@ -403,7 +409,10 @@ test_ansi_c_plugin_la_CFLAGS = $(WARNINGS_CFLAGS)
 # For use of the -rpath option, see:
 # https://lists.gnu.org/archive/html/libtool/2007-07/msg00067.html
 test_ansi_c_plugin_la_LDFLAGS = \
-	-module -avoid-version -shared -rpath /nowhere \
+	-module -avoid-version -shared -no-undefined -rpath /nowhere \
+	$(NULL)
+test_ansi_c_plugin_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(NULL)
 endif CAN_TEST_ANSI_C
 
@@ -429,7 +438,10 @@ test_cxx_plugin_la_CXXFLAGS = $(WARNINGS_CFLAGS)
 # For use of the -rpath option, see:
 # https://lists.gnu.org/archive/html/libtool/2007-07/msg00067.html
 test_cxx_plugin_la_LDFLAGS = \
-	-module -avoid-version -shared -rpath /nowhere \
+	-module -avoid-version -shared -no-undefined -rpath /nowhere \
+	$(NULL)
+test_cxx_plugin_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(NULL)
 
 test_cxx_filter_la_SOURCES = \
@@ -443,7 +455,10 @@ test_cxx_filter_la_CXXFLAGS = $(WARNINGS_CFLAGS)
 # For use of the -rpath option, see:
 # https://lists.gnu.org/archive/html/libtool/2007-07/msg00067.html
 test_cxx_filter_la_LDFLAGS = \
-	-module -avoid-version -shared -rpath /nowhere \
+	-module -avoid-version -shared -no-undefined -rpath /nowhere \
+	$(NULL)
+test_cxx_filter_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(NULL)
 endif HAVE_CXX
 
@@ -1054,7 +1069,10 @@ test_layers_plugin_la_CFLAGS = $(WARNINGS_CFLAGS)
 # For use of the -rpath option, see:
 # https://lists.gnu.org/archive/html/libtool/2007-07/msg00067.html
 test_layers_plugin_la_LDFLAGS = \
-	-module -avoid-version -shared -rpath /nowhere \
+	-module -avoid-version -shared -no-undefined -rpath /nowhere \
+	$(NULL)
+test_layers_plugin_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(NULL)
 
 test_layers_filter1_la_SOURCES = \
@@ -1066,7 +1084,10 @@ test_layers_filter1_la_CFLAGS = $(WARNINGS_CFLAGS) -Dlayer='"filter1"'
 # For use of the -rpath option, see:
 # https://lists.gnu.org/archive/html/libtool/2007-07/msg00067.html
 test_layers_filter1_la_LDFLAGS = \
-	-module -avoid-version -shared -rpath /nowhere \
+	-module -avoid-version -shared -no-undefined -rpath /nowhere \
+	$(NULL)
+test_layers_filter1_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(NULL)
 
 test_layers_filter2_la_SOURCES = \
@@ -1078,7 +1099,10 @@ test_layers_filter2_la_CFLAGS = $(WARNINGS_CFLAGS) -Dlayer='"filter2"'
 # For use of the -rpath option, see:
 # https://lists.gnu.org/archive/html/libtool/2007-07/msg00067.html
 test_layers_filter2_la_LDFLAGS = \
-	-module -avoid-version -shared -rpath /nowhere \
+	-module -avoid-version -shared -no-undefined -rpath /nowhere \
+	$(NULL)
+test_layers_filter2_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(NULL)
 
 test_layers_filter3_la_SOURCES = \
@@ -1090,7 +1114,10 @@ test_layers_filter3_la_CFLAGS = $(WARNINGS_CFLAGS) -Dlayer='"filter3"'
 # For use of the -rpath option, see:
 # https://lists.gnu.org/archive/html/libtool/2007-07/msg00067.html
 test_layers_filter3_la_LDFLAGS = \
-	-module -avoid-version -shared -rpath /nowhere \
+	-module -avoid-version -shared -no-undefined -rpath /nowhere \
+	$(NULL)
+test_layers_filter3_la_LIBADD = \
+	$(top_builddir)/lib/libnbdkit.la \
 	$(NULL)
 
 # blocksize filter test.
-- 
2.25.0




More information about the Libguestfs mailing list