SHA256
1
0
forked from pool/llvm14

Accepting request 979618 from devel:tools:compiler

- Update to version 14.0.4.
  * This release contains bug-fixes for the LLVM 14.0.0 release.
    This release is API and ABI compatible with 14.0.0.
- Don't use gold for linking anymore: on s390x we use ld.bfd with
  LLVMgold.so, on ppc64 we disable ThinLTO for now.
- Using ld.bfd on s390x exposed an issue with the existing
  llvm_build_tablegen_component_as_shared_library.patch: linking
  llvm-tblgen with libLLVM.so means we also have to link libraries
  used for that (like LLVMTableGenGlobalISel) with libLLVM.so.
- Rewrite summary and description for llvm-gold to point out that
  it can also be used with ld.bfd, recommend with binutils.
- Prefer RPM macros over shell scripting, so that we can better
  inspect the build script with substitutions in place.
- More memory for stage 1 build jobs due to recent OOMs.
- Add %_libclang_sonum RPM macro to llvm-devel, since that might
  now diverge from %_llvm_sonum.
- Rebase llvm-do-not-install-static-libraries.patch.

OBS-URL: https://build.opensuse.org/request/show/979618
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/llvm14?expand=0&rev=4
This commit is contained in:
Dominique Leuenberger 2022-05-30 10:41:58 +00:00 committed by Git OBS Bridge
commit 049aa24a98
28 changed files with 125 additions and 98 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f85c55f192cb35b9d6af1f998b7d5abe90e369f8b16445503ffab1b02e75a6f0
size 18536196

3
clang-14.0.4.src.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:922bdc8341491d4f54548c51bafd77c0e737a3146fe33c762bce31a0fd151591
size 18537140

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ab321f9490d589ca9fe740975a5c7e619815ac36177192d1859453066681a071
size 1413576

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6c993f5d31b764f677ea57700965886550577abe000bf8d35ea50daee7994ae3
size 1413580

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f2c85533d586d63784df9d5208e147a35c59a4caed7ff9a0a1f39992a88110a1
size 2849308

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c8bacb565da90bd1eb76ac267a70a4287e238680c48f7bd00f0a890ce0ae8fed
size 2849200

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:26568ab40e440d54a0fe05f6055dcbe510eb723977afa39d3b56fc2a81f8d05f
size 2327000

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:02cbb6ca3ae3ebfb77245de0866faff886b16c48a806cd2ae32ac6ccbba8285b
size 2327868

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ae5f31fc7c759fe68ceff3bcdaea9f8d439865bb965ac8d21ed5d15c42311796
size 3066368

3
libcxx-14.0.4.src.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9aad37282b0086b09b6d5489630dc8399577d64674071ae6e4ecf340c7e058be
size 3066664

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:21193c6a29248ba5b6dde40beb1f6bdcc7cd13cad66605c764ec100f0fb19fe3
size 561780

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f526943c9b70836364f90d42ca4fa3f90505d02b5d8fa739937cc7b79c0580ac
size 561788

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a91716f59f8e78018246a7ab6cad1bfdddec270c4db6d3d2a394844ee8799c8f
size 1366044

3
lld-14.0.4.src.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:05e1284a65166d0a3a1139b9993f1c632b82930501316ae20c88a204170c2ba6
size 1366056

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e1d1ea7779faadb4c6af6b0541c6fe3346f750bd26d14ddc57186fe3140d0502
size 10088540

3
lldb-14.0.4.src.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9301073df20728a8a64aca8d741465264b999649996009c2c30ba7a705459ff0
size 10088328

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1e09e8c26e1b67bc94a128b62e9b9c24b70c697a2436a479c9e5eedc4ae29654
size 49653148

3
llvm-14.0.4.src.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:eb8e90dfadae4073a7f8fc6384bacc0dda072400d82b9d25dabb5280a737ba22
size 49656144

View File

@ -2,10 +2,10 @@ This has similar effect as simply deleting the static libraries which we don't
want after installation. By not copying them in the first place we reduce the
disk usage during installation.
Index: clang-14.0.3.src/cmake/modules/AddClang.cmake
Index: clang-14.0.4.src/cmake/modules/AddClang.cmake
===================================================================
--- a/clang-14.0.3.src/cmake/modules/AddClang.cmake
+++ b/clang-14.0.3.src/cmake/modules/AddClang.cmake
--- a/clang-14.0.4.src/cmake/modules/AddClang.cmake
+++ b/clang-14.0.4.src/cmake/modules/AddClang.cmake
@@ -106,12 +106,15 @@ macro(add_clang_library name)
if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ARG_INSTALL_WITH_TOOLCHAIN)
@ -68,10 +68,10 @@ Index: cmake/modules/AddLLVM.cmake
endif()
if (ARG_MODULE)
set_target_properties(${name} PROPERTIES FOLDER "Loadable modules")
Index: lld-14.0.3.src/cmake/modules/AddLLD.cmake
Index: lld-14.0.4.src/cmake/modules/AddLLD.cmake
===================================================================
--- a/lld-14.0.3.src/cmake/modules/AddLLD.cmake
+++ b/lld-14.0.3.src/cmake/modules/AddLLD.cmake
--- a/lld-14.0.4.src/cmake/modules/AddLLD.cmake
+++ b/lld-14.0.4.src/cmake/modules/AddLLD.cmake
@@ -17,13 +17,6 @@ macro(add_lld_library name)
if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
@ -86,10 +86,10 @@ Index: lld-14.0.3.src/cmake/modules/AddLLD.cmake
if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES)
add_llvm_install_targets(install-${name}
DEPENDS ${name}
Index: polly-14.0.3.src/cmake/polly_macros.cmake
Index: polly-14.0.4.src/cmake/polly_macros.cmake
===================================================================
--- a/polly-14.0.3.src/cmake/polly_macros.cmake
+++ b/polly-14.0.3.src/cmake/polly_macros.cmake
--- a/polly-14.0.4.src/cmake/polly_macros.cmake
+++ b/polly-14.0.4.src/cmake/polly_macros.cmake
@@ -42,12 +42,14 @@ macro(add_polly_library name)
llvm_config(${name} ${LLVM_LINK_COMPONENTS})
endif( LLVM_LINK_COMPONENTS )
@ -110,10 +110,10 @@ Index: polly-14.0.3.src/cmake/polly_macros.cmake
endmacro(add_polly_library)
macro(add_polly_loadable_module name)
Index: polly-14.0.3.src/lib/CMakeLists.txt
Index: polly-14.0.4.src/lib/CMakeLists.txt
===================================================================
--- a/polly-14.0.3.src/lib/CMakeLists.txt
+++ b/polly-14.0.3.src/lib/CMakeLists.txt
--- a/polly-14.0.4.src/lib/CMakeLists.txt
+++ b/polly-14.0.4.src/lib/CMakeLists.txt
@@ -74,7 +74,7 @@ set_target_properties(PollyCore PROPERTI
# It depends on all library it needs, such that with
# LLVM_POLLY_LINK_INTO_TOOLS=ON, its dependencies like PollyISL are linked as

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b4833bddd0d6bc75fd223d4f185094903d6cce40ec8c3d3fc25cc7702ebfaa2c
size 6601060

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e56dbb0ca5395222d0a6b9b4803340f95fc6aa3ee6c9de23ce9224ca3f159bcd
size 6601068

View File

@ -1,3 +1,24 @@
-------------------------------------------------------------------
Sat May 28 12:42:06 UTC 2022 - Aaron Puchert <aaronpuchert@alice-dsl.net>
- Update to version 14.0.4.
* This release contains bug-fixes for the LLVM 14.0.0 release.
This release is API and ABI compatible with 14.0.0.
- Don't use gold for linking anymore: on s390x we use ld.bfd with
LLVMgold.so, on ppc64 we disable ThinLTO for now.
- Using ld.bfd on s390x exposed an issue with the existing
llvm_build_tablegen_component_as_shared_library.patch: linking
llvm-tblgen with libLLVM.so means we also have to link libraries
used for that (like LLVMTableGenGlobalISel) with libLLVM.so.
- Rewrite summary and description for llvm-gold to point out that
it can also be used with ld.bfd, recommend with binutils.
- Prefer RPM macros over shell scripting, so that we can better
inspect the build script with substitutions in place.
- More memory for stage 1 build jobs due to recent OOMs.
- Add %_libclang_sonum RPM macro to llvm-devel, since that might
now diverge from %_llvm_sonum.
- Rebase llvm-do-not-install-static-libraries.patch.
-------------------------------------------------------------------
Sat Apr 30 12:32:33 UTC 2022 - Aaron Puchert <aaronpuchert@alice-dsl.net>

View File

@ -16,14 +16,14 @@
#
%define _relver 14.0.3
%define _relver 14.0.4
%define _version %_relver%{?_rc:rc%_rc}
%define _tagver %_relver%{?_rc:-rc%_rc}
%define _minor 14.0
%define _sonum 14
%define _itsme14 1
# Integer version used by update-alternatives
%define _uaver 1403
%define _uaver 1404
%define _soclang 13
%define _socxx 1
@ -39,11 +39,10 @@
%bcond_with openmp
%endif
# We use gold where we want to use ThinLTO, but where lld isn't supported (well).
%ifarch ppc64 s390x
%bcond_without gold
%ifarch s390x
%bcond_with use_lld
%else
%bcond_with gold
%bcond_without use_lld
%endif
%ifarch x86_64
@ -55,7 +54,7 @@
%endif
# Disabled on ARM because it's awfully slow and often times out. (boo#1178070)
%ifarch %{ix86} ppc64 ppc64le s390x x86_64
%ifarch %{ix86} ppc64le s390x x86_64
%bcond_without thin_lto
%else
%bcond_with thin_lto
@ -169,9 +168,6 @@ Requires(post): update-alternatives
Requires(postun):update-alternatives
# llvm does not work on s390
ExcludeArch: s390
%if %{with gold}
BuildRequires: binutils-gold
%endif
%if %{with ffi}
BuildRequires: pkgconfig(libffi)
%endif
@ -365,14 +361,18 @@ Group: System/Libraries
This package contains the link-time optimizer for LLVM.
%package gold
Summary: Gold linker plugin for LLVM
Summary: LLVM LTO plugin for ld.bfd and ld.gold
Group: Development/Tools/Building
Conflicts: llvm-gold-provider < %{version}
Provides: llvm-gold-provider = %{version}
Supplements: packageand(clang%{_sonum}:binutils)
Supplements: packageand(clang%{_sonum}:binutils-gold)
%description gold
This package contains the Gold linker plugin for LLVM.
This package contains a plugin for link-time optimization in binutils linkers.
Despite the name, it can also be used with ld.bfd. It is required for using
Clang with -flto=full or -flto=thin when linking with one of those linkers.
%package -n libomp%{_sonum}-devel
Summary: MPI plugin for LLVM
@ -650,6 +650,8 @@ mv libcxxabi-%{_version}.src projects/libcxxabi
%endif
%build
%global sourcedir %{_builddir}/%{buildsubdir}
%define _lto_cflags %{nil}
# Use optflags, but:
@ -657,17 +659,18 @@ mv libcxxabi-%{_version}.src projects/libcxxabi
# hardening. The problem is in sanitizers from compiler-rt.
# 2) Remove the -g. We don't want it in stage1 and it will be added by cmake in
# the following stage.
flags=$(echo %{optflags} | sed 's/-D_FORTIFY_SOURCE=./-D_FORTIFY_SOURCE=0/;s/\B-g\b//g')
%global cleaned_flags %(echo %{optflags} | sed 's/-D_FORTIFY_SOURCE=./-D_FORTIFY_SOURCE=0/;s/\\B-g\\b//g')
%global flags %{cleaned_flags}
%ifarch armv6hl
flags+=" -mfloat-abi=hard -mcpu=arm1176jzf-s -mfpu=vfpv2"
%global flags %{cleaned_flags} -mfloat-abi=hard -mcpu=arm1176jzf-s -mfpu=vfpv2
%endif
%ifarch armv7hl
flags+=" -mfloat-abi=hard -march=armv7-a -mtune=cortex-a17 -mfpu=vfpv3-d16"
%global flags %{cleaned_flags} -mfloat-abi=hard -march=armv7-a -mtune=cortex-a17 -mfpu=vfpv3-d16
%endif
CFLAGS=$flags
CXXFLAGS=$flags
CFLAGS="%flags"
CXXFLAGS="%flags"
# By default build everything
TARGETS_TO_BUILD="all"
@ -693,10 +696,10 @@ TARGETS_TO_BUILD="host;BPF"
EXPERIMENTAL_TARGETS_TO_BUILD=
%endif
mem_per_compile_job=1000000
mem_per_compile_job=1200000
%ifarch i586 ppc armv6hl armv7hl
# 32-bit arches need less memory than 64-bit arches.
mem_per_compile_job=600000
mem_per_compile_job=700000
%endif
mem_per_link_job=3000000
@ -744,10 +747,10 @@ avail_mem=$(awk '/MemAvailable/ { print $2 }' /proc/meminfo)
ninja -v %{?_smp_mflags} clang llvm-tblgen clang-tblgen \
%if %{with thin_lto}
llvm-ar llvm-ranlib \
%if %{with gold}
LLVMgold
%else
%if %{with use_lld}
lld
%else
LLVMgold
%endif
%endif
@ -760,9 +763,9 @@ find ./stage1 \( -name '*.o' -or -name '*.a' \) -delete
# 3) Remove -fstack-clash-protection on architectures where it isn't supported.
# Using it just prints a warning, but that warning prevents the configuration
# step, which uses -Werror, from recognizing the availability of other flags.
if ! ${PWD}/stage1/bin/clang -c -xc -Werror -fstack-clash-protection -o /dev/null /dev/null;
if ! ./stage1/bin/clang -c -xc -Werror -fstack-clash-protection -o /dev/null /dev/null;
then
flags=$(echo $flags | sed 's/-fstack-clash-protection//');
flags=$(echo %flags | sed 's/-fstack-clash-protection//');
fi
CFLAGS=$flags
CXXFLAGS=$flags
@ -782,22 +785,12 @@ max_link_jobs=1
%define __builddir build
%define build_ldflags -Wl,--build-id=sha1
export PATH=${PWD}/stage1/bin:$PATH
export CC=${PWD}/stage1/bin/clang
export CXX=${PWD}/stage1/bin/clang++
%if %{with thin_lto}
export LLVM_AR=${PWD}/stage1/bin/llvm-ar
export LLVM_RANLIB=${PWD}/stage1/bin/llvm-ranlib
export LLD=${PWD}/stage1/bin/ld.lld
%endif
export LLVM_TABLEGEN=${PWD}/stage1/bin/llvm-tblgen
export CLANG_TABLEGEN=${PWD}/stage1/bin/clang-tblgen
# Build is using absolute paths assuming the monorepo layout, so we need this.
export CLANG_TOOLS_EXTRA_DIR=${PWD}/tools/clang/tools/extra
# The build occasionally uses tools linking against previously built
# libraries (mostly libLLVM.so), but we don't want to set RUNPATHs.
export LD_LIBRARY_PATH=${PWD}/build/%{_lib}
export LD_LIBRARY_PATH=%{sourcedir}/build/%{_lib}
%cmake \
-DCMAKE_C_COMPILER="%{sourcedir}/stage1/bin/clang" \
-DCMAKE_CXX_COMPILER="%{sourcedir}/stage1/bin/clang++" \
-DBUILD_SHARED_LIBS:BOOL=OFF \
-DLLVM_HOST_TRIPLE=%{host_triple} \
-DLLVM_BUILD_LLVM_DYLIB:BOOL=ON \
@ -807,25 +800,20 @@ export LD_LIBRARY_PATH=${PWD}/build/%{_lib}
-DLLVM_PARALLEL_LINK_JOBS="$max_link_jobs" \
%if %{with thin_lto}
-DLLVM_ENABLE_LTO=Thin \
-DCMAKE_AR="${LLVM_AR}" \
-DCMAKE_RANLIB="${LLVM_RANLIB}" \
%if %{with gold}
-DCMAKE_LINKER=%{_bindir}/ld.gold \
-DLLVM_USE_LINKER=gold \
%else
-DCMAKE_LINKER=${LLD} \
-DLLVM_USE_LINKER=${LLD} \
-DCMAKE_AR="%{sourcedir}/stage1/bin/llvm-ar" \
-DCMAKE_RANLIB="%{sourcedir}/stage1/bin/llvm-ranlib" \
%if %{with use_lld}
-DCMAKE_LINKER="%{sourcedir}/stage1/bin/ld.lld" \
-DLLVM_USE_LINKER="%{sourcedir}/stage1/bin/ld.lld" \
%endif
%else
-DCMAKE_LINKER=%{_bindir}/ld \
%endif
%ifarch %arm ppc s390 %{ix86}
-DCMAKE_C_FLAGS_RELWITHDEBINFO="-g1" \
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-g1" \
%endif
-DENABLE_LINKER_BUILD_ID=ON \
-DLLVM_TABLEGEN="${LLVM_TABLEGEN}" \
-DCLANG_TABLEGEN="${CLANG_TABLEGEN}" \
-DLLVM_TABLEGEN="%{sourcedir}/stage1/bin/llvm-tblgen" \
-DCLANG_TABLEGEN="%{sourcedir}/stage1/bin/clang-tblgen" \
-DLLVM_ENABLE_RTTI:BOOL=ON \
-DLLVM_ENABLE_ASSERTIONS=OFF \
-DLLVM_ENABLE_PIC=ON \
@ -879,7 +867,7 @@ cd ..
%install
# Installation seems to build some files not contained in "all".
export LD_LIBRARY_PATH=${PWD}/build/%{_lib}
export LD_LIBRARY_PATH=%{sourcedir}/build/%{_lib}
%cmake_install
# Install FileCheck needed for testing Rust boo#1192629
@ -1103,6 +1091,7 @@ cat > %{buildroot}%{_rpmconfigdir}/macros.d/macros.llvm <<EOF
%_llvm_relver %{_relver}
%_llvm_minorver %{_minor}
%_llvm_sonum %{_sonum}
%_libclang_sonum %{_soclang}
%_libcxx_sonum %{_socxx}
# Build information
@ -1172,6 +1161,10 @@ python3 bin/llvm-lit -sv test/
# On s390x, this test complains that a required pass couldn't be found and then crashes. (FIXME)
sed -i '/XFAIL/i// XFAIL: s390x' ../tools/clang/test/CodeGen/sanitize-coverage-old-pm.c
%if 0%{?suse_version} > 1500
# We're not getting the exact crash dump that was expected. Not sure why, input is cut off.
sed -i '1i// XFAIL: s390x' ../tools/clang/test/Driver/{crash-{diagnostics-dir.c,report-header.h,report-spaces.c},rewrite-map-in-diagnostics.c}
%endif
# On ppc, this test fails with "fatal error: error in backend: Relocation type not implemented yet!"
sed -i '/UNSUPPORTED/i// XFAIL: powerpc-' ../tools/clang/test/Interpreter/execute.cpp
# Tests hang on armv6l.

View File

@ -55,3 +55,16 @@ Index: llvm-8.0.0rc3.src/lib/TableGen/CMakeLists.txt
ADDITIONAL_HEADER_DIRS
${LLVM_MAIN_INCLUDE_DIR}/llvm/TableGen
Index: llvm-14.0.3.src/utils/TableGen/GlobalISel/CMakeLists.txt
===================================================================
--- llvm-14.0.3.src.orig/utils/TableGen/GlobalISel/CMakeLists.txt
+++ llvm-14.0.3.src/utils/TableGen/GlobalISel/CMakeLists.txt
@@ -3,7 +3,7 @@ set(LLVM_LINK_COMPONENTS
TableGen
)
-add_llvm_library(LLVMTableGenGlobalISel STATIC DISABLE_LLVM_LINK_LLVM_DYLIB
+add_llvm_library(LLVMTableGenGlobalISel STATIC
CodeExpander.cpp
GIMatchDag.cpp
GIMatchDagEdge.cpp

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0534ab5ce578db604a46eca56e4f83b46f26fbe4dd837abb79ed04c5543be379
size 1205324

3
openmp-14.0.4.src.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d4b627e2668c3c1001b6c772297273dc67b42f2deec934a59650a55731f8d411
size 1205512

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:079aa83b3ee6a918fec438eb04cc6a6370618575606d6756762d4f8ce112c757
size 9353504

3
polly-14.0.4.src.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c1c28aeccc10fe3e7c71d0f756d3c36e0019b7236bbbeb2d93ee702557d52215
size 9357472