diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2017-08-14 14:28:28 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2017-08-15 14:52:07 -0700 |
commit | ac9c98241c827f31d5370d4ede875ac945a84bcb (patch) | |
tree | f58a8cea958ad1f2b30174bdbf58bd48b8bf1924 /ld/testsuite/ld-elf/pr21562h.d | |
parent | 206726fbfdd521fbb184daedb71b85030453bf0b (diff) | |
download | binutils-gdb-users/hjl/pr21964.tar.gz |
Bind __start/__stop symbols as symbolic in shared objectusers/hjl/pr21964
When building shared objects, bind __start and __stop symbols as symbolic
to support dlsym. Also override __start, __stop, .startof. and .sizeof.
symbols defined in a shared object.
See:
http://lists.gnu.org/archive/html/bug-binutils/2017-08/msg00195.html
for bug discussions.
bfd/
PR ld/21964
* elf-bfd.h (SYMBOLIC_BIND): TRUE for __start/__stop symbols.
* elflink.c (bfd_elf_define_start_stop): Override symbol defined
in a shared object. Don't mark __start/__stop symbols as hidden
in shared objects.
ld/
PR ld/21964
* testsuite/ld-elf/pr21562a.d: Replace LOCAL with GLOBAL on
__start_scnfoo.
* testsuite/ld-elf/pr21562b.d: Likewise.
* testsuite/ld-elf/pr21562c.d: Likewise.
* testsuite/ld-elf/pr21562d.d: Likewise.
* testsuite/ld-elf/pr21562e.d: Likewise.
* testsuite/ld-elf/pr21562f.d: Likewise.
* testsuite/ld-elf/pr21562g.d: Likewise.
* testsuite/ld-elf/pr21562h.d: Likewise.
* testsuite/ld-elf/pr21562i.d: Likewise.
* testsuite/ld-elf/pr21562j.d: Likewise.
* testsuite/ld-elf/pr21562k.d: Likewise.
* testsuite/ld-elf/pr21562l.d: Likewise.
* testsuite/ld-elf/pr21562m.d: Likewise.
* testsuite/ld-elf/pr21562n.d: Likewise.
* testsuite/ld-elf/pr21964-1a.c: New file.
* testsuite/ld-elf/pr21964-1b.c: Likewise.
* testsuite/ld-elf/pr21964-1c.c: Likewise.
* testsuite/ld-elf/pr21964-2a.c: Likewise.
* testsuite/ld-elf/pr21964-2b.c: Likewise.
* testsuite/ld-elf/pr21964-2c.c: Likewise.
* testsuite/ld-elf/shared.exp: Run PR ld/21964 tests.
* testsuite/ld-elf/sizeofb.d: Replace LOCAL with GLOBAL on
__stop_scnfoo.
* testsuite/ld-elf/startofb.d: Replace LOCAL with GLOBAL on
__start_scnfoo.
Diffstat (limited to 'ld/testsuite/ld-elf/pr21562h.d')
-rw-r--r-- | ld/testsuite/ld-elf/pr21562h.d | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/ld/testsuite/ld-elf/pr21562h.d b/ld/testsuite/ld-elf/pr21562h.d index 1e723ba0990..9be1c51f520 100644 --- a/ld/testsuite/ld-elf/pr21562h.d +++ b/ld/testsuite/ld-elf/pr21562h.d @@ -6,5 +6,5 @@ #... \[[ 0-9]+\] scnfoo[ \t]+PROGBITS[ \t]+[0-9a-f]+ +[0-9a-f]+ +0*10[ \t]+.* #... - +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +NOTYPE +LOCAL +DEFAULT +[0-9]+ +___?stop_scnfoo + +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +NOTYPE +GLOBAL +DEFAULT +[0-9]+ +___?stop_scnfoo #pass |