mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-27 03:51:15 +08:00
Fix MIPS GOT when global symbols are forced to local visibility.
gold/ PR gold/21054 * mips.cc (Mips_got_info::record_global_got_symbol): Don't add symbol to the dynamic symbol table if it is forced to local visibility. (Target_mips::do_finalize_sections): Don't add __RLD_MAP symbol to the dynamic symbol table if it is forced to local visibility.
This commit is contained in:
parent
c780b47c74
commit
c1f59f8ff9
@ -1,3 +1,11 @@
|
|||||||
|
2017-01-23 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com>
|
||||||
|
|
||||||
|
PR gold/21054
|
||||||
|
* mips.cc (Mips_got_info::record_global_got_symbol): Don't add symbol
|
||||||
|
to the dynamic symbol table if it is forced to local visibility.
|
||||||
|
(Target_mips::do_finalize_sections): Don't add __RLD_MAP symbol to the
|
||||||
|
dynamic symbol table if it is forced to local visibility.
|
||||||
|
|
||||||
2017-01-20 Nick Clifton <nickc@redhat.com>
|
2017-01-20 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
* aarch64.cc (Stub_template_repertoire): Change ST_E_835769_INSNS
|
* aarch64.cc (Stub_template_repertoire): Change ST_E_835769_INSNS
|
||||||
|
@ -5627,7 +5627,7 @@ Mips_got_info<size, big_endian>::record_global_got_symbol(
|
|||||||
mips_sym->set_got_not_only_for_calls();
|
mips_sym->set_got_not_only_for_calls();
|
||||||
|
|
||||||
// A global symbol in the GOT must also be in the dynamic symbol table.
|
// A global symbol in the GOT must also be in the dynamic symbol table.
|
||||||
if (!mips_sym->needs_dynsym_entry())
|
if (!mips_sym->needs_dynsym_entry() && !mips_sym->is_forced_local())
|
||||||
{
|
{
|
||||||
switch (mips_sym->visibility())
|
switch (mips_sym->visibility())
|
||||||
{
|
{
|
||||||
@ -9781,7 +9781,8 @@ Target_mips<size, big_endian>::do_finalize_sections(Layout* layout,
|
|||||||
elfcpp::STV_DEFAULT, 0,
|
elfcpp::STV_DEFAULT, 0,
|
||||||
false, false);
|
false, false);
|
||||||
|
|
||||||
rld_map->set_needs_dynsym_entry();
|
if (!rld_map->is_forced_local())
|
||||||
|
rld_map->set_needs_dynsym_entry();
|
||||||
|
|
||||||
if (!parameters->options().pie())
|
if (!parameters->options().pie())
|
||||||
// This member holds the absolute address of the debug pointer.
|
// This member holds the absolute address of the debug pointer.
|
||||||
|
Loading…
Reference in New Issue
Block a user