Fix the MIPS baremetal build
authorAlexander Richardson <arichardson.kde@gmail.com>
Thu, 30 Nov 2017 18:37:04 +0000 (18:37 +0000)
committerAlexander Richardson <arichardson.kde@gmail.com>
Thu, 30 Nov 2017 18:37:04 +0000 (18:37 +0000)
Summary:
Currently sys/cachectl.h is used unconditionally on MIPS although it is
only available on Linux and will fail the build when targeting baremetal

Reviewers: petarj

Reviewed By: petarj

Subscribers: sdardis, krytarowski

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

llvm-svn: 319455

compiler-rt/lib/builtins/clear_cache.c

index 640cb75..4a01cb4 100644 (file)
@@ -33,7 +33,7 @@ uintptr_t GetCurrentProcess(void);
   #include <machine/sysarch.h>
 #endif
 
-#if defined(__mips__)
+#if defined(__linux__) && defined(__mips__)
   #include <sys/cachectl.h>
   #include <sys/syscall.h>
   #include <unistd.h>
@@ -128,7 +128,7 @@ void __clear_cache(void *start, void *end) {
     #else
         compilerrt_abort();
     #endif
-#elif defined(__mips__)
+#elif defined(__linux__) && defined(__mips__)
   const uintptr_t start_int = (uintptr_t) start;
   const uintptr_t end_int = (uintptr_t) end;
     #if defined(__ANDROID__) && defined(__LP64__)