parent
984237d076
commit
f65bb248dd
@ -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
|
||||
|
@ -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
|
||||
|
239
llvm.spec
239
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 <kkleine@redhat.com> - 18.1.6-1
|
||||
- Update to 18.1.6
|
||||
|
||||
* Fri Feb 02 2024 Timm Bäder <tbaeder@redhat.com> - 17.0.6-5
|
||||
- Backport a patch for RHEL-23638
|
||||
|
||||
|
14
sources
14
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
|
||||
|
6
tests/README.md
Normal file
6
tests/README.md
Normal file
@ -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
|
Loading…
Reference in New Issue
Block a user