Hi Mike,
On Sat, Mar 17, 2007 at 10:23:28PM +0100, Michal Trojnara wrote:
On Saturday 17 March 2007 21:35, lists@d-ra.ath.cx wrote:
Result: -lnsl was not added to $LIB. $LIB was empty here.
Maybe it's a problem with gethostbyname. Isn't gethostbyname a part of libc? What would happens if gethostbyname is resolved with libc?
In Linux - yes. In Solaris it's in libnls. In fact I'm surprised that Linux needs libnls. What function does *your* system need from libnls?
OK, I see your problem with different platforms. So I have tuned the patch a little bit. Now it doesn't hardcode -lnsl in the tcp wrapper section, instead it uses AC_SEARCH_LIBS(yp_get_default_domain, nsl) to conditionally add it to LIB if not already included. So in Solaris libnsl will be added via AC_SEARCH_LIBS(gethostbyname, nsl) at line 93 in configure.ac, in Linux via AC_SEARCH_LIBS(yp_get_default_domain, nsl) in line 311 (after apply patch), but only if tcp wrappers are enabled.
Why yp_get_default_domain? Because of this error message (see config.log without patch):
gcc -o conftest -g -O2 -Wall -Wshadow -Wcast-align -Wpointer-arith -I/usr/include conftest.c -lz -ldl -lutil -lpthread -L/usr/lib -lssl -lcrypto -lwrap /usr/lib/libwrap.a(hosts_access.o)(.text+0x64f): In function `host_match': : undefined reference to `yp_get_default_domain' collect2: ld returned 1 exit status
Here the patch:
--- configure.ac.orig 2007-03-18 08:25:50.000000000 +0100 +++ configure.ac 2007-03-18 09:05:49.000000000 +0100 @@ -308,6 +308,7 @@ [AC_MSG_RESULT([yes])], [ AC_MSG_RESULT([no (autodetecting)]) + AC_SEARCH_LIBS(yp_get_default_domain, nsl) AC_MSG_CHECKING([for hosts_access in -lwrap]) saved_LIBS="$LIBS" LIBS="$saved_LIBS -lwrap"
Kind regards Dieter