[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[or-cvs] Fix a couple of bugs in OpenSSL detection. Also, deal bette...



Update of /home/or/cvsroot/tor
In directory moria:/tmp/cvs-serv21007

Modified Files:
	configure.in 
Log Message:
Fix a couple of bugs in OpenSSL detection. Also, deal better when there are multiple SSLs installed.

Index: configure.in
===================================================================
RCS file: /home/or/cvsroot/tor/configure.in,v
retrieving revision 1.268
retrieving revision 1.269
diff -u -p -d -r1.268 -r1.269
--- configure.in	13 Mar 2006 00:25:35 -0000	1.268
+++ configure.in	13 Mar 2006 04:58:46 -0000	1.269
@@ -165,12 +165,13 @@ AC_CACHE_CHECK([whether we need extra op
                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 op
                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