[parisc-linux] test6 merge
Richard Hirst
rhirst@linuxcare.com
Mon, 21 Aug 2000 19:16:42 +0100
On Mon, Aug 21, 2000 at 01:01:12PM -0400, David Huggins-Daines wrote:
> Richard Hirst <rhirst@linuxcare.com> writes:
>
> > Those two files have a number of function names in common; they are
> > declared static, so it shouldn't matter. ncr_chip_reset() is one
> > example. In practice, the code in ncr53c8xx.c tries to call its local
> > ncr_chip_reset(), but ends up in the ncr_chip_reset() function in
> > sym53c8xx.c.
> >
> > It appeared to work fine with 2.3.99pre8, and I havn't changed my
> > cross compiler.
>
> I'm not seeing this problem here, at least, not based on an
> examination of the kernel's object code.
>
> In mine I have:
>
> sym53c8xx: ncr_chip_reset = c01cdec0 (a4)
> ncr_attach = c02a37e4 (934)
> ncr53c8xx: ncr_chip_reset = c01cdf80 (e8)
> ncr_attach = c02a6ff0 (5d8)
I have:
sym53c8xx: c01c4800 t ncr_chip_reset
c029b964 ? ncr_attach
ncr53c8xx: c01c48c0 t ncr_chip_reset
c029f130 ? ncr_attach
> Where ncr_attach calls ncr_chip_reset, it looks like:
>
> 1d34: 0e b3 12 80 stw r19,0(sr0,r21)
> 1d38: 08 03 02 5a copy r3,r26
> 1d3c: e8 40 00 00 b,l 1d44 <ncr_attach+0x354>,rp
> 1d3c: R_PARISC_PCREL17F ncr_chip_reset
>
> And in the object file, we have:
>
> c02a7334: 0e b3 12 80 stw r19,0(sr0,r21)
> c02a7338: 08 03 02 5a copy r3,r26
> c02a733c: e8 58 12 fd b,l c0298cc0 <__init_begin+0xcc0>,rp
I have
c029f484: 08 03 02 5a copy r3,r26
c029f488: e8 58 04 d5 b,l c02906f8 <__init_begin+0x6f8>,rp
>
> Pointing at this stub:
>
> c0298cc0: 20 26 f8 03 ldil -3fe32800,r1
> c0298cc4: e0 20 2f 02 be,n 780(sr4,r1)
Mine is
c02906f8: 20 22 d8 03 ldil -3fe3b800,r1
c02906fc: e0 20 20 02 be,n 0(sr4,r1)
> 0x780 - 0x3fe32800 = 0xc01cdf80, which is the right one.
0 - 0x3fe3b800 = 0xc01c4800, which is the WRONG one
> This is with today's binutils.
This is with xc-20000802
For completeness, in sym53c8xx.c version of ncr_attach() I see
c029c010: 68 74 13 80 stw r20,9c0(sr0,r3)
c029c014: e8 5a 0d b9 b,l c02906f8 <__init_begin+0x6f8>,rp
Which points at the same stub.
Guess I need a new binutils.
Thanks for your help,
Richard