From 51d3dd044bb48715eda5056a6d65e689636b224e Mon Sep 17 00:00:00 2001 From: eabdullin Date: Thu, 28 Mar 2024 09:55:05 +0000 Subject: [PATCH] import CS compiler-rt-17.0.6-1.el9 --- .compiler-rt.metadata | 6 +- .gitignore | 6 +- ...ler-rt-Fix-FLOAT16-feature-detection.patch | 36 +++++++ SPECS/compiler-rt.spec | 102 ++++++++++-------- 4 files changed, 97 insertions(+), 53 deletions(-) create mode 100644 SOURCES/0001-compiler-rt-Fix-FLOAT16-feature-detection.patch diff --git a/.compiler-rt.metadata b/.compiler-rt.metadata index 9a5def6..9515b12 100644 --- a/.compiler-rt.metadata +++ b/.compiler-rt.metadata @@ -1,4 +1,2 @@ -0de534cfef38697e115c3ae80634765f05e78e5b SOURCES/cmake-16.0.6.src.tar.xz -2db5c88fe9277bb0fa85f49b58e946e49ff235c2 SOURCES/cmake-16.0.6.src.tar.xz.sig -28ddc89aac54cbfa6d0a0cd07a14bbd3f3a01d5f SOURCES/compiler-rt-16.0.6.src.tar.xz -7374cad6da4c3c936c26e72175bdff52ab3e98e5 SOURCES/compiler-rt-16.0.6.src.tar.xz.sig +b0f7f43251829aafd07a3b09a9c3e4987cfa9204 SOURCES/compiler-rt-17.0.6.src.tar.xz +5df8c5479d1c6e99092b865f3597afac8bff1432 SOURCES/compiler-rt-17.0.6.src.tar.xz.sig diff --git a/.gitignore b/.gitignore index 5820ac4..f70ac84 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,2 @@ -SOURCES/cmake-16.0.6.src.tar.xz -SOURCES/cmake-16.0.6.src.tar.xz.sig -SOURCES/compiler-rt-16.0.6.src.tar.xz -SOURCES/compiler-rt-16.0.6.src.tar.xz.sig +SOURCES/compiler-rt-17.0.6.src.tar.xz +SOURCES/compiler-rt-17.0.6.src.tar.xz.sig diff --git a/SOURCES/0001-compiler-rt-Fix-FLOAT16-feature-detection.patch b/SOURCES/0001-compiler-rt-Fix-FLOAT16-feature-detection.patch new file mode 100644 index 0000000..8228ddc --- /dev/null +++ b/SOURCES/0001-compiler-rt-Fix-FLOAT16-feature-detection.patch @@ -0,0 +1,36 @@ +From ce15f52198639e9195b8833ed60dc1a49c293956 Mon Sep 17 00:00:00 2001 +From: Tom Stellard +Date: Tue, 29 Aug 2023 15:49:55 -0700 +Subject: [PATCH] compiler-rt: Fix FLOAT16 feature detection + +CMAKE_TRY_COMPILE_TARGET_TYPE defaults to EXECUTABLE, which causes +any feature detection code snippet without a main function to fail, +so we need to make sure it gets explicitly set to STATIC_LIBRARY. +--- + compiler-rt/lib/builtins/CMakeLists.txt | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/compiler-rt/lib/builtins/CMakeLists.txt b/compiler-rt/lib/builtins/CMakeLists.txt +index 2fc70522895f..e83a1ecea50b 100644 +--- a/compiler-rt/lib/builtins/CMakeLists.txt ++++ b/compiler-rt/lib/builtins/CMakeLists.txt +@@ -5,7 +5,6 @@ + if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) + cmake_minimum_required(VERSION 3.20.0) + +- set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) + project(CompilerRTBuiltins C ASM) + set(COMPILER_RT_STANDALONE_BUILD TRUE) + set(COMPILER_RT_BUILTINS_STANDALONE_BUILD TRUE) +@@ -50,6 +49,8 @@ if (COMPILER_RT_STANDALONE_BUILD) + ON) + endif() + ++set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) ++ + include(builtin-config-ix) + include(CMakeDependentOption) + include(CMakePushCheckState) +-- +2.41.0 + diff --git a/SPECS/compiler-rt.spec b/SPECS/compiler-rt.spec index d1c9626..50690e3 100644 --- a/SPECS/compiler-rt.spec +++ b/SPECS/compiler-rt.spec @@ -1,12 +1,26 @@ +%bcond_with snapshot_build + +%if %{with snapshot_build} +# Unlock LLVM Snapshot LUA functions +%{llvm_sb_verbose} +%{llvm_sb} +%endif + %global toolchain clang -%global maj_ver 16 +%global maj_ver 17 %global min_ver 0 %global patch_ver 6 +#global rc_ver 4 +%if %{with snapshot_build} +%global maj_ver %{llvm_snapshot_version_major} +%global min_ver %{llvm_snapshot_version_minor} +%global patch_ver %{llvm_snapshot_version_patch} +%undefine rc_ver +%endif %global compiler_rt_version %{maj_ver}.%{min_ver}.%{patch_ver} %global crt_srcdir compiler-rt-%{compiler_rt_version}%{?rc_ver:rc%{rc_ver}}.src -%global cmake_srcdir cmake-%{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) @@ -15,17 +29,22 @@ %global optflags %(echo %{optflags} -Dasm=__asm__) Name: compiler-rt -Version: %{compiler_rt_version} +Version: %{compiler_rt_version}%{?rc_ver:~rc%{rc_ver}}%{?llvm_snapshot_version_suffix:~%{llvm_snapshot_version_suffix}} Release: 1%{?dist} Summary: LLVM "compiler-rt" runtime libraries License: Apache-2.0 WITH LLVM-exception OR NCSA OR MIT URL: http://llvm.org +%if %{with snapshot_build} +Source0: %{llvm_snapshot_source_prefix}compiler-rt-%{llvm_snapshot_yyyymmdd}.src.tar.xz +%{llvm_snapshot_extra_source_tags} +%else Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{compiler_rt_version}%{?rc_ver:-rc%{rc_ver}}/%{crt_srcdir}.tar.xz Source1: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{compiler_rt_version}%{?rc_ver:-rc%{rc_ver}}/%{crt_srcdir}.tar.xz.sig Source2: release-keys.asc -Source3: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{compiler_rt_version}%{?rc_ver:-rc%{rc_ver}}/%{cmake_srcdir}.tar.xz -Source4: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{compiler_rt_version}%{?rc_ver:-rc%{rc_ver}}/%{cmake_srcdir}.tar.xz.sig +%endif + +Patch0: 0001-compiler-rt-Fix-FLOAT16-feature-detection.patch BuildRequires: clang BuildRequires: cmake @@ -34,6 +53,8 @@ BuildRequires: python3 # We need python3-devel for %%py3_shebang_fix BuildRequires: python3-devel BuildRequires: llvm-devel = %{version} +BuildRequires: llvm-cmake-utils = %{version} +BuildRequires: zlib-devel # For gpg source verification BuildRequires: gnupg2 @@ -48,14 +69,11 @@ instrumentation, and Blocks C language extension. %prep %{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' -%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE4}' --data='%{SOURCE3}' -%setup -T -q -b 3 -n %{cmake_srcdir} -# TODO: It would be more elegant to set -DLLVM_COMMON_CMAKE_UTILS=%{_builddir}/%{cmake_srcdir}, -# but this is not a CACHED variable, so we can't actually set it externally :( -cd .. -mv %{cmake_srcdir} cmake %autosetup -n %{crt_srcdir} -p2 +# compiler-rt does not allow configuring LLVM_COMMON_CMAKE_UTILS. +ln -s %{_datadir}/llvm/cmake ../cmake + %py3_shebang_fix lib/hwasan/scripts/hwasan_symbolize %build @@ -66,6 +84,12 @@ export ASMFLAGS=$CFLAGS -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_MODULE_PATH=%{_libdir}/cmake/llvm \ -DCMAKE_SKIP_RPATH:BOOL=ON \ + -DCOMPILER_RT_INSTALL_PATH=%{_prefix}/lib/clang/%{maj_ver} \ + -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON \ + \ +%if %{with snapshot_build} + -DLLVM_VERSION_SUFFIX="%{llvm_snapshot_version_suffix}" \ +%endif \ %if 0%{?__isa_bits} == 64 -DLLVM_LIBDIR_SUFFIX=64 \ @@ -79,51 +103,39 @@ export ASMFLAGS=$CFLAGS %install %cmake_install - -# move blacklist/abilist files to where clang expect them -mkdir -p %{buildroot}%{_libdir}/clang/%{maj_ver}/share -mv -v %{buildroot}%{_datadir}/*list.txt %{buildroot}%{_libdir}/clang/%{maj_ver}/share/ - -# move sanitizer libs to better place -%global libclang_rt_installdir lib/linux -mkdir -p %{buildroot}%{_libdir}/clang/%{maj_ver}/lib -mv -v %{buildroot}%{_prefix}/%{libclang_rt_installdir}/*_rt* %{buildroot}%{_libdir}/clang/%{maj_ver}/lib -mkdir -p %{buildroot}%{_libdir}/clang/%{maj_ver}/lib/linux/ -pushd %{buildroot}%{_libdir}/clang/%{maj_ver}/lib -for i in *.a *.so -do - ln -s ../$i linux/$i -done - -# multilib support: also create symlink from lib to lib64, fixes rhbz#1678240 -# the symlinks will be dangling if the 32 bits version is not installed, but that should be fine -%ifarch x86_64 - -mkdir -p %{buildroot}/%{_exec_prefix}/lib/clang/%{maj_ver}/lib/linux -for i in *.a *.so -do - target=`echo "$i" | sed -e 's/x86_64/i386/'` - ln -s ../../../../../lib/clang/%{maj_ver}/lib/$target ../../../../%{_lib}/clang/%{maj_ver}/lib/linux/ -done - +%ifarch ppc64le +# Fix install path on ppc64le so that the directory name matches the triple used +# by clang. +mv %{buildroot}%{_prefix}/lib/clang/%{maj_ver}/lib/powerpc64le-redhat-linux-gnu %{buildroot}%{_prefix}/lib/clang/%{maj_ver}/lib/ppc64le-redhat-linux-gnu %endif -popd - %check - #%%cmake_build --target check-compiler-rt %files %license LICENSE.TXT -%{_includedir}/* -%{_libdir}/clang/%{maj_ver}/lib/* -%{_libdir}/clang/%{maj_ver}/share/* %ifarch x86_64 aarch64 -%{_bindir}/hwasan_symbolize +%{_prefix}/lib/clang/%{maj_ver}/bin/* %endif +%{_prefix}/lib/clang/%{maj_ver}/include/* +%{_prefix}/lib/clang/%{maj_ver}/lib/* +%{_prefix}/lib/clang/%{maj_ver}/share/* +#%ifarch x86_64 aarch64 +#{_bindir}/hwasan_symbolize +#%endif %changelog +%{?llvm_snapshot_changelog_entry} + +* Mon Dec 11 2023 Timm Bäder - 17.0.6-1 +- Update to 17.0.6 + +* Wed Oct 04 2023 Timm Bäder - 17.0.1-1 +- Update to 17.0.1 + +* Tue Aug 29 2023 Tom Stellard - 16.0.6-2 +- Fix FLOAT16 detection + * Wed Jul 05 2023 Nikita Popov - 16.0.6-1 - Update to LLVM 16.0.6