[parisc-linux] Non-bootable kernel problems

David Huggins-Daines dhd@linuxcare.com
13 Jul 2000 17:14:55 -0400


David Huggins-Daines <dhd@linuxcare.com> writes:

> It looks like binutils is incorrectly treating those fields as
> unsigned, or has an off by one error, or something similar.  The

No.  My mistake.  binutils is doing the right thing, the problem is
that, due to the way the LR' and RR' field selectors work, there is a
bad interaction between cases in which the DPREL21L and DPREL14R (or
any 21L and 14R relocations actually) are "split" like this, and ld
-r, which tends to increase the addends to a point where LR' and RR'
have different effects (LR' expects RR' to be positive, but it isn't).
Then during final relocation, the wrong thing happens.

So it would appear that this is a problem with GCC, but I'm not really
sure.

I'll have a better explanation once I work through the failure modes
and come up with a good short testcase.

-- 
dhd@linuxcare.com, http://www.linuxcare.com/
Linuxcare. Support for the revolution.