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