Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package llvm14 for openSUSE:Factory checked in at 2022-05-30 12:41:58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/llvm14 (Old) and /work/SRC/openSUSE:Factory/.llvm14.new.2254 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "llvm14" Mon May 30 12:41:58 2022 rev:4 rq:979618 version:14.0.4 Changes: -------- --- /work/SRC/openSUSE:Factory/llvm14/llvm14.changes 2022-05-04 15:10:20.676112555 +0200 +++ /work/SRC/openSUSE:Factory/.llvm14.new.2254/llvm14.changes 2022-05-30 12:42:00.960236063 +0200 @@ -1,0 +2,21 @@ +Sat May 28 12:42:06 UTC 2022 - Aaron Puchert <aaronpuch...@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. + +------------------------------------------------------------------- Old: ---- clang-14.0.3.src.tar.xz clang-docs-14.0.3.src.tar.xz clang-tools-extra-14.0.3.src.tar.xz compiler-rt-14.0.3.src.tar.xz libcxx-14.0.3.src.tar.xz libcxxabi-14.0.3.src.tar.xz lld-14.0.3.src.tar.xz lldb-14.0.3.src.tar.xz llvm-14.0.3.src.tar.xz llvm-docs-14.0.3.src.tar.xz openmp-14.0.3.src.tar.xz polly-14.0.3.src.tar.xz New: ---- clang-14.0.4.src.tar.xz clang-docs-14.0.4.src.tar.xz clang-tools-extra-14.0.4.src.tar.xz compiler-rt-14.0.4.src.tar.xz libcxx-14.0.4.src.tar.xz libcxxabi-14.0.4.src.tar.xz lld-14.0.4.src.tar.xz lldb-14.0.4.src.tar.xz llvm-14.0.4.src.tar.xz llvm-docs-14.0.4.src.tar.xz openmp-14.0.4.src.tar.xz polly-14.0.4.src.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ llvm14.spec ++++++ --- /var/tmp/diff_new_pack.mye8lL/_old 2022-05-30 12:42:04.136240290 +0200 +++ /var/tmp/diff_new_pack.mye8lL/_new 2022-05-30 12:42:04.144240301 +0200 @@ -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(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 @@ 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 @@ %endif %build +%global sourcedir %{_builddir}/%{buildsubdir} + %define _lto_cflags %{nil} # Use optflags, but: @@ -657,17 +659,18 @@ # 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 @@ 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 @@ 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 @@ # 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 @@ %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 @@ -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 @@ %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 @@ %_llvm_relver %{_relver} %_llvm_minorver %{_minor} %_llvm_sonum %{_sonum} +%_libclang_sonum %{_soclang} %_libcxx_sonum %{_socxx} # Build information @@ -1172,6 +1161,10 @@ # 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. ++++++ clang-14.0.3.src.tar.xz -> clang-14.0.4.src.tar.xz ++++++ /work/SRC/openSUSE:Factory/llvm14/clang-14.0.3.src.tar.xz /work/SRC/openSUSE:Factory/.llvm14.new.2254/clang-14.0.4.src.tar.xz differ: char 26, line 1 ++++++ clang-docs-14.0.3.src.tar.xz -> clang-docs-14.0.4.src.tar.xz ++++++ ++++ 2380 lines of diff (skipped) ++++++ clang-tools-extra-14.0.3.src.tar.xz -> clang-tools-extra-14.0.4.src.tar.xz ++++++ ++++ 1524662 lines of diff (skipped) ++++++ compiler-rt-14.0.3.src.tar.xz -> compiler-rt-14.0.4.src.tar.xz ++++++ ++++ 1205752 lines of diff (skipped) ++++++ libcxx-14.0.3.src.tar.xz -> libcxx-14.0.4.src.tar.xz ++++++ ++++ 2035266 lines of diff (skipped) ++++++ libcxxabi-14.0.3.src.tar.xz -> libcxxabi-14.0.4.src.tar.xz ++++++ ++++ 121279 lines of diff (skipped) ++++++ lld-14.0.3.src.tar.xz -> lld-14.0.4.src.tar.xz ++++++ ++++ 539370 lines of diff (skipped) ++++++ lldb-14.0.3.src.tar.xz -> lldb-14.0.4.src.tar.xz ++++++ /work/SRC/openSUSE:Factory/llvm14/lldb-14.0.3.src.tar.xz /work/SRC/openSUSE:Factory/.llvm14.new.2254/lldb-14.0.4.src.tar.xz differ: char 27, line 1 ++++++ llvm-14.0.3.src.tar.xz -> llvm-14.0.4.src.tar.xz ++++++ /work/SRC/openSUSE:Factory/llvm14/llvm-14.0.3.src.tar.xz /work/SRC/openSUSE:Factory/.llvm14.new.2254/llvm-14.0.4.src.tar.xz differ: char 27, line 1 ++++++ llvm-do-not-install-static-libraries.patch ++++++ --- /var/tmp/diff_new_pack.mye8lL/_old 2022-05-30 12:42:13.744253077 +0200 +++ /var/tmp/diff_new_pack.mye8lL/_new 2022-05-30 12:42:13.748253083 +0200 @@ -2,10 +2,10 @@ 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 @@ 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 @@ 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 @@ 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 ++++++ llvm-docs-14.0.3.src.tar.xz -> llvm-docs-14.0.4.src.tar.xz ++++++ /work/SRC/openSUSE:Factory/llvm14/llvm-docs-14.0.3.src.tar.xz /work/SRC/openSUSE:Factory/.llvm14.new.2254/llvm-docs-14.0.4.src.tar.xz differ: char 26, line 1 ++++++ llvm_build_tablegen_component_as_shared_library.patch ++++++ --- /var/tmp/diff_new_pack.mye8lL/_old 2022-05-30 12:42:13.804253157 +0200 +++ /var/tmp/diff_new_pack.mye8lL/_new 2022-05-30 12:42:13.808253163 +0200 @@ -55,4 +55,17 @@ 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 ++++++ openmp-14.0.3.src.tar.xz -> openmp-14.0.4.src.tar.xz ++++++ ++++ 418738 lines of diff (skipped) ++++++ polly-14.0.3.src.tar.xz -> polly-14.0.4.src.tar.xz ++++++ /work/SRC/openSUSE:Factory/llvm14/polly-14.0.3.src.tar.xz /work/SRC/openSUSE:Factory/.llvm14.new.2254/polly-14.0.4.src.tar.xz differ: char 27, line 1