Re: gas/ELF: don't accumulate .type settings
authorAlan Modra <amodra@gmail.com>
Tue, 9 Jul 2019 02:57:55 +0000 (12:27 +0930)
committerAlan Modra <amodra@gmail.com>
Tue, 9 Jul 2019 05:00:00 +0000 (14:30 +0930)
commitd69cd47e7e9884f7b3a319936f70b8d93347e9e0
tree0f20c0314732be1cc380e0701b207e3176d6304b
parent64da05d557f59814151e908a34f36996a027d127
Re: gas/ELF: don't accumulate .type settings

git commit f2d4ba38f5 caused many failures for mips-sgi-irix targets,
and added a new test that failed for aarch64, nds32, and rl78.
The mips failures are due to BSF_OBJECT being set in many cases for
symbols by the mips .global/.globl directive.  This patch removes that
code and instead sets BSF_OBJECT in a target frob_symbol function,
also moving the mips hacks in elf_frob_symbol to the new function.

Note that common symbols are handled fine in elf.c:swap_out_syms
without needing to set BSF_OBJECT, so that old code can disappear.

* config/obj-elf.c (elf_frob_symbol): Remove mips hacks.
* config/tc-mips.h (tc_frob_symbol): Define.
(mips_frob_symbol): Declare.
* config/tc-mips.c (s_mips_globl): Don't set BSF_OBJECT for irix.
(mips_frob_symbol): Fudge symbols for irix here.
* testsuite/gas/elf/type-2.e: Allow random target symbols.
gas/ChangeLog
gas/config/obj-elf.c
gas/config/tc-mips.c
gas/config/tc-mips.h
gas/testsuite/gas/elf/type-2.e