Avoid implicit function declartions in the configure script, to
improve compatibility with future compilers.

The “check_me != 42” part is not generic and would have to be
upstreamed, but upstream has switched to CMake and no longer uses
this test, it seems.

diff --git a/aclocal.m4 b/aclocal.m4
index 14cd8f3560139cbb..ab8170ee0185c72a 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1655,10 +1655,6 @@ else
 #  endif
 #endif
 
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
 void fnord() { int i=42;}
 int main ()
 {
@@ -1672,7 +1668,7 @@ int main ()
       /* dlclose (self); */
     }
 
-    exit (status);
+    return status;
 }]
 EOF
   if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
diff --git a/configure b/configure
index c4994911e224154f..3da8071a1c029507 100755
--- a/configure
+++ b/configure
@@ -3408,7 +3408,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   for ac_declaration in \
-   '' \
+   '#include <stdlib.h>' \
    'extern "C" void std::exit (int) throw (); using std::exit;' \
    'extern "C" void std::exit (int); using std::exit;' \
    'extern "C" void exit (int) throw ();' \
@@ -5060,8 +5060,8 @@ main ()
   for (i = 0; i < 256; i++)
     if (XOR (islower (i), ISLOWER (i))
 	|| toupper (i) != TOUPPER (i))
-      exit(2);
-  exit (0);
+      return 2;
+  return 0;
 }
 _ACEOF
 rm -f conftest$ac_exeext
@@ -9369,10 +9369,6 @@ else
 #  endif
 #endif
 
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
 void fnord() { int i=42;}
 int main ()
 {
@@ -9386,7 +9382,7 @@ int main ()
       /* dlclose (self); */
     }
 
-    exit (status);
+    return status;
 }
 EOF
   if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
@@ -9467,10 +9463,6 @@ else
 #  endif
 #endif
 
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
 void fnord() { int i=42;}
 int main ()
 {
@@ -9484,7 +9476,7 @@ int main ()
       /* dlclose (self); */
     }
 
-    exit (status);
+    return status;
 }
 EOF
   if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
@@ -13163,10 +13155,6 @@ else
 #  endif
 #endif
 
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
 void fnord() { int i=42;}
 int main ()
 {
@@ -13180,7 +13168,7 @@ int main ()
       /* dlclose (self); */
     }
 
-    exit (status);
+    return status;
 }
 EOF
   if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
@@ -13261,10 +13249,6 @@ else
 #  endif
 #endif
 
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
 void fnord() { int i=42;}
 int main ()
 {
@@ -13278,7 +13262,7 @@ int main ()
       /* dlclose (self); */
     }
 
-    exit (status);
+    return status;
 }
 EOF
   if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
@@ -18926,10 +18910,6 @@ else
 #  endif
 #endif
 
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
 void fnord() { int i=42;}
 int main ()
 {
@@ -18943,7 +18923,7 @@ int main ()
       /* dlclose (self); */
     }
 
-    exit (status);
+    return status;
 }
 EOF
   if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
@@ -19024,10 +19004,6 @@ else
 #  endif
 #endif
 
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
 void fnord() { int i=42;}
 int main ()
 {
@@ -19041,7 +19017,7 @@ int main ()
       /* dlclose (self); */
     }
 
-    exit (status);
+    return status;
 }
 EOF
   if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
@@ -20546,8 +20522,8 @@ main ()
   for (i = 0; i < 256; i++)
     if (XOR (islower (i), ISLOWER (i))
 	|| toupper (i) != TOUPPER (i))
-      exit(2);
-  exit (0);
+      return 2;
+  return 0;
 }
 _ACEOF
 rm -f conftest$ac_exeext
@@ -24621,7 +24597,7 @@ int main()
    void *ret;
    pthread_create (&t, $defattr, func, 0);
    pthread_join (t, &ret);
-   exit (check_me != 42 || ret != &check_me);
+   return check_me != 42 || ret != &check_me;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
@@ -24671,7 +24647,7 @@ int main()
    void *ret;
    pthread_create (&t, $defattr, func, 0);
    pthread_join (t, &ret);
-   exit (check_me != 42 || ret != &check_me);
+   return check_me != 42 || ret != &check_me;
 }
 _ACEOF
 rm -f conftest$ac_exeext
diff --git a/configure.ac b/configure.ac
index 71d577304a2e5c6f..8cc30b4483a05a48 100644
--- a/configure.ac
+++ b/configure.ac
@@ -173,7 +173,7 @@ int main()
    void *ret;
    pthread_create (&t, $1, func, 0);
    pthread_join (t, &ret);
-   exit (check_me != 42 || ret != &check_me);
+   return check_me != 42 || ret != &check_me;
 }])
 
 LIBS_NOT_FOUND_1="I can't find the libraries for the thread implementation