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
diff --git a/tests/libs/dlopen_b.cpp b/tests/libs/dlopen_b.cpp
index 34f2881..5291d81 100644
--- a/tests/libs/dlopen_b.cpp
+++ b/tests/libs/dlopen_b.cpp
@@ -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;
}