--- ./source3/configure.in.orig 2010-10-07 18:41:16.000000000 +0200 +++ ./source3/configure.in 2010-10-17 01:15:14.000000000 +0200 @@ -23,6 +23,7 @@ m4_include(pkg.m4) AC_LIBREPLACE_CC_CHECKS +AC_LIBREPLACE_RUNTIME_LIB_PATH_VAR m4_include(../lib/tevent/libtevent.m4) @@ -755,9 +756,13 @@ AC_PATH_PROG(CUPS_CONFIG, cups-config) if test "x$CUPS_CONFIG" != x; then + ac_save_PRINT_CPPFLAGS=$CPPFLAGS + ac_save_PRINT_LDFLAGS=$LDFLAGS - ac_save_LDFLAGS=$LDFLAGS ac_save_PRINT_LIBS=$PRINT_LIBS + CPPFLAGS="$CPPFLAGS `$CUPS_CONFIG --cflags`" + LDFLAGS="$LDFLAGS `$CUPS_CONFIG --ldflags`" + AC_CHECK_HEADERS(cups/cups.h cups/language.h) if test x"$ac_cv_header_cups_cups_h" = xyes -a \ @@ -766,8 +771,8 @@ # underlinked. With cups-config --libs we pull in unwanted and unneeded # dendencies including thread libraries - use cups-config only if really # required. - AC_CHECK_LIB_EXT(cups, ac_save_PRINT_LIBS , httpConnect, - [PRINT_LIBS"$ac_save_PRINT_LIBS -lcups"], + AC_CHECK_LIB_EXT(cups, ac_save_PRINT_LIBS, httpConnect, + [PRINT_LIBS="$ac_save_PRINT_LIBS -lcups"], [AC_MSG_WARN([your cups library doesn't link with -lcups alone, it might be underlinked.]) ; PRINT_LIBS="$ac_save_PRINT_LIBS `$CUPS_CONFIG --libs`"]) @@ -776,10 +781,10 @@ AC_CHECK_LIB_EXT(cups, PRINT_LIBS, httpConnectEncrypt) else AC_MSG_WARN([cups-config around but cups-devel not installed]) - CFLAGS=$ac_save_CFLAGS - LDFLAGS=$ac_save_LDFLAGS PRINT_LIBS=$ac_save_PRINT_LIBS fi + CPPFLAGS=$ac_save_PRINT_CPPFLAGS + LDFLAGS=$ac_save_PRINT_LDFLAGS elif test x"$enable_cups" = x"yes"; then AC_MSG_ERROR(Cups support required but cups-config not located. Make sure cups-devel related files are installed.) @@ -1711,8 +1716,12 @@ AC_MSG_RESULT($BLDSHARED) -saved_before_as_needed_ldflags="$LDFLAGS" -for flags in "-Wl,--as-needed" "-Wl,-z,ignore" "-z ignore" ; do +AC_ARG_ENABLE(as-needed, + [AS_HELP_STRING([--enable-as-needed], + [Turn on as-needed support if available (default=auto)])]) +if test "x$enable_as_needed" != xno; then + saved_before_as_needed_ldflags="$LDFLAGS" + for flags in "-Wl,--as-needed" "-Wl,-z,ignore" "-z ignore" ; do saved_ldflags="$LDFLAGS" AC_MSG_CHECKING([if $flags works]) LDFLAGS="$flags $saved_ldflags" @@ -1723,7 +1732,46 @@ AC_MSG_RESULT([no])) LDFLAGS="$LD_AS_NEEDED_FLAG $saved_ldflags" test x"$ld_as_needed_flag_found" = xyes && break -done + done +fi + +if test x$ld_as_needed_flag_found = xyes ; then +# check if ld has bug described in https://bugzilla.samba.org/show_bug.cgi?id=7209#c17 + AC_MSG_CHECKING([if $LD_AS_NEEDED_FLAG has explicit external libs bug]) +cat > conftest_shb.c < conftest_sha.c < conftest.c <&AS_MESSAGE_LOG_FD 2>&1]) + AC_TRY_COMMAND([$CC $CPPFLAGS $CFLAGS $PICFLAG -c -o conftest_shb.o conftest_shb.c 1>&AS_MESSAGE_LOG_FD 2>&1]) + TESTCMD="`eval echo \"$SHLD $LDSHFLAGS $PICFLAG\"`" + AC_TRY_COMMAND([$TESTCMD -o libconftest_shb.$SHLIBEXT conftest_shb.o 1>&AS_MESSAGE_LOG_FD 2>&1]) + AC_TRY_COMMAND([$TESTCMD -o libconftest_sha.$SHLIBEXT conftest_sha.o 1>&AS_MESSAGE_LOG_FD 2>&1]) + AC_TRY_COMMAND([$CC -o conftest conftest.c $LDFLAGS -L. -lconftest_sha -lconftest_shb 1>&AS_MESSAGE_LOG_FD 2>&1]) + if AC_TRY_COMMAND([eval "$LIB_PATH_VAR=. ./conftest 1>&AS_MESSAGE_LOG_FD 2>&1"]) + then + AC_MSG_RESULT([no]) + else + ld_as_needed_flag_found=no + LDFLAGS="$saved_before_as_needed_ldflags" + AC_MSG_RESULT([yes]) + fi + rm conftest* libconftest* +fi # check if we have to disable LD_AS_NEEDED_FLAG: # On some systems for a veriety of reasons linking with @@ -1787,9 +1835,6 @@ AC_MSG_CHECKING([PICFLAG]) AC_MSG_RESULT([$PICFLAG]) -AC_MSG_CHECKING([NSSSONAMEVERSIONSUFFIX]) -AC_MSG_RESULT([$NSSSONAMEVERSIONSUFFIX]) - AC_CACHE_CHECK([whether building shared libraries actually works], [ac_cv_shlib_works],[ # try building a trivial shared library @@ -1826,7 +1871,6 @@ AC_DEFINE_UNQUOTED(SHLIBEXT, "$SHLIBEXT", [Shared library extension]) -AC_LIBREPLACE_RUNTIME_LIB_PATH_VAR ########################################################### @@ -4222,10 +4266,10 @@ ################################################################ # first test for Active Directory support being enabled - #if test x"$with_ads_support" = x"no"; then - # AC_MSG_ERROR(Active Directory support is required to enable DNS Update support) - # with_dnsupdate_support=no - #fi + if test x"$with_ads_support" = x"no"; then + AC_MSG_ERROR(Active Directory support is required to enable DNS Update support) + with_dnsupdate_support=no + fi ################################################################## # then test for uuid.h (necessary to generate unique DNS keynames # (uuid.h is required for this test) @@ -4470,15 +4514,51 @@ x"$ac_cv_header_pam_pam_modules_h" = x"no" ; then if test x"${try_pam}" = x"yes";then AC_MSG_ERROR([--with-pam=yes but pam_modules.h not found]) - fi + fi create_pam_modules=no - fi + fi if test x"$use_pam" = x"yes"; then - AC_DEFINE(WITH_PAM,1,[Whether to include PAM support]) + AC_DEFINE(WITH_PAM,1,[Whether to include PAM support]) AC_DEFINE(HAVE_LIBPAM,1,[Whether libpam is available]) AUTH_LIBS="$AUTH_LIBS $PAM_LIBS" - with_pam_for_crypt=yes + with_pam_for_crypt=yes + + AC_VERIFY_C_PROTOTYPE( + [int pam_get_data(const pam_handle_t *pamh, const char *module_data_name, const void **data)], + [return 0;], + [AC_DEFINE(PAM_GET_DATA_ARG3_CONST_VOID_PP, 1, [Whether pam_get_data 3 argument is a const pointer to pointer])], + [ + dnl Old OpenPAM declaration + AC_VERIFY_C_PROTOTYPE( + [int pam_get_data(pam_handle_t *pamh, const char *module_data_name, void **data)], + [return 0;], + [AC_DEFINE(PAM_GET_DATA_ARG3_VOID_PP, 1, [Whether pam_get_data 3 argument is a void pointer to pointer])], + [], [ + #include + #if HAVE_SECURITY_PAM_APPL_H + #include + #endif + #if HAVE_PAM_PAM_APPL_H + #include + #endif + #if HAVE_SECURITY_PAM_MODULES_H + #include + #endif + ] + )],[ + #include + #if HAVE_SECURITY_PAM_APPL_H + #include + #endif + #if HAVE_PAM_PAM_APPL_H + #include + #endif + #if HAVE_SECURITY_PAM_MODULES_H + #include + #endif + ] + ) if test x"$create_pam_modules" = x"yes"; then AC_DEFINE(WITH_PAM_MODULES,1,[Whether to include PAM MODULES support]) @@ -4488,7 +4568,7 @@ AC_CHECK_HEADERS(pam/pam_ext.h pam/_pam_macros.h) AC_CHECK_FUNC_EXT(pam_vsyslog,$PAM_LIBS) else - AC_MSG_WARN([PAM support detected but PAM MODULES support is missing]) + AC_MSG_WARN([PAM support detected but PAM MODULES support is missing]) fi fi AC_MSG_CHECKING(whether to use PAM support) @@ -5480,7 +5560,8 @@ esac fi # with_acl_support - +# check for NFSv4 acl +AC_CHECK_LIB(sunacl, acl, [ACL_LIBS="$ACL_LIBS -lsunacl"]) ################################################# # check for AIO support @@ -6021,6 +6102,7 @@ NSSSONAMEVERSIONSUFFIX=".1" WINBIND_NSS_EXTRA_OBJS="../nsswitch/winbind_nss_freebsd.o \ ../nsswitch/winbind_nss_linux.o" + WINBIND_WINS_NSS_EXTRA_OBJS="../nsswitch/wins_freebsd.o" WINBIND_NSS="../nsswitch/nss_winbind.$SHLIBEXT" WINBIND_WINS_NSS="../nsswitch/nss_wins.$SHLIBEXT" ;; @@ -6111,17 +6193,10 @@ AC_DEFINE(WITH_WINBIND,1,[Whether to link to wbclient]) EXTRA_BIN_PROGS="$EXTRA_BIN_PROGS bin/wbinfo\$(EXEEXT)" else - if test x"$enable_developer" = x"yes" -a x"$LINK_LIBWBCLIENT" = x"STATIC" ; then - BUILD_LIBWBCLIENT_SHARED=no - else - BUILD_LIBWBCLIENT_SHARED=yes - fi - LIBWBCLIENT_SHARED_TARGET=bin/libwbclient.$SHLIBEXT LIBWBCLIENT_STATIC_TARGET=bin/libwbclient.a LIBWBCLIENT_SOVER=0 if test $BLDSHARED = true -a x"$HAVE_WINBIND" = x"yes" -a x"$BUILD_LIBWBCLIENT_SHARED" = x"yes"; then - NSS_MODULES="${WINBIND_NSS} ${WINBIND_WINS_NSS}" ## Only worry about libwbclient if we have shared # library support LIBWBCLIENT_SHARED=$LIBWBCLIENT_SHARED_TARGET @@ -6141,19 +6216,26 @@ EXTRA_BIN_PROGS="$EXTRA_BIN_PROGS bin/wbinfo\$(EXEEXT)" EXTRA_SBIN_PROGS="$EXTRA_SBIN_PROGS bin/winbindd\$(EXEEXT)" - if test $BLDSHARED = true -a x"$create_pam_modules" = x"yes"; then + if test $BLDSHARED = true; then + NSS_MODULES="${WINBIND_NSS} ${WINBIND_WINS_NSS}" + if test x"$create_pam_modules" = x"yes"; then PAM_MODULES="$PAM_MODULES pam_winbind" INSTALL_PAM_MODULES="installpammodules" UNINSTALL_PAM_MODULES="uninstallpammodules" + fi fi else AC_MSG_RESULT(no$winbind_no_reason) fi +AC_MSG_CHECKING([NSSSONAMEVERSIONSUFFIX]) +AC_MSG_RESULT([$NSSSONAMEVERSIONSUFFIX]) + AC_SUBST(WINBIND_NSS) -AC_SUBST(WINBIND_WINS_NSS) AC_SUBST(WINBIND_NSS_LDSHFLAGS) AC_SUBST(WINBIND_NSS_EXTRA_OBJS) +AC_SUBST(WINBIND_WINS_NSS) +AC_SUBST(WINBIND_WINS_NSS_EXTRA_OBJS) AC_SUBST(NSSSONAMEVERSIONSUFFIX) AC_SUBST(WINBIND_KRB5_LOCATOR) @@ -6421,13 +6503,21 @@ # Start AC_CHECK_FUNC(getmntent) -AC_CHECK_HEADERS(sys/statfs.h) +AC_CHECK_HEADERS(sys/statfs.h sys/mount.h) AC_MSG_CHECKING([vfs_fileid: checking for statfs() and struct statfs.f_fsid)]) AC_CACHE_VAL(vfsfileid_cv_statfs,[ AC_TRY_RUN([ #include + #ifdef HAVE_SYS_PARAM_H + #include + #endif + #ifdef HAVE_SYS_MOUNT_H + #include + #endif + #ifdef HAVE_SYS_STATFS_H #include + #endif int main(void) { struct statfs fsd; @@ -6757,6 +6847,16 @@ LIBS="$LIBS -ldmalloc" fi +AC_ARG_ENABLE(dmalloc, [AS_HELP_STRING([--enable-dmalloc], [Enable heap debugging [default=no]])]) + +if test "x$enable_dmalloc" = xyes +then + AC_DEFINE(ENABLE_DMALLOC, 1, [Define to turn on dmalloc debugging]) + AC_DEFINE(DMALLOC_FUNC_CHECK, 1, + [Define to check invariants around some common functions]) + LIBS="$LIBS -ldmalloc" +fi + dnl Remove -L/usr/lib/? from LDFLAGS and LIBS LIB_REMOVE_USR_LIB(LDFLAGS) LIB_REMOVE_USR_LIB(LIBS)