Bruno Haible <br...@clisp.org> writes: > There is no point for gnulib to redefine a function that is present in libnsl > (and hopefully working). IMO the fix is therefore to add a 'Link' section to > the module description module/inet_ntop, and determine its value, say, > INET_NTOP_LIB, in the gl_INET_NTOP macro.
Thanks for catching that. I looked into it a bit more, and discovered that not only do we not need to build inet_ntop on Solaris 8, we don't even need the system's inet_ntop, nor do we need to link with -lnsl. This stuff was included only as a dependency to getaddrinfo, but that function isn't needed or built on Solaris 8. I worked around the problem in the following different, and I hope simpler way, though it is a bit hacky. This time I remembered to push it, anyway.... ----- * modules/arpa_inet (arpa/inet.h): Depend on arpa_inet.in.h. * m4/inet_ntop.m4 (gl_INET_NTOP): Search for inet_ntop in -lnsl, for Solaris 8. This is a bit of a hack, as it means it's the caller's responsibility to add -lnsl if needed, but most likely it won't be needed since only getaddrinfo uses this and getaddrinfo isn't needed on Solaris 8. --- ChangeLog | 8 ++++++++ m4/inet_ntop.m4 | 15 +++++++++++++-- modules/arpa_inet | 2 +- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2fdb6dd..7415f5b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 2009-04-03 Paul Eggert <egg...@cs.ucla.edu> + Port coreutils 7.2 to Solaris 8. + + * m4/inet_ntop.m4 (gl_INET_NTOP): Search for inet_ntop in -lnsl, + for Solaris 8. This is a bit of a hack, as it means it's the + caller's responsibility to add -lnsl if needed, but most likely it + won't be needed since only getaddrinfo uses this and getaddrinfo + isn't neede on Solaris 8. + * modules/fnmatch (Depends-on): Add mbsrtowcs, to fix a porting problem to Solaris 8 encountered with coreutils 7.2, which resulted in a message "fnmatch.c:292: warning: passing argument 4 diff --git a/m4/inet_ntop.m4 b/m4/inet_ntop.m4 index 42bfc5e..2bbdca1 100644 --- a/m4/inet_ntop.m4 +++ b/m4/inet_ntop.m4 @@ -1,4 +1,4 @@ -# inet_ntop.m4 serial 8 +# inet_ntop.m4 serial 9 dnl Copyright (C) 2005, 2006, 2008, 2009 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -11,7 +11,18 @@ AC_DEFUN([gl_INET_NTOP], gl_REPLACE_ARPA_INET_H - AC_REPLACE_FUNCS([inet_ntop]) + dnl The AC_SEARCH_LIBS call is a hack to persuade the Solaris 8 linker to + dnl find inet_ntop. + dnl + dnl It is the responsibility of gl_INET_NTOP's caller to arrange for + dnl -lnsl if it is needed. Normally -lnsl is not needed on Solaris 8, + dnl since inet_ntop is needed only by getaddrinfo, and getaddrinfo + dnl isn't built on Solaris 8. + gl_save_LIBS=$LIBS + AC_SEARCH_LIBS([inet_ntop], [nsl], [], + [AC_REPLACE_FUNCS([inet_ntop])]) + LIBS=$gl_save_LIBS + gl_PREREQ_INET_NTOP ]) diff --git a/modules/arpa_inet b/modules/arpa_inet index 3691fd5..d799403 100644 --- a/modules/arpa_inet +++ b/modules/arpa_inet @@ -19,7 +19,7 @@ BUILT_SOURCES += $(ARPA_INET_H) # We need the following in order to create <arpa/inet.h> when the system # doesn't have one. -arpa/inet.h: +arpa/inet.h: arpa_inet.in.h @MKDIR_P@ arpa rm -f $...@-t $@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ -- 1.5.3.2 >From 9d17a13747f2286970948f17d8e22a81326ae023 Mon Sep 17 00:00:00 2001 From: Paul Eggert <egg...@cs.ucla.edu> Date: Fri, 3 Apr 2009 13:31:23 -0700 Subject: [PATCH] Fix ChangeLog typo in my previous commit. --- ChangeLog | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7415f5b..a8c80a8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,11 +2,12 @@ Port coreutils 7.2 to Solaris 8. + * modules/arpa_inet (arpa/inet.h): Depend on arpa_inet.in.h. * m4/inet_ntop.m4 (gl_INET_NTOP): Search for inet_ntop in -lnsl, for Solaris 8. This is a bit of a hack, as it means it's the caller's responsibility to add -lnsl if needed, but most likely it won't be needed since only getaddrinfo uses this and getaddrinfo - isn't neede on Solaris 8. + isn't needed on Solaris 8. * modules/fnmatch (Depends-on): Add mbsrtowcs, to fix a porting problem to Solaris 8 encountered with coreutils 7.2, which -- 1.5.3.2