The root of the problem seems to be openssl. libcrypto should have
linked against libdl. On my system I see the following line when
configuring openssl:
EX_LIBS =-ldl
and the resulting openssl libraries (atleast the shared ones) get
linked against libdl.
I get the same line while configuring and libcrypto seems to be linked against libdl:
$ ldd /usr/lib/libcrypto.so
linux-gate.so.1 => (0xffffe000)
libdl.so.2 => /lib/libdl.so.2 (0xb7eba000)
libc.so.6 => /lib/libc.so.6 (0xb7da3000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
the problem seems to be specifically with the static libcrypto.a. The exact error message is:
gcc -o ssh ssh.o readconf.o clientloop.o sshtty.o sshconnect.o sshconnect1.o sshconnect2.o -L. -Lopenbsd-compat/ -L/usr/db42/lib -lssh -lopenbsd-compat -lresolv /usr/lib/libcrypto.a -lutil -lz -lnsl -lcrypt
/usr/lib/libcrypto.a(dso_dlfcn.o)(.text+0x6d): In function `dlfcn_load':
: undefined reference to `dlopen'
/usr/lib/libcrypto.a(dso_dlfcn.o)(.text+0xfc): In function `dlfcn_load':
: undefined reference to `dlclose'
/usr/lib/libcrypto.a(dso_dlfcn.o)(.text+0x148): In function `dlfcn_load':
: undefined reference to `dlerror'
/usr/lib/libcrypto.a(dso_dlfcn.o)(.text+0x205): In function `dlfcn_unload':
: undefined reference to `dlclose'
/usr/lib/libcrypto.a(dso_dlfcn.o)(.text+0x320): In function `dlfcn_bind_var':
: undefined reference to `dlsym'
/usr/lib/libcrypto.a(dso_dlfcn.o)(.text+0x3e9): In function `dlfcn_bind_var':
: undefined reference to `dlerror'
/usr/lib/libcrypto.a(dso_dlfcn.o)(.text+0x490): In function `dlfcn_bind_func':
: undefined reference to `dlsym'
/usr/lib/libcrypto.a(dso_dlfcn.o)(.text+0x51d): In function `dlfcn_bind_func':
: undefined reference to `dlerror'
collect2: ld returned 1 exit status
make: *** [ssh] Error 1
Just to be clear this happens when executing
sed -i "s:-lcrypto:/usr/lib/libcrypto.a:g" configure
before running configure.
Laurens
-- http://linuxfromscratch.org/mailman/listinfo/blfs-dev FAQ: http://www.linuxfromscratch.org/blfs/faq.html Unsubscribe: See the above information page
