From e1ea575c359fa0636554543d711d7324893fcff0 Mon Sep 17 00:00:00 2001 From: Tulio Magno Quites Machado Filho Date: Mon, 6 Feb 2023 10:29:03 -0300 Subject: [PATCH 01/19] Update to LLVM 16.0.0 RC1 --- ...p-implicit-rpath-as-NoArgumentUnused.patch | 29 -- ...H-clang-Reorganize-gtest-integration.patch | 26 +- ...ction-between-asm-labels-and-inline-.patch | 74 ----- ...ove-extend-the-gcc-sysroot-detection.patch | 280 ------------------ ...a-Make-test-dependency-on-LLVMHello-.patch | 5 +- ...ove-detection-of-libstdc-headers-on-.patch | 139 --------- ...wind-tables-the-default-on-all-archs.patch | 21 +- ...ATCH-clang-Produce-DWARF4-by-default.patch | 100 ------- clang.spec | 17 +- 9 files changed, 30 insertions(+), 661 deletions(-) delete mode 100644 0001-Mark-fopenmp-implicit-rpath-as-NoArgumentUnused.patch delete mode 100644 0001-clang-Fix-interaction-between-asm-labels-and-inline-.patch delete mode 100644 0001-clang-MinGW-Improve-extend-the-gcc-sysroot-detection.patch delete mode 100644 0002-clang-MinGW-Improve-detection-of-libstdc-headers-on-.patch delete mode 100644 0010-PATCH-clang-Produce-DWARF4-by-default.patch diff --git a/0001-Mark-fopenmp-implicit-rpath-as-NoArgumentUnused.patch b/0001-Mark-fopenmp-implicit-rpath-as-NoArgumentUnused.patch deleted file mode 100644 index 87c9b93..0000000 --- a/0001-Mark-fopenmp-implicit-rpath-as-NoArgumentUnused.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 537e325f180d3d82bbef64aac71efcb0256d6916 Mon Sep 17 00:00:00 2001 -From: Nikita Popov -Date: Fri, 2 Sep 2022 16:30:15 +0200 -Subject: [PATCH] Mark fopenmp-implicit-rpath as NoArgumentUnused - -We pass this option unconditionally in LDFLAGS, make sure this -does not warn if openmp is not used, as this may break some -build systems. ---- - clang/include/clang/Driver/Options.td | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td -index d921ea5d5da9..d883fd3a8f04 100644 ---- a/clang/include/clang/Driver/Options.td -+++ b/clang/include/clang/Driver/Options.td -@@ -4118,7 +4118,8 @@ defm openmp_implicit_rpath: BoolFOption<"openmp-implicit-rpath", - LangOpts<"OpenMP">, - DefaultTrue, - PosFlag, -- NegFlag>; -+ NegFlag, -+ BothFlags<[NoArgumentUnused]>>; - def r : Flag<["-"], "r">, Flags<[LinkerInput,NoArgumentUnused]>, - Group; - def save_temps_EQ : Joined<["-", "--"], "save-temps=">, Flags<[CC1Option, FlangOption, NoXarchOption]>, --- -2.37.2 - diff --git a/0001-PATCH-clang-Reorganize-gtest-integration.patch b/0001-PATCH-clang-Reorganize-gtest-integration.patch index e854f01..c63aaf1 100644 --- a/0001-PATCH-clang-Reorganize-gtest-integration.patch +++ b/0001-PATCH-clang-Reorganize-gtest-integration.patch @@ -1,42 +1,42 @@ -From c6b921c8d833546946b70a8c2640032fd7c62461 Mon Sep 17 00:00:00 2001 +From cfd535d718631c1266baa628904ddfa95284427d 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 +Subject: [PATCH] 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 +index be59c199f05f..3f882f7aca59 100644 --- a/clang/CMakeLists.txt +++ b/clang/CMakeLists.txt -@@ -153,12 +153,6 @@ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR ) +@@ -118,12 +118,6 @@ if(CLANG_BUILT_STANDALONE) set(LLVM_UTILS_PROVIDED ON) set(CLANG_TEST_DEPS FileCheck count not) endif() -- set(UNITTEST_DIR ${LLVM_MAIN_SRC_DIR}/utils/unittest) +- 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} utils/unittest) +- add_subdirectory(${UNITTEST_DIR} third-party/unittest) - endif() - else() - # Seek installed Lit. - find_program(LLVM_LIT -@@ -537,7 +531,11 @@ endif() + endif() + + if(LLVM_LIT) +@@ -506,7 +500,11 @@ endif() if( CLANG_INCLUDE_TESTS ) -- if(EXISTS ${LLVM_MAIN_SRC_DIR}/utils/unittest/googletest/include/gtest/gtest.h) +- if(EXISTS ${LLVM_THIRD_PARTY_DIR}/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(${UNITTEST_DIR} third-party/unittest) add_subdirectory(unittests) list(APPEND CLANG_TEST_DEPS ClangUnitTests) list(APPEND CLANG_TEST_PARAMS -- -1.8.3.1 +2.39.1 diff --git a/0001-clang-Fix-interaction-between-asm-labels-and-inline-.patch b/0001-clang-Fix-interaction-between-asm-labels-and-inline-.patch deleted file mode 100644 index 948d164..0000000 --- a/0001-clang-Fix-interaction-between-asm-labels-and-inline-.patch +++ /dev/null @@ -1,74 +0,0 @@ -From bc9aa904bf9d24e7f39a2a866ff6b463858b6ccb Mon Sep 17 00:00:00 2001 -From: serge-sans-paille -Date: Wed, 21 Sep 2022 16:08:45 +0200 -Subject: [PATCH] [clang] Fix interaction between asm labels and inline - builtins - -One must pick the same name as the one referenced in CodeGenFunction when -generating .inline version of an inline builtin, otherwise they are not -correctly replaced. - -Differential Revision: https://reviews.llvm.org/D134362 ---- - clang/lib/CodeGen/CGExpr.cpp | 5 ++- - .../test/CodeGen/asm-label-inline-builtins.c | 32 +++++++++++++++++++ - 2 files changed, 36 insertions(+), 1 deletion(-) - create mode 100644 clang/test/CodeGen/asm-label-inline-builtins.c - -diff --git a/clang/lib/CodeGen/CGExpr.cpp b/clang/lib/CodeGen/CGExpr.cpp -index bf3dd812b9e8..a951d53423bf 100644 ---- a/clang/lib/CodeGen/CGExpr.cpp -+++ b/clang/lib/CodeGen/CGExpr.cpp -@@ -5046,7 +5046,10 @@ static CGCallee EmitDirectCallee(CodeGenFunction &CGF, GlobalDecl GD) { - if (auto builtinID = FD->getBuiltinID()) { - std::string NoBuiltinFD = ("no-builtin-" + FD->getName()).str(); - std::string NoBuiltins = "no-builtins"; -- std::string FDInlineName = (FD->getName() + ".inline").str(); -+ -+ auto *A = FD->getAttr(); -+ StringRef Ident = A ? A->getLabel() : FD->getName(); -+ std::string FDInlineName = (Ident + ".inline").str(); - - bool IsPredefinedLibFunction = - CGF.getContext().BuiltinInfo.isPredefinedLibFunction(builtinID); -diff --git a/clang/test/CodeGen/asm-label-inline-builtins.c b/clang/test/CodeGen/asm-label-inline-builtins.c -new file mode 100644 -index 000000000000..ab9afc29411d ---- /dev/null -+++ b/clang/test/CodeGen/asm-label-inline-builtins.c -@@ -0,0 +1,32 @@ -+// RUN: %clang_cc1 -triple x86_64 -S -emit-llvm -disable-llvm-passes -o - %s | FileCheck %s -+// -+// Verifies that clang-generated *.inline carry the same name at call and callee -+// site, in spite of asm labels. -+ -+typedef struct _IO_FILE FILE; -+extern FILE *stdout; -+extern int vprintf (const char *__restrict __format, __builtin_va_list __arg); -+extern int __vfprintf_chk (FILE *__restrict __stream, int __flag, -+ const char *__restrict __format, __builtin_va_list __ap); -+extern int __vprintf_chk (int __flag, const char *__restrict __format, -+ __builtin_va_list __ap); -+ -+extern __typeof (vprintf) vprintf __asm ("__vprintfieee128"); -+extern __typeof (__vfprintf_chk) __vfprintf_chk __asm ("__vfprintf_chkieee128"); -+extern __typeof (__vprintf_chk) __vprintf_chk __asm ("__vprintf_chkieee128"); -+ -+extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int -+vprintf (const char *__restrict __fmt, __builtin_va_list __ap) -+{ -+ return __vfprintf_chk (stdout, 2 - 1, __fmt, __ap); -+} -+ -+void test(const char *fmt, __builtin_va_list ap) { -+ vprintf(fmt, ap); -+} -+ -+// CHECK-LABEL: void @test( -+// CHECK: call i32 @__vprintfieee128.inline( -+// -+// CHECK-LABEL: internal i32 @__vprintfieee128.inline( -+// CHECK: call i32 @__vfprintf_chkieee128( --- -2.37.2 - diff --git a/0001-clang-MinGW-Improve-extend-the-gcc-sysroot-detection.patch b/0001-clang-MinGW-Improve-extend-the-gcc-sysroot-detection.patch deleted file mode 100644 index 7f54d32..0000000 --- a/0001-clang-MinGW-Improve-extend-the-gcc-sysroot-detection.patch +++ /dev/null @@ -1,280 +0,0 @@ -From efe3686d4a519b357cecb5aaf715f1e1b6f2d025 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Martin=20Storsj=C3=B6?= -Date: Tue, 22 Nov 2022 14:38:54 +0200 -Subject: [PATCH 1/2] [clang] [MinGW] Improve/extend the gcc/sysroot detection - logic - -There are three functions that try to detect the right implicit -sysroot and libgcc directory setup to use -- One which looks for mingw sysroots located in - /../ -- One which looks for a mingw-targeting gcc executables in the PATH -- One which looks in the /lib/gcc directory to find the - right one to use, and the right specific triple used for arch - specific directories in the gcc/libstdc++ install - -These have mostly tried to look for executables named -"-w64-mingw32-gcc" or "mingw32-gcc" or subdirectories -named "-w64-mingw32" or "mingw32". - -In the case of findClangRelativeSysroot, it also has looked -for directories with the name of the actual triple. This -was added in deff7536278d355977171726124f83aa4bb95419, -with the intent of looking for a directory matching exactly -the user provided literal triple - however the triple here -is the normalized one, not the one provided by the user on -the command line. - -Improve and unify this logic somewhat: -- Always first look for things based on the literal triple - provided by the user. -- Secondly look for things based on the normalized triple - (which usually ends up as e.g. x86_64-w64-windows-gnu), - accessed via the Triple which is passed to the constructor -- Then look for the common triple form -w64-mingw32 - -The literal triple provided by the user is available via -Driver::getTargetTriple(), but computeTargetTriple() may -change e.g. the architecture of it, so we need to -reapply the effective architecture on the literal triple -spelling from Driver::getTargetTriple(). - -Do this consistently for all of findGcc, findClangRelativeSysroot -and findGccLibDir (while keeping the existing plain "mingw32" -cases in findGcc and findGccLibDir too). - -Fedora 37 started shipping mingw sysroots targeting UCRT, -in addition to the traditional msvcrt.dll, and these use -triples in the form -w64-mingw32ucrt - see -https://fedoraproject.org/wiki/Changes/F37MingwUCRT. - -Thus, in addition to the existing default tested triples, -try looking for triples in the form -w64-mingw32ucrt, -to automatically find the UCRT sysroots on Fedora 37. -By explicitly setting a specific target on the Clang command -line, the user can be more explicit with which flavour is -to be preferred. - -This should fix the main issue in -https://github.com/llvm/llvm-project/issues/59001. - -Differential Revision: https://reviews.llvm.org/D138692 ---- - clang/lib/Driver/ToolChains/MinGW.cpp | 68 ++++++++++++++----- - clang/lib/Driver/ToolChains/MinGW.h | 2 +- - .../12.2.1/include-fixed/.keep | 0 - .../sys-root/mingw/include/.keep | 0 - .../sys-root/mingw/include/c++/backward/.keep | 0 - .../include/c++/x86_64-w64-mingw32ucrt/.keep | 0 - clang/test/Driver/mingw-sysroot.cpp | 13 ++++ - clang/test/Driver/mingw.cpp | 4 ++ - 8 files changed, 68 insertions(+), 19 deletions(-) - create mode 100644 clang/test/Driver/Inputs/mingw_fedora_tree/usr/lib/gcc/x86_64-w64-mingw32ucrt/12.2.1/include-fixed/.keep - create mode 100644 clang/test/Driver/Inputs/mingw_fedora_tree/usr/x86_64-w64-mingw32ucrt/sys-root/mingw/include/.keep - create mode 100644 clang/test/Driver/Inputs/mingw_fedora_tree/usr/x86_64-w64-mingw32ucrt/sys-root/mingw/include/c++/backward/.keep - create mode 100644 clang/test/Driver/Inputs/mingw_fedora_tree/usr/x86_64-w64-mingw32ucrt/sys-root/mingw/include/c++/x86_64-w64-mingw32ucrt/.keep - -diff --git a/clang/lib/Driver/ToolChains/MinGW.cpp b/clang/lib/Driver/ToolChains/MinGW.cpp -index ae7c4c56bf9e..0ebacea6e87f 100644 ---- a/clang/lib/Driver/ToolChains/MinGW.cpp -+++ b/clang/lib/Driver/ToolChains/MinGW.cpp -@@ -359,13 +359,26 @@ static bool findGccVersion(StringRef LibDir, std::string &GccLibDir, - return Ver.size(); - } - --void toolchains::MinGW::findGccLibDir() { -- llvm::SmallVector, 2> SubdirNames; -+static llvm::Triple getLiteralTriple(const Driver &D, const llvm::Triple &T) { -+ llvm::Triple LiteralTriple(D.getTargetTriple()); -+ // The arch portion of the triple may be overridden by -m32/-m64. -+ LiteralTriple.setArchName(T.getArchName()); -+ return LiteralTriple; -+} -+ -+void toolchains::MinGW::findGccLibDir(const llvm::Triple &LiteralTriple) { -+ llvm::SmallVector, 5> SubdirNames; -+ SubdirNames.emplace_back(LiteralTriple.str()); -+ SubdirNames.emplace_back(getTriple().str()); - SubdirNames.emplace_back(getTriple().getArchName()); -- SubdirNames[0] += "-w64-mingw32"; -+ SubdirNames.back() += "-w64-mingw32"; -+ SubdirNames.emplace_back(getTriple().getArchName()); -+ SubdirNames.back() += "-w64-mingw32ucrt"; - SubdirNames.emplace_back("mingw32"); -- if (SubdirName.empty()) -- SubdirName = std::string(SubdirNames[0].str()); -+ if (SubdirName.empty()) { -+ SubdirName = getTriple().getArchName(); -+ SubdirName += "-w64-mingw32"; -+ } - // lib: Arch Linux, Ubuntu, Windows - // lib64: openSUSE Linux - for (StringRef CandidateLib : {"lib", "lib64"}) { -@@ -380,10 +393,17 @@ void toolchains::MinGW::findGccLibDir() { - } - } - --static llvm::ErrorOr findGcc(const llvm::Triple &T) { -- llvm::SmallVector, 2> Gccs; -+static llvm::ErrorOr findGcc(const llvm::Triple &LiteralTriple, -+ const llvm::Triple &T) { -+ llvm::SmallVector, 5> Gccs; -+ Gccs.emplace_back(LiteralTriple.str()); -+ Gccs.back() += "-gcc"; -+ Gccs.emplace_back(T.str()); -+ Gccs.back() += "-gcc"; - Gccs.emplace_back(T.getArchName()); -- Gccs[0] += "-w64-mingw32-gcc"; -+ Gccs.back() += "-w64-mingw32-gcc"; -+ Gccs.emplace_back(T.getArchName()); -+ Gccs.back() += "-w64-mingw32ucrt-gcc"; - Gccs.emplace_back("mingw32-gcc"); - // Please do not add "gcc" here - for (StringRef CandidateGcc : Gccs) -@@ -393,12 +413,15 @@ static llvm::ErrorOr findGcc(const llvm::Triple &T) { - } - - static llvm::ErrorOr --findClangRelativeSysroot(const Driver &D, const llvm::Triple &T, -- std::string &SubdirName) { -- llvm::SmallVector, 2> Subdirs; -+findClangRelativeSysroot(const Driver &D, const llvm::Triple &LiteralTriple, -+ const llvm::Triple &T, std::string &SubdirName) { -+ llvm::SmallVector, 4> Subdirs; -+ Subdirs.emplace_back(LiteralTriple.str()); - Subdirs.emplace_back(T.str()); - Subdirs.emplace_back(T.getArchName()); -- Subdirs[1] += "-w64-mingw32"; -+ Subdirs.back() += "-w64-mingw32"; -+ Subdirs.emplace_back(T.getArchName()); -+ Subdirs.back() += "-w64-mingw32ucrt"; - StringRef ClangRoot = llvm::sys::path::parent_path(D.getInstalledDir()); - StringRef Sep = llvm::sys::path::get_separator(); - for (StringRef CandidateSubdir : Subdirs) { -@@ -418,14 +441,16 @@ toolchains::MinGW::MinGW(const Driver &D, const llvm::Triple &Triple, - - // The sequence for detecting a sysroot here should be kept in sync with - // the testTriple function below. -+ llvm::Triple LiteralTriple = getLiteralTriple(D, getTriple()); - if (getDriver().SysRoot.size()) - Base = getDriver().SysRoot; - // Look for /../; if found, use /.. as the - // base as it could still be a base for a gcc setup with libgcc. -- else if (llvm::ErrorOr TargetSubdir = -- findClangRelativeSysroot(getDriver(), getTriple(), SubdirName)) -+ else if (llvm::ErrorOr TargetSubdir = findClangRelativeSysroot( -+ getDriver(), LiteralTriple, getTriple(), SubdirName)) - Base = std::string(llvm::sys::path::parent_path(TargetSubdir.get())); -- else if (llvm::ErrorOr GPPName = findGcc(getTriple())) -+ else if (llvm::ErrorOr GPPName = -+ findGcc(LiteralTriple, getTriple())) - Base = std::string(llvm::sys::path::parent_path( - llvm::sys::path::parent_path(GPPName.get()))); - else -@@ -433,7 +458,7 @@ toolchains::MinGW::MinGW(const Driver &D, const llvm::Triple &Triple, - llvm::sys::path::parent_path(getDriver().getInstalledDir())); - - Base += llvm::sys::path::get_separator(); -- findGccLibDir(); -+ findGccLibDir(LiteralTriple); - // GccLibDir must precede Base/lib so that the - // correct crtbegin.o ,cetend.o would be found. - getFilePaths().push_back(GccLibDir); -@@ -576,6 +601,12 @@ void toolchains::MinGW::printVerboseInfo(raw_ostream &OS) const { - // /usr/include/c++/4.8/backward - // /usr/x86_64-w64-mingw32/include - -+// Fedora -+// /usr/x86_64-w64-mingw32ucrt/sys-root/mingw/include/c++/x86_64-w64-mingw32ucrt -+// /usr/x86_64-w64-mingw32ucrt/sys-root/mingw/include/c++/backward -+// /usr/x86_64-w64-mingw32ucrt/sys-root/mingw/include -+// /usr/lib/gcc/x86_64-w64-mingw32ucrt/12.2.1/include-fixed -+ - void toolchains::MinGW::AddClangSystemIncludeArgs(const ArgList &DriverArgs, - ArgStringList &CC1Args) const { - if (DriverArgs.hasArg(options::OPT_nostdinc)) -@@ -667,10 +698,11 @@ static bool testTriple(const Driver &D, const llvm::Triple &Triple, - std::string SubdirName; - if (D.SysRoot.size()) - return true; -+ llvm::Triple LiteralTriple = getLiteralTriple(D, Triple); - if (llvm::ErrorOr TargetSubdir = -- findClangRelativeSysroot(D, Triple, SubdirName)) -+ findClangRelativeSysroot(D, LiteralTriple, Triple, SubdirName)) - return true; -- if (llvm::ErrorOr GPPName = findGcc(Triple)) -+ if (llvm::ErrorOr GPPName = findGcc(LiteralTriple, Triple)) - return true; - // If we neither found a colocated sysroot or a matching gcc executable, - // conclude that we can't know if this is the correct spelling of the triple. -diff --git a/clang/lib/Driver/ToolChains/MinGW.h b/clang/lib/Driver/ToolChains/MinGW.h -index f15f99dc8a8c..bc17d273e776 100644 ---- a/clang/lib/Driver/ToolChains/MinGW.h -+++ b/clang/lib/Driver/ToolChains/MinGW.h -@@ -108,7 +108,7 @@ private: - std::string SubdirName; - mutable std::unique_ptr Preprocessor; - mutable std::unique_ptr Compiler; -- void findGccLibDir(); -+ void findGccLibDir(const llvm::Triple &LiteralTriple); - - bool NativeLLVMSupport; - }; -diff --git a/clang/test/Driver/Inputs/mingw_fedora_tree/usr/lib/gcc/x86_64-w64-mingw32ucrt/12.2.1/include-fixed/.keep b/clang/test/Driver/Inputs/mingw_fedora_tree/usr/lib/gcc/x86_64-w64-mingw32ucrt/12.2.1/include-fixed/.keep -new file mode 100644 -index 000000000000..e69de29bb2d1 -diff --git a/clang/test/Driver/Inputs/mingw_fedora_tree/usr/x86_64-w64-mingw32ucrt/sys-root/mingw/include/.keep b/clang/test/Driver/Inputs/mingw_fedora_tree/usr/x86_64-w64-mingw32ucrt/sys-root/mingw/include/.keep -new file mode 100644 -index 000000000000..e69de29bb2d1 -diff --git a/clang/test/Driver/Inputs/mingw_fedora_tree/usr/x86_64-w64-mingw32ucrt/sys-root/mingw/include/c++/backward/.keep b/clang/test/Driver/Inputs/mingw_fedora_tree/usr/x86_64-w64-mingw32ucrt/sys-root/mingw/include/c++/backward/.keep -new file mode 100644 -index 000000000000..e69de29bb2d1 -diff --git a/clang/test/Driver/Inputs/mingw_fedora_tree/usr/x86_64-w64-mingw32ucrt/sys-root/mingw/include/c++/x86_64-w64-mingw32ucrt/.keep b/clang/test/Driver/Inputs/mingw_fedora_tree/usr/x86_64-w64-mingw32ucrt/sys-root/mingw/include/c++/x86_64-w64-mingw32ucrt/.keep -new file mode 100644 -index 000000000000..e69de29bb2d1 -diff --git a/clang/test/Driver/mingw-sysroot.cpp b/clang/test/Driver/mingw-sysroot.cpp -index 1cb51b3aea2d..985be9e5f2ac 100644 ---- a/clang/test/Driver/mingw-sysroot.cpp -+++ b/clang/test/Driver/mingw-sysroot.cpp -@@ -14,6 +14,11 @@ - // RUN: ln -s %S/Inputs/mingw_ubuntu_posix_tree/usr/x86_64-w64-mingw32 %T/testroot-clang/x86_64-w64-mingw32 - // RUN: ln -s %S/Inputs/mingw_arch_tree/usr/i686-w64-mingw32 %T/testroot-clang/i686-w64-mingw32 - -+// RUN: rm -rf %T/testroot-custom-triple -+// RUN: mkdir -p %T/testroot-custom-triple/bin -+// RUN: ln -s %clang %T/testroot-custom-triple/bin/x86_64-w64-mingw32foo-clang -+// RUN: ln -s %clang %T/testroot-custom-triple/bin/clang -+// RUN: ln -s %S/Inputs/mingw_ubuntu_posix_tree/usr/x86_64-w64-mingw32 %T/testroot-custom-triple/x86_64-w64-mingw32foo - - // If we find a gcc in the path with the right triplet prefix, pick that as - // sysroot: -@@ -51,3 +56,11 @@ - - // RUN: env "PATH=%T/testroot-gcc/bin:%PATH%" %T/testroot-clang/bin/x86_64-w64-mingw32-clang --target=x86_64-w64-mingw32 -m32 -rtlib=compiler-rt -stdlib=libstdc++ --sysroot="" -c -### %s 2>&1 | FileCheck -check-prefix=CHECK_TESTROOT_CLANG_I686 %s - // CHECK_TESTROOT_CLANG_I686: "{{[^"]+}}/testroot-clang{{/|\\\\}}i686-w64-mingw32{{/|\\\\}}include" -+ -+ -+// If the user calls clang with a custom literal triple, make sure this maps -+// to sysroots with the matching spelling. -+ -+// RUN: %T/testroot-custom-triple/bin/x86_64-w64-mingw32foo-clang -rtlib=compiler-rt -stdlib=libstdc++ --sysroot="" -c -### %s 2>&1 | FileCheck -check-prefix=CHECK_TESTROOT_CUSTOM_TRIPLE %s -+// RUN: %T/testroot-custom-triple/bin/clang --target=x86_64-w64-mingw32foo -rtlib=compiler-rt -stdlib=libstdc++ --sysroot="" -c -### %s 2>&1 | FileCheck -check-prefix=CHECK_TESTROOT_CUSTOM_TRIPLE %s -+// CHECK_TESTROOT_CUSTOM_TRIPLE: "{{[^"]+}}/testroot-custom-triple{{/|\\\\}}x86_64-w64-mingw32foo{{/|\\\\}}include" -diff --git a/clang/test/Driver/mingw.cpp b/clang/test/Driver/mingw.cpp -index b37503e475d8..bde952fb3565 100644 ---- a/clang/test/Driver/mingw.cpp -+++ b/clang/test/Driver/mingw.cpp -@@ -39,6 +39,10 @@ - // CHECK_MINGW_OPENSUSE_TREE: "[[BASE]]/Inputs/mingw_opensuse_tree/usr{{/|\\\\}}x86_64-w64-mingw32/sys-root/mingw/include" - - -+// RUN: %clang -target x86_64-pc-windows-gnu -rtlib=platform -stdlib=libstdc++ -c -### --sysroot=%S/Inputs/mingw_fedora_tree/usr %s 2>&1 | FileCheck -check-prefix=CHECK_MINGW_FEDORA_TREE %s -+// CHECK_MINGW_FEDORA_TREE: "[[BASE:[^"]+]]/Inputs/mingw_fedora_tree/usr{{/|\\\\}}x86_64-w64-mingw32ucrt/sys-root/mingw/include" -+ -+ - // RUN: %clang -target i686-pc-windows-gnu -rtlib=platform -stdlib=libstdc++ -c -### --sysroot=%S/Inputs/mingw_arch_tree/usr %s 2>&1 | FileCheck -check-prefix=CHECK_MINGW_ARCH_TREE %s - // CHECK_MINGW_ARCH_TREE: "[[BASE:[^"]+]]/Inputs/mingw_arch_tree/usr{{/|\\\\}}i686-w64-mingw32{{/|\\\\}}include{{/|\\\\}}c++{{/|\\\\}}5.1.0" - // CHECK_MINGW_ARCH_TREE: "[[BASE]]/Inputs/mingw_arch_tree/usr{{/|\\\\}}i686-w64-mingw32{{/|\\\\}}include{{/|\\\\}}c++{{/|\\\\}}5.1.0{{/|\\\\}}i686-w64-mingw32" --- -2.38.1 - diff --git a/0001-clang-tools-extra-Make-test-dependency-on-LLVMHello-.patch b/0001-clang-tools-extra-Make-test-dependency-on-LLVMHello-.patch index 8f30ef4..a0b8cb0 100644 --- a/0001-clang-tools-extra-Make-test-dependency-on-LLVMHello-.patch +++ b/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/0002-clang-MinGW-Improve-detection-of-libstdc-headers-on-.patch b/0002-clang-MinGW-Improve-detection-of-libstdc-headers-on-.patch deleted file mode 100644 index 7376d7f..0000000 --- a/0002-clang-MinGW-Improve-detection-of-libstdc-headers-on-.patch +++ /dev/null @@ -1,139 +0,0 @@ -From d3b79c2950d590cb272648f1c6a9dd7646f57beb Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Martin=20Storsj=C3=B6?= -Date: Tue, 22 Nov 2022 14:39:39 +0200 -Subject: [PATCH 2/2] [clang] [MinGW] Improve detection of libstdc++ headers on - Fedora - -There's some variation in where different toolchain distributions -(and linux distributions) package the mingw sysroots - this is -so far handled by adding specific known subdirectory paths -to the include and lib directory lists. - -There are multiple degrees of combinatorics involved here though; -the distros may use different locations such as -/usr/x86_64-w64-mingw32/include or -/usr/x86_64-w64-mingw32/sys-root/mingw/include. - -So far, this setup has been treated as base=/usr, subdir=x86_64-w64-mingw32, -and the driver tries to add further subdirectories such as -//include, //sys-root/mingw/include. - -When it comes to libstdc++ (and libc++), each of these come with -a large number of potential subdirectories. Instead of further -exploding the combinatorics another step by adding all combinations -of all paths, check whether //sys-root/mingw/include -exists, and if it does, append that subpath into the subdir variable. - -This allows finding libstdc++ headers in e.g. -/usr/x86_64-w64-mingw32/sys-root/mingw/include/c++/x86_64-w64-mingw32 -on Fedora. - -The same logic (where everything belonging to this target fits -under one expanded path, with just /include and /lib -under it) doesn't seem to apply on Gentoo, where the includes -are found in //usr/include while the libraries -are in //mingw/lib (see -8e218026f8d5eabfdef9141ae5e26aa91d1933e6). But apparently -the libstdc++ headers aren't installed under -//usr/include, so that path hierarchy quirk doesn't -need to be taken into account in AddClangCXXStdlibIncludeArgs. - -Differential Revision: https://reviews.llvm.org/D138693 ---- - clang/lib/Driver/ToolChains/MinGW.cpp | 19 +++++++++---------- - clang/lib/Driver/ToolChains/MinGW.h | 1 + - clang/test/Driver/mingw.cpp | 5 ++++- - 3 files changed, 14 insertions(+), 11 deletions(-) - -diff --git a/clang/lib/Driver/ToolChains/MinGW.cpp b/clang/lib/Driver/ToolChains/MinGW.cpp -index 0ebacea6e87f..2a9bf4b18f19 100644 ---- a/clang/lib/Driver/ToolChains/MinGW.cpp -+++ b/clang/lib/Driver/ToolChains/MinGW.cpp -@@ -376,7 +376,7 @@ void toolchains::MinGW::findGccLibDir(const llvm::Triple &LiteralTriple) { - SubdirNames.back() += "-w64-mingw32ucrt"; - SubdirNames.emplace_back("mingw32"); - if (SubdirName.empty()) { -- SubdirName = getTriple().getArchName(); -+ SubdirName = getTriple().getArchName().str(); - SubdirName += "-w64-mingw32"; - } - // lib: Arch Linux, Ubuntu, Windows -@@ -459,9 +459,16 @@ toolchains::MinGW::MinGW(const Driver &D, const llvm::Triple &Triple, - - Base += llvm::sys::path::get_separator(); - findGccLibDir(LiteralTriple); -+ TripleDirName = SubdirName; - // GccLibDir must precede Base/lib so that the - // correct crtbegin.o ,cetend.o would be found. - getFilePaths().push_back(GccLibDir); -+ -+ // openSUSE/Fedora -+ std::string CandidateSubdir = SubdirName + "/sys-root/mingw"; -+ if (getDriver().getVFS().exists(Base + CandidateSubdir)) -+ SubdirName = CandidateSubdir; -+ - getFilePaths().push_back( - (Base + SubdirName + llvm::sys::path::get_separator() + "lib").str()); - -@@ -470,8 +477,6 @@ toolchains::MinGW::MinGW(const Driver &D, const llvm::Triple &Triple, - (Base + SubdirName + llvm::sys::path::get_separator() + "mingw/lib").str()); - - getFilePaths().push_back(Base + "lib"); -- // openSUSE -- getFilePaths().push_back(Base + SubdirName + "/sys-root/mingw/lib"); - - NativeLLVMSupport = - Args.getLastArgValue(options::OPT_fuse_ld_EQ, CLANG_DEFAULT_LINKER) -@@ -621,12 +626,6 @@ void toolchains::MinGW::AddClangSystemIncludeArgs(const ArgList &DriverArgs, - if (DriverArgs.hasArg(options::OPT_nostdlibinc)) - return; - -- if (GetRuntimeLibType(DriverArgs) == ToolChain::RLT_Libgcc) { -- // openSUSE -- addSystemInclude(DriverArgs, CC1Args, -- Base + SubdirName + "/sys-root/mingw/include"); -- } -- - addSystemInclude(DriverArgs, CC1Args, - Base + SubdirName + llvm::sys::path::get_separator() + - "include"); -@@ -684,7 +683,7 @@ void toolchains::MinGW::AddClangCXXStdlibIncludeArgs( - for (auto &CppIncludeBase : CppIncludeBases) { - addSystemInclude(DriverArgs, CC1Args, CppIncludeBase); - CppIncludeBase += Slash; -- addSystemInclude(DriverArgs, CC1Args, CppIncludeBase + SubdirName); -+ addSystemInclude(DriverArgs, CC1Args, CppIncludeBase + TripleDirName); - addSystemInclude(DriverArgs, CC1Args, CppIncludeBase + "backward"); - } - break; -diff --git a/clang/lib/Driver/ToolChains/MinGW.h b/clang/lib/Driver/ToolChains/MinGW.h -index bc17d273e776..ef9bfb29e175 100644 ---- a/clang/lib/Driver/ToolChains/MinGW.h -+++ b/clang/lib/Driver/ToolChains/MinGW.h -@@ -106,6 +106,7 @@ private: - clang::driver::toolchains::Generic_GCC::GCCVersion GccVer; - std::string Ver; - std::string SubdirName; -+ std::string TripleDirName; - mutable std::unique_ptr Preprocessor; - mutable std::unique_ptr Compiler; - void findGccLibDir(const llvm::Triple &LiteralTriple); -diff --git a/clang/test/Driver/mingw.cpp b/clang/test/Driver/mingw.cpp -index bde952fb3565..46ea55b9500d 100644 ---- a/clang/test/Driver/mingw.cpp -+++ b/clang/test/Driver/mingw.cpp -@@ -40,7 +40,10 @@ - - - // RUN: %clang -target x86_64-pc-windows-gnu -rtlib=platform -stdlib=libstdc++ -c -### --sysroot=%S/Inputs/mingw_fedora_tree/usr %s 2>&1 | FileCheck -check-prefix=CHECK_MINGW_FEDORA_TREE %s --// CHECK_MINGW_FEDORA_TREE: "[[BASE:[^"]+]]/Inputs/mingw_fedora_tree/usr{{/|\\\\}}x86_64-w64-mingw32ucrt/sys-root/mingw/include" -+// CHECK_MINGW_FEDORA_TREE: "[[BASE:[^"]+]]/Inputs/mingw_fedora_tree/usr{{/|\\\\}}x86_64-w64-mingw32ucrt/sys-root/mingw/include/c++" -+// CHECK_MINGW_FEDORA_TREE: "[[BASE]]/Inputs/mingw_fedora_tree/usr{{/|\\\\}}x86_64-w64-mingw32ucrt/sys-root/mingw/include/c++/x86_64-w64-mingw32ucrt" -+// CHECK_MINGW_FEDORA_TREE: "[[BASE]]/Inputs/mingw_fedora_tree/usr{{/|\\\\}}x86_64-w64-mingw32ucrt/sys-root/mingw/include/c++/backward" -+// CHECK_MINGW_FEDORA_TREE: "[[BASE]]/Inputs/mingw_fedora_tree/usr{{/|\\\\}}x86_64-w64-mingw32ucrt/sys-root/mingw/include" - - - // RUN: %clang -target i686-pc-windows-gnu -rtlib=platform -stdlib=libstdc++ -c -### --sysroot=%S/Inputs/mingw_arch_tree/usr %s 2>&1 | FileCheck -check-prefix=CHECK_MINGW_ARCH_TREE %s --- -2.38.1 - diff --git a/0003-PATCH-Make-funwind-tables-the-default-on-all-archs.patch b/0003-PATCH-Make-funwind-tables-the-default-on-all-archs.patch index e6671f9..ce920f9 100644 --- a/0003-PATCH-Make-funwind-tables-the-default-on-all-archs.patch +++ b/0003-PATCH-Make-funwind-tables-the-default-on-all-archs.patch @@ -1,18 +1,17 @@ -From c87abee7356b8fde81512ffceadd520776c465d2 Mon Sep 17 00:00:00 2001 +From d95d3fbff661c0390072ed0bb4544d5e2aae5c9a 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 +Subject: [PATCH] Make -funwind-tables the default on all archs --- - clang/lib/Driver/ToolChains/Gnu.cpp | 6 ++++++ - 1 file changed, 6 insertions(+) + 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 d0808d061c82..de9c9743cd38 100644 +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 -@@ -2701,6 +2701,11 @@ bool Generic_GCC::IsUnwindTablesDefault(const ArgList &Args) const { +@@ -2863,6 +2863,11 @@ Generic_GCC::getDefaultUnwindTableLevel(const ArgList &Args) const { case llvm::Triple::ppc64le: case llvm::Triple::x86: case llvm::Triple::x86_64: @@ -21,9 +20,9 @@ index d0808d061c82..de9c9743cd38 100644 + // rhbz#1655546 + case llvm::Triple::systemz: + case llvm::Triple::arm: - return true; + return UnwindTableLevel::Asynchronous; default: - return false; + return UnwindTableLevel::None; -- -2.27.0 +2.39.1 diff --git a/0010-PATCH-clang-Produce-DWARF4-by-default.patch b/0010-PATCH-clang-Produce-DWARF4-by-default.patch deleted file mode 100644 index 2d698c5..0000000 --- a/0010-PATCH-clang-Produce-DWARF4-by-default.patch +++ /dev/null @@ -1,100 +0,0 @@ -From 1f68d73910ddee1beaf3582480b8a9738c941a43 Mon Sep 17 00:00:00 2001 -From: Konrad Kleine -Date: Thu, 24 Mar 2022 09:44:21 +0100 -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: - -https://github.com/llvm/llvm-project/commit/d3b26dea16108c427b19b5480c9edc76edf8f5b4?diff=unified ---- - clang/include/clang/Driver/ToolChain.h | 2 +- - clang/test/CodeGen/dwarf-version.c | 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(-) - -diff --git a/clang/include/clang/Driver/ToolChain.h b/clang/include/clang/Driver/ToolChain.h -index f20ab164531b..53c86ee82936 100644 ---- a/clang/include/clang/Driver/ToolChain.h -+++ b/clang/include/clang/Driver/ToolChain.h -@@ -535,7 +535,7 @@ public: - - // Return the DWARF version to emit, in the absence of arguments - // to the contrary. -- virtual unsigned GetDefaultDwarfVersion() const { return 5; } -+ virtual unsigned GetDefaultDwarfVersion() const { return 4; } - - // Some toolchains may have different restrictions on the DWARF version and - // may need to adjust it. E.g. NVPTX may need to enforce DWARF2 even when host -diff --git a/clang/test/CodeGen/dwarf-version.c b/clang/test/CodeGen/dwarf-version.c -index 0a6fa4768026..96f01749d0d8 100644 ---- a/clang/test/CodeGen/dwarf-version.c -+++ b/clang/test/CodeGen/dwarf-version.c -@@ -2,8 +2,8 @@ - // RUN: %clang -target x86_64-linux-gnu -gdwarf-3 -S -emit-llvm -o - %s | FileCheck %s --check-prefix=VER3 - // RUN: %clang -target x86_64-linux-gnu -gdwarf-4 -S -emit-llvm -o - %s | FileCheck %s --check-prefix=VER4 - // RUN: %clang -target x86_64-linux-gnu -gdwarf-5 -S -emit-llvm -o - %s | FileCheck %s --check-prefix=VER5 --// RUN: %clang -target x86_64-linux-gnu -g -S -emit-llvm -o - %s | FileCheck %s --check-prefix=VER5 --// RUN: %clang -target x86_64-linux-gnu -gdwarf -S -emit-llvm -o - %s | FileCheck %s --check-prefix=VER5 -+// RUN: %clang -target x86_64-linux-gnu -g -S -emit-llvm -o - %s | FileCheck %s --check-prefix=VER4 -+// RUN: %clang -target x86_64-linux-gnu -gdwarf -S -emit-llvm -o - %s | FileCheck %s --check-prefix=VER4 - - // 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/cl-options.c b/clang/test/Driver/cl-options.c -index a2e350a0a835..01889ba0bf9b 100644 ---- a/clang/test/Driver/cl-options.c -+++ b/clang/test/Driver/cl-options.c -@@ -570,7 +570,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 -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 -+++ b/clang/test/Driver/clang-g-opts.c -@@ -32,7 +32,7 @@ - - // CHECK-WITHOUT-G-NOT: -debug-info-kind - // CHECK-WITH-G: "-debug-info-kind=constructor" --// CHECK-WITH-G: "-dwarf-version=5" -+// CHECK-WITH-G: "-dwarf-version=4" - // CHECK-WITH-G-DWARF2: "-dwarf-version=2" - - // CHECK-WITH-G-STANDALONE: "-debug-info-kind=standalone" -diff --git a/clang/test/Driver/ve-toolchain.c b/clang/test/Driver/ve-toolchain.c -index 32e25769b6da..b8a2852daba8 100644 ---- a/clang/test/Driver/ve-toolchain.c -+++ b/clang/test/Driver/ve-toolchain.c -@@ -6,7 +6,7 @@ - /// Checking dwarf-version - - // RUN: %clang -### -g --target=ve %s 2>&1 | FileCheck -check-prefix=DWARF_VER %s --// DWARF_VER: "-dwarf-version=5" -+// DWARF_VER: "-dwarf-version=4" - - ///----------------------------------------------------------------------------- - /// Checking include-path -diff --git a/clang/test/Driver/ve-toolchain.cpp b/clang/test/Driver/ve-toolchain.cpp -index 5a33d5eceb61..cedf895b36dc 100644 ---- a/clang/test/Driver/ve-toolchain.cpp -+++ b/clang/test/Driver/ve-toolchain.cpp -@@ -7,7 +7,7 @@ - - // RUN: %clangxx -### -g --target=ve-unknown-linux-gnu \ - // RUN: %s 2>&1 | FileCheck -check-prefix=DWARF_VER %s --// DWARF_VER: "-dwarf-version=5" -+// DWARF_VER: "-dwarf-version=4" - - ///----------------------------------------------------------------------------- - /// Checking include-path --- -2.37.1 - diff --git a/clang.spec b/clang.spec index 3b10edf..d4a52b2 100644 --- a/clang.spec +++ b/clang.spec @@ -7,10 +7,10 @@ %bcond_with compat_build %bcond_without check -%global maj_ver 15 +%global maj_ver 16 %global min_ver 0 -%global patch_ver 7 -#global rc_ver 3 +%global patch_ver 0 +%global rc_ver 1 %global clang_version %{maj_ver}.%{min_ver}.%{patch_ver} %if %{with compat_build} @@ -62,19 +62,8 @@ Patch0: 0001-PATCH-clang-Reorganize-gtest-integration.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 -Patch5: 0010-PATCH-clang-Produce-DWARF4-by-default.patch Patch6: 0001-Take-into-account-Fedora-Specific-install-dir-for-li.patch -# TODO: Can be dropped in LLVM 16: https://reviews.llvm.org/D133316 -Patch7: 0001-Mark-fopenmp-implicit-rpath-as-NoArgumentUnused.patch - -# TODO: Can be dropped in LLVM 16: https://reviews.llvm.org/D134362 -Patch8: 0001-clang-Fix-interaction-between-asm-labels-and-inline-.patch - -# TODO: Can be dropped in LLVM 16. -Patch9: 0001-clang-MinGW-Improve-extend-the-gcc-sysroot-detection.patch -Patch10: 0002-clang-MinGW-Improve-detection-of-libstdc-headers-on-.patch - %if %{without compat_build} # Patches for clang-tools-extra # See https://reviews.llvm.org/D120301 From 1919c1aeccf8243bcc788f7dc46eeebe8fc190b6 Mon Sep 17 00:00:00 2001 From: Konrad Kleine Date: Fri, 20 Jan 2023 19:35:39 +0000 Subject: [PATCH 02/19] Manually apply https://reviews.llvm.org/D141581 --- D141581.diff | 25 +++++++++++++++++++++++++ clang.spec | 4 ++++ 2 files changed, 29 insertions(+) create mode 100644 D141581.diff diff --git a/D141581.diff b/D141581.diff new file mode 100644 index 0000000..c227e22 --- /dev/null +++ b/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/clang.spec b/clang.spec index d4a52b2..e8e3f38 100644 --- a/clang.spec +++ b/clang.spec @@ -64,6 +64,10 @@ Patch2: 0003-PATCH-clang-Don-t-install-static-libraries.patch Patch3: 0001-Driver-Add-a-gcc-equivalent-triple-to-the-list-of-tr.patch Patch6: 0001-Take-into-account-Fedora-Specific-install-dir-for-li.patch +# Make clangBasic and clangDriver depend on LLVMTargetParser +# See https://reviews.llvm.org/D141581 +Patch7: D141581.diff + %if %{without compat_build} # Patches for clang-tools-extra # See https://reviews.llvm.org/D120301 From 0d77a0c30a54b0a45cba3b8f42e9cc3411a82f49 Mon Sep 17 00:00:00 2001 From: Konrad Kleine Date: Mon, 23 Jan 2023 10:44:28 +0000 Subject: [PATCH 03/19] adjust /lib/ to /%{_lib}/ fixes this error: ``` mv: cannot stat '/builddir/build/BUILDROOT/clang-16.0.0~pre20230122.g6aaac4c144572d-1.fc36.x86_64/usr/lib/libear': No such file or directory mv: cannot stat '/builddir/build/BUILDROOT/clang-16.0.0~pre20230122.g6aaac4c144572d-1.fc36.x86_64/usr/lib/libscanbuild': No such file or directory ``` --- clang.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clang.spec b/clang.spec index e8e3f38..75138a7 100644 --- a/clang.spec +++ b/clang.spec @@ -402,7 +402,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 From 7ac824879587512c838596712fbff4fb5d4feed0 Mon Sep 17 00:00:00 2001 From: Konrad Kleine Date: Mon, 23 Jan 2023 12:48:50 +0000 Subject: [PATCH 04/19] Remove third party stuff and use gtest patch --- D138472.diff | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++ clang.spec | 3 +++ 2 files changed, 56 insertions(+) create mode 100644 D138472.diff diff --git a/D138472.diff b/D138472.diff new file mode 100644 index 0000000..729d74c --- /dev/null +++ b/D138472.diff @@ -0,0 +1,53 @@ +From 04ee57212326f872b6f9402eff438220396ca763 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..69652733e2f2 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) ++ 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/clang.spec b/clang.spec index 75138a7..83d057f 100644 --- a/clang.spec +++ b/clang.spec @@ -67,6 +67,9 @@ Patch6: 0001-Take-into-account-Fedora-Specific-install-dir-for-li.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 %if %{without compat_build} # Patches for clang-tools-extra From 0f9040cc955061b4c45c1598322fef906f5a6438 Mon Sep 17 00:00:00 2001 From: Konrad Kleine Date: Mon, 23 Jan 2023 15:13:31 +0000 Subject: [PATCH 05/19] Assist find_package(LLVMGTest by setting hint dir to LLVM_CMAKE_DIR --- D138472.diff | 6 +++--- clang.spec | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/D138472.diff b/D138472.diff index 729d74c..5d3cd60 100644 --- a/D138472.diff +++ b/D138472.diff @@ -1,4 +1,4 @@ -From 04ee57212326f872b6f9402eff438220396ca763 Mon Sep 17 00:00:00 2001 +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 @@ -8,7 +8,7 @@ Subject: [PATCH] Rebased D138472 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/clang/CMakeLists.txt b/clang/CMakeLists.txt -index 090cfa352078..69652733e2f2 100644 +index 090cfa352078..f87838776c32 100644 --- a/clang/CMakeLists.txt +++ b/clang/CMakeLists.txt @@ -118,12 +118,11 @@ if(CLANG_BUILT_STANDALONE) @@ -23,7 +23,7 @@ index 090cfa352078..69652733e2f2 100644 - endif() + endif() + -+ find_package(LLVMGTest) ++ 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() diff --git a/clang.spec b/clang.spec index 83d057f..dd32292 100644 --- a/clang.spec +++ b/clang.spec @@ -341,6 +341,7 @@ sed -i 's/\@FEDORA_LLVM_LIB_SUFFIX\@//g' test/lit.cfg.py -DLLVM_EXTERNAL_LIT=%{_bindir}/lit \ -DLLVM_LIT_ARGS="-vv" \ -DLLVM_MAIN_SRC_DIR=%{_datadir}/llvm/src \ + -DLLVM_CMAKE_DIR=/usr/%{_lib}/cmake/llvm \ %if 0%{?__isa_bits} == 64 -DLLVM_LIBDIR_SUFFIX=64 \ %else From 9a7b4ac902c2719d81e4f60b22683803096c35f3 Mon Sep 17 00:00:00 2001 From: Konrad Kleine Date: Tue, 24 Jan 2023 22:38:21 +0000 Subject: [PATCH 06/19] Add back 0001-cmake-Allow-shared-libraries-to-customize-the-soname.patch --- ...ed-libraries-to-customize-the-soname.patch | 39 +++++++++++++++++++ clang.spec | 1 + 2 files changed, 40 insertions(+) create mode 100644 0001-cmake-Allow-shared-libraries-to-customize-the-soname.patch diff --git a/0001-cmake-Allow-shared-libraries-to-customize-the-soname.patch b/0001-cmake-Allow-shared-libraries-to-customize-the-soname.patch new file mode 100644 index 0000000..e425475 --- /dev/null +++ b/0001-cmake-Allow-shared-libraries-to-customize-the-soname.patch @@ -0,0 +1,39 @@ +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/clang.spec b/clang.spec index dd32292..99bf5f9 100644 --- a/clang.spec +++ b/clang.spec @@ -62,6 +62,7 @@ Patch0: 0001-PATCH-clang-Reorganize-gtest-integration.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 Patch6: 0001-Take-into-account-Fedora-Specific-install-dir-for-li.patch # Make clangBasic and clangDriver depend on LLVMTargetParser From e9eca7e27360715cf2ac4661d0be89636c8f9965 Mon Sep 17 00:00:00 2001 From: Tulio Magno Quites Machado Filho Date: Thu, 16 Feb 2023 16:15:28 -0300 Subject: [PATCH 07/19] Add more fixes to clang 16.0 1. Remove patches that are not necessary. 2. Re-add a patch that generates DWARF4 by default. 3. Add a patch fixing IEEE 128-bit long double tests on ppc64le. 4. Include cmake code. 5. Other minor issues. Part of these changes are heavily based on or copied from the work from Konrad Kleine in branch upstream-snapshot. --- ...H-clang-Reorganize-gtest-integration.patch | 42 ------ ...t-Fedora-Specific-install-dir-for-li.patch | 45 ------- ...ATCH-clang-Produce-DWARF4-by-default.patch | 123 ++++++++++++++++++ clang.spec | 55 ++++---- fix-ieee128-cross.diff | 16 +++ 5 files changed, 167 insertions(+), 114 deletions(-) delete mode 100644 0001-PATCH-clang-Reorganize-gtest-integration.patch delete mode 100644 0001-Take-into-account-Fedora-Specific-install-dir-for-li.patch create mode 100644 0010-PATCH-clang-Produce-DWARF4-by-default.patch create mode 100644 fix-ieee128-cross.diff diff --git a/0001-PATCH-clang-Reorganize-gtest-integration.patch b/0001-PATCH-clang-Reorganize-gtest-integration.patch deleted file mode 100644 index c63aaf1..0000000 --- a/0001-PATCH-clang-Reorganize-gtest-integration.patch +++ /dev/null @@ -1,42 +0,0 @@ -From cfd535d718631c1266baa628904ddfa95284427d Mon Sep 17 00:00:00 2001 -From: serge-sans-paille -Date: Thu, 25 Feb 2021 14:04:52 +0100 -Subject: [PATCH] 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 be59c199f05f..3f882f7aca59 100644 ---- a/clang/CMakeLists.txt -+++ b/clang/CMakeLists.txt -@@ -118,12 +118,6 @@ 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() - - if(LLVM_LIT) -@@ -506,7 +500,11 @@ endif() - - - if( CLANG_INCLUDE_TESTS ) -- if(EXISTS ${LLVM_THIRD_PARTY_DIR}/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} third-party/unittest) - add_subdirectory(unittests) - list(APPEND CLANG_TEST_DEPS ClangUnitTests) - list(APPEND CLANG_TEST_PARAMS --- -2.39.1 - diff --git a/0001-Take-into-account-Fedora-Specific-install-dir-for-li.patch b/0001-Take-into-account-Fedora-Specific-install-dir-for-li.patch deleted file mode 100644 index 4a8fda9..0000000 --- a/0001-Take-into-account-Fedora-Specific-install-dir-for-li.patch +++ /dev/null @@ -1,45 +0,0 @@ -From a85305a801c39720d7ec1c9441a88fef1ac19435 Mon Sep 17 00:00:00 2001 -From: serge-sans-paille -Date: Fri, 9 Sep 2022 10:17:01 +0200 -Subject: [PATCH] Take into account Fedora Specific install dir for libunwind - ---- - clang/lib/Driver/ToolChains/CommonArgs.cpp | 8 +++++++- - clang/test/Driver/linux-ld.c | 2 +- - 2 files changed, 8 insertions(+), 2 deletions(-) - -diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp -index 443725f..c1401a6 100644 ---- a/clang/lib/Driver/ToolChains/CommonArgs.cpp -+++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp -@@ -1529,7 +1529,13 @@ static void AddUnwindLibrary(const ToolChain &TC, const Driver &D, - CmdArgs.push_back("-lgcc_s"); - break; - } -- case ToolChain::UNW_CompilerRT: -+ case ToolChain::UNW_CompilerRT: { -+ SmallString<256> DefaultLibPath = -+ llvm::sys::path::parent_path(TC.getDriver().Dir); -+ llvm::sys::path::append(DefaultLibPath, Twine("lib") + CLANG_LIBDIR_SUFFIX); -+ CmdArgs.push_back( -+ strdup(("-L" + DefaultLibPath + "/llvm-unwind").str().c_str())); -+ } - if (TC.getTriple().isOSAIX()) { - // AIX only has libunwind as a shared library. So do not pass - // anything in if -static is specified. -diff --git a/clang/test/Driver/linux-ld.c b/clang/test/Driver/linux-ld.c -index e76b35d..dfb8eca 100644 ---- a/clang/test/Driver/linux-ld.c -+++ b/clang/test/Driver/linux-ld.c -@@ -299,7 +299,7 @@ - // RUN: --sysroot=%S/Inputs/basic_linux_tree \ - // RUN: | FileCheck --check-prefix=CHECK-CLANG-ANDROID-STATIC %s - // CHECK-CLANG-ANDROID-STATIC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" --// CHECK-CLANG-ANDROID-STATIC: "--start-group" "{{[^"]*}}{{/|\\\\}}libclang_rt.builtins-aarch64-android.a" "-l:libunwind.a" "-lc" "--end-group" -+// CHECK-CLANG-ANDROID-STATIC: "--start-group" "{{[^"]*}}{{/|\\\\}}libclang_rt.builtins-aarch64-android.a" "-L{{[^"]*}}{{/|\\\\}}llvm-unwind" "-l:libunwind.a" "-lc" "--end-group" - // - // RUN: %clang -### %s 2>&1 \ - // RUN: --target=x86_64-unknown-linux -rtlib=platform --unwindlib=platform \ --- -1.8.3.1 - diff --git a/0010-PATCH-clang-Produce-DWARF4-by-default.patch b/0010-PATCH-clang-Produce-DWARF4-by-default.patch new file mode 100644 index 0000000..ea81f74 --- /dev/null +++ b/0010-PATCH-clang-Produce-DWARF4-by-default.patch @@ -0,0 +1,123 @@ +From 4ea62faaaac1aad0fe496cabe9674c809c91c49a Mon Sep 17 00:00:00 2001 +From: Konrad Kleine +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: + +https://github.com/llvm/llvm-project/commit/d3b26dea16108c427b19b5480c9edc76edf8f5b4?diff=unified +--- + 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 +- + 7 files changed, 9 insertions(+), 9 deletions(-) + +diff --git a/clang/include/clang/Driver/ToolChain.h b/clang/include/clang/Driver/ToolChain.h +index f75f35dc9e65..a70ae2b17833 100644 +--- a/clang/include/clang/Driver/ToolChain.h ++++ b/clang/include/clang/Driver/ToolChain.h +@@ -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; } ++ virtual unsigned GetDefaultDwarfVersion() const { return 4; } + + // Some toolchains may have different restrictions on the DWARF version and + // may need to adjust it. E.g. NVPTX may need to enforce DWARF2 even when host +diff --git a/clang/test/CodeGen/dwarf-version.c b/clang/test/CodeGen/dwarf-version.c +index 0a6fa4768026..96f01749d0d8 100644 +--- a/clang/test/CodeGen/dwarf-version.c ++++ b/clang/test/CodeGen/dwarf-version.c +@@ -2,8 +2,8 @@ + // RUN: %clang -target x86_64-linux-gnu -gdwarf-3 -S -emit-llvm -o - %s | FileCheck %s --check-prefix=VER3 + // RUN: %clang -target x86_64-linux-gnu -gdwarf-4 -S -emit-llvm -o - %s | FileCheck %s --check-prefix=VER4 + // RUN: %clang -target x86_64-linux-gnu -gdwarf-5 -S -emit-llvm -o - %s | FileCheck %s --check-prefix=VER5 +-// RUN: %clang -target x86_64-linux-gnu -g -S -emit-llvm -o - %s | FileCheck %s --check-prefix=VER5 +-// RUN: %clang -target x86_64-linux-gnu -gdwarf -S -emit-llvm -o - %s | FileCheck %s --check-prefix=VER5 ++// RUN: %clang -target x86_64-linux-gnu -g -S -emit-llvm -o - %s | FileCheck %s --check-prefix=VER4 ++// RUN: %clang -target x86_64-linux-gnu -gdwarf -S -emit-llvm -o - %s | FileCheck %s --check-prefix=VER4 + + // 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 1d588bdfc1b0..1ad57aedc3a4 100644 +--- a/clang/test/Driver/cl-options.c ++++ b/clang/test/Driver/cl-options.c +@@ -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 /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 ++++ b/clang/test/Driver/clang-g-opts.c +@@ -32,7 +32,7 @@ + + // CHECK-WITHOUT-G-NOT: -debug-info-kind + // CHECK-WITH-G: "-debug-info-kind=constructor" +-// CHECK-WITH-G: "-dwarf-version=5" ++// CHECK-WITH-G: "-dwarf-version=4" + // CHECK-WITH-G-DWARF2: "-dwarf-version=2" + + // CHECK-WITH-G-STANDALONE: "-debug-info-kind=standalone" +diff --git a/clang/test/Driver/ve-toolchain.c b/clang/test/Driver/ve-toolchain.c +index 32e25769b6da..b8a2852daba8 100644 +--- a/clang/test/Driver/ve-toolchain.c ++++ b/clang/test/Driver/ve-toolchain.c +@@ -6,7 +6,7 @@ + /// Checking dwarf-version + + // RUN: %clang -### -g --target=ve %s 2>&1 | FileCheck -check-prefix=DWARF_VER %s +-// DWARF_VER: "-dwarf-version=5" ++// DWARF_VER: "-dwarf-version=4" + + ///----------------------------------------------------------------------------- + /// Checking include-path +diff --git a/clang/test/Driver/ve-toolchain.cpp b/clang/test/Driver/ve-toolchain.cpp +index 5a33d5eceb61..cedf895b36dc 100644 +--- a/clang/test/Driver/ve-toolchain.cpp ++++ b/clang/test/Driver/ve-toolchain.cpp +@@ -7,7 +7,7 @@ + + // RUN: %clangxx -### -g --target=ve-unknown-linux-gnu \ + // RUN: %s 2>&1 | FileCheck -check-prefix=DWARF_VER %s +-// DWARF_VER: "-dwarf-version=5" ++// DWARF_VER: "-dwarf-version=4" + + ///----------------------------------------------------------------------------- + /// Checking include-path +-- +2.39.1 + diff --git a/clang.spec b/clang.spec index 99bf5f9..0d6ffa7 100644 --- a/clang.spec +++ b/clang.spec @@ -37,6 +37,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 Name: %pkg_name @@ -52,18 +53,21 @@ 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 +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} -Source5: macros.%{name} +Source7: macros.%{name} %endif # Patches for clang -Patch0: 0001-PATCH-clang-Reorganize-gtest-integration.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 -Patch6: 0001-Take-into-account-Fedora-Specific-install-dir-for-li.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 # Make clangBasic and clangDriver depend on LLVMTargetParser # See https://reviews.llvm.org/D141581 @@ -72,6 +76,8 @@ Patch7: D141581.diff # See https://reviews.llvm.org/D138472 Patch8: D138472.diff +Patch10: fix-ieee128-cross.diff + %if %{without compat_build} # Patches for clang-tools-extra # See https://reviews.llvm.org/D120301 @@ -254,13 +260,19 @@ 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 @@ -446,20 +458,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}/ %if %{without compat_build} @@ -503,11 +506,11 @@ false %files libs %if %{without compat_build} -%{_libdir}/clang/%{version}/include/* +%{_libdir}/clang/%{maj_ver}/include/* %{_libdir}/*.so.* %else %{pkg_libdir}/*.so.* -%{pkg_libdir}/clang/%{version}/include/* +%{pkg_libdir}/clang/%{maj_ver}/include/* %endif %files devel @@ -528,13 +531,10 @@ false %files resource-filesystem %dir %{pkg_libdir}/clang/ -%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/%{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 +557,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 +581,7 @@ false %{_bindir}/clangd %{_bindir}/diagtool %{_bindir}/hmaptool +%{_bindir}/nvptx-arch %{_bindir}/pp-trace %{_bindir}/c-index-test %{_bindir}/find-all-symbols diff --git a/fix-ieee128-cross.diff b/fix-ieee128-cross.diff new file mode 100644 index 0000000..218c229 --- /dev/null +++ b/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 From 0d9e478352b0c34f0ceee983142dc9421135e909 Mon Sep 17 00:00:00 2001 From: Tulio Magno Quites Machado Filho Date: Thu, 16 Feb 2023 17:05:53 -0300 Subject: [PATCH 08/19] Remove unnecessary file This file stopped being used in 2020. --- hans-gpg-key.asc | 52 ------------------------------------------------ 1 file changed, 52 deletions(-) delete mode 100644 hans-gpg-key.asc diff --git a/hans-gpg-key.asc b/hans-gpg-key.asc deleted file mode 100644 index 4b3cdde..0000000 --- a/hans-gpg-key.asc +++ /dev/null @@ -1,52 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- - -mQINBFS+1SABEACnmkESkY7eZq0GhDjbkWpKmURGk9+ycsfAhA44NqUvf4tk1GPM -5SkJ/fYedYZJaDVhIp98fHgucD0O+vjOzghtgwtITusYjiPHPFBd/MN+MQqSEAP+ -LUa/kjHLjgyXxKhFUIDGVaDWL5tKOA7/AQKl1TyJ8lz89NHQoUHFsF/hu10+qhJe -V65d32MXFehIUSvegh8DrPuExrliSiORO4HOhuc6151dWA4YBWVg4rX5kfKrGMMT -pTWnSSZtgoRhkKW2Ey8cmZUqPuUJIfWyeNVu1e4SFtAivLvu/Ymz2WBJcNA1ZlTr -RCOR5SIRgZ453pQnI/Bzna2nnJ/TV1gGJIGRahj/ini0cs2x1CILfS/YJQ3rWGGo -OxwG0BVmPk0cmLVtyTq8gUPwxcPUd6WcBKhot3TDMlrffZACnQwQjlVjk5S1dEEz -atUfpEuNitU9WOM4jr/gjv36ZNCOWm95YwLhsuci/NddBN8HXhyvs+zYTVZEXa2W -l/FqOdQsQqZBcJjjWckGKhESdd7934+cesGD3O8KaeSGxww7slJrS0+6QJ8oBoAB -P/WCn/y2AiY2syEKp3wYIGJyAbsm542zMZ4nc7pYfSu49mcyhQQICmqN5QvOyYUx -OSqwbAOUNtlOyeRLZNIKoXtTqWDEu5aEiDROTw6Rkq+dIcxPNgOLdeQ3HwARAQAB -tCFIYW5zIFdlbm5ib3JnIDxoYW5zQGNocm9taXVtLm9yZz6JAlUEEwECAD8CGwMG -CwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAFiEEtsj5goK5ROOw1cJTD8MELjRa0F0F -Alpd+i0FCQ8FJo0ACgkQD8MELjRa0F3X3A//dBQLm6GmXlQFjxZbukTw0lZsevFR -M/6ljZTxp7bsC+HFzYoaCKv6rikaWzytxk//SOaLKrB4Z9HjAlpBMtyLl2Hk7tcZ -bPpFafNmQ+4KgWNjLXCvt9se8BGrQvGQUrbE6YowbXa2YIgxIVEncFzIECAsp/+N -xbMcZN5/X1PJxKi/N22gP4nn47muN6L3pKez3CXgWnhGYSc7BuD5ALWYH7yMYUem -d4jlXfu5xkBIqirj1arIYC9wmF4ldbLNDPuracc8LmXcSqa5Rpao0s4iVzAD+tkX -vE/73m3rhepwBXxrfk0McXuI9aucf5h4/KkIBzZsaJ6JM1tzlrJzzjaBKJF9OI5T -jA0qTxdGzdPztS8gPaPcMkRFfh9ti0ZDx4VeF3s8sOtmMRHeGEWfxqUAbBUbwFsa -JDu/+8/VO4KijfcuUi8tqJ/JHeosCuGE7TM93LwJu6ZcqMYOPDROE/hsnGm0ZU92 -xedu+07/X1ESHkSFPoaSHD5/DCNa/tXIyJZ8X7gF3eoDP5mSmrJqIqsOBR9WOVYv -dI8i0GHTXbrZj8WXdoS+N8wlyMLLbAS2jvTe7M5RoqbLz4ABOUUnLVoEE0CiccVZ -bW75BPxOfaD0szbinAeX6HDPI7St0MbKrRPjuDXjD0JVkLqFINtZfYLGMLss4tgn -suefr0Bo9ISwG3u5Ag0EVL7VIAEQAOxBxrQesChjrCqKjY5PnSsSYpeb4froucrC -898AFw2DgN/Zz+W7wtSTbtz/GRcCurjzZvN7o2rCuNk0j0+s1sgZZm2BdldlabLy -+UF/kSW1rb5qhfXcGGubu48OMdtSfok9lOc0Q1L4HNlGE4lUBkZzmI7Ykqfl+Bwr -m9rpi54g4ua9PIiiHIAmMoZIcbtOG1KaDr6CoXRk/3g2ZiGUwhq3jFGroiBsKEap -2FJ1bh5NJk2Eg8pV7fMOF7hUQKBZrNOtIPu8hA5WEgku3U3VYjRSI3SDi6QXnDL+ -xHxajiWpKtF3JjZh8y/CCTD8PyP34YjfZuFmkdske5cdx6H0V2UCiH453ncgFVdQ -DXkY4n+0MTzhy2xu0IVVnBxYDYNhi+3MjTHJd9C4xMi9t+5IuEvDAPhgfZjDpQak -EPz6hVmgj0mlKIgRilBRK9/kOxky9utBpGk3jEJGru/hKNloFNspoYtY6zATAr8E -cOgoCFQE0nIktcg3wF9+OCEnV28/a7XZwUZ7Gl/qfOHtdr374wo8kd8R3V8d2G9q -5w0/uCV9NNQ0fGWZDPDoYt6wnPL6gZv/nJM8oZY+u0rC24WwScZIniaryC4JHDas -Ahr2S2CtgCvBgslK6f3gD16KHxPZMBpX73TzOYIhMEP/vXgVJbUD6dYht+U9c4Oh -EDJown0dABEBAAGJAjwEGAECACYCGwwWIQS2yPmCgrlE47DVwlMPwwQuNFrQXQUC -Wl36SwUJDwUmqwAKCRAPwwQuNFrQXT1/D/9YpRDNgaJl3YVDtVZoeQwh7BQ6ULZT -eXFPogYkF2j3VWg8s9UmAs4sg/4a+9KLSantXjX+JFsRv0lQe5Gr/Vl8VQ4LKEXB -fiGmSivjIZ7eopdd3YP2w6G5T3SA4d2CQfsg4rnJPnXIjzKNiSOi368ybnt9fL0Y -2r2aqLTmP6Y7issDUO+J1TW1XHm349JPR0Hl4cTuNnWm4JuX2m2CJEc5XBlDAha9 -pUVs+J5C2D0UFFkyeOzeJPwy6x5ApWHm84n8AjhQSpu1qRKxKXdwei6tkQWWMHui -+TgSY/zCkmD9/oY15Ei5avJ4WgIbTLJUoZMi70riPmU8ThjpzA7S+Nk0g7rMPq+X -l1whjKU/u0udlsrIJjzkh6ftqKUmIkbxYTpjhnEujNrEr5m2S6Z6x3y9E5QagBMR -dxRhfk+HbyACcP/p9rXOzl4M291DoKeAAH70GHniGxyNs9rAoMr/hD5XW/Wrz3dc -KMc2s555E6MZILE2ZiolcRn+bYOMPZtWlbx98t8uqMf49gY4FGQBZAwPglMrx7mr -m7HTIiXahThQGOJg6izJDAD5RwSEGlAcL28T8KAuM6CLLkhlBfQwiKsUBNnh9r8w -V3lB+pV0GhL+3i077gTYfZBRwLzjFdhm9xUKEaZ6rN1BX9lzix4eSNK5nln0jUq1 -67H2IH//2sf8dw== -=ADVe ------END PGP PUBLIC KEY BLOCK----- From af8d183fda0193fc9909703aca5de7a73ccc164c Mon Sep 17 00:00:00 2001 From: Tulio Magno Quites Machado Filho Date: Thu, 16 Feb 2023 17:08:11 -0300 Subject: [PATCH 09/19] Improve .gitignore Replace many entries with a few entries with globs. Add new files and directories in order to prevent unintentional changes. --- .gitignore | 242 ++--------------------------------------------------- 1 file changed, 5 insertions(+), 237 deletions(-) diff --git a/.gitignore b/.gitignore index 10fb754..4f5174a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,237 +1,5 @@ -/cfe-3.7.1.src.tar.xz -/clang-3.8.0-0.1.fc24.src.rpm -/cfe-3.8.0rc2.src.tar.xz -/cfe-3.8.0rc3.src.tar.xz -/cfe-3.8.0.src.tar.xz -/cfe-3.9.0.src.tar.xz -/cfe-3.9.1.src.tar.xz -/clang-tools-extra-3.9.1.src.tar.xz -/cfe-4.0.0.src.tar.xz -/clang-tools-extra-4.0.0.src.tar.xz -/test-suite-4.0.0.src.tar.xz -/cfe-4.0.1.src.tar.xz -/test-suite-4.0.1.src.tar.xz -/clang-tools-extra-4.0.1.src.tar.xz -/cfe-5.0.0.src.tar.xz -/test-suite-5.0.0.src.tar.xz -/clang-tools-extra-5.0.0.src.tar.xz -/clang-tools-extra-5.0.1.src.tar.xz -/cfe-5.0.1.src.tar.xz -/test-suite-5.0.1.src.tar.xz -/cfe-6.0.0rc1.src.tar.xz -/clang-tools-extra-6.0.0rc1.src.tar.xz -/test-suite-6.0.0rc1.src.tar.xz -/cfe-6.0.0rc2.src.tar.xz -/test-suite-6.0.0rc2.src.tar.xz -/clang-tools-extra-6.0.0rc2.src.tar.xz -/cfe-6.0.0.src.tar.xz -/test-suite-6.0.0.src.tar.xz -/clang-tools-extra-6.0.0.src.tar.xz -/cfe-6.0.1rc1.src.tar.xz -/clang-tools-extra-6.0.1rc1.src.tar.xz -/test-suite-6.0.1rc1.src.tar.xz -/cfe-6.0.1rc2.src.tar.xz -/clang-tools-extra-6.0.1rc2.src.tar.xz -/test-suite-6.0.1rc2.src.tar.xz -/cfe-6.0.1.src.tar.xz -/clang-tools-extra-6.0.1.src.tar.xz -/test-suite-6.0.1.src.tar.xz -/cfe-7.0.0rc1.src.tar.xz -/test-suite-7.0.0rc1.src.tar.xz -/clang-tools-extra-7.0.0rc1.src.tar.xz -/test-suite-7.0.0rc1.src.fedora.tar.gz -/test-suite-7.0.0rc1.src.fedora.tar.xz -/cfe-7.0.0rc2.src.tar.xz -/clang-tools-extra-7.0.0rc2.src.tar.xz -/test-suite-7.0.0rc2.src.fedora.tar.xz -/cfe-7.0.0rc3.src.tar.xz -/clang-tools-extra-7.0.0rc3.src.tar.xz -/test-suite-7.0.0rc3.src.fedora.tar.xz -/cfe-7.0.0.src.tar.xz -/test-suite-7.0.0.src.fedora.tar.xz -/clang-tools-extra-7.0.0.src.tar.xz -/clang-tools-extra-7.0.1.src.tar.xz -/cfe-7.0.1.src.tar.xz -/clang-tools-extra-8.0.0rc1.src.tar.xz -/cfe-8.0.0rc1.src.tar.xz -/cfe-8.0.0rc2.src.tar.xz -/clang-tools-extra-8.0.0rc2.src.tar.xz -/cfe-8.0.0rc3.src.tar.xz -/clang-tools-extra-8.0.0rc3.src.tar.xz - -/cfe-8.0.0rc4.src.tar.xz -/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 -/cfe-9.0.0.src.tar.xz -/clang-tools-extra-9.0.0.src.tar.xz -/clang-9.0.1.src.tar.xz -/clang-tools-extra-9.0.1.src.tar.xz -/clang-10.0.0rc1.src.tar.xz -/clang-tools-extra-10.0.0rc1.src.tar.xz -/clang-10.0.0rc1.src.tar.xz.sig -/clang-tools-extra-10.0.0rc1.src.tar.xz.sig -/clang-10.0.0rc2.src.tar.xz -/clang-tools-extra-10.0.0rc2.src.tar.xz -/clang-tools-extra-10.0.0rc2.src.tar.xz.sig -/clang-10.0.0rc2.src.tar.xz.sig -/clang-10.0.0rc3.src.tar.xz -/clang-tools-extra-10.0.0rc3.src.tar.xz -/clang-tools-extra-10.0.0rc3.src.tar.xz.sig -/clang-10.0.0rc3.src.tar.xz.sig -/clang-10.0.0rc4.src.tar.xz -/clang-tools-extra-10.0.0rc4.src.tar.xz -/clang-tools-extra-10.0.0rc4.src.tar.xz.sig -/clang-10.0.0rc4.src.tar.xz.sig -/clang-10.0.0rc5.src.tar.xz -/clang-tools-extra-10.0.0rc5.src.tar.xz -/clang-tools-extra-10.0.0rc5.src.tar.xz.sig -/clang-10.0.0rc5.src.tar.xz.sig -/clang-10.0.0rc6.src.tar.xz -/clang-tools-extra-10.0.0rc6.src.tar.xz -/clang-tools-extra-10.0.0rc6.src.tar.xz.sig -/clang-10.0.0rc6.src.tar.xz.sig -/clang-10.0.0.src.tar.xz.sig -/clang-tools-extra-10.0.0.src.tar.xz.sig -/clang-tools-extra-10.0.0.src.tar.xz -/clang-10.0.0.src.tar.xz -/clang-11.0.0rc1.src.tar.xz -/clang-tools-extra-11.0.0rc1.src.tar.xz -/clang-tools-extra-11.0.0rc1.src.tar.xz.sig -/clang-11.0.0rc1.src.tar.xz.sig -/clang-11.0.0rc2.src.tar.xz -/clang-tools-extra-11.0.0rc2.src.tar.xz -/clang-tools-extra-11.0.0rc2.src.tar.xz.sig -/clang-11.0.0rc2.src.tar.xz.sig -/clang-11.0.0rc3.src.tar.xz -/clang-tools-extra-11.0.0rc3.src.tar.xz -/clang-tools-extra-11.0.0rc3.src.tar.xz.sig -/clang-11.0.0rc3.src.tar.xz.sig -/clang-11.0.0rc5.src.tar.xz -/clang-11.0.0rc5.src.tar.xz.sig -/clang-tools-extra-11.0.0rc5.src.tar.xz -/clang-tools-extra-11.0.0rc5.src.tar.xz.sig -/clang-11.0.0rc6.src.tar.xz -/clang-11.0.0rc6.src.tar.xz.sig -/clang-tools-extra-11.0.0rc6.src.tar.xz -/clang-tools-extra-11.0.0rc6.src.tar.xz.sig -/clang-11.0.0.src.tar.xz -/clang-11.0.0.src.tar.xz.sig -/clang-tools-extra-11.0.0.src.tar.xz -/clang-tools-extra-11.0.0.src.tar.xz.sig -/clang-11.0.1rc1.src.tar.xz -/clang-11.0.1rc1.src.tar.xz.sig -/clang-tools-extra-11.0.1rc1.src.tar.xz -/clang-tools-extra-11.0.1rc1.src.tar.xz.sig -/clang-tools-extra-11.0.1rc2.src.tar.xz -/clang-tools-extra-11.0.1rc2.src.tar.xz.sig -/clang-11.0.1rc2.src.tar.xz.sig -/clang-11.0.1rc2.src.tar.xz -/clang-11.0.1.src.tar.xz -/clang-11.0.1.src.tar.xz.sig -/clang-tools-extra-11.0.1.src.tar.xz -/clang-tools-extra-11.0.1.src.tar.xz.sig -/clang-11.1.0rc1.src.tar.xz -/clang-tools-extra-11.1.0rc1.src.tar.xz -/clang-tools-extra-11.1.0rc1.src.tar.xz.sig -/clang-11.1.0rc1.src.tar.xz.sig -/clang-11.1.0rc2.src.tar.xz -/clang-tools-extra-11.1.0rc2.src.tar.xz -/clang-tools-extra-11.1.0rc2.src.tar.xz.sig -/clang-11.1.0rc2.src.tar.xz.sig -/clang-12.0.0rc1.src.tar.xz -/clang-tools-extra-12.0.0rc1.src.tar.xz -/clang-tools-extra-12.0.0rc1.src.tar.xz.sig -/clang-12.0.0rc1.src.tar.xz.sig -/clang-12.0.0rc2.src.tar.xz -/clang-tools-extra-12.0.0rc2.src.tar.xz -/clang-tools-extra-12.0.0rc2.src.tar.xz.sig -/clang-12.0.0rc2.src.tar.xz.sig -/clang-12.0.0rc3.src.tar.xz -/clang-12.0.0rc3.src.tar.xz.sig -/clang-tools-extra-12.0.0rc3.src.tar.xz -/clang-tools-extra-12.0.0rc3.src.tar.xz.sig -/clang-12.0.0rc4.src.tar.xz -/clang-tools-extra-12.0.0rc4.src.tar.xz -/clang-tools-extra-12.0.0rc4.src.tar.xz.sig -/clang-12.0.0rc4.src.tar.xz.sig -/clang-12.0.0rc5.src.tar.xz -/clang-tools-extra-12.0.0rc5.src.tar.xz -/clang-tools-extra-12.0.0rc5.src.tar.xz.sig -/clang-12.0.0rc5.src.tar.xz.sig -/clang-12.0.0.src.tar.xz -/clang-12.0.0.src.tar.xz.sig -/clang-tools-extra-12.0.0.src.tar.xz -/clang-tools-extra-12.0.0.src.tar.xz.sig -/clang-tools-extra-12.0.1rc1.src.tar.xz -/clang-tools-extra-12.0.1rc1.src.tar.xz.sig -/clang-12.0.1rc1.src.tar.xz -/clang-12.0.1rc1.src.tar.xz.sig -/clang-12.0.1rc3.src.tar.xz -/clang-12.0.1rc3.src.tar.xz.sig -/clang-tools-extra-12.0.1rc3.src.tar.xz -/clang-tools-extra-12.0.1rc3.src.tar.xz.sig -/clang-12.0.1.src.tar.xz -/clang-12.0.1.src.tar.xz.sig -/clang-tools-extra-12.0.1.src.tar.xz -/clang-tools-extra-12.0.1.src.tar.xz.sig -/clang-13.0.0rc1.src.tar.xz -/clang-13.0.0rc1.src.tar.xz.sig -/clang-tools-extra-13.0.0rc1.src.tar.xz -/clang-tools-extra-13.0.0rc1.src.tar.xz.sig -/clang-13.0.0rc3.src.tar.xz -/clang-13.0.0rc3.src.tar.xz.sig -/clang-tools-extra-13.0.0rc3.src.tar.xz -/clang-tools-extra-13.0.0rc3.src.tar.xz.sig -/clang-13.0.0rc4.src.tar.xz -/clang-tools-extra-13.0.0rc4.src.tar.xz.sig -/clang-tools-extra-13.0.0rc4.src.tar.xz -/clang-13.0.0rc4.src.tar.xz.sig -/clang-13.0.0.src.tar.xz -/clang-13.0.0.src.tar.xz.sig -/clang-tools-extra-13.0.0.src.tar.xz.sig -/clang-tools-extra-13.0.0.src.tar.xz -/clang-13.0.1rc1.src.tar.xz -/clang-13.0.1rc1.src.tar.xz.sig -/clang-tools-extra-13.0.1rc1.src.tar.xz -/clang-tools-extra-13.0.1rc1.src.tar.xz.sig -/clang-13.0.1rc2.src.tar.xz -/clang-13.0.1rc2.src.tar.xz.sig -/clang-tools-extra-13.0.1rc2.src.tar.xz -/clang-tools-extra-13.0.1rc2.src.tar.xz.sig -/clang-13.0.1rc3.src.tar.xz -/clang-13.0.1rc3.src.tar.xz.sig -/clang-tools-extra-13.0.1rc3.src.tar.xz -/clang-tools-extra-13.0.1rc3.src.tar.xz.sig -/clang-13.0.1.src.tar.xz -/clang-13.0.1.src.tar.xz.sig -/clang-tools-extra-13.0.1.src.tar.xz -/clang-tools-extra-13.0.1.src.tar.xz.sig -/clang-14.0.0.src.tar.xz -/clang-tools-extra-14.0.0.src.tar.xz -/clang-tools-extra-14.0.0.src.tar.xz.sig -/clang-14.0.0.src.tar.xz.sig -/clang-tools-extra-14.0.5.src.tar.xz -/clang-tools-extra-14.0.5.src.tar.xz.sig -/clang-14.0.5.src.tar.xz.sig -/clang-14.0.5.src.tar.xz -/clang-tools-extra-15.0.0.src.tar.xz -/clang-tools-extra-15.0.0.src.tar.xz.sig -/clang-15.0.0.src.tar.xz -/clang-15.0.0.src.tar.xz.sig -/clang-tools-extra-15.0.4.src.tar.xz -/clang-tools-extra-15.0.4.src.tar.xz.sig -/clang-15.0.4.src.tar.xz -/clang-15.0.4.src.tar.xz.sig -/clang-15.0.6.src.tar.xz -/clang-15.0.6.src.tar.xz.sig -/clang-tools-extra-15.0.6.src.tar.xz -/clang-tools-extra-15.0.6.src.tar.xz.sig -/clang-15.0.7.src.tar.xz -/clang-15.0.7.src.tar.xz.sig -/clang-tools-extra-15.0.7.src.tar.xz -/clang-tools-extra-15.0.7.src.tar.xz.sig +/*.src.rpm +/*.src.tar.xz +/*.src.tar.xz.sig +/cmake/ +/results_clang/ From 1bafe64a40187149631a24b28c071b8cc5dca4d9 Mon Sep 17 00:00:00 2001 From: Tulio Magno Quites Machado Filho Date: Fri, 3 Mar 2023 10:16:01 -0300 Subject: [PATCH 10/19] Update to LLVM 16.0.0 RC3 --- clang.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/clang.spec b/clang.spec index 0d6ffa7..6f643ac 100644 --- a/clang.spec +++ b/clang.spec @@ -10,7 +10,7 @@ %global maj_ver 16 %global min_ver 0 %global patch_ver 0 -%global rc_ver 1 +%global rc_ver 3 %global clang_version %{maj_ver}.%{min_ver}.%{patch_ver} %if %{with compat_build} @@ -42,7 +42,7 @@ Name: %pkg_name Version: %{clang_version}%{?rc_ver:~rc%{rc_ver}} -Release: 3%{?dist} +Release: 1%{?dist} Summary: A C language family front-end for LLVM License: Apache-2.0 WITH LLVM-exception OR NCSA @@ -611,6 +611,9 @@ false %endif %changelog +* Thu Feb 23 2023 Tulio Magno Quites Machado Filho - 16.0.0~rc3-1 +- Update to LLVM 16.0.0 RC3 + * Thu Jan 19 2023 Tulio Magno Quites Machado Filho - 15.0.7-3 - Update license to SPDX identifiers. - Include the Apache license adopted in 2019. From 4cb2bd60c5856d81b8dc2c4beee7f54fc308bd69 Mon Sep 17 00:00:00 2001 From: Tulio Magno Quites Machado Filho Date: Tue, 14 Mar 2023 17:10:39 -0300 Subject: [PATCH 11/19] Fix RPM macro clang_resource_dir --- clang.spec | 5 ++++- macros.clang | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/clang.spec b/clang.spec index 6f643ac..c2cd681 100644 --- a/clang.spec +++ b/clang.spec @@ -42,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: Apache-2.0 WITH LLVM-exception OR NCSA @@ -611,6 +611,9 @@ false %endif %changelog +* Tue Mar 14 2023 Tulio Magno Quites Machado Filho - 16.0.0~rc3-2 +- Fix RPM macro clang_resource_dir + * Thu Feb 23 2023 Tulio Magno Quites Machado Filho - 16.0.0~rc3-1 - Update to LLVM 16.0.0 RC3 diff --git a/macros.clang b/macros.clang index 1f26e35..6f35452 100644 --- a/macros.clang +++ b/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. From f419afebc411a8f5278c44d6c177260676d71c69 Mon Sep 17 00:00:00 2001 From: Tulio Magno Quites Machado Filho Date: Wed, 15 Mar 2023 14:20:42 -0300 Subject: [PATCH 12/19] Update to LLVM 16.0.0 RC4 --- clang.spec | 7 +++++-- sources | 10 ++++++---- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/clang.spec b/clang.spec index c2cd681..ef985a7 100644 --- a/clang.spec +++ b/clang.spec @@ -10,7 +10,7 @@ %global maj_ver 16 %global min_ver 0 %global patch_ver 0 -%global rc_ver 3 +%global rc_ver 4 %global clang_version %{maj_ver}.%{min_ver}.%{patch_ver} %if %{with compat_build} @@ -42,7 +42,7 @@ Name: %pkg_name Version: %{clang_version}%{?rc_ver:~rc%{rc_ver}} -Release: 2%{?dist} +Release: 1%{?dist} Summary: A C language family front-end for LLVM License: Apache-2.0 WITH LLVM-exception OR NCSA @@ -611,6 +611,9 @@ false %endif %changelog +* Tue Mar 14 2023 Tulio Magno Quites Machado Filho - 16.0.0~rc4-1 +- Update to LLVM 16.0.0 RC4 + * Tue Mar 14 2023 Tulio Magno Quites Machado Filho - 16.0.0~rc3-2 - Fix RPM macro clang_resource_dir diff --git a/sources b/sources index 217a12d..02411d0 100644 --- a/sources +++ b/sources @@ -1,4 +1,6 @@ -SHA512 (clang-15.0.7.src.tar.xz) = 9fd2736a9f5993ddbb5b3c507fe497234a6def64f6f418f379d1ca56c9c361ad1ae9a5445ab938230fbc1671ec00b4f802a412b048569023863c20dc6bb46a1f -SHA512 (clang-15.0.7.src.tar.xz.sig) = e1b41c5a6509c3554794bfa1b8d048f13268bc2234d7480f04f7700e27bd9d53e40bc1433885716a64da57458f3041c42a66639045476daefffc3f5d2e3d6efd -SHA512 (clang-tools-extra-15.0.7.src.tar.xz) = dd95d261d3a1618967b698e97ac0b41204d872d7479c0c832fcf5a91fe447af6a97fa794de07b3e271285867b30b905688f090e98f516b9df4cdfb3bad9defc6 -SHA512 (clang-tools-extra-15.0.7.src.tar.xz.sig) = 10887b80d453d1ec826afbf5cfd937d5b671ed73f54691072b2b097da21f9358b8d6372df79200dc0694cbbc40b816c4139690b4e7033ba03a8a9b92611ee4ce +SHA512 (clang-16.0.0rc4.src.tar.xz) = ac34caacf238a359a9f4dc7f6d7f8ea09869ec45b0ae768a54bb35cf9066e8dbe5dc32f0536f7501b1769e733c9000aa7298bee279ea26e560956de2a284ad7a +SHA512 (clang-16.0.0rc4.src.tar.xz.sig) = ee6c6cf2f44140b69be0d892e405bcbd85b43bc003cf55fe6b295c3a8c32fda53fd9e75b237f5497b5b6c9c18c6d01a9222be740f63afd3b163e544db13eedd0 +SHA512 (clang-tools-extra-16.0.0rc4.src.tar.xz) = 1bdbebeb09b31ba421b514e3aa6e8d22bdc112e994cf803044f3a6f6887f6cc870ded2d62286a87b8e6554794cad7bfeaf39a77b68715be5d992200c770edc18 +SHA512 (clang-tools-extra-16.0.0rc4.src.tar.xz.sig) = 9ecc0c335ecc9f50cbbb5ca94f096e17bc9396d4554a000c07af0a15a88de6556234f2dba30b5c5fedb2cc90215876257be28f5738df1b85478d39526f4e1530 +SHA512 (cmake-16.0.0rc4.src.tar.xz) = 888cd3cf6a8eeca1306ab8a45fbcf0fdc91f10e34dc29a0bf7aef5b1efc9af0ab54866584857fbfb725147c8e4bc1a11e8a1b247fe439ebf93fe6a73fb004101 +SHA512 (cmake-16.0.0rc4.src.tar.xz.sig) = c2e4d7b79c5d2524449b8444eb4a9e1e625c50fc27dabcdd7410f44cc5b67cdd7931a5f31bc4b7652a034687d10d551aa9d89e3c01771d1b3e42b2b3a901745f From daaf0ad7abb878795c84b7d6caafdc2cbc95239b Mon Sep 17 00:00:00 2001 From: Tulio Magno Quites Machado Filho Date: Fri, 17 Mar 2023 08:17:08 -0300 Subject: [PATCH 13/19] Fix ppc64le tests with the right triple --- 0001-PowerPC-clang-Fix-triple.patch | 26 ++++++++++++++++++++++++++ clang.spec | 8 ++++++-- 2 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 0001-PowerPC-clang-Fix-triple.patch diff --git a/0001-PowerPC-clang-Fix-triple.patch b/0001-PowerPC-clang-Fix-triple.patch new file mode 100644 index 0000000..f8e6912 --- /dev/null +++ b/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/clang.spec b/clang.spec index ef985a7..8902465 100644 --- a/clang.spec +++ b/clang.spec @@ -42,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: Apache-2.0 WITH LLVM-exception OR NCSA @@ -68,7 +68,8 @@ Patch4: 0001-cmake-Allow-shared-libraries-to-customize-the-soname.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 @@ -611,6 +612,9 @@ false %endif %changelog +* Thu Mar 16 2023 Tulio Magno Quites Machado Filho - 16.0.0~rc4-2 +- Fix tests with the right triple + * Tue Mar 14 2023 Tulio Magno Quites Machado Filho - 16.0.0~rc4-1 - Update to LLVM 16.0.0 RC4 From 914aca4e3560156bc9f8604b107d776e557c0bd3 Mon Sep 17 00:00:00 2001 From: Tulio Magno Quites Machado Filho Date: Tue, 21 Mar 2023 08:55:44 -0300 Subject: [PATCH 14/19] Update to LLVM 16.0.0 --- clang.spec | 7 +++++-- sources | 12 ++++++------ 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/clang.spec b/clang.spec index 8902465..77a0aca 100644 --- a/clang.spec +++ b/clang.spec @@ -10,7 +10,7 @@ %global maj_ver 16 %global min_ver 0 %global patch_ver 0 -%global rc_ver 4 +#global rc_ver 4 %global clang_version %{maj_ver}.%{min_ver}.%{patch_ver} %if %{with compat_build} @@ -42,7 +42,7 @@ Name: %pkg_name Version: %{clang_version}%{?rc_ver:~rc%{rc_ver}} -Release: 2%{?dist} +Release: 1%{?dist} Summary: A C language family front-end for LLVM License: Apache-2.0 WITH LLVM-exception OR NCSA @@ -612,6 +612,9 @@ false %endif %changelog +* Mon Mar 20 2023 Tulio Magno Quites Machado Filho - 16.0.0-1 +- Update to LLVM 16.0.0 + * Thu Mar 16 2023 Tulio Magno Quites Machado Filho - 16.0.0~rc4-2 - Fix tests with the right triple diff --git a/sources b/sources index 02411d0..c1b29d2 100644 --- a/sources +++ b/sources @@ -1,6 +1,6 @@ -SHA512 (clang-16.0.0rc4.src.tar.xz) = ac34caacf238a359a9f4dc7f6d7f8ea09869ec45b0ae768a54bb35cf9066e8dbe5dc32f0536f7501b1769e733c9000aa7298bee279ea26e560956de2a284ad7a -SHA512 (clang-16.0.0rc4.src.tar.xz.sig) = ee6c6cf2f44140b69be0d892e405bcbd85b43bc003cf55fe6b295c3a8c32fda53fd9e75b237f5497b5b6c9c18c6d01a9222be740f63afd3b163e544db13eedd0 -SHA512 (clang-tools-extra-16.0.0rc4.src.tar.xz) = 1bdbebeb09b31ba421b514e3aa6e8d22bdc112e994cf803044f3a6f6887f6cc870ded2d62286a87b8e6554794cad7bfeaf39a77b68715be5d992200c770edc18 -SHA512 (clang-tools-extra-16.0.0rc4.src.tar.xz.sig) = 9ecc0c335ecc9f50cbbb5ca94f096e17bc9396d4554a000c07af0a15a88de6556234f2dba30b5c5fedb2cc90215876257be28f5738df1b85478d39526f4e1530 -SHA512 (cmake-16.0.0rc4.src.tar.xz) = 888cd3cf6a8eeca1306ab8a45fbcf0fdc91f10e34dc29a0bf7aef5b1efc9af0ab54866584857fbfb725147c8e4bc1a11e8a1b247fe439ebf93fe6a73fb004101 -SHA512 (cmake-16.0.0rc4.src.tar.xz.sig) = c2e4d7b79c5d2524449b8444eb4a9e1e625c50fc27dabcdd7410f44cc5b67cdd7931a5f31bc4b7652a034687d10d551aa9d89e3c01771d1b3e42b2b3a901745f +SHA512 (clang-16.0.0.src.tar.xz) = 2a6ff3b4d61b4e9fcb60a6d9dae451170cd91acc25f924a29c18c579ee78af76d2d5eebb2940d61676e2e791fb247ccf9f5377b5528f3a0fa7dd0ac8e72816ba +SHA512 (clang-16.0.0.src.tar.xz.sig) = 3f68c324f50ff467138397fb75f616dfae7efcf6e26692baf6b79efc02da30573c45ac13d5bfdcc0ef9d0eae3484cf0cbfc7d5c7ad4037d07210edb8be72ab86 +SHA512 (clang-tools-extra-16.0.0.src.tar.xz) = a96498a3ce72cfa1be783455bbdbbde22ee3842652c584cabbae8ca0658ad394ede479cad1d8535bc1c5dc95a52551a059394e968d69b3e9745a95229aecdcc2 +SHA512 (clang-tools-extra-16.0.0.src.tar.xz.sig) = b6cf64f1eef00eaa5034850a4badb37a17522980633c2d12b52ca578c67d44843f2652a1ff5c505a219bf5fc2928d85d147cf4dca28308ebb8433a1ee6e41342 +SHA512 (cmake-16.0.0.src.tar.xz) = 4f21461aa8165061dbea47dcda4f098957e16bd307484bcb66884cf5a0776197f69a74002d5601229c4630db53ac44049f3f2ce1e96a6bb16ba3df828d387932 +SHA512 (cmake-16.0.0.src.tar.xz.sig) = c8e22d62b73ed56e66af6e7ce7a8f41de7cc16cd1243ebb602a3e5077141c03d64ca75295ca08b0051c887f59c7a53b871f7a45ead3275e11310f574a50856aa From 1903e547f9943cfe4e64d9d0e364897b24c8f6f4 Mon Sep 17 00:00:00 2001 From: Tulio Magno Quites Machado Filho Date: Mon, 27 Mar 2023 09:18:28 -0300 Subject: [PATCH 15/19] Remove unnecessary patch and macro --- ...ed-libraries-to-customize-the-soname.patch | 39 ------------------- clang.spec | 7 ++-- 2 files changed, 4 insertions(+), 42 deletions(-) delete mode 100644 0001-cmake-Allow-shared-libraries-to-customize-the-soname.patch diff --git a/0001-cmake-Allow-shared-libraries-to-customize-the-soname.patch b/0001-cmake-Allow-shared-libraries-to-customize-the-soname.patch deleted file mode 100644 index e425475..0000000 --- a/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/clang.spec b/clang.spec index 77a0aca..57a379f 100644 --- a/clang.spec +++ b/clang.spec @@ -42,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: Apache-2.0 WITH LLVM-exception OR NCSA @@ -64,7 +64,6 @@ Source7: macros.%{name} 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 # 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 @@ -345,7 +344,6 @@ sed -i 's/\@FEDORA_LLVM_LIB_SUFFIX\@//g' test/lit.cfg.py %endif %if %{with compat_build} -DCLANG_BUILD_TOOLS:BOOL=OFF \ - -DLLVM_CMAKE_DIR=%{install_libdir}/cmake/llvm \ -DCMAKE_INSTALL_PREFIX=%{install_prefix} \ -DCLANG_INCLUDE_TESTS:BOOL=OFF \ %else @@ -612,6 +610,9 @@ false %endif %changelog +* Thu Mar 23 2023 Tulio Magno Quites Machado Filho - 16.0.0-2 +- Remove unnecessary patch and macro + * Mon Mar 20 2023 Tulio Magno Quites Machado Filho - 16.0.0-1 - Update to LLVM 16.0.0 From 26e1e7260310de53883e673fcc71707ebe398709 Mon Sep 17 00:00:00 2001 From: Tulio Magno Quites Machado Filho Date: Tue, 4 Apr 2023 17:13:57 -0300 Subject: [PATCH 16/19] Remove pocl-related tests pocl has been FTBFS since Fedora 38. There is a plan to orphan it. --- tests/build-gating-pocl.fmf | 34 ---------------------------------- 1 file changed, 34 deletions(-) delete mode 100644 tests/build-gating-pocl.fmf diff --git a/tests/build-gating-pocl.fmf b/tests/build-gating-pocl.fmf deleted file mode 100644 index 6fda183..0000000 --- a/tests/build-gating-pocl.fmf +++ /dev/null @@ -1,34 +0,0 @@ -summary: PoCL clang tests for build/PR gating -adjust: - - because: "Plan to be ran when either executed locally, or executed by CI system to gate a build or PR." - when: >- - trigger is defined - and trigger != commit - and trigger != build - enabled: false - - - because: "PoCL is shipped with Fedora, not RHEL/CentOS" - when: >- - distro == rhel - or distro == centos - enabled: false - -discover: - how: fmf - test: pocl - url: https://src.fedoraproject.org/tests/clang.git - ref: main -execute: - how: tmt -prepare: - # Programs linked against pocl should be able to run without clang installed, - # so when we run the test we want to make sure clang is not installed to - # verify we haven't introduced an implicit dependency on clang. - - name: Drop clang - how: shell - script: | - dnf erase -y clang - -provision: - hardware: - memory: ">= 4 GiB" From 1ed3539a3fb13658867075059f0d91672a48400a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Wed, 12 Apr 2023 13:48:18 +0200 Subject: [PATCH 17/19] Use correct source for macros file --- clang.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/clang.spec b/clang.spec index 57a379f..501db06 100644 --- a/clang.spec +++ b/clang.spec @@ -42,7 +42,7 @@ Name: %pkg_name Version: %{clang_version}%{?rc_ver:~rc%{rc_ver}} -Release: 2%{?dist} +Release: 3%{?dist} Summary: A C language family front-end for LLVM License: Apache-2.0 WITH LLVM-exception OR NCSA @@ -406,7 +406,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}|" \ @@ -610,6 +610,9 @@ false %endif %changelog +* Wed Apr 12 2023 Timm Bäder - 16.0.0-3 +- Use correct source for clang.macros file + * Thu Mar 23 2023 Tulio Magno Quites Machado Filho - 16.0.0-2 - Remove unnecessary patch and macro From 9a88eef781b16fd857927e97a9a22f131b55c363 Mon Sep 17 00:00:00 2001 From: Jan200101 Date: Tue, 11 Apr 2023 19:15:25 +0200 Subject: [PATCH 18/19] Move LLVM_CMAKE_DIR to compat builds partially reverts 1903e547f9943cfe4e64d9d0e364897b24c8f6f4 --- clang.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clang.spec b/clang.spec index 501db06..0c5d51b 100644 --- a/clang.spec +++ b/clang.spec @@ -346,6 +346,7 @@ sed -i 's/\@FEDORA_LLVM_LIB_SUFFIX\@//g' test/lit.cfg.py -DCLANG_BUILD_TOOLS:BOOL=OFF \ -DCMAKE_INSTALL_PREFIX=%{install_prefix} \ -DCLANG_INCLUDE_TESTS:BOOL=OFF \ + -DLLVM_CMAKE_DIR=%{install_libdir}/cmake/llvm \ %else -DCLANG_INCLUDE_TESTS:BOOL=ON \ -DLLVM_BUILD_UTILS:BOOL=ON \ @@ -353,7 +354,6 @@ sed -i 's/\@FEDORA_LLVM_LIB_SUFFIX\@//g' test/lit.cfg.py -DLLVM_EXTERNAL_LIT=%{_bindir}/lit \ -DLLVM_LIT_ARGS="-vv" \ -DLLVM_MAIN_SRC_DIR=%{_datadir}/llvm/src \ - -DLLVM_CMAKE_DIR=/usr/%{_lib}/cmake/llvm \ %if 0%{?__isa_bits} == 64 -DLLVM_LIBDIR_SUFFIX=64 \ %else From 99fab0032237c7a8da020392397ff41a5b44c121 Mon Sep 17 00:00:00 2001 From: Tulio Magno Quites Machado Filho Date: Wed, 12 Apr 2023 22:22:34 -0300 Subject: [PATCH 19/19] Update to LLVM 16.0.1 --- clang.spec | 7 +++++-- sources | 12 ++++++------ 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/clang.spec b/clang.spec index 0c5d51b..856d2c3 100644 --- a/clang.spec +++ b/clang.spec @@ -9,7 +9,7 @@ %global maj_ver 16 %global min_ver 0 -%global patch_ver 0 +%global patch_ver 1 #global rc_ver 4 %global clang_version %{maj_ver}.%{min_ver}.%{patch_ver} @@ -42,7 +42,7 @@ Name: %pkg_name Version: %{clang_version}%{?rc_ver:~rc%{rc_ver}} -Release: 3%{?dist} +Release: 1%{?dist} Summary: A C language family front-end for LLVM License: Apache-2.0 WITH LLVM-exception OR NCSA @@ -610,6 +610,9 @@ false %endif %changelog +* Wed Apr 12 2023 Tulio Magno Quites Machado Filho - 16.0.1-1 +- Update to LLVM 16.0.1 + * Wed Apr 12 2023 Timm Bäder - 16.0.0-3 - Use correct source for clang.macros file diff --git a/sources b/sources index c1b29d2..c70dde7 100644 --- a/sources +++ b/sources @@ -1,6 +1,6 @@ -SHA512 (clang-16.0.0.src.tar.xz) = 2a6ff3b4d61b4e9fcb60a6d9dae451170cd91acc25f924a29c18c579ee78af76d2d5eebb2940d61676e2e791fb247ccf9f5377b5528f3a0fa7dd0ac8e72816ba -SHA512 (clang-16.0.0.src.tar.xz.sig) = 3f68c324f50ff467138397fb75f616dfae7efcf6e26692baf6b79efc02da30573c45ac13d5bfdcc0ef9d0eae3484cf0cbfc7d5c7ad4037d07210edb8be72ab86 -SHA512 (clang-tools-extra-16.0.0.src.tar.xz) = a96498a3ce72cfa1be783455bbdbbde22ee3842652c584cabbae8ca0658ad394ede479cad1d8535bc1c5dc95a52551a059394e968d69b3e9745a95229aecdcc2 -SHA512 (clang-tools-extra-16.0.0.src.tar.xz.sig) = b6cf64f1eef00eaa5034850a4badb37a17522980633c2d12b52ca578c67d44843f2652a1ff5c505a219bf5fc2928d85d147cf4dca28308ebb8433a1ee6e41342 -SHA512 (cmake-16.0.0.src.tar.xz) = 4f21461aa8165061dbea47dcda4f098957e16bd307484bcb66884cf5a0776197f69a74002d5601229c4630db53ac44049f3f2ce1e96a6bb16ba3df828d387932 -SHA512 (cmake-16.0.0.src.tar.xz.sig) = c8e22d62b73ed56e66af6e7ce7a8f41de7cc16cd1243ebb602a3e5077141c03d64ca75295ca08b0051c887f59c7a53b871f7a45ead3275e11310f574a50856aa +SHA512 (clang-16.0.1.src.tar.xz) = c7ef4c386471850f30e194d0a8afe95fdd366c9182b1cdd7653342dcbf72a2b90970c0c4cc900314a26ba131163adec234eec00816207266fbe9c2259d01b61a +SHA512 (clang-16.0.1.src.tar.xz.sig) = 31756b55641debde8e075819a3705c9fbf9a3e39d0f5da5a0e8421bd96eb19972ced6f22df0f66f918d48375089c06b5e499f0627dc81d22956421d9791e088e +SHA512 (clang-tools-extra-16.0.1.src.tar.xz) = eb3a5656526db559fa331e4020305b6070a33e9c4e7a082f0ebe2b307ac43d542c989585e99c660fc749041774ff80dbad089678456318b40415e340654424c8 +SHA512 (clang-tools-extra-16.0.1.src.tar.xz.sig) = c661a454ddc27aa12fd82aa19f49e26982147519bb108580059042302dc010b351d99fef65dc51c854a3d06a89a9200ee22dd613a1777bcf35b5236fa75ba2af +SHA512 (cmake-16.0.1.src.tar.xz) = 7a0f01a82660a953e06b1df267918542205ac46f151d284dca74255c36fe5ccd995266638a85ce502a81cdd5e76ff3311e5f8488e09d0abbf22ee07cec186f5f +SHA512 (cmake-16.0.1.src.tar.xz.sig) = 8d49050e9b04df253a5bb2fa3b27796f204d085610432826bef6bb6cab876990d67e7fd5267fc89fadf21d88da73c535c82ae6ea0e1c867f7cd5efac244b0fa2