David Haller wrote: > Hello, > > On Mon, 11 Dec 2017, tu...@posteo.de wrote: >> On 12/11 05:13, David Haller wrote: >>> Hello, >>> >>> On Sun, 10 Dec 2017, tu...@posteo.de wrote: >>>> x86_64-pc-linux-gnu-gcc -DLOCALEDIR=\"/usr/share/locale\" >>>> -DLIBDIR=\"/usr/lib64\" -DINCLUDEDIR=\"/usr/include\" -DHAVE_CONFIG_H -I. >>>> -I./glob -march=native -O2 -pipe -c -o remote-stub.o remote-stub.c >>>> x86_64-pc-linux-gnu-gcc -march=native -O2 -pipe -Wl,--export-dynamic >>>> -Wl,-O1 -Wl,--as-needed -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': >>>> glob.c:(.text+0x2ed): undefined reference to `__alloca' >>> >>> IIRC, that's a missing #define somewhere. Or a #define where it >>> shouldn't. But the thing is: on my system, make doesn't build libglob >>> at all because it finds the globbing stuff in glibc. And make has its >>> own alloca.c. >>> >>> So, please show the output of the configure-part of the ebuild and >>> what's the output of: >>> >>> $ grep _GNU_GLOB_INTERFACE_VERSION /usr/include/gnu-versions.h >> >> Here it comes: > [..] >> ./configure --prefix=/usr --build=x86_64-pc-linux-gnu >> --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info >> --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib >> --disable-dependency-tracking --disable-silent-rules --libdir=/usr/lib64 >> --program-prefix=g --without-guile --enable-nls >> configure: loading site script /usr/share/config.site > [..] >> checking if system libc has GNU glob... no > [..] > > That figures. > >> /root>grep _GNU_GLOB_INTERFACE_VERSION /usr/include/gnu-versions.h >> #define _GNU_GLOB_INTERFACE_VERSION 2 /* vs posix/glob.c */ > > You seem to be using glibc-2.26. Question is, is that new > GLOB_INTERFACE backwards compatible or not? If it is, you could just > mangle the configure, so that "GNU glob" is considered found, a patch > via the e{apply,patch}_user of configure{ac,} should work. > >> Any ideas? > > "downgrade" to the stable glibc-2.25 ... ;) > > Or dig into why the following happens, i.e. why is __alloca not > defined in glob_in_dir() ... >
I don't think it's glibc, here make compiles fine: $ eix -I make ... sys-devel/make Installed versions: 4.2.1-r1(06:56:41 PM 12/11/2017)(nls -guile -static) $ eix -I glibc ... Installed versions: 2.26-r3(2.2)^s(07:08:24 PM 12/04/2017)(-audit -caps -debug -gd -hardened -multilib -nscd -profile -selinux -suid -systemtap -vanilla CROSSCOMPILE_OPTS="-headers-only") ...but: $ grep _GNU_GLOB_INTERFACE_VERSION /usr/include/gnu-versions.h #define _GNU_GLOB_INTERFACE_VERSION 1 /* vs posix/glob.c */ raffaele