From: Paul Eggert Date: Mon, 29 Feb 2016 17:39:45 +0000 (-0800) Subject: Stop calling res_init X-Git-Url: https://code.delx.au/gnu-emacs/commitdiff_plain/93bf7d52841c60ffc10e0c9c789a7987812ce55e Stop calling res_init Emacs shouldn’t need to call res_init any more, now that nscd or equivalent is everywhere. On modern systems, calling res_init simply slows Emacs down. On ancient systems lacking nscd Emacs will still work well enough with this change; it’s just that it won’t respond to changes in /etc/resolv.conf. * configure.ac (HAVE_RES_INIT): Remove. Worry about -lresolv only when configured --with-hesiod. Hesiod is still used; see, e.g.: https://soylentnews.org/meta/article.pl?sid=15/07/13/0255214 * src/Makefile.in (LIBRESOLV): Remove. All uses removed. --- diff --git a/admin/CPP-DEFINES b/admin/CPP-DEFINES index 796b57db3d..86f2fa5a41 100644 --- a/admin/CPP-DEFINES +++ b/admin/CPP-DEFINES @@ -254,7 +254,6 @@ HAVE_RANDOM HAVE_READLINK HAVE_READLINKAT HAVE_RECVFROM -HAVE_RES_INIT HAVE_RINT HAVE_RSVG HAVE_SELECT diff --git a/configure.ac b/configure.ac index e750a43816..48d9df1426 100644 --- a/configure.ac +++ b/configure.ac @@ -4000,44 +4000,13 @@ AC_CACHE_CHECK([whether signals can be handled on alternate stack], [emacs_cv_alternate_stack=yes], [emacs_cv_alternate_stack=no])]) -# Do we have res_init, for detecting changes in /etc/resolv.conf? -# On Darwin, res_init appears not to be useful: see bug#562 and -# http://lists.gnu.org/archive/html/emacs-devel/2007-11/msg01467.html -resolv=no - -if test $opsys != darwin; then - - AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include -#include -#include ]], - [[return res_init();]])], - have_res_init=yes, have_res_init=no) - if test "$have_res_init" = no; then - OLIBS="$LIBS" - LIBS="$LIBS -lresolv" - AC_MSG_CHECKING(for res_init with -lresolv) - AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include -#include -#include ]], - [[return res_init();]])], - have_res_init=yes, have_res_init=no) - AC_MSG_RESULT($have_res_init) - if test "$have_res_init" = yes ; then - resolv=yes - fi - LIBS="$OLIBS" - fi - - if test "$have_res_init" = yes; then - AC_DEFINE(HAVE_RES_INIT, 1, [Define to 1 if res_init is available.]) - fi -fi dnl !darwin - # Do we need the Hesiod library to provide the support routines? dnl FIXME? Should we be skipping this on Darwin too? LIBHESIOD= +LIBRESOLV= if test "$with_hesiod" != no ; then # Don't set $LIBS here -- see comments above. FIXME which comments? + resolv=no AC_CHECK_FUNC(res_send, , [AC_CHECK_FUNC(__res_send, , [AC_CHECK_LIB(resolv, res_send, resolv=yes, [AC_CHECK_LIB(resolv, __res_send, resolv=yes)])])]) @@ -4046,21 +4015,16 @@ if test "$with_hesiod" != no ; then else RESOLVLIB= fi + hesiod=no AC_CHECK_FUNC(hes_getmailhost, , [AC_CHECK_LIB(hesiod, hes_getmailhost, hesiod=yes, :, $RESOLVLIB)]) if test x"$hesiod" = xyes; then LIBHESIOD=-lhesiod + LIBRESOLV=$RESOLVLIB fi fi AC_SUBST(LIBHESIOD) - -# Do we need libresolv (due to res_init or Hesiod)? -if test "$resolv" = yes && test $opsys != darwin; then - LIBRESOLV=-lresolv -else - LIBRESOLV= -fi AC_SUBST(LIBRESOLV) # These tell us which Kerberos-related libraries to use. diff --git a/src/Makefile.in b/src/Makefile.in index 99394ac57c..8dcaf7e475 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -302,9 +302,6 @@ CM_OBJ=@CM_OBJ@ LIBGPM = @LIBGPM@ -## -lresolv, or empty. -LIBRESOLV = @LIBRESOLV@ - LIBSELINUX_LIBS = @LIBSELINUX_LIBS@ LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@ @@ -485,7 +482,7 @@ LIBES = $(LIBS) $(W32_LIBS) $(LIBS_GNUSTEP) $(LIBX_BASE) $(LIBIMAGE) \ $(WEBKIT_LIBS) \ $(LIB_EACCESS) $(LIB_FDATASYNC) $(LIB_TIMER_TIME) $(DBUS_LIBS) \ $(LIB_EXECINFO) $(XRANDR_LIBS) $(XINERAMA_LIBS) $(XFIXES_LIBS) \ - $(LIBXML2_LIBS) $(LIBGPM) $(LIBRESOLV) $(LIBS_SYSTEM) $(CAIRO_LIBS) \ + $(LIBXML2_LIBS) $(LIBGPM) $(LIBS_SYSTEM) $(CAIRO_LIBS) \ $(LIBS_TERMCAP) $(GETLOADAVG_LIBS) $(SETTINGS_LIBS) $(LIBSELINUX_LIBS) \ $(FREETYPE_LIBS) $(FONTCONFIG_LIBS) $(LIBOTF_LIBS) $(M17N_FLT_LIBS) \ $(LIBGNUTLS_LIBS) $(LIB_PTHREAD) $(GETADDRINFO_A_LIBS) \ diff --git a/src/process.c b/src/process.c index f40e8e53a2..85a4885bbf 100644 --- a/src/process.c +++ b/src/process.c @@ -75,11 +75,6 @@ along with GNU Emacs. If not, see . */ # include #endif -#ifdef HAVE_RES_INIT -#include -#include -#endif - #ifdef HAVE_UTIL_H #include #endif @@ -3827,10 +3822,6 @@ usage: (make-network-process &rest ARGS) */) immediate_quit = 1; QUIT; -#ifdef HAVE_RES_INIT - res_init (); -#endif - struct addrinfo hints; memset (&hints, 0, sizeof hints); hints.ai_family = family; @@ -3910,10 +3901,6 @@ usage: (make-network-process &rest ARGS) */) immediate_quit = 1; QUIT; -#ifdef HAVE_RES_INIT - res_init (); -#endif - host_info_ptr = gethostbyname ((const char *) SDATA (host)); immediate_quit = 0;