From d71d0805f9ad4010529bb94092a2e378b4edac9a Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Mon, 9 Apr 2012 15:06:58 -0400 Subject: [PATCH] alloca cannot be a function. #define it to the gcc builtin if possible gcc makes this mapping by default anyway, but it will be disabled by -fno-builtin (and presumably by -std=c99 or similar). for the main program the error will be reported by the linker, and the issue can easily be fixed, but for dynamic-loaded so files, the error cannot be detected until dlopen time, at which point it has become very obscure. --- include/alloca.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/alloca.h b/include/alloca.h index f61b817a..d2e6f1c6 100644 --- a/include/alloca.h +++ b/include/alloca.h @@ -10,6 +10,10 @@ extern "C" { void *alloca(size_t); +#ifdef __GNUC__ +#define alloca __builtin_alloca +#endif + #ifdef __cplusplus } #endif -- 2.20.1