Author: Vitaly Buka Date: 2024-07-11T13:29:35-07:00 New Revision: 9875ee88f0f4dfe87aa1f89df00115ac796ef561
URL: https://github.com/llvm/llvm-project/commit/9875ee88f0f4dfe87aa1f89df00115ac796ef561 DIFF: https://github.com/llvm/llvm-project/commit/9875ee88f0f4dfe87aa1f89df00115ac796ef561.diff LOG: Revert "[safestack] Various Solaris fixes (#98469)" This reverts commit 5c205b6f7d82ee88ee5a869d6102c5a6388fb3f0. Added: Modified: compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake compiler-rt/lib/safestack/CMakeLists.txt compiler-rt/lib/safestack/safestack.cpp compiler-rt/lib/safestack/safestack_platform.h compiler-rt/test/safestack/lit.cfg.py Removed: ################################################################################ diff --git a/compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake b/compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake index 02ff92f693810..c8bec41db36e9 100644 --- a/compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake +++ b/compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake @@ -77,7 +77,7 @@ set(ALL_UBSAN_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64} ${RISCV64} ${MIPS32} ${MIPS64} ${PPC64} ${S390X} ${SPARC} ${SPARCV9} ${HEXAGON} ${LOONGARCH64}) set(ALL_SAFESTACK_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM64} ${MIPS32} ${MIPS64} - ${HEXAGON} ${LOONGARCH64} ${SPARC} ${SPARCV9}) + ${HEXAGON} ${LOONGARCH64}) set(ALL_CFI_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64} ${MIPS64} ${HEXAGON} ${LOONGARCH64}) set(ALL_SCUDO_STANDALONE_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64} diff --git a/compiler-rt/lib/safestack/CMakeLists.txt b/compiler-rt/lib/safestack/CMakeLists.txt index 730043eb87cab..316ab69ecfdbe 100644 --- a/compiler-rt/lib/safestack/CMakeLists.txt +++ b/compiler-rt/lib/safestack/CMakeLists.txt @@ -14,8 +14,6 @@ foreach(arch ${SAFESTACK_SUPPORTED_ARCH}) ARCHS ${arch} SOURCES ${SAFESTACK_SOURCES} $<TARGET_OBJECTS:RTInterception.${arch}> - OBJECT_LIBS RTSanitizerCommon - RTSanitizerCommonLibc CFLAGS ${SAFESTACK_CFLAGS} PARENT_TARGET safestack) endforeach() diff --git a/compiler-rt/lib/safestack/safestack.cpp b/compiler-rt/lib/safestack/safestack.cpp index f8ef224f45494..0751f3988b9c1 100644 --- a/compiler-rt/lib/safestack/safestack.cpp +++ b/compiler-rt/lib/safestack/safestack.cpp @@ -224,17 +224,6 @@ INTERCEPTOR(int, pthread_create, pthread_t *thread, pthread_attr_destroy(&tmpattr); } -#if SANITIZER_SOLARIS - // Solaris pthread_attr_init initializes stacksize to 0 (the default), so - // hardcode the actual values as documented in pthread_create(3C). - if (size == 0) -# if defined(_LP64) - size = 2 * 1024 * 1024; -# else - size = 1024 * 1024; -# endif -#endif - SFS_CHECK(size); size = RoundUpTo(size, kStackAlign); diff --git a/compiler-rt/lib/safestack/safestack_platform.h b/compiler-rt/lib/safestack/safestack_platform.h index 77eeb9cda6e15..d4b2e2ef7391c 100644 --- a/compiler-rt/lib/safestack/safestack_platform.h +++ b/compiler-rt/lib/safestack/safestack_platform.h @@ -17,7 +17,6 @@ #include "sanitizer_common/sanitizer_platform.h" #include <dlfcn.h> -#include <errno.h> #include <stdint.h> #include <stdio.h> #include <stdlib.h> @@ -69,24 +68,6 @@ static void *GetRealLibcAddress(const char *symbol) { SFS_CHECK(real_##func); #endif -#if SANITIZER_SOLARIS -# define _REAL(func) _##func -# define DEFINE__REAL(ret_type, func, ...) \ - extern "C" ret_type _REAL(func)(__VA_ARGS__) - -# if !defined(_LP64) && _FILE_OFFSET_BITS == 64 -# define _REAL64(func) _##func##64 -# else -# define _REAL64(func) _REAL(func) -# endif -# define DEFINE__REAL64(ret_type, func, ...) \ - extern "C" ret_type _REAL64(func)(__VA_ARGS__) - -DEFINE__REAL64(void *, mmap, void *a, size_t b, int c, int d, int e, off_t f); -DEFINE__REAL(int, munmap, void *a, size_t b); -DEFINE__REAL(int, mprotect, void *a, size_t b, int c); -#endif - using ThreadId = uint64_t; inline ThreadId GetTid() { @@ -110,10 +91,11 @@ inline int TgKill(pid_t pid, ThreadId tid, int sig) { (void)pid; return _REAL(_lwp_kill, tid, sig); #elif SANITIZER_SOLARIS - (void)pid; - errno = thr_kill(tid, sig); - // TgKill is expected to return -1 on error, not an errno. - return errno != 0 ? -1 : 0; +# ifdef SYS_lwp_kill + return syscall(SYS_lwp_kill, tid, sig); +# else + return -1; +# endif #elif SANITIZER_FREEBSD return syscall(SYS_thr_kill2, pid, tid, sig); #else @@ -128,7 +110,8 @@ inline void *Mmap(void *addr, size_t length, int prot, int flags, int fd, #elif SANITIZER_FREEBSD && (defined(__aarch64__) || defined(__x86_64__)) return (void *)__syscall(SYS_mmap, addr, length, prot, flags, fd, offset); #elif SANITIZER_SOLARIS - return _REAL64(mmap)(addr, length, prot, flags, fd, offset); + return (void *)(uintptr_t)syscall(SYS_mmap, addr, length, prot, flags, fd, + offset); #else return (void *)syscall(SYS_mmap, addr, length, prot, flags, fd, offset); #endif @@ -138,8 +121,6 @@ inline int Munmap(void *addr, size_t length) { #if SANITIZER_NETBSD DEFINE__REAL(int, munmap, void *a, size_t b); return _REAL(munmap, addr, length); -#elif SANITIZER_SOLARIS - return _REAL(munmap)(addr, length); #else return syscall(SYS_munmap, addr, length); #endif @@ -149,8 +130,6 @@ inline int Mprotect(void *addr, size_t length, int prot) { #if SANITIZER_NETBSD DEFINE__REAL(int, mprotect, void *a, size_t b, int c); return _REAL(mprotect, addr, length, prot); -#elif SANITIZER_SOLARIS - return _REAL(mprotect)(addr, length, prot); #else return syscall(SYS_mprotect, addr, length, prot); #endif diff --git a/compiler-rt/test/safestack/lit.cfg.py b/compiler-rt/test/safestack/lit.cfg.py index 17dfae46a412b..aadb8bf0d5c77 100644 --- a/compiler-rt/test/safestack/lit.cfg.py +++ b/compiler-rt/test/safestack/lit.cfg.py @@ -33,5 +33,5 @@ ) ) -if config.host_os not in ["Linux", "FreeBSD", "NetBSD", "SunOS"]: +if config.host_os not in ["Linux", "FreeBSD", "NetBSD"]: config.unsupported = True _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits