[compiler-rt] 1d30afd - [PATCH] Enable targeting riscv64-linux-android
via llvm-commits
llvm-commits at lists.llvm.org
Thu Mar 23 13:34:26 PDT 2023
Author: Colin Cross
Date: 2023-03-23T13:33:52-07:00
New Revision: 1d30afdc2d97d348b971ae48716a0e79c6c5a29e
URL: https://github.com/llvm/llvm-project/commit/1d30afdc2d97d348b971ae48716a0e79c6c5a29e
DIFF: https://github.com/llvm/llvm-project/commit/1d30afdc2d97d348b971ae48716a0e79c6c5a29e.diff
LOG: [PATCH] Enable targeting riscv64-linux-android
Reviewers: ccross, asb, phosek, enh, srhines, hiraditya
Putting: https://android.googlesource.com/toolchain/llvm_android/+/refs/heads/master/patches/Enable-targeting-riscv64-linux-android.patch for review.
Differential Revision: https://reviews.llvm.org/D146560
Added:
Modified:
clang/lib/Driver/ToolChains/Linux.cpp
compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake
compiler-rt/lib/sanitizer_common/sanitizer_linux.h
Removed:
################################################################################
diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp
index 848d7247c20c0..e25895fd0b636 100644
--- a/clang/lib/Driver/ToolChains/Linux.cpp
+++ b/clang/lib/Driver/ToolChains/Linux.cpp
@@ -126,6 +126,8 @@ std::string Linux::getMultiarchTriple(const Driver &D,
case llvm::Triple::ppc64le:
return "powerpc64le-linux-gnu";
case llvm::Triple::riscv64:
+ if (IsAndroid)
+ return "riscv64-linux-android";
return "riscv64-linux-gnu";
case llvm::Triple::sparc:
return "sparc-linux-gnu";
diff --git a/compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake b/compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake
index e3fe5570de26a..99d672de4e882 100644
--- a/compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake
+++ b/compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake
@@ -42,7 +42,7 @@ if(OS_NAME MATCHES "Linux")
elseif (OS_NAME MATCHES "Windows")
set(ALL_FUZZER_SUPPORTED_ARCH ${X86} ${X86_64})
elseif(OS_NAME MATCHES "Android")
- set(ALL_FUZZER_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64})
+ set(ALL_FUZZER_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64} ${RISCV64})
else()
set(ALL_FUZZER_SUPPORTED_ARCH ${X86_64} ${ARM64})
endif()
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_linux.h b/compiler-rt/lib/sanitizer_common/sanitizer_linux.h
index 2c769dd59aa09..c84c04a877594 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_linux.h
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_linux.h
@@ -152,6 +152,9 @@ inline void ReleaseMemoryPagesToOSAndZeroFill(uptr beg, uptr end) {
"rdhwr %0,$29\n" \
".set pop\n" : "=r"(__v)); \
__v; })
+#elif defined (__riscv)
+# define __get_tls() \
+ ({ void** __v; __asm__("mv %0, tp" : "=r"(__v)); __v; })
#elif defined(__i386__)
# define __get_tls() \
({ void** __v; __asm__("movl %%gs:0, %0" : "=r"(__v)); __v; })
More information about the llvm-commits
mailing list