sys-devel/make-4.2.1-r1 fails to build with sys-libs/glibc-2.27* See also: http://lists.gnu.org/archive/html/bug-make/2017-11/msg00030.html x86_64-pc-linux-gnu-gcc -march=native -O2 -pipe -g -Wl,--export-dynamic -Wl,--as-needed -Wl,-O1 -Wl,--hash-style=gnu -o make ar.o arscan.o commands.o default.o dir.o expand.o file.o function.o getopt.o getopt1.o guile.o implicit.o job.o load.o loadapi.o main.o misc.o posixos.o output.o read.o remake.o rule.o signame.o strcache.o variable.o version.o vpath.o hash.o remote-stub.o glob/libglob.a -ldl glob/libglob.a(glob.o): In function `glob_in_dir': /var/tmp/portage/sys-devel/make-4.2.1-r1/work/make-4.2.1/glob/glob.c:1342: undefined reference to `__alloca' /var/tmp/portage/sys-devel/make-4.2.1-r1/work/make-4.2.1/glob/glob.c:1256: undefined reference to `__alloca' /var/tmp/portage/sys-devel/make-4.2.1-r1/work/make-4.2.1/glob/glob.c:1367: undefined reference to `__alloca' /var/tmp/portage/sys-devel/make-4.2.1-r1/work/make-4.2.1/glob/glob.c:1283: undefined reference to `__alloca' glob/libglob.a(glob.o): In function `glob': /var/tmp/portage/sys-devel/make-4.2.1-r1/work/make-4.2.1/glob/glob.c:581: undefined reference to `__alloca' glob/libglob.a(glob.o):/var/tmp/portage/sys-devel/make-4.2.1-r1/work/make-4.2.1/glob/glob.c:732: more undefined references to `__alloca' follow collect2: error: ld returned 1 exit status make[2]: *** [Makefile:656: make] Error 1
It also fails for me in the same way on my Gentoo system with gcc 7.3.0 and glibc 2.27. It's due to this change in glibc 2.27: https://sourceware.org/git/?p=glibc.git;a=commit;h=ccf970c7a77e86f4f5ef8ecc5e6 It is fixed by these 2 commits upstream: glob: Do not assume glibc glob internals. http://git.savannah.gnu.org/cgit/make.git/commit/?id=193f1e81edd6b1b56b0eb0ff8aa4b41c7b4257b4 configure.ac: Support GLIBC glob interface version 2 http://git.savannah.gnu.org/cgit/make.git/commit/?id=48c8a116a914a325a0497721f5d8b58d5bba34d4 I didn't try cherry picking these but made my own sys-devel/make git ebuild taking all changes since 4.2.1. It builds and installs fine, and I'm now nearly finished rebuilding everything with it and glibc 2.27. Haven't had any issues at all so far.
Created attachment 517814 [details] my make ebuild using latest code from upstream's git repo Attached in case its useful to anyone. As I say, works perfectly for me, have rebuilt more than 1000 packages so far on a gentoo x86_64 system with this and glibc 2.27 since yesterday. Note this system is not multilib, 64-bit only, but then again I think the current glibc 2.27-r1 ebuild doesn't work for multilib yet anyway.
I can confirm that the latest git version of make is working here. also, glibc-2.27-r1 is working on my multilib setup.
There is a patch to make-4-2.1 to compile with glibc-2.27 - https://patchwork.openembedded.org/patch/147686/ I've tested above patch for make-4-2.1 with gcc-7.3 and gcc-8.0.0-20180204 without any glibc-2.17 changes (both no-multilib and multilib profiles).
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7fedeea1187d03f8e755542c2fd4a982e15b9046 commit 7fedeea1187d03f8e755542c2fd4a982e15b9046 Author: Andreas K. Hüttel <dilfridge@gentoo.org> AuthorDate: 2018-02-11 00:08:51 +0000 Commit: Andreas K. Hüttel <dilfridge@gentoo.org> CommitDate: 2018-02-11 00:08:51 +0000 sys-devel/make: Fix build and tests with sys-libs/glibc-2.27, bug 646558 Closes: https://bugs.gentoo.org/646558 Package-Manager: Portage-2.3.24, Repoman-2.3.6 .../make/files/make-4.2.1-glob-internals.patch | 67 ++++++++++++++++++++++ sys-devel/make/files/make-4.2.1-glob-v2.patch | 28 +++++++++ sys-devel/make/make-4.2.1-r1.ebuild | 2 + 3 files changed, 97 insertions(+)