Compare commits

...

No commits in common. "c8-stream-rhel8" and "stream-llvm-toolset-rhel-next-rhel-8.10.0" have entirely different histories.

15 changed files with 213 additions and 213 deletions

1
.fmf/version Normal file
View File

@ -0,0 +1 @@
1

34
.gitignore vendored
View File

@ -1,6 +1,28 @@
SOURCES/cmake-17.0.6.src.tar.xz SOURCES/cmake-15.0.7.src.tar.xz
SOURCES/cmake-17.0.6.src.tar.xz.sig SOURCES/llvm-15.0.7.src.tar.xz
SOURCES/llvm-17.0.6.src.tar.xz /cmake-15.0.7.src.tar.xz
SOURCES/llvm-17.0.6.src.tar.xz.sig /llvm-15.0.7.src.tar.xz
SOURCES/third-party-17.0.6.src.tar.xz /llvm-16.0.0.src.tar.xz
SOURCES/third-party-17.0.6.src.tar.xz.sig /llvm-16.0.0.src.tar.xz.sig
/cmake-16.0.0.src.tar.xz
/cmake-16.0.0.src.tar.xz.sig
/third-party-16.0.0.src.tar.xz
/third-party-16.0.0.src.tar.xz.sig
/llvm-16.0.6.src.tar.xz
/llvm-16.0.6.src.tar.xz.sig
/cmake-16.0.6.src.tar.xz
/cmake-16.0.6.src.tar.xz.sig
/third-party-16.0.6.src.tar.xz
/third-party-16.0.6.src.tar.xz.sig
/llvm-17.0.2.src.tar.xz
/llvm-17.0.2.src.tar.xz.sig
/cmake-17.0.2.src.tar.xz
/cmake-17.0.2.src.tar.xz.sig
/third-party-17.0.2.src.tar.xz
/third-party-17.0.2.src.tar.xz.sig
/llvm-17.0.6.src.tar.xz
/llvm-17.0.6.src.tar.xz.sig
/cmake-17.0.6.src.tar.xz
/cmake-17.0.6.src.tar.xz.sig
/third-party-17.0.6.src.tar.xz
/third-party-17.0.6.src.tar.xz.sig

View File

@ -1,6 +1,6 @@
4b397344260c934e687be7efa0f8456a9dd46f44 SOURCES/cmake-17.0.6.src.tar.xz ad230bc2bcb3a7dcedd9bf462a5915f3b5cee598 llvm-18.1.2.src.tar.xz
fa31d348b6780478403484e22139d25f403503d4 SOURCES/cmake-17.0.6.src.tar.xz.sig 8c7be6f58c0a1bf6edfcc1447e1356a72c13bf96 llvm-18.1.2.src.tar.xz.sig
860a3605f08a0a56a8de4e073e26a259871623a6 SOURCES/llvm-17.0.6.src.tar.xz b04c79da253b97af9dae59675bc29cd1d3c6257f cmake-18.1.2.src.tar.xz
2ad479ab00a6d5e61ecb953997cfeef6650a687a SOURCES/llvm-17.0.6.src.tar.xz.sig cb4b762163f99c329441ca724f2d8729c3df56dd cmake-18.1.2.src.tar.xz.sig
a35dc22cd3d983a556f6e4a63c8dac6a84e01caf SOURCES/third-party-17.0.6.src.tar.xz 209a7890d8852fa626a326e6e156af2ab8949174 third-party-18.1.2.src.tar.xz
12128cdab7414aeedd573c61cbc2fa82e75491db SOURCES/third-party-17.0.6.src.tar.xz.sig 844233bf713229273f23bb082cc7807e52f3127f third-party-18.1.2.src.tar.xz.sig

View File

@ -0,0 +1,13 @@
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
# 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"]
# Automatic anchors for markdown titles
from llvm_slug import make_slug

View File

@ -1,74 +0,0 @@
From 9d1f05a7b8537deb5f626cd1b7b26ef2678f4c8e Mon Sep 17 00:00:00 2001
From: Arthur Eubanks <aeubanks@google.com>
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

View File

@ -1,26 +0,0 @@
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",
}
-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
# The encoding of source files.
# source_encoding = 'utf-8-sig'

BIN
cmake-15.0.7.src.tar.xz.sig Normal file

Binary file not shown.

19
gating.yaml Normal file
View File

@ -0,0 +1,19 @@
--- !Policy
product_versions:
- fedora-*
decision_context: bodhi_update_push_testing
rules:
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}
--- !Policy
product_versions:
- fedora-*
decision_context: bodhi_update_push_stable
rules:
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}
--- !Policy
product_versions:
- rhel-9
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier0.functional}
- !PassingTestCaseRule {test_case_name: osci.brew-build.rebuild.validation}

BIN
llvm-14.0.0.src.tar.xz.sig Normal file

Binary file not shown.

BIN
llvm-15.0.7.src.tar.xz.sig Normal file

Binary file not shown.

2
llvm.rpmlintrc Normal file
View File

@ -0,0 +1,2 @@
# This library has no dependencies.
addFilter("llvm-libs.x86_64: E: shared-lib-without-dependency-information /usr/lib64/libRemarks.so.[0-9]+")

View File

@ -31,9 +31,9 @@
%bcond_without lto_build %bcond_without lto_build
%endif %endif
%global maj_ver 17 %global maj_ver 18
%global min_ver 0 %global min_ver 1
%global patch_ver 6 %global patch_ver 2
#global rc_ver 4 #global rc_ver 4
%if %{with snapshot_build} %if %{with snapshot_build}
@ -118,7 +118,7 @@
Name: %{pkg_name} Name: %{pkg_name}
Version: %{maj_ver}.%{min_ver}.%{patch_ver}%{?rc_ver:~rc%{rc_ver}}%{?llvm_snapshot_version_suffix:~%{llvm_snapshot_version_suffix}} Version: %{maj_ver}.%{min_ver}.%{patch_ver}%{?rc_ver:~rc%{rc_ver}}%{?llvm_snapshot_version_suffix:~%{llvm_snapshot_version_suffix}}
Release: 2%{?dist} Release: 1%{?dist}
Summary: The Low Level Virtual Machine Summary: The Low Level Virtual Machine
License: Apache-2.0 WITH LLVM-exception OR NCSA License: Apache-2.0 WITH LLVM-exception OR NCSA
@ -138,10 +138,7 @@ Source5: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{maj_ve
Source6: release-keys.asc Source6: release-keys.asc
%endif %endif
# Backport of https://reviews.llvm.org/D156485 for RHEL-23865. # RHEL-specific patch to avoid unwanted python3-myst-parser dep
Patch0: 0001-PEI-Don-t-zero-out-noreg-operands.patch
# RHEL-specific patch to avoid unwanted recommonmark dep
Patch101: 0101-Deactivate-markdown-doc.patch Patch101: 0101-Deactivate-markdown-doc.patch
BuildRequires: gcc BuildRequires: gcc
@ -155,7 +152,7 @@ BuildRequires: ncurses-devel
BuildRequires: python3-psutil BuildRequires: python3-psutil
BuildRequires: python3-sphinx BuildRequires: python3-sphinx
%if %{undefined rhel} %if %{undefined rhel}
BuildRequires: python3-recommonmark BuildRequires: python3-myst-parser
%endif %endif
BuildRequires: multilib-rpm-config BuildRequires: multilib-rpm-config
%if %{with gold} %if %{with gold}
@ -209,14 +206,12 @@ Requires: libedit-devel
# but this caused bugs (rhbz#1773678) and forced us to carry two non-upstream # but this caused bugs (rhbz#1773678) and forced us to carry two non-upstream
# patches. # patches.
Requires: %{name}-static%{?_isa} = %{version}-%{release} Requires: %{name}-static%{?_isa} = %{version}-%{release}
%if %{without compat_build}
Requires: %{name}-test%{?_isa} = %{version}-%{release} Requires: %{name}-test%{?_isa} = %{version}-%{release}
Requires: %{name}-googletest%{?_isa} = %{version}-%{release} Requires: %{name}-googletest%{?_isa} = %{version}-%{release}
%endif
Requires(post): %{_sbindir}/alternatives Requires(post): /usr/sbin/alternatives
Requires(postun): %{_sbindir}/alternatives Requires(postun): /usr/sbin/alternatives
Provides: llvm-devel(major) = %{maj_ver} Provides: llvm-devel(major) = %{maj_ver}
@ -234,6 +229,8 @@ Documentation for the LLVM compiler infrastructure.
%package libs %package libs
Summary: LLVM shared libraries Summary: LLVM shared libraries
Requires(post): /sbin/ldconfig
Requires(postun): /sbin/ldconfig
%description libs %description libs
Shared libraries for the LLVM compiler infrastructure. Shared libraries for the LLVM compiler infrastructure.
@ -254,8 +251,6 @@ Summary: CMake utilities shared across LLVM subprojects
CMake utilities shared across LLVM subprojects. CMake utilities shared across LLVM subprojects.
This is for internal use by LLVM packages only. This is for internal use by LLVM packages only.
%if %{without compat_build}
%package test %package test
Summary: LLVM regression tests Summary: LLVM regression tests
Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}%{?_isa} = %{version}-%{release}
@ -280,22 +275,14 @@ Summary: Package that installs llvm-toolset
Requires: clang = %{version} Requires: clang = %{version}
Requires: llvm = %{version} Requires: llvm = %{version}
%ifnarch s390x
Requires: lld = %{version}
%endif
%description toolset %description toolset
This is the main package for llvm-toolset. This is the main package for llvm-toolset.
%endif %endif
%endif
%prep %prep
%if %{without snapshot_build}
%{gpgverify} --keyring='%{SOURCE6}' --signature='%{SOURCE1}' --data='%{SOURCE0}' %{gpgverify} --keyring='%{SOURCE6}' --signature='%{SOURCE1}' --data='%{SOURCE0}'
%{gpgverify} --keyring='%{SOURCE6}' --signature='%{SOURCE3}' --data='%{SOURCE2}' %{gpgverify} --keyring='%{SOURCE6}' --signature='%{SOURCE3}' --data='%{SOURCE2}'
%{gpgverify} --keyring='%{SOURCE6}' --signature='%{SOURCE5}' --data='%{SOURCE4}' %{gpgverify} --keyring='%{SOURCE6}' --signature='%{SOURCE5}' --data='%{SOURCE4}'
%endif
%setup -T -q -b 2 -n %{cmake_srcdir} %setup -T -q -b 2 -n %{cmake_srcdir}
# TODO: It would be more elegant to set -DLLVM_COMMON_CMAKE_UTILS=%{_builddir}/%{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 :( # but this is not a CACHED variable, so we can't actually set it externally :(
@ -370,24 +357,16 @@ export ASMFLAGS="%{build_cflags}"
\ \
-DLLVM_INCLUDE_TESTS:BOOL=ON \ -DLLVM_INCLUDE_TESTS:BOOL=ON \
-DLLVM_BUILD_TESTS:BOOL=ON \ -DLLVM_BUILD_TESTS:BOOL=ON \
%if %{with compat_build}
-DLLVM_INSTALL_GTEST:BOOL=OFF \
%else
-DLLVM_INSTALL_GTEST:BOOL=ON \ -DLLVM_INSTALL_GTEST:BOOL=ON \
%endif
-DLLVM_LIT_ARGS=-v \ -DLLVM_LIT_ARGS=-v \
\ \
-DLLVM_INCLUDE_EXAMPLES:BOOL=ON \ -DLLVM_INCLUDE_EXAMPLES:BOOL=ON \
-DLLVM_BUILD_EXAMPLES:BOOL=OFF \ -DLLVM_BUILD_EXAMPLES:BOOL=OFF \
\ \
-DLLVM_INCLUDE_UTILS:BOOL=ON \ -DLLVM_INCLUDE_UTILS:BOOL=ON \
%if %{with compat_build}
-DLLVM_INSTALL_UTILS:BOOL=OFF \
%else
-DLLVM_INSTALL_UTILS:BOOL=ON \ -DLLVM_INSTALL_UTILS:BOOL=ON \
-DLLVM_UTILS_INSTALL_DIR:PATH=%{_bindir} \ -DLLVM_UTILS_INSTALL_DIR:PATH=bin \
-DLLVM_TOOLS_INSTALL_DIR:PATH=bin \ -DLLVM_TOOLS_INSTALL_DIR:PATH=bin \
%endif
\ \
-DLLVM_INCLUDE_DOCS:BOOL=ON \ -DLLVM_INCLUDE_DOCS:BOOL=ON \
-DLLVM_BUILD_DOCS:BOOL=ON \ -DLLVM_BUILD_DOCS:BOOL=ON \
@ -408,12 +387,14 @@ export ASMFLAGS="%{build_cflags}"
-DSPHINX_WARNINGS_AS_ERRORS=OFF \ -DSPHINX_WARNINGS_AS_ERRORS=OFF \
-DCMAKE_INSTALL_PREFIX=%{install_prefix} \ -DCMAKE_INSTALL_PREFIX=%{install_prefix} \
-DLLVM_INSTALL_SPHINX_HTML_DIR=%{_pkgdocdir}/html \ -DLLVM_INSTALL_SPHINX_HTML_DIR=%{_pkgdocdir}/html \
-DSPHINX_EXECUTABLE=%{_bindir}/sphinx-build-3 \ -DSPHINX_EXECUTABLE=/usr/bin/sphinx-build-3 \
-DLLVM_INCLUDE_BENCHMARKS=OFF \ -DLLVM_INCLUDE_BENCHMARKS=OFF \
%if %{with lto_build} %if %{with lto_build}
-DLLVM_UNITTEST_LINK_FLAGS="-Wl,-plugin-opt=O0" \ -DLLVM_UNITTEST_LINK_FLAGS="-Wl,-plugin-opt=O0" \
%endif %endif
%ifarch x86_64
-DCMAKE_SHARED_LINKER_FLAGS="$LDFLAGS -Wl,-z,cet-report=error" -DCMAKE_SHARED_LINKER_FLAGS="$LDFLAGS -Wl,-z,cet-report=error"
%endif
# Build libLLVM.so first. This ensures that when libLLVM.so is linking, there # 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 # are no other compile jobs running. This will help reduce OOM errors on the
@ -426,29 +407,34 @@ export ASMFLAGS="%{build_cflags}"
mkdir -p %{buildroot}/%{_bindir} 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 # Install binaries needed for lit tests
%global test_binaries llvm-isel-fuzzer llvm-opt-fuzzer %global test_binaries llvm-isel-fuzzer llvm-opt-fuzzer
for f in %{test_binaries} for f in %{test_binaries}
do do
install -m 0755 %{_vpath_builddir}/bin/$f %{buildroot}%{_bindir} install -m 0755 %{_vpath_builddir}/bin/$f %{buildroot}%{install_bindir}
done done
# Remove testing of update utility tools # Remove testing of update utility tools
rm -rf test/tools/UpdateTestChecks rm -rf test/tools/UpdateTestChecks
%multilib_fix_c_header --file %{_includedir}/llvm/Config/llvm-config.h
# Install libraries needed for unittests # Install libraries needed for unittests
%if %{without compat_build}
%global build_libdir %{_vpath_builddir}/%{_lib} %global build_libdir %{_vpath_builddir}/%{_lib}
%else
%global build_libdir %{_vpath_builddir}/lib
%endif
install %{build_libdir}/libLLVMTestingSupport.a %{buildroot}%{_libdir} install %{build_libdir}/libLLVMTestingSupport.a %{buildroot}%{install_libdir}
install %{build_libdir}/libLLVMTestingAnnotations.a %{buildroot}%{_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} %if %{with gold}
# Add symlink to lto plugin in the binutils plugin directory. # Add symlink to lto plugin in the binutils plugin directory.
@ -464,14 +450,6 @@ for f in %{buildroot}/%{install_bindir}/*; do
ln -s ../../%{install_bindir}/$filename %{buildroot}/%{_bindir}/$filename%{exec_suffix} ln -s ../../%{install_bindir}/$filename %{buildroot}/%{_bindir}/$filename%{exec_suffix}
done 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 # Create ld.so.conf.d entry
mkdir -p %{buildroot}/etc/ld.so.conf.d mkdir -p %{buildroot}/etc/ld.so.conf.d
cat >> %{buildroot}/etc/ld.so.conf.d/%{name}-%{_arch}.conf << EOF cat >> %{buildroot}/etc/ld.so.conf.d/%{name}-%{_arch}.conf << EOF
@ -485,9 +463,6 @@ for f in %{build_install_prefix}/share/man/man1/*; do
mv $f %{buildroot}%{_mandir}/man1/$filename%{exec_suffix}.1 mv $f %{buildroot}%{_mandir}/man1/$filename%{exec_suffix}.1
done done
# Remove opt-viewer, since this is just a compatibility package.
rm -Rf %{build_install_prefix}/share/opt-viewer
%endif %endif
# llvm-config special casing. llvm-config is managed by update-alternatives. # llvm-config special casing. llvm-config is managed by update-alternatives.
@ -520,7 +495,6 @@ mkdir -p %{buildroot}%{pkg_datadir}/llvm/cmake
cp -Rv ../cmake/* %{buildroot}%{pkg_datadir}/llvm/cmake cp -Rv ../cmake/* %{buildroot}%{pkg_datadir}/llvm/cmake
%check %check
# non reproducible errors # non reproducible errors
rm test/tools/dsymutil/X86/swift-interface.test rm test/tools/dsymutil/X86/swift-interface.test
@ -529,19 +503,45 @@ rm test/tools/dsymutil/X86/swift-interface.test
LD_LIBRARY_PATH=%{buildroot}/%{install_libdir} %{__ninja} check-all -C %{_vpath_builddir} LD_LIBRARY_PATH=%{buildroot}/%{install_libdir} %{__ninja} check-all -C %{_vpath_builddir}
%endif %endif
%ldconfig_scriptlets libs %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
%post devel %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} %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 %endif
%postun devel %postun devel
if [ $1 -eq 0 ]; then if [ $1 -eq 0 ]; then
%{_sbindir}/update-alternatives --remove llvm-config%{exec_suffix} %{install_bindir}/llvm-config%{exec_suffix}-%{__isa_bits} /usr/sbin/update-alternatives --remove llvm-config%{exec_suffix} %{install_bindir}/llvm-config%{exec_suffix}-%{__isa_bits}
fi
%if %{without compat_build} %if %{without compat_build}
%{_sbindir}/update-alternatives --remove llvm-config-%{maj_ver} %{install_bindir}/llvm-config%{exec_suffix}-%{__isa_bits} # 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 %endif
fi fi
@ -549,45 +549,41 @@ fi
%license LICENSE.TXT %license LICENSE.TXT
%exclude %{_mandir}/man1/llvm-config* %exclude %{_mandir}/man1/llvm-config*
%{_mandir}/man1/* %{_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 %{_bindir}/llvm-config%{exec_suffix}
%exclude %{install_bindir}/llvm-config%{exec_suffix}-%{__isa_bits} %exclude %{install_bindir}/llvm-config%{exec_suffix}-%{__isa_bits}
%if %{without compat_build}
%exclude %{_bindir}/llvm-config-%{maj_ver} %exclude %{_bindir}/llvm-config-%{maj_ver}
%exclude %{install_bindir}/llvm-config-%{maj_ver}-%{__isa_bits} %exclude %{install_bindir}/llvm-config-%{maj_ver}-%{__isa_bits}
%exclude %{_bindir}/not %exclude %{install_bindir}/not
%exclude %{_bindir}/count %exclude %{install_bindir}/count
%exclude %{_bindir}/yaml-bench %exclude %{install_bindir}/yaml-bench
%exclude %{_bindir}/lli-child-target %exclude %{install_bindir}/lli-child-target
%exclude %{_bindir}/llvm-isel-fuzzer %exclude %{install_bindir}/llvm-isel-fuzzer
%exclude %{_bindir}/llvm-opt-fuzzer %exclude %{install_bindir}/llvm-opt-fuzzer
%{_datadir}/opt-viewer %{pkg_datadir}/opt-viewer
%else
%{install_bindir}
%endif
%files libs %files libs
%license LICENSE.TXT %license LICENSE.TXT
%{install_libdir}/libLLVM-%{maj_ver}%{?llvm_snapshot_version_suffix:%{llvm_snapshot_version_suffix}}.so %{install_libdir}/libLLVM-%{maj_ver}%{?llvm_snapshot_version_suffix:%{llvm_snapshot_version_suffix}}.so
%if %{without compat_build}
%if %{with gold} %if %{with gold}
%{_libdir}/LLVMgold.so %{install_libdir}/LLVMgold.so
%if %{without compat_build}
%{_libdir}/bfd-plugins/LLVMgold.so %{_libdir}/bfd-plugins/LLVMgold.so
%endif %endif
%{_libdir}/libLLVM-%{maj_ver}.%{min_ver}*.so
%{_libdir}/libLTO.so*
%else
%config(noreplace) /etc/ld.so.conf.d/%{name}-%{_arch}.conf
%if %{with gold}
%{_libdir}/%{name}/lib/LLVMgold.so
%endif %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* %{install_libdir}/libLTO.so*
%exclude %{install_libdir}/libLTO.so
%endif
%{install_libdir}/libRemarks.so* %{install_libdir}/libRemarks.so*
%if %{with compat_build}
%config(noreplace) /etc/ld.so.conf.d/%{name}-%{_arch}.conf
%endif
%files devel %files devel
%license LICENSE.TXT %license LICENSE.TXT
@ -600,14 +596,8 @@ fi
%{install_includedir}/llvm-c %{install_includedir}/llvm-c
%{install_libdir}/libLLVM.so %{install_libdir}/libLLVM.so
%{install_libdir}/cmake/llvm %{install_libdir}/cmake/llvm
%if %{without compat_build}
%{install_bindir}/llvm-config-%{maj_ver}-%{__isa_bits} %{install_bindir}/llvm-config-%{maj_ver}-%{__isa_bits}
%ghost %{_bindir}/llvm-config-%{maj_ver} %ghost %{_bindir}/llvm-config-%{maj_ver}
%else
%{pkg_includedir}/llvm
%{pkg_includedir}/llvm-c
%{install_libdir}/libLTO.so
%endif
%files doc %files doc
%license LICENSE.TXT %license LICENSE.TXT
@ -616,27 +606,23 @@ fi
%files static %files static
%license LICENSE.TXT %license LICENSE.TXT
%{install_libdir}/*.a %{install_libdir}/*.a
%if %{without compat_build}
%exclude %{install_libdir}/libLLVMTestingSupport.a %exclude %{install_libdir}/libLLVMTestingSupport.a
%exclude %{install_libdir}/libLLVMTestingAnnotations.a %exclude %{install_libdir}/libLLVMTestingAnnotations.a
%exclude %{install_libdir}/libllvm_gtest.a %exclude %{install_libdir}/libllvm_gtest.a
%exclude %{install_libdir}/libllvm_gtest_main.a %exclude %{install_libdir}/libllvm_gtest_main.a
%endif
%files cmake-utils %files cmake-utils
%license LICENSE.TXT %license LICENSE.TXT
%{pkg_datadir}/llvm/cmake %{pkg_datadir}/llvm/cmake
%if %{without compat_build}
%files test %files test
%license LICENSE.TXT %license LICENSE.TXT
%{_bindir}/not %{install_bindir}/not
%{_bindir}/count %{install_bindir}/count
%{_bindir}/yaml-bench %{install_bindir}/yaml-bench
%{_bindir}/lli-child-target %{install_bindir}/lli-child-target
%{_bindir}/llvm-isel-fuzzer %{install_bindir}/llvm-isel-fuzzer
%{_bindir}/llvm-opt-fuzzer %{install_bindir}/llvm-opt-fuzzer
%files googletest %files googletest
%license LICENSE.TXT %license LICENSE.TXT
@ -652,9 +638,10 @@ fi
%license LICENSE.TXT %license LICENSE.TXT
%endif %endif
%endif
%changelog %changelog
* Thu Mar 21 2024 Tom Stellard <tstellar@redhat.com> - 18.1.2-1
- 18.1.2 Release
* Fri Feb 02 2024 Nikita Popov <npopov@redhat.com> - 17.0.6-2 * Fri Feb 02 2024 Nikita Popov <npopov@redhat.com> - 17.0.6-2
- Fix crash with -fzero-call-used-regs (RHEL-23865) - Fix crash with -fzero-call-used-regs (RHEL-23865)

6
sources Normal file
View File

@ -0,0 +1,6 @@
SHA512 (llvm-18.1.2.src.tar.xz) = 7cc429e21685b2b6123dfbbdb848d9ca2091acef4d0ad52a28054af06a228aa489551305a072692bb634b34b5ceb7373266ee973dc306a71b9b339fe05a77c25
SHA512 (llvm-18.1.2.src.tar.xz.sig) = 8605109d6db1e88ea3a8a53e1288f77026392a41252fa4a84ef3ec817cc659a391c1795b39f258a5db49fac05adf5c6285ebac51979a8b42e72599ac55e4c0b3
SHA512 (cmake-18.1.2.src.tar.xz) = 18df1b6d334757bc9c1c208f90a800d17905444055b49cb231cf80721b5e55f97d01d0102c931d278a138927ae64e6cb53d38dbc9bf93dea5b32c8a6a3f51d05
SHA512 (cmake-18.1.2.src.tar.xz.sig) = afb10d0da43e51e6a403860d19de2bd906d335fcb8ce97fa7fd457b940aa5c166f7f6d99fbde5ea00515ca11be9d0f6cb02db3e3dae5c60ba8d84cb0fe528a93
SHA512 (third-party-18.1.2.src.tar.xz) = 2378b4eb79701ead30b10d95f7f9ae632c5a1e83c2149ca687afeb9f80c2e8b4aeae12ebe431f41652fb9b8ea058c3ed1bad6716a2914056de94cd55d90cf680
SHA512 (third-party-18.1.2.src.tar.xz.sig) = 379c6f98a064a46cc47c8049ff43c50193f140bbfe605c1146117ae4919abb10824674fadf45e71fff1e46478beaf5b48eafbf3a100d715691db06aab6c28659

50
tests/build-gating.fmf Normal file
View File

@ -0,0 +1,50 @@
#
# Build/PR gating tests for *LLVM 13*
#
# Imports and runs tests provided by Fedora LLVM git for the matching LLVM version.
#
# NOTE: *always* keep this file in sync with upstream, i.e. Fedora. Since we cannot "discover" a plan,
# we must duplicate at least some part of upstream plan setup, like `adjust` or `provision`. Not necessarily
# all steps, btu if we do need some of them here, let's focus on making changes in upstream first, to preserve
# one source of truth. Once TMT learns to include whole plans, we could drop the copied content from here.
#
summary: LLVM tests for build/PR gating
adjust:
- because: "Plan to be ran when either executed locally, or executed by CI system to gate a build or PR."
when: >-
trigger is defined
and trigger != commit
and trigger != build
enabled: false
# Unfortunatelly, TMT does not support more declarative approach, we need to run commands on our own.
- because: "On RHEL, CRB must be enabled to provide rarer packages"
when: >-
distro == rhel-9
or distro == rhel-8
prepare+:
- name: Enable CRB
how: shell
script: dnf config-manager --set-enabled rhel-CRB
- because: "On RHEL, CRB must be enabled to provide rarer packages"
when: >-
distro == centos
prepare+:
- name: Enable CRB
how: shell
script: dnf config-manager --set-enabled crb
discover:
- name: "Upstream LLVM tests for build/PR gating"
how: fmf
url: https://src.fedoraproject.org/rpms/llvm.git
ref: rawhide
execute:
how: tmt
provision:
hardware:
memory: ">= 4 GiB"