From bf09a32006570e16c28fc3002f770b6e41a2788a Mon Sep 17 00:00:00 2001 From: Alasdair Kergon Date: Mon, 14 Nov 2011 21:30:35 +0000 Subject: [PATCH] Make dmsetup.static and lvm.static build when dmeventd is disabled. udev may also need to be disabled if you didn't build it statically too. dmeventd.static could be fixed with some more work but I don't really see the point: without dlopen() it's useless, and if you have dlopen(), why not support normal shared libraries too? --- WHATS_NEW | 1 + configure | 6 +++++- configure.in | 5 ++++- daemons/dmeventd/Makefile.in | 4 ++-- make.tmpl.in | 1 + tools/Makefile.in | 2 +- 6 files changed, 14 insertions(+), 5 deletions(-) diff --git a/WHATS_NEW b/WHATS_NEW index 70a07d8b4..1b1181d38 100644 --- a/WHATS_NEW +++ b/WHATS_NEW @@ -1,5 +1,6 @@ Version 2.02.89 - ================================== + Fix --enable-static_link unless using --enable-dmeventd / --enable-udev_sync. Move gentoo MAKEDEV to /sbin in lvm2create_initrd. Add filter to avoid scan of device if it is part of active multipath. Add missing default $LVM_VG_NAME usage for snapshots. diff --git a/configure b/configure index 4a05ccb96..0c7572cdf 100755 --- a/configure +++ b/configure @@ -643,6 +643,7 @@ INTL HAVE_REALTIME HAVE_LIBDL FSADM +ELDFLAGS DM_LIB_PATCHLEVEL DM_LIB_VERSION DM_IOCTLS @@ -2807,10 +2808,11 @@ case "$host_os" in CFLAGS="$CFLAGS" COPTIMISE_FLAG="-O2" CLDFLAGS="$CLDFLAGS -Wl,--version-script,.export.sym" + ELDFLAGS="-Wl,--export-dynamic" + # FIXME Generate list and use --dynamic-list=.dlopen.sym CLDWHOLEARCHIVE="-Wl,-whole-archive" CLDNOWHOLEARCHIVE="-Wl,-no-whole-archive" LDDEPS="$LDDEPS .export.sym" - LDFLAGS="$LDFLAGS -Wl,--export-dynamic" LIB_SUFFIX=so DEVMAPPER=yes LVMETAD=no @@ -2824,6 +2826,7 @@ case "$host_os" in CFLAGS="$CFLAGS -no-cpp-precomp -fno-common" COPTIMISE_FLAG="-O2" CLDFLAGS="$CLDFLAGS" + ELDFLAGS= CLDWHOLEARCHIVE="-all_load" CLDNOWHOLEARCHIVE= LIB_SUFFIX=dylib @@ -10209,6 +10212,7 @@ LVM_LIBAPI=`echo "$VER" | $AWK -F '[()]' '{print $2}'` + ################################################################################ diff --git a/configure.in b/configure.in index 5275b9506..e06390a74 100644 --- a/configure.in +++ b/configure.in @@ -31,10 +31,11 @@ case "$host_os" in CFLAGS="$CFLAGS" COPTIMISE_FLAG="-O2" CLDFLAGS="$CLDFLAGS -Wl,--version-script,.export.sym" + ELDFLAGS="-Wl,--export-dynamic" + # FIXME Generate list and use --dynamic-list=.dlopen.sym CLDWHOLEARCHIVE="-Wl,-whole-archive" CLDNOWHOLEARCHIVE="-Wl,-no-whole-archive" LDDEPS="$LDDEPS .export.sym" - LDFLAGS="$LDFLAGS -Wl,--export-dynamic" LIB_SUFFIX=so DEVMAPPER=yes LVMETAD=no @@ -48,6 +49,7 @@ case "$host_os" in CFLAGS="$CFLAGS -no-cpp-precomp -fno-common" COPTIMISE_FLAG="-O2" CLDFLAGS="$CLDFLAGS" + ELDFLAGS= CLDWHOLEARCHIVE="-all_load" CLDNOWHOLEARCHIVE= LIB_SUFFIX=dylib @@ -1342,6 +1344,7 @@ AC_SUBST(DM_DEVICE_UID) AC_SUBST(DM_IOCTLS) AC_SUBST(DM_LIB_VERSION) AC_SUBST(DM_LIB_PATCHLEVEL) +AC_SUBST(ELDFLAGS) AC_SUBST(FSADM) AC_SUBST(HAVE_LIBDL) AC_SUBST(HAVE_REALTIME) diff --git a/daemons/dmeventd/Makefile.in b/daemons/dmeventd/Makefile.in index f3fac065a..1302a440b 100644 --- a/daemons/dmeventd/Makefile.in +++ b/daemons/dmeventd/Makefile.in @@ -60,11 +60,11 @@ LIBS += -ldevmapper LVMLIBS += -ldevmapper-event $(PTHREAD_LIBS) dmeventd: $(LIB_SHARED) dmeventd.o - $(CC) $(CFLAGS) $(LDFLAGS) -L. -o $@ dmeventd.o \ + $(CC) $(CFLAGS) $(LDFLAGS) $(ELDFLAGS) -L. -o $@ dmeventd.o \ $(DL_LIBS) $(LVMLIBS) $(LIBS) -rdynamic dmeventd.static: $(LIB_STATIC) dmeventd.o $(interfacebuilddir)/libdevmapper.a - $(CC) $(CFLAGS) $(LDFLAGS) -static -L. -L$(interfacebuilddir) -o $@ \ + $(CC) $(CFLAGS) $(LDFLAGS) $(ELDFLAGS) -static -L. -L$(interfacebuilddir) -o $@ \ dmeventd.o $(DL_LIBS) $(LVMLIBS) $(LIBS) $(STATIC_LIBS) ifeq ("@PKGCONFIG@", "yes") diff --git a/make.tmpl.in b/make.tmpl.in index 298fe319c..e2030506b 100644 --- a/make.tmpl.in +++ b/make.tmpl.in @@ -35,6 +35,7 @@ STATIC_LIBS = $(SELINUX_LIBS) $(UDEV_LIBS) DEFS += @DEFS@ CFLAGS += @CFLAGS@ CLDFLAGS += @CLDFLAGS@ +ELDFLAGS += @ELDFLAGS@ LDDEPS += @LDDEPS@ LDFLAGS += @LDFLAGS@ LIB_SUFFIX = @LIB_SUFFIX@ diff --git a/tools/Makefile.in b/tools/Makefile.in index 7652e35a4..f12c437fd 100644 --- a/tools/Makefile.in +++ b/tools/Makefile.in @@ -132,7 +132,7 @@ dmsetup.static: dmsetup.o $(interfacebuilddir)/libdevmapper.a all: device-mapper lvm: $(OBJECTS) lvm.o $(top_builddir)/lib/liblvm-internal.a - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJECTS) lvm.o \ + $(CC) $(CFLAGS) $(LDFLAGS) $(ELDFLAGS) -o $@ $(OBJECTS) lvm.o \ $(LVMLIBS) $(READLINE_LIBS) $(LIBS) -rdynamic lvm.static: $(OBJECTS) lvm-static.o $(top_builddir)/lib/liblvm-internal.a $(interfacebuilddir)/libdevmapper.a