Use shared globals so getauxval works earlier
Make getauxval() work in .preinit_array. It still won't be usable for
ifuncs unless we can guarantee that the __loader_shared_globals relocation
is resolved before the ifunc calls [__bionic_]getauxval.
Define __bionic_getauxval for use in replacing calls to
KernelArgumentBlock::getauxval, which doesn't (and sometimes isn't allowed
to) access TLS variables like errno.
Bug: http://b/25751302
Test: bionic unit tests
Change-Id: I461feeaed7f43cfa2a2b6c34147194f0df82b516
Merged-In: I461feeaed7f43cfa2a2b6c34147194f0df82b516
(cherry picked from commit bdab4a2b97c53af0205788875342ec08e6901376)
diff --git a/tests/dl_test.cpp b/tests/dl_test.cpp
index 57d04e9..aea92b4 100644
--- a/tests/dl_test.cpp
+++ b/tests/dl_test.cpp
@@ -148,7 +148,7 @@
#endif
}
-TEST(dl, xfail_preinit_getauxval) {
+TEST(dl, preinit_getauxval) {
#if defined(__BIONIC__)
std::string helper = GetTestlibRoot() +
"/preinit_getauxval_test_helper/preinit_getauxval_test_helper";