diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2021-01-17 20:01:16 -0800 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2021-01-17 20:01:30 -0800 |
commit | 994b25132814f4c2be93ce53a616a74139c4cf3c (patch) | |
tree | 1b04e54141f4a3bc8179260b36ebf4bd480521cb /ld | |
parent | 25294ff049728a081c703b68f848d2cc04eef483 (diff) | |
download | gdb-994b25132814f4c2be93ce53a616a74139c4cf3c.zip gdb-994b25132814f4c2be93ce53a616a74139c4cf3c.tar.gz gdb-994b25132814f4c2be93ce53a616a74139c4cf3c.tar.bz2 |
ld/elf: Ignore section symbols when matching linkonce with comdat
When deciding if a single member comdat group section in file FOO should
be discarded by a linkonce section in file BAR, we check if 2 sections
define the same set of local and global symbols. When only one of the
files doesn't contain the unused section symbols in the symbol table,
such as object files generated by clang or GNU assembler with
commit d1bcae833b32f1408485ce69f844dcd7ded093a8
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Thu Jan 7 06:42:00 2021 -0800
ELF: Don't generate unused section symbols
the check will fail since one file has the extra unused section symbols.
We should ignore both undefined and section symbols in the symbol table
when making such a decision.
bfd/
PR ld/27193
* elflink.c (elf_create_symbuf): Also ignore section symbols.
ld/
PR ld/27193
* testsuite/ld-i386/i386.exp: Run PR ld/27193 test.
* testsuite/ld-i386/pr27193.dd: New file.
* testsuite/ld-i386/pr27193a.o.bz2: Likewise.
* testsuite/ld-i386/pr27193b.s: Likewise.
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 8 | ||||
-rw-r--r-- | ld/testsuite/ld-i386/i386.exp | 5 | ||||
-rw-r--r-- | ld/testsuite/ld-i386/pr27193.dd | 5 | ||||
-rw-r--r-- | ld/testsuite/ld-i386/pr27193a.o.bz2 | bin | 0 -> 468 bytes | |||
-rw-r--r-- | ld/testsuite/ld-i386/pr27193b.s | 8 |
5 files changed, 26 insertions, 0 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 6b602d6..92fa8a4 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,11 @@ +2021-01-17 H.J. Lu <hongjiu.lu@intel.com> + + PR ld/27193 + * testsuite/ld-i386/i386.exp: Run PR ld/27193 test. + * testsuite/ld-i386/pr27193.dd: New file. + * testsuite/ld-i386/pr27193a.o.bz2: Likewise. + * testsuite/ld-i386/pr27193b.s: Likewise. + 2021-01-16 H.J. Lu <hongjiu.lu@intel.com> PR binutils/23460 diff --git a/ld/testsuite/ld-i386/i386.exp b/ld/testsuite/ld-i386/i386.exp index f3e62a4..0be6b86 100644 --- a/ld/testsuite/ld-i386/i386.exp +++ b/ld/testsuite/ld-i386/i386.exp @@ -245,6 +245,11 @@ set i386tests { "-melf_i386 -shared -Bsymbolic -z notext" "" "--32 -mx86-used-note=yes" { pr19827a.S } {{readelf {-rW} pr19827.rd}} "pr19827.so"} + {"Build pr27193.so" + "-melf_i386 -shared" "" + "--32" + { pr27193a.o.bz2 pr27193b.s } + {{objdump {-dw} pr27193.dd}} "pr27193.so"} } proc iamcu_tests {} { diff --git a/ld/testsuite/ld-i386/pr27193.dd b/ld/testsuite/ld-i386/pr27193.dd new file mode 100644 index 0000000..7d1e799 --- /dev/null +++ b/ld/testsuite/ld-i386/pr27193.dd @@ -0,0 +1,5 @@ +#... +0+[a-f0-9]+ <__x86.get_pc_thunk.bx>: + +[a-f0-9]+: 8b 1c 24 mov \(%esp\),%ebx + +[a-f0-9]+: c3 ret +#pass diff --git a/ld/testsuite/ld-i386/pr27193a.o.bz2 b/ld/testsuite/ld-i386/pr27193a.o.bz2 Binary files differnew file mode 100644 index 0000000..365899d --- /dev/null +++ b/ld/testsuite/ld-i386/pr27193a.o.bz2 diff --git a/ld/testsuite/ld-i386/pr27193b.s b/ld/testsuite/ld-i386/pr27193b.s new file mode 100644 index 0000000..9b27a6f --- /dev/null +++ b/ld/testsuite/ld-i386/pr27193b.s @@ -0,0 +1,8 @@ + .section .text.__x86.get_pc_thunk.bx,"axG",%progbits,__x86.get_pc_thunk.bx,comdat + .globl __x86.get_pc_thunk.bx + .hidden __x86.get_pc_thunk.bx + .type __x86.get_pc_thunk.bx, %function + .p2align 4 +__x86.get_pc_thunk.bx: + mov (%esp),%ebx + ret |