aboutsummaryrefslogtreecommitdiff
path: root/ld/testsuite
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2019-07-04 10:35:47 +0200
committerJan Beulich <jbeulich@suse.com>2019-07-04 10:35:47 +0200
commitf2d4ba38f5723a207c40a288036af2f38b70e837 (patch)
tree4f864465aad8dfadd14c3ee62cc9f0ca7c743045 /ld/testsuite
parentdb7fbcbeb749c0d4ea19284438d62b253648c58a (diff)
downloadgdb-f2d4ba38f5723a207c40a288036af2f38b70e837.zip
gdb-f2d4ba38f5723a207c40a288036af2f38b70e837.tar.gz
gdb-f2d4ba38f5723a207c40a288036af2f38b70e837.tar.bz2
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
Diffstat (limited to 'ld/testsuite')
-rw-r--r--ld/testsuite/ld-elf/group9.s2
1 files changed, 1 insertions, 1 deletions
diff --git a/ld/testsuite/ld-elf/group9.s b/ld/testsuite/ld-elf/group9.s
index 933c9f9..9f0bccb 100644
--- a/ld/testsuite/ld-elf/group9.s
+++ b/ld/testsuite/ld-elf/group9.s
@@ -5,7 +5,7 @@ foo:
.byte 0
.section .data.foo,"axG",%progbits,foo,comdat
.globl foo.data
- .type foo,%object
+ .type foo.data,%object
foo.data:
.byte 0
.section .text.bar,"axG",%progbits,bar,comdat