diff mbox series

make: fix build with glibc 2.27

Message ID 1335b4d70acf1aacdc0d4f40fedfa69320debf6a.1521187256.git.baruch@tkos.co.il
State Superseded
Headers show
Series make: fix build with glibc 2.27 | expand

Commit Message

Baruch Siach March 16, 2018, 8 a.m. UTC
glibc 2.27 changed _GNU_GLOB_INTERFACE_VERSION to 2. This triggers build
of the internal glob implementation in make. This internal
implementation needs the __alloca symbol that glibc does not define.

Add upstream patch that adds support for _GNU_GLOB_INTERFACE_VERSION 2.

Fixes:
http://autobuild.buildroot.net/results/8ff/8ff06ad8438cfcac85577b24675dd1d66f7d3d03/
http://autobuild.buildroot.net/results/5cc/5ccee6bb332e800e81052a3094746edde83403b1/
http://autobuild.buildroot.net/results/841/8418f5ed56dacd6900946e7d56ad36ad03c7bf7e/

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
---
 ...ac-Support-GLIBC-glob-interface-version-2.patch | 31 ++++++++++++++++++++++
 package/make/make.mk                               |  4 ++-
 2 files changed, 34 insertions(+), 1 deletion(-)
 create mode 100644 package/make/0001-configure.ac-Support-GLIBC-glob-interface-version-2.patch

Comments

Peter Korsgaard March 16, 2018, 9:57 a.m. UTC | #1
>>>>> "Baruch" == Baruch Siach <baruch@tkos.co.il> writes:

 > glibc 2.27 changed _GNU_GLOB_INTERFACE_VERSION to 2. This triggers build
 > of the internal glob implementation in make. This internal
 > implementation needs the __alloca symbol that glibc does not define.

 > Add upstream patch that adds support for _GNU_GLOB_INTERFACE_VERSION 2.

 > Fixes:
 > http://autobuild.buildroot.net/results/8ff/8ff06ad8438cfcac85577b24675dd1d66f7d3d03/
 > http://autobuild.buildroot.net/results/5cc/5ccee6bb332e800e81052a3094746edde83403b1/
 > http://autobuild.buildroot.net/results/841/8418f5ed56dacd6900946e7d56ad36ad03c7bf7e/

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

 > diff --git a/package/make/make.mk b/package/make/make.mk
 > index 5717628fa3e9..01cd2eaa18f2 100644
 > --- a/package/make/make.mk
 > +++ b/package/make/make.mk
 > @@ -7,9 +7,11 @@
 >  MAKE_VERSION = 4.2.1
 >  MAKE_SOURCE = make-$(MAKE_VERSION).tar.bz2
 >  MAKE_SITE = $(BR2_GNU_MIRROR)/make
 > -MAKE_DEPENDENCIES = $(TARGET_NLS_DEPENDENCIES)
 > +MAKE_DEPENDENCIES = $(TARGET_NLS_DEPENDENCIES) host-pkgconf

The patch looks good, but why are you pulling in host-pkgconf?
Baruch Siach March 16, 2018, 10:21 a.m. UTC | #2
Hi Peter,
On Fri, Mar 16, 2018 at 10:57:02AM +0100, Peter Korsgaard wrote:
> >>>>> "Baruch" == Baruch Siach <baruch@tkos.co.il> writes:
> 
>  > glibc 2.27 changed _GNU_GLOB_INTERFACE_VERSION to 2. This triggers build
>  > of the internal glob implementation in make. This internal
>  > implementation needs the __alloca symbol that glibc does not define.
> 
>  > Add upstream patch that adds support for _GNU_GLOB_INTERFACE_VERSION 2.
> 
>  > Fixes:
>  > http://autobuild.buildroot.net/results/8ff/8ff06ad8438cfcac85577b24675dd1d66f7d3d03/
>  > http://autobuild.buildroot.net/results/5cc/5ccee6bb332e800e81052a3094746edde83403b1/
>  > http://autobuild.buildroot.net/results/841/8418f5ed56dacd6900946e7d56ad36ad03c7bf7e/
> 
>  > Signed-off-by: Baruch Siach <baruch@tkos.co.il>
> 
>  > diff --git a/package/make/make.mk b/package/make/make.mk
>  > index 5717628fa3e9..01cd2eaa18f2 100644
>  > --- a/package/make/make.mk
>  > +++ b/package/make/make.mk
>  > @@ -7,9 +7,11 @@
>  >  MAKE_VERSION = 4.2.1
>  >  MAKE_SOURCE = make-$(MAKE_VERSION).tar.bz2
>  >  MAKE_SITE = $(BR2_GNU_MIRROR)/make
>  > -MAKE_DEPENDENCIES = $(TARGET_NLS_DEPENDENCIES)
>  > +MAKE_DEPENDENCIES = $(TARGET_NLS_DEPENDENCIES) host-pkgconf
> 
> The patch looks good, but why are you pulling in host-pkgconf?

Otherwise configure fails:

./configure: line 9666: PKG_PROG_PKG_CONFIG: command not found
./configure: line 9678: syntax error near unexpected token `GUILE,'
./configure: line 9678: `   PKG_CHECK_MODULES(GUILE, guile-2.0, have_guile=yes,'

This does not trigger without autoreconf since we disable guile support in 
make to break circular dependency IIRC.

baruch
Peter Korsgaard March 16, 2018, 1:06 p.m. UTC | #3
>>>>> "Baruch" == Baruch Siach <baruch@tkos.co.il> writes:

Hi,

 >> > +MAKE_DEPENDENCIES = $(TARGET_NLS_DEPENDENCIES) host-pkgconf
 >> 
 >> The patch looks good, but why are you pulling in host-pkgconf?

 > Otherwise configure fails:

 > ./configure: line 9666: PKG_PROG_PKG_CONFIG: command not found
 > ./configure: line 9678: syntax error near unexpected token `GUILE,'
 > ./configure: line 9678: `   PKG_CHECK_MODULES(GUILE, guile-2.0, have_guile=yes,'

 > This does not trigger without autoreconf since we disable guile support in 
 > make to break circular dependency IIRC.

Ok, can you please a note about that in the commit message?
diff mbox series

Patch

diff --git a/package/make/0001-configure.ac-Support-GLIBC-glob-interface-version-2.patch b/package/make/0001-configure.ac-Support-GLIBC-glob-interface-version-2.patch
new file mode 100644
index 000000000000..62e67f850a2e
--- /dev/null
+++ b/package/make/0001-configure.ac-Support-GLIBC-glob-interface-version-2.patch
@@ -0,0 +1,31 @@ 
+From 48c8a116a914a325a0497721f5d8b58d5bba34d4 Mon Sep 17 00:00:00 2001
+From: Paul Smith <psmith@gnu.org>
+Date: Sun, 19 Nov 2017 15:09:16 -0500
+Subject: [PATCH] * configure.ac: Support GLIBC glob interface version 2
+
+Signed-off-by: Baruch Siach <baruch@tkos.co.il>
+---
+Upstream status: commit 48c8a116a914a3
+
+ configure.ac | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 8c72568cf276..4710832ae568 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -404,10 +404,9 @@ AC_CACHE_CHECK([if system libc has GNU glob], [make_cv_sys_gnu_glob],
+ #include <glob.h>
+ #include <fnmatch.h>
+ 
+-#define GLOB_INTERFACE_VERSION 1
+ #if !defined _LIBC && defined __GNU_LIBRARY__ && __GNU_LIBRARY__ > 1
+ # include <gnu-versions.h>
+-# if _GNU_GLOB_INTERFACE_VERSION == GLOB_INTERFACE_VERSION
++# if _GNU_GLOB_INTERFACE_VERSION == 1 || _GNU_GLOB_INTERFACE_VERSION == 2
+    gnu glob
+ # endif
+ #endif],
+-- 
+2.16.2
+
diff --git a/package/make/make.mk b/package/make/make.mk
index 5717628fa3e9..01cd2eaa18f2 100644
--- a/package/make/make.mk
+++ b/package/make/make.mk
@@ -7,9 +7,11 @@ 
 MAKE_VERSION = 4.2.1
 MAKE_SOURCE = make-$(MAKE_VERSION).tar.bz2
 MAKE_SITE = $(BR2_GNU_MIRROR)/make
-MAKE_DEPENDENCIES = $(TARGET_NLS_DEPENDENCIES)
+MAKE_DEPENDENCIES = $(TARGET_NLS_DEPENDENCIES) host-pkgconf
 MAKE_LICENSE = GPL-3.0+
 MAKE_LICENSE_FILES = COPYING
+# Patching configure.ac
+MAKE_AUTORECONF = YES
 
 MAKE_CONF_OPTS = --without-guile