diff --git a/.gitignore b/.gitignore
index 2c77403..d368b74 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
-SOURCES/llvm-13.0.1.src.tar.xz
+SOURCES/llvm-14.0.6.src.tar.xz
+SOURCES/tstellar-gpg-key.asc
diff --git a/.llvm.metadata b/.llvm.metadata
index 5eb43c3..0c6a26d 100644
--- a/.llvm.metadata
+++ b/.llvm.metadata
@@ -1 +1,2 @@
-8e50e3e47b6a14a0848862c574fb0007db212482 SOURCES/llvm-13.0.1.src.tar.xz
+975020d4f7164d84a89f0f9b2153dd870d06e02d SOURCES/llvm-14.0.6.src.tar.xz
+b8d2648a01d36ed0186fd2c5af325fd28797f9a0 SOURCES/tstellar-gpg-key.asc
diff --git a/SOURCES/0001-XFAIL-missing-abstract-variable.ll-test-on-ppc64le.patch b/SOURCES/0001-XFAIL-missing-abstract-variable.ll-test-on-ppc64le.patch
index 1866a66..4c4a9cf 100644
--- a/SOURCES/0001-XFAIL-missing-abstract-variable.ll-test-on-ppc64le.patch
+++ b/SOURCES/0001-XFAIL-missing-abstract-variable.ll-test-on-ppc64le.patch
@@ -23,8 +23,8 @@ index bd0de60268b6..cc5d56b0c512 100644
  ; powerpc64 (and on x86_64 at at least -O2). Presumably this is a SelectionDAG
  ; issue.
  ; FIXME: arm64 is an alias for aarch64 on macs, apparently?
--; XFAIL: powerpc64, aarch64, arm64, hexagon
-+; XFAIL: powerpc64, aarch64, arm64, hexagon, ppc64le
+-; XFAIL: powerpc64, aarch64, arm64, hexagon, riscv
++; XFAIL: powerpc64, aarch64, arm64, hexagon, riscv, ppc64le
  
  ; Build from the following source with clang -O2.
  
diff --git a/SOURCES/llvm-13.0.1.src.tar.xz.sig b/SOURCES/llvm-13.0.1.src.tar.xz.sig
deleted file mode 100644
index 2cba778..0000000
Binary files a/SOURCES/llvm-13.0.1.src.tar.xz.sig and /dev/null differ
diff --git a/SOURCES/llvm-14.0.6.src.tar.xz.sig b/SOURCES/llvm-14.0.6.src.tar.xz.sig
new file mode 100644
index 0000000..5629b21
Binary files /dev/null and b/SOURCES/llvm-14.0.6.src.tar.xz.sig differ
diff --git a/SPECS/llvm.spec b/SPECS/llvm.spec
index e5e2870..c7f55b4 100644
--- a/SPECS/llvm.spec
+++ b/SPECS/llvm.spec
@@ -1,10 +1,9 @@
-# Components enabled if supported by target architecture:
-%define gold_arches %{ix86} x86_64 %{arm} aarch64 %{power64}
-%if 0%{?rhel} > 8 || 0%{?fedora}
-# FIXME: Why is this disabled on RHEL <= 8
-%global gold_arches %{gold_arches} s390x
-%endif
+# We are building with clang for faster/lower memory LTO builds.
+# See https://docs.fedoraproject.org/en-US/packaging-guidelines/#_compiler_macros
+%global toolchain clang
 
+# Components enabled if supported by target architecture:
+%define gold_arches %{ix86} x86_64 %{arm} aarch64 %{power64} s390x
 %ifarch %{gold_arches}
   %bcond_without gold
 %else
@@ -17,9 +16,9 @@
 %global llvm_libdir %{_libdir}/%{name}
 %global build_llvm_libdir %{buildroot}%{llvm_libdir}
 #global rc_ver 4
-%global maj_ver 13
+%global maj_ver 14
 %global min_ver 0
-%global patch_ver 1
+%global patch_ver 6
 %if !%{maj_ver} && 0%{?rc_ver}
 %global abi_revision 2
 %endif
@@ -83,6 +82,7 @@ License:	NCSA
 URL:		http://llvm.org
 Source0:	https://github.com/llvm/llvm-project/releases/download/llvmorg-%{maj_ver}.%{min_ver}.%{patch_ver}%{?rc_ver:-rc%{rc_ver}}/%{llvm_srcdir}.tar.xz
 Source1:	https://github.com/llvm/llvm-project/releases/download/llvmorg-%{maj_ver}.%{min_ver}.%{patch_ver}%{?rc_ver:-rc%{rc_ver}}/%{llvm_srcdir}.tar.xz.sig
+Source2:	tstellar-gpg-key.asc
 
 %if %{without compat_build}
 Source3:	run-lit-tests
@@ -99,19 +99,15 @@ Patch101:      0001-Deactivate-markdown-doc.patch
 
 BuildRequires:	gcc
 BuildRequires:	gcc-c++
+BuildRequires:	clang
 BuildRequires:	cmake
 BuildRequires:	ninja-build
 BuildRequires:	zlib-devel
 BuildRequires:	libffi-devel
 BuildRequires:	ncurses-devel
+BuildRequires:	python3-psutil
 BuildRequires:	python3-sphinx
-
-%if !0%{?rhel}
-BuildRequires: python3-recommonmark
-%else
-BuildRequires: pandoc
-%endif
-
+BuildRequires:	pandoc
 BuildRequires:	multilib-rpm-config
 %if %{with gold}
 BuildRequires:	binutils-devel
@@ -128,6 +124,10 @@ BuildRequires:	libedit-devel
 BuildRequires:	python3-devel
 BuildRequires:	python3-setuptools
 
+# For origin certification
+BuildRequires:	gnupg2
+
+
 Requires:	%{name}-libs%{?_isa} = %{version}-%{release}
 
 Provides:	llvm(major) = %{maj_ver}
@@ -212,9 +212,10 @@ LLVM's modified googletest sources.
 %endif
 
 %prep
+%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'
 %autosetup -n %{llvm_srcdir} -p2
 
-pathfix.py -i %{__python3} -pn \
+%py3_shebang_fix \
 	test/BugPoint/compile-custom.ll.py \
 	tools/opt-viewer/*.py \
 	utils/update_cc_test_checks.py
@@ -228,7 +229,14 @@ find -name '*.md' | while read md; do sed -r -e 's/^( )*\* /\n\1\* /' ${md} | pa
 mkdir -p %{_vpath_builddir}
 cd %{_vpath_builddir}
 
-%ifarch s390 %{arm} %ix86
+%ifarch s390 s390x
+# Fails with "exceeded PCRE's backtracking limit"
+%global _lto_cflags %nil
+%else
+%global _lto_cflags -flto=thin
+%endif
+
+%ifarch s390 s390x %{arm} %ix86
 # Decrease debuginfo verbosity to reduce memory consumption during final library linking
 %global optflags %(echo %{optflags} | sed 's/-g /-g1 /')
 %endif
@@ -273,6 +281,7 @@ export LDFLAGS="${LDFLAGS} -Wl,--build-id=md5"
 	\
 	-DLLVM_INCLUDE_TESTS:BOOL=ON \
 	-DLLVM_BUILD_TESTS:BOOL=ON \
+	-DLLVM_LIT_ARGS=-v \
 	\
 	-DLLVM_INCLUDE_EXAMPLES:BOOL=ON \
 	-DLLVM_BUILD_EXAMPLES:BOOL=OFF \
@@ -295,15 +304,17 @@ export LDFLAGS="${LDFLAGS} -Wl,--build-id=md5"
 	-DLLVM_VERSION_SUFFIX='' \
 %endif
 	-DLLVM_BUILD_LLVM_DYLIB:BOOL=ON \
-	-DLLVM_DYLIB_EXPORT_ALL:BOOL=ON \
 	-DLLVM_LINK_LLVM_DYLIB:BOOL=ON \
 	-DLLVM_BUILD_EXTERNAL_COMPILER_RT:BOOL=ON \
 	-DLLVM_INSTALL_TOOLCHAIN_ONLY:BOOL=OFF \
+	%{?abi_revision:-DLLVM_ABI_REVISION=%{abi_revision}} \
 	\
+	-DLLVM_DEFAULT_TARGET_TRIPLE=%{llvm_triple} \
 	-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=%{_bindir}/sphinx-build-3 \
+	-DLLVM_INCLUDE_BENCHMARKS=OFF
 
 # 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
@@ -423,9 +434,16 @@ rm %{buildroot}%{_bindir}/llvm-config%{exec_suffix}
 # ghost presence
 touch %{buildroot}%{_bindir}/llvm-config%{exec_suffix}
 
+%if %{without compat_build}
+cp -Rv ../cmake/Modules/* %{buildroot}%{_libdir}/cmake/llvm
+%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
@@ -439,6 +457,8 @@ rm test/tools/dsymutil/X86/swift-interface.test
 LD_LIBRARY_PATH=%{buildroot}/%{pkg_libdir}  %{__ninja} check-all -C %{_vpath_builddir}
 %endif
 
+%endif
+
 %ldconfig_scriptlets libs
 
 %post devel
@@ -556,6 +576,18 @@ fi
 %endif
 
 %changelog
+* Mon Jun 27 2022 Tom Stellard <tstellar@redhat.com> - 14.0.6-1
+- 14.0.6 Release
+
+* Mon May 23 2022 Timm Bäder <tbaeder@redhat.com> - 14.0.0-3
+- Build gold plugin on s390x as well
+
+* Fri Apr 29 2022 Timm Bäder <tbaeder@redhat.com> - 14.0.0-2
+- Remove llvm-cmake-devel package again
+
+* Thu Apr 07 2022 Timm Bäder <tbaeder@redhat.com> - 14.0.0-1
+- Update to 14.0.0
+
 * Wed Feb 02 2022 Tom Stellard <tstellar@redhat.com> - 13.0.1-1
 - 13.0.1 Release