From e2cbaa50a38d4d37620d7e0268ff44d77f9e3411 Mon Sep 17 00:00:00 2001 From: "Todd C. Miller" Date: Sun, 18 May 2008 17:54:48 +0000 Subject: [PATCH] Redo the test for dgettext() in a way that hopefully will work around the libintl_dgettext() undefined problem. --- configure | 73 ++++++++++------------------------------------------ configure.in | 9 +++++-- 2 files changed, 20 insertions(+), 62 deletions(-) diff --git a/configure b/configure index de87d9a6a..d8480de3e 100755 --- a/configure +++ b/configure @@ -19508,56 +19508,20 @@ fi case $host in *-*-linux*|*-*-solaris*) - -for ac_func in dgettext -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF + # dgettext() may be defined to dgettext_libintl in the + # header file, so first check that it links w/ additional + # libs, then try with -lintl + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $ac_func - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me -#endif - +#include int main () { -return $ac_func (); +(void)dgettext((char *)0, (char *)0); ; return 0; } @@ -19580,27 +19544,15 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then - eval "$as_ac_var=yes" + cat >>confdefs.h <<\_ACEOF +#define HAVE_DGETTEXT 1 +_ACEOF + else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - eval "$as_ac_var=no" -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -else - { echo "$as_me:$LINENO: checking for dgettext in -lintl" >&5 + { echo "$as_me:$LINENO: checking for dgettext in -lintl" >&5 echo $ECHO_N "checking for dgettext in -lintl... $ECHO_C" >&6; } if test "${ac_cv_lib_intl_dgettext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -19670,8 +19622,9 @@ _ACEOF fi fi -done +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext ;; esac fi diff --git a/configure.in b/configure.in index 7b9169e45..22cd43903 100644 --- a/configure.in +++ b/configure.in @@ -1907,8 +1907,13 @@ if test ${with_pam-"no"} != "no"; then esac], AC_MSG_RESULT(yes)) case $host in *-*-linux*|*-*-solaris*) - AC_CHECK_FUNCS(dgettext, [], - [AC_CHECK_LIB(intl, dgettext, [LIBS="${LIBS} -lintl"] + # dgettext() may be defined to dgettext_libintl in the + # header file, so first check that it links w/ additional + # libs, then try with -lintl + AC_LINK_IFELSE([AC_LANG_PROGRAM( + [[#include ]], [(void)dgettext((char *)0, (char *)0);])], + [AC_DEFINE(HAVE_DGETTEXT)], + [AC_CHECK_LIB(intl, dgettext, [LIBS="${LIBS} -lintl"] [AC_DEFINE(HAVE_DGETTEXT)])]) ;; esac -- 2.40.0