binutils-gdb/gas/config
Jan Beulich f2d4ba38f5 gas/ELF: don't accumulate .type settings
Recently a patch was submitted for a Xen Project test harness binary to
override the compiler specified @object to @func (see [1]). In a reply I
suggested we shouldn't make ourselves dependent on currently unspecified
behavior of gas here: It accumulates all requests, and then
bfd/elf.c:swap_out_syms(), in an apparently ad hoc manner, prioritizes
certain flags over others.

Make the behavior predictable: Generally the last .type is what counts.
Exceptions are directives which set multiple bits (TLS, IFUNC, and
UNIQUE): Subsequent directives requesting just the more generic bit
(i.e. FUNC following IFUNC) won't clear the more specific one.  Warn
about incompatible changes, except from/to STT_NOTYPE.

Also add a new target hook, which hppa wants to use right away afaict.

In the course of adding the warning I ran into two ld testsuite
failures.  I can only assume that it was a copy-and-paste mistake that
lead to the same symbol having its type set twice.

[1] https://lists.xenproject.org/archives/html/xen-devel/2019-05/msg01980.html
2019-07-04 10:35:47 +02:00
..
atof-ieee.c A series of fixes to addres problems detected by compiling the assembler with address sanitization enabled. 2019-05-14 10:42:25 +01:00
atof-vax.c
bfin-aux.h
bfin-defs.h
bfin-lex-wrapper.c
bfin-lex.l
bfin-parse.y
e-crisaout.c
e-criself.c
e-i386aout.c
e-i386coff.c
e-i386elf.c
e-mipself.c
itbl-mips.h
m68k-parse.h
m68k-parse.y
obj-aout.c
obj-aout.h
obj-coff-seh.c
obj-coff-seh.h
obj-coff.c
obj-coff.h
obj-ecoff.c
obj-ecoff.h
obj-elf.c gas/ELF: don't accumulate .type settings 2019-07-04 10:35:47 +02:00
obj-elf.h
obj-evax.c
obj-evax.h
obj-fdpicelf.c
obj-fdpicelf.h
obj-macho.c
obj-macho.h
obj-multi.c
obj-multi.h
obj-som.c
obj-som.h
rl78-defs.h
rl78-parse.y
rx-defs.h
rx-parse.y
tc-aarch64.c This patch fixes a bug in the AArch64 assembler where an incorrect structural load/store by element instruction would generate the wrong error message. 2019-07-02 14:11:14 +01:00
tc-aarch64.h aarch64: override default elf .set handling in gas 2019-05-24 15:09:06 +01:00
tc-alpha.c
tc-alpha.h
tc-arc.c A series of fixes to addres problems detected by compiling the assembler with address sanitization enabled. 2019-05-14 10:42:25 +01:00
tc-arc.h
tc-arm.c This fixes a bug in the ARm assembler where an immediate operand larger than 4 bits (0xF) could be passed to the SMC (Secure Monitor Call) instruction. 2019-06-27 14:06:02 +01:00
tc-arm.h [PATCH 2/57][Arm][GAS] Add support for MVE instructions: vpst, vadd, vsub and vabd 2019-05-16 16:19:31 +01:00
tc-avr.c Make frag fr_fix unsigned 2019-04-16 17:12:09 +09:30
tc-avr.h
tc-bfin.c
tc-bfin.h
tc-bpf.c gas: add support for eBPF 2019-05-23 19:34:04 +02:00
tc-bpf.h gas: add support for eBPF 2019-05-23 19:34:04 +02:00
tc-cr16.c
tc-cr16.h
tc-cris.c Move fixup fx_bit_fixP and fx_im_disp fields to TC_FIX_TYPE 2019-04-16 17:39:28 +09:30
tc-cris.h
tc-crx.c
tc-crx.h
tc-csky.c C-SKY FAIL: jbt - csky 2019-05-15 16:41:22 +09:30
tc-csky.h
tc-d10v.c
tc-d10v.h
tc-d30v.c
tc-d30v.h
tc-dlx.c Move fixup fx_bit_fixP and fx_im_disp fields to TC_FIX_TYPE 2019-04-16 17:39:28 +09:30
tc-dlx.h Move fixup fx_bit_fixP and fx_im_disp fields to TC_FIX_TYPE 2019-04-16 17:39:28 +09:30
tc-epiphany.c GAS: Replace macro LITERAL_PREFIXDOLLAR_HEX with a runtime value. 2019-05-21 10:29:15 +02:00
tc-epiphany.h GAS: Replace macro LITERAL_PREFIXDOLLAR_HEX with a runtime value. 2019-05-21 10:29:15 +02:00
tc-fr30.c
tc-fr30.h
tc-frv.c
tc-frv.h
tc-ft32.c
tc-ft32.h
tc-generic.c
tc-generic.h
tc-h8300.c
tc-h8300.h
tc-hppa.c
tc-hppa.h gas/ELF: don't accumulate .type settings 2019-07-04 10:35:47 +02:00
tc-i386-intel.c Fix illegal memory access triggered when attempting to assemble a bogus i386 source file. 2019-05-14 12:42:02 +01:00
tc-i386.c x86: drop Vec_Imm4 2019-07-01 08:38:50 +02:00
tc-i386.h te-cloudabi.h 2019-04-10 13:27:29 +09:30
tc-ia64.c A series of fixes to addres problems detected by compiling the assembler with address sanitization enabled. 2019-05-14 10:42:25 +01:00
tc-ia64.h
tc-ip2k.c GAS: Replace macro LITERAL_PREFIXDOLLAR_HEX with a runtime value. 2019-05-21 10:29:15 +02:00
tc-ip2k.h GAS: Replace macro LITERAL_PREFIXDOLLAR_HEX with a runtime value. 2019-05-21 10:29:15 +02:00
tc-iq2000.c
tc-iq2000.h
tc-lm32.c
tc-lm32.h
tc-m32c.c A series of fixes to addres problems detected by compiling the assembler with address sanitization enabled. 2019-05-14 10:42:25 +01:00
tc-m32c.h m32c padding with nops 2019-05-04 17:23:18 +09:30
tc-m32r.c A series of fixes to addres problems detected by compiling the assembler with address sanitization enabled. 2019-05-14 10:42:25 +01:00
tc-m32r.h
tc-m68hc11.c
tc-m68hc11.h
tc-m68k.c
tc-m68k.h
tc-m68851.h
tc-mcore.c
tc-mcore.h
tc-mep.c
tc-mep.h
tc-metag.c A series of fixes to addres problems detected by compiling the assembler with address sanitization enabled. 2019-05-14 10:42:25 +01:00
tc-metag.h
tc-microblaze.c A series of fixes to addres problems detected by compiling the assembler with address sanitization enabled. 2019-05-14 10:42:25 +01:00
tc-microblaze.h
tc-mips.c MIPS/gas: Fix order of instructions in LI macro expansion 2019-06-25 09:29:55 -07:00
tc-mips.h
tc-mmix.c
tc-mmix.h
tc-mn10200.c
tc-mn10200.h
tc-mn10300.c
tc-mn10300.h
tc-moxie.c
tc-moxie.h
tc-msp430.c MSP430 Assembler: Define symbols for functions to run through. 2019-04-18 13:15:09 +01:00
tc-msp430.h
tc-mt.c GAS: Replace macro LITERAL_PREFIXDOLLAR_HEX with a runtime value. 2019-05-21 10:29:15 +02:00
tc-mt.h GAS: Replace macro LITERAL_PREFIXDOLLAR_HEX with a runtime value. 2019-05-21 10:29:15 +02:00
tc-nds32.c A series of fixes to addres problems detected by compiling the assembler with address sanitization enabled. 2019-05-14 10:42:25 +01:00
tc-nds32.h
tc-nios2.c
tc-nios2.h
tc-ns32k.c Move fixup fx_bit_fixP and fx_im_disp fields to TC_FIX_TYPE 2019-04-16 17:39:28 +09:30
tc-ns32k.h Move fixup fx_bit_fixP and fx_im_disp fields to TC_FIX_TYPE 2019-04-16 17:39:28 +09:30
tc-or1k.c A series of fixes to addres problems detected by compiling the assembler with address sanitization enabled. 2019-05-14 10:42:25 +01:00
tc-or1k.h
tc-pdp11.c
tc-pdp11.h
tc-pj.c
tc-pj.h
tc-ppc.c Fix logical expression in last commit 2019-06-25 16:57:15 +09:30
tc-ppc.h PowerPC nops 2019-06-25 13:04:40 +09:30
tc-pru.c
tc-pru.h
tc-riscv.c RISC-V: Fix lui argument parsing. 2019-05-30 15:23:10 -07:00
tc-riscv.h
tc-rl78.c Make frag fr_fix unsigned 2019-04-16 17:12:09 +09:30
tc-rl78.h
tc-rx.c RX Assembler: Ensure that the internal limit on the number of relaxation iterations is not larger that the external limit. 2019-04-19 10:39:47 +01:00
tc-rx.h RX Assembler: Ensure that the internal limit on the number of relaxation iterations is not larger that the external limit. 2019-04-19 10:39:47 +01:00
tc-s12z.c S12Z: GAS: New option --mdollar-hex. 2019-05-22 08:13:36 +02:00
tc-s12z.h GAS: S12Z: Remove definition of macro TC_M68K. 2019-04-12 18:39:01 +02:00
tc-s390.c
tc-s390.h
tc-score7.c A series of fixes to addres problems detected by compiling the assembler with address sanitization enabled. 2019-05-14 10:42:25 +01:00
tc-score.c A series of fixes to addres problems detected by compiling the assembler with address sanitization enabled. 2019-05-14 10:42:25 +01:00
tc-score.h
tc-sh.c A series of fixes to addres problems detected by compiling the assembler with address sanitization enabled. 2019-05-14 10:42:25 +01:00
tc-sh.h
tc-sparc.c Make fixup fx_where unsigned 2019-04-16 17:13:04 +09:30
tc-sparc.h
tc-spu.c
tc-spu.h
tc-tic4x.c A series of fixes to addres problems detected by compiling the assembler with address sanitization enabled. 2019-05-14 10:42:25 +01:00
tc-tic4x.h
tc-tic6x.c
tc-tic6x.h
tc-tic30.c
tc-tic30.h
tc-tic54x.c tic54x_start_line_hook 2019-05-15 16:28:14 +09:30
tc-tic54x.h A series of fixes to addres problems detected by compiling the assembler with address sanitization enabled. 2019-05-14 10:42:25 +01:00
tc-tilegx.c A series of fixes to addres problems detected by compiling the assembler with address sanitization enabled. 2019-05-14 10:42:25 +01:00
tc-tilegx.h
tc-tilepro.c A series of fixes to addres problems detected by compiling the assembler with address sanitization enabled. 2019-05-14 10:42:25 +01:00
tc-tilepro.h
tc-v850.c
tc-v850.h
tc-vax.c
tc-vax.h
tc-visium.c A series of fixes to addres problems detected by compiling the assembler with address sanitization enabled. 2019-05-14 10:42:25 +01:00
tc-visium.h
tc-wasm32.c
tc-wasm32.h
tc-xc16x.c
tc-xc16x.h
tc-xgate.c
tc-xgate.h
tc-xstormy16.c
tc-xstormy16.h
tc-xtensa.c xtensa ignores option --no-link-relax 2019-05-08 09:40:08 +09:30
tc-xtensa.h
tc-z8k.c
tc-z8k.h
tc-z80.c
tc-z80.h
te-386bsd.h
te-aix5.h
te-aix.h
te-armeabi.h
te-armfbsdeabi.h
te-armfbsdvfp.h
te-armlinuxeabi.h
te-cloudabi.h te-cloudabi.h 2019-04-10 13:27:29 +09:30
te-csky_abiv1_linux.h
te-csky_abiv1.h
te-csky_abiv2_linux.h
te-csky_abiv2.h
te-dragonfly.h
te-freebsd.h
te-generic.h
te-gnu.h
te-go32.h
te-hppa64.h
te-hppa.h
te-hppalinux64.h
te-hpux.h
te-ia64aix.h
te-interix.h
te-irix.h
te-linux.h
te-lynx.h
te-macos.h
te-nacl.h
te-nbsd532.h
te-nbsd.h
te-pc532mach.h
te-pe.h
te-pep.h
te-solaris.h
te-svr4.h
te-symbian.h
te-tmips.h
te-uclinux.h
te-vms.c
te-vms.h
te-vxworks.h
te-wince-pe.h
vax-inst.h
xtensa-istack.h
xtensa-relax.c
xtensa-relax.h