Fix regression in qsort_r BSD detection
authorChristophe Fergeau <cfergeau@redhat.com>
Thu, 9 Jun 2011 11:36:19 +0000 (13:36 +0200)
committerChristophe Fergeau <cfergeau@redhat.com>
Fri, 10 Jun 2011 13:18:58 +0000 (15:18 +0200)
We can use AC_CHECK_FUNCS to detect if qsort_r is available on
the system or not since it will unconditionnally define
HAVE_QSORT_R, which we don't want since on BSD, qsort_r isn't usable
for us, so we don't want to have HAVE_QSORT_R defined on such platforms.
By using AC_CHECK_FUNC instead, we can defer defining HAVE_QSORT_R until
we have actually tested it's usable.

https://bugzilla.gnome.org/show_bug.cgi?id=651920

configure.ac

index 2f7f804..008532e 100644 (file)
@@ -579,7 +579,12 @@ AC_HEADER_STDC
 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 qsort_r)
+AC_CHECK_FUNCS(atexit on_exit timegm gmtime_r)
+
+dnl don't use AC_CHECK_FUNCS here, otherwise HAVE_QSORT_R will
+dnl be automatically defined, which we don't want to do
+dnl until we have checked this function is actually usable
+AC_CHECK_FUNC([qsort_r])
 
 # BSD has a qsort_r with wrong argument order
 if test x$ac_cv_func_qsort_r = xyes ; then