diff mbox

btrfs-progs: fix static build

Message ID 2de1279dcd485fe0a9dda147272221766bb7e187.1417159092.git.baruch@tkos.co.il
State Accepted
Commit ba3821bcf75a85e2d35e9d96b736f0eb585f53f0
Headers show

Commit Message

Baruch Siach Nov. 28, 2014, 7:18 a.m. UTC
libuuid needs -lintl when BR2_NEEDS_GETTEXT_IF_LOCALE is set.

Fixes:
http://autobuild.buildroot.net/results/9f1/9f182cd5955d724750135bcd6cb7e315fb28334f/

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
---
 package/btrfs-progs/btrfs-progs.mk | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Peter Korsgaard Nov. 28, 2014, 8:01 a.m. UTC | #1
>>>>> "Baruch" == Baruch Siach <baruch@tkos.co.il> writes:

 > libuuid needs -lintl when BR2_NEEDS_GETTEXT_IF_LOCALE is set.
 > Fixes:
 > http://autobuild.buildroot.net/results/9f1/9f182cd5955d724750135bcd6cb7e315fb28334f/

 > Signed-off-by: Baruch Siach <baruch@tkos.co.il>

Committed, thanks.
Thomas Petazzoni Nov. 28, 2014, 9:41 p.m. UTC | #2
Dear Baruch Siach,

On Fri, 28 Nov 2014 09:18:12 +0200, Baruch Siach wrote:

> diff --git a/package/btrfs-progs/btrfs-progs.mk b/package/btrfs-progs/btrfs-progs.mk
> index d16fa0d9aa6f..7122df1b0e76 100644
> --- a/package/btrfs-progs/btrfs-progs.mk
> +++ b/package/btrfs-progs/btrfs-progs.mk
> @@ -17,6 +17,10 @@ BTRFS_PROGS_LICENSE_FILES = COPYING
>  ifeq ($(BR2_PREFER_STATIC_LIB),y)
>  BTRFS_PROGS_MAKE_TARGET = static
>  BTRFS_PROGS_MAKE_INSTALL_TARGET = install-static
> +ifeq ($(BR2_NEEDS_GETTEXT_IF_LOCALE),y)
> +# Add -lintl for libuuid
> +BTRFS_PROGS_MAKE_FLAGS += lib_LIBS="-luuid -lblkid -lm -lz -llzo2 -L. -lintl"
> +endif

This is really ugly and not maintainable, we are doing this all over
the place to solve static linking issues, and it's going to be a
never-ending story. If the package doesn't use pkg-config, can't we at
least use it here, like:

	lib_LIBS="$(shell pkg-config ...)"

 ?

Thomas
Baruch Siach Nov. 29, 2014, 7 p.m. UTC | #3
Hi Thomas,

On Fri, Nov 28, 2014 at 10:41:17PM +0100, Thomas Petazzoni wrote:
> On Fri, 28 Nov 2014 09:18:12 +0200, Baruch Siach wrote:
> > diff --git a/package/btrfs-progs/btrfs-progs.mk 
> > b/package/btrfs-progs/btrfs-progs.mk
> > index d16fa0d9aa6f..7122df1b0e76 100644
> > --- a/package/btrfs-progs/btrfs-progs.mk
> > +++ b/package/btrfs-progs/btrfs-progs.mk
> > @@ -17,6 +17,10 @@ BTRFS_PROGS_LICENSE_FILES = COPYING
> >  ifeq ($(BR2_PREFER_STATIC_LIB),y)
> >  BTRFS_PROGS_MAKE_TARGET = static
> >  BTRFS_PROGS_MAKE_INSTALL_TARGET = install-static
> > +ifeq ($(BR2_NEEDS_GETTEXT_IF_LOCALE),y)
> > +# Add -lintl for libuuid
> > +BTRFS_PROGS_MAKE_FLAGS += lib_LIBS="-luuid -lblkid -lm -lz -llzo2 -L. -lintl"
> > +endif
> 
> This is really ugly and not maintainable, we are doing this all over
> the place to solve static linking issues, and it's going to be a
> never-ending story. 

I agree it is ugly. The thing is that this list of libraries is copied 
verbatim from btrfs-progs Makefile (except -lintl). I found no way to specify 
additional library dependencies.

> If the package doesn't use pkg-config, can't we at
> least use it here, like:
> 
> 	lib_LIBS="$(shell pkg-config ...)"
> 
>  ?

uuid.pc does not list -lintl because this is something we add locally since 
commit a8273c4272b1b8 (util-linux: fix libintl linking if present). Yann has 
proposed a patch (http://patchwork.ozlabs.org/patch/416000/) adding -lintl to 
uuid.pc when applicable. We'll still need to repeat the rest of the list,
something like:

	lib_LIBS="-luuid -lblkid -lm -lz -llzo2 -L. $(shell pkg-config ...)"

so I'm not sure it buy us much.

baruch
diff mbox

Patch

diff --git a/package/btrfs-progs/btrfs-progs.mk b/package/btrfs-progs/btrfs-progs.mk
index d16fa0d9aa6f..7122df1b0e76 100644
--- a/package/btrfs-progs/btrfs-progs.mk
+++ b/package/btrfs-progs/btrfs-progs.mk
@@ -17,6 +17,10 @@  BTRFS_PROGS_LICENSE_FILES = COPYING
 ifeq ($(BR2_PREFER_STATIC_LIB),y)
 BTRFS_PROGS_MAKE_TARGET = static
 BTRFS_PROGS_MAKE_INSTALL_TARGET = install-static
+ifeq ($(BR2_NEEDS_GETTEXT_IF_LOCALE),y)
+# Add -lintl for libuuid
+BTRFS_PROGS_MAKE_FLAGS += lib_LIBS="-luuid -lblkid -lm -lz -llzo2 -L. -lintl"
+endif
 else
 BTRFS_PROGS_MAKE_TARGET = all
 BTRFS_PROGS_MAKE_INSTALL_TARGET = install