[Support] Support building LLVM for Fuchsia
authorPetr Hosek <phosek@chromium.org>
Thu, 3 May 2018 01:38:49 +0000 (01:38 +0000)
committerPetr Hosek <phosek@chromium.org>
Thu, 3 May 2018 01:38:49 +0000 (01:38 +0000)
These are necessary changes to support building LLVM for Fuchsia.
While these are not sufficient to run on Fuchsia, they are still
useful when cross-compiling LLVM libraries and runtimes for Fuchsia.

Differential Revision: https://reviews.llvm.org/D46345

llvm-svn: 331423

llvm/cmake/modules/HandleLLVMOptions.cmake
llvm/lib/Support/Unix/Path.inc

index 86ce0bb..66ccebd 100644 (file)
@@ -115,7 +115,7 @@ if(WIN32)
     set(LLVM_ON_UNIX 0)
   endif(CYGWIN)
 else(WIN32)
-  if(UNIX)
+  if(FUCHSIA OR UNIX)
     set(LLVM_ON_WIN32 0)
     set(LLVM_ON_UNIX 1)
     if(APPLE OR ${CMAKE_SYSTEM_NAME} MATCHES "AIX")
@@ -123,9 +123,9 @@ else(WIN32)
     else()
       set(LLVM_HAVE_LINK_VERSION_SCRIPT 1)
     endif()
-  else(UNIX)
+  else(FUCHSIA OR UNIX)
     MESSAGE(SEND_ERROR "Unable to determine platform")
-  endif(UNIX)
+  endif(FUCHSIA OR UNIX)
 endif(WIN32)
 
 set(EXEEXT ${CMAKE_EXECUTABLE_SUFFIX})
index 9bd8cca..f977832 100644 (file)
@@ -365,6 +365,9 @@ static bool is_local_impl(struct STATVFS &Vfs) {
 #elif defined(__CYGWIN__)
   // Cygwin doesn't expose this information; would need to use Win32 API.
   return false;
+#elif defined(__Fuchsia__)
+  // Fuchsia doesn't yet support remote filesystem mounts.
+  return true;
 #elif defined(__sun)
   // statvfs::f_basetype contains a null-terminated FSType name of the mounted target
   StringRef fstype(Vfs.f_basetype);