This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: Binutils + OpenSSL issue
Eric Christopher wrote:
What was the bug again?
-eric
(Guess you could say this is the "long" explanation)
Using binutils anytime after oh, Feb 6th, 2003 (That's a rough guess)
caused it to start generating a broken OpenSSL package if compiled from
source. Specifically, libcrypto and libssl start breaking. If you run
the command below:
objdump -R /usr/lib/libcrypto.so.0.9.6 |grep R_MIPS |grep -v
(R_MIPS_32\|R_MIPS_NONE\)
You will start getting error messages similar to the ones below:
BFD: BFD 2.13.90.0.18 20030121 assertion fail elf32-mips.c:1498 BFD:
usr/lib/libcrypto.so.0.9.6(.rel.dyn): relocation 3755 has invalid symbol
index 0
The brokenness is introduced even using -mips1 optimisations (gcc-3.2.x
compiler), however, it appears that the amount of brokeness is small,
and doesn't interfere with the operation of OpenSSL (although the
possibility is there). It's not until you use -mips3 or -mips4
optimisations that the brokeness starts to to become apparent, and
programs that link to OpenSSL, or call upon its various functions, for
example, wget's configure script, get an error like the one below:
./conftest: error while loading shared libraries:
usr/lib/libcrypto.so.0.9.6: unexpected reloc type 0x68
At first, it was believed it was an error specific to Gentoo, due to
the sometimes odd/wacky optimisations people use or to some rogue/bad
patch called in by the portage system during compile. However, as
Thiemo put it, "the unlikely happened", and he was able to reproduce the
error as well by building OpenSSL with binutils CVS.
I've nagged a few people about the bug as I've considered it a show
stopper for myself and a few others running gentoo on their Indigo2/Indy
machines due to having to live with what one might say is an outdated
binutils. Currently, we consider binutils-2.13.90.0.16 to be the
"stable" version, since OpenSSL is such a critical package in the system.
It seems to be a pretty isolated bug, having gone undetected for quite
some time by anyone outside of gentoo really. Hopefully now it can be
eliminated.
--Kumba