summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPawit Pornkitprasan <p.pawit@gmail.com>2013-11-10 13:08:11 +0700
committerPawit Pornkitprasan <p.pawit@gmail.com>2013-11-10 06:10:51 +0000
commit82d8a2a4a7a556059080e489c4eb5e170b712776 (patch)
tree92dab795c3958d15542869451e4ad7997d3519bd
parentc4050b03011a732c494443a87c2d14c23e5c08ea (diff)
downloadbionic-82d8a2a4a7a556059080e489c4eb5e170b712776.zip
bionic-82d8a2a4a7a556059080e489c4eb5e170b712776.tar.gz
bionic-82d8a2a4a7a556059080e489c4eb5e170b712776.tar.bz2
bionic: linker: fix prelink support
load_bias_ needs to be calculated from the min_vaddr, not the prelink address Fixes couldn't map "libraryname.so" segment 1: Invalid argument Change-Id: Ibf1fd1d5a0f2c81ce515f5d47412a043ba768247
-rw-r--r--linker/linker_phdr.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/linker/linker_phdr.cpp b/linker/linker_phdr.cpp
index d01fdb5..a591584 100644
--- a/linker/linker_phdr.cpp
+++ b/linker/linker_phdr.cpp
@@ -333,7 +333,7 @@ bool ElfReader::ReserveAddressSpace() {
}
load_start_ = start;
- load_bias_ = reinterpret_cast<uint8_t*>(start) - addr;
+ load_bias_ = reinterpret_cast<uint8_t*>(start) - reinterpret_cast<uint8_t*>(min_vaddr);
return true;
}