Skip to contentSkip to conversation

btrfs-progs: fix static build

PATCH New Baruch Siach 3 participants 4 messages Nov 28, 2014 – Nov 29, 2014

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 btrfs-progs: fix static build

libuuid needs -lintl when BR2_NEEDS_GETTEXT_IF_LOCALE is set.

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

---
 package/btrfs-progs/btrfs-progs.mk | 4 ++++
 1 file changed, 4 insertions(+)
package/btrfs-progs/btrfs-progs.mk +4 -0
index d16fa0d9aa6f..7122df1b0e76 100644
@@ -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
Signature · 1 line
2.1.3
#2 lore raw

PATCH 1/1 btrfs-progs: fix static build

In reply to Baruch Siach

Dear Baruch Siach,

package/btrfs-progs/btrfs-progs.mk BTRFS_PROGS_LICENSE_FILES = COPYING · line 23

Quoted 12 lines · Baruch Siach
package/btrfs-progs/btrfs-progs.mk +4 -0
index d16fa0d9aa6f..7122df1b0e76 100644
@@ -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

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#3 lore raw

PATCH 1/1 btrfs-progs: fix static build

Hi Thomas,

Quoted 10 lines · Thomas Petazzoni
Quoted 9 lines · Baruch Siach
package/btrfs-progs/btrfs-progs.mk +0 -0
index d16fa0d9aa6f..7122df1b0e76 100644
@@ -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
Quoted 8 lines

package/btrfs-progs/btrfs-progs.mk BTRFS_PROGS_LICENSE_FILES = COPYING · line 23

Quoted 4 lines
package/btrfs-progs/btrfs-progs.mk +4 -0
+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.

Quoted 6 lines

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

Signature · 3 lines
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -