summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--common/mem.h30
-rw-r--r--configure.ac1
2 files changed, 31 insertions, 0 deletions
diff --git a/common/mem.h b/common/mem.h
index 8ba6586b..980ea139 100644
--- a/common/mem.h
+++ b/common/mem.h
@@ -22,10 +22,40 @@
#include <stdlib.h>
#include <spice/macros.h>
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
#ifdef __cplusplus
extern "C" {
#endif
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+# include <stdlib.h>
+# endif
+#endif
+#ifdef HAVE_ALLOCA_H
+# include <alloca.h>
+#elif defined __GNUC__
+# define alloca __builtin_alloca
+#elif defined _AIX
+# define alloca __alloca
+#elif defined _MSC_VER
+# include <malloc.h>
+# define alloca _alloca
+#else
+# ifndef HAVE_ALLOCA
+# ifdef __cplusplus
+extern "C"
+# endif
+void *alloca (size_t);
+# endif
+#endif
+
typedef struct SpiceChunk {
uint8_t *data;
uint32_t len;
diff --git a/configure.ac b/configure.ac
index 4b3d59fe..18209bfd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -27,6 +27,7 @@ AC_C_BIGENDIAN
AC_PATH_PROGS(PYTHON, python2 python)
AC_CHECK_HEADERS([sys/time.h])
+AC_FUNC_ALLOCA
SPICE_LT_VERSION=m4_format("%d:%d:%d", 1, 0, 2)
AC_SUBST(SPICE_LT_VERSION)