Index: third_party/android_crazy_linker/src/src/crazy_linker_elf_relocations.h |
diff --git a/third_party/android_crazy_linker/src/src/crazy_linker_elf_relocations.h b/third_party/android_crazy_linker/src/src/crazy_linker_elf_relocations.h |
index edf2f4bffd01e476f60f8e833c428a5c51c2ab01..298fb8059f87f0ab89b86771c02c83b159de7036 100644 |
--- a/third_party/android_crazy_linker/src/src/crazy_linker_elf_relocations.h |
+++ b/third_party/android_crazy_linker/src/src/crazy_linker_elf_relocations.h |
@@ -6,6 +6,7 @@ |
#define CRAZY_LINKER_ELF_RELOCATIONS_H |
#include <string.h> |
+#include <unistd.h> |
#include "elf_traits.h" |
@@ -41,6 +42,7 @@ class ElfRelocations { |
// On error, return false and set |error| message. |
bool ApplyAll(const ElfSymbols* symbols, |
SymbolResolver* resolver, |
+ const char* full_path, |
Error* error); |
// This function is used to adjust relocated addresses in a copy of an |
@@ -94,6 +96,11 @@ class ElfRelocations { |
size_t map_addr, |
size_t size); |
+#if defined(__arm__) |
+ bool ApplyArmPackedRelocs(const char* full_path, |
+ Error* error); |
+#endif |
+ |
#if defined(__mips__) |
bool RelocateMipsGot(const ElfSymbols* symbols, |
SymbolResolver* resolver, |
@@ -112,6 +119,12 @@ class ElfRelocations { |
ELF::Addr relocations_; |
size_t relocations_size_; |
+#if defined(__arm__) |
+ // ARM-specific data, supports decoding packed relocations. |
+ off_t arm_packed_relocations_; |
+ size_t arm_packed_relocations_size_; |
+#endif |
+ |
#if defined(__mips__) |
// MIPS-specific relocation fields. |
ELF::Word mips_symtab_count_; |