This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: new gas cannot grok new gcc output


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]