From 3866bdd9f7275f8d137cffc836a53de4e6391d69 Mon Sep 17 00:00:00 2001 From: psychon Date: Thu, 18 Sep 2008 17:52:10 +0000 Subject: [PATCH] Revert rev 1204 Well... Not a complete revert, the error messages are improved for our friendly debian users who cant find -dev packages by themselves. -.- It turns out that on some arches (namely sparc64) libssl depends on libcrypto, but doesn't link to it. This means that order is important when checking for these libs. (Currently the check for libssl fails due to unresolved symbols) Thanks to fred for reporting this. git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@1207 726aef4b-f618-498e-8847-2d620e286838 --- configure | 162 ++++++++++++++++++++++++++------------------------- configure.in | 10 +++- 2 files changed, 91 insertions(+), 81 deletions(-) diff --git a/configure b/configure index 50ee4dbb..051fc7a1 100755 --- a/configure +++ b/configure @@ -3393,81 +3393,8 @@ if test -z "$NOSSL"; then appendInc -I${OPENSSL}/include fi - -{ echo "$as_me:$LINENO: checking for SSL_shutdown in -lssl" >&5 -echo $ECHO_N "checking for SSL_shutdown in -lssl... $ECHO_C" >&6; } -if test "${ac_cv_lib_ssl_SSL_shutdown+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lssl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* 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 SSL_shutdown (); -int -main () -{ -return SSL_shutdown (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_ssl_SSL_shutdown=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_ssl_SSL_shutdown=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_ssl_SSL_shutdown" >&5 -echo "${ECHO_T}$ac_cv_lib_ssl_SSL_shutdown" >&6; } -if test $ac_cv_lib_ssl_SSL_shutdown = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSSL 1 -_ACEOF - - LIBS="-lssl $LIBS" - -else - { { echo "$as_me:$LINENO: error: Could not find libssl. Try --disable-openssl" >&5 -echo "$as_me: error: Could not find libssl. Try --disable-openssl" >&2;} - { (exit 1); exit 1; }; } -fi - + # Don't reorder this! + # On some arches libssl depends on libcrypto without linking to it :( { echo "$as_me:$LINENO: checking for BIO_new in -lcrypto" >&5 echo $ECHO_N "checking for BIO_new in -lcrypto... $ECHO_C" >&6; } @@ -3475,7 +3402,9 @@ if test "${ac_cv_lib_crypto_BIO_new+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lcrypto $LIBS" +LIBS="-lcrypto eg. libssl-dev." >&5 +echo "$as_me: error: Could not find libcrypto. Try --disable-openssl or install the + appropriate dependencies $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -3538,9 +3467,84 @@ _ACEOF LIBS="-lcrypto $LIBS" else - { { echo "$as_me:$LINENO: error: Could not find libcrypto. Try --disable-openssl" >&5 -echo "$as_me: error: Could not find libcrypto. Try --disable-openssl" >&2;} - { (exit 1); exit 1; }; } + { { echo "$as_me:$LINENO: error: Could not find libcrypto. Try --disable-openssl or install the + appropriate dependencies +fi + + +{ echo "$as_me:$LINENO: checking for SSL_shutdown in -lssl" >&5 +echo $ECHO_N "checking for SSL_shutdown in -lssl... $ECHO_C" >&6; } +if test "${ac_cv_lib_ssl_SSL_shutdown+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lssl eg. libssl-dev." >&5 +echo "$as_me: error: Could not find libssl. Try --disable-openssl or install the + appropriate dependencies $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* 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 SSL_shutdown (); +int +main () +{ +return SSL_shutdown (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_ssl_SSL_shutdown=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_ssl_SSL_shutdown=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_ssl_SSL_shutdown" >&5 +echo "${ECHO_T}$ac_cv_lib_ssl_SSL_shutdown" >&6; } +if test $ac_cv_lib_ssl_SSL_shutdown = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBSSL 1 +_ACEOF + + LIBS="-lssl $LIBS" + +else + { { echo "$as_me:$LINENO: error: Could not find libssl. Try --disable-openssl or install the + appropriate dependencies fi diff --git a/configure.in b/configure.in index b64e9e0d..7d8b77f8 100644 --- a/configure.in +++ b/configure.in @@ -120,8 +120,14 @@ if test -z "$NOSSL"; then appendInc -I${OPENSSL}/include fi - AC_CHECK_LIB( ssl, SSL_shutdown,,AC_ERROR([Could not find libssl. Try --disable-openssl]), ) - AC_CHECK_LIB( crypto, BIO_new,,AC_ERROR([Could not find libcrypto. Try --disable-openssl]), ) + # Don't reorder this! + # On some arches libssl depends on libcrypto without linking to it :( + AC_CHECK_LIB( crypto, BIO_new,, + AC_ERROR([Could not find libcrypto. Try --disable-openssl or install the + appropriate dependencies, eg. libssl-dev.]), ) + AC_CHECK_LIB( ssl, SSL_shutdown,, + AC_ERROR([Could not find libssl. Try --disable-openssl or install the + appropriate dependencies, eg. libssl-dev.]), ) if test -z "$NOSSL"; then appendCXX -DHAVE_LIBSSL