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

Reply via email to