summaryrefslogtreecommitdiffstats
path: root/linker/linker.c
diff options
context:
space:
mode:
authorDavid 'Digit' Turner <digit@google.com>2009-11-17 16:06:26 -0800
committerAndroid Git Automerger <android-git-automerger@android.com>2009-11-17 16:06:26 -0800
commitebf3ea006e5367fff93d2491eec24c4b1a633805 (patch)
treee7e84eed54db64bd5a48b153f0c5174583782230 /linker/linker.c
parenta7f8f312e0791509b2382f90861fe9f373bd4f0b (diff)
parent34ea5117dbeba41ae5dfdfb2c2ec8cae23388b66 (diff)
downloadbionic-ebf3ea006e5367fff93d2491eec24c4b1a633805.zip
bionic-ebf3ea006e5367fff93d2491eec24c4b1a633805.tar.gz
bionic-ebf3ea006e5367fff93d2491eec24c4b1a633805.tar.bz2
am 34ea5117: Add support for R_ARM_REL32 to the dynamic linker.
Merge commit '34ea5117dbeba41ae5dfdfb2c2ec8cae23388b66' into eclair-mr2-plus-aosp * commit '34ea5117dbeba41ae5dfdfb2c2ec8cae23388b66': Add support for R_ARM_REL32 to the dynamic linker.
Diffstat (limited to 'linker/linker.c')
-rw-r--r--linker/linker.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/linker/linker.c b/linker/linker.c
index 9779290..6d57cbc 100644
--- a/linker/linker.c
+++ b/linker/linker.c
@@ -1295,6 +1295,13 @@ static int reloc_library(soinfo *si, Elf32_Rel *rel, unsigned count)
reloc, sym_addr, sym_name);
*((unsigned*)reloc) += sym_addr;
break;
+ case R_ARM_REL32:
+ COUNT_RELOC(RELOC_RELATIVE);
+ MARK(rel->r_offset);
+ TRACE_TYPE(RELO, "%5d RELO REL32 %08x <- %08x - %08x %s\n", pid,
+ reloc, sym_addr, rel->r_offset, sym_name);
+ *((unsigned*)reloc) += sym_addr - rel->r_offset;
+ break;
#elif defined(ANDROID_X86_LINKER)
case R_386_JUMP_SLOT:
COUNT_RELOC(RELOC_ABSOLUTE);