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("");
   }
