diff --git a/.gitignore b/.gitignore index d6c9690..d0ca7b8 100644 --- a/.gitignore +++ b/.gitignore @@ -63,3 +63,7 @@ /clang-tools-extra-8.0.0rc4.src.tar.xz /cfe-8.0.0.src.tar.xz /clang-tools-extra-8.0.0.src.tar.xz +/cfe-9.0.0rc2.src.tar.xz +/clang-tools-extra-9.0.0rc2.src.tar.xz +/cfe-9.0.0rc3.src.tar.xz +/clang-tools-extra-9.0.0rc3.src.tar.xz diff --git a/0001-Fix-uninitialized-value-in-ABIArgInfo.patch b/0001-Fix-uninitialized-value-in-ABIArgInfo.patch index 9755200..6291203 100644 --- a/0001-Fix-uninitialized-value-in-ABIArgInfo.patch +++ b/0001-Fix-uninitialized-value-in-ABIArgInfo.patch @@ -1,4 +1,4 @@ -From 565b9633ee68b311c1a954022869d9e99fee7286 Mon Sep 17 00:00:00 2001 +From bae24f2020f7dc9db372c7e3f38d77fc5fa320d0 Mon Sep 17 00:00:00 2001 From: serge-sans-paille Date: Fri, 1 Feb 2019 06:39:13 +0000 Subject: [PATCH] Fix uninitialized value in ABIArgInfo @@ -6,33 +6,32 @@ Subject: [PATCH] Fix uninitialized value in ABIArgInfo GCC-9 takes advantage of this uninitialized values to optimize stuff, which ends up in failing validation when compiling clang. --- - include/clang/CodeGen/CGFunctionInfo.h | 11 +++++------ - 1 file changed, 5 insertions(+), 6 deletions(-) + clang/include/clang/CodeGen/CGFunctionInfo.h | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) -diff --git a/include/clang/CodeGen/CGFunctionInfo.h b/include/clang/CodeGen/CGFunctionInfo.h -index cf64e9f3ee..131eb38393 100644 ---- a/include/clang/CodeGen/CGFunctionInfo.h -+++ b/include/clang/CodeGen/CGFunctionInfo.h -@@ -112,14 +112,13 @@ private: +diff --git a/clang/include/clang/CodeGen/CGFunctionInfo.h b/clang/include/clang/CodeGen/CGFunctionInfo.h +index 1f81072..caf7105 100644 +--- a/clang/include/clang/CodeGen/CGFunctionInfo.h ++++ b/clang/include/clang/CodeGen/CGFunctionInfo.h +@@ -110,13 +110,13 @@ private: } ABIArgInfo(Kind K) -- : TheKind(K), PaddingInReg(false), InReg(false), SuppressSRet(false) { +- : TheKind(K), PaddingInReg(false), InReg(false) { - } + : TypeData(nullptr), PaddingType(nullptr), DirectOffset(0), + TheKind(K), PaddingInReg(false), InAllocaSRet(false), IndirectByVal(false), + IndirectRealign(false), SRetAfterThis(false), InReg(false), -+ CanBeFlattened(false), SignExt(false), SuppressSRet(false) {} ++ CanBeFlattened(false), SignExt(false) {} public: - ABIArgInfo() - : TypeData(nullptr), PaddingType(nullptr), DirectOffset(0), -- TheKind(Direct), PaddingInReg(false), InReg(false), -- SuppressSRet(false) {} +- TheKind(Direct), PaddingInReg(false), InReg(false) {} + ABIArgInfo() : ABIArgInfo(Direct) {} static ABIArgInfo getDirect(llvm::Type *T = nullptr, unsigned Offset = 0, llvm::Type *Padding = nullptr, -- -2.19.2 +1.8.3.1 diff --git a/clang.spec b/clang.spec index 34a40da..19aa71a 100644 --- a/clang.spec +++ b/clang.spec @@ -1,15 +1,16 @@ %global compat_build 0 -%global maj_ver 8 +%global maj_ver 9 %global min_ver 0 %global patch_ver 0 -#%%global rc_ver 4 -%global baserelease 4 +%global rc_ver 3 +%global baserelease 0.1 %global clang_tools_binaries \ %{_bindir}/clangd \ %{_bindir}/clang-apply-replacements \ %{_bindir}/clang-change-namespace \ + %{_bindir}/clang-doc \ %{_bindir}/clang-include-fixer \ %{_bindir}/clang-query \ %{_bindir}/clang-refactor \ @@ -29,6 +30,7 @@ %{_bindir}/clang-format \ %{_bindir}/clang-import-test \ %{_bindir}/clang-offload-bundler \ + %{_bindir}/clang-scan-deps \ %{_bindir}/diagtool \ %{_bindir}/hmaptool @@ -57,6 +59,11 @@ %global build_install_prefix %{buildroot}%{install_prefix} +%ifarch ppc64le +# Too many threads on ppc64 systems causes OOM errors. +%global _smp_mflags -j8 +%endif + %global clang_srcdir cfe-%{version}%{?rc_ver:rc%{rc_ver}}.src %global clang_tools_srcdir clang-tools-extra-%{version}%{?rc_ver:rc%{rc_ver}}.src @@ -75,9 +82,7 @@ Source1: http://%{?rc_ver:pre}releases.llvm.org/%{version}/%{?rc_ver:rc%{rc_ver} Patch4: 0002-gtest-reorg.patch Patch9: 0001-Fix-uninitialized-value-in-ABIArgInfo.patch Patch11: 0001-ToolChain-Add-lgcc_s-to-the-linker-flags-when-using-.patch -Patch12: 0001-Fix-isInSystemMacro-to-handle-pasted-macros.patch -Patch13: 0002-Format-isInSystemMacro-after-D55782.patch -Patch14: 0003-Fix-isInSystemMacro-in-presence-of-macro-and-pasted-.patch +Patch12: 0001-Fix-Driver-modules.cpp-test-to-work-when-build-direc.patch BuildRequires: gcc BuildRequires: gcc-c++ @@ -213,16 +218,14 @@ Requires: python3 pathfix.py -i %{__python3} -pn \ clang-tidy/tool/*.py \ - include-fixer/find-all-symbols/tool/run-find-all-symbols.py + clang-include-fixer/find-all-symbols/tool/run-find-all-symbols.py %setup -q -n %{clang_srcdir} %patch4 -p1 -b .gtest -%patch9 -p1 -b .abi-arginfo +%patch9 -p2 -b .abi-arginfo %patch11 -p1 -b .libcxx-fix -%patch12 -p1 -b .double-promotion-0 -%patch13 -p1 -b .double-promotion-1 -%patch14 -p1 -b .double-promotion-2 +%patch12 -p2 -b .module-test-fix mv ../%{clang_tools_srcdir} tools/extra @@ -249,13 +252,20 @@ cd _build %global optflags %(echo %{optflags} | sed 's/-g /-g1 /') %endif +# -DCMAKE_INSTALL_RPATH=";" is a workaround for llvm manually setting the +# rpath of libraries and binaries. llvm will skip the manual setting +# if CAMKE_INSTALL_RPATH is set to a value, but cmake interprets this value +# as nothing, so it sets the rpath to "" when installing. %cmake .. -G Ninja \ -DLLVM_PARALLEL_LINK_JOBS=1 \ -DLLVM_LINK_LLVM_DYLIB:BOOL=ON \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DPYTHON_EXECUTABLE=%{__python3} \ - -DCMAKE_SKIP_RPATH:BOOL=ON \ - -DCMAKE_INSTALL_RPATH:BOOL=OFF \ + -DCMAKE_INSTALL_RPATH:BOOL=";" \ +%ifarch s390 s390x %{arm} %ix86 + -DCMAKE_C_FLAGS_RELWITHDEBINFO="%{optflags} -DNDEBUG" \ + -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="%{optflags} -DNDEBUG" \ +%endif %if 0%{?compat_build} -DLLVM_CONFIG:FILEPATH=%{_bindir}/llvm-config-%{maj_ver}.%{min_ver}-%{__isa_bits} \ -DCMAKE_INSTALL_PREFIX=%{install_prefix} \ @@ -285,15 +295,16 @@ cd _build -DLLVM_ENABLE_RTTI=ON \ -DLLVM_BUILD_DOCS=ON \ -DLLVM_ENABLE_SPHINX=ON \ + -DCLANG_LINK_CLANG_DYLIB=ON \ -DSPHINX_WARNINGS_AS_ERRORS=OFF \ \ -DCLANG_BUILD_EXAMPLES:BOOL=OFF \ -DCLANG_REPOSITORY_STRING="%{?fedora:Fedora}%{?rhel:Red Hat} %{version}-%{release}" -ninja -v +%ninja_build %install -DESTDIR=%{buildroot} ninja install -C _build +%ninja_install -C _build %if 0%{?compat_build} @@ -351,11 +362,12 @@ chmod u-x %{buildroot}%{_mandir}/man1/scan-build.1* %if !0%{?compat_build} # requires lit.py from LLVM utilities # FIXME: Fix failing ARM tests, s390x i686 and ppc64le tests +# FIXME: Ignore test failures until rhbz#1715016 is fixed. LD_LIBRARY_PATH=%{buildroot}%{_libdir} ninja check-all -C _build || \ %ifarch s390x i686 ppc64le %{arm} : %else -false +: %endif %endif @@ -429,6 +441,9 @@ false %endif %changelog +* Thu Aug 22 2019 Tom Stellard - 9.0.0-0.1.rc3 +- 9.0.0 Release candidate 3 + * Tue Aug 20 2019 sguelton@redhat.com - 8.0.0-4 - Rebuilt for Python 3.8 diff --git a/sources b/sources index 76f4e9b..cb02107 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (cfe-8.0.0.src.tar.xz) = 98e540222719716985e5d8439116e47469cb01201ea91d1da7e46cb6633da099688d9352c3b65e5c5f660cbbae353b3d79bb803fc66b3be663f2b04b1feed1c3 -SHA512 (clang-tools-extra-8.0.0.src.tar.xz) = 434e4cb7b76f89b0a0af25f05f32f2f2e8edb9e9f14547be845df75f5032c1d9dbf475be408bb989c476ec667c10af54a15d40e42559b05e52d24c5fd416b517 +SHA512 (cfe-9.0.0rc3.src.tar.xz) = cc217c6dd9ad9b0ba07dcfc0548c28c40ce68104b7d998cd783f76d0e39d356ff4fb6ec139e776965f7c461ccddcddf589d4a42ca433da62c5955244493926f6 +SHA512 (clang-tools-extra-9.0.0rc3.src.tar.xz) = f5d288ab07f19dfb0014134a40c5c615a5f160973b8410900828e20116bd01702a041adfd600dcffee5ad2a3679f72ef5410cde20e5611925aaa39fbfc9e2094