Work around compiler optimization

This makes bionic-unit-test-glibc64 behave consistently
when testing dlopen from a library with dt_runpath.

Bug: http://b/21899363
Change-Id: I9d446eb6852876975874d6b7761f6f81cc4e9916
This commit is contained in:
Dmitriy Ivanov 2015-06-23 13:44:18 -07:00
parent a8993c994e
commit 7d09a8cd11

View File

@ -1,7 +1,15 @@
#include <dlfcn.h>
extern "C" void *dlopen_b() {
// TODO (dimitry): this is to work around http://b/20049306
// remove once it is fixed
static int dummy = 0;
// This is not supposed to succeed. Even though this library has DT_RUNPATH
// for libtest_dt_runpath_x.so, it is not taked into account for dlopen.
void *handle = dlopen("libtest_dt_runpath_x.so", RTLD_NOW);
return handle;
if (handle != nullptr) {
dummy++;
return handle;
}
return nullptr;
}