mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-06 23:50:09 +08:00
Make gold aarch64 accept long form of mapping symbols.
2015-07-07 Han Shen <shenhan@google.com> gold/ChangeLog: 2015-07-06 Han Shen <shenhan@google.com> * aarch64.cc (AArch64_relobj::do_count_local_symbols): Make legal of mapping symbols.
This commit is contained in:
@ -1,3 +1,10 @@
|
|||||||
|
2015-07-07 Han Shen <shenhan@google.com>
|
||||||
|
|
||||||
|
Make gold aarch64 accept long form of mapping symbols.
|
||||||
|
|
||||||
|
* aarch64.cc (AArch64_relobj::do_count_local_symbols): Make legal
|
||||||
|
of mapping symbols.
|
||||||
|
|
||||||
2015-06-29 Doug Kwan <dougkwan@google.com>
|
2015-06-29 Doug Kwan <dougkwan@google.com>
|
||||||
|
|
||||||
* testsuite/arm_bl_out_of_range.s: Align stub table so that it appears
|
* testsuite/arm_bl_out_of_range.s: Align stub table so that it appears
|
||||||
@ -17,7 +24,7 @@
|
|||||||
|
|
||||||
Patch for erratum 843419 internal error.
|
Patch for erratum 843419 internal error.
|
||||||
|
|
||||||
* AArch64.cc (Erratum_stub::Insn_utilities): New typedef.
|
* aarch64.cc (Erratum_stub::Insn_utilities): New typedef.
|
||||||
(Erratum_stub::update_erratum_insn): New method.
|
(Erratum_stub::update_erratum_insn): New method.
|
||||||
(Stub_table::relocate_stubs): Modified to place relocated insn.
|
(Stub_table::relocate_stubs): Modified to place relocated insn.
|
||||||
(AArch64_relobj::fix_errata): Modified gold_assert.
|
(AArch64_relobj::fix_errata): Modified gold_assert.
|
||||||
|
@ -1831,10 +1831,17 @@ AArch64_relobj<size, big_endian>::do_count_local_symbols(
|
|||||||
Symbol_value<size>& lv((*plocal_values)[i]);
|
Symbol_value<size>& lv((*plocal_values)[i]);
|
||||||
AArch64_address input_value = lv.input_value();
|
AArch64_address input_value = lv.input_value();
|
||||||
|
|
||||||
// Check to see if this is a mapping symbol.
|
// Check to see if this is a mapping symbol. AArch64 mapping symbols are
|
||||||
|
// defined in "ELF for the ARM 64-bit Architecture", Table 4-4, Mapping
|
||||||
|
// symbols.
|
||||||
|
// Mapping symbols could be one of the following 4 forms -
|
||||||
|
// a) $x
|
||||||
|
// b) $x.<any...>
|
||||||
|
// c) $d
|
||||||
|
// d) $d.<any...>
|
||||||
const char* sym_name = pnames + sym.get_st_name();
|
const char* sym_name = pnames + sym.get_st_name();
|
||||||
if (sym_name[0] == '$' && (sym_name[1] == 'x' || sym_name[1] == 'd')
|
if (sym_name[0] == '$' && (sym_name[1] == 'x' || sym_name[1] == 'd')
|
||||||
&& sym_name[2] == '\0')
|
&& (sym_name[2] == '\0' || sym_name[2] == '.'))
|
||||||
{
|
{
|
||||||
bool is_ordinary;
|
bool is_ordinary;
|
||||||
unsigned int input_shndx =
|
unsigned int input_shndx =
|
||||||
|
Reference in New Issue
Block a user