From 8c29a0c5a42a22b1a6654776dd35784189d35b98 Mon Sep 17 00:00:00 2001 From: Marko Kreen Date: Fri, 25 Mar 2011 23:17:43 +0200 Subject: [PATCH] usual.m4: special handling for getaddrinfo_a() AC_USUAL_GETADDRINFO_A: - check glibc version - setup pthreads --- m4/usual.m4 | 30 ++++++++++++++++++++++++++++-- usual/netdb.h | 7 ------- 2 files changed, 28 insertions(+), 9 deletions(-) diff --git a/m4/usual.m4 b/m4/usual.m4 index 0cee878..635ad35 100644 --- a/m4/usual.m4 +++ b/m4/usual.m4 @@ -183,8 +183,6 @@ AC_CHECK_FUNCS(err errx warn warnx getprogname setprogname) AC_CHECK_FUNCS(posix_memalign memalign valloc) AC_CHECK_FUNCS(getopt getopt_long getopt_long_only) AC_CHECK_FUNCS(fls flsl flsll ffs ffsl ffsll) -AC_SEARCH_LIBS(getaddrinfo_a, anl) -AC_CHECK_FUNCS(getaddrinfo_a) ### Functions provided only on win32 AC_CHECK_FUNCS(localtime_r recvmsg sendmsg usleep) ### Functions used by libusual itself @@ -357,3 +355,31 @@ else fi ]) dnl AC_USUAL_UREGEX +dnl +dnl AC_USUAL_GETADDRINFO_A - getaddrinfo_a() is required +dnl +AC_DEFUN([AC_USUAL_GETADDRINFO_A], [ +AC_SEARCH_LIBS(getaddrinfo_a, anl) +AC_CACHE_CHECK([whether to use native getaddinfo_a], ac_cv_usual_glibc_gaia, + [AC_TRY_COMPILE([ +#include +#ifdef HAVE_NETDB_H +#include +#endif +], [ +#if __GLIBC_PREREQ(2,9) + getaddrinfo_a(0,NULL,0,NULL); +#else + none or broken +#endif +], [ac_cv_usual_glibc_gaia=yes], [ac_cv_usual_glibc_gaia=no])]) + +if test x"$ac_cv_usual_glibc_gaia" = xyes ; then + AC_DEFINE(HAVE_GETADDRINFO_A, 1, [Define to 1 if you have the getaddrinfo_a() function.]) +else + ACX_PTHREAD(, [AC_MSG_RESULT([*** Threads not available, fallback getaddrinfo_a() non-functional.])]) + CC="$PTHREAD_CC" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + LIBS="$LIBS $PTHREAD_LIBS" +fi +]) diff --git a/usual/netdb.h b/usual/netdb.h index 59b55b4..8dac6e8 100644 --- a/usual/netdb.h +++ b/usual/netdb.h @@ -30,13 +30,6 @@ #include #endif -/* older glibcs have broken getaddrinfo_a() */ -#ifdef __GLIBC_PREREQ -#if !__GLIBC_PREREQ(2,9) -#undef HAVE_GETADDRINFO_A -#endif -#endif - #ifndef HAVE_GETADDRINFO_A /** Async execution */ -- 2.39.5