summaryrefslogtreecommitdiff
path: root/source4/lib/talloc
diff options
context:
space:
mode:
Diffstat (limited to 'source4/lib/talloc')
-rw-r--r--source4/lib/talloc/config.m414
-rw-r--r--source4/lib/talloc/talloc.c18
2 files changed, 17 insertions, 15 deletions
diff --git a/source4/lib/talloc/config.m4 b/source4/lib/talloc/config.m4
index d4c68ca52b..0286bde6c2 100644
--- a/source4/lib/talloc/config.m4
+++ b/source4/lib/talloc/config.m4
@@ -1,3 +1,6 @@
+AC_CHECK_HEADERS(stdarg.h vararg.h)
+
+dnl VA_COPY
AC_CACHE_CHECK([for va_copy],samba_cv_HAVE_VA_COPY,[
AC_TRY_LINK([#include <stdarg.h>
va_list ap1,ap2;], [va_copy(ap1,ap2);],
@@ -6,8 +9,17 @@ if test x"$samba_cv_HAVE_VA_COPY" = x"yes"; then
AC_DEFINE(HAVE_VA_COPY,1,[Whether va_copy() is available])
fi
+if test x"$samba_cv_HAVE_VA_COPY" != x"yes"; then
+AC_CACHE_CHECK([for __va_copy],samba_cv_HAVE___VA_COPY,[
+AC_TRY_LINK([#include <stdarg.h>
+va_list ap1,ap2;], [__va_copy(ap1,ap2);],
+samba_cv_HAVE___VA_COPY=yes,samba_cv_HAVE___VA_COPY=no)])
+if test x"$samba_cv_HAVE___VA_COPY" = x"yes"; then
+ AC_DEFINE(HAVE___VA_COPY,1,[Whether __va_copy() is available])
+fi
+fi
+
AC_CHECK_TYPE(intptr_t, unsigned long long)
-AC_CHECK_HEADERS(stdint.h stdarg.h unistd.h sys/types.h)
AC_CHECK_SIZEOF(size_t,cross)
AC_CHECK_SIZEOF(void *,cross)
diff --git a/source4/lib/talloc/talloc.c b/source4/lib/talloc/talloc.c
index ca76b05332..5a14109190 100644
--- a/source4/lib/talloc/talloc.c
+++ b/source4/lib/talloc/talloc.c
@@ -37,22 +37,12 @@
#include <string.h>
#include <errno.h>
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#ifdef HAVE_STDARG_H
+#if defined(HAVE_STDARG_H)
#include <stdarg.h>
-#else
+#elif defined (HAVE_VARARGS_H)
#include <varargs.h>
-#endif
-
-#ifdef HAVE_STDINT_H
-#include <stdint.h>
+#else
+#error "no var arg header"
#endif
#include "talloc.h"