diff --git a/0001-Backport-LoongArch-improve-the-support-for-compiler-rt.patch b/0001-Backport-LoongArch-improve-the-support-for-compiler-rt.patch deleted file mode 100644 index 4ca7b87e2b3b9a0a71192bf6068f4f79e3bd0f89..0000000000000000000000000000000000000000 --- a/0001-Backport-LoongArch-improve-the-support-for-compiler-rt.patch +++ /dev/null @@ -1,425 +0,0 @@ -From 0bce68310dc0ff6a09ec2cf5c3ae32400c631324 Mon Sep 17 00:00:00 2001 -From: zhanglimin -Date: Tue, 12 Sep 2023 09:51:16 +0800 -Subject: [PATCH 1/5] [sanitizer][msan] VarArgHelper for loongarch64 - -This patch adds support for variadic argument for loongarch64, -which is based on MIPS64. And `check-msan` all pass. - -Reviewed By: vitalybuka - -Differential Revision: https://reviews.llvm.org/D158587 - -(cherry picked from commit ec42c78cc43ac1e8364e5a0941aa5fc91b813dd3) ---- - compiler-rt/test/msan/signal_stress_test.cpp | 3 --- - 1 file changed, 3 deletions(-) - -diff --git a/compiler-rt/test/msan/signal_stress_test.cpp b/compiler-rt/test/msan/signal_stress_test.cpp -index aade0f1f4051..043393fce6de 100644 ---- a/compiler-rt/test/msan/signal_stress_test.cpp -+++ b/compiler-rt/test/msan/signal_stress_test.cpp -@@ -5,9 +5,6 @@ - // Reported deadly signal due to stack-overflow - // XFAIL: target={{.*netbsd.*}} - --// VarArg implementation on LoongArch isn't supported yet. --// UNSUPPORTED: target=loongarch{{.*}} -- - #include - #include - #include --- -2.20.1 - - -From faa4482d1f713331a4ac4b0a58ea9804f6c32371 Mon Sep 17 00:00:00 2001 -From: Ami-zhang <96056515+Ami-zhang@users.noreply.github.com> -Date: Thu, 28 Sep 2023 15:40:42 +0800 -Subject: [PATCH 2/5] [CFI] Allow LoongArch (#67314) - -Enable icall tests on loongarch64 and `check-cfi` all pass. - -(cherry picked from commit adb555ea369a3a989a9db619c784aa76cccdb823) ---- - compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake | 2 +- - compiler-rt/lib/cfi/cfi.cpp | 4 ++++ - compiler-rt/test/cfi/cross-dso/icall/dlopen.cpp | 11 +++++++++-- - compiler-rt/test/cfi/cross-dso/icall/lit.local.cfg.py | 2 +- - compiler-rt/test/cfi/icall/lit.local.cfg.py | 2 +- - 5 files changed, 16 insertions(+), 5 deletions(-) - -diff --git a/compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake b/compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake -index d14745ef9d13..9b0a4655cd65 100644 ---- a/compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake -+++ b/compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake -@@ -73,7 +73,7 @@ set(ALL_UBSAN_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64} ${RISCV64} - set(ALL_SAFESTACK_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM64} ${MIPS32} ${MIPS64} - ${HEXAGON} ${LOONGARCH64}) - set(ALL_CFI_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64} ${MIPS64} -- ${HEXAGON}) -+ ${HEXAGON} ${LOONGARCH64}) - set(ALL_SCUDO_STANDALONE_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64} - ${MIPS32} ${MIPS64} ${PPC64} ${HEXAGON} ${LOONGARCH64} ${RISCV64}) - if(APPLE) -diff --git a/compiler-rt/lib/cfi/cfi.cpp b/compiler-rt/lib/cfi/cfi.cpp -index 22f0b175dd87..ad1c91623514 100644 ---- a/compiler-rt/lib/cfi/cfi.cpp -+++ b/compiler-rt/lib/cfi/cfi.cpp -@@ -51,7 +51,11 @@ using namespace __sanitizer; - - namespace __cfi { - -+#if SANITIZER_LOONGARCH64 -+#define kCfiShadowLimitsStorageSize 16384 // 16KiB on loongarch64 per page -+#else - #define kCfiShadowLimitsStorageSize 4096 // 1 page -+#endif - // Lets hope that the data segment is mapped with 4K pages. - // The pointer to the cfi shadow region is stored at the start of this page. - // The rest of the page is unused and re-mapped read-only. -diff --git a/compiler-rt/test/cfi/cross-dso/icall/dlopen.cpp b/compiler-rt/test/cfi/cross-dso/icall/dlopen.cpp -index c9674c3fb412..d04f7ba5dd0e 100644 ---- a/compiler-rt/test/cfi/cross-dso/icall/dlopen.cpp -+++ b/compiler-rt/test/cfi/cross-dso/icall/dlopen.cpp -@@ -53,6 +53,13 @@ struct A { - virtual void f(); - }; - -+// The page size of LoongArch is 16KiB, aligned to the memory page size. -+#ifdef __loongarch__ -+# define PAGESIZE 16384 -+#else -+# define PAGESIZE 4096 -+#endif -+ - #ifdef SHARED_LIB - - #include "../../utils.h" -@@ -66,13 +73,13 @@ extern "C" void *create_B() { - return (void *)(new B()); - } - --extern "C" __attribute__((aligned(4096))) void do_nothing() {} -+extern "C" __attribute__((aligned(PAGESIZE))) void do_nothing() {} - - #else - - void A::f() {} - --static const int kCodeAlign = 4096; -+static const int kCodeAlign = PAGESIZE; - static const int kCodeSize = 4096; - static char saved_code[kCodeSize]; - static char *real_start; -diff --git a/compiler-rt/test/cfi/cross-dso/icall/lit.local.cfg.py b/compiler-rt/test/cfi/cross-dso/icall/lit.local.cfg.py -index 749c265bbf1c..6e64199ed5c5 100644 ---- a/compiler-rt/test/cfi/cross-dso/icall/lit.local.cfg.py -+++ b/compiler-rt/test/cfi/cross-dso/icall/lit.local.cfg.py -@@ -1,3 +1,3 @@ - # The cfi-icall checker is only supported on x86 and x86_64 for now. --if config.root.host_arch not in ["x86", "x86_64"]: -+if config.root.host_arch not in ["x86", "x86_64", "loongarch64"]: - config.unsupported = True -diff --git a/compiler-rt/test/cfi/icall/lit.local.cfg.py b/compiler-rt/test/cfi/icall/lit.local.cfg.py -index 749c265bbf1c..6e64199ed5c5 100644 ---- a/compiler-rt/test/cfi/icall/lit.local.cfg.py -+++ b/compiler-rt/test/cfi/icall/lit.local.cfg.py -@@ -1,3 +1,3 @@ - # The cfi-icall checker is only supported on x86 and x86_64 for now. --if config.root.host_arch not in ["x86", "x86_64"]: -+if config.root.host_arch not in ["x86", "x86_64", "loongarch64"]: - config.unsupported = True --- -2.20.1 - - -From c1b7fb975564f8d372b7af81e90519c47935d1b7 Mon Sep 17 00:00:00 2001 -From: Ami-zhang -Date: Fri, 27 Oct 2023 16:52:10 +0800 -Subject: [PATCH 3/5] [test][compiler-rt] Mark several tests as UNSUPPORTED on - LoongArch (#69699) - -(cherry picked from commit 75b0a99668cef7abaf36e09c41bb1eb91234bbf3) ---- - compiler-rt/test/fuzzer/exit_on_src_pos.test | 2 ++ - .../test/sanitizer_common/TestCases/Linux/odd_stack_size.cpp | 2 ++ - .../sanitizer_common/TestCases/Linux/release_to_os_test.cpp | 2 +- - compiler-rt/test/xray/TestCases/Posix/fdr-mode.cpp | 2 ++ - 4 files changed, 7 insertions(+), 1 deletion(-) - -diff --git a/compiler-rt/test/fuzzer/exit_on_src_pos.test b/compiler-rt/test/fuzzer/exit_on_src_pos.test -index 541e0c4c6e42..020424e2d9fd 100644 ---- a/compiler-rt/test/fuzzer/exit_on_src_pos.test -+++ b/compiler-rt/test/fuzzer/exit_on_src_pos.test -@@ -6,6 +6,8 @@ - - # Test does not complete on Armv7 Thumb build bot - UNSUPPORTED: target=thumb{{.*}} -+# Timeout on loongarch64 machine -+UNSUPPORTED: target=loongarch64{{.*}} - - RUN: %cpp_compiler -O0 %S/SimpleTest.cpp -o %t-SimpleTest.exe -mllvm -use-unknown-locations=Disable - RUN: %cpp_compiler -O0 %S/ShrinkControlFlowTest.cpp -o %t-ShrinkControlFlowTest.exe -diff --git a/compiler-rt/test/sanitizer_common/TestCases/Linux/odd_stack_size.cpp b/compiler-rt/test/sanitizer_common/TestCases/Linux/odd_stack_size.cpp -index fc31212b7f18..9d7d46b462a8 100644 ---- a/compiler-rt/test/sanitizer_common/TestCases/Linux/odd_stack_size.cpp -+++ b/compiler-rt/test/sanitizer_common/TestCases/Linux/odd_stack_size.cpp -@@ -5,6 +5,8 @@ - // AddressSanitizer: CHECK failed: asan_thread.cpp:315 "((AddrIsInStack((uptr)&local))) != (0)" - // https://lab.llvm.org/buildbot/#/builders/18/builds/8162 - // UNSUPPORTED: target=powerpc64{{.*}} -+/// Occasionally fail on loongarch64 machine -+// UNSUPPORTED: target=loongarch64{{.*}} - - #include - #include -diff --git a/compiler-rt/test/sanitizer_common/TestCases/Linux/release_to_os_test.cpp b/compiler-rt/test/sanitizer_common/TestCases/Linux/release_to_os_test.cpp -index 67351a916441..0fa77200bf1c 100644 ---- a/compiler-rt/test/sanitizer_common/TestCases/Linux/release_to_os_test.cpp -+++ b/compiler-rt/test/sanitizer_common/TestCases/Linux/release_to_os_test.cpp -@@ -3,7 +3,7 @@ - - // Temporarily disable test - // UNSUPPORTED: tsan --// UNSUPPORTED: target=powerpc64{{.*}} -+// UNSUPPORTED: target={{(powerpc64|loongarch64).*}} - - // Not needed, no allocator. - // UNSUPPORTED: ubsan -diff --git a/compiler-rt/test/xray/TestCases/Posix/fdr-mode.cpp b/compiler-rt/test/xray/TestCases/Posix/fdr-mode.cpp -index 3065981a2c9a..0ee8aaa755d5 100644 ---- a/compiler-rt/test/xray/TestCases/Posix/fdr-mode.cpp -+++ b/compiler-rt/test/xray/TestCases/Posix/fdr-mode.cpp -@@ -19,6 +19,8 @@ - // RUN: rm fdr-logging-test-* - // RUN: rm fdr-unwrite-test-* - // UNSUPPORTED: target=powerpc64le-{{.*}} -+/// TODO: FDR logging arg1 handler(__xray_ArgLoggerEntry) hasn't implemented yet on LoongArch -+// UNSUPPORTED: target=loongarch64{{.*}} - // REQUIRES: built-in-llvm-tree - - #include "xray/xray_log_interface.h" --- -2.20.1 - - -From 6ff7bf14a7bbb438f58fc20dd56a2adf157022f3 Mon Sep 17 00:00:00 2001 -From: abner chenc -Date: Thu, 28 Dec 2023 18:54:35 +0800 -Subject: [PATCH 4/5] [tsan] Add support for linux/loongarch64 in - lib/tsan/go/buildgo.sh (#72819) - -Co-authored-by: Xiaolin Zhao -(cherry picked from commit 9d3fbf97bef3f19da4e0a047f017b8142f59b3fd) ---- - compiler-rt/lib/tsan/go/buildgo.sh | 2 ++ - compiler-rt/lib/tsan/rtl/tsan_platform.h | 32 +++++++++++++++++++ - .../lib/tsan/rtl/tsan_platform_linux.cpp | 8 ++++- - 3 files changed, 41 insertions(+), 1 deletion(-) - -diff --git a/compiler-rt/lib/tsan/go/buildgo.sh b/compiler-rt/lib/tsan/go/buildgo.sh -index 0bd59368cc46..78ba41a0bdc6 100755 ---- a/compiler-rt/lib/tsan/go/buildgo.sh -+++ b/compiler-rt/lib/tsan/go/buildgo.sh -@@ -10,6 +10,8 @@ if [ "`uname -a | grep Linux`" != "" ]; then - HOST_GOARCH="amd64" - elif [ "`uname -a | grep aarch64`" != "" ]; then - HOST_GOARCH="arm64" -+ elif [ "`uname -a | grep loongarch64`" != "" ]; then -+ HOST_GOARCH="loong64" - elif [ "`uname -a | grep -i mips64`" != "" ]; then - if [ "`lscpu | grep -i Little`" != "" ]; then - HOST_GOARCH="mips64le" -diff --git a/compiler-rt/lib/tsan/rtl/tsan_platform.h b/compiler-rt/lib/tsan/rtl/tsan_platform.h -index f0cdaf48eaa3..48dd56d15751 100644 ---- a/compiler-rt/lib/tsan/rtl/tsan_platform.h -+++ b/compiler-rt/lib/tsan/rtl/tsan_platform.h -@@ -558,6 +558,35 @@ struct MappingGoAarch64 { - static const uptr kShadowAdd = 0x200000000000ull; - }; - -+/* Go on linux/loongarch64 (47-bit VMA) -+0000 0000 1000 - 0000 1000 0000: executable -+0000 1000 0000 - 00c0 0000 0000: - -+00c0 0000 0000 - 00e0 0000 0000: heap -+00e0 0000 0000 - 2000 0000 0000: - -+2000 0000 0000 - 2800 0000 0000: shadow -+2800 0000 0000 - 3000 0000 0000: - -+3000 0000 0000 - 3200 0000 0000: metainfo (memory blocks and sync objects) -+3200 0000 0000 - 8000 0000 0000: - -+*/ -+struct MappingGoLoongArch64_47 { -+ static const uptr kMetaShadowBeg = 0x300000000000ull; -+ static const uptr kMetaShadowEnd = 0x320000000000ull; -+ static const uptr kShadowBeg = 0x200000000000ull; -+ static const uptr kShadowEnd = 0x280000000000ull; -+ static const uptr kLoAppMemBeg = 0x000000001000ull; -+ static const uptr kLoAppMemEnd = 0x00e000000000ull; -+ static const uptr kMidAppMemBeg = 0; -+ static const uptr kMidAppMemEnd = 0; -+ static const uptr kHiAppMemBeg = 0; -+ static const uptr kHiAppMemEnd = 0; -+ static const uptr kHeapMemBeg = 0; -+ static const uptr kHeapMemEnd = 0; -+ static const uptr kVdsoBeg = 0; -+ static const uptr kShadowMsk = 0; -+ static const uptr kShadowXor = 0; -+ static const uptr kShadowAdd = 0x200000000000ull; -+}; -+ - /* - Go on linux/mips64 (47-bit VMA) - 0000 0000 1000 - 0000 1000 0000: executable -@@ -633,6 +662,8 @@ ALWAYS_INLINE auto SelectMapping(Arg arg) { - return Func::template Apply(arg); - # elif defined(__aarch64__) - return Func::template Apply(arg); -+# elif defined(__loongarch_lp64) -+ return Func::template Apply(arg); - # elif SANITIZER_WINDOWS - return Func::template Apply(arg); - # else -@@ -692,6 +723,7 @@ void ForEachMapping() { - Func::template Apply(); - Func::template Apply(); - Func::template Apply(); -+ Func::template Apply(); - Func::template Apply(); - Func::template Apply(); - } -diff --git a/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp b/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp -index 384a443c16b0..3f4a3760794f 100644 ---- a/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp -+++ b/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp -@@ -238,7 +238,13 @@ void InitializePlatformEarly() { - Printf("FATAL: Found %zd - Supported 47\n", vmaSize); - Die(); - } --# endif -+# else -+ if (vmaSize != 47) { -+ Printf("FATAL: ThreadSanitizer: unsupported VMA range\n"); -+ Printf("FATAL: Found %zd - Supported 47\n", vmaSize); -+ Die(); -+ } -+# endif - #elif defined(__powerpc64__) - # if !SANITIZER_GO - if (vmaSize != 44 && vmaSize != 46 && vmaSize != 47) { --- -2.20.1 - - -From ffa86e49836d567aa6b817563d1e4b99dc5f21c7 Mon Sep 17 00:00:00 2001 -From: Fangrui Song -Date: Tue, 26 Mar 2024 14:09:39 -0700 -Subject: [PATCH 5/5] [tsan] Refine fstat{,64} interceptors (#86625) - -In glibc versions before 2.33. `libc_nonshared.a` defines -`__fxstat/__fxstat64` but there is no `fstat/fstat64`. glibc 2.33 added -`fstat/fstat64` and obsoleted `__fxstat/__fxstat64`. Ports added after -2.33 do not provide `__fxstat/__fxstat64`, so our `fstat/fstat64` -interceptors using `__fxstat/__fxstat64` interceptors would lead to -runtime failures on such ports (LoongArch and certain RISC-V ports). - -Similar to https://reviews.llvm.org/D118423, refine the conditions that -we define fstat{,64} interceptors. `fstat` is supported by musl/*BSD -while `fstat64` is glibc only. - -(cherry picked from commit d5224b73ccd09a6759759791f58426b6acd4a2e2) ---- - .../lib/tsan/rtl/tsan_interceptors_posix.cpp | 43 ++++++++----------- - 1 file changed, 18 insertions(+), 25 deletions(-) - -diff --git a/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp b/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp -index 177e338bf282..622afc90a577 100644 ---- a/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp -+++ b/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp -@@ -14,6 +14,7 @@ - - #include "sanitizer_common/sanitizer_atomic.h" - #include "sanitizer_common/sanitizer_errno.h" -+#include "sanitizer_common/sanitizer_glibc_version.h" - #include "sanitizer_common/sanitizer_libc.h" - #include "sanitizer_common/sanitizer_linux.h" - #include "sanitizer_common/sanitizer_platform_limits_netbsd.h" -@@ -1595,47 +1596,40 @@ TSAN_INTERCEPTOR(int, __fxstat, int version, int fd, void *buf) { - FdAccess(thr, pc, fd); - return REAL(__fxstat)(version, fd, buf); - } --#define TSAN_MAYBE_INTERCEPT___FXSTAT TSAN_INTERCEPT(__fxstat) -+ -+TSAN_INTERCEPTOR(int, __fxstat64, int version, int fd, void *buf) { -+ SCOPED_TSAN_INTERCEPTOR(__fxstat64, version, fd, buf); -+ if (fd > 0) -+ FdAccess(thr, pc, fd); -+ return REAL(__fxstat64)(version, fd, buf); -+} -+#define TSAN_MAYBE_INTERCEPT___FXSTAT TSAN_INTERCEPT(__fxstat); TSAN_INTERCEPT(__fxstat64) - #else - #define TSAN_MAYBE_INTERCEPT___FXSTAT - #endif - -+#if !SANITIZER_GLIBC || __GLIBC_PREREQ(2, 33) - TSAN_INTERCEPTOR(int, fstat, int fd, void *buf) { --#if SANITIZER_GLIBC -- SCOPED_TSAN_INTERCEPTOR(__fxstat, 0, fd, buf); -- if (fd > 0) -- FdAccess(thr, pc, fd); -- return REAL(__fxstat)(0, fd, buf); --#else - SCOPED_TSAN_INTERCEPTOR(fstat, fd, buf); - if (fd > 0) - FdAccess(thr, pc, fd); - return REAL(fstat)(fd, buf); --#endif --} -- --#if SANITIZER_GLIBC --TSAN_INTERCEPTOR(int, __fxstat64, int version, int fd, void *buf) { -- SCOPED_TSAN_INTERCEPTOR(__fxstat64, version, fd, buf); -- if (fd > 0) -- FdAccess(thr, pc, fd); -- return REAL(__fxstat64)(version, fd, buf); - } --#define TSAN_MAYBE_INTERCEPT___FXSTAT64 TSAN_INTERCEPT(__fxstat64) -+# define TSAN_MAYBE_INTERCEPT_FSTAT TSAN_INTERCEPT(fstat) - #else --#define TSAN_MAYBE_INTERCEPT___FXSTAT64 -+# define TSAN_MAYBE_INTERCEPT_FSTAT - #endif - --#if SANITIZER_GLIBC -+#if __GLIBC_PREREQ(2, 33) - TSAN_INTERCEPTOR(int, fstat64, int fd, void *buf) { -- SCOPED_TSAN_INTERCEPTOR(__fxstat64, 0, fd, buf); -+ SCOPED_TSAN_INTERCEPTOR(fstat64, fd, buf); - if (fd > 0) - FdAccess(thr, pc, fd); -- return REAL(__fxstat64)(0, fd, buf); -+ return REAL(fstat64)(fd, buf); - } --#define TSAN_MAYBE_INTERCEPT_FSTAT64 TSAN_INTERCEPT(fstat64) -+# define TSAN_MAYBE_INTERCEPT_FSTAT64 TSAN_INTERCEPT(fstat64) - #else --#define TSAN_MAYBE_INTERCEPT_FSTAT64 -+# define TSAN_MAYBE_INTERCEPT_FSTAT64 - #endif - - TSAN_INTERCEPTOR(int, open, const char *name, int oflag, ...) { -@@ -2929,10 +2923,9 @@ void InitializeInterceptors() { - - TSAN_INTERCEPT(pthread_once); - -- TSAN_INTERCEPT(fstat); - TSAN_MAYBE_INTERCEPT___FXSTAT; -+ TSAN_MAYBE_INTERCEPT_FSTAT; - TSAN_MAYBE_INTERCEPT_FSTAT64; -- TSAN_MAYBE_INTERCEPT___FXSTAT64; - TSAN_INTERCEPT(open); - TSAN_MAYBE_INTERCEPT_OPEN64; - TSAN_INTERCEPT(creat); --- -2.20.1 - diff --git a/README.en.md b/README.en.md index abe3b4e6a32383d29b9ce13a90c2060f379a180a..a1aa30fc864638290725e652710ec278619d6e3c 100644 --- a/README.en.md +++ b/README.en.md @@ -1,8 +1,23 @@ -# compiler-rt +# compiler-rt-latest #### Description The llvm compiler support routines +#### Software Architecture +Software architecture description + +#### Installation + +1. xxxx +2. xxxx +3. xxxx + +#### Instructions + +1. xxxx +2. xxxx +3. xxxx + #### Contribution 1. Fork the repository diff --git a/README.md b/README.md index efdc2f5f9e5c3105aba005a6d0bbc519aecb10a4..c2f483dbfc4c7d0968de4f4f37bd8f399f75a75a 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,24 @@ -# compiler-rt +# compiler-rt-latest #### 介绍 The llvm compiler support routines +#### 软件架构 +软件架构说明 + + +#### 安装教程 + +1. xxxx +2. xxxx +3. xxxx + +#### 使用说明 + +1. xxxx +2. xxxx +3. xxxx + #### 参与贡献 1. Fork 本仓库 diff --git a/compiler-rt-17.0.6.src.tar.xz b/compiler-rt-17.0.6.src.tar.xz deleted file mode 100644 index 3a0df8ab060750bf22fff63841addf793ed4375d..0000000000000000000000000000000000000000 Binary files a/compiler-rt-17.0.6.src.tar.xz and /dev/null differ diff --git a/compiler-rt-17.0.6.src.tar.xz.sig b/compiler-rt-17.0.6.src.tar.xz.sig deleted file mode 100644 index 29281c0a8597f12b039d946716b1ca0632e5e254..0000000000000000000000000000000000000000 Binary files a/compiler-rt-17.0.6.src.tar.xz.sig and /dev/null differ diff --git a/compiler-rt-18.1.8.src.tar.xz b/compiler-rt-18.1.8.src.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..7d53f90cb842624f80060650312ecac506c1c23a Binary files /dev/null and b/compiler-rt-18.1.8.src.tar.xz differ diff --git a/compiler-rt-18.1.8.src.tar.xz.sig b/compiler-rt-18.1.8.src.tar.xz.sig new file mode 100644 index 0000000000000000000000000000000000000000..8de17eba5f1a9769ac47ad03bb5a4c4c5daef5d1 Binary files /dev/null and b/compiler-rt-18.1.8.src.tar.xz.sig differ diff --git a/compiler-rt.spec b/compiler-rt.spec index be490055fd3988aaf43d8a071a4a1d56a6c333f6..7872983970b56e77065885d54421cd3021ac17aa 100644 --- a/compiler-rt.spec +++ b/compiler-rt.spec @@ -1,29 +1,24 @@ -%bcond_without sys_llvm %bcond_without check %bcond_without toolchain_clang -%bcond_without bisheng_autotuner %if %{with toolchain_clang} %global toolchain clang %endif -%global maj_ver 17 -%global min_ver 0 -%global patch_ver 6 +%global maj_ver 18 +%global min_ver 1 +%global patch_ver 8 %global crt_version %{maj_ver}.%{min_ver}.%{patch_ver} %global crt_srcdir compiler-rt-%{version}%{?rc_ver:rc%{rc_ver}}.src %global optflags %(echo %{optflags} -D_DEFAULT_SOURCE) %global optflags %(echo %{optflags} -Dasm=__asm__) -%if %{with sys_llvm} -%global pkg_name compiler-rt -%global install_prefix %{_prefix} -%global install_datadir %{_datadir} -%else -%global pkg_name compiler-rt%{maj_ver} -%global install_prefix %{_libdir}/llvm%{maj_ver} -%global install_datadir %{install_prefix}/share -%endif +%global _scl_prefix /opt/openEuler +%{?scl:%scl_package %scl} +%{!?scl:%global scl_prefix llvm-toolset-%{maj_ver}-} +%{!?scl:%global pkg_name %{name}} +%global install_prefix %{!?scl:%{_scl_prefix}/llvm-toolset-%{maj_ver}/root}%{_prefix} +%global install_datadir %{!?scl:%{_scl_prefix}/llvm-toolset-%{maj_ver}/root}%{_datadir} %if 0%{?__isa_bits} == 64 %global install_libdir %{install_prefix}/lib64 @@ -31,9 +26,9 @@ %global install_libdir %{install_prefix}/lib %endif -Name: %{pkg_name} +Name: %{?scl_prefix}compiler-rt Version: %{crt_version} -Release: 6 +Release: 1 Summary: LLVM "compiler-rt" runtime libraries License: NCSA or MIT @@ -41,8 +36,6 @@ URL: http://llvm.org Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/%{crt_srcdir}.tar.xz Source1: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/%{crt_srcdir}.tar.xz.sig -Patch1: 0001-Backport-LoongArch-improve-the-support-for-compiler-rt.patch - BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: cmake @@ -54,15 +47,9 @@ BuildRequires: python3-devel BuildRequires: clang %endif -%if %{with sys_llvm} -BuildRequires: llvm-devel = %{version} -BuildRequires: llvm-test = %{version} -BuildRequires: llvm-cmake-utils = %{version} -%else -BuildRequires: llvm%{maj_ver}-devel = %{version} -BuildRequires: llvm%{maj_ver}-test = %{version} -BuildRequires: llvm%{maj_ver}-cmake-utils = %{version} -%endif +BuildRequires: %{?scl_prefix}llvm-devel = %{version} +BuildRequires: %{?scl_prefix}llvm-test = %{version} +BuildRequires: %{?scl_prefix}llvm-cmake-utils = %{version} %description The compiler-rt project is a part of the LLVM project. It provides @@ -80,7 +67,12 @@ pathfix.py -i %{__python3} -pn lib/hwasan/scripts/hwasan_symbolize %build # Copy CFLAGS into ASMFLAGS, so -fcf-protection is used when compiling assembly files. export ASMFLAGS=$CFLAGS -%cmake \ +mkdir -p _build +cd _build +%cmake .. \ + -DCMAKE_INSTALL_PREFIX=%{install_prefix} \ + -DLLVM_COMMON_CMAKE_UTILS=%{install_datadir}/llvm/cmake \ + -DLLVM_MAIN_SRC_DIR=%{install_prefix}/src \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_MODULE_PATH=%{install_libdir}/cmake/llvm \ -DCMAKE_SKIP_RPATH:BOOL=ON \ @@ -94,16 +86,18 @@ export ASMFLAGS=$CFLAGS %if "%{toolchain}" == "clang" -DCMAKE_C_COMPILER=clang \ -DCMAKE_CXX_COMPILER=clang++ \ -%endif -%if %{with bisheng_autotuner} - -DLLVM_ENABLE_AUTOTUNER=ON \ %endif -DCOMPILER_RT_INCLUDE_TESTS:BOOL=OFF # could be on? -%cmake_build +%make_build %install -%cmake_install +cd _build +%make_install + +%check + +#%%cmake_build --target check-compiler-rt %files %license LICENSE.TXT @@ -118,6 +112,9 @@ export ASMFLAGS=$CFLAGS %endif %changelog +* Fri Dec 6 2024 liyunfei - 18.1.8-1 +- init for Multi-Version LLVM-18.1.8 + * Thu Nov 14 2024 Funda Wang - 17.0.6-6 - adopt to new cmake macro