Module getaddrinfo requires linking with $(GETADDRINFO_LIB).
authorBruno Haible <bruno@clisp.org>
Tue, 23 Dec 2008 12:09:27 +0000 (13:09 +0100)
committerBruno Haible <bruno@clisp.org>
Tue, 23 Dec 2008 12:09:27 +0000 (13:09 +0100)
ChangeLog
NEWS
m4/getaddrinfo.m4
modules/canon-host
modules/getaddrinfo
modules/getaddrinfo-tests

index b3beab0898b3b7225117c535d2f40b47553e56d0..c53de8bf69a0aa1d1a01e830ac34c2bc86c817ee 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2008-12-23  Bruno Haible  <bruno@clisp.org>
+
+       Module getaddrinfo requires linking with $(GETADDRINFO_LIB).
+       * m4/getaddrinfo.m4 (gl_GETADDRINFO): Put link options into
+       GETADDRINFO_LIB, not in LIBS.
+       * modules/getaddrinfo (Link): Set to $(GETADDRINFO_LIB).
+       * modules/canon-host (Link): Likewise.
+       * NEWS: Mention the change.
+       * modules/getaddrinfo-tests (test_getaddrinfo_LDADD): Add the
+       GETADDRINFO_LIB.
+
 2008-12-22  Bruno Haible  <bruno@clisp.org>
 
        * doc/posix-functions/iswalnum_l.texi: Mention limitation of wchar_t.
diff --git a/NEWS b/NEWS
index d69ad0a5c7afe1f27d45d39d7ffa92934522969f..10f419e9324fee0beddfcbbc3e166bc441de8b76 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -6,6 +6,9 @@ User visible incompatible changes
 
 Date        Modules         Changes
 
+2008-12-22  getaddrinfo     When using this module, you now need to link with
+            canon-host      $(GETADDRINFO_LIB).
+
 2008-12-21  mbiter          The header files "mbiter.h", "mbuiter.h",
             mbuiter         "mbfile.h" can now be included without checking
             mbfile          HAVE_MBRTOWC. The macro HAVE_MBRTOWC will no
index f1cc01da1238439cdf6864dd36969a44635be12d..9655a4289b4369bebda48b389b5750fdcd0b6b56 100644 (file)
@@ -1,4 +1,4 @@
-# getaddrinfo.m4 serial 18
+# getaddrinfo.m4 serial 19
 dnl Copyright (C) 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -9,8 +9,21 @@ AC_DEFUN([gl_GETADDRINFO],
   AC_REQUIRE([gl_HEADER_SYS_SOCKET])dnl for HAVE_SYS_SOCKET_H, HAVE_WINSOCK2_H
   AC_REQUIRE([gl_HEADER_NETDB])dnl for HAVE_NETDB_H
   AC_MSG_NOTICE([checking how to do getaddrinfo, freeaddrinfo and getnameinfo])
+  GETADDRINFO_LIB=
+  gai_saved_LIBS="$LIBS"
+
+  dnl Where is getaddrinfo()?
+  dnl - On Solaris, it is in libsocket.
+  dnl - On Haiku, it is in libnetwork.
+  dnl - On BeOS, it is in libnet.
+  dnl - On native Windows, it is in ws2_32.dll.
+  dnl - Otherwise it is in libc.
+  AC_SEARCH_LIBS(getaddrinfo, [socket network net],
+    [if test "$ac_cv_search_getaddrinfo" != "none required"; then
+       GETADDRINFO_LIB="$ac_cv_search_getaddrinfo"
+     fi])
+  LIBS="$gai_saved_LIBS $GETADDRINFO_LIB"
 
-  AC_SEARCH_LIBS(getaddrinfo, [nsl socket])
   AC_CACHE_CHECK([for getaddrinfo], [gl_cv_func_getaddrinfo], [
     AC_TRY_LINK([
 #include <sys/types.h>
@@ -39,7 +52,8 @@ AC_DEFUN([gl_GETADDRINFO],
       LIBS="$am_save_LIBS"
     ])
     if test "$gl_cv_w32_getaddrinfo" = "yes"; then
-      LIBS="$LIBS -lws2_32"
+      GETADDRINFO_LIB="-lws2_32"
+      LIBS="$gai_saved_LIBS $GETADDRINFO_LIB"
     else
       AC_LIBOBJ(getaddrinfo)
     fi
@@ -69,7 +83,11 @@ AC_DEFUN([gl_GETADDRINFO],
     AC_LIBOBJ(gai_strerror)
   fi
 
+  LIBS="$gai_saved_LIBS"
+
   gl_PREREQ_GETADDRINFO
+
+  AC_SUBST([GETADDRINFO_LIB])
 ])
 
 # Prerequisites of lib/netdb.in.h and lib/getaddrinfo.c.
@@ -78,7 +96,6 @@ AC_DEFUN([gl_PREREQ_GETADDRINFO], [
   AC_REQUIRE([gl_HEADER_SYS_SOCKET])dnl for HAVE_SYS_SOCKET_H, HAVE_WINSOCK2_H
   AC_REQUIRE([gl_HOSTENT]) dnl for HOSTENT_LIB
   AC_REQUIRE([gl_SERVENT]) dnl for SERVENT_LIB
-  LIBS="$LIBS $HOSTENT_LIB $SERVENT_LIB"
   AC_REQUIRE([AC_C_RESTRICT])
   AC_REQUIRE([gl_SOCKET_FAMILIES])
   AC_REQUIRE([gl_HEADER_SYS_SOCKET])
@@ -134,4 +151,16 @@ AC_DEFUN([gl_PREREQ_GETADDRINFO], [
   if test $ac_cv_type_struct_addrinfo = no; then
     HAVE_STRUCT_ADDRINFO=0
   fi
+
+  dnl Append $HOSTENT_LIB to GETADDRINFO_LIB, avoiding gratuitous duplicates.
+  case " $GETADDRINFO_LIB " in
+    *" $HOSTENT_LIB "*) ;;
+    *) GETADDRINFO_LIB="$GETADDRINFO_LIB $HOSTENT_LIB" ;;
+  esac
+
+  dnl Append $SERVENT_LIB to GETADDRINFO_LIB, avoiding gratuitous duplicates.
+  case " $GETADDRINFO_LIB " in
+    *" $SERVENT_LIB "*) ;;
+    *) GETADDRINFO_LIB="$GETADDRINFO_LIB $SERVENT_LIB" ;;
+  esac
 ])
index 581266501c97078a60d021ccd959e6852212ba96..81afc8cdff3caf558408606c043f0ce4c3f3085d 100644 (file)
@@ -19,6 +19,9 @@ Makefile.am:
 Include:
 #include "canon-host.h"
 
+Link:
+$(GETADDRINFO_LIB)
+
 License:
 LGPL
 
index bc60a78c61f1aaf1e5c341242cb24052e44dc313..c8c602449be4989ac8945153ec6b74fcaaf08be0 100644 (file)
@@ -28,6 +28,9 @@ Makefile.am:
 Include:
 <netdb.h>
 
+Link:
+$(GETADDRINFO_LIB)
+
 License:
 LGPLv2+
 
index 5d374a99e01a0b894501e007f0fa7cc261d7265e..5f80523b6883af30fb0de008dde4303c813529f7 100644 (file)
@@ -9,7 +9,7 @@ configure.ac:
 Makefile.am:
 TESTS += test-getaddrinfo
 check_PROGRAMS += test-getaddrinfo
-test_getaddrinfo_LDADD = $(LDADD) @LIBINTL@
+test_getaddrinfo_LDADD = $(LDADD) @GETADDRINFO_LIB@ @LIBINTL@
 
 License:
 LGPL