[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