Add a check to "configure" to see whether -lnsl is needed for programs that are using gethostbyname(). This change also adds the file "compat/check_ghbn.c", which configure uses to perform its check. --- compat/check_ghbn.c | 9 +++++++++ configure | 17 ++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletions(-) create mode 100644 compat/check_ghbn.c diff --git a/compat/check_ghbn.c b/compat/check_ghbn.c new file mode 100644 index 0000000..4858d5c --- /dev/null +++ b/compat/check_ghbn.c @@ -0,0 +1,9 @@ +#include <stdio.h> +#include <netdb.h> + +int main() +{ + (void) gethostbyname(NULL); + + return (0); +} diff --git a/configure b/configure index d153f57..9707f11 100755 --- a/configure +++ b/configure @@ -534,6 +534,17 @@ else fi rm -f compat/check_asctime +printf "Checking whether libnsl is needed for gethostbyname... " +if ${CC} -o compat/check_ghbn "$srcdir"/compat/check_ghbn.c > /dev/null 2>&1 +then + printf "No.\n" + libnsl_ldflags="" +else + printf "Yes.\n" + libnsl_ldflags="-lnsl" +fi +rm -f compat/check_ghbn + printf "int main(void){return 0;}\n" > minimal.c printf "Checking for rpath support... " @@ -723,6 +734,9 @@ GMIME_LDFLAGS = ${gmime_ldflags} TALLOC_CFLAGS = ${talloc_cflags} TALLOC_LDFLAGS = ${talloc_ldflags} +# Flags needed to get gethostbyname() at link time +LIBNSL_LDFLAGS = ${libnsl_ldflags} + # Flags needed to have linker set rpath attribute RPATH_LDFLAGS = ${rpath_ldflags} @@ -757,5 +771,6 @@ CONFIGURE_CXXFLAGS = -DHAVE_GETLINE=\$(HAVE_GETLINE) \$(GMIME_CFLAGS) \\ -DHAVE_STRCASESTR=\$(HAVE_STRCASESTR) \\ -DSTD_GETPWUID=\$(STD_GETPWUID) \\ -DSTD_ASCTIME=\$(STD_ASCTIME) -CONFIGURE_LDFLAGS = \$(GMIME_LDFLAGS) \$(TALLOC_LDFLAGS) \$(XAPIAN_LDFLAGS) +CONFIGURE_LDFLAGS = \$(GMIME_LDFLAGS) \$(TALLOC_LDFLAGS) \$(XAPIAN_LDFLAGS) \\ + \$(LIBNSL_LDFLAGS) EOF -- 1.7.3.2