diff --git a/.compiler-rt.metadata b/.compiler-rt.metadata index 181a005..f138bf8 100644 --- a/.compiler-rt.metadata +++ b/.compiler-rt.metadata @@ -1,2 +1,2 @@ -68e9e2f569ccfe0af9f5df61ec74808688198946 SOURCES/compiler-rt-13.0.1.src.tar.xz +91f03b578aff0fda6b9d3e2185e6ea5e588c6d47 SOURCES/compiler-rt-14.0.6.src.tar.xz b8d2648a01d36ed0186fd2c5af325fd28797f9a0 SOURCES/tstellar-gpg-key.asc diff --git a/.gitignore b/.gitignore index 941953c..671a08d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -SOURCES/compiler-rt-13.0.1.src.tar.xz +SOURCES/compiler-rt-14.0.6.src.tar.xz SOURCES/tstellar-gpg-key.asc diff --git a/SOURCES/0001-PATCH-compiler-rt-Workaround-libstdc-limitation-wrt..patch b/SOURCES/0001-PATCH-compiler-rt-Workaround-libstdc-limitation-wrt..patch deleted file mode 100644 index f734b5f..0000000 --- a/SOURCES/0001-PATCH-compiler-rt-Workaround-libstdc-limitation-wrt..patch +++ /dev/null @@ -1,43 +0,0 @@ -From 8247295860b69fd379e282c3e6315df9f700e4d8 Mon Sep 17 00:00:00 2001 -From: serge-sans-paille -Date: Thu, 25 Feb 2021 14:12:57 +0100 -Subject: [PATCH][compiler-rt] Workaround libstdc++ limitation wrt. thread copy - ---- - compiler-rt/lib/fuzzer/FuzzerDefs.h | 6 ++++++ - compiler-rt/lib/fuzzer/FuzzerDriver.cpp | 2 +- - 2 files changed, 7 insertions(+), 1 deletion(-) - -diff --git a/compiler-rt/lib/fuzzer/FuzzerDefs.h b/compiler-rt/lib/fuzzer/FuzzerDefs.h -index 1a2752a..abfbb8d 100644 ---- a/compiler-rt/lib/fuzzer/FuzzerDefs.h -+++ b/compiler-rt/lib/fuzzer/FuzzerDefs.h -@@ -50,6 +50,12 @@ template - - template - struct rebind { typedef fuzzer_allocator other; }; -+ -+ template< class U, class... Args > -+ void construct( U* p, Args&&... args ) { -+ std::allocator::construct(p, std::forward(args)...); -+ } -+ - }; - - template -diff --git a/compiler-rt/lib/fuzzer/FuzzerDriver.cpp b/compiler-rt/lib/fuzzer/FuzzerDriver.cpp -index 447cafc..2fce139 100644 ---- a/compiler-rt/lib/fuzzer/FuzzerDriver.cpp -+++ b/compiler-rt/lib/fuzzer/FuzzerDriver.cpp -@@ -294,7 +294,7 @@ static int RunInMultipleProcesses(const Vector &Args, - std::thread Pulse(PulseThread); - Pulse.detach(); - for (unsigned i = 0; i < NumWorkers; i++) -- V.push_back(std::thread(WorkerThread, std::ref(Cmd), &Counter, NumJobs, &HasErrors)); -+ V.emplace_back(WorkerThread, std::ref(Cmd), &Counter, NumJobs, &HasErrors); - for (auto &T : V) - T.join(); - return HasErrors ? 1 : 0; --- -1.8.3.1 - diff --git a/SOURCES/add-llvm-cmake-package.patch b/SOURCES/add-llvm-cmake-package.patch new file mode 100644 index 0000000..b7b63b6 --- /dev/null +++ b/SOURCES/add-llvm-cmake-package.patch @@ -0,0 +1,37 @@ +commit b18bde7a9bd6ed80f5721c47c805f0158b4fe9f8 +Author: Timm Bäder +Date: Wed Mar 9 07:17:21 2022 +0100 + + [compiler-rt] Add LLVM cmake package in standalone builds + + So the other files from the toplevel cmake/Modules directory have a + chance of being found. + +diff --git a/compiler-rt/CMakeLists.txt b/compiler-rt/CMakeLists.txt +index 3a41aa43e406..6516e10fa3c5 100644 +--- a/compiler-rt/CMakeLists.txt ++++ b/compiler-rt/CMakeLists.txt +@@ -28,6 +28,12 @@ else() + set(CMAKE_CFG_RESOLVED_INTDIR "") + endif() + ++if(COMPILER_RT_STANDALONE_BUILD) ++ # Needed to find the other modules from the toplevel cmake/Modules dir ++ find_package(LLVM REQUIRED HINTS "${LLVM_CMAKE_DIR}") ++ list(APPEND CMAKE_MODULE_PATH "${LLVM_DIR}") ++endif() ++ + include(SetPlatformToolchainTools) + include(base-config-ix) + include(CompilerRTUtils) +diff --git a/compiler-rt/test/CMakeLists.txt b/compiler-rt/test/CMakeLists.txt +index 5c2b634e1180..098fb0481517 100644 +--- a/compiler-rt/test/CMakeLists.txt ++++ b/compiler-rt/test/CMakeLists.txt +@@ -1,6 +1,3 @@ +-# Needed for lit support in standalone builds. +-include(AddLLVM) +- + option(COMPILER_RT_TEST_STANDALONE_BUILD_LIBS + "When set to ON and testing in a standalone build, test the runtime \ + libraries built by this standalone build rather than the runtime libraries \ diff --git a/SOURCES/compiler-rt-13.0.1.src.tar.xz.sig b/SOURCES/compiler-rt-13.0.1.src.tar.xz.sig deleted file mode 100644 index 92caabc..0000000 Binary files a/SOURCES/compiler-rt-13.0.1.src.tar.xz.sig and /dev/null differ diff --git a/SOURCES/compiler-rt-14.0.6.src.tar.xz.sig b/SOURCES/compiler-rt-14.0.6.src.tar.xz.sig new file mode 100644 index 0000000..c88e808 Binary files /dev/null and b/SOURCES/compiler-rt-14.0.6.src.tar.xz.sig differ diff --git a/SOURCES/fix-page-size-constant.patch b/SOURCES/fix-page-size-constant.patch new file mode 100644 index 0000000..2c39c3a --- /dev/null +++ b/SOURCES/fix-page-size-constant.patch @@ -0,0 +1,15 @@ +diff -ruN compiler-rt-14.0.0.src.orig/lib/cfi/cfi.cpp compiler-rt-14.0.0.src/lib/cfi/cfi.cpp +--- a/compiler-rt-14.0.0.src.orig/lib/cfi/cfi.cpp 2022-03-14 10:44:55.000000000 +0100 ++++ b/compiler-rt-14.0.0.src/lib/cfi/cfi.cpp 2022-05-25 17:03:51.114415534 +0200 +@@ -51,7 +51,11 @@ + + namespace __cfi { + ++#if defined(__aarch64__) || defined(__powerpc64__) ++#define kCfiShadowLimitsStorageSize 65536 // 1 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/SPECS/compiler-rt.spec b/SPECS/compiler-rt.spec index 5b736ba..a99d5a4 100644 --- a/SPECS/compiler-rt.spec +++ b/SPECS/compiler-rt.spec @@ -1,6 +1,5 @@ -#global rc_ver 3 - -%global compiler_rt_version 13.0.1 +%global compiler_rt_version 14.0.6 +#global rc_ver 2 %global crt_srcdir compiler-rt-%{compiler_rt_version}%{?rc_ver:rc%{rc_ver}}.src # see https://sourceware.org/bugzilla/show_bug.cgi?id=25271 @@ -20,10 +19,11 @@ Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{compil Source1: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{compiler_rt_version}%{?rc_ver:-rc%{rc_ver}}/%{crt_srcdir}.tar.xz.sig Source2: tstellar-gpg-key.asc -Patch0: 0001-PATCH-compiler-rt-Workaround-libstdc-limitation-wrt..patch +Patch0: add-llvm-cmake-package.patch # RHEL-specific patches Patch100: 0001-Drop-fno-stack-protector-from-the-compiler-flags.patch +Patch101: fix-page-size-constant.patch BuildRequires: gcc BuildRequires: gcc-c++ @@ -34,6 +34,9 @@ BuildRequires: python3 BuildRequires: python3-devel BuildRequires: llvm-devel = %{version} +# For gpg source verification +BuildRequires: gnupg2 + Requires: clang-resource-filesystem%{?isa} = %{version} %description @@ -43,10 +46,10 @@ code generation, sanitizer runtimes and profiling library for code instrumentation, and Blocks C language extension. %prep - +%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' %autosetup -n %{crt_srcdir} -p2 -pathfix.py -i %{__python3} -pn lib/hwasan/scripts/hwasan_symbolize +%py3_shebang_fix lib/hwasan/scripts/hwasan_symbolize %build mkdir -p %{_vpath_builddir} @@ -114,6 +117,18 @@ popd %endif %changelog +* Tue Jun 28 2022 Tom Stellard - 14.0.6-1 +- 14.0.6 Release + +* Wed May 25 2022 Timm Bäder - 14.0.0-3 +- Fix page size constant size on aarch64 and ppc64le + +* Fri Apr 29 2022 Timm Bäder - 14.0.0-2 +- Remove llvm-cmake-devel BR + +* Thu Apr 07 2022 Timm Bäder - 14.0.0-1 +- Update to 14.0.0 + * Thu Feb 03 2022 Tom Stellard - 13.0.1-1 - 13.0.1 Release