]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfsprogs: do not do any dynamic linking of libtool libraries
authorRomain Naour <romain.naour@openwide.fr>
Thu, 5 Feb 2015 23:35:13 +0000 (10:35 +1100)
committerDave Chinner <david@fromorbit.com>
Thu, 5 Feb 2015 23:35:13 +0000 (10:35 +1100)
if --disable-static and --enable-shared are given on the command
line, the link with xfsprogs's internal libraries fail because
they have been dynamically compiled.

Hence the following error:
ld: attempted static link of dynamic object `../libxcmd/.libs/libxcmd.so'

xfsprogs rely on the original behaviour of -static which was modified in
Buildroot by [1].  But since commit [2] the build of xfsprogs tools is broken
because they try to link statically with the static libuuid library
(util-linux), which is not build for shared only build.

The use of -static-libtool-libs allows to fallback to the dynamic linking for
libuuid only:

LD_TRACE_LOADED_OBJECTS=1 xfs_copy
linux-gate.so.1 =>  (0xf7793000)
libuuid.so.1 => /lib/libuuid.so.1 (0x465e1000)
libpthread.so.0 => /lib/libpthread.so.0 (0x46db1000)
librt.so.1 => /lib/librt.so.1 (0x46f21000)
libc.so.6 => /lib/libc.so.6 (0x46bf1000)
/lib/ld-linux.so.2 (0x46bce000)

[1] http://git.buildroot.net/buildroot/commit/?id=97703978ac870ce2b14ad144f8e082de82aa2c64
[2] http://git.buildroot.net/buildroot/commit/?id=f1d3e09895b245da9d54bbaef36e5de95269034e

Signed-off-by: Romain Naour <romain.naour@openwide.fr>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
copy/Makefile
db/Makefile
growfs/Makefile
io/Makefile
logprint/Makefile
mkfs/Makefile
repair/Makefile

index 54f6dfb289f415b97fcaf78b184a0b34cfcaebeb..beabbd48b2ce292105c992848eca051ce85fd472 100644 (file)
@@ -11,7 +11,7 @@ HFILES = xfs_copy.h
 
 LLDLIBS = $(LIBXFS) $(LIBUUID) $(LIBPTHREAD) $(LIBRT)
 LTDEPENDENCIES = $(LIBXFS)
-LLDFLAGS = -static
+LLDFLAGS = -static-libtool-libs
 
 default: depend $(LTCOMMAND)
 
index bae6154a53dbf198d7cbdf43e1c41dcbc2ea93e7..fb01bddeb6b2cc3cacdb607ef756980374142f2d 100644 (file)
@@ -18,7 +18,7 @@ LSRCFILES = xfs_admin.sh xfs_ncheck.sh xfs_metadump.sh
 
 LLDLIBS        = $(LIBXFS) $(LIBXLOG) $(LIBUUID) $(LIBRT) $(LIBPTHREAD)
 LTDEPENDENCIES = $(LIBXFS) $(LIBXLOG)
-LLDFLAGS += -static
+LLDFLAGS += -static-libtool-libs
 
 ifeq ($(ENABLE_READLINE),yes)
 LLDLIBS += $(LIBREADLINE) $(LIBTERMCAP)
index 88cbf4f45bdf8e8a67651ce4c0eebc07dbc17593..19616def15729c8ba2354e289a856ed028d1b038 100644 (file)
@@ -19,7 +19,7 @@ LLDLIBS += $(LIBEDITLINE) $(LIBTERMCAP)
 endif
 
 LTDEPENDENCIES = $(LIBXFS) $(LIBXCMD)
-LLDFLAGS = -static
+LLDFLAGS = -static-libtool-libs
 LSRCFILES = xfs_info.sh
 
 default: depend $(LTCOMMAND)
index 82593a636dd9402c1aa4206b6dd08ed694362804..a08a7829a8c145af2acba1f9cbf274ff0918f9c0 100644 (file)
@@ -15,7 +15,7 @@ CFILES = init.c \
 
 LLDLIBS = $(LIBXCMD) $(LIBHANDLE)
 LTDEPENDENCIES = $(LIBXCMD) $(LIBHANDLE)
-LLDFLAGS = -static
+LLDFLAGS = -static-libtool-libs
 
 ifeq ($(HAVE_FADVISE),yes)
 CFILES += fadvise.c
index 2d656a4d6da5dd002652e33b235e53f3723c369c..7bcf27f6a9e718a72118a4dbff59c342c8152bd5 100644 (file)
@@ -14,7 +14,7 @@ CFILES = logprint.c \
 
 LLDLIBS        = $(LIBXFS) $(LIBXLOG) $(LIBUUID) $(LIBRT) $(LIBPTHREAD)
 LTDEPENDENCIES = $(LIBXFS) $(LIBXLOG)
-LLDFLAGS = -static
+LLDFLAGS = -static-libtool-libs
 
 default: depend $(LTCOMMAND)
 
index 75da6335b82e77077b724dd9046cbdc558516c1e..fd1f6152055d34d009880a74bebe252986e95beb 100644 (file)
@@ -21,7 +21,7 @@ endif
 
 LLDLIBS += $(LIBXFS) $(LIBUUID) $(LIBRT) $(LIBPTHREAD)
 LTDEPENDENCIES += $(LIBXFS)
-LLDFLAGS = -static
+LLDFLAGS = -static-libtool-libs
 
 LSRCFILES = $(FSTYP).c
 LDIRT = $(FSTYP)
index 17a30fd27496c47bf68e22548958047ce0675ed5..6d84adecb15dad33a963f3a82985ad1a215cf5c2 100644 (file)
@@ -22,7 +22,7 @@ CFILES = agheader.c attr_repair.c avl.c avl64.c bmap.c btree.c \
 
 LLDLIBS = $(LIBXFS) $(LIBXLOG) $(LIBUUID) $(LIBRT) $(LIBPTHREAD)
 LTDEPENDENCIES = $(LIBXFS) $(LIBXLOG)
-LLDFLAGS = -static
+LLDFLAGS = -static-libtool-libs
 
 default: depend $(LTCOMMAND)