Bug 335 - OpenSSL headers do not match your library
Summary: OpenSSL headers do not match your library
Status: CLOSED FIXED
Alias: None
Product: Portable OpenSSH
Classification: Unclassified
Component: Build system (show other bugs)
Version: -current
Hardware: ix86 BSDI
: P1 normal
Assignee: OpenSSH Bugzilla mailing list
URL:
Keywords: help-wanted
Depends on:
Blocks:
 
Reported: 2002-07-04 19:45 AEST by Alb3
Modified: 2004-04-14 12:24 AEST (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alb3 2002-07-04 19:45:11 AEST
giving this configure string:

./configure --prefix=/usr --sysconfdir=/etc/ssh --localstatedir=/var --with-
entropy-timeout --with-rand-helper --with-md5-passwords --with-4in6

and compiling it, it gives me an error at ssh-rand-helper.c compilation and 
stops compiling!!!! 

make: *** [ssh-rand-helper.o] Error 1

i'm using gcc version 2.95.3 20010315 (release) on a i586 machine.

Please fix this

Alb3
Comment 1 Darren Tucker 2002-07-04 21:50:17 AEST
Which distribution and release? What was the actual error message? (Generally 
you'll need to capture the last 10-15 lines.) And were all those exclamation 
marks really necessary?
Comment 2 Jim Knoble 2002-07-05 02:46:15 AEST
Why are you trying to build with --with-rand-helper on Linux?  Linux has a
perfectly good /dev/random and /dev/urandom, which OpenSSL will use by default. 
No external entropy gathering process is necessary.
Comment 3 David WU 2002-07-08 01:48:22 AEST
checking whether OpenSSL's headers match the library... no
configure: error: Your OpenSSL headers do not match your library

On BSD/OS 4.2 with OpenSSL 0.9.6d, no problem configuring and compiling 3.1p1, 
but both 3.3p1 and 3.4p1 ended configuration with the above error message.

I checked but did not find unknown duplicate header files from previous versions
of OpenSSL.   Perhaps I was looking at the wrong places.


Best regards
David WU
dyw@iohk.com
Comment 4 Markus Friedl 2002-07-09 20:33:06 AEST
some bsd/os patch for bsd/os 4.2 did update OpenSSL, but failed to
update either libcrypto.a or the includes. please tell bsdi.
Comment 5 Kevin Zembower 2002-07-27 01:04:31 AEST
Get this error running ./configure on openssh-3.4p1:
checking whether OpenSSL's headers match the library... no
configure: error: Your OpenSSL headers do not match your library

Installed openssl-0.9.6d and openssl-engine-0.9.6d to try to correct this error,
but still got the same result.

Didn't see the resolution, even though the bug is marked "resolved". Sorry if
I missed it; please point it out to me.

Thanks for your work on this problem

-Kevin Zembower
kzembower@jhuccp.org
Comment 6 Darren Tucker 2002-07-27 02:01:00 AEST
It's normally an openssl installation problem. Check your config.log. Then check 
your system for multiple libcrypto.a's, libcrypto.so's and/or opensslv.h's. 
Comment 7 Darren Tucker 2002-07-27 17:42:57 AEST
FYI I've put up some hints and a tool for diagnosing this type of problem up on 
http://www.zip.com.au/~dtucker/openssh/.

The tool (hopefully) finds all instances of OpenSSL and displays their versions 
and there's a patch to configure that displays the version it finds. With these 
you might be able to determine which ones configure is using.

Currently tested on Redhat with GCC only. Example output:
$ ./findssl.sh 
Searching for OpenSSL header files.
0x0090604fL /usr/include/openssl/opensslv.h
0x0090604fL /usr/local/ssl/include/openssl/opensslv.h

Searching for OpenSSL shared library files.
0x0090602fL /lib/libcrypto.so.0.9.6b
0x0090602fL /lib/libcrypto.so.2
0x0090581fL /usr/lib/libcrypto.so.0
0x0090602fL /usr/lib/libcrypto.so
0x0090581fL /usr/lib/libcrypto.so.0.9.5a
0x0090600fL /usr/lib/libcrypto.so.0.9.6
0x0090600fL /usr/lib/libcrypto.so.1

Searching for OpenSSL static library files.
0x0090602fL /usr/lib/libcrypto.a
0x0090604fL /usr/local/ssl/lib/libcrypto.a
Comment 8 Kevin Zembower 2002-07-31 05:09:12 AEST
Darren, thank you so much for your help. With your guidance, I was able to get
OpenSSH 3.4.1 installed on my three remaining hosts.

For what it's worth, here's some of my notes.
The patch at your page didn't want to work at first. Here's what I did to make 
it work:
centernet:/tmp/openssh-3.4p1 # patch -i tucker.patch configure.ac 
patching file configure.ac
Hunk #1 FAILED at 769.
1 out of 1 hunk FAILED -- saving rejects to file configure.ac.rej
centernet:/tmp/openssh-3.4p1 # cat configure.ac.rej 
***************
*** 769,777 ****
  AC_MSG_CHECKING([whether OpenSSL's headers match the library])
  AC_TRY_RUN(
         [
  #include <string.h>
  #include <openssl/opensslv.h>
- int main(void) { return(SSLeay() == OPENSSL_VERSION_NUMBER ? 0 : 1); }
         ],
         [
                 AC_MSG_RESULT(yes)
--- 769,781 ----
  AC_MSG_CHECKING([whether OpenSSL's headers match the library])
  AC_TRY_RUN(
         [
+ #include <stdio.h>
  #include <string.h>
  #include <openssl/opensslv.h>
+ int main(void) {
+        fprintf(stderr,"OpenSSL library %x headers %x\n", SSLeay(), 
OPENSSL_VERSION_NUMBER);
+        exit(SSLeay() == OPENSSL_VERSION_NUMBER ? 0 : 1); 
+ }
         ],
         [
                 AC_MSG_RESULT(yes)




centernet:/tmp/openssh-3.4p1 # patch -i tucker.patch -F 3 configure.ac 
patching file configure.ac
Hunk #1 succeeded at 774 with fuzz 3 (offset 5 lines).
centernet:/tmp/openssh-3.4p1 # 

As you can see, I increased the 'fuzz factor' (-F) to three from the default of 
2.

One two of my three hosts that failed in the OpenSSH install, the findssl.sh 
script found differing libraries, but on the third, it didn't find any libraries 
at all.

Regardless, all these systems were SuSE 7.1 or 7.2. I used 'rpm -e --nodeps 
openssl' to remove the previous version (I don't use any of the dependancies 
that it reported broken), then reinstalled OpenSSL (not the engine) 0.9.6d.

After that, the installation of OpenSSH 3.4 went normally.

Thank you again for your work on this problem

-Kevin Zembower
Comment 9 Damien Miller 2004-04-14 12:24:18 AEST
Mass change of RESOLVED bugs to CLOSED