Hi,

sys-devel/make-4.2.1-r1 failed to compile with this:

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 vpath.o vpath.c
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 hash.o hash.c
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'
glob.c:(.text+0x46e): undefined reference to `__alloca'
glob.c:(.text+0x628): undefined reference to `__alloca'
glob.c:(.text+0x680): undefined reference to `__alloca'
glob/libglob.a(glob.o): In function `glob':
glob.c:(.text+0x99b): undefined reference to `__alloca'
glob/libglob.a(glob.o):glob.c:(.text+0x104a): more undefined references to 
`__alloca' follow
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:656: make] Error 1
make[2]: Leaving directory 
'/var/tmp/portage/sys-devel/make-4.2.1-r1/work/make-4.2.1'
make[1]: *** [Makefile:798: all-recursive] Error 1
make[1]: Leaving directory 
'/var/tmp/portage/sys-devel/make-4.2.1-r1/work/make-4.2.1'
make: *** [Makefile:534: all] Error 2
 * ERROR: sys-devel/make-4.2.1-r1::gentoo failed (compile phase):
 *   emake failed


Online I found articles which explain, why it is not recommended to
use alloca() at all:
RETURN VALUE The alloca() function returns a pointer to the beginning of the 
allocated space. If the allocation causes stack overflow, program behaviour is 
undefined.
(https://stackoverflow.com/questions/1018853/why-is-the-use-of-alloca-not-considered-good-practice)

How can I recompile make -- it is still non-PIE and one of those
application which I cant convince to be friendly to gcc :)

How serious is this alloca-thingy at all?

Cheers
Meino





Reply via email to