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
In Reply to: [gentoo-user] Make failed to compile: symbol __alloca not found... by

On Sun, 10 Dec 2017, tuxic@××××××.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 Ah, yess: ==== make-4.2.1/glob/glob.c:211 ff. ==== #if !defined __alloca && !defined __GNU_LIBRARY__ [..] # define alloca(n) __builtin_alloca (n) [..] # define __alloca alloca [.. down to line 1217 ..] static int glob_in_dir( .. [..] char *fullname = (char *) __alloca(... /* line 1256 */ ==== Somewhere between that and line 1256 of glob.c, where __alloca is first used in that function you managed to undef __alloca... You must have done something weird ... -dnh -- prom_printf("No VAC. Get some bucks and buy a real computer."); linux-2.6.19/arch/sparc/mm/sun4c.c