[clang] 531233d - Revert "add support for riscv64"
Haowei Wu via cfe-commits
cfe-commits at lists.llvm.org
Fri Oct 6 14:57:30 PDT 2023
Author: Haowei Wu
Date: 2023-10-06T14:56:16-07:00
New Revision: 531233d4b099835a3b384456c2c22453010f9780
URL: https://github.com/llvm/llvm-project/commit/531233d4b099835a3b384456c2c22453010f9780
DIFF: https://github.com/llvm/llvm-project/commit/531233d4b099835a3b384456c2c22453010f9780.diff
LOG: Revert "add support for riscv64"
This reverts commit cd0a8245b0feb951569eb3d396a1ff629daeb55c, which
breaks the build of compiler-rt for riscv64.
Added:
Modified:
clang/lib/Driver/ToolChains/Linux.cpp
compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake
compiler-rt/lib/tsan/rtl/CMakeLists.txt
compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
compiler-rt/lib/tsan/rtl/tsan_platform.h
compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp
compiler-rt/lib/tsan/rtl/tsan_rtl.h
compiler-rt/test/tsan/map32bit.cpp
compiler-rt/test/tsan/mmap_large.cpp
compiler-rt/test/tsan/test.h
Removed:
################################################################################
diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp
index 735af54f114cef2..1ba222bf83b1032 100644
--- a/clang/lib/Driver/ToolChains/Linux.cpp
+++ b/clang/lib/Driver/ToolChains/Linux.cpp
@@ -801,7 +801,7 @@ SanitizerMask Linux::getSupportedSanitizers() const {
IsRISCV64 || IsSystemZ || IsHexagon || IsLoongArch64)
Res |= SanitizerKind::Leak;
if (IsX86_64 || IsMIPS64 || IsAArch64 || IsPowerPC64 || IsSystemZ ||
- IsLoongArch64 || IsRISCV64)
+ IsLoongArch64)
Res |= SanitizerKind::Thread;
if (IsX86_64 || IsSystemZ)
Res |= SanitizerKind::KernelMemory;
diff --git a/compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake b/compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake
index 416777171d2ca75..e8ab660c1d83c0c 100644
--- a/compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake
+++ b/compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake
@@ -66,7 +66,7 @@ set(ALL_PROFILE_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64} ${PPC32} ${PPC
${MIPS32} ${MIPS64} ${S390X} ${SPARC} ${SPARCV9} ${HEXAGON}
${RISCV32} ${RISCV64} ${LOONGARCH64})
set(ALL_TSAN_SUPPORTED_ARCH ${X86_64} ${MIPS64} ${ARM64} ${PPC64} ${S390X}
- ${LOONGARCH64} ${RISCV64})
+ ${LOONGARCH64})
set(ALL_UBSAN_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64} ${RISCV64}
${MIPS32} ${MIPS64} ${PPC64} ${S390X} ${SPARC} ${SPARCV9} ${HEXAGON}
${LOONGARCH64})
diff --git a/compiler-rt/lib/tsan/rtl/CMakeLists.txt b/compiler-rt/lib/tsan/rtl/CMakeLists.txt
index 791c0596f65abf7..7b18d379e919776 100644
--- a/compiler-rt/lib/tsan/rtl/CMakeLists.txt
+++ b/compiler-rt/lib/tsan/rtl/CMakeLists.txt
@@ -220,10 +220,6 @@ else()
set(TSAN_ASM_SOURCES
tsan_rtl_mips64.S
)
- elseif(arch MATCHES "riscv64")
- set(TSAN_ASM_SOURCES
- tsan_rtl_riscv64.S
- )
elseif(arch MATCHES "s390x")
set(TSAN_ASM_SOURCES
tsan_rtl_s390x.S
diff --git a/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp b/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
index bb10b607278f91a..5add97ccd17a3ad 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
+++ b/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
@@ -81,8 +81,6 @@ struct ucontext_t {
#define PTHREAD_ABI_BASE "GLIBC_2.17"
#elif SANITIZER_LOONGARCH64
#define PTHREAD_ABI_BASE "GLIBC_2.36"
-#elif SANITIZER_RISCV64
-#define PTHREAD_ABI_BASE "GLIBC_2.27"
#endif
extern "C" int pthread_attr_init(void *attr);
diff --git a/compiler-rt/lib/tsan/rtl/tsan_platform.h b/compiler-rt/lib/tsan/rtl/tsan_platform.h
index 43822020c0b4b30..f0cdaf48eaa3102 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_platform.h
+++ b/compiler-rt/lib/tsan/rtl/tsan_platform.h
@@ -377,71 +377,6 @@ struct MappingPPC64_47 {
static const uptr kMidAppMemEnd = 0;
};
-/*
-C/C++ on linux/riscv64 (39-bit VMA)
-0000 0010 00 - 0200 0000 00: main binary ( 8 GB)
-0200 0000 00 - 1000 0000 00: -
-1000 0000 00 - 4000 0000 00: shadow memory (64 GB)
-4000 0000 00 - 4800 0000 00: metainfo (16 GB)
-4800 0000 00 - 5500 0000 00: -
-5500 0000 00 - 5a00 0000 00: main binary (PIE) (~8 GB)
-5600 0000 00 - 7c00 0000 00: -
-7d00 0000 00 - 7fff ffff ff: libraries and main thread stack ( 8 GB)
-
-mmap by default allocates from top downwards
-VDSO sits below loader and above dynamic libraries, within HiApp region.
-Heap starts after program region whose position depends on pie or non-pie.
-Disable tracking them since their locations are not fixed.
-*/
-struct MappingRiscv64_39 {
- static const uptr kLoAppMemBeg = 0x0000001000ull;
- static const uptr kLoAppMemEnd = 0x0200000000ull;
- static const uptr kShadowBeg = 0x1000000000ull;
- static const uptr kShadowEnd = 0x2000000000ull;
- static const uptr kMetaShadowBeg = 0x2000000000ull;
- static const uptr kMetaShadowEnd = 0x2400000000ull;
- static const uptr kMidAppMemBeg = 0x2aaaaaa000ull;
- static const uptr kMidAppMemEnd = 0x2c00000000ull;
- static const uptr kHeapMemBeg = 0x2c00000000ull;
- static const uptr kHeapMemEnd = 0x2c00000000ull;
- static const uptr kHiAppMemBeg = 0x3c00000000ull;
- static const uptr kHiAppMemEnd = 0x3fffffffffull;
- static const uptr kShadowMsk = 0x3800000000ull;
- static const uptr kShadowXor = 0x0800000000ull;
- static const uptr kShadowAdd = 0x0000000000ull;
- static const uptr kVdsoBeg = 0x4000000000ull;
-};
-
-/*
-C/C++ on linux/riscv64 (48-bit VMA)
-0000 0000 1000 - 0500 0000 0000: main binary ( 5 TB)
-0500 0000 0000 - 2000 0000 0000: -
-2000 0000 0000 - 4000 0000 0000: shadow memory (32 TB)
-4000 0000 0000 - 4800 0000 0000: metainfo ( 8 TB)
-4800 0000 0000 - 5555 5555 5000: -
-5555 5555 5000 - 5a00 0000 0000: main binary (PIE) (~5 TB)
-5a00 0000 0000 - 7a00 0000 0000: -
-7a00 0000 0000 - 7fff ffff ffff: libraries and main thread stack ( 5 TB)
-*/
-struct MappingRiscv64_48 {
- static const uptr kLoAppMemBeg = 0x000000001000ull;
- static const uptr kLoAppMemEnd = 0x050000000000ull;
- static const uptr kShadowBeg = 0x200000000000ull;
- static const uptr kShadowEnd = 0x400000000000ull;
- static const uptr kMetaShadowBeg = 0x400000000000ull;
- static const uptr kMetaShadowEnd = 0x480000000000ull;
- static const uptr kMidAppMemBeg = 0x555555555000ull;
- static const uptr kMidAppMemEnd = 0x5a0000000000ull;
- static const uptr kHeapMemBeg = 0x5a0000000000ull;
- static const uptr kHeapMemEnd = 0x5a0000000000ull;
- static const uptr kHiAppMemBeg = 0x7a0000000000ull;
- static const uptr kHiAppMemEnd = 0x7fffffffffffull;
- static const uptr kShadowMsk = 0x700000000000ull;
- static const uptr kShadowXor = 0x100000000000ull;
- static const uptr kShadowAdd = 0x000000000000ull;
- static const uptr kVdsoBeg = 0x800000000000ull;
-};
-
/*
C/C++ on linux/s390x
While the kernel provides a 64-bit address space, we have to restrict ourselves
@@ -730,13 +665,6 @@ ALWAYS_INLINE auto SelectMapping(Arg arg) {
}
# elif defined(__mips64)
return Func::template Apply<MappingMips64_40>(arg);
-# elif SANITIZER_RISCV64
- switch (vmaSize) {
- case 39:
- return Func::template Apply<MappingRiscv64_39>(arg);
- case 48:
- return Func::template Apply<MappingRiscv64_48>(arg);
- }
# elif defined(__s390x__)
return Func::template Apply<MappingS390x>(arg);
# else
@@ -758,8 +686,6 @@ void ForEachMapping() {
Func::template Apply<MappingPPC64_44>();
Func::template Apply<MappingPPC64_46>();
Func::template Apply<MappingPPC64_47>();
- Func::template Apply<MappingRiscv64_39>();
- Func::template Apply<MappingRiscv64_48>();
Func::template Apply<MappingS390x>();
Func::template Apply<MappingGo48>();
Func::template Apply<MappingGoWindows>();
@@ -968,7 +894,7 @@ struct RestoreAddrImpl {
Mapping::kMidAppMemEnd, Mapping::kHiAppMemBeg, Mapping::kHiAppMemEnd,
Mapping::kHeapMemBeg, Mapping::kHeapMemEnd,
};
- const uptr indicator = 0x0f0000000000ull;
+ const uptr indicator = 0x0e0000000000ull;
const uptr ind_lsb = 1ull << LeastSignificantSetBitIndex(indicator);
for (uptr i = 0; i < ARRAY_SIZE(ranges); i += 2) {
uptr beg = ranges[i];
diff --git a/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp b/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp
index 709a4322ed7ddf8..d161fa8d217e8c0 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp
+++ b/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp
@@ -267,16 +267,6 @@ void InitializePlatformEarly() {
Die();
}
# endif
-#elif SANITIZER_RISCV64
- // the bottom half of vma is allocated for userspace
- vmaSize = vmaSize + 1;
-# if !SANITIZER_GO
- if (vmaSize != 39 && vmaSize != 48) {
- Printf("FATAL: ThreadSanitizer: unsupported VMA range\n");
- Printf("FATAL: Found %zd - Supported 39 and 48\n", vmaSize);
- Die();
- }
-# endif
#endif
}
@@ -409,8 +399,6 @@ static uptr UnmangleLongJmpSp(uptr mangled_sp) {
return mangled_sp ^ xor_key;
#elif defined(__mips__)
return mangled_sp;
-#elif SANITIZER_RISCV64
- return mangled_sp;
#elif defined(__s390x__)
// tcbhead_t.stack_guard
uptr xor_key = ((uptr *)__builtin_thread_pointer())[5];
@@ -441,8 +429,6 @@ static uptr UnmangleLongJmpSp(uptr mangled_sp) {
# define LONG_JMP_SP_ENV_SLOT 1
# elif defined(__mips64)
# define LONG_JMP_SP_ENV_SLOT 1
-# elif SANITIZER_RISCV64
-# define LONG_JMP_SP_ENV_SLOT 13
# elif defined(__s390x__)
# define LONG_JMP_SP_ENV_SLOT 9
# else
diff --git a/compiler-rt/lib/tsan/rtl/tsan_rtl.h b/compiler-rt/lib/tsan/rtl/tsan_rtl.h
index e074e6fede5d964..a5606dbc7f882e0 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_rtl.h
+++ b/compiler-rt/lib/tsan/rtl/tsan_rtl.h
@@ -57,7 +57,7 @@ namespace __tsan {
#if !SANITIZER_GO
struct MapUnmapCallback;
#if defined(__mips64) || defined(__aarch64__) || defined(__loongarch__) || \
- defined(__powerpc__) || SANITIZER_RISCV64
+ defined(__powerpc__)
struct AP32 {
static const uptr kSpaceBeg = 0;
diff --git a/compiler-rt/test/tsan/map32bit.cpp b/compiler-rt/test/tsan/map32bit.cpp
index 9c0760f54b73ad0..e8bac22647bb558 100644
--- a/compiler-rt/test/tsan/map32bit.cpp
+++ b/compiler-rt/test/tsan/map32bit.cpp
@@ -13,7 +13,6 @@
// XFAIL: target=powerpc64{{.*}}
// XFAIL: target=s390x{{.*}}
// XFAIL: target=loongarch64{{.*}}
-// XFAIL: target=riscv64{{.*}}
// MAP_32BIT doesn't exist on OS X and NetBSD.
// UNSUPPORTED: darwin,target={{.*netbsd.*}}
diff --git a/compiler-rt/test/tsan/mmap_large.cpp b/compiler-rt/test/tsan/mmap_large.cpp
index a6aca720bf8a101..85ebe7f76b02364 100644
--- a/compiler-rt/test/tsan/mmap_large.cpp
+++ b/compiler-rt/test/tsan/mmap_large.cpp
@@ -17,8 +17,7 @@
int main() {
#ifdef __x86_64__
const size_t kLog2Size = 39;
-#elif defined(__mips64) || defined(__aarch64__) || \
- defined(__loongarch_lp64) || (defined(__riscv) && __riscv_xlen == 64)
+#elif defined(__mips64) || defined(__aarch64__) || defined(__loongarch_lp64)
const size_t kLog2Size = 32;
#elif defined(__powerpc64__)
const size_t kLog2Size = 39;
diff --git a/compiler-rt/test/tsan/test.h b/compiler-rt/test/tsan/test.h
index 6fd552465823eda..7406318243c5787 100644
--- a/compiler-rt/test/tsan/test.h
+++ b/compiler-rt/test/tsan/test.h
@@ -76,8 +76,6 @@ unsigned long long monotonic_clock_ns() {
const int kPCInc = 1;
#elif defined(__sparc__) || defined(__mips__)
const int kPCInc = 8;
-#elif defined(__riscv) && __riscv_xlen == 64
-const int kPCInc = 2;
#else
const int kPCInc = 4;
#endif
More information about the cfe-commits
mailing list