[parisc-linux] Non-bootable kernel problems
Jeffrey A Law
law@cygnus.com
Thu, 13 Jul 2000 13:20:35 -0600
In message <87sntd20mo.fsf@linuxcare.com>you write:
> 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.
How/why is ld -r changing the addends? That seems wrong at first glance.
You might look at how the HP SOM tools handle addends during ld -r;
I suspect they don't change.
To the best of my knowledge GCC is using LR/RR in the prescribed way.
jeff