diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2012-09-19 00:53:25 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2012-09-19 00:53:25 +0000 |
commit | 63879887fd581d3c19081c944bf3ed7406f2f1aa (patch) | |
tree | dcba4206485f6d27dfc73c680256d297376ce958 /bfd/elf32-sh-symbian.c | |
parent | 42bd40018b23e4d63f6069fbaa5c10288054bb2c (diff) | |
download | gdb-63879887fd581d3c19081c944bf3ed7406f2f1aa.tar.gz |
Properly handle common symbol and weak function
bfd/
PR ld/14591
* elf-bfd.h (_bfd_elf_merge_symbol): Add an argument to return
if the old symbol is weak.
* elf32-sh-symbian.c (sh_symbian_relocate_section): Update
_bfd_elf_merge_symbol call.
* elflink.c (_bfd_elf_merge_symbol): Add an argument to return
if the old symbol is weak.
(_bfd_elf_add_default_symbol): Update _bfd_elf_merge_symbol
call.
(elf_link_add_object_symbols): Don't update symbol type from a
weak definition. Update symbol type from a common symbol when
overriding a weak symbol.
ld/testsuite/
PR ld/14591
* ld-elf/comm-data.exp (run_ld_link_tests): Add comm-data3a and
comm-data3b tests.
* ld-ifunc/ifunc.exp (run_ld_link_exec_tests): New.
* ld-elf/comm-data3.sd: New file.
* ld-elf/comm-data3a.s: Likewise.
* ld-elf/comm-data3b.s: Likewise.
* ld-ifunc/ifunc-17a-i386.d: Likewise.
* ld-ifunc/ifunc-17a-x86-64.d: Likewise.
* ld-ifunc/ifunc-17a.s: Likewise.
* ld-ifunc/ifunc-17b-i386.d: Likewise.
* ld-ifunc/ifunc-17b-x86-64.d: Likewise.
* ld-ifunc/ifunc-17b.s: Likewise.
* ld-ifunc/ifunc-common-1.out: Likewise.
* ld-ifunc/ifunc-common-1a.c: Likewise.
* ld-ifunc/ifunc-common-1b.c: Likewise.
Diffstat (limited to 'bfd/elf32-sh-symbian.c')
-rw-r--r-- | bfd/elf32-sh-symbian.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/bfd/elf32-sh-symbian.c b/bfd/elf32-sh-symbian.c index 0882d52b9a4..1f03dbc40e5 100644 --- a/bfd/elf32-sh-symbian.c +++ b/bfd/elf32-sh-symbian.c @@ -497,7 +497,7 @@ sh_symbian_relocate_section (bfd * output_bfd, if (! _bfd_elf_merge_symbol (input_bfd, info, ptr->new_name, & new_sym, & psec, & new_value, NULL, - & new_hash, & skip, + NULL, & new_hash, & skip, & override, & type_change_ok, & size_change_ok)) { |