1 |
David Haller wrote: |
2 |
> Hello, |
3 |
> |
4 |
> On Mon, 11 Dec 2017, tuxic@××××××.de wrote: |
5 |
>> On 12/11 05:13, David Haller wrote: |
6 |
>>> Hello, |
7 |
>>> |
8 |
>>> On Sun, 10 Dec 2017, tuxic@××××××.de wrote: |
9 |
>>>> 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 |
10 |
>>>> 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 |
11 |
>>>> glob/libglob.a(glob.o): In function `glob_in_dir': |
12 |
>>>> glob.c:(.text+0x2ed): undefined reference to `__alloca' |
13 |
>>> |
14 |
>>> IIRC, that's a missing #define somewhere. Or a #define where it |
15 |
>>> shouldn't. But the thing is: on my system, make doesn't build libglob |
16 |
>>> at all because it finds the globbing stuff in glibc. And make has its |
17 |
>>> own alloca.c. |
18 |
>>> |
19 |
>>> So, please show the output of the configure-part of the ebuild and |
20 |
>>> what's the output of: |
21 |
>>> |
22 |
>>> $ grep _GNU_GLOB_INTERFACE_VERSION /usr/include/gnu-versions.h |
23 |
>> |
24 |
>> Here it comes: |
25 |
> [..] |
26 |
>> ./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 |
27 |
>> configure: loading site script /usr/share/config.site |
28 |
> [..] |
29 |
>> checking if system libc has GNU glob... no |
30 |
> [..] |
31 |
> |
32 |
> That figures. |
33 |
> |
34 |
>> /root>grep _GNU_GLOB_INTERFACE_VERSION /usr/include/gnu-versions.h |
35 |
>> #define _GNU_GLOB_INTERFACE_VERSION 2 /* vs posix/glob.c */ |
36 |
> |
37 |
> You seem to be using glibc-2.26. Question is, is that new |
38 |
> GLOB_INTERFACE backwards compatible or not? If it is, you could just |
39 |
> mangle the configure, so that "GNU glob" is considered found, a patch |
40 |
> via the e{apply,patch}_user of configure{ac,} should work. |
41 |
> |
42 |
>> Any ideas? |
43 |
> |
44 |
> "downgrade" to the stable glibc-2.25 ... ;) |
45 |
> |
46 |
> Or dig into why the following happens, i.e. why is __alloca not |
47 |
> defined in glob_in_dir() ... |
48 |
> |
49 |
|
50 |
I don't think it's glibc, here make compiles fine: |
51 |
|
52 |
$ eix -I make |
53 |
... |
54 |
sys-devel/make |
55 |
Installed versions: 4.2.1-r1(06:56:41 PM 12/11/2017)(nls -guile -static) |
56 |
|
57 |
$ eix -I glibc |
58 |
... |
59 |
Installed versions: 2.26-r3(2.2)^s(07:08:24 PM 12/04/2017)(-audit -caps -debug -gd |
60 |
-hardened -multilib -nscd -profile -selinux -suid -systemtap -vanilla |
61 |
CROSSCOMPILE_OPTS="-headers-only") |
62 |
|
63 |
...but: |
64 |
|
65 |
$ grep _GNU_GLOB_INTERFACE_VERSION /usr/include/gnu-versions.h |
66 |
#define _GNU_GLOB_INTERFACE_VERSION 1 /* vs posix/glob.c */ |
67 |
|
68 |
raffaele |