Binutils + OpenSSL issue

Kumba kumba@gentoo.org
Mon May 19 23:08:00 GMT 2003


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



More information about the Binutils mailing list