summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2014-05-20 15:06:37 -0700
committerColin Cross <ccross@android.com>2014-05-20 15:19:02 -0700
commit346fea0805b8c2a20171c9b4ab1aac5f66ede5de (patch)
tree126e8280445807a73bd9793bdb8babd948573bad
parentafb89c2a01089bb247456634a15a58f111bb55a6 (diff)
downloadbionic-346fea0805b8c2a20171c9b4ab1aac5f66ede5de.zip
bionic-346fea0805b8c2a20171c9b4ab1aac5f66ede5de.tar.gz
bionic-346fea0805b8c2a20171c9b4ab1aac5f66ede5de.tar.bz2
HACK: linker: check for handle==0xffffffff on LP64
bionic RTLD_NEXT was changed from 0xffffffff to -1L, which breaks existing binaries compiled. Temporarily look either until we can get recompiled binaries. Bug: 15113039 Change-Id: I1568fa0e4a832c5e6df21da74a33b22bde7f16f6
-rw-r--r--linker/dlfcn.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/linker/dlfcn.cpp b/linker/dlfcn.cpp
index 8ef1212..7e3b3f4 100644
--- a/linker/dlfcn.cpp
+++ b/linker/dlfcn.cpp
@@ -102,7 +102,7 @@ void* dlsym(void* handle, const char* symbol) {
ElfW(Sym)* sym = NULL;
if (handle == RTLD_DEFAULT) {
sym = dlsym_linear_lookup(symbol, &found, NULL);
- } else if (handle == RTLD_NEXT) {
+ } else if (handle == RTLD_NEXT || handle == (void*)0xffffffffL) {
void* caller_addr = __builtin_return_address(0);
soinfo* si = find_containing_library(caller_addr);