Use ART_TARGET_ANDROID instead of __ANDROID__
On golem, we build for ART_TARGET_LINUX, which doesn't have support for
linkerconfig. Therefore, guard all linker namespace code on
ART_TARGET_ANDROID instead of __ANDROID__ (which is unfortunately not
under ART's control).
Test: build for golem and run
Bug: 154074847
Change-Id: I7a2b81918177704b42d8aafbd6d7e9d06d34e5f4
diff --git a/libnativeloader/library_namespaces.cpp b/libnativeloader/library_namespaces.cpp
index 6092c00..d42a4b5 100644
--- a/libnativeloader/library_namespaces.cpp
+++ b/libnativeloader/library_namespaces.cpp
@@ -13,6 +13,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
+#if defined(ART_TARGET_ANDROID)
+
#include "library_namespaces.h"
#include <dirent.h>
@@ -392,3 +395,5 @@
}
} // namespace android::nativeloader
+
+#endif // defined(ART_TARGET_ANDROID)
diff --git a/libnativeloader/library_namespaces.h b/libnativeloader/library_namespaces.h
index e6d1a87..c41f2e4 100644
--- a/libnativeloader/library_namespaces.h
+++ b/libnativeloader/library_namespaces.h
@@ -17,8 +17,8 @@
#ifndef ART_LIBNATIVELOADER_LIBRARY_NAMESPACES_H_
#define ART_LIBNATIVELOADER_LIBRARY_NAMESPACES_H_
-#if !defined(__ANDROID__)
-#error "Not available for host"
+#if !defined(ART_TARGET_ANDROID)
+#error "Not available for host or linux target"
#endif
#define LOG_TAG "nativeloader"
diff --git a/libnativeloader/native_loader.cpp b/libnativeloader/native_loader.cpp
index 2a28a05..b187474 100644
--- a/libnativeloader/native_loader.cpp
+++ b/libnativeloader/native_loader.cpp
@@ -33,7 +33,7 @@
#include <nativebridge/native_bridge.h>
#include <nativehelper/scoped_utf_chars.h>
-#ifdef __ANDROID__
+#ifdef ART_TARGET_ANDROID
#include <log/log.h>
#include "library_namespaces.h"
#include "nativeloader/dlext_namespaces.h"
@@ -42,7 +42,7 @@
namespace android {
namespace {
-#if defined(__ANDROID__)
+#if defined(ART_TARGET_ANDROID)
using android::nativeloader::LibraryNamespaces;
std::mutex g_namespaces_mutex;
@@ -58,18 +58,18 @@
}
return nullptr;
}
-#endif // #if defined(__ANDROID__)
+#endif // #if defined(ART_TARGET_ANDROID)
} // namespace
void InitializeNativeLoader() {
-#if defined(__ANDROID__)
+#if defined(ART_TARGET_ANDROID)
std::lock_guard<std::mutex> guard(g_namespaces_mutex);
g_namespaces->Initialize();
#endif
}
void ResetNativeLoader() {
-#if defined(__ANDROID__)
+#if defined(ART_TARGET_ANDROID)
std::lock_guard<std::mutex> guard(g_namespaces_mutex);
g_namespaces->Reset();
#endif
@@ -78,7 +78,7 @@
jstring CreateClassLoaderNamespace(JNIEnv* env, int32_t target_sdk_version, jobject class_loader,
bool is_shared, jstring dex_path, jstring library_path,
jstring permitted_path) {
-#if defined(__ANDROID__)
+#if defined(ART_TARGET_ANDROID)
std::lock_guard<std::mutex> guard(g_namespaces_mutex);
auto ns = g_namespaces->Create(env, target_sdk_version, class_loader, is_shared, dex_path,
library_path, permitted_path);
@@ -94,7 +94,7 @@
void* OpenNativeLibrary(JNIEnv* env, int32_t target_sdk_version, const char* path,
jobject class_loader, const char* caller_location, jstring library_path,
bool* needs_native_bridge, char** error_msg) {
-#if defined(__ANDROID__)
+#if defined(ART_TARGET_ANDROID)
UNUSED(target_sdk_version);
if (class_loader == nullptr) {
*needs_native_bridge = false;
@@ -208,7 +208,7 @@
free(msg);
}
-#if defined(__ANDROID__)
+#if defined(ART_TARGET_ANDROID)
void* OpenNativeLibraryInNamespace(NativeLoaderNamespace* ns, const char* path,
bool* needs_native_bridge, char** error_msg) {
auto handle = ns->Load(path);
diff --git a/libnativeloader/native_loader_namespace.cpp b/libnativeloader/native_loader_namespace.cpp
index 49f3035..79a9791 100644
--- a/libnativeloader/native_loader_namespace.cpp
+++ b/libnativeloader/native_loader_namespace.cpp
@@ -14,6 +14,8 @@
* limitations under the License.
*/
+#if defined(ART_TARGET_ANDROID)
+
#define LOG_TAG "nativeloader"
#include "native_loader_namespace.h"
@@ -175,3 +177,5 @@
}
} // namespace android
+
+#endif // defined(ART_TARGET_ANDROID)
diff --git a/libnativeloader/native_loader_namespace.h b/libnativeloader/native_loader_namespace.h
index ee84f61..a295d18 100644
--- a/libnativeloader/native_loader_namespace.h
+++ b/libnativeloader/native_loader_namespace.h
@@ -17,7 +17,7 @@
#ifndef ART_LIBNATIVELOADER_NATIVE_LOADER_NAMESPACE_H_
#define ART_LIBNATIVELOADER_NATIVE_LOADER_NAMESPACE_H_
-#if defined(__ANDROID__)
+#if defined(ART_TARGET_ANDROID)
#include <string>
#include <variant>
@@ -73,6 +73,6 @@
};
} // namespace android
-#endif // #if defined(__ANDROID__)
+#endif // #if defined(ART_TARGET_ANDROID)
#endif // ART_LIBNATIVELOADER_NATIVE_LOADER_NAMESPACE_H_
diff --git a/libnativeloader/native_loader_test.cpp b/libnativeloader/native_loader_test.cpp
index 3f2505c..66d7531 100644
--- a/libnativeloader/native_loader_test.cpp
+++ b/libnativeloader/native_loader_test.cpp
@@ -14,6 +14,8 @@
* limitations under the License.
*/
+#if defined(ART_TARGET_ANDROID)
+
#include <dlfcn.h>
#include <memory>
#include <unordered_map>
@@ -700,3 +702,5 @@
} // namespace nativeloader
} // namespace android
+
+#endif // defined(ART_TARGET_ANDROID)
diff --git a/libnativeloader/public_libraries.cpp b/libnativeloader/public_libraries.cpp
index 258dbf6..4b56dc2 100644
--- a/libnativeloader/public_libraries.cpp
+++ b/libnativeloader/public_libraries.cpp
@@ -31,7 +31,7 @@
#include <android-base/strings.h>
#include <log/log.h>
-#if defined(__ANDROID__)
+#if defined(ART_TARGET_ANDROID)
#include <android/sysprop/VndkProperties.sysprop.h>
#endif
@@ -394,7 +394,7 @@
}
bool is_product_vndk_version_defined() {
-#if defined(__ANDROID__)
+#if defined(ART_TARGET_ANDROID)
return android::sysprop::VndkProperties::product_vndk_version().has_value();
#else
return false;
@@ -402,7 +402,7 @@
}
std::string get_vndk_version(bool is_product_vndk) {
-#if defined(__ANDROID__)
+#if defined(ART_TARGET_ANDROID)
if (is_product_vndk) {
return android::sysprop::VndkProperties::product_vndk_version().value_or("");
}