On Solaris 7, I'm getting a link error cc -O -g -o test-connect test-connect.o libtests.a ../gllib/libgnu.a libtests.a -lsocket ild: (undefined symbol) inet_pton -- referenced in the text segment of test-connect.o *** Error code 5
because inet_pton is declared in the system's <arpa/inet.h> but gnulib has not found the function in any library. The reason is that on that version of Solaris, it's found in libresolv, not in libnsl. Likewise for inet_ntop. This patch fixes it. 2011-09-18 Bruno Haible <[email protected]> inet_ntop, inet_pton: Look for it also in libresolv. * m4/inet_ntop.m4 (gl_FUNC_INET_NTOP): If the function was not found in libnsl, search for it in libresolv. * m4/inet_pton.m4 (gl_FUNC_INET_PTON): Likewise. Needed on Solaris 7. --- m4/inet_ntop.m4.orig Mon Sep 19 03:41:03 2011 +++ m4/inet_ntop.m4 Mon Sep 19 03:20:20 2011 @@ -1,4 +1,4 @@ -# inet_ntop.m4 serial 17 +# inet_ntop.m4 serial 18 dnl Copyright (C) 2005-2006, 2008-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -13,6 +13,7 @@ dnl Most platforms that provide inet_ntop define it in libc. dnl Solaris 8..10 provide inet_ntop in libnsl instead. + dnl Solaris 2.6..7 provide inet_ntop in libresolv instead. dnl Native Windows provides it in -lws2_32 instead, with a declaration in dnl <ws2tcpip.h>, and it uses stdcall calling convention, not cdecl dnl (hence we cannot use AC_CHECK_FUNCS, AC_SEARCH_LIBS to find it). @@ -32,7 +33,7 @@ fi else gl_save_LIBS=$LIBS - AC_SEARCH_LIBS([inet_ntop], [nsl], [], + AC_SEARCH_LIBS([inet_ntop], [nsl resolv], [], [AC_CHECK_FUNCS([inet_ntop]) if test $ac_cv_func_inet_ntop = no; then HAVE_INET_NTOP=0 --- m4/inet_pton.m4.orig Mon Sep 19 03:41:03 2011 +++ m4/inet_pton.m4 Mon Sep 19 03:19:44 2011 @@ -1,4 +1,4 @@ -# inet_pton.m4 serial 15 +# inet_pton.m4 serial 16 dnl Copyright (C) 2006, 2008-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -13,6 +13,7 @@ dnl Most platforms that provide inet_pton define it in libc. dnl Solaris 8..10 provide inet_pton in libnsl instead. + dnl Solaris 2.6..7 provide inet_pton in libresolv instead. dnl Native Windows provides it in -lws2_32 instead, with a declaration in dnl <ws2tcpip.h>, and it uses stdcall calling convention, not cdecl dnl (hence we cannot use AC_CHECK_FUNCS, AC_SEARCH_LIBS to find it). @@ -32,7 +33,7 @@ fi else gl_save_LIBS=$LIBS - AC_SEARCH_LIBS([inet_pton], [nsl], [], + AC_SEARCH_LIBS([inet_pton], [nsl resolv], [], [AC_CHECK_FUNCS([inet_pton]) if test $ac_cv_func_inet_pton = no; then HAVE_INET_PTON=0 -- In memoriam Bernhard Bästlein <http://en.wikipedia.org/wiki/Bernhard_Bästlein>
