[patch] MIPS: Incorrect calculation for R_MIPS_LO16 relocs

Paul Koning pkoning@equallogic.com
Wed Jun 30 20:32:00 GMT 2004


I didn't understand this discussion particularly well, but let me
toss in an example I just spotted in GCC 3.4.1 RC1 output:

	.loc 1 93 0
	lw	$16,%got(utfile)($28)
	lw	$5,%got($LC0)($28)
	lw	$25,%call16(fopen)($28)
	addiu	$4,$16,%lo(utfile)
	jalr	$25
	addiu	$5,$5,%lo($LC0)

According to comments in the bfd sources, a %got is treated much like
a %hi.  So what I see here is two %lo operations that are each paired
with a %hi (%got) but the matching one is NOT the immediately
preceding one.

Is this legal?  Is this what the discussion is about?  Will the
current toolchain handle it correctly?

	paul



More information about the Binutils mailing list