aboutsummaryrefslogtreecommitdiff
path: root/gas/config/tc-mips.h
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2019-07-09 12:27:55 +0930
committerAlan Modra <amodra@gmail.com>2019-07-09 14:30:00 +0930
commitd69cd47e7e9884f7b3a319936f70b8d93347e9e0 (patch)
tree0f20c0314732be1cc380e0701b207e3176d6304b /gas/config/tc-mips.h
parent64da05d557f59814151e908a34f36996a027d127 (diff)
downloadgdb-d69cd47e7e9884f7b3a319936f70b8d93347e9e0.zip
gdb-d69cd47e7e9884f7b3a319936f70b8d93347e9e0.tar.gz
gdb-d69cd47e7e9884f7b3a319936f70b8d93347e9e0.tar.bz2
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.
Diffstat (limited to 'gas/config/tc-mips.h')
-rw-r--r--gas/config/tc-mips.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/gas/config/tc-mips.h b/gas/config/tc-mips.h
index 615269d..a928c8a 100644
--- a/gas/config/tc-mips.h
+++ b/gas/config/tc-mips.h
@@ -126,6 +126,11 @@ extern void mips_frob_file (void);
extern void mips_frob_file_after_relocs (void);
#endif
+#ifdef TE_IRIX
+#define tc_frob_symbol(sym, punt) mips_frob_symbol (sym)
+extern void mips_frob_symbol (symbolS *);
+#endif
+
#define tc_fix_adjustable(fixp) mips_fix_adjustable (fixp)
extern int mips_fix_adjustable (struct fix *);