X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Ftsearch.m4;h=09d01dbeed0ec95a2734ba10828ce602db5fa193;hb=5e3f9fb1457299215f1777603ef9d3e2f81986ff;hp=0281fb918ce7f3cd8d9b02af6316c2c9e24bcf5e;hpb=06cd74c141f523c2997cf5a13243ef68b6a2ae81;p=gnulib.git diff --git a/m4/tsearch.m4 b/m4/tsearch.m4 index 0281fb918..09d01dbee 100644 --- a/m4/tsearch.m4 +++ b/m4/tsearch.m4 @@ -1,5 +1,5 @@ -# tsearch.m4 serial 3 -dnl Copyright (C) 2006-2008 Free Software Foundation, Inc. +# tsearch.m4 serial 6 +dnl Copyright (C) 2006-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -14,7 +14,7 @@ AC_DEFUN([gl_FUNC_TSEARCH], AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether tdelete works], [gl_cv_func_tdelete_works], [ - AC_TRY_RUN([ + AC_RUN_IFELSE([AC_LANG_SOURCE([[ #include #include static int @@ -25,14 +25,18 @@ cmp_fn (const void *a, const void *b) int main () { + int result = 0; int x = 0; void *root = NULL; - if (!(tfind (&x, &root, cmp_fn) == NULL)) return 1; + if (!(tfind (&x, &root, cmp_fn) == NULL)) + result |= 1; tsearch (&x, &root, cmp_fn); - if (!(tfind (&x, &root, cmp_fn) != NULL)) return 1; - if (!(tdelete (&x, &root, cmp_fn) != NULL)) return 1; - return 0; -}], [gl_cv_func_tdelete_works=yes], [gl_cv_func_tdelete_works=no], + if (!(tfind (&x, &root, cmp_fn) != NULL)) + result |= 2; + if (!(tdelete (&x, &root, cmp_fn) != NULL)) + result |= 4; + return result; +}]])], [gl_cv_func_tdelete_works=yes], [gl_cv_func_tdelete_works=no], [case "$host_os" in openbsd*) gl_cv_func_tdelete_works="guessing no";; *) gl_cv_func_tdelete_works="guessing yes";; @@ -42,14 +46,10 @@ main () case "$gl_cv_func_tdelete_works" in *no) REPLACE_TSEARCH=1 - AC_LIBOBJ([tsearch]) - gl_PREREQ_TSEARCH ;; esac else HAVE_TSEARCH=0 - AC_LIBOBJ([tsearch]) - gl_PREREQ_TSEARCH fi ])