commit 58600300af2bc7196480b2915a51f4a866aec281 Author: CentOS Sources Date: Thu Aug 27 18:43:47 2020 +0000 import compiler-rt-10.0.1-1.module+el8.3.0+7459+90c24896 diff --git a/.compiler-rt.metadata b/.compiler-rt.metadata new file mode 100644 index 0000000..9720322 --- /dev/null +++ b/.compiler-rt.metadata @@ -0,0 +1,2 @@ +ee6077b4728b3c750e476938cead11cea45b49ff SOURCES/compiler-rt-10.0.1.src.tar.xz +32fa4b0193960f05064f2ab31b5a89c7cf48a0b9 SOURCES/hans-gpg-key.asc diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9107e04 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +SOURCES/compiler-rt-10.0.1.src.tar.xz +SOURCES/hans-gpg-key.asc diff --git a/SOURCES/0001-Drop-fno-stack-protector-from-the-compiler-flags.patch b/SOURCES/0001-Drop-fno-stack-protector-from-the-compiler-flags.patch new file mode 100644 index 0000000..d7a57a5 --- /dev/null +++ b/SOURCES/0001-Drop-fno-stack-protector-from-the-compiler-flags.patch @@ -0,0 +1,24 @@ +From f007934385dc76b9299bd72cdef102fe979af93b Mon Sep 17 00:00:00 2001 +From: Tom Stellard +Date: Wed, 5 Sep 2018 21:07:42 -0700 +Subject: [PATCH] Drop -fno-stack-protector from the compiler flags + +--- + compiler-rt/CMakeLists.txt | 1 - + 1 file changed, 1 deletion(-) + +diff --git compiler-rt.orig/CMakeLists.txt compiler-rt/CMakeLists.txt +index f26ae25..a6ac032 100644 +--- compiler-rt.orig/CMakeLists.txt ++++ b/compiler-rt/CMakeLists.txt +@@ -271,7 +271,6 @@ if(NOT COMPILER_RT_DEBUG AND NOT APPLE) + append_list_if(COMPILER_RT_HAS_FOMIT_FRAME_POINTER_FLAG -fomit-frame-pointer SANITIZER_COMMON_CFLAGS) + endif() + append_list_if(COMPILER_RT_HAS_FUNWIND_TABLES_FLAG -funwind-tables SANITIZER_COMMON_CFLAGS) +-append_list_if(COMPILER_RT_HAS_FNO_STACK_PROTECTOR_FLAG -fno-stack-protector SANITIZER_COMMON_CFLAGS) + append_list_if(COMPILER_RT_HAS_FNO_SANITIZE_SAFE_STACK_FLAG -fno-sanitize=safe-stack SANITIZER_COMMON_CFLAGS) + append_list_if(COMPILER_RT_HAS_FVISIBILITY_HIDDEN_FLAG -fvisibility=hidden SANITIZER_COMMON_CFLAGS) + if(NOT COMPILER_RT_HAS_FVISIBILITY_HIDDEN_FLAG) +-- +1.8.3.1 + diff --git a/SOURCES/0001-Fix-strict-aliasing-warning-in-msan.cpp.patch b/SOURCES/0001-Fix-strict-aliasing-warning-in-msan.cpp.patch new file mode 100644 index 0000000..b1f41e8 --- /dev/null +++ b/SOURCES/0001-Fix-strict-aliasing-warning-in-msan.cpp.patch @@ -0,0 +1,68 @@ +From af38074874c605f9e598ae3f7e5d4befa3fe92bb Mon Sep 17 00:00:00 2001 +From: serge-sans-paille +Date: Thu, 28 May 2020 17:50:31 +0200 +Subject: [PATCH] Fix strict aliasing warning in msan.cpp + +Use internal_memcpy instead. + +Differential Revision: https://reviews.llvm.org/D80732 +--- + compiler-rt/lib/msan/msan.cpp | 21 ++++++++++++++------- + 1 file changed, 14 insertions(+), 7 deletions(-) + +diff --git compiler-rt.orig/lib/msan/msan.cpp compiler-rt/lib/msan/msan.cpp +index 7095ee1bf20..8c789901adc 100644 +--- compiler-rt.orig/lib/msan/msan.cpp ++++ compiler-rt/lib/msan/msan.cpp +@@ -617,34 +617,41 @@ u32 __msan_get_umr_origin() { + } + + u16 __sanitizer_unaligned_load16(const uu16 *p) { +- *(uu16 *)&__msan_retval_tls[0] = *(uu16 *)MEM_TO_SHADOW((uptr)p); ++ internal_memcpy(&__msan_retval_tls[0], (void *)MEM_TO_SHADOW((uptr)p), ++ sizeof(uu16)); + if (__msan_get_track_origins()) + __msan_retval_origin_tls = GetOriginIfPoisoned((uptr)p, sizeof(*p)); + return *p; + } + u32 __sanitizer_unaligned_load32(const uu32 *p) { +- *(uu32 *)&__msan_retval_tls[0] = *(uu32 *)MEM_TO_SHADOW((uptr)p); ++ internal_memcpy(&__msan_retval_tls[0], (void *)MEM_TO_SHADOW((uptr)p), ++ sizeof(uu32)); + if (__msan_get_track_origins()) + __msan_retval_origin_tls = GetOriginIfPoisoned((uptr)p, sizeof(*p)); + return *p; + } + u64 __sanitizer_unaligned_load64(const uu64 *p) { +- __msan_retval_tls[0] = *(uu64 *)MEM_TO_SHADOW((uptr)p); ++ internal_memcpy(&__msan_retval_tls[0], (void *)MEM_TO_SHADOW((uptr)p), ++ sizeof(uu64)); + if (__msan_get_track_origins()) + __msan_retval_origin_tls = GetOriginIfPoisoned((uptr)p, sizeof(*p)); + return *p; + } + void __sanitizer_unaligned_store16(uu16 *p, u16 x) { +- u16 s = *(uu16 *)&__msan_param_tls[1]; +- *(uu16 *)MEM_TO_SHADOW((uptr)p) = s; ++ static_assert(sizeof(uu16) == sizeof(u16), "incompatible types"); ++ u16 s; ++ internal_memcpy(&s, &__msan_param_tls[1], sizeof(uu16)); ++ internal_memcpy((void *)MEM_TO_SHADOW((uptr)p), &s, sizeof(uu16)); + if (s && __msan_get_track_origins()) + if (uu32 o = __msan_param_origin_tls[2]) + SetOriginIfPoisoned((uptr)p, (uptr)&s, sizeof(s), o); + *p = x; + } + void __sanitizer_unaligned_store32(uu32 *p, u32 x) { +- u32 s = *(uu32 *)&__msan_param_tls[1]; +- *(uu32 *)MEM_TO_SHADOW((uptr)p) = s; ++ static_assert(sizeof(uu32) == sizeof(u32), "incompatible types"); ++ u32 s; ++ internal_memcpy(&s, &__msan_param_tls[1], sizeof(uu32)); ++ internal_memcpy((void *)MEM_TO_SHADOW((uptr)p), &s, sizeof(uu32)); + if (s && __msan_get_track_origins()) + if (uu32 o = __msan_param_origin_tls[2]) + SetOriginIfPoisoned((uptr)p, (uptr)&s, sizeof(s), o); +-- +2.25.2 + diff --git a/SOURCES/0001-PATCH-std-thread-copy.patch b/SOURCES/0001-PATCH-std-thread-copy.patch new file mode 100644 index 0000000..53d297d --- /dev/null +++ b/SOURCES/0001-PATCH-std-thread-copy.patch @@ -0,0 +1,28 @@ +diff -ru compiler-rt-8.0.0rc1.src.orig/lib/fuzzer/FuzzerDefs.h compiler-rt-8.0.0rc1.src/lib/fuzzer/FuzzerDefs.h +--- compiler-rt-8.0.0rc1.src.orig/lib/fuzzer/FuzzerDefs.h 2019-01-09 21:46:09.000000000 +0000 ++++ compiler-rt-8.0.0rc1.src/lib/fuzzer/FuzzerDefs.h 2019-02-12 14:03:32.971147814 +0000 +@@ -176,6 +176,12 @@ + + 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 -ru compiler-rt-8.0.0rc1.src.orig/lib/fuzzer/FuzzerDriver.cpp compiler-rt-8.0.0rc1.src/lib/fuzzer/FuzzerDriver.cpp +--- compiler-rt-8.0.0rc1.src.orig/lib/fuzzer/FuzzerDriver.cpp 2019-01-15 22:12:51.000000000 +0000 ++++ compiler-rt-8.0.0rc1.src/lib/fuzzer/FuzzerDriver.cpp 2019-02-12 13:05:15.965113872 +0000 +@@ -252,7 +252,7 @@ + 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; diff --git a/SOURCES/compiler-rt-10.0.1.src.tar.xz.sig b/SOURCES/compiler-rt-10.0.1.src.tar.xz.sig new file mode 100644 index 0000000..98c8843 Binary files /dev/null and b/SOURCES/compiler-rt-10.0.1.src.tar.xz.sig differ diff --git a/SPECS/compiler-rt.spec b/SPECS/compiler-rt.spec new file mode 100644 index 0000000..534444c --- /dev/null +++ b/SPECS/compiler-rt.spec @@ -0,0 +1,237 @@ +%ifarch s390 s390x +# only limited set of libs available on s390(x) and the existing ones (stats, ubsan) don't provide debuginfo +%global debug_package %{nil} +%endif + +#%%global rc_ver 6 +%global baserelease 1 + +%global crt_srcdir compiler-rt-%{version}%{?rc_ver:rc%{rc_ver}}.src + +# see https://sourceware.org/bugzilla/show_bug.cgi?id=25271 +%global optflags %(echo %{optflags} -D_DEFAULT_SOURCE) + +# see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93615 +%global optflags %(echo %{optflags} -Dasm=__asm__) + +Name: compiler-rt +Version: 10.0.1 +Release: %{baserelease}%{?rc_ver:.rc%{rc_ver}}%{?dist} +Summary: LLVM "compiler-rt" runtime libraries + +License: NCSA or MIT +URL: http://llvm.org +%if 0%{?rc_ver:1} +Source0: https://prereleases.llvm.org/%{version}/rc%{rc_ver}/%{crt_srcdir}.tar.xz +Source1: https://prereleases.llvm.org/%{version}/rc%{rc_ver}/%{crt_srcdir}.tar.xz.sig +%else +Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/%{crt_srcdir}.tar.xz +Source3: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/%{crt_srcdir}.tar.xz.sig +%endif +Source2: https://prereleases.llvm.org/%{version}/hans-gpg-key.asc + +Patch0: 0001-PATCH-std-thread-copy.patch +Patch1: 0001-Fix-strict-aliasing-warning-in-msan.cpp.patch + +# RHEL-specific patches +Patch100: 0001-Drop-fno-stack-protector-from-the-compiler-flags.patch + +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: cmake +BuildRequires: python3 +# We need python3-devel for pathfix.py. +BuildRequires: python3-devel +BuildRequires: llvm-devel = %{version} +BuildRequires: llvm-static = %{version} + +%description +The compiler-rt project is a part of the LLVM project. It provides +implementation of the low-level target-specific hooks required by +code generation, sanitizer runtimes and profiling library for code +instrumentation, and Blocks C language extension. + +%prep +%autosetup -n %{crt_srcdir} -p1 + +pathfix.py -i %{__python3} -pn lib/hwasan/scripts/hwasan_symbolize + +%build +mkdir -p _build +cd _build +%cmake .. \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DLLVM_CONFIG_PATH:FILEPATH=%{_bindir}/llvm-config-%{__isa_bits} \ + \ +%if 0%{?__isa_bits} == 64 + -DLLVM_LIBDIR_SUFFIX=64 \ +%else + -DLLVM_LIBDIR_SUFFIX= \ +%endif + -DCOMPILER_RT_INCLUDE_TESTS:BOOL=OFF # could be on? + +make %{?_smp_mflags} + +%install +cd _build +make install DESTDIR=%{buildroot} + +# move blacklist/abilist files to where clang expect them +mkdir -p %{buildroot}%{_libdir}/clang/%{version}/share +mv -v %{buildroot}%{_datadir}/*list.txt %{buildroot}%{_libdir}/clang/%{version}/share/ + +# move sanitizer libs to better place +%global libclang_rt_installdir lib/linux +mkdir -p %{buildroot}%{_libdir}/clang/%{version}/lib +mv -v %{buildroot}%{_prefix}/%{libclang_rt_installdir}/*clang_rt* %{buildroot}%{_libdir}/clang/%{version}/lib +mkdir -p %{buildroot}%{_libdir}/clang/%{version}/lib/linux/ +pushd %{buildroot}%{_libdir}/clang/%{version}/lib +for i in *.a *.so +do + ln -s ../$i linux/$i +done +popd + +# multilib support: also create symlink from lib to lib64 +# fixes rhbz#1678240 +%ifarch %{ix86} +%post +if test "`uname -m`" = x86_64 +then + cd %{_libdir}/clang/%{version}/lib + mkdir -p ../../../../lib64/clang/%{version}/lib + for i in *.a *.so + do + ln -s ../../../../%{_lib}/clang/%{version}/lib/$i ../../../../lib64/clang/%{version}/lib/$i + done +fi + +%preun + +if test "`uname -m`" = x86_64 +then + cd %{_libdir}/clang/%{version}/lib + for i in *.a *.so + do + rm ../../../../lib64/clang/%{version}/lib/$i + done + rmdir -p ../../../../lib64/clang/%{version}/lib 2>/dev/null 1>/dev/null || : +fi + +%endif + +%check +#make check-all -C _build + +%files +%{_includedir}/* +%{_libdir}/clang/%{version} +%ifarch x86_64 aarch64 +%{_bindir}/hwasan_symbolize +%endif + +%changelog +* Fri Jul 24 2020 sguelton@redhat.com - 10.0.1-1 +- 10.0.1 release + +* Mon Jun 15 2020 sguelton@redhat.com - 10.0.0-2 +- Fix msan compilation warnings, see rhbz#1841165 + +* Wed Apr 8 2020 sguelton@redhat.com - 10.0.0-1 +- 10.0.0 final + +* Mon Jan 06 2020 Tom Stellard - 9.0.1-2 +- Update fno-stack-protector patch to apply with -p2 + +* Fri Dec 20 2019 Tom Stellard - 9.0.1-1 +- 9.0.1 Release + +* Fri Sep 27 2019 Tom Stellard - 9.0.0-1 +- 9.0.0 Release + +* Thu Aug 1 2019 sguelton@redhat.com - 8.0.1-1 +- 8.0.1 release + +* Thu Jul 4 2019 sguelton@redhat.com - 8.0.1-0.2.rc2 +- Fix rhbz#1678240 + +* Thu Jun 13 2019 sguelton@redhat.com - 8.0.1-0.1.rc2 +- 8.0.1rc2 Release + +* Wed Apr 17 2019 sguelton@redhat.com - 8.0.0-1 +- 8.0.0 Release + +* Fri Dec 14 2018 Tom Stellard - 7.0.1-1 +- 7.0.1 Release + +* Mon Dec 10 2018 Tom Stellard - 7.0.1-0.1.rc3 +- 7.0.1-rc3 Release + +* Tue Nov 27 2018 Tom Stellard - 7.0.0-1 +- 7.0.0 Release + +* Tue Oct 02 2018 Tom Stellard - 6.0.1-5 +- Use python3 for build scripts + +* Mon Oct 01 2018 Tom Stellard - 6.0.1-4 +- Drop scl macros + +* Thu Sep 06 2018 Tom Stellard - 6.0.1-3 +- Drop -fno-stack-protector flag + +* Thu Sep 06 2018 Tom Stellard - 6.0.1-2 +- Explicitly BuildRequire: /usr/bin/python3 + +* Wed Jul 11 2018 Tom Stellard - 6.0.1-1 +- 6.0.1 Release + +* Tue Jan 09 2018 Tom Stellard - 5.0.1-1 +- 5.0.1 Release + +* Wed Jun 07 2017 Tom Stellard - 4.0.1-1 +- 4.0.1 Release + +* Wed Jun 07 2017 Tom Stellard - 4.0.0-3 +- Build for llvm-toolset-7 rename + +* Thu May 18 2017 Tom Stellard - 4.0.0-2 +- Fix disabling debug on s390(x) + +* Tue Mar 14 2017 Tom Stellard - 4.0.0-1 +- compiler-rt 4.0.0 Final Release + +* Thu Mar 02 2017 Dave Airlie - 3.9.1-1 +- compiler-rt 3.9.1 + +* Fri Feb 10 2017 Fedora Release Engineering - 3.9.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Mon Nov 21 2016 Dan HorĂ¡k - 3.9.0-3 +- disable debuginfo on s390(x) + +* Wed Nov 02 2016 Dave Airlie - 3.9.0-2 +- build for new arches. + +* Wed Oct 26 2016 Dave Airlie - 3.9.0-1 +- compiler-rt 3.9.0 final release + +* Mon May 2 2016 Tom Callaway 3.8.0-2 +- make symlinks to where the linker thinks these libs are + +* Thu Mar 10 2016 Dave Airlie 3.8.0-1 +- compiler-rt 3.8.0 final release + +* Thu Mar 03 2016 Dave Airlie 3.8.0-0.2 +- compiler-rt 3.8.0rc3 + +* Thu Feb 18 2016 Dave Airlie - 3.8.0-0.1 +- compiler-rt 3.8.0rc2 + +* Fri Feb 05 2016 Dave Airlie 3.7.1-3 +- fix compiler-rt paths - from rwindz0@gmail.com - #1304605 + +* Wed Feb 03 2016 Fedora Release Engineering - 3.7.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Tue Oct 06 2015 Jan Vcelak 3.7.0-100 +- initial version using cmake build system