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
This commit is contained in:
Colin Cross 2014-05-20 15:06:37 -07:00
parent 223069e0e1
commit ddc7f830ce

View File

@ -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);