aboutsummaryrefslogtreecommitdiff
path: root/gold/output.h
diff options
context:
space:
mode:
authorHan Shen <shenhan@google.com>2015-01-29 10:00:46 -0800
committerHan Shen <shenhan@google.com>2015-01-29 10:15:42 -0800
commitfa89cc82f5ca51f3135a9f2043b85b6a16c205eb (patch)
tree5f21ce4f356cb7edbfc5475aae567c381f2cb3ee /gold/output.h
parent716db898b72787d0d342c639c421cdd97f3afe9c (diff)
downloadgdb-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.h11
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.