pcc created this revision.
pcc added reviewers: JDevlieghere, labath.
Herald added subscribers: danielkiss, krytarowski, mgorny.
pcc requested review of this revision.
Herald added a project: LLDB.

CMAKE_SYSTEM_NAME seems to be unreliable for detecting whether the
target is Android. At least on my machine it always turns out to
have the value Linux when targeting Android. Even explicitly passing
-DCMAKE_SYSTEM_NAME=Android to CMake doesn't seem to help. It seems
that CMake is overriding the value that I pass in with a value that
it computed somehow.

To avoid relying on whichever fragile mechanism is used to detect
Android targets, let's just compile the Android source files
unconditionally and use the preprocessor to exclude their contents
on non-Android platforms.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D103127

Files:
  lldb/source/Host/CMakeLists.txt
  lldb/source/Host/android/HostInfoAndroid.cpp
  lldb/source/Host/android/LibcGlue.cpp


Index: lldb/source/Host/android/LibcGlue.cpp
===================================================================
--- lldb/source/Host/android/LibcGlue.cpp
+++ lldb/source/Host/android/LibcGlue.cpp
@@ -8,6 +8,8 @@
 
 // This files adds functions missing from libc on earlier versions of Android
 
+#if defined(__ANDROID__)
+
 #include <android/api-level.h>
 
 #include <sys/syscall.h>
@@ -26,3 +28,5 @@
 int posix_openpt(int flags) { return open("/dev/ptmx", flags); }
 
 #endif
+
+#endif // __ANDROID__
Index: lldb/source/Host/android/HostInfoAndroid.cpp
===================================================================
--- lldb/source/Host/android/HostInfoAndroid.cpp
+++ lldb/source/Host/android/HostInfoAndroid.cpp
@@ -6,6 +6,8 @@
 //
 
//===----------------------------------------------------------------------===//
 
+#if defined(__ANDROID__)
+
 #include "lldb/Host/android/HostInfoAndroid.h"
 #include "lldb/Host/FileSystem.h"
 #include "lldb/Host/linux/HostInfoLinux.h"
@@ -92,3 +94,5 @@
 
   return FileSystem::Instance().Exists(file_spec);
 }
+
+#endif // __ANDROID__
Index: lldb/source/Host/CMakeLists.txt
===================================================================
--- lldb/source/Host/CMakeLists.txt
+++ lldb/source/Host/CMakeLists.txt
@@ -106,12 +106,10 @@
       linux/LibcGlue.cpp
       linux/Support.cpp
       )
-    if (CMAKE_SYSTEM_NAME MATCHES "Android")
-      add_host_subdirectory(android
-        android/HostInfoAndroid.cpp
-        android/LibcGlue.cpp
-        )
-    endif()
+    add_host_subdirectory(android
+      android/HostInfoAndroid.cpp
+      android/LibcGlue.cpp
+      )
   elseif (CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
     add_host_subdirectory(freebsd
       freebsd/Host.cpp


Index: lldb/source/Host/android/LibcGlue.cpp
===================================================================
--- lldb/source/Host/android/LibcGlue.cpp
+++ lldb/source/Host/android/LibcGlue.cpp
@@ -8,6 +8,8 @@
 
 // This files adds functions missing from libc on earlier versions of Android
 
+#if defined(__ANDROID__)
+
 #include <android/api-level.h>
 
 #include <sys/syscall.h>
@@ -26,3 +28,5 @@
 int posix_openpt(int flags) { return open("/dev/ptmx", flags); }
 
 #endif
+
+#endif // __ANDROID__
Index: lldb/source/Host/android/HostInfoAndroid.cpp
===================================================================
--- lldb/source/Host/android/HostInfoAndroid.cpp
+++ lldb/source/Host/android/HostInfoAndroid.cpp
@@ -6,6 +6,8 @@
 //
 //===----------------------------------------------------------------------===//
 
+#if defined(__ANDROID__)
+
 #include "lldb/Host/android/HostInfoAndroid.h"
 #include "lldb/Host/FileSystem.h"
 #include "lldb/Host/linux/HostInfoLinux.h"
@@ -92,3 +94,5 @@
 
   return FileSystem::Instance().Exists(file_spec);
 }
+
+#endif // __ANDROID__
Index: lldb/source/Host/CMakeLists.txt
===================================================================
--- lldb/source/Host/CMakeLists.txt
+++ lldb/source/Host/CMakeLists.txt
@@ -106,12 +106,10 @@
       linux/LibcGlue.cpp
       linux/Support.cpp
       )
-    if (CMAKE_SYSTEM_NAME MATCHES "Android")
-      add_host_subdirectory(android
-        android/HostInfoAndroid.cpp
-        android/LibcGlue.cpp
-        )
-    endif()
+    add_host_subdirectory(android
+      android/HostInfoAndroid.cpp
+      android/LibcGlue.cpp
+      )
   elseif (CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
     add_host_subdirectory(freebsd
       freebsd/Host.cpp
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to