diff options
author | Han Shen <shenhan@google.com> | 2015-01-29 10:00:46 -0800 |
---|---|---|
committer | Han Shen <shenhan@google.com> | 2015-01-29 10:15:42 -0800 |
commit | fa89cc82f5ca51f3135a9f2043b85b6a16c205eb (patch) | |
tree | 5f21ce4f356cb7edbfc5475aae567c381f2cb3ee /gold/output.h | |
parent | 716db898b72787d0d342c639c421cdd97f3afe9c (diff) | |
download | gdb-fa89cc82f5ca51f3135a9f2043b85b6a16c205eb.zip gdb-fa89cc82f5ca51f3135a9f2043b85b6a16c205eb.tar.gz gdb-fa89cc82f5ca51f3135a9f2043b85b6a16c205eb.tar.bz2 |
This patch adds IFUNC support for arm gold backend.
This is a feature required in chromeos arm development work.
Tested:
1) Built passed all-gold on x86_64 machine
2) Tested with basic gold aarch64 ifunc unittests -
a) global ifunc, statically/non-statically linked
b) local ifunc, statically/non-statically linked
c) global/local, other shared library routine mixed,
statically/non-statically linked
d) arm/thumb mode ifunc
e) linking chrome browser passed
Diffstat (limited to 'gold/output.h')
-rw-r--r-- | gold/output.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/gold/output.h b/gold/output.h index 8ef8942..8e0c33a 100644 --- a/gold/output.h +++ b/gold/output.h @@ -1714,6 +1714,17 @@ class Output_data_reloc<elfcpp::SHT_REL, dynamic, size, big_endian> address, true, true, false, false)); } + void + add_local_relative(Sized_relobj<size, big_endian>* relobj, + unsigned int local_sym_index, unsigned int type, + Output_data* od, unsigned int shndx, Address address, + bool use_plt_offset) + { + this->add(od, Output_reloc_type(relobj, local_sym_index, type, shndx, + address, true, true, false, + use_plt_offset)); + } + // Add a local relocation which does not use a symbol for the relocation, // but which gets its addend from a symbol. |