AC_FUNC_VPRINTF
AC_FUNC_ALLOCA
AC_CHECK_FUNCS(mmap posix_memalign memalign valloc fsync pipe2)
-AC_CHECK_FUNCS(atexit on_exit timegm gmtime_r)
-# BSD has a qsort_r with wrong argument order
-AC_CACHE_CHECK([for qsort_r], glib_cv_have_qsort_r, [
-AC_RUN_IFELSE([AC_LANG_SOURCE([[
-#define _GNU_SOURCE
-#include <stdlib.h>
-
-static int
-cmp (const void *a, const void *b, void *c)
-{
- const int *ia = a;
- const int *ib = b;
+AC_CHECK_FUNCS(atexit on_exit timegm gmtime_r qsort_r)
- if (*ia < *ib)
- return -1;
- else if (*ia > *ib)
- return 1;
- else
- return 0;
-}
+# BSD has a qsort_r with wrong argument order
+if test x$ac_cv_func_qsort_r = xyes ; then
+ AC_CACHE_CHECK([if qsort_r uses glibc compatible argument order], glib_cv_have_qsort_r, [
+ AC_RUN_IFELSE([AC_LANG_SOURCE([[
+ #define _GNU_SOURCE
+ #include <stdlib.h>
+
+ static int
+ cmp (const void *a, const void *b, void *c)
+ {
+ const int *ia = a;
+ const int *ib = b;
+
+ if (*ia < *ib)
+ return -1;
+ else if (*ia > *ib)
+ return 1;
+ else
+ return 0;
+ }
-int
-main (int argc, char **argv)
-{
- int arr[3] = { 1, 2, 0 };
- int d = 3;
+ int
+ main (int argc, char **argv)
+ {
+ int arr[3] = { 1, 2, 0 };
+ int d = 3;
- qsort_r (arr, 3, sizeof (int), cmp, &d);
+ qsort_r (arr, 3, sizeof (int), cmp, &d);
- if (arr[0] == 0 && arr[1] == 1 && arr[2] == 2)
- return 0;
- else
- return 1;
-}]])],[glib_cv_have_qsort_r=yes],[glib_cv_have_qsort_r=no])])
+ if (arr[0] == 0 && arr[1] == 1 && arr[2] == 2)
+ return 0;
+ else
+ return 1;
+ }]])],[glib_cv_have_qsort_r=yes],[glib_cv_have_qsort_r=no])])
+fi
if test x$glib_cv_have_qsort_r = xyes ; then
AC_DEFINE(HAVE_QSORT_R, 1, [Define to 1 if you have the 'qsort_r' function])