diff options
author | Pawit Pornkitprasan <p.pawit@gmail.com> | 2013-11-10 13:08:11 +0700 |
---|---|---|
committer | Pawit Pornkitprasan <p.pawit@gmail.com> | 2013-11-10 06:10:51 +0000 |
commit | 82d8a2a4a7a556059080e489c4eb5e170b712776 (patch) | |
tree | 92dab795c3958d15542869451e4ad7997d3519bd | |
parent | c4050b03011a732c494443a87c2d14c23e5c08ea (diff) | |
download | bionic-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.cpp | 2 |
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; } |