diff options
author | Nick Mathewson <nickm@torproject.org> | 2006-03-13 04:58:46 +0000 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2006-03-13 04:58:46 +0000 |
commit | b318bd8989bf58d3d3cda55dbfc5004f968bd4e6 (patch) | |
tree | d876b9b54691f301993044ac22ff5cf6c79a595c /configure.in | |
parent | 94dac6b13919e2467215d882df69926b90068472 (diff) | |
download | tor-b318bd8989bf58d3d3cda55dbfc5004f968bd4e6.tar.gz tor-b318bd8989bf58d3d3cda55dbfc5004f968bd4e6.zip |
Fix a couple of bugs in OpenSSL detection. Also, deal better when there are multiple SSLs installed.
svn:r6148
Diffstat (limited to 'configure.in')
-rw-r--r-- | configure.in | 40 |
1 files changed, 30 insertions, 10 deletions
diff --git a/configure.in b/configure.in index c744049803..6f68091218 100644 --- a/configure.in +++ b/configure.in @@ -165,12 +165,13 @@ AC_CACHE_CHECK([whether we need extra options to link libevent], ac_cv_libevent_linker_option, [ saved_LDFLAGS="$LDFLAGS" le_runs=no + linked_with=nothing for le_extra in "" "-Wl,-R$le_libdir" "-R$le_libdir" ; do LDFLAGS="$le_extra $saved_LDFLAGS" AC_TRY_RUN([void *event_init(void); int main(int c, char **v) { event_init(); return 0; - }], + }], libevent_runs=yes, libevent_runs=no) if test $libevent_runs = yes ; then if test -z "$le_extra" ; then @@ -254,6 +255,7 @@ AC_CACHE_CHECK([whether we need extra options to link OpenSSL], ac_cv_openssl_linker_option, [ saved_LDFLAGS="$LDFLAGS" ssl_runs=no + linked_with=nothing for ssl_extra in "" "-Wl,-R$ssl_libdir" "-R$ssl_libdir" ; do LDFLAGS="$ssl_extra $saved_LDFLAGS" AC_TRY_RUN([ @@ -269,22 +271,40 @@ int main(void) ], openssl_runs=yes, openssl_runs=no) if test $openssl_runs = yes ; then - if test -z "$ssl_extra" ; then - ac_cv_openssl_linker_option='(none)' + if test "$linked_with" = nothing; then + linked_with="$ssl_extra" + fi + AC_TRY_RUN([ +#include <openssl/opensslv.h> +int main(void) { return OPENSSL_VERSION_NUMBER == SSLeay(); }], + right_version=yes, right_version=no) + if test "$right_version" = yes; then + if test -z "$ssl_extra" ; then + ac_cv_openssl_linker_option='(none)' + else + ac_cv_openssl_linker_option=$ssl_extra + fi + ssl_runs=yes + break + fi + fi + done + if test $ssl_runs = no ; then + if test "$linked_with" = 'nothing' ; then + AC_MSG_ERROR([Found linkable OpenSSL in $ac_cv_openssl_dir, but it doesn't run, even with -R. Maybe specify another using --with-ssl-dir?]) + else + if test -z "$linked_with" ; then + ac_cv_openssl_linker_option='(none)' else - ac_cv_openssl_linker_option=$ssl_extra + ac_cv_openssl_linker_option=$linked_with fi - ssl_runs=yes - break + AC_MSG_WARN([I managed to make OpenSSL link and run, but I couldn't make it run with the same version as the headers made us expect.]) fi - done - if test ssl_runs = no ; then - AC_MSG_ERROR([Found linkable OpenSSL in $ac_cv_openssl_dir, but it doesn't run, even with -R. Maybe specify another using --with-ssl-dir?]) fi LDFLAGS="$saved_LDFLAGS" ]) -if test $ac_cv_openssl_linker_option != '(none)' ; then +if test "$ac_cv_openssl_linker_option" != '(none)' ; then LDFLAGS="$ac_cv_openssl_linker_option $LDFLAGS" fi |