I tried to compile Wget with "tcc", a tiny fast Linux compiler that happens to not implement alloca. Since Wget's configure checks for alloca and the source includes the C alloca implementation, it should (in theory) work anyway. However, I got a compiler error:
tcc -I. -I. -DHAVE_CONFIG_H -DSYSTEM_WGETRC=\"/usr/local/etc/wgetrc\" -DLOCALEDIR=\"/usr/local/share/locale\" -O -c alloca.c In file included from alloca.c:32: In file included from /usr/include/stdlib.h:578: /usr/include/alloca.h:33: incompatible types for redefinition of 'alloca' make: *** [alloca.o] Error 1 It turns out that the alloca declaration that the Autoconf manual[1] recommends for config.h declares alloca() as returning char *, whereas the C implementation I use declares it as returning void *. But regardless of alloca.c, another problem is that, on Linux, stdlib.h includes alloca.h, which also declares void *alloca(). I fixed this problem by changing the declaration from "char *alloca();" to "void *alloca();". Is there a better fix, or should the manual be updated for alloca to return void *? [1] The section of the manual I'm referring to is: http://www.gnu.org/software/autoconf/manual/autoconf-2.57/html_chapter/autoconf_5.html#SEC46