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: msokolov at ivan dot Harhan dot ORG (Michael Sokolov)
- Subject: Re: new gas cannot grok new gcc output
- From: Andreas Schwab <schwab at suse dot de>
- Date: 15 Feb 2001 11:20:50 +0100
- Cc: binutils at sources dot redhat dot com
- References: <0102150739.AA13868@ivan.Harhan.ORG>
msokolov@ivan.Harhan.ORG (Michael Sokolov) writes:
|> So it seems to me that the assembler can assume that if the user wrote
|>
|> jbsr foo
|>
|> instead of
|>
|> jbsr foo@PLTPC
|>
|> then he/she doesn't need/want the special behavior for objects that go into
|> DSOs. Or am I missing something?
If you force short addressing to a globl symbol, you do something wrong.
jbsr triggers automatic relaxing, bsrs does not. Using the latter would
be a user error. For jbsr the assembler should do the right thing.
|> But even if I'm wrong and the assembler must always keep all internal relocs
|> referencing .globl symbols, it never actually did this on m68k ELF, and the
|> TC_RELOC_RTSYM_LOC_FIXUP definition in config/tc-m68k.h has never had this
|> effect, its only effect has always been the breakage we are analysing, it seems
|> to me.
Embedded elf targets are exempted from the rule that references to globl
symbol cannot be relaxed, on the grounds that they don't have shared
libraries (see relaxable_symbol in tc-m68k.c). Seems like
TC_RELOC_RTSYM_LOC_FIXUP needs some fixup.
Andreas.
--
Andreas Schwab "And now for something
SuSE Labs completely different."
Andreas.Schwab@suse.de
SuSE GmbH, Schanzäckerstr. 10, D-90443 Nürnberg