Gentoo Archives: gentoo-user

From: David Haller <gentoo@×××××××.de>
To: gentoo-user@l.g.o
Subject: Re: [gentoo-user] Make failed to compile: symbol __alloca not found...
Date: Mon, 11 Dec 2017 16:36:53
Message-Id: 20171211161359.2olyqodfqej5kxmi@grusum.endjinn.de
In Reply to: [gentoo-user] Make failed to compile: symbol __alloca not found... by tuxic@posteo.de
1 Hello,
2
3 On Sun, 10 Dec 2017, tuxic@××××××.de wrote:
4 >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
5 >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
6 >glob/libglob.a(glob.o): In function `glob_in_dir':
7 >glob.c:(.text+0x2ed): undefined reference to `__alloca'
8
9 IIRC, that's a missing #define somewhere. Or a #define where it
10 shouldn't. But the thing is: on my system, make doesn't build libglob
11 at all because it finds the globbing stuff in glibc. And make has its
12 own alloca.c.
13
14 So, please show the output of the configure-part of the ebuild and
15 what's the output of:
16
17 $ grep _GNU_GLOB_INTERFACE_VERSION /usr/include/gnu-versions.h
18
19 Ah, yess:
20
21 ==== make-4.2.1/glob/glob.c:211 ff. ====
22 #if !defined __alloca && !defined __GNU_LIBRARY__
23 [..]
24 # define alloca(n) __builtin_alloca (n)
25 [..]
26 # define __alloca alloca
27 [.. down to line 1217 ..]
28 static int
29 glob_in_dir( ..
30 [..]
31 char *fullname = (char *) __alloca(... /* line 1256 */
32 ====
33
34 Somewhere between that and line 1256 of glob.c, where __alloca is
35 first used in that function you managed to undef __alloca...
36
37 You must have done something weird ...
38
39 -dnh
40
41 --
42 prom_printf("No VAC. Get some bucks and buy a real computer.");
43 linux-2.6.19/arch/sparc/mm/sun4c.c

Replies