From 0b2c3e74257d9d3873b6a906d1a8aeeb02ef281b Mon Sep 17 00:00:00 2001 From: eabdullin Date: Wed, 15 Nov 2023 02:21:55 +0000 Subject: [PATCH] import UBI clang-16.0.6-2.module+el8.9.0+19521+190d7aba --- .clang.metadata | 9 +- .gitignore | 9 +- ...H-clang-Reorganize-gtest-integration.patch | 42 ------- SOURCES/0001-PowerPC-clang-Fix-triple.patch | 26 ++++ SOURCES/0001-Work-around-gcc-miscompile.patch | 33 ------ ...a-Make-test-dependency-on-LLVMHello-.patch | 5 +- ...ed-libraries-to-customize-the-soname.patch | 39 ------ ...-funwind-tables-the-default-on-all-a.patch | 29 ----- ...wind-tables-the-default-on-all-archs.patch | 28 +++++ ...ATCH-clang-Produce-DWARF4-by-default.patch | 45 +++++-- SOURCES/D138472.diff | 53 +++++++++ SOURCES/D141581.diff | 25 ++++ SOURCES/clang-15.0.7.src.tar.xz.sig | Bin 566 -> 0 bytes .../clang-tools-extra-15.0.7.src.tar.xz.sig | Bin 566 -> 0 bytes SOURCES/fix-ieee128-cross.diff | 16 +++ SOURCES/macros.clang | 2 +- SOURCES/release-keys.asc | 104 ++++++++++++++++ SPECS/clang.spec | 111 +++++++++++------- 18 files changed, 373 insertions(+), 203 deletions(-) delete mode 100644 SOURCES/0001-PATCH-clang-Reorganize-gtest-integration.patch create mode 100644 SOURCES/0001-PowerPC-clang-Fix-triple.patch delete mode 100644 SOURCES/0001-Work-around-gcc-miscompile.patch delete mode 100644 SOURCES/0001-cmake-Allow-shared-libraries-to-customize-the-soname.patch delete mode 100644 SOURCES/0002-PATCH-clang-Make-funwind-tables-the-default-on-all-a.patch create mode 100644 SOURCES/0003-PATCH-Make-funwind-tables-the-default-on-all-archs.patch create mode 100644 SOURCES/D138472.diff create mode 100644 SOURCES/D141581.diff delete mode 100644 SOURCES/clang-15.0.7.src.tar.xz.sig delete mode 100644 SOURCES/clang-tools-extra-15.0.7.src.tar.xz.sig create mode 100644 SOURCES/fix-ieee128-cross.diff create mode 100644 SOURCES/release-keys.asc diff --git a/.clang.metadata b/.clang.metadata index 47b73f1..035653a 100644 --- a/.clang.metadata +++ b/.clang.metadata @@ -1,3 +1,6 @@ -7b4d1188cce1ce4ea1cf2ea362fba685c4aca34d SOURCES/clang-15.0.7.src.tar.xz -752fe847136eff2dfbfcc8bbddfaa9319532d104 SOURCES/clang-tools-extra-15.0.7.src.tar.xz -347bdd5ee6d6b93c9644c268511815912c0fb2dc SOURCES/release-keys.asc +f005e3b6d41cf92c083d2a16960aaeb1a6e3c76c SOURCES/clang-16.0.6.src.tar.xz +bc19124e64c0ffe7ada3d4bad8aec42c0cd05f04 SOURCES/clang-16.0.6.src.tar.xz.sig +41c06d541cfcc126ddc344e7f162148f2ecf0461 SOURCES/clang-tools-extra-16.0.6.src.tar.xz +cc29485778a6c94ed98f3b2dfb754ef513535691 SOURCES/clang-tools-extra-16.0.6.src.tar.xz.sig +0de534cfef38697e115c3ae80634765f05e78e5b SOURCES/cmake-16.0.6.src.tar.xz +2db5c88fe9277bb0fa85f49b58e946e49ff235c2 SOURCES/cmake-16.0.6.src.tar.xz.sig diff --git a/.gitignore b/.gitignore index eb8253e..8a6c0cd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ -SOURCES/clang-15.0.7.src.tar.xz -SOURCES/clang-tools-extra-15.0.7.src.tar.xz -SOURCES/release-keys.asc +SOURCES/clang-16.0.6.src.tar.xz +SOURCES/clang-16.0.6.src.tar.xz.sig +SOURCES/clang-tools-extra-16.0.6.src.tar.xz +SOURCES/clang-tools-extra-16.0.6.src.tar.xz.sig +SOURCES/cmake-16.0.6.src.tar.xz +SOURCES/cmake-16.0.6.src.tar.xz.sig diff --git a/SOURCES/0001-PATCH-clang-Reorganize-gtest-integration.patch b/SOURCES/0001-PATCH-clang-Reorganize-gtest-integration.patch deleted file mode 100644 index e854f01..0000000 --- a/SOURCES/0001-PATCH-clang-Reorganize-gtest-integration.patch +++ /dev/null @@ -1,42 +0,0 @@ -From c6b921c8d833546946b70a8c2640032fd7c62461 Mon Sep 17 00:00:00 2001 -From: serge-sans-paille -Date: Thu, 25 Feb 2021 14:04:52 +0100 -Subject: [PATCH 1/6] [PATCH][clang] Reorganize gtest integration - ---- - clang/CMakeLists.txt | 12 +++++------- - 1 file changed, 5 insertions(+), 7 deletions(-) - -diff --git a/clang/CMakeLists.txt b/clang/CMakeLists.txt -index 9e74014..0185276 100644 ---- a/clang/CMakeLists.txt -+++ b/clang/CMakeLists.txt -@@ -153,12 +153,6 @@ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR ) - set(LLVM_UTILS_PROVIDED ON) - set(CLANG_TEST_DEPS FileCheck count not) - endif() -- set(UNITTEST_DIR ${LLVM_MAIN_SRC_DIR}/utils/unittest) -- if(EXISTS ${UNITTEST_DIR}/googletest/include/gtest/gtest.h -- AND NOT EXISTS ${LLVM_LIBRARY_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX} -- AND EXISTS ${UNITTEST_DIR}/CMakeLists.txt) -- add_subdirectory(${UNITTEST_DIR} utils/unittest) -- endif() - else() - # Seek installed Lit. - find_program(LLVM_LIT -@@ -537,7 +531,11 @@ endif() - - - if( CLANG_INCLUDE_TESTS ) -- if(EXISTS ${LLVM_MAIN_SRC_DIR}/utils/unittest/googletest/include/gtest/gtest.h) -+ set(UNITTEST_DIR ${LLVM_MAIN_SRC_DIR}/utils/unittest) -+ if(EXISTS ${UNITTEST_DIR}/googletest/include/gtest/gtest.h -+ AND NOT EXISTS ${LLVM_LIBRARY_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX} -+ AND EXISTS ${UNITTEST_DIR}/CMakeLists.txt) -+ add_subdirectory(${UNITTEST_DIR} utils/unittest) - add_subdirectory(unittests) - list(APPEND CLANG_TEST_DEPS ClangUnitTests) - list(APPEND CLANG_TEST_PARAMS --- -1.8.3.1 - diff --git a/SOURCES/0001-PowerPC-clang-Fix-triple.patch b/SOURCES/0001-PowerPC-clang-Fix-triple.patch new file mode 100644 index 0000000..6dd8060 --- /dev/null +++ b/SOURCES/0001-PowerPC-clang-Fix-triple.patch @@ -0,0 +1,26 @@ +From 701750a896a08d5841a7bc0d187bcddaa6c0f616 Mon Sep 17 00:00:00 2001 +From: Tulio Magno Quites Machado Filho +Date: Thu, 16 Mar 2023 17:22:24 -0300 +Subject: [PATCH] [PowerPC][clang] Fix triple + +Some Linux distributions use ppc64le instead of powerpc. +--- + clang/test/CodeGenCoroutines/pr56329.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/clang/test/CodeGenCoroutines/pr56329.cpp b/clang/test/CodeGenCoroutines/pr56329.cpp +index 31d4849af4e7..69e0f1d337cf 100644 +--- a/clang/test/CodeGenCoroutines/pr56329.cpp ++++ b/clang/test/CodeGenCoroutines/pr56329.cpp +@@ -2,7 +2,7 @@ + // + // RUN: %clang_cc1 -triple %itanium_abi_triple -std=c++20 %s -O3 -S -emit-llvm -o - | FileCheck %s + // This test is expected to fail on PowerPC. +-// XFAIL: target=powerpc{{.*}} ++// XFAIL: target={{(ppc|powerpc).*}} + + #include "Inputs/coroutine.h" + +-- +2.39.2 +- diff --git a/SOURCES/0001-Work-around-gcc-miscompile.patch b/SOURCES/0001-Work-around-gcc-miscompile.patch deleted file mode 100644 index 16c1467..0000000 --- a/SOURCES/0001-Work-around-gcc-miscompile.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 0f97b7209eed4a428171af6044fe7e0aaf81ee2a Mon Sep 17 00:00:00 2001 -From: Nikita Popov -Date: Thu, 3 Feb 2022 10:34:44 +0100 -Subject: [PATCH] Work around gcc miscompile - -This works around https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104334, -which miscompiles clang on s390x and ppc64le. The issue is already -fixed on the gcc side, but including this as a temporary workaround -to get a working build. ---- - clang/lib/Sema/DeclSpec.cpp | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/clang/lib/Sema/DeclSpec.cpp b/clang/lib/Sema/DeclSpec.cpp -index d4dc790c008a..77a1e6c32c6f 100644 ---- a/clang/lib/Sema/DeclSpec.cpp -+++ b/clang/lib/Sema/DeclSpec.cpp -@@ -1203,8 +1203,9 @@ void DeclSpec::Finish(Sema &S, const PrintingPolicy &Policy) { - } else if (TypeSpecType == TST_double) { - // vector long double and vector long long double are never allowed. - // vector double is OK for Power7 and later, and ZVector. -- if (getTypeSpecWidth() == TypeSpecifierWidth::Long || -- getTypeSpecWidth() == TypeSpecifierWidth::LongLong) -+ TypeSpecifierWidth TypeSpecWidth = getTypeSpecWidth(); -+ if (TypeSpecWidth == TypeSpecifierWidth::Long || -+ TypeSpecWidth == TypeSpecifierWidth::LongLong) - S.Diag(TSWRange.getBegin(), - diag::err_invalid_vector_long_double_decl_spec); - else if (!S.Context.getTargetInfo().hasFeature("vsx") && --- -2.34.1 - - diff --git a/SOURCES/0001-clang-tools-extra-Make-test-dependency-on-LLVMHello-.patch b/SOURCES/0001-clang-tools-extra-Make-test-dependency-on-LLVMHello-.patch index 8f30ef4..a0b8cb0 100644 --- a/SOURCES/0001-clang-tools-extra-Make-test-dependency-on-LLVMHello-.patch +++ b/SOURCES/0001-clang-tools-extra-Make-test-dependency-on-LLVMHello-.patch @@ -58,13 +58,16 @@ diff --git a/clang-tools-extra/test/lit.cfg.py b/clang-tools-extra/test/lit.cfg. index 9b99bfd93440..3fca9f25fb48 100644 --- a/clang-tools-extra/test/lit.cfg.py +++ b/clang-tools-extra/test/lit.cfg.py -@@ -59,3 +59,6 @@ config.substitutions.append( +@@ -59,6 +59,9 @@ config.substitutions.append( # Plugins (loadable modules) if config.has_plugins and config.llvm_plugin_ext: config.available_features.add('plugins') + +if config.has_llvm_hello: + config.available_features.add("llvm-hello") + + # It is not realistically possible to account for all options that could + # possibly be present in system and user configuration files, so disable diff --git a/clang-tools-extra/test/lit.site.cfg.py.in b/clang-tools-extra/test/lit.site.cfg.py.in index 4eb830a1baf1..6e5559348454 100644 --- a/clang-tools-extra/test/lit.site.cfg.py.in diff --git a/SOURCES/0001-cmake-Allow-shared-libraries-to-customize-the-soname.patch b/SOURCES/0001-cmake-Allow-shared-libraries-to-customize-the-soname.patch deleted file mode 100644 index e425475..0000000 --- a/SOURCES/0001-cmake-Allow-shared-libraries-to-customize-the-soname.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 3dc5722d5c7673a879f2b4680369d3ac8b6b64b6 Mon Sep 17 00:00:00 2001 -From: Tom Stellard -Date: Wed, 4 Aug 2021 14:05:38 -0700 -Subject: [PATCH] cmake: Allow shared libraries to customize the soname using - LLVM_ABI_REVISION - -The LLVM_ABI_REVISION variable is intended to be used for release -candidates which introduce an ABI change to a shared library. This -variable can be specified per library, so there is not one global value -for all of LLVM. - -For example, if we LLVM X.0.0-rc2 introduces an ABI change for a library -compared with LLVM X.0.0-rc1, then the LLVM_ABI_REVISION number for -library will be incremented by 1. - -In the main branch, LLVM_ABI_REVISION should always be 0, it is only -meant to be used in the release branch. - -Differential Revision: https://reviews.llvm.org/D105594 ---- - clang/tools/clang-shlib/CMakeLists.txt | 5 +++++ - 3 files changed, 19 insertions(+), 2 deletions(-) - -diff --git a/clang/tools/clang-shlib/CMakeLists.txt b/clang/tools/clang-shlib/CMakeLists.txt -index 9c1f8ea452b3..4d785924e4bb 100644 ---- a/clang/tools/clang-shlib/CMakeLists.txt -+++ b/clang/tools/clang-shlib/CMakeLists.txt -@@ -1,3 +1,8 @@ -+# In the main branch, LLVM_ABI_REVISION should always be 0. In the release -+# branches, this should be incremented before each release candidate every -+# time the ABI of libclang-cpp.so changes. -+set(LLVM_ABI_REVISION 0) -+ - # Building libclang-cpp.so fails if LLVM_ENABLE_PIC=Off - if (NOT LLVM_ENABLE_PIC) - return() --- -2.27.0 - diff --git a/SOURCES/0002-PATCH-clang-Make-funwind-tables-the-default-on-all-a.patch b/SOURCES/0002-PATCH-clang-Make-funwind-tables-the-default-on-all-a.patch deleted file mode 100644 index e6671f9..0000000 --- a/SOURCES/0002-PATCH-clang-Make-funwind-tables-the-default-on-all-a.patch +++ /dev/null @@ -1,29 +0,0 @@ -From c87abee7356b8fde81512ffceadd520776c465d2 Mon Sep 17 00:00:00 2001 -From: serge-sans-paille -Date: Thu, 25 Feb 2021 14:09:29 +0100 -Subject: [PATCH] [PATCH][clang] Make -funwind-tables the default on all archs - ---- - clang/lib/Driver/ToolChains/Gnu.cpp | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp -b/clang/lib/Driver/ToolChains/Gnu.cpp -index d0808d061c82..de9c9743cd38 100644 ---- a/clang/lib/Driver/ToolChains/Gnu.cpp -+++ b/clang/lib/Driver/ToolChains/Gnu.cpp -@@ -2701,6 +2701,11 @@ bool Generic_GCC::IsUnwindTablesDefault(const ArgList &Args) const { - case llvm::Triple::ppc64le: - case llvm::Triple::x86: - case llvm::Triple::x86_64: -+ -+ // Enable -funwind-tables on all architectures supported by Fedora: -+ // rhbz#1655546 -+ case llvm::Triple::systemz: -+ case llvm::Triple::arm: - return true; - default: - return false; --- -2.27.0 - diff --git a/SOURCES/0003-PATCH-Make-funwind-tables-the-default-on-all-archs.patch b/SOURCES/0003-PATCH-Make-funwind-tables-the-default-on-all-archs.patch new file mode 100644 index 0000000..ce920f9 --- /dev/null +++ b/SOURCES/0003-PATCH-Make-funwind-tables-the-default-on-all-archs.patch @@ -0,0 +1,28 @@ +From d95d3fbff661c0390072ed0bb4544d5e2aae5c9a Mon Sep 17 00:00:00 2001 +From: serge-sans-paille +Date: Thu, 25 Feb 2021 14:09:29 +0100 +Subject: [PATCH] Make -funwind-tables the default on all archs + +--- + clang/lib/Driver/ToolChains/Gnu.cpp | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp +index c8006f3d8412..6ed03adb7702 100644 +--- a/clang/lib/Driver/ToolChains/Gnu.cpp ++++ b/clang/lib/Driver/ToolChains/Gnu.cpp +@@ -2863,6 +2863,11 @@ Generic_GCC::getDefaultUnwindTableLevel(const ArgList &Args) const { + case llvm::Triple::ppc64le: + case llvm::Triple::x86: + case llvm::Triple::x86_64: ++ ++ // Enable -funwind-tables on all architectures supported by Fedora: ++ // rhbz#1655546 ++ case llvm::Triple::systemz: ++ case llvm::Triple::arm: + return UnwindTableLevel::Asynchronous; + default: + return UnwindTableLevel::None; +-- +2.39.1 + diff --git a/SOURCES/0010-PATCH-clang-Produce-DWARF4-by-default.patch b/SOURCES/0010-PATCH-clang-Produce-DWARF4-by-default.patch index 2d698c5..ea81f74 100644 --- a/SOURCES/0010-PATCH-clang-Produce-DWARF4-by-default.patch +++ b/SOURCES/0010-PATCH-clang-Produce-DWARF4-by-default.patch @@ -1,6 +1,6 @@ -From 1f68d73910ddee1beaf3582480b8a9738c941a43 Mon Sep 17 00:00:00 2001 +From 4ea62faaaac1aad0fe496cabe9674c809c91c49a Mon Sep 17 00:00:00 2001 From: Konrad Kleine -Date: Thu, 24 Mar 2022 09:44:21 +0100 +Date: Mon, 13 Feb 2023 17:11:00 -0300 Subject: [PATCH] Produce DWARF4 by default Have a look at the following commit to see when the move from DWARF 4 to 5 first happened upstream: @@ -9,18 +9,19 @@ https://github.com/llvm/llvm-project/commit/d3b26dea16108c427b19b5480c9edc76edf8 --- clang/include/clang/Driver/ToolChain.h | 2 +- clang/test/CodeGen/dwarf-version.c | 4 ++-- + clang/test/Driver/as-options.s | 4 ++-- clang/test/Driver/cl-options.c | 2 +- clang/test/Driver/clang-g-opts.c | 2 +- clang/test/Driver/ve-toolchain.c | 2 +- clang/test/Driver/ve-toolchain.cpp | 2 +- - 6 files changed, 7 insertions(+), 7 deletions(-) + 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/clang/include/clang/Driver/ToolChain.h b/clang/include/clang/Driver/ToolChain.h -index f20ab164531b..53c86ee82936 100644 +index f75f35dc9e65..a70ae2b17833 100644 --- a/clang/include/clang/Driver/ToolChain.h +++ b/clang/include/clang/Driver/ToolChain.h -@@ -535,7 +535,7 @@ public: - +@@ -547,7 +547,7 @@ public: + // Return the DWARF version to emit, in the absence of arguments // to the contrary. - virtual unsigned GetDefaultDwarfVersion() const { return 5; } @@ -43,19 +44,41 @@ index 0a6fa4768026..96f01749d0d8 100644 // The -isysroot is used as a hack to avoid LIT messing with the SDKROOT // environment variable which indirecty overrides the version in the target +diff --git a/clang/test/Driver/as-options.s b/clang/test/Driver/as-options.s +index 73d002c7ef7e..71d55f7fd537 100644 +--- a/clang/test/Driver/as-options.s ++++ b/clang/test/Driver/as-options.s +@@ -122,7 +122,7 @@ + // RUN: FileCheck --check-prefix=DEBUG %s + // RUN: %clang --target=aarch64-linux-gnu -fno-integrated-as -g0 -g %s -### 2>&1 | \ + // RUN: FileCheck --check-prefix=DEBUG %s +-// DEBUG: "-g" "-gdwarf-5" ++// DEBUG: "-g" "-gdwarf-4" + // RUN: %clang --target=aarch64-linux-gnu -fno-integrated-as -g -g0 %s -### 2>&1 | \ + // RUN: FileCheck --check-prefix=NODEBUG %s + // RUN: %clang --target=aarch64-linux-gnu -fno-integrated-as -gdwarf-5 -g0 %s -### 2>&1 | \ +@@ -141,7 +141,7 @@ + // RUN: %clang --target=aarch64-linux-gnu -fno-integrated-as -gdwarf-2 %s -### 2>&1 | \ + // RUN: FileCheck --check-prefix=GDWARF2 %s + // RUN: %clang --target=aarch64-linux-gnu -fno-integrated-as -gdwarf %s -### 2>&1 | \ +-// RUN: FileCheck --check-prefix=GDWARF5 %s ++// RUN: FileCheck --check-prefix=GDWARF4 %s + + // RUN: %clang --target=aarch64-linux-gnu -fno-integrated-as -gdwarf-5 %s -### 2>&1 | \ + // RUN: FileCheck --check-prefix=GDWARF5 %s diff --git a/clang/test/Driver/cl-options.c b/clang/test/Driver/cl-options.c -index a2e350a0a835..01889ba0bf9b 100644 +index 1d588bdfc1b0..1ad57aedc3a4 100644 --- a/clang/test/Driver/cl-options.c +++ b/clang/test/Driver/cl-options.c -@@ -570,7 +570,7 @@ +@@ -575,7 +575,7 @@ // RUN: %clang_cl /Z7 -gdwarf /c -### -- %s 2>&1 | FileCheck -check-prefix=Z7_gdwarf %s // Z7_gdwarf: "-gcodeview" // Z7_gdwarf: "-debug-info-kind=constructor" -// Z7_gdwarf: "-dwarf-version= +// Z7_gdwarf: "-dwarf-version=4 - // RUN: %clang_cl -fmsc-version=1800 -TP -### -- %s 2>&1 | FileCheck -check-prefix=CXX11 %s - // CXX11: -std=c++11 + // RUN: %clang_cl /ZH:MD5 /c -### -- %s 2>&1 | FileCheck -check-prefix=ZH_MD5 %s + // ZH_MD5: "-gsrc-hash=md5" diff --git a/clang/test/Driver/clang-g-opts.c b/clang/test/Driver/clang-g-opts.c index d982b1070cae..bb129e75769c 100644 --- a/clang/test/Driver/clang-g-opts.c @@ -96,5 +119,5 @@ index 5a33d5eceb61..cedf895b36dc 100644 ///----------------------------------------------------------------------------- /// Checking include-path -- -2.37.1 +2.39.1 diff --git a/SOURCES/D138472.diff b/SOURCES/D138472.diff new file mode 100644 index 0000000..5d3cd60 --- /dev/null +++ b/SOURCES/D138472.diff @@ -0,0 +1,53 @@ +From 04b642c646048dd9df652eba05d45beaa13bc895 Mon Sep 17 00:00:00 2001 +From: Konrad Kleine +Date: Mon, 23 Jan 2023 13:14:17 +0000 +Subject: [PATCH] Rebased D138472 + +--- + clang/CMakeLists.txt | 23 ++++++++++------------- + 1 file changed, 10 insertions(+), 13 deletions(-) + +diff --git a/clang/CMakeLists.txt b/clang/CMakeLists.txt +index 090cfa352078..f87838776c32 100644 +--- a/clang/CMakeLists.txt ++++ b/clang/CMakeLists.txt +@@ -118,12 +118,11 @@ if(CLANG_BUILT_STANDALONE) + set(LLVM_UTILS_PROVIDED ON) + set(CLANG_TEST_DEPS FileCheck count not) + endif() +- set(UNITTEST_DIR ${LLVM_THIRD_PARTY_DIR}/unittest) +- if(EXISTS ${UNITTEST_DIR}/googletest/include/gtest/gtest.h +- AND NOT EXISTS ${LLVM_LIBRARY_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX} +- AND EXISTS ${UNITTEST_DIR}/CMakeLists.txt) +- add_subdirectory(${UNITTEST_DIR} third-party/unittest) +- endif() ++ endif() ++ ++ find_package(LLVMGTest HINTS "${LLVM_CMAKE_DIR}") ++ if (NOT TARGET llvm_gtest) ++ message(FATAL_ERROR "llvm-gtest not found. Please install llvm-gtest or disable tests with -DLLVM_INCLUDE_TESTS=OFF") + endif() + + if(LLVM_LIT) +@@ -506,13 +505,11 @@ endif() + + + if( CLANG_INCLUDE_TESTS ) +- if(EXISTS ${LLVM_THIRD_PARTY_DIR}/unittest/googletest/include/gtest/gtest.h) +- add_subdirectory(unittests) +- list(APPEND CLANG_TEST_DEPS ClangUnitTests) +- list(APPEND CLANG_TEST_PARAMS +- clang_unit_site_config=${CMAKE_CURRENT_BINARY_DIR}/test/Unit/lit.site.cfg +- ) +- endif() ++ add_subdirectory(unittests) ++ list(APPEND CLANG_TEST_DEPS ClangUnitTests) ++ list(APPEND CLANG_TEST_PARAMS ++ clang_unit_site_config=${CMAKE_CURRENT_BINARY_DIR}/test/Unit/lit.site.cfg ++ ) + add_subdirectory(test) + add_subdirectory(bindings/python/tests) + +-- +2.34.3 + diff --git a/SOURCES/D141581.diff b/SOURCES/D141581.diff new file mode 100644 index 0000000..c227e22 --- /dev/null +++ b/SOURCES/D141581.diff @@ -0,0 +1,25 @@ +diff --git a/clang/lib/Basic/CMakeLists.txt b/clang/lib/Basic/CMakeLists.txt +--- a/clang/lib/Basic/CMakeLists.txt ++++ b/clang/lib/Basic/CMakeLists.txt +@@ -110,7 +110,7 @@ + + DEPENDS + omp_gen +- RISCVTargetParserTableGen ++ LLVMTargetParser + ) + + target_link_libraries(clangBasic +diff --git a/clang/lib/Driver/CMakeLists.txt b/clang/lib/Driver/CMakeLists.txt +--- a/clang/lib/Driver/CMakeLists.txt ++++ b/clang/lib/Driver/CMakeLists.txt +@@ -93,7 +93,7 @@ + + DEPENDS + ClangDriverOptions +- RISCVTargetParserTableGen ++ LLVMTargetParser + + LINK_LIBS + clangBasic + diff --git a/SOURCES/clang-15.0.7.src.tar.xz.sig b/SOURCES/clang-15.0.7.src.tar.xz.sig deleted file mode 100644 index 4385f7a82d807c7556a33f30d951fa8a3314757c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 566 zcmV-60?GY}0y6{v0SEvc79j*jP9iaCzek0rjBbvi$CRmtL7j>P0%O0rH2?|;5TeJF zsfIzFihUIi|7lVZf$PME^?x`~Y~eW=6!(6*DNXj?6g)cQm=J<%9zG^ zEvuoCrWa`=g_a)l7-yh4m)o3{(sVeqR+DPDgG@BQ8RHA#%`9WmdKp2$P%ZTI+;EB% zD)_A4=NP;cWs*?P58v=3yF=8W&r}5VeI#I!-t@pT@&IbnO%L}u?ET5y{y4VnP6m4J z(NAapC)#JHev3lWP`-AOr393CNXyeEoV)Z-%}VY6b9t(NZWRpH)7?CA^q^r?bEw4y zrsN5JO>vL`C+#t{@Kyk7X1OVl?PU$d2X_C`NyMAzt)#{IOtI;E@pJ-24I2l@aej24 zofmFByz2!Il)5Xo4o6PDNz*+N?xiYaN{`rYth5bWtH7ixtrGtj72GP0`>b*$W%I88 ztyd|?)Z2PBLJb4A{qU(JGNuQlYdKCWey&1TF?O>t6tNwovn_i$#ENW8YNq@6TCVdW zk;Z^j2>|wbF_2?l20GfjzW6pA4@HHivcB-?-x0J&f(MZ*(zzQU&_=XeV%Q< Ez4$s8F8}}l diff --git a/SOURCES/clang-tools-extra-15.0.7.src.tar.xz.sig b/SOURCES/clang-tools-extra-15.0.7.src.tar.xz.sig deleted file mode 100644 index b9613b4af0a5e2c8d94145a3d6dc691e0c2a412d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 566 zcmV-60?GY}0y6{v0SEvc79j*jP9iaCzek0rjBbvi$CRmtL7j>P0%O0rKmZB}5TeJF zsfIzFiroSa{0hlM8@z&9iMc(9bzy1>f`~wBup zy38#B5>}Z=jJ$8;^CsnP_jR}55(@l^MR}<6VR$)?bOEsFA8aH~>(t5qY^n@#>1w+kbMrL_y+FLK=BhKwo6#7Ksj6^_zih)va++(!Ab?jjV2?qF!5Z8eWnHT ziwkkr=c!<2p6Q(ebI=#0w~ar)2$goJ<~N5(C#RnmnW-}0ALu;*a}v_4;`^=r*)@}s zSpI4dy(S3I@bjYG72~2=90`vLMCQVs=%WoN(yblm%ZI#+nRrDFI{2F>PBDfmrPUcy znxY)y?3|Uy{#)KY#w(s4OD&o*h7FUb#XGd&-MvpF7;wCeTnd$an-@Hgy(yH9JPu+% E*BOuu*Z=?k diff --git a/SOURCES/fix-ieee128-cross.diff b/SOURCES/fix-ieee128-cross.diff new file mode 100644 index 0000000..218c229 --- /dev/null +++ b/SOURCES/fix-ieee128-cross.diff @@ -0,0 +1,16 @@ +diff --git a/clang/test/Driver/ppc-float-abi-warning.cpp b/clang/test/Driver/ppc-float-abi-warning.cpp +index e3baa9f4c059..87d6d87a3b31 100644 +--- a/clang/test/Driver/ppc-float-abi-warning.cpp ++++ b/clang/test/Driver/ppc-float-abi-warning.cpp +@@ -17,10 +17,12 @@ + // RUN: -mabi=ieeelongdouble -stdlib=libc++ -Wno-unsupported-abi 2>&1 | \ + // RUN: FileCheck %s --check-prefix=NOWARN + // RUN: %clang -### --driver-mode=g++ -target powerpc64le-linux-gnu %s\ ++// RUN: --dyld-prefix=%S/Inputs/powerpc64le-linux-gnu-tree/gcc-12 \ + // RUN: -mabi=%if ppc_linux_default_ieeelongdouble %{ieeelongdouble%} \ + // RUN: %else %{ibmlongdouble%} -stdlib=libc++ 2>&1 | \ + // RUN: FileCheck %s --check-prefix=NOWARN + // RUN: %clang -### --driver-mode=g++ -target powerpc64le-linux-gnu %s\ ++// RUN: --dyld-prefix=%S/Inputs/powerpc64le-linux-gnu-tree/gcc-12 \ + // RUN: -mabi=%if ppc_linux_default_ieeelongdouble %{ibmlongdouble%} \ + // RUN: %else %{ieeelongdouble%} -stdlib=libc++ 2>&1 | FileCheck %s diff --git a/SOURCES/macros.clang b/SOURCES/macros.clang index 1f26e35..6f35452 100644 --- a/SOURCES/macros.clang +++ b/SOURCES/macros.clang @@ -8,7 +8,7 @@ # headers and libraries. This path should be used by packages that need to # install files into this directory. This macro's value changes every time # clang's version changes. -%clang_resource_dir %{_libdir}/clang/%{clang_version} +%clang_resource_dir %{_libdir}/clang/%{clang_major_version} # This is the path to the clang resource directory that should be used # by packages that need to read files from this directory at runtime. diff --git a/SOURCES/release-keys.asc b/SOURCES/release-keys.asc new file mode 100644 index 0000000..0d3789a --- /dev/null +++ b/SOURCES/release-keys.asc @@ -0,0 +1,104 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +9RmlwZlOTFGcWBYl/cfRONn9qi9a6w== +=Lvw+ +-----END PGP PUBLIC KEY BLOCK----- +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +=tMzl +-----END PGP PUBLIC KEY BLOCK----- diff --git a/SPECS/clang.spec b/SPECS/clang.spec index a8ed82a..f073e86 100644 --- a/SPECS/clang.spec +++ b/SPECS/clang.spec @@ -1,9 +1,9 @@ %bcond_with compat_build %bcond_without check -%global maj_ver 15 +%global maj_ver 16 %global min_ver 0 -%global patch_ver 7 +%global patch_ver 6 #global rc_ver 4 %global clang_version %{maj_ver}.%{min_ver}.%{patch_ver} @@ -33,6 +33,7 @@ %endif %global clang_srcdir clang-%{clang_version}%{?rc_ver:rc%{rc_ver}}.src +%global cmake_srcdir cmake-%{clang_version}%{?rc_ver:rc%{rc_ver}}.src %global clang_tools_srcdir clang-tools-extra-%{clang_version}%{?rc_ver:rc%{rc_ver}}.src %if !%{maj_ver} && 0%{?rc_ver} @@ -41,7 +42,7 @@ Name: %pkg_name Version: %{clang_version}%{?rc_ver:~rc%{rc_ver}} -Release: 1%{?dist} +Release: 2%{?dist} Summary: A C language family front-end for LLVM License: NCSA @@ -52,21 +53,34 @@ Source3: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{clang_ Source1: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{clang_version}%{?rc_ver:-rc%{rc_ver}}/%{clang_tools_srcdir}.tar.xz Source2: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{clang_version}%{?rc_ver:-rc%{rc_ver}}/%{clang_tools_srcdir}.tar.xz.sig %endif -Source4: release-keys.asc -%if !0%{?compat_build} -Source5: macros.%{name} +Source4: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{clang_version}%{?rc_ver:-rc%{rc_ver}}/%{cmake_srcdir}.tar.xz +Source5: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{clang_version}%{?rc_ver:-rc%{rc_ver}}/%{cmake_srcdir}.tar.xz.sig +Source6: release-keys.asc +%if %{without compat_build} +Source7: macros.%{name} %endif # Patches for clang -Patch0: 0001-PATCH-clang-Reorganize-gtest-integration.patch -Patch1: 0002-PATCH-clang-Make-funwind-tables-the-default-on-all-a.patch +Patch1: 0003-PATCH-Make-funwind-tables-the-default-on-all-archs.patch Patch2: 0003-PATCH-clang-Don-t-install-static-libraries.patch Patch3: 0001-Driver-Add-a-gcc-equivalent-triple-to-the-list-of-tr.patch -Patch4: 0001-cmake-Allow-shared-libraries-to-customize-the-soname.patch -# This patch can be dropped once gcc-12.0.1-0.5.fc36 is in the repo. -Patch5: 0001-Work-around-gcc-miscompile.patch -Patch7: 0010-PATCH-clang-Produce-DWARF4-by-default.patch -Patch8: disable-recommonmark.patch +# Drop the following patch after debugedit adds support to DWARF-5: +# https://sourceware.org/bugzilla/show_bug.cgi?id=28728 +Patch5: 0010-PATCH-clang-Produce-DWARF4-by-default.patch +# Fix a test based on the triple used on RHEL-based systems. +Patch6: 0001-PowerPC-clang-Fix-triple.patch +# Make clangBasic and clangDriver depend on LLVMTargetParser +# See https://reviews.llvm.org/D141581 +Patch7: D141581.diff +# clang/cmake: Use installed gtest libraries for stand-alone builds +# See https://reviews.llvm.org/D138472 +Patch8: D138472.diff + +Patch10: fix-ieee128-cross.diff + + + +Patch100: disable-recommonmark.patch # Patches for clang-tools-extra @@ -163,8 +177,8 @@ libomp-devel to enable -fopenmp. %package libs Summary: Runtime library for clang Requires: %{name}-resource-filesystem%{?_isa} = %{version} -# RHEL specific: Use libstdc++ from gcc12 by default. rhbz#2064507 -Requires: gcc-toolset-12-gcc-c++ +# RHEL specific: Use libstdc++ from gcc13 by default. rhbz#2178804 +Requires: gcc-toolset-13-gcc-c++ Recommends: compiler-rt%{?_isa} = %{version} # libomp-devel is required, so clang can find the omp.h header when compiling # with -fopenmp. @@ -244,13 +258,20 @@ Requires: python3 %prep -%{gpgverify} --keyring='%{SOURCE4}' --signature='%{SOURCE3}' --data='%{SOURCE0}' +%{gpgverify} --keyring='%{SOURCE6}' --signature='%{SOURCE3}' --data='%{SOURCE0}' +%{gpgverify} --keyring='%{SOURCE6}' --signature='%{SOURCE5}' --data='%{SOURCE4}' + +%setup -T -q -b 4 -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 %if %{with compat_build} %autosetup -n %{clang_srcdir} -p2 %else -%{gpgverify} --keyring='%{SOURCE4}' --signature='%{SOURCE2}' --data='%{SOURCE1}' +%{gpgverify} --keyring='%{SOURCE6}' --signature='%{SOURCE2}' --data='%{SOURCE1}' %setup -T -q -b 1 -n %{clang_tools_srcdir} %autopatch -m200 -p2 @@ -374,7 +395,7 @@ CFLAGS="$CFLAGS -Wno-address -Wno-nonnull -Wno-maybe-uninitialized" -DCLANG_DEFAULT_LINKER=lld \ %endif -DCLANG_DEFAULT_UNWINDLIB=libgcc \ - -DGCC_INSTALL_PREFIX=/opt/rh/gcc-toolset-12/root/usr + -DGCC_INSTALL_PREFIX=/opt/rh/gcc-toolset-13/root/usr %cmake_build @@ -398,7 +419,7 @@ rm -Rf %{buildroot}%{install_prefix}/lib/{libear,libscanbuild} # File in the macros file for other packages to use. We are not doing this # in the compat package, because the version macros would # conflict with # eachother if both clang and the clang compat package were installed together. -install -p -m0644 -D %{SOURCE5} %{buildroot}%{_rpmmacrodir}/macros.%{name} +install -p -m0644 -D %{SOURCE7} %{buildroot}%{_rpmmacrodir}/macros.%{name} sed -i -e "s|@@CLANG_MAJOR_VERSION@@|%{maj_ver}|" \ -e "s|@@CLANG_MINOR_VERSION@@|%{min_ver}|" \ -e "s|@@CLANG_PATCH_VERSION@@|%{patch_ver}|" \ @@ -410,7 +431,7 @@ install -p -m644 bindings/python/clang/* %{buildroot}%{python3_sitelib}/clang/ %py_byte_compile %{__python3} %{buildroot}%{python3_sitelib}/clang # install scanbuild-py to python sitelib. -mv %{buildroot}%{_prefix}/lib/{libear,libscanbuild} %{buildroot}%{python3_sitelib} +mv %{buildroot}%{_prefix}/%{_lib}/{libear,libscanbuild} %{buildroot}%{python3_sitelib} %py_byte_compile %{__python3} %{buildroot}%{python3_sitelib}/{libear,libscanbuild} # Fix permissions of scan-view scripts @@ -449,20 +470,11 @@ ln -s clang++ %{buildroot}%{_bindir}/clang++-%{maj_ver} # Fix permission chmod u-x %{buildroot}%{_mandir}/man1/scan-build.1* -# create a link to clang's resource directory that is "constant" across minor -# version bumps -# this is required for packages like ccls that hardcode the link to clang's -# resource directory to not require rebuilds on minor version bumps -# Fix for bugs like rhbz#1807574 -pushd %{buildroot}%{_libdir}/clang/ -ln -s %{version} %{maj_ver} -popd - %endif # Create sub-directories in the clang resource directory that will be # populated by other packages -mkdir -p %{buildroot}%{pkg_libdir}/clang/%{version}/{include,lib,share}/ +mkdir -p %{buildroot}%{pkg_libdir}/clang/%{maj_ver}/{include,lib,share}/ # Remove clang-tidy headers. We don't ship the libraries for these. @@ -476,6 +488,12 @@ ln -s %{_datadir}/clang/clang-format-diff.py %{buildroot}%{_bindir}/clang-format %check %if %{without compat_build} %if %{with check} +# Build test dependencies separately, to prevent invocations of host clang from being affected +# by LD_LIBRARY_PATH below. +pushd %{_vpath_builddir} +%cmake_build --target clang-test-depends \ + ExtraToolsUnitTests ClangdUnitTests ClangIncludeCleanerUnitTests ClangPseudoUnitTests +popd # requires lit.py from LLVM utilities # FIXME: Fix failing ARM tests LD_LIBRARY_PATH=%{buildroot}/%{_libdir} %{__ninja} %{_smp_mflags} check-all -C %{_vpath_builddir} || \ @@ -505,11 +523,11 @@ false %files libs %if %{without compat_build} -%{_libdir}/clang/ +%{_libdir}/clang/%{maj_ver}/include/* %{_libdir}/*.so.* %else %{pkg_libdir}/*.so.* -%{pkg_libdir}/clang/%{version} +%{pkg_libdir}/clang/%{maj_ver}/include/* %endif %files devel @@ -528,13 +546,11 @@ false %endif %files resource-filesystem -%dir %{pkg_libdir}/clang/%{version}/ -%dir %{pkg_libdir}/clang/%{version}/include/ -%dir %{pkg_libdir}/clang/%{version}/lib/ -%dir %{pkg_libdir}/clang/%{version}/share/ -%if %{without compat_build} -%{pkg_libdir}/clang/%{maj_ver} -%endif +%dir %{pkg_libdir}/clang/ +%dir %{pkg_libdir}/clang/%{maj_ver}/ +%dir %{pkg_libdir}/clang/%{maj_ver}/include/ +%dir %{pkg_libdir}/clang/%{maj_ver}/lib/ +%dir %{pkg_libdir}/clang/%{maj_ver}/share/ %if %{without compat_build} %files analyzer @@ -557,19 +573,19 @@ false %files tools-extra +%{_bindir}/amdgpu-arch %{_bindir}/clang-apply-replacements %{_bindir}/clang-change-namespace %{_bindir}/clang-check %{_bindir}/clang-doc %{_bindir}/clang-extdef-mapping %{_bindir}/clang-format +%{_bindir}/clang-include-cleaner %{_bindir}/clang-include-fixer %{_bindir}/clang-move %{_bindir}/clang-offload-bundler %{_bindir}/clang-offload-packager -%{_bindir}/clang-offload-wrapper %{_bindir}/clang-linker-wrapper -%{_bindir}/clang-nvlink-wrapper %{_bindir}/clang-pseudo %{_bindir}/clang-query %{_bindir}/clang-refactor @@ -581,6 +597,7 @@ false %{_bindir}/clangd %{_bindir}/diagtool %{_bindir}/hmaptool +%{_bindir}/nvptx-arch %{_bindir}/pp-trace %{_bindir}/c-index-test %{_bindir}/find-all-symbols @@ -607,6 +624,18 @@ false %endif %changelog +* Thu Jun 29 2023 Tom Stellard - 16.0.6-2 +- Use gcc-toolset-13 by default + +* Sat Jun 17 2023 Tom Stellard - 16.0.6-1 +- 16.0.6 Release + +* Fri May 12 2023 Tom Stellard - 16.0.0-2 +- Fix clang_resource_dir macro + +* Fri Apr 28 2023 Tom Stellard - 16.0.0-1 +- 16.0.0 Release + * Thu Jan 19 2023 Tom Stellard - 15.0.7-1 - Update to LLVM 15.0.7