This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: new gas cannot grok new gcc output
- To: "Aaron J. Grier" <aaron at frye dot com>
- Subject: Re: new gas cannot grok new gcc output
- From: Alan Modra <alan at linuxcare dot com dot au>
- Date: Fri, 9 Feb 2001 18:06:32 +1100 (EST)
- cc: binutils at sources dot redhat dot com
On Thu, 8 Feb 2001, Aaron J. Grier wrote:
>[about m68k-rtems-elf]
> /tmp/cckO515f.s:1890: Error: Value of -1202 too large for field of 1 bytes at 1201
> /tmp/cckO515f.s:1890: Error: Value of -1276 too large for field of 1 bytes at 1275
> /tmp/cckO515f.s:1890: Error: Value of -1374 too large for field of 1 bytes at 1373
These errors are due to problems during m68k relaxation, which is why
the line number is at the end of file. The clue as to what triggers the
problem is the "at <num>" (We ought to print this in hex, BTW)
1201 == 0x4b1
Assembling the source you provided with -Z, then disassembling shows:
0000049c <__register_frame>:
49c: 4e56 0000 linkw %fp,#0
4a0: 4878 0018 pea 18 <decode_uleb128+0x18>
4a4: 61ff 0000 0000 bsrl 4a6 <__register_frame+0xa>
4a6: R_68K_PC32 malloc
4aa: 2f00 movel %d0,%sp@-
4ac: 2f2e 0008 movel %fp@(8),%sp@-
4b0: 6100 4e5e bsrw 5310 <__frame_state_for+0x4616>
4b1: R_68K_PC8 __register_frame_info+0xffffffff
4b4: 4e75 rts
So the problem occurs when then R_68K_PC8 reloc is being created.
Hmm, there's another minor problem here too. The above disassembly gets
the "bsr" wrong as it really should be "bsrs".
Sorry this isn't a fix, but maybe someone else will take it from here.
Alan Modra
--
Linuxcare. Support for the Revolution.