Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(181)

Unified Diff: third_party/android_crazy_linker/src/src/crazy_linker_elf_relocations.h

Issue 340523003: Support for unpacked ARM packed relocations. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@fork_switch
Patch Set: Tidy README.chromium Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_;

Powered by Google App Engine
This is Rietveld 408576698