aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitriy Ivanov <dimitry@google.com>2015-01-13 12:17:31 -0800
committerDmitriy Ivanov <dimitry@google.com>2015-01-13 15:56:54 -0800
commit1b694693b47785c5350916eafc9200cf9aa4a920 (patch)
tree4a424203e10dffdb6b397fc255e51d8f5585aa68
parentb13f5f5029d5fab190a4480ea3caa623328c5415 (diff)
downloadandroid_bionic-1b694693b47785c5350916eafc9200cf9aa4a920.tar.gz
android_bionic-1b694693b47785c5350916eafc9200cf9aa4a920.tar.bz2
android_bionic-1b694693b47785c5350916eafc9200cf9aa4a920.zip
Refactoring: use generic reloc constants
Change-Id: I94dd6256b1b4509b6ea696a3aff17a3991529468
-rw-r--r--linker/linker.cpp27
1 files changed, 9 insertions, 18 deletions
diff --git a/linker/linker.cpp b/linker/linker.cpp
index e0fec0f08..7f1ffa924 100644
--- a/linker/linker.cpp
+++ b/linker/linker.cpp
@@ -1320,29 +1320,25 @@ int soinfo::relocate(ElfW(Rela)* rela, unsigned count, const soinfo_list_t& glob
*/
switch (type) {
+ case R_GENERIC_JUMP_SLOT:
+ case R_GENERIC_GLOB_DAT:
+ case R_GENERIC_RELATIVE:
+ case R_GENERIC_IRELATIVE:
#if defined(__aarch64__)
- case R_AARCH64_JUMP_SLOT:
- case R_AARCH64_GLOB_DAT:
case R_AARCH64_ABS64:
case R_AARCH64_ABS32:
case R_AARCH64_ABS16:
- case R_AARCH64_RELATIVE:
- case R_AARCH64_IRELATIVE:
+#elif defined(__x86_64__)
+ case R_X86_64_32:
+ case R_X86_64_64:
+#endif
/*
* The sym_addr was initialized to be zero above, or the relocation
* code below does not care about value of sym_addr.
* No need to do anything.
*/
break;
-#elif defined(__x86_64__)
- case R_X86_64_JUMP_SLOT:
- case R_X86_64_GLOB_DAT:
- case R_X86_64_32:
- case R_X86_64_64:
- case R_X86_64_RELATIVE:
- case R_X86_64_IRELATIVE:
- // No need to do anything.
- break;
+#if defined(__x86_64__)
case R_X86_64_PC32:
sym_addr = reloc;
break;
@@ -1591,11 +1587,6 @@ int soinfo::relocate(ElfW(Rel)* rel, unsigned count, const soinfo_list_t& global
sym_addr = reloc;
break;
#endif
-
-#if defined(__arm__)
- case R_ARM_COPY:
- // Fall through. Can't really copy if weak symbol is not found at run-time.
-#endif
default:
DL_ERR("unknown weak reloc type %d @ %p (%zu)", type, rel, idx);
return -1;