mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-21 01:12:32 +08:00
Mark symbol in executables if it matches dynamic_list
bfd/ PR gold/16530 * elflink.c (bfd_elf_gc_mark_dynamic_ref_symbol): Mark symbol in executables if it matches dynamic_list. ld/testsuite/ PR gold/16530 * ld-elf/dynamic-1.c: New file. * ld-elf/dynamic-1.rd: Likewise. * ld-elf/dynamic-1.syms: Likewise. * ld-elf/shared.exp (build_tests): Add dynamic-1.
This commit is contained in:
parent
8577303939
commit
d6f6f45577
@ -1,3 +1,9 @@
|
||||
2014-02-10 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR gold/16530
|
||||
* elflink.c (bfd_elf_gc_mark_dynamic_ref_symbol): Mark symbol in
|
||||
executables if it matches dynamic_list.
|
||||
|
||||
2014-02-10 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* po/SRC-POTFILES.in: Regenerate.
|
||||
|
@ -12140,11 +12140,15 @@ bfd_boolean
|
||||
bfd_elf_gc_mark_dynamic_ref_symbol (struct elf_link_hash_entry *h, void *inf)
|
||||
{
|
||||
struct bfd_link_info *info = (struct bfd_link_info *) inf;
|
||||
struct bfd_elf_dynamic_list *d = info->dynamic_list;
|
||||
|
||||
if ((h->root.type == bfd_link_hash_defined
|
||||
|| h->root.type == bfd_link_hash_defweak)
|
||||
&& (h->ref_dynamic
|
||||
|| ((!info->executable || info->export_dynamic)
|
||||
|| ((!info->executable
|
||||
|| info->export_dynamic
|
||||
|| (d != NULL
|
||||
&& (*d->match) (&d->head, NULL, h->root.root.string)))
|
||||
&& h->def_regular
|
||||
&& ELF_ST_VISIBILITY (h->other) != STV_INTERNAL
|
||||
&& ELF_ST_VISIBILITY (h->other) != STV_HIDDEN
|
||||
|
@ -1,3 +1,12 @@
|
||||
2014-02-10 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR gold/16530
|
||||
* ld-elf/dynamic-1.c: New file.
|
||||
* ld-elf/dynamic-1.rd: Likewise.
|
||||
* ld-elf/dynamic-1.syms: Likewise.
|
||||
|
||||
* ld-elf/shared.exp (build_tests): Add dynamic-1.
|
||||
|
||||
2014-02-02 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
||||
|
||||
* ld-scripts/rgn-at9.d: New file.
|
||||
|
10
ld/testsuite/ld-elf/dynamic-1.c
Normal file
10
ld/testsuite/ld-elf/dynamic-1.c
Normal file
@ -0,0 +1,10 @@
|
||||
void
|
||||
dynamic ()
|
||||
{
|
||||
}
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
return 0;
|
||||
}
|
5
ld/testsuite/ld-elf/dynamic-1.rd
Normal file
5
ld/testsuite/ld-elf/dynamic-1.rd
Normal file
@ -0,0 +1,5 @@
|
||||
Symbol table '\.dynsym' contains [0-9]+ entries:
|
||||
+Num: +Value +Size Type +Bind +Vis +Ndx Name
|
||||
#...
|
||||
+[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +FUNC +GLOBAL +DEFAULT +[0-9]+ +_?dynamic
|
||||
#...
|
3
ld/testsuite/ld-elf/dynamic-1.syms
Normal file
3
ld/testsuite/ld-elf/dynamic-1.syms
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
dynamic;
|
||||
};
|
@ -227,6 +227,9 @@ set build_tests {
|
||||
{"Build rdynamic-1"
|
||||
"-rdynamic -Wl,--gc-sections" "-ffunction-sections"
|
||||
{rdynamic-1.c} {{readelf {-s} rdynamic-1.rd}} "rdynamic-1"}
|
||||
{"Build dynamic-1"
|
||||
"-Wl,--dynamic-list,dynamic-1.syms -Wl,--gc-sections" "-ffunction-sections"
|
||||
{dynamic-1.c} {{readelf {-s} dynamic-1.rd}} "dynamic-1"}
|
||||
}
|
||||
|
||||
run_cc_link_tests $build_tests
|
||||
|
Loading…
Reference in New Issue
Block a user