From f65bb248dd0f880cff8c6f63738cc1cda4ca7447 Mon Sep 17 00:00:00 2001 From: Konrad Kleine Date: Tue, 21 May 2024 15:12:23 +0200 Subject: [PATCH] Update to 18.1.6 Related: https://issues.redhat.com/browse/RHEL-28670 --- 0001-PEI-Don-t-zero-out-noreg-operands.patch | 74 ------ 0101-Deactivate-markdown-doc.patch | 35 +-- llvm.spec | 239 ++++++++----------- sources | 14 +- tests/README.md | 6 + 5 files changed, 128 insertions(+), 240 deletions(-) delete mode 100644 0001-PEI-Don-t-zero-out-noreg-operands.patch create mode 100644 tests/README.md diff --git a/0001-PEI-Don-t-zero-out-noreg-operands.patch b/0001-PEI-Don-t-zero-out-noreg-operands.patch deleted file mode 100644 index 0f16465..0000000 --- a/0001-PEI-Don-t-zero-out-noreg-operands.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 9d1f05a7b8537deb5f626cd1b7b26ef2678f4c8e Mon Sep 17 00:00:00 2001 -From: Arthur Eubanks -Date: Thu, 27 Jul 2023 13:27:58 -0700 -Subject: [PATCH] [PEI] Don't zero out noreg operands - -A tail call may have $noreg operands. - -Fixes a crash. - -Reviewed By: xgupta - -Differential Revision: https://reviews.llvm.org/D156485 - -(cherry picked from commit f800c1f3b207e7bcdc8b4c7192928d9a078242a0) ---- - llvm/lib/CodeGen/PrologEpilogInserter.cpp | 9 +++++++-- - llvm/test/CodeGen/X86/zero-call-used-regs.ll | 14 ++++++++++++++ - 2 files changed, 21 insertions(+), 2 deletions(-) - -diff --git a/llvm/lib/CodeGen/PrologEpilogInserter.cpp b/llvm/lib/CodeGen/PrologEpilogInserter.cpp -index e323aaaeefaf..49047719fdaa 100644 ---- a/llvm/lib/CodeGen/PrologEpilogInserter.cpp -+++ b/llvm/lib/CodeGen/PrologEpilogInserter.cpp -@@ -1285,6 +1285,8 @@ void PEI::insertZeroCallUsedRegs(MachineFunction &MF) { - continue; - - MCRegister Reg = MO.getReg(); -+ if (!Reg) -+ continue; - - // This picks up sibling registers (e.q. %al -> %ah). - for (MCRegUnit Unit : TRI.regunits(Reg)) -@@ -1308,8 +1310,11 @@ void PEI::insertZeroCallUsedRegs(MachineFunction &MF) { - if (!MO.isReg()) - continue; - -- for (const MCPhysReg &Reg : -- TRI.sub_and_superregs_inclusive(MO.getReg())) -+ MCRegister Reg = MO.getReg(); -+ if (!Reg) -+ continue; -+ -+ for (const MCPhysReg Reg : TRI.sub_and_superregs_inclusive(Reg)) - RegsToZero.reset(Reg); - } - } -diff --git a/llvm/test/CodeGen/X86/zero-call-used-regs.ll b/llvm/test/CodeGen/X86/zero-call-used-regs.ll -index 63d51c916bb9..97ad5ce9c8cb 100644 ---- a/llvm/test/CodeGen/X86/zero-call-used-regs.ll -+++ b/llvm/test/CodeGen/X86/zero-call-used-regs.ll -@@ -241,6 +241,20 @@ entry: - ret i32 %x - } - -+define dso_local void @tailcall(ptr %p) local_unnamed_addr #0 "zero-call-used-regs"="used-gpr" { -+; I386-LABEL: tailcall: -+; I386: # %bb.0: -+; I386-NEXT: movl {{[0-9]+}}(%esp), %eax -+; I386-NEXT: jmpl *(%eax) # TAILCALL -+; -+; X86-64-LABEL: tailcall: -+; X86-64: # %bb.0: -+; X86-64-NEXT: jmpq *(%rdi) # TAILCALL -+ %c = load ptr, ptr %p -+ tail call void %c() -+ ret void -+} -+ - ; Don't emit zeroing registers in "main" function. - define dso_local i32 @main() local_unnamed_addr #1 { - ; I386-LABEL: main: --- -2.43.0 - diff --git a/0101-Deactivate-markdown-doc.patch b/0101-Deactivate-markdown-doc.patch index 603cb39..a8409aa 100644 --- a/0101-Deactivate-markdown-doc.patch +++ b/0101-Deactivate-markdown-doc.patch @@ -1,26 +1,13 @@ -diff -Naur a/llvm/docs/conf.py b/llvm/docs/conf.py ---- a/llvm/docs/conf.py 2020-09-15 09:12:24.318287611 +0000 -+++ b/llvm/docs/conf.py 2020-09-15 15:01:00.025893199 +0000 -@@ -36,21 +36,7 @@ - ".rst": "restructuredtext", - } +diff --git a/llvm/docs/conf.py b/llvm/docs/conf.py +index cf8a75980b53..b208ad138e89 100644 +--- a/llvm/docs/conf.py ++++ b/llvm/docs/conf.py +@@ -26,7 +26,7 @@ from datetime import date --try: -- import recommonmark --except ImportError: -- # manpages do not use any .md sources -- if not tags.has("builder-man"): -- raise --else: -- import sphinx -- -- if sphinx.version_info >= (3, 0): -- # This requires 0.5 or later. -- extensions.append("recommonmark") -- else: -- source_parsers = {".md": "recommonmark.parser.CommonMarkParser"} -- source_suffix[".md"] = "markdown" -+import sphinx + # Add any Sphinx extension module names here, as strings. They can be extensions + # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. +-extensions = ["myst_parser", "sphinx.ext.intersphinx", "sphinx.ext.todo"] ++extensions = ["sphinx.ext.intersphinx", "sphinx.ext.todo"] - # The encoding of source files. - # source_encoding = 'utf-8-sig' + # Automatic anchors for markdown titles + from llvm_slug import make_slug diff --git a/llvm.spec b/llvm.spec index 02f2c17..44d80b3 100644 --- a/llvm.spec +++ b/llvm.spec @@ -9,10 +9,14 @@ # See https://docs.fedoraproject.org/en-US/packaging-guidelines/#_compiler_macros %global toolchain clang +# Opt out of https://fedoraproject.org/wiki/Changes/fno-omit-frame-pointer +# https://bugzilla.redhat.com/show_bug.cgi?id=2158587 +%undefine _include_frame_pointers + %global gts_version 13 # Components enabled if supported by target architecture: -%define gold_arches %{ix86} x86_64 %{arm} aarch64 %{power64} s390x +%define gold_arches %{ix86} x86_64 aarch64 %{power64} s390x %ifarch %{gold_arches} %bcond_without gold %else @@ -23,7 +27,7 @@ %bcond_with bundle_compat_lib %bcond_without check -%ifarch %ix86 +%ifarch %ix86 riscv64 # Disable LTO on x86 in order to reduce memory consumption %bcond_with lto_build %elif %{with snapshot_build} @@ -34,12 +38,12 @@ %endif %if %{with bundle_compat_lib} -%global compat_maj_ver 16 +%global compat_maj_ver 17 %global compat_ver %{compat_maj_ver}.0.6 %endif -%global maj_ver 17 -%global min_ver 0 +%global maj_ver 18 +%global min_ver 1 %global patch_ver 6 #global rc_ver 4 @@ -53,7 +57,6 @@ %global llvm_srcdir llvm-%{maj_ver}.%{min_ver}.%{patch_ver}%{?rc_ver:rc%{rc_ver}}.src %global cmake_srcdir cmake-%{maj_ver}.%{min_ver}.%{patch_ver}%{?rc_ver:rc%{rc_ver}}.src %global third_party_srcdir third-party-%{maj_ver}.%{min_ver}.%{patch_ver}%{?rc_ver:rc%{rc_ver}}.src -%global _lto_cflags -flto=thin %if %{with compat_build} %global pkg_name llvm%{maj_ver} @@ -89,13 +92,7 @@ %global _dwz_low_mem_die_limit_s390x 1 %global _dwz_max_die_limit_s390x 1000000 -%ifarch %{arm} -# koji overrides the _gnu variable to be gnu, which is not correct for clang, so -# we need to hard-code the correct triple here. -%global llvm_triple armv7l-redhat-linux-gnueabihf -%else %global llvm_triple %{_target_platform} -%endif # https://fedoraproject.org/wiki/Changes/PythonSafePath#Opting_out # Don't add -P to Python shebangs @@ -104,7 +101,7 @@ Name: %{pkg_name} Version: %{maj_ver}.%{min_ver}.%{patch_ver}%{?rc_ver:~rc%{rc_ver}}%{?llvm_snapshot_version_suffix:~%{llvm_snapshot_version_suffix}} -Release: 5%{?dist} +Release: 1%{?dist} Summary: The Low Level Virtual Machine License: Apache-2.0 WITH LLVM-exception OR NCSA @@ -129,10 +126,7 @@ Source8: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{compat %endif %endif -# Backport of https://reviews.llvm.org/D156485 for rhbz#2262260/RHEL-23638 -Patch0: 0001-PEI-Don-t-zero-out-noreg-operands.patch - -# RHEL-specific patch to avoid unwanted recommonmark dep +# RHEL-specific patch to avoid unwanted python3-myst-parser dep Patch101: 0101-Deactivate-markdown-doc.patch BuildRequires: gcc @@ -145,8 +139,8 @@ BuildRequires: libffi-devel BuildRequires: ncurses-devel BuildRequires: python3-psutil BuildRequires: python3-sphinx -%if !0%{?rhel} -BuildRequires: python3-recommonmark +%if %{undefined rhel} +BuildRequires: python3-myst-parser %endif BuildRequires: multilib-rpm-config %if %{with gold} @@ -191,14 +185,12 @@ Requires: libedit-devel # but this caused bugs (rhbz#1773678) and forced us to carry two non-upstream # patches. Requires: %{name}-static%{?_isa} = %{version}-%{release} -%if %{without compat_build} Requires: %{name}-test%{?_isa} = %{version}-%{release} Requires: %{name}-googletest%{?_isa} = %{version}-%{release} -%endif -Requires(post): %{_sbindir}/alternatives -Requires(postun): %{_sbindir}/alternatives +Requires(post): /usr/sbin/alternatives +Requires(postun): /usr/sbin/alternatives Provides: llvm-devel(major) = %{maj_ver} @@ -216,6 +208,8 @@ Documentation for the LLVM compiler infrastructure. %package libs Summary: LLVM shared libraries +Requires(post): /sbin/ldconfig +Requires(postun): /sbin/ldconfig %description libs Shared libraries for the LLVM compiler infrastructure. @@ -236,8 +230,6 @@ Summary: CMake utilities shared across LLVM subprojects CMake utilities shared across LLVM subprojects. This is for internal use by LLVM packages only. -%if %{without compat_build} - %package test Summary: LLVM regression tests Requires: %{name}%{?_isa} = %{version}-%{release} @@ -259,33 +251,23 @@ Summary: Package that installs llvm-toolset Requires: clang = %{version} Requires: llvm = %{version} -%ifnarch s390x -Requires: lld = %{version} -%endif - %description toolset This is the main package for llvm-toolset. -%endif - %prep -%if %{without snapshot_build} %{gpgverify} --keyring='%{SOURCE6}' --signature='%{SOURCE1}' --data='%{SOURCE0}' %{gpgverify} --keyring='%{SOURCE6}' --signature='%{SOURCE3}' --data='%{SOURCE2}' %{gpgverify} --keyring='%{SOURCE6}' --signature='%{SOURCE5}' --data='%{SOURCE4}' %if %{with bundle_compat_lib} %{gpgverify} --keyring='%{SOURCE6}' --signature='%{SOURCE8}' --data='%{SOURCE7}' %endif -%endif %setup -T -q -b 2 -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 - %setup -T -q -b 4 -n %{third_party_srcdir} -%autopatch -m200 -p2 cd .. mv %{third_party_srcdir} third-party @@ -294,7 +276,7 @@ mv %{third_party_srcdir} third-party %endif %setup -T -q -b 0 -n %{llvm_srcdir} -%autopatch -M200 -p2 +%autopatch -M%{?!rhel:100}%{?rhel:200} -p2 %py3_shebang_fix \ test/BugPoint/compile-custom.ll.py \ @@ -303,12 +285,11 @@ mv %{third_party_srcdir} third-party %build -%ifarch %ix86 -# Linking libLLVM.so goes out of memory even with ThinLTO and a single link job. +%if %{without lto_build} %global _lto_cflags %nil %endif -%ifarch s390 s390x %{arm} %ix86 +%ifarch s390 s390x %ix86 riscv64 # Decrease debuginfo verbosity to reduce memory consumption during final library linking %global optflags %(echo %{optflags} | sed 's/-g /-g1 /') %endif @@ -323,7 +304,7 @@ export ASMFLAGS="%{build_cflags}" -DLLVM_PARALLEL_LINK_JOBS=1 \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_SKIP_RPATH:BOOL=ON \ -%ifarch s390 %{arm} %ix86 +%ifarch s390 %ix86 riscv64 -DCMAKE_C_FLAGS_RELWITHDEBINFO="%{optflags} -DNDEBUG" \ -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="%{optflags} -DNDEBUG" \ %endif @@ -353,31 +334,25 @@ export ASMFLAGS="%{build_cflags}" \ -DLLVM_INCLUDE_TESTS:BOOL=ON \ -DLLVM_BUILD_TESTS:BOOL=ON \ -%if %{with compat_build} - -DLLVM_INSTALL_GTEST:BOOL=OFF \ -%else -DLLVM_INSTALL_GTEST:BOOL=ON \ -%endif -DLLVM_LIT_ARGS=-v \ \ -DLLVM_INCLUDE_EXAMPLES:BOOL=ON \ -DLLVM_BUILD_EXAMPLES:BOOL=OFF \ \ -DLLVM_INCLUDE_UTILS:BOOL=ON \ -%if %{with compat_build} - -DLLVM_INSTALL_UTILS:BOOL=OFF \ -%else -DLLVM_INSTALL_UTILS:BOOL=ON \ - -DLLVM_UTILS_INSTALL_DIR:PATH=%{_bindir} \ + -DLLVM_UTILS_INSTALL_DIR:PATH=bin \ -DLLVM_TOOLS_INSTALL_DIR:PATH=bin \ -%endif \ -DLLVM_INCLUDE_DOCS:BOOL=ON \ -DLLVM_BUILD_DOCS:BOOL=ON \ -DLLVM_ENABLE_SPHINX:BOOL=ON \ -DLLVM_ENABLE_DOXYGEN:BOOL=OFF \ \ -%if %{without compat_build} +%if %{with snapshot_build} + -DLLVM_VERSION_SUFFIX="%{llvm_snapshot_version_suffix}" \ +%else -DLLVM_VERSION_SUFFIX='' \ %endif -DLLVM_UNREACHABLE_OPTIMIZE:BOOL=ON \ @@ -389,12 +364,14 @@ export ASMFLAGS="%{build_cflags}" -DSPHINX_WARNINGS_AS_ERRORS=OFF \ -DCMAKE_INSTALL_PREFIX=%{install_prefix} \ -DLLVM_INSTALL_SPHINX_HTML_DIR=%{_pkgdocdir}/html \ - -DSPHINX_EXECUTABLE=%{_bindir}/sphinx-build-3 \ + -DSPHINX_EXECUTABLE=/usr/bin/sphinx-build-3 \ -DLLVM_INCLUDE_BENCHMARKS=OFF \ %if %{with lto_build} -DLLVM_UNITTEST_LINK_FLAGS="-Wl,-plugin-opt=O0" \ %endif +%ifarch x86_64 -DCMAKE_SHARED_LINKER_FLAGS="$LDFLAGS -Wl,-z,cet-report=error" +%endif # Build libLLVM.so first. This ensures that when libLLVM.so is linking, there # are no other compile jobs running. This will help reduce OOM errors on the @@ -435,29 +412,34 @@ rm -Rf ../llvm-compat-libs mkdir -p %{buildroot}/%{_bindir} -%if %{without compat_build} - -# Fix some man pages -ln -s llvm-config.1 %{buildroot}%{_mandir}/man1/llvm-config%{exec_suffix}-%{__isa_bits}.1 - # Install binaries needed for lit tests %global test_binaries llvm-isel-fuzzer llvm-opt-fuzzer for f in %{test_binaries} do - install -m 0755 %{_vpath_builddir}/bin/$f %{buildroot}%{_bindir} + install -m 0755 %{_vpath_builddir}/bin/$f %{buildroot}%{install_bindir} done # Remove testing of update utility tools rm -rf test/tools/UpdateTestChecks -%multilib_fix_c_header --file %{_includedir}/llvm/Config/llvm-config.h - # Install libraries needed for unittests +%if %{without compat_build} %global build_libdir %{_vpath_builddir}/%{_lib} +%else +%global build_libdir %{_vpath_builddir}/lib +%endif -install %{build_libdir}/libLLVMTestingSupport.a %{buildroot}%{_libdir} -install %{build_libdir}/libLLVMTestingAnnotations.a %{buildroot}%{_libdir} +install %{build_libdir}/libLLVMTestingSupport.a %{buildroot}%{install_libdir} +install %{build_libdir}/libLLVMTestingAnnotations.a %{buildroot}%{install_libdir} + +# Fix multi-lib +%multilib_fix_c_header --file %{install_includedir}/llvm/Config/llvm-config.h + +%if %{without compat_build} + +# Fix some man pages +ln -s llvm-config.1 %{buildroot}%{_mandir}/man1/llvm-config%{exec_suffix}-%{__isa_bits}.1 %if %{with gold} # Add symlink to lto plugin in the binutils plugin directory. @@ -473,17 +455,9 @@ for f in %{buildroot}/%{install_bindir}/*; do ln -s ../../%{install_bindir}/$filename %{buildroot}/%{_bindir}/$filename%{exec_suffix} done -# Move header files -mkdir -p %{buildroot}/%{pkg_includedir} -ln -s ../../../%{install_includedir}/llvm %{buildroot}/%{pkg_includedir}/llvm -ln -s ../../../%{install_includedir}/llvm-c %{buildroot}/%{pkg_includedir}/llvm-c - -# Fix multi-lib -%multilib_fix_c_header --file %{install_includedir}/llvm/Config/llvm-config.h - # Create ld.so.conf.d entry -mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d -cat >> %{buildroot}%{_sysconfdir}/ld.so.conf.d/%{name}-%{_arch}.conf << EOF +mkdir -p %{buildroot}/etc/ld.so.conf.d +cat >> %{buildroot}/etc/ld.so.conf.d/%{name}-%{_arch}.conf << EOF %{install_libdir} EOF @@ -494,9 +468,6 @@ for f in %{build_install_prefix}/share/man/man1/*; do mv $f %{buildroot}%{_mandir}/man1/$filename%{exec_suffix}.1 done -# Remove opt-viewer, since this is just a compatibility package. -rm -Rf %{build_install_prefix}/share/opt-viewer - %endif # llvm-config special casing. llvm-config is managed by update-alternatives. @@ -525,22 +496,10 @@ rm %{buildroot}%{_bindir}/llvm-config%{exec_suffix} # ghost presence touch %{buildroot}%{_bindir}/llvm-config%{exec_suffix} -%if %{without compat_build} mkdir -p %{buildroot}%{pkg_datadir}/llvm/cmake cp -Rv ../cmake/* %{buildroot}%{pkg_datadir}/llvm/cmake -%endif - %check -# Disable check section on arm due to some kind of memory related failure. -# Possibly related to https://bugzilla.redhat.com/show_bug.cgi?id=1920183 -%ifnarch %{arm} - -# TODO: Fix the failures below -%ifarch %{arm} -rm test/tools/llvm-readobj/ELF/dependent-libraries.test -%endif - # non reproducible errors rm test/tools/dsymutil/X86/swift-interface.test @@ -549,67 +508,87 @@ rm test/tools/dsymutil/X86/swift-interface.test LD_LIBRARY_PATH=%{buildroot}/%{install_libdir} %{__ninja} check-all -C %{_vpath_builddir} %endif +%if %{with compat_build} +# Packages that install files in /etc/ld.so.conf have to manually run +# ldconfig. +# See https://bugzilla.redhat.com/show_bug.cgi?id=2001328 and +# https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_linker_configuration_files +%post -p /sbin/ldconfig libs +%postun -p /sbin/ldconfig libs %endif -%ldconfig_scriptlets libs - %post devel -%{_sbindir}/update-alternatives --install %{_bindir}/llvm-config%{exec_suffix} llvm-config%{exec_suffix} %{install_bindir}/llvm-config%{exec_suffix}-%{__isa_bits} %{__isa_bits} +/usr/sbin/update-alternatives --install %{_bindir}/llvm-config%{exec_suffix} llvm-config%{exec_suffix} %{install_bindir}/llvm-config%{exec_suffix}-%{__isa_bits} %{__isa_bits} %if %{without compat_build} -%{_sbindir}/update-alternatives --install %{_bindir}/llvm-config-%{maj_ver} llvm-config-%{maj_ver} %{install_bindir}/llvm-config%{exec_suffix}-%{__isa_bits} %{__isa_bits} +/usr/sbin/update-alternatives --install %{_bindir}/llvm-config-%{maj_ver} llvm-config-%{maj_ver} %{install_bindir}/llvm-config%{exec_suffix}-%{__isa_bits} %{__isa_bits} + +# During the upgrade from LLVM 16 (F38) to LLVM 17 (F39), we found out the +# main llvm-devel package was leaving entries in the alternatives system. +# Try to remove them now. +for v in 14 15 16; do + if [[ -e %{_bindir}/llvm-config-$v + && "x$(%{_bindir}/llvm-config-$v --version | awk -F . '{ print $1 }')" != "x$v" ]]; then + /usr/sbin/update-alternatives --remove llvm-config-$v %{install_bindir}/llvm-config%{exec_suffix}-%{__isa_bits} + fi +done %endif + %postun devel if [ $1 -eq 0 ]; then - %{_sbindir}/update-alternatives --remove llvm-config%{exec_suffix} %{install_bindir}/llvm-config%{exec_suffix}-%{__isa_bits} -%if %{without compat_build} - %{_sbindir}/update-alternatives --remove llvm-config-%{maj_ver} %{install_bindir}/llvm-config%{exec_suffix}-%{__isa_bits} -%endif + /usr/sbin/update-alternatives --remove llvm-config%{exec_suffix} %{install_bindir}/llvm-config%{exec_suffix}-%{__isa_bits} fi +%if %{without compat_build} +# When upgrading between minor versions (i.e. from x.y.1 to x.y.2), we must +# not remove the alternative. +# However, during a major version upgrade (i.e. from 16.x.y to 17.z.w), the +# alternative must be removed in order to give priority to a newly installed +# compat package. +if [[ $1 -eq 0 + || "x$(%{_bindir}/llvm-config-%{maj_ver} --version | awk -F . '{ print $1 }')" != "x%{maj_ver}" ]]; then + /usr/sbin/update-alternatives --remove llvm-config-%{maj_ver} %{install_bindir}/llvm-config%{exec_suffix}-%{__isa_bits} +fi +%endif %files %license LICENSE.TXT %exclude %{_mandir}/man1/llvm-config* %{_mandir}/man1/* -%{_bindir}/* +%{install_bindir}/* +%if %{with compat_build} +# This is for all the binaries with the version suffix. +%{_bindir}/*%{exec_suffix} +%endif %exclude %{_bindir}/llvm-config%{exec_suffix} %exclude %{install_bindir}/llvm-config%{exec_suffix}-%{__isa_bits} -%if %{without compat_build} %exclude %{_bindir}/llvm-config-%{maj_ver} %exclude %{install_bindir}/llvm-config-%{maj_ver}-%{__isa_bits} -%exclude %{_bindir}/not -%exclude %{_bindir}/count -%exclude %{_bindir}/yaml-bench -%exclude %{_bindir}/lli-child-target -%exclude %{_bindir}/llvm-isel-fuzzer -%exclude %{_bindir}/llvm-opt-fuzzer -%{_datadir}/opt-viewer -%else -%{install_bindir} -%endif +%exclude %{install_bindir}/not +%exclude %{install_bindir}/count +%exclude %{install_bindir}/yaml-bench +%exclude %{install_bindir}/lli-child-target +%exclude %{install_bindir}/llvm-isel-fuzzer +%exclude %{install_bindir}/llvm-opt-fuzzer +%{pkg_datadir}/opt-viewer %files libs %license LICENSE.TXT %{install_libdir}/libLLVM-%{maj_ver}%{?llvm_snapshot_version_suffix:%{llvm_snapshot_version_suffix}}.so -%if %{without compat_build} %if %{with gold} -%{_libdir}/LLVMgold.so +%{install_libdir}/LLVMgold.so +%if %{without compat_build} %{_libdir}/bfd-plugins/LLVMgold.so %endif -%{_libdir}/libLLVM-%{maj_ver}.%{min_ver}*.so -%{_libdir}/libLTO.so* -%else -%config(noreplace) %{_sysconfdir}/ld.so.conf.d/%{name}-%{_arch}.conf -%if %{with gold} -%{_libdir}/%{name}/lib/LLVMgold.so %endif -%{install_libdir}/libLLVM-%{maj_ver}.%{min_ver}*.so +%{install_libdir}/libLLVM-%{maj_ver}.so +%{install_libdir}/libLLVM.so.%{maj_ver}.%{min_ver} %{install_libdir}/libLTO.so* -%exclude %{install_libdir}/libLTO.so -%endif %{install_libdir}/libRemarks.so* +%if %{with compat_build} +%config(noreplace) /etc/ld.so.conf.d/%{name}-%{_arch}.conf +%endif %if %{with bundle_compat_lib} %{_libdir}/libLLVM-%{compat_maj_ver}.so %endif @@ -625,14 +604,8 @@ fi %{install_includedir}/llvm-c %{install_libdir}/libLLVM.so %{install_libdir}/cmake/llvm -%if %{without compat_build} %{install_bindir}/llvm-config-%{maj_ver}-%{__isa_bits} %ghost %{_bindir}/llvm-config-%{maj_ver} -%else -%{pkg_includedir}/llvm -%{pkg_includedir}/llvm-c -%{install_libdir}/libLTO.so -%endif %if %{with bundle_compat_lib} %{_libdir}/llvm%{compat_maj_ver}/ %endif @@ -644,27 +617,23 @@ fi %files static %license LICENSE.TXT %{install_libdir}/*.a -%if %{without compat_build} %exclude %{install_libdir}/libLLVMTestingSupport.a %exclude %{install_libdir}/libLLVMTestingAnnotations.a %exclude %{install_libdir}/libllvm_gtest.a %exclude %{install_libdir}/libllvm_gtest_main.a -%endif %files cmake-utils %license LICENSE.TXT %{pkg_datadir}/llvm/cmake -%if %{without compat_build} - %files test %license LICENSE.TXT -%{_bindir}/not -%{_bindir}/count -%{_bindir}/yaml-bench -%{_bindir}/lli-child-target -%{_bindir}/llvm-isel-fuzzer -%{_bindir}/llvm-opt-fuzzer +%{install_bindir}/not +%{install_bindir}/count +%{install_bindir}/yaml-bench +%{install_bindir}/lli-child-target +%{install_bindir}/llvm-isel-fuzzer +%{install_bindir}/llvm-opt-fuzzer %files googletest %license LICENSE.TXT @@ -675,13 +644,15 @@ fi %{install_includedir}/llvm-gtest %{install_includedir}/llvm-gmock -%endif %files toolset %license LICENSE.TXT %changelog +* Tue May 21 2024 Konrad Kleine - 18.1.6-1 +- Update to 18.1.6 + * Fri Feb 02 2024 Timm Bäder - 17.0.6-5 - Backport a patch for RHEL-23638 diff --git a/sources b/sources index 4864a91..deac9db 100644 --- a/sources +++ b/sources @@ -1,8 +1,6 @@ -SHA512 (llvm-16.0.6.src.tar.xz.sig) = 9adda28085f4a2e2a64dab1d8e4ff23c5629bbb0bb6b34afc081e44f6f85ac4f3c6cd0c3488af98c0fad939c33f9d2a8a0cbef67a577cd7fe3013bc2200452b1 -SHA512 (llvm-16.0.6.src.tar.xz) = 8d4cdadc9a1ad249fbf9248c8e56f3bcafab73a473a0b0ca73499ed8825c62e27668aac4f1d03341631e5ad93701621e834e9e196ca32eac3ef805cf1c860083 -SHA512 (third-party-17.0.6.src.tar.xz.sig) = 6b72379b70a359a77f4d7d0922b0e80ff2a44d65178389b25edbc4a72029a91d50b3eb39a1185fac50dbba0a1972572eaadc7d82bb8e87d26f4e42c2bf676b75 -SHA512 (third-party-17.0.6.src.tar.xz) = 242dada4800c5e558f5f243e6aa0905d90ca3f82cc81baf14c60de543a7e737d4c2f3471122f2c641dc4f0724e4ebf5cf137761a231b34aab2a12f1cfc902c53 -SHA512 (cmake-17.0.6.src.tar.xz.sig) = fad2d91fc3e499dbd1b8c4acbc48ef748c106a04f7529232ea95abf3d006c4494e495643f77e653b1c96f7a0b79fe0706c5cdedd4f7dc4cbbab0ee5cf749c8ce -SHA512 (cmake-17.0.6.src.tar.xz) = b2c5e404ca36542d44e1a7f2801bbcecbcf5f1e8c63b793bb2308228483406bdfe002720aadb913c0228cd2bbe5998465eaadc4a49fad6a5eb6ff907fa5fd45a -SHA512 (llvm-17.0.6.src.tar.xz.sig) = 904066c34ec0adf5b9e789af640329cadc7919b111aca77fa3ce26450696bace20e299e2592251f96ee33fb83da603423cc0ca63a67ad627916fcab0bed59689 -SHA512 (llvm-17.0.6.src.tar.xz) = bf9b04d0d45c67168b195c550cd8326e3a01176f92776705846aad3956a494bcb7a053b0b0bde19abd68dc0068e5c97ef99dee7eadfdb727bc0d758b2684f3bd +SHA512 (llvm-18.1.6.src.tar.xz) = 6b52d63a7c1a604d062ddb69838939fd2e51a31de7225bf4f2c11a6cf3574f96188ebee3020ecbeb77cd4592680571abad8f0a9584a23685bf662b7f085c0372 +SHA512 (llvm-18.1.6.src.tar.xz.sig) = a4c87fe68d17d085baa8ad7fd61a2e6b156bf31644904cd54c5527d8b069d09d5183a8e6f3e13157144c3d567fac9cb696f8a69fe6b10960638530772a9adc86 +SHA512 (cmake-18.1.6.src.tar.xz) = 1334647f4be280b41858aa272bebc65e935cab772001032f77040396ba7472fbd5eb6a1a0c042ab7156540075705b7f05c8de2f02e2ce9d7ec1ec27be6bef86f +SHA512 (cmake-18.1.6.src.tar.xz.sig) = 27fe3ca9a25f5a20f7ca4e059cd4390d2e484c6a70b309a9e934a80fc732da9d8845064813a47c1258d00be38624aaa9024d5584305076abc2ad93f578b0a3d0 +SHA512 (third-party-18.1.6.src.tar.xz) = 4131a08951683972ab4897687b1dbc5cb0873c8d31fdc8fbaab92a2de52249e797b983329ef0d53fc681b531972d8d5550757af52314f0a3087d8009eb2f5c66 +SHA512 (third-party-18.1.6.src.tar.xz.sig) = 7c108a3bd67f9a058cbece2e413e7c6b944cc8ebcff323daad78a7fa7185d242f75b5750f7900d962d7516c63aae067809b4dbac4eda934dab3fcc9be4e53641 diff --git a/tests/README.md b/tests/README.md new file mode 100644 index 0000000..2afa54e --- /dev/null +++ b/tests/README.md @@ -0,0 +1,6 @@ +# Gating testplans for LLVM + +The tests for LLVM are in a separate repo: https://src.fedoraproject.org/tests/llvm +This directory should contain only fmf plans (such as build-gating.fmf) which import +the tests from the tests repo. This can be done using the "url" parameter of the +plan's "discover" step. Reference: https://tmt.readthedocs.io/en/stable/spec/plans.html#fmf