[parisc-linux] Non-bootable kernel problems
Jeffrey A Law
law@cygnus.com
Fri, 14 Jul 2000 10:02:05 -0600
In message <Pine.LNX.4.21.0007141038590.15538-100000@front.linuxcare.com.au>y
ou write:
> On 13 Jul 2000, David Huggins-Daines wrote:
>
> > Okay, this is my final word on this for today, I promise that if I
> > send any more mail on it, it will include a patch :-)
>
> Nice bit of debugging, David. Have a look in
> gcc/config/pa/pa.c:output_global_address
>
> /* How bogus. The compiler is apparently responsible for
> rounding the constant if it uses an LR field selector.
>
> The linker and/or assembler seem a better place since
> they have to do this kind of thing already.
>
> If we fail to do this, HP's optimizing linker may eliminate
> an addil, but not update the ldw/stw/ldo instruction that
> uses the result of the addil. */
> if (round_constant)
> offset = ((offset + 0x1000) & ~0x1fff);
>
> Zap these two lines, and I think the problem will go away.
But that's totally the wrong thing to do as it will break hpux.
The linker is the problem.
jeff