diff --git a/configure.ac b/configure.ac index 9aadd028..6d5fe447 100644 --- a/configure.ac +++ b/configure.ac @@ -416,7 +416,8 @@ AC_ARG_ENABLE(sna, [SNA="$enableval"], [SNA=auto]) -AC_CHECK_HEADERS([dev/wscons/wsconsio.h alloca.h]) +AC_CHECK_HEADERS([dev/wscons/wsconsio.h]) +AC_FUNC_ALLOCA AC_HEADER_MAJOR if test "x$SNA" != "xno"; then diff --git a/libobj/alloca.c b/libobj/alloca.c new file mode 100644 index 00000000..883e1e9f --- /dev/null +++ b/libobj/alloca.c @@ -0,0 +1,4 @@ +void *alloca(size_t sz) +{ + return NULL; +} diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c index cee4a726..d9b9923a 100644 --- a/src/sna/sna_display.c +++ b/src/sna/sna_display.c @@ -42,6 +42,15 @@ #if HAVE_ALLOCA_H #include +#elif defined __GNUC__ +#define alloca __builtin_alloca +#elif defined _AIX +#define alloca __alloca +#elif defined _MSC_VER +#include +#define alloca _alloca +#else +void *alloca(size_t); #endif #include "sna.h"