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; }) _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits