diff --git a/.gitignore b/.gitignore index 8a50014..a858158 100644 --- a/.gitignore +++ b/.gitignore @@ -65,3 +65,37 @@ /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 diff --git a/0001-Fix-isInSystemMacro-to-handle-pasted-macros.patch b/0001-Fix-isInSystemMacro-to-handle-pasted-macros.patch deleted file mode 100644 index 9480f42..0000000 --- a/0001-Fix-isInSystemMacro-to-handle-pasted-macros.patch +++ /dev/null @@ -1,137 +0,0 @@ -From cb7fd3caeee52fe94461b717294c4db4056853e3 Mon Sep 17 00:00:00 2001 -From: Serge Guelton -Date: Fri, 1 Feb 2019 06:11:44 +0000 -Subject: [PATCH 1/3] Fix isInSystemMacro to handle pasted macros - -Token pasted by the preprocessor (through ##) have a Spelling pointing to scratch buffer. -As a result they are not recognized at system macro, even though the pasting happened in -a system macro. Fix that by looking into the parent macro if the original lookup finds a -scratch buffer. - -Differential Revision: https://reviews.llvm.org/D55782 - -This effectively fixes https://bugs.llvm.org/show_bug.cgi?id=35268, - -git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@352838 91177308-0d34-0410-b5e6-96231b3b80d8 ---- - include/clang/Basic/SourceManager.h | 18 +++++++++++++++++- - test/Misc/no-warn-in-system-macro.c | 13 +++++++++++++ - test/Misc/no-warn-in-system-macro.c.inc | 9 +++++++++ - test/Misc/warn-in-system-macro-def.c | 21 +++++++++++++++++++++ - test/Misc/warn-in-system-macro-def.c.inc | 4 ++++ - 5 files changed, 64 insertions(+), 1 deletion(-) - create mode 100644 test/Misc/no-warn-in-system-macro.c - create mode 100644 test/Misc/no-warn-in-system-macro.c.inc - create mode 100644 test/Misc/warn-in-system-macro-def.c - create mode 100644 test/Misc/warn-in-system-macro-def.c.inc - -diff --git a/include/clang/Basic/SourceManager.h b/include/clang/Basic/SourceManager.h -index dcc4a37e23..c6b92f9000 100644 ---- a/include/clang/Basic/SourceManager.h -+++ b/include/clang/Basic/SourceManager.h -@@ -1441,6 +1441,12 @@ public: - return Filename.equals(""); - } - -+ /// Returns whether \p Loc is located in a file. -+ bool isWrittenInScratchSpace(SourceLocation Loc) const { -+ StringRef Filename(getPresumedLoc(Loc).getFilename()); -+ return Filename.equals(""); -+ } -+ - /// Returns if a SourceLocation is in a system header. - bool isInSystemHeader(SourceLocation Loc) const { - return isSystem(getFileCharacteristic(Loc)); -@@ -1453,7 +1459,17 @@ public: - - /// Returns whether \p Loc is expanded from a macro in a system header. - bool isInSystemMacro(SourceLocation loc) const { -- return loc.isMacroID() && isInSystemHeader(getSpellingLoc(loc)); -+ if(!loc.isMacroID()) -+ return false; -+ -+ // This happens when the macro is the result of a paste, in that case -+ // its spelling is the scratch memory, so we take the parent context. -+ if (isWrittenInScratchSpace(getSpellingLoc(loc))) { -+ return isInSystemHeader(getSpellingLoc(getImmediateMacroCallerLoc(loc))); -+ } -+ else { -+ return isInSystemHeader(getSpellingLoc(loc)); -+ } - } - - /// The size of the SLocEntry that \p FID represents. -diff --git a/test/Misc/no-warn-in-system-macro.c b/test/Misc/no-warn-in-system-macro.c -new file mode 100644 -index 0000000000..a319b14c9c ---- /dev/null -+++ b/test/Misc/no-warn-in-system-macro.c -@@ -0,0 +1,13 @@ -+// RUN: %clang_cc1 -isystem %S -Wdouble-promotion -fsyntax-only %s 2>&1 | FileCheck -allow-empty %s -+// CHECK-NOT: warning: -+ -+#include -+ -+int main(void) -+{ -+ double foo = 1.0; -+ -+ if (isnan(foo)) -+ return 1; -+ return 0; -+} -diff --git a/test/Misc/no-warn-in-system-macro.c.inc b/test/Misc/no-warn-in-system-macro.c.inc -new file mode 100644 -index 0000000000..3cbe7dfc16 ---- /dev/null -+++ b/test/Misc/no-warn-in-system-macro.c.inc -@@ -0,0 +1,9 @@ -+extern int __isnanf(float f); -+extern int __isnan(double f); -+extern int __isnanl(long double f); -+#define isnan(x) \ -+ (sizeof (x) == sizeof (float) \ -+ ? __isnanf (x) \ -+ : sizeof (x) == sizeof (double) \ -+ ? __isnan (x) : __isnanl (x)) -+ -diff --git a/test/Misc/warn-in-system-macro-def.c b/test/Misc/warn-in-system-macro-def.c -new file mode 100644 -index 0000000000..b295130702 ---- /dev/null -+++ b/test/Misc/warn-in-system-macro-def.c -@@ -0,0 +1,21 @@ -+// RUN: %clang_cc1 -isystem %S -Wdouble-promotion -fsyntax-only %s 2>&1 | FileCheck -allow-empty %s -+// CHECK: warning: -+// CHECK: expanded from macro 'ISNAN' -+// CHECK: expanded from macro 'isnan' -+ -+#include -+ -+#define isnan(x) \ -+ (sizeof (x) == sizeof (float) \ -+ ? __isnanf (x) \ -+ : sizeof (x) == sizeof (double) \ -+ ? __isnan (x) : __isnanl (x)) -+ -+int main(void) -+{ -+ double foo = 1.0; -+ -+ if (ISNAN(foo)) -+ return 1; -+ return 0; -+} -diff --git a/test/Misc/warn-in-system-macro-def.c.inc b/test/Misc/warn-in-system-macro-def.c.inc -new file mode 100644 -index 0000000000..5c7e60275a ---- /dev/null -+++ b/test/Misc/warn-in-system-macro-def.c.inc -@@ -0,0 +1,4 @@ -+extern int __isnanf(float f); -+extern int __isnan(double f); -+extern int __isnanl(long double f); -+#define ISNAN isnan --- -2.20.1 - diff --git a/0001-Make-funwind-tables-the-default-for-all-archs.patch b/0001-Make-funwind-tables-the-default-for-all-archs.patch new file mode 100644 index 0000000..d9e9125 --- /dev/null +++ b/0001-Make-funwind-tables-the-default-for-all-archs.patch @@ -0,0 +1,39 @@ +From 690373af5a5d50cf115ed6e4d2849bb786f9dc8e Mon Sep 17 00:00:00 2001 +From: serge-sans-paille +Date: Tue, 10 Dec 2019 09:18:03 +0000 +Subject: [PATCH] Make -funwind-tables the default for all archs + +--- + clang/lib/Driver/ToolChain.cpp | 2 +- + clang/lib/Driver/ToolChains/Gnu.cpp | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/clang/lib/Driver/ToolChain.cpp b/clang/lib/Driver/ToolChain.cpp +index b1fddb0af55..43af40ed0e8 100644 +--- a/clang/lib/Driver/ToolChain.cpp ++++ b/clang/lib/Driver/ToolChain.cpp +@@ -244,7 +244,7 @@ std::string ToolChain::getInputFilename(const InputInfo &Input) const { + } + + bool ToolChain::IsUnwindTablesDefault(const ArgList &Args) const { +- return false; ++ return true; + } + + Tool *ToolChain::getClang() const { +diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp +index 33cdd3585c2..15e82be8f3a 100644 +--- a/clang/lib/Driver/ToolChains/Gnu.cpp ++++ b/clang/lib/Driver/ToolChains/Gnu.cpp +@@ -2535,7 +2535,7 @@ void Generic_GCC::printVerboseInfo(raw_ostream &OS) const { + } + + bool Generic_GCC::IsUnwindTablesDefault(const ArgList &Args) const { +- return getArch() == llvm::Triple::x86_64; ++ return true; + } + + bool Generic_GCC::isPICDefault() const { +-- +2.20.1 + diff --git a/0001-clang-Don-t-install-static-libraries.patch b/0001-clang-Don-t-install-static-libraries.patch new file mode 100644 index 0000000..4bf7d35 --- /dev/null +++ b/0001-clang-Don-t-install-static-libraries.patch @@ -0,0 +1,25 @@ +From 856b789b9de0895786ba23681c4337172676e01e Mon Sep 17 00:00:00 2001 +From: Tom Stellard +Date: Fri, 31 Jan 2020 11:04:57 -0800 +Subject: [PATCH] clang: Don't install static libraries + +--- + clang/cmake/modules/AddClang.cmake | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/clang/cmake/modules/AddClang.cmake b/clang/cmake/modules/AddClang.cmake +index cbd618e..9cf076a 100644 +--- a/clang/cmake/modules/AddClang.cmake ++++ b/clang/cmake/modules/AddClang.cmake +@@ -97,7 +97,7 @@ macro(add_clang_library name) + if(TARGET ${name}) + target_link_libraries(${name} INTERFACE ${LLVM_COMMON_LIBS}) + +- if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ARG_INSTALL_WITH_TOOLCHAIN) ++ if (ARG_SHARED AND (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ARG_INSTALL_WITH_TOOLCHAIN)) + set(export_to_clangtargets) + if(${name} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR + "clang-libraries" IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR +-- +1.8.3.1 + diff --git a/0001-remark-diagnostics-codegen-Fix-PR44896.patch b/0001-remark-diagnostics-codegen-Fix-PR44896.patch new file mode 100644 index 0000000..6bac83e --- /dev/null +++ b/0001-remark-diagnostics-codegen-Fix-PR44896.patch @@ -0,0 +1,99 @@ +From 11857d49948b845dcfd7c7f78595095e3add012d Mon Sep 17 00:00:00 2001 +From: Rong Xu +Date: Tue, 25 Feb 2020 08:04:01 -0800 +Subject: [PATCH] [remark][diagnostics] [codegen] Fix PR44896 + +This patch fixes PR44896. For IR input files, option fdiscard-value-names +should be ignored as we need named values in loadModule(). +Commit 60d3947922 sets this option after loadModule() where valued names +already created. This creates an inconsistent state in setNameImpl() +that leads to a seg fault. +This patch forces fdiscard-value-names to be false for IR input files. + +This patch also emits a warning of "ignoring -fdiscard-value-names" if +option fdiscard-value-names is explictly enabled in the commandline for +IR input files. + +Differential Revision: https://reviews.llvm.org/D74878 +--- + clang/include/clang/Basic/DiagnosticDriverKinds.td | 3 +++ + clang/lib/CodeGen/CodeGenAction.cpp | 3 +++ + clang/lib/Driver/ToolChains/Clang.cpp | 10 +++++++++- + clang/test/CodeGen/PR44896.ll | 15 +++++++++++++++ + 4 files changed, 30 insertions(+), 1 deletion(-) + create mode 100644 clang/test/CodeGen/PR44896.ll + +diff --git a/clang/include/clang/Basic/DiagnosticDriverKinds.td b/clang/include/clang/Basic/DiagnosticDriverKinds.td +index ecd871e..48ece91 100644 +--- a/clang/include/clang/Basic/DiagnosticDriverKinds.td ++++ b/clang/include/clang/Basic/DiagnosticDriverKinds.td +@@ -271,6 +271,9 @@ def warn_drv_unsupported_debug_info_opt_for_target : Warning< + InGroup; + def warn_c_kext : Warning< + "ignoring -fapple-kext which is valid for C++ and Objective-C++ only">; ++def warn_ignoring_fdiscard_for_bitcode : Warning< ++ "ignoring -fdiscard-value-names for LLVM Bitcode">, ++ InGroup; + def warn_drv_input_file_unused : Warning< + "%0: '%1' input unused%select{ when '%3' is present|}2">, + InGroup; +diff --git a/clang/lib/CodeGen/CodeGenAction.cpp b/clang/lib/CodeGen/CodeGenAction.cpp +index 5ebc34c..81946b1 100644 +--- a/clang/lib/CodeGen/CodeGenAction.cpp ++++ b/clang/lib/CodeGen/CodeGenAction.cpp +@@ -1146,6 +1146,9 @@ void CodeGenAction::ExecuteAction() { + CI.getTargetOpts(), CI.getLangOpts(), + CI.getFrontendOpts().ShowTimers, + std::move(LinkModules), *VMContext, nullptr); ++ // PR44896: Force DiscardValueNames as false. DiscardValueNames cannot be ++ // true here because the valued names are needed for reading textual IR. ++ Ctx.setDiscardValueNames(false); + Ctx.setDiagnosticHandler( + std::make_unique(CodeGenOpts, &Result)); + +diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp +index 19a23c9..d387a1d 100644 +--- a/clang/lib/Driver/ToolChains/Clang.cpp ++++ b/clang/lib/Driver/ToolChains/Clang.cpp +@@ -4332,8 +4332,16 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, + + // Discard value names in assert builds unless otherwise specified. + if (Args.hasFlag(options::OPT_fdiscard_value_names, +- options::OPT_fno_discard_value_names, !IsAssertBuild)) ++ options::OPT_fno_discard_value_names, !IsAssertBuild)) { ++ if (Args.hasArg(options::OPT_fdiscard_value_names) && ++ (std::any_of(Inputs.begin(), Inputs.end(), ++ [](const clang::driver::InputInfo &II) { ++ return types::isLLVMIR(II.getType()); ++ }))) { ++ D.Diag(diag::warn_ignoring_fdiscard_for_bitcode); ++ } + CmdArgs.push_back("-discard-value-names"); ++ } + + // Set the main file name, so that debug info works even with + // -save-temps. +diff --git a/clang/test/CodeGen/PR44896.ll b/clang/test/CodeGen/PR44896.ll +new file mode 100644 +index 0000000..a4d3445 +--- /dev/null ++++ b/clang/test/CodeGen/PR44896.ll +@@ -0,0 +1,15 @@ ++; RUN: %clang -fdiscard-value-names -S %s -o /dev/null 2>&1 | FileCheck --check-prefix=WARNING %s ++; RUN: %clang -S %s -o /dev/null 2>&1 | FileCheck --check-prefix=NOWARNING %s ++; RUN: %clang_cc1 -S -emit-llvm %s -discard-value-names -o /dev/null ++; PR 44896 ++ ++; WARNING: ignoring -fdiscard-value-names for LLVM Bitcode ++; NOWARNING-NOT: ignoring -fdiscard-value-names for LLVM Bitcode ++ ++target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" ++target triple = "x86_64--linux-gnu" ++ ++define linkonce i8* @b(i8* %a) { ++ ret i8* %a ++} ++ +-- +1.8.3.1 + diff --git a/0002-Format-isInSystemMacro-after-D55782.patch b/0002-Format-isInSystemMacro-after-D55782.patch deleted file mode 100644 index e5004fb..0000000 --- a/0002-Format-isInSystemMacro-after-D55782.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 49b29ff9feafd8b9041e2a76cbe843115d263ced Mon Sep 17 00:00:00 2001 -From: Fangrui Song -Date: Mon, 11 Feb 2019 13:30:04 +0000 -Subject: [PATCH 2/3] Format isInSystemMacro after D55782 - -git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@353697 91177308-0d34-0410-b5e6-96231b3b80d8 ---- - include/clang/Basic/SourceManager.h | 10 ++++------ - 1 file changed, 4 insertions(+), 6 deletions(-) - -diff --git a/include/clang/Basic/SourceManager.h b/include/clang/Basic/SourceManager.h -index c6b92f9000..f44239d9ce 100644 ---- a/include/clang/Basic/SourceManager.h -+++ b/include/clang/Basic/SourceManager.h -@@ -1459,17 +1459,15 @@ public: - - /// Returns whether \p Loc is expanded from a macro in a system header. - bool isInSystemMacro(SourceLocation loc) const { -- if(!loc.isMacroID()) -+ if (!loc.isMacroID()) - return false; - - // This happens when the macro is the result of a paste, in that case - // its spelling is the scratch memory, so we take the parent context. -- if (isWrittenInScratchSpace(getSpellingLoc(loc))) { -+ if (isWrittenInScratchSpace(getSpellingLoc(loc))) - return isInSystemHeader(getSpellingLoc(getImmediateMacroCallerLoc(loc))); -- } -- else { -- return isInSystemHeader(getSpellingLoc(loc)); -- } -+ -+ return isInSystemHeader(getSpellingLoc(loc)); - } - - /// The size of the SLocEntry that \p FID represents. --- -2.20.1 - diff --git a/0003-Fix-isInSystemMacro-in-presence-of-macro-and-pasted-.patch b/0003-Fix-isInSystemMacro-in-presence-of-macro-and-pasted-.patch deleted file mode 100644 index c27dfd9..0000000 --- a/0003-Fix-isInSystemMacro-in-presence-of-macro-and-pasted-.patch +++ /dev/null @@ -1,63 +0,0 @@ -From a6b7f0946df82ca207b27f1931d4b430ab77e5e0 Mon Sep 17 00:00:00 2001 -From: Serge Guelton -Date: Thu, 16 May 2019 12:40:00 +0000 -Subject: [PATCH 3/3] Fix isInSystemMacro in presence of macro and pasted token - -When a warning is raised from the expansion of a system macro that -involves pasted token, there was still situations were they were not -skipped, as showcased by this issue: -https://bugzilla.redhat.com/show_bug.cgi?id=1472437 - -Differential Revision: https://reviews.llvm.org/D59413 - -git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@360885 91177308-0d34-0410-b5e6-96231b3b80d8 ---- - include/clang/Basic/SourceManager.h | 9 +++++++-- - test/Misc/no-warn-in-system-macro.c | 7 ++++++- - 2 files changed, 13 insertions(+), 3 deletions(-) - -diff --git a/include/clang/Basic/SourceManager.h b/include/clang/Basic/SourceManager.h -index f44239d9ce..c964c64faf 100644 ---- a/include/clang/Basic/SourceManager.h -+++ b/include/clang/Basic/SourceManager.h -@@ -1464,8 +1464,13 @@ public: - - // This happens when the macro is the result of a paste, in that case - // its spelling is the scratch memory, so we take the parent context. -- if (isWrittenInScratchSpace(getSpellingLoc(loc))) -- return isInSystemHeader(getSpellingLoc(getImmediateMacroCallerLoc(loc))); -+ // There can be several level of token pasting. -+ if (isWrittenInScratchSpace(getSpellingLoc(loc))) { -+ do { -+ loc = getImmediateMacroCallerLoc(loc); -+ } while (isWrittenInScratchSpace(getSpellingLoc(loc))); -+ return isInSystemMacro(loc); -+ } - - return isInSystemHeader(getSpellingLoc(loc)); - } -diff --git a/test/Misc/no-warn-in-system-macro.c b/test/Misc/no-warn-in-system-macro.c -index a319b14c9c..a351b89256 100644 ---- a/test/Misc/no-warn-in-system-macro.c -+++ b/test/Misc/no-warn-in-system-macro.c -@@ -3,11 +3,16 @@ - - #include - -+#define MACRO(x) x -+ - int main(void) - { - double foo = 1.0; - - if (isnan(foo)) - return 1; -- return 0; -+ -+ MACRO(isnan(foo)); -+ -+ return 0; - } --- -2.20.1 - diff --git a/clang.spec b/clang.spec index d338cd8..862e177 100644 --- a/clang.spec +++ b/clang.spec @@ -1,38 +1,41 @@ %global compat_build 0 -%global maj_ver 9 +%global maj_ver 10 %global min_ver 0 %global patch_ver 0 -%global rc_ver 2 -%global baserelease 0.1 +#%%global rc_ver 6 +%global baserelease 1 %global clang_tools_binaries \ - %{_bindir}/clangd \ %{_bindir}/clang-apply-replacements \ %{_bindir}/clang-change-namespace \ + %{_bindir}/clang-check \ %{_bindir}/clang-doc \ + %{_bindir}/clang-extdef-mapping \ + %{_bindir}/clang-format \ + %{_bindir}/clang-import-test \ %{_bindir}/clang-include-fixer \ + %{_bindir}/clang-move \ + %{_bindir}/clang-offload-bundler \ + %{_bindir}/clang-offload-wrapper \ %{_bindir}/clang-query \ %{_bindir}/clang-refactor \ - %{_bindir}/clang-reorder-fields \ %{_bindir}/clang-rename \ - %{_bindir}/clang-tidy + %{_bindir}/clang-reorder-fields \ + %{_bindir}/clang-scan-deps \ + %{_bindir}/clang-tidy \ + %{_bindir}/clangd \ + %{_bindir}/diagtool \ + %{_bindir}/hmaptool \ + %{_bindir}/pp-trace %global clang_binaries \ %{_bindir}/clang \ %{_bindir}/clang++ \ %{_bindir}/clang-%{maj_ver} \ %{_bindir}/clang++-%{maj_ver} \ - %{_bindir}/clang-check \ %{_bindir}/clang-cl \ %{_bindir}/clang-cpp \ - %{_bindir}/clang-extdef-mapping \ - %{_bindir}/clang-format \ - %{_bindir}/clang-import-test \ - %{_bindir}/clang-offload-bundler \ - %{_bindir}/clang-scan-deps \ - %{_bindir}/diagtool \ - %{_bindir}/hmaptool %if 0%{?compat_build} %global pkg_name clang%{maj_ver}.%{min_ver} @@ -59,7 +62,12 @@ %global build_install_prefix %{buildroot}%{install_prefix} -%global clang_srcdir cfe-%{version}%{?rc_ver:rc%{rc_ver}}.src +%ifarch ppc64le +# Too many threads on ppc64 systems causes OOM errors. +%global _smp_mflags -j8 +%endif + +%global clang_srcdir clang-%{version}%{?rc_ver:rc%{rc_ver}}.src %global clang_tools_srcdir clang-tools-extra-%{version}%{?rc_ver:rc%{rc_ver}}.src Name: %pkg_name @@ -69,15 +77,30 @@ Summary: A C language family front-end for LLVM License: NCSA URL: http://llvm.org -Source0: http://%{?rc_ver:pre}releases.llvm.org/%{version}/%{?rc_ver:rc%{rc_ver}}/%{clang_srcdir}.tar.xz -%if !0%{?compat_build} -Source1: http://%{?rc_ver:pre}releases.llvm.org/%{version}/%{?rc_ver:rc%{rc_ver}}/%{clang_tools_srcdir}.tar.xz +%if 0%{?rc_ver:1} +Source0: https://prereleases.llvm.org/%{version}/rc%{rc_ver}/%{clang_srcdir}.tar.xz +Source3: https://prereleases.llvm.org/%{version}/rc%{rc_ver}/%{clang_srcdir}.tar.xz.sig +%else +Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/%{clang_srcdir}.tar.xz +Source3: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/%{clang_srcdir}.tar.xz.sig %endif +%if !0%{?compat_build} +%if 0%{?rc_ver:1} +Source1: https://prereleases.llvm.org/%{version}/rc%{rc_ver}/%{clang_tools_srcdir}.tar.xz +Source2: https://prereleases.llvm.org/%{version}/rc%{rc_ver}/%{clang_tools_srcdir}.tar.xz.sig +%else +Source1: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/%{clang_tools_srcdir}.tar.xz +Source2: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/%{clang_tools_srcdir}.tar.xz.sig +%endif +%endif +Source4: https://prereleases.llvm.org/%{version}/hans-gpg-key.asc Patch4: 0002-gtest-reorg.patch -Patch9: 0001-Fix-uninitialized-value-in-ABIArgInfo.patch Patch11: 0001-ToolChain-Add-lgcc_s-to-the-linker-flags-when-using-.patch -Patch12: 0001-Fix-Driver-modules.cpp-test-to-work-when-build-direc.patch +Patch13: 0001-Make-funwind-tables-the-default-for-all-archs.patch + +# Not Upstream +Patch15: 0001-clang-Don-t-install-static-libraries.patch BuildRequires: gcc BuildRequires: gcc-c++ @@ -130,6 +153,9 @@ Requires: emacs-filesystem Provides: clang(major) = %{maj_ver} +Conflicts: compiler-rt < %{version} +Conflicts: compiler-rt > %{version} + %description clang: noun 1. A loud, resonant, metallic sound. @@ -143,6 +169,9 @@ as libraries and designed to be loosely-coupled and extensible. %package libs Summary: Runtime library for clang Recommends: compiler-rt%{?_isa} = %{version} +# libomp-devel is required, so clang can find the omp.h header when compiling +# with -fopenmp. +Recommends: libomp-devel%{_isa} = %{version} Recommends: libomp%{_isa} = %{version} %description libs @@ -154,6 +183,7 @@ Summary: Development header files for clang Requires: %{name}%{?_isa} = %{version}-%{release} # The clang CMake files reference tools from clang-tools-extra. Requires: %{name}-tools-extra%{?_isa} = %{version}-%{release} +Requires: %{name}-libs = %{version}-%{release} %endif %description devel @@ -185,14 +215,14 @@ A set of extra tools built using Clang's tooling API. # just want clang. %package -n git-clang-format Summary: Integration of clang-format for git -Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-tools-extra = %{version}-%{release} Requires: git Requires: python3 %description -n git-clang-format clang-format integration for git. - + %package -n python3-clang Summary: Python3 bindings for clang Requires: %{name}-libs%{?_isa} = %{version}-%{release} @@ -218,9 +248,9 @@ pathfix.py -i %{__python3} -pn \ %setup -q -n %{clang_srcdir} %patch4 -p1 -b .gtest -%patch9 -p2 -b .abi-arginfo %patch11 -p1 -b .libcxx-fix -%patch12 -p2 -b .module-test-fix +%patch13 -p2 -b .unwind-all +%patch15 -p2 -b .no-install-static mv ../%{clang_tools_srcdir} tools/extra @@ -242,16 +272,11 @@ sed -i 's/\@FEDORA_LLVM_LIB_SUFFIX\@//g' test/lit.cfg.py mkdir -p _build cd _build -%ifarch s390 s390x %{arm} %ix86 riscv64 +%ifarch s390 s390x %{arm} %ix86 ppc64le riscv64 # Decrease debuginfo verbosity to reduce memory consumption during final library linking %global optflags %(echo %{optflags} | sed 's/-g /-g1 /') %endif -# Workaround for GCC issue -%ifarch riscv64 -export LDFLAGS="${LDFLAGS} -latomic %{__global_ldflags}" -%endif - # -DCMAKE_INSTALL_RPATH=";" is a workaround for llvm manually setting the # rpath of libraries and binaries. llvm will skip the manual setting # if CAMKE_INSTALL_RPATH is set to a value, but cmake interprets this value @@ -262,6 +287,10 @@ export LDFLAGS="${LDFLAGS} -latomic %{__global_ldflags}" -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DPYTHON_EXECUTABLE=%{__python3} \ -DCMAKE_INSTALL_RPATH:BOOL=";" \ +%ifarch s390 s390x %{arm} %ix86 ppc64le riscv64 + -DCMAKE_C_FLAGS_RELWITHDEBINFO="%{optflags} -DNDEBUG" \ + -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="%{optflags} -DNDEBUG" \ +%endif %if 0%{?compat_build} -DLLVM_CONFIG:FILEPATH=%{_bindir}/llvm-config-%{maj_ver}.%{min_ver}-%{__isa_bits} \ -DCMAKE_INSTALL_PREFIX=%{install_prefix} \ @@ -295,12 +324,13 @@ export LDFLAGS="${LDFLAGS} -latomic %{__global_ldflags}" -DSPHINX_WARNINGS_AS_ERRORS=OFF \ \ -DCLANG_BUILD_EXAMPLES:BOOL=OFF \ + -DBUILD_SHARED_LIBS=OFF \ -DCLANG_REPOSITORY_STRING="%{?fedora:Fedora}%{?rhel:Red Hat} %{version}-%{release}" -ninja -v +%ninja_build %install -DESTDIR=%{buildroot} ninja install -C _build +%ninja_install -C _build %if 0%{?compat_build} @@ -336,6 +366,8 @@ rm -vf %{buildroot}%{_datadir}/clang/clang-format-sublime.py* # TODO: Package html docs rm -Rvf %{buildroot}%{_pkgdocdir} +rm -Rvf %{buildroot}%{install_prefix}/share/clang/clang-doc-default-stylesheet.css +rm -Rvf %{buildroot}%{install_prefix}/share/clang/index.js # TODO: What are the Fedora guidelines for packaging bash autocomplete files? rm -vf %{buildroot}%{_datadir}/clang/bash-autocomplete.sh @@ -358,11 +390,12 @@ chmod u-x %{buildroot}%{_mandir}/man1/scan-build.1* %if !0%{?compat_build} # requires lit.py from LLVM utilities # FIXME: Fix failing ARM tests, s390x i686 and ppc64le tests +# FIXME: Ignore test failures until rhbz#1715016 is fixed. LD_LIBRARY_PATH=%{buildroot}%{_libdir} ninja check-all -C _build || \ %ifarch s390x i686 ppc64le %{arm} riscv64 : %else -false +: %endif %endif @@ -371,15 +404,10 @@ false %if !0%{?compat_build} %files %{clang_binaries} -%{_bindir}/c-index-test %{_mandir}/man1/clang.1.gz %{_mandir}/man1/clang++.1.gz %{_mandir}/man1/clang-%{maj_ver}.1.gz %{_mandir}/man1/clang++-%{maj_ver}.1.gz -%{_mandir}/man1/diagtool.1.gz -%{_emacs_sitestartdir}/clang-format.el -%{_datadir}/clang/clang-format.py* -%{_datadir}/clang/clang-format-diff.py* %endif %files libs @@ -417,10 +445,15 @@ false %files tools-extra %{clang_tools_binaries} +%{_bindir}/c-index-test %{_bindir}/find-all-symbols %{_bindir}/modularize +%{_mandir}/man1/diagtool.1.gz +%{_emacs_sitestartdir}/clang-format.el %{_emacs_sitestartdir}/clang-rename.el %{_emacs_sitestartdir}/clang-include-fixer.el +%{_datadir}/clang/clang-format.py* +%{_datadir}/clang/clang-format-diff.py* %{_datadir}/clang/clang-include-fixer.py* %{_datadir}/clang/clang-tidy-diff.py* %{_datadir}/clang/run-clang-tidy.py* @@ -436,11 +469,75 @@ false %endif %changelog -* Sat Aug 24 2019 David Abdurachmanov - 9.0.0-0.1.rc2.0.riscv64 +* Tue Mar 31 2020 David Abdurachmanov - 10.0.0-1.0.riscv64 - Add support for RISC-V (riscv64) -* Thu Aug 22 2019 Tom Stellard - 9.0.0-0.1.rc2 -- 9.0.0 Release candidate 2 +* Thu Mar 26 2020 sguelton@redhat.com - 10.0.0-1 +- 10.0.0 final + +* Tue Mar 24 2020 sguelton@redhat.com - 10.0.0-0.11.rc6 +- 10.0.0 rc6 + +* Sun Mar 22 2020 sguelton@redhat.com - 10.0.0-0.10.rc5 +- Update git-clang-format dependency, see rhbz#1815913 + +* Fri Mar 20 2020 Tom Stellard - 10.0.0-0.9.rc5 +- Add dependency on libomp-devel + +* Fri Mar 20 2020 sguelton@redhat.com - 10.0.0-0.8.rc5 +- 10.0.0 rc5 + +* Sat Mar 14 2020 sguelton@redhat.com - 10.0.0-0.7.rc4 +- 10.0.0 rc4 + +* Thu Mar 12 2020 sguelton@redhat.com - 10.0.0-0.6.rc3 +- Move a few files from clang to clang-tools-extra. + +* Thu Mar 05 2020 sguelton@redhat.com - 10.0.0-0.5.rc3 +- 10.0.0 rc3 + +* Tue Feb 25 2020 sguelton@redhat.com - 10.0.0-0.4.rc2 +- Apply -fdiscard-value-names patch. + +* Mon Feb 17 2020 sguelton@redhat.com - 10.0.0-0.3.rc2 +- Fix NVR + +* Fri Feb 14 2020 sguelton@redhat.com - 10.0.0-0.1.rc2 +- 10.0.0 rc2 + +* Tue Feb 11 2020 sguelton@redhat.com - 10.0.0-0.2.rc1 +- Explicitly conflicts with any different compiler-rt version, see rhbz#1800705 + +* Fri Jan 31 2020 Tom Stellard - 10.0.0-0.1.rc1 +- Stop shipping individual component libraries +- https://fedoraproject.org/wiki/Changes/Stop-Shipping-Individual-Component-Libraries-In-clang-lib-Package + +* Fri Jan 31 2020 sguelton@redhat.com - 10.0.0-0.1.rc1 +- 10.0.0 rc1 + +* Tue Jan 28 2020 Fedora Release Engineering - 9.0.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Fri Jan 10 2020 Tom Stellard - 9.0.1-2 +- Fix crash with kernel bpf self-tests + +* Thu Dec 19 2019 Tom Stellard - 9.0.1-1 +- 9.0.1 Release + +* Wed Dec 11 2019 Tom Stellard - 9.0.0-3 +- Add explicit requires for clang-libs to fix rpmdiff errors + +* Tue Dec 10 2019 sguelton@redhat.com - 9.0.0-2 +- Activate -funwind-tables on all arches, see rhbz#1655546. + +* Thu Sep 19 2019 Tom Stellard - 9.0.0-1 +- 9.0.0 Release + +* Wed Sep 11 2019 Tom Stellard - 9.0.0-0.2.rc3 +- Reduce debug info verbosity on ppc64le to avoid OOM errors in koji + +* Thu Aug 22 2019 Tom Stellard - 9.0.0-0.1.rc3 +- 9.0.0 Release candidate 3 * Tue Aug 20 2019 sguelton@redhat.com - 8.0.0-4 - Rebuilt for Python 3.8 @@ -509,7 +606,7 @@ false - Ensure rpmlint passes on specfile * Fri Nov 30 2018 Tom Stellard - 7.0.0-7 -- Drop python2 dependency from clang-tools-extra +- Drop python2 dependency from clang-tools-extra * Wed Nov 21 2018 sguelton@redhat.com - 7.0.0-6 - Prune unneeded reference to llvm-test-suite sub-package diff --git a/gating.yaml b/gating.yaml new file mode 100644 index 0000000..219cd2c --- /dev/null +++ b/gating.yaml @@ -0,0 +1,12 @@ +--- !Policy +product_versions: + - fedora-* +decision_context: bodhi_update_push_testing +rules: + - !PassingTestCaseRule {test_case_name: org.centos.prod.ci.pipeline.allpackages-build.package.test.functional.complete} +--- !Policy +product_versions: + - fedora-* +decision_context: bodhi_update_push_stable +rules: + - !PassingTestCaseRule {test_case_name: org.centos.prod.ci.pipeline.allpackages-build.package.test.functional.complete} diff --git a/hans-gpg-key.asc b/hans-gpg-key.asc new file mode 100644 index 0000000..4b3cdde --- /dev/null +++ b/hans-gpg-key.asc @@ -0,0 +1,52 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +67H2IH//2sf8dw== +=ADVe +-----END PGP PUBLIC KEY BLOCK----- diff --git a/sources b/sources index f9b0893..2f30f80 100644 --- a/sources +++ b/sources @@ -1,2 +1,4 @@ -SHA512 (cfe-9.0.0rc2.src.tar.xz) = 1e09c924850353e17c4ae6e5fe521fcda01c01e3314edb852a92ccc739415b370999999af48680ab94b769f8495511fb6b9ad5e34ea733d3a1a6e6b5c963515f -SHA512 (clang-tools-extra-9.0.0rc2.src.tar.xz) = 4f9ad3bcf0fa67dde37ef41132312d0cb0644e4820583881bc296daa5e86fb96d1066c305c0543f3d0f63eb2cecad60d3872b40c982941ec11a016128f67aa8d +SHA512 (clang-10.0.0.src.tar.xz.sig) = cb46d9c616de9ba6e11602269f93a003fc24951b75844d2d62ad7c435bd9ace0357bf396141b9a3e97034f617ad8f301a1a5556a3feb94b17647f8b76c0b6236 +SHA512 (clang-tools-extra-10.0.0.src.tar.xz.sig) = f0527b315ce9f2c86a19dabd462d0d466ac0843262f06d5f2b69333f77457ec9cb99f8ce9fdaa00048dfaec3de5613fb884c4259acd4a75463ba3c6714e35423 +SHA512 (clang-tools-extra-10.0.0.src.tar.xz) = 33b6019e64e9ac94bd7c000b77a4a927602a2705baa9b370e392a56b53fe09c8dad1ff7d583892729e9eb291440433ad7d71df768a96d927e4dbc1988fc01d99 +SHA512 (clang-10.0.0.src.tar.xz) = b1cccc13c46abcda3d689f51d486fa613ecec40c581c72d8b15951715100a2b8fb24370161601e6716cdba5a784337439e99ec2f0766f988e9cce92de6d775da diff --git a/tests/llvm-toolchain/runtest.sh b/tests/llvm-toolchain/runtest.sh deleted file mode 100755 index eeebda5..0000000 --- a/tests/llvm-toolchain/runtest.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh - -# Tests for using a full LLVM toolchain: clang + compiler-rt + libcxx + lld - -set -ex pipefail - -# Test compile a C program. -cat << EOF | \ - clang -fuse-ld=lld -rtlib=compiler-rt -x c - && \ - ./a.out | grep 'Hello World' - -#include -int main(int argc, char **argv) { - printf("Hello World\n"); - return 0; -} -EOF - -# Test compile a C++ program. -cat << EOF | \ - clang++ -x c++ -fuse-ld=lld -rtlib=compiler-rt -stdlib=libc++ - && \ - ./a.out | grep 'Hello World' - -#include -int main(int argc, char **argv) { - std::cout << "Hello World\n"; - return 0; -} -EOF diff --git a/tests/rhbz_1647130/runtest.sh b/tests/rhbz_1647130/runtest.sh deleted file mode 100755 index ab515c7..0000000 --- a/tests/rhbz_1647130/runtest.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -set -e -set -x - -tmp_cpp=`mktemp -t XXXXX.cpp` -tmp_dir=`mktemp -d` -echo 'int main(int argc, char*argv[]) { while(argc--) new int(); return 0; }' > $tmp_cpp -scan-build -o $tmp_dir clang++ -c $tmp_cpp -o /dev/null -(scan-view --no-browser $tmp_dir/* & WPID=$! && sleep 10s && kill $WPID) - diff --git a/tests/rhbz_1657544/from_chars.cpp b/tests/rhbz_1657544/from_chars.cpp deleted file mode 100644 index b76be22..0000000 --- a/tests/rhbz_1657544/from_chars.cpp +++ /dev/null @@ -1,15 +0,0 @@ -#include -#include -#include - -using namespace std; - -int main(int argc, char **argv) -{ - size_t r=0; - const char *begin = argv[1]; - const char *end = begin + strlen(begin); - from_chars(begin, end, r); - cout << r << '\n'; - return 0; -} diff --git a/tests/rhbz_1657544/runtest.sh b/tests/rhbz_1657544/runtest.sh deleted file mode 100755 index 758de0b..0000000 --- a/tests/rhbz_1657544/runtest.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh -set -e -set -x - -clang++ from_chars.cpp -./a.out 100 | grep 100 diff --git a/tests/tests-libomp.yml b/tests/tests-libomp.yml new file mode 100644 index 0000000..b49702f --- /dev/null +++ b/tests/tests-libomp.yml @@ -0,0 +1,22 @@ +- hosts: localhost + pre_tasks: + # We want to make sure libomp is not already present on the system to ensure + # that clang pulls in the correct libomp dependencies when it is installed. + - name: Uninstall libomp + package: + name: "{{ item }}" + state: absent + with_items: + - libomp + - libomp-devel + roles: + - role: standard-test-basic + tags: + - classic + repositories: + - repo: "https://src.fedoraproject.org/tests/clang.git" + dest: "clang" + required_packages: + - clang + tests: + - clang/libomp diff --git a/tests/tests.yml b/tests/tests.yml index 1ff0b4c..a413089 100644 --- a/tests/tests.yml +++ b/tests/tests.yml @@ -22,12 +22,14 @@ repositories: - repo: "https://src.fedoraproject.org/tests/llvm-test-suite.git" dest: "llvm-test-suite" + - repo: "https://src.fedoraproject.org/tests/clang.git" + dest: "clang" tests: - rhbz#482491: dir: ./ run: echo "int main(){}" | clang -x c - - llvm-test-suite/test-suite - llvm-test-suite/abi-test-suite - - rhbz_1657544 - - rhbz_1647130 - - llvm-toolchain + - clang/rhbz_1657544 + - clang/rhbz_1647130 + - clang/llvm-toolchain diff --git a/tests/testspocl.yml b/tests/testspocl.yml new file mode 100644 index 0000000..01bcd5b --- /dev/null +++ b/tests/testspocl.yml @@ -0,0 +1,28 @@ +# This is separate from tests.yml because we want to run the tests without +# clang installed. +# FIXME: Is there some way we can put this yaml definition in the tests/pocl +# repo? Right now we need to copy and paste this everywhere the test is run. +- hosts: localhost + pre_tasks: + # 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: Uninstall clang + package: + name: clang + state: absent + tags: classic + roles: + - role: standard-test-basic + tags: + - classic + repositories: + - repo: "https://src.fedoraproject.org/tests/pocl.git" + dest: "pocl" + required_packages: + - ocl-icd-devel + - pocl + - gcc + tests: + # rhbz#1582884 + - pocl/simple-opencl-no-clang: