libphobos: Remove AC_CACHE_CHECK from network library tests.
authorIain Buclaw <ibuclaw@gdcproject.org>
Mon, 27 Apr 2020 00:09:43 +0000 (02:09 +0200)
committerIain Buclaw <ibuclaw@gdcproject.org>
Mon, 27 Apr 2020 00:47:27 +0000 (02:47 +0200)
libphobos/ChangeLog:

* configure: Regenerate.
* m4/druntime/libraries.m4 (DRUNTIME_LIBRARIES_NET): Remove
AC_CACHE_CHECK, simplify by setting LIBS directly.

libphobos/configure
libphobos/m4/druntime/libraries.m4

index c923417532fc428ac645e5b5b741b9d6ffb1fd30..98d8dc255c1fead651acbac82481fd9281ec83ed 100755 (executable)
@@ -14932,25 +14932,14 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 fi
 
 
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket libraries" >&5
-$as_echo_n "checking for socket libraries... " >&6; }
-if ${druntime_cv_lib_sockets+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  druntime_cv_lib_sockets=
-     druntime_check_both=no
-     ac_fn_c_check_func "$LINENO" "connect" "ac_cv_func_connect"
+                            druntime_check_both=no
+  ac_fn_c_check_func "$LINENO" "connect" "ac_cv_func_connect"
 if test "x$ac_cv_func_connect" = xyes; then :
-  druntime_check_socket=no
-else
-  druntime_check_socket=yes
-fi
 
-     if test "$druntime_check_socket" = "yes"; then
-       unset ac_cv_func_connect
-       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lsocket" >&5
-$as_echo_n "checking for main in -lsocket... " >&6; }
-if ${ac_cv_lib_socket_main+:} false; then :
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5
+$as_echo_n "checking for connect in -lsocket... " >&6; }
+if ${ac_cv_lib_socket_connect+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -14958,55 +14947,58 @@ LIBS="-lsocket  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char connect ();
 int
 main ()
 {
-return main ();
+return connect ();
   ;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_socket_main=yes
+  ac_cv_lib_socket_connect=yes
 else
-  ac_cv_lib_socket_main=no
+  ac_cv_lib_socket_connect=no
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_main" >&5
-$as_echo "$ac_cv_lib_socket_main" >&6; }
-if test "x$ac_cv_lib_socket_main" = xyes; then :
-  druntime_cv_lib_sockets="-lsocket"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_connect" >&5
+$as_echo "$ac_cv_lib_socket_connect" >&6; }
+if test "x$ac_cv_lib_socket_connect" = xyes; then :
+  LIBS="$LIBS -lsocket"
 else
   druntime_check_both=yes
 fi
 
-     fi
-     if test "$druntime_check_both" = "yes"; then
-       druntime_old_libs=$LIBS
-       LIBS="$LIBS -lsocket -lnsl"
-       unset ac_cv_func_accept
-       ac_fn_c_check_func "$LINENO" "accept" "ac_cv_func_accept"
+fi
+
+  if test "$druntime_check_both" = "yes"; then
+    druntime_old_libs=$LIBS
+    LIBS="$LIBS -lsocket -lnsl"
+    ac_fn_c_check_func "$LINENO" "accept" "ac_cv_func_accept"
 if test "x$ac_cv_func_accept" = xyes; then :
-  druntime_check_nsl=no
-                     druntime_cv_lib_sockets="-lsocket -lnsl"
+
+else
+  LIBS=$druntime_old_libs
 fi
 
-       unset ac_cv_func_accept
-       LIBS=$druntime_old_libs
-     fi
-     unset ac_cv_func_gethostbyname
-     druntime_old_libs="$LIBS"
-     ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname"
+  fi
+  ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname"
 if test "x$ac_cv_func_gethostbyname" = xyes; then :
 
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lnsl" >&5
-$as_echo_n "checking for main in -lnsl... " >&6; }
-if ${ac_cv_lib_nsl_main+:} false; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5
+$as_echo_n "checking for gethostbyname in -lnsl... " >&6; }
+if ${ac_cv_lib_nsl_gethostbyname+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -15014,38 +15006,39 @@ LIBS="-lnsl  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gethostbyname ();
 int
 main ()
 {
-return main ();
+return gethostbyname ();
   ;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_nsl_main=yes
+  ac_cv_lib_nsl_gethostbyname=yes
 else
-  ac_cv_lib_nsl_main=no
+  ac_cv_lib_nsl_gethostbyname=no
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_main" >&5
-$as_echo "$ac_cv_lib_nsl_main" >&6; }
-if test "x$ac_cv_lib_nsl_main" = xyes; then :
-  druntime_cv_lib_sockets="$druntime_cv_lib_sockets -lnsl"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5
+$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; }
+if test "x$ac_cv_lib_nsl_gethostbyname" = xyes; then :
+  LIBS="$LIBS -lnsl"
 fi
 
 fi
 
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $druntime_cv_lib_sockets" >&5
-$as_echo "$druntime_cv_lib_sockets" >&6; }
-  LIBS="$LIBS $druntime_cv_lib_sockets"
-
 
   # Keep this in sync with core/thread.d, set druntime_fiber_asm_external to
   # "yes" for targets that have 'version = AsmExternal'.
index 957bf98b442f6df5325418da041ade762d7be027..743d3e3e17c776ff540d0010097c62f5ba70eab5 100644 (file)
@@ -21,33 +21,30 @@ AC_DEFUN([DRUNTIME_LIBRARIES_DLOPEN],
 # Autodetect and add networking library to LIBS if necessary.
 AC_DEFUN([DRUNTIME_LIBRARIES_NET],
 [
-  dnl Test for -lsocket and -lnsl.  Copied from libjava/configure.ac.
-  AC_CACHE_CHECK([for socket libraries], druntime_cv_lib_sockets,
-    [druntime_cv_lib_sockets=
-     druntime_check_both=no
-     AC_CHECK_FUNC(connect, druntime_check_socket=no, druntime_check_socket=yes)
-     if test "$druntime_check_socket" = "yes"; then
-       unset ac_cv_func_connect
-       AC_CHECK_LIB(socket, main, druntime_cv_lib_sockets="-lsocket",
-                   druntime_check_both=yes)
-     fi
-     if test "$druntime_check_both" = "yes"; then
-       druntime_old_libs=$LIBS
-       LIBS="$LIBS -lsocket -lnsl"
-       unset ac_cv_func_accept
-       AC_CHECK_FUNC(accept,
-                    [druntime_check_nsl=no
-                     druntime_cv_lib_sockets="-lsocket -lnsl"])
-       unset ac_cv_func_accept
-       LIBS=$druntime_old_libs
-     fi
-     unset ac_cv_func_gethostbyname
-     druntime_old_libs="$LIBS"
-     AC_CHECK_FUNC(gethostbyname, ,
-                  [AC_CHECK_LIB(nsl, main,
-                   [druntime_cv_lib_sockets="$druntime_cv_lib_sockets -lnsl"])])
-  ])
-  LIBS="$LIBS $druntime_cv_lib_sockets"
+  dnl Check for the existence of the -lsocket and -lnsl libraries.
+  dnl The order here is important, so that they end up in the right
+  dnl order in the command line generated by make.  Here are some
+  dnl special considerations:
+  dnl 1. Use "connect" and "accept" to check for -lsocket, and
+  dnl    "gethostbyname" to check for -lnsl.
+  dnl 2. Use each function name only once:  can't redo a check because
+  dnl    autoconf caches the results of the last check and won't redo it.
+  dnl 3. Use -lnsl and -lsocket only if they supply procedures that
+  dnl    aren't already present in the normal libraries.
+  dnl 4. On some systems, can't use -lsocket without -lnsl too.
+  dnl    To get around this problem, check for both libraries together
+  dnl    if -lsocket doesn't work by itself.
+  druntime_check_both=no
+  AC_CHECK_FUNC(connect, ,
+       [AC_CHECK_LIB(socket, connect,
+        LIBS="$LIBS -lsocket", druntime_check_both=yes)])
+  if test "$druntime_check_both" = "yes"; then
+    druntime_old_libs=$LIBS
+    LIBS="$LIBS -lsocket -lnsl"
+    AC_CHECK_FUNC(accept, , LIBS=$druntime_old_libs)
+  fi
+  AC_CHECK_FUNC(gethostbyname, ,
+       [AC_CHECK_LIB(nsl, gethostbyname, LIBS="$LIBS -lnsl")])
 ])
 
 # DRUNTIME_LIBRARIES_ZLIB