ABI breakage

Jacques A. Vidrine nectar at FreeBSD.org
Thu Mar 27 06:29:25 PST 2003


On Thu, Mar 27, 2003 at 11:23:06PM +1100, Tim Robbins wrote:
> wget broke after updating a 4.7 box to 4.8-RC:
> 
> $ wget http://localhost/
> --23:20:19--  http://localhost/
>            => `index.html'
> /usr/libexec/ld-elf.so.1: wget: Undefined symbol "OpenSSL_add_all_algorithms"

You have probably been bitten by the fact that the OpenSSL _port_ had
the wrong version number, and that wget was compiled against the
OpenSSL _port_.  Now at runtime, wget finds the base system OpenSSL
libraries (which are 0.9.7, not 0.9.6 as wget expects).

You might try the following hack to work around the problem.

1) Rename the old port's libraries.

mv /usr/local/lib/libssl.so.3 /usr/local/lib/libSsl.so.3
mv /usr/local/lib/libcrypto.so.3 /usr/local/lib/libCrypto.so.3

2) Patch up your old binaries to refer to the modified names.

ed -s /path/to/wget >/dev/null <<-EOF
/libcrypto\.so/ s/libcrypto\.so\.\([0-9]\)/libCrypto.so.\1/
/libssl\.so/ s/libssl\.so\.\([0-9]\)/libSsl.so.\1/
w
EOF


Or another possibility might be simply

  env LD_LIBRARY_PATH=/usr/local/lib wget ...

but that gets tiresome :-)

Cheers,
-- 
Jacques A. Vidrine <nectar at celabo.org>          http://www.celabo.org/
NTT/Verio SME          .     FreeBSD UNIX     .       Heimdal Kerberos
jvidrine at verio.net     .  nectar at FreeBSD.org  .          nectar at kth.se


More information about the freebsd-stable mailing list