All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [git commit] package/git: fix build with NLS enabled
@ 2019-04-18  9:26 Thomas Petazzoni
  0 siblings, 0 replies; only message in thread
From: Thomas Petazzoni @ 2019-04-18  9:26 UTC (permalink / raw)
  To: buildroot

commit: https://git.buildroot.net/buildroot/commit/?id=cb3a0177ef8ac64699d753b11daa0c37b3cf7b88
branch: https://git.buildroot.net/buildroot/commit/?id=refs/heads/master

git fails to build with NLS enabled because of weak check
for gettext in configure.ac. The AC_CHECK_LIB(c, gettext ...)
is used to set LIBC_CONTAINS_LIBINTL variable. If the variable
is set then '-libs' is not passed to the linker, but this variable
is set to 'Yes' even libc implementation does not provide libintl
support, the AC_CHECK passes because gcc has gettext builtin.

So use instead AC_LINK_IFELSE with included libintl.h because it
makes gettext to unfold as libintl_gettext which causes AC_CHECK
to fail for cases when gettext is not provided by libc.

Tested by ./utils/test-pkg with NLS disabled/enabled.

Fixes:
	http://autobuild.buildroot.net/results/091b790ca6f5b46d5d29211dc1cb3ff05b62a965
	http://autobuild.buildroot.net/results/a69b58b35b270fdd2df9b076e7030bb594520197
	http://autobuild.buildroot.net/results/f104c4e6ff41b1dd175f2d27f3b4ea7c9b61f7c5
	http://autobuild.buildroot.net/results/ee12bdba398a139995de5f6f6718be6a493541d9
	http://autobuild.buildroot.net/results/74fa6b2bfbb1301e35c9dd1bbc04856c1cbf25f2

Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
 ...1-configure.ac-Properly-check-for-libintl.patch | 49 ++++++++++++++++++++++
 package/git/git.mk                                 |  1 +
 2 files changed, 50 insertions(+)

diff --git a/package/git/0001-configure.ac-Properly-check-for-libintl.patch b/package/git/0001-configure.ac-Properly-check-for-libintl.patch
new file mode 100644
index 0000000000..2f367f547a
--- /dev/null
+++ b/package/git/0001-configure.ac-Properly-check-for-libintl.patch
@@ -0,0 +1,49 @@
+From 01da08fd60a0bdb2994f85f943dba148d9321d4d Mon Sep 17 00:00:00 2001
+From: Vadim Kochan <vadim4j@gmail.com>
+Date: Wed, 17 Apr 2019 01:25:40 +0300
+Subject: [PATCH 1/1] configure.ac: Properly check for libintl
+
+Some libc implementations like uclibc or musl provides
+gettext stubs via libintl library but this case is not checked
+by AC_CHECK_LIBRARY(c, gettext ...) because gcc has gettext as builtin
+which passess the check.
+
+So check it with included libintl.h where gettext may unfold into
+libintl_gettext which will cause check to fail if libintl_gettext are
+needed to be linked with -lintl.
+
+Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
+---
+ configure.ac | 16 +++++++++++++---
+ 1 file changed, 13 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 7f84151..0b8e25f 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -762,9 +762,19 @@ AC_CHECK_LIB([c], [basename],
+ GIT_CONF_SUBST([NEEDS_LIBGEN])
+ test -n "$NEEDS_LIBGEN" && LIBS="$LIBS -lgen"
+ 
+-AC_CHECK_LIB([c], [gettext],
+-[LIBC_CONTAINS_LIBINTL=YesPlease],
+-[LIBC_CONTAINS_LIBINTL=])
++AC_DEFUN([LIBINTL_SRC], [
++AC_LANG_PROGRAM([[
++#include <libintl.h>
++]],[[
++char *msg = gettext("test");
++]])])
++
++AC_MSG_CHECKING([if libc contains libintl])
++AC_LINK_IFELSE([LIBINTL_SRC],
++	[AC_MSG_RESULT([yes])
++	LIBC_CONTAINS_LIBINTL=YesPlease],
++	[AC_MSG_RESULT([no])
++	LIBC_CONTAINS_LIBINTL=])
+ GIT_CONF_SUBST([LIBC_CONTAINS_LIBINTL])
+ 
+ #
+-- 
+2.14.1
+
diff --git a/package/git/git.mk b/package/git/git.mk
index aec30e3eb3..804a6e2325 100644
--- a/package/git/git.mk
+++ b/package/git/git.mk
@@ -10,6 +10,7 @@ GIT_SITE = $(BR2_KERNEL_MIRROR)/software/scm/git
 GIT_LICENSE = GPL-2.0, LGPL-2.1+
 GIT_LICENSE_FILES = COPYING LGPL-2.1
 GIT_DEPENDENCIES = zlib $(TARGET_NLS_DEPENDENCIES)
+GIT_AUTORECONF = YES
 
 ifeq ($(BR2_PACKAGE_OPENSSL),y)
 GIT_DEPENDENCIES += host-pkgconf openssl

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2019-04-18  9:26 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-04-18  9:26 [Buildroot] [git commit] package/git: fix build with NLS enabled Thomas Petazzoni

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.