![Yann E. MORIN](/assets/img/avatar_default.png)
xfsprogs links to some libraries from util-linux. Those in turn may use i18n functions when locales are enabled. When doing a uClibc build, those i18n functions are provided by the libintl library from the gettext package. xfsprogs does not use pkgconfig to find the util-linux libraries, so it misses the Requires.private field from libblkid, and thus misses the Libs.private field from libuid. And so a static link fails because of undefined references to i18n symbols. Furthermore, xfsprogs does not use automake; the hand-made Makefiles do not make use of the LIBS variable set by configure. We fix that in two ways: - pass LIBS=-lintl to configure, so that the configure step has a chance to succeed (as suggested by Waldemar) - patch a Makefile to link with EXTRALIBS, and pass EXTRALIBS via XFSPROGS_MAKE_OPTS Fixes: http://autobuild.buildroot.org/results/503/50314716a9f72e8bb238e52e9dc342c68f7e0b8b/ http://autobuild.buildroot.org/results/253/253a024698b55dece992b2631e30edf4ff9092f7/ http://autobuild.buildroot.org/results/3fe/3fe0d96cf13af12b0051a95f7865d4e38f4a78af/ http://autobuild.buildroot.org/results/d48/d48e61785d25d33106b7dab1b5cb200cf27d4044/ ... Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Waldemar Brodkorb <wbx@openadk.org> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
54 lines
1.9 KiB
Diff
54 lines
1.9 KiB
Diff
From 1e9bb2fba94bc508659f1667bf95501324849bb9 Mon Sep 17 00:00:00 2001
|
|
From: "Yann E. MORIN" <yann.morin.1998@free.fr>
|
|
Date: Sun, 26 Feb 2017 12:04:54 +0100
|
|
Subject: [PATCH] build: add EXTRALIBS to link with
|
|
|
|
When doing a uClibc static build, the build fails to link:
|
|
http://autobuild.buildroot.org/results/503/50314716a9f72e8bb238e52e9dc342c68f7e0b8b/build-end.log
|
|
|
|
The cause is due to:
|
|
- xfsprogs links dome programs with util-linux' libblkid
|
|
- util-linux' libblkid is linked to util-linux' libuuid
|
|
- util-linux' libuuid uses i18n functions when locales are enabled
|
|
- uClibc does not provide i18n functions
|
|
- i18n functions are provided by libintl from libintl from gettext
|
|
|
|
util-linux installs pkg-config files for thos two libs. However,
|
|
xfsprogs does not use pkg-config to find libblkid or libuuid, thus it
|
|
misses the Libs.private field from libuid.
|
|
|
|
In this case, it is necessary to pass LIBS=-lintl at configure time, so
|
|
that configure correctly finds libblkid.
|
|
|
|
Still, this is not enough, because the build will not use LIBS during
|
|
the link phase.
|
|
|
|
We fix that last bit by adding EXTRALIBS to the libraries to link with,
|
|
so that it is possible to pass EXTRALIBS=-lintl at build time:
|
|
|
|
$ ./configure [...] LIBS=-lintl
|
|
$ make EXTRALIBS=-lintl
|
|
|
|
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
|
|
Cc: Waldemar Brodkorb <wbx@openadk.org>
|
|
---
|
|
include/buildmacros | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/include/buildmacros b/include/buildmacros
|
|
index a7c5d8a..dd62d80 100644
|
|
--- a/include/buildmacros
|
|
+++ b/include/buildmacros
|
|
@@ -11,7 +11,7 @@ BUILDRULES = $(TOPDIR)/include/buildrules
|
|
|
|
LDFLAGS += $(LOADERFLAGS) $(LLDFLAGS)
|
|
LTLDFLAGS += $(LOADERFLAGS)
|
|
-LDLIBS = $(LLDLIBS) $(PLDLIBS) $(MALLOCLIB)
|
|
+LDLIBS = $(LLDLIBS) $(PLDLIBS) $(MALLOCLIB) $(EXTRALIBS)
|
|
|
|
MAKEOPTS = --no-print-directory Q=$(Q)
|
|
SRCFILES = Makefile $(HFILES) $(CFILES) $(LSRCFILES) $(LFILES) $(YFILES)
|
|
--
|
|
2.7.4
|
|
|