$NetBSD: patch-af,v 1.13 2016/02/29 17:13:06 jperkin Exp $ Fix HAVE_COMPILER_WILL_OPTIMIZE_OUT_FNS test, from upstream. --- configure.orig 2015-02-22 14:16:23.000000000 +0000 +++ configure @@ -15277,20 +15277,24 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include -int -main () -{ - - if (0) { - this_function_does_not_exist(); - } else { - return 1; - } - +#include +size_t __unsafe_string_function_usage_here_size_t__(void); +#define CHECK_STRING_SIZE(d, len) (sizeof(d) != (len) && sizeof(d) != sizeof(char *)) +static size_t push_string_check_fn(void *dest, const char *src, size_t dest_len) { + return 0; +} - ; - return 0; +#define push_string_check(dest, src, dest_len) \ + (CHECK_STRING_SIZE(dest, dest_len) \ + ? __unsafe_string_function_usage_here_size_t__() \ + : push_string_check_fn(dest, src, dest_len)) + +int main(int argc, char **argv) { + char outbuf[1024]; + char *p = outbuf; + const char *foo = "bar"; + p += 31 + push_string_check(p + 31, foo, sizeof(outbuf) - (p + 31 - outbuf)); + return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : @@ -19513,6 +19517,7 @@ $as_echo "#define DARWINOS 1" >>confdefs BLDSHARED="true" LDSHFLAGS="-dynamiclib -flat_namespace -undefined suppress" + SONAMEFLAG="-install_name \$(LIBDIR)/" CFLAGS="$CFLAGS -fno-common" SHLD="\${CC}" SHLIBEXT="dylib" @@ -19562,7 +19567,7 @@ fi 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 + for flags in "-Wl,-z,ignore" "-z ignore" ; do saved_ldflags="$LDFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $flags works" >&5 $as_echo_n "checking if $flags works... " >&6; } @@ -26638,9 +26643,9 @@ LIBS="-lcrypto $KRB5_LIBS $LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for des_set_key in -lcrypto" >&5 -$as_echo_n "checking for des_set_key in -lcrypto... " >&6; } -if ${ac_cv_lib_ext_crypto_des_set_key+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVP_des_cbc in -lcrypto" >&5 +$as_echo_n "checking for EVP_des_cbc in -lcrypto... " >&6; } +if ${ac_cv_lib_ext_crypto_EVP_des_cbc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -26652,31 +26657,31 @@ else #ifdef __cplusplus extern "C" #endif -char des_set_key (); +char EVP_des_cbc (); int main () { -return des_set_key (); +return EVP_des_cbc (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_ext_crypto_des_set_key=yes; + ac_cv_lib_ext_crypto_EVP_des_cbc=yes; ac_cv_lib_ext_crypto=yes else - ac_cv_lib_ext_crypto_des_set_key=no; + ac_cv_lib_ext_crypto_EVP_des_cbc=no; ac_cv_lib_ext_crypto=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ext_crypto_des_set_key" >&5 -$as_echo "$ac_cv_lib_ext_crypto_des_set_key" >&6; } - if test $ac_cv_lib_ext_crypto_des_set_key = yes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ext_crypto_EVP_des_cbc" >&5 +$as_echo "$ac_cv_lib_ext_crypto_EVP_des_cbc" >&6; } + if test $ac_cv_lib_ext_crypto_EVP_des_cbc = yes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_DES_SET_KEY 1 +#define HAVE_EVP_DES_CBC 1 _ACEOF fi @@ -36049,31 +36054,39 @@ case "$host_os" in NSSSONAMEVERSIONSUFFIX=".2" WINBIND_NSS_EXTRA_OBJS="../nsswitch/winbind_nss_linux.o" ;; - *freebsd[5-9]*) - # FreeBSD winbind client is implemented as a wrapper around - # the Linux version. - NSSSONAMEVERSIONSUFFIX=".1" - WINBIND_NSS_EXTRA_OBJS="../nsswitch/winbind_nss_freebsd.o \ - ../nsswitch/winbind_nss_linux.o" - WINBIND_NSS="../nsswitch/nss_winbind.$SHLIBEXT" - WINBIND_WINS_NSS="../nsswitch/nss_wins.$SHLIBEXT" - ;; - - *netbsd*[3-9]*) - # NetBSD winbind client is implemented as a wrapper - # around the Linux version. It needs getpwent_r() to - # indicate libc's use of the correct nsdispatch API. - # - if test x"$ac_cv_func_getpwent_r" = x"yes"; then - WINBIND_NSS_EXTRA_OBJS="\ - ../nsswitch/winbind_nss_netbsd.o \ + *freebsd*) + case "$UNAME_R" in + [5-9]*) + # FreeBSD winbind client is implemented as a wrapper + # around the Linux version. + NSSSONAMEVERSIONSUFFIX=".1" + WINBIND_NSS_EXTRA_OBJS="../nsswitch/winbind_nss_freebsd.o \ ../nsswitch/winbind_nss_linux.o" WINBIND_NSS="../nsswitch/nss_winbind.$SHLIBEXT" WINBIND_WINS_NSS="../nsswitch/nss_wins.$SHLIBEXT" - else - HAVE_WINBIND=no - winbind_no_reason=", getpwent_r is missing on $host_os so winbind is unsupported" - fi + ;; + esac + ;; + + *netbsd*) + case "$UNAME_R" in + [3-9]*) + # NetBSD winbind client is implemented as a wrapper + # around the Linux version. It needs getpwent_r() to + # indicate libc's use of the correct nsdispatch API. + # + if test x"$ac_cv_func_getpwent_r" = x"yes"; then + WINBIND_NSS_EXTRA_OBJS="\ + ../nsswitch/winbind_nss_netbsd.o \ + ../nsswitch/winbind_nss_linux.o" + WINBIND_NSS="../nsswitch/nss_winbind.$SHLIBEXT" + WINBIND_WINS_NSS="../nsswitch/nss_wins.$SHLIBEXT" + else + HAVE_WINBIND=no + winbind_no_reason=", getpwent_r is missing on $host_os so winbind is unsupported" + fi + ;; + esac ;; *irix*) # IRIX has differently named shared libraries