From b4a48510cd1bac8c88425f2dfc6307e692956532 Mon Sep 17 00:00:00 2001 From: "Todd C. Miller" Date: Fri, 10 Jun 2011 15:28:58 -0400 Subject: [PATCH] Only enable Solaris project support when setproject() is present in libproject. --- configure | 49 +++++++++++++++++++++++++++++++++++++++++++++---- configure.in | 8 ++++++-- 2 files changed, 51 insertions(+), 6 deletions(-) diff --git a/configure b/configure index 6c2ab2c1c..501ec558c 100755 --- a/configure +++ b/configure @@ -14691,11 +14691,52 @@ fi if test ${with_project-'no'} != "no"; then ac_fn_c_check_header_mongrel "$LINENO" "project.h" "ac_cv_header_project_h" "$ac_includes_default" if test "x$ac_cv_header_project_h" = x""yes; then : - $as_echo "#define HAVE_PROJECT_H 1" >>confdefs.h - SUDO_LIBS="${SUDO_LIBS} -lproject" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for setproject in -lproject" >&5 +$as_echo_n "checking for setproject in -lproject... " >&6; } +if test "${ac_cv_lib_project_setproject+set}" = set; then : + $as_echo_n "(cached) " >&6 else - - + ac_check_lib_save_LIBS=$LIBS +LIBS="-lproject $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* 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 setproject (); +int +main () +{ +return setproject (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_project_setproject=yes +else + ac_cv_lib_project_setproject=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_project_setproject" >&5 +$as_echo "$ac_cv_lib_project_setproject" >&6; } +if test "x$ac_cv_lib_project_setproject" = x""yes; then : + + $as_echo "#define HAVE_PROJECT_H 1" >>confdefs.h + + SUDO_LIBS="${SUDO_LIBS} -lproject" + +fi + + fi @@ -16906,7 +16947,7 @@ fi $as_echo "#define HAVE_LIBINTL_H 1" >>confdefs.h # List of available translations - LINGUAS="fi uk zh_CN" + LINGUAS="eu fi uk zh_CN" fi fi diff --git a/configure.in b/configure.in index 7506f5dc5..2849cd647 100644 --- a/configure.in +++ b/configure.in @@ -1978,8 +1978,12 @@ if test ${with_logincap-'no'} != "no"; then ]) fi if test ${with_project-'no'} != "no"; then - AC_CHECK_HEADER(project.h, AC_DEFINE(HAVE_PROJECT_H) - [SUDO_LIBS="${SUDO_LIBS} -lproject"], -) + AC_CHECK_HEADER(project.h, [ + AC_CHECK_LIB(project, setproject, [ + AC_DEFINE(HAVE_PROJECT_H) + SUDO_LIBS="${SUDO_LIBS} -lproject" + ]) + ], []) fi dnl dnl typedef checks -- 2.40.0