From cef168d2152bc581afc9800088033a42b1c8df79 Mon Sep 17 00:00:00 2001 From: sergesanspaille Date: Tue, 16 Feb 2021 11:14:30 +0100 Subject: [PATCH] llvm 12.0.0rc2 --- .gitignore | 4 + ...c-toolchains-with-libgcc_s.so-when-n.patch | 7 +- ...ind-tables-the-default-for-all-archs.patch | 43 +-- ...-scan-view-Remove-Reporter.py-and-as.patch | 224 ------------- ...-Reporter.py-and-associated-AppleScr.patch | 299 ------------------ 0002-gtest-reorg.patch | 23 +- clang-tidy.patch | 36 +++ clang.spec | 54 ++-- completion-model-cmake.patch | 14 + sources | 8 +- 10 files changed, 109 insertions(+), 603 deletions(-) delete mode 100644 0001-Partially-Revert-scan-view-Remove-Reporter.py-and-as.patch delete mode 100644 0001-scan-view-Remove-Reporter.py-and-associated-AppleScr.patch create mode 100644 clang-tidy.patch create mode 100644 completion-model-cmake.patch diff --git a/.gitignore b/.gitignore index 1150c55..231cd7f 100644 --- a/.gitignore +++ b/.gitignore @@ -143,3 +143,7 @@ /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 diff --git a/0001-Driver-Prefer-gcc-toolchains-with-libgcc_s.so-when-n.patch b/0001-Driver-Prefer-gcc-toolchains-with-libgcc_s.so-when-n.patch index 0050b40..05d153d 100644 --- a/0001-Driver-Prefer-gcc-toolchains-with-libgcc_s.so-when-n.patch +++ b/0001-Driver-Prefer-gcc-toolchains-with-libgcc_s.so-when-n.patch @@ -77,7 +77,7 @@ diff --git a/lib/Driver/ToolChains/Gnu.h b/lib/Driver/ToolChains/Gnu.h index 52690ab4..2a4452d9 100644 --- a/lib/Driver/ToolChains/Gnu.h +++ b/lib/Driver/ToolChains/Gnu.h -@@ -190,6 +190,7 @@ public: +@@ -190,6 +190,7 @@ /// Driver, and has logic for fuzzing that where appropriate. class GCCInstallationDetector { bool IsValid; @@ -85,8 +85,8 @@ index 52690ab4..2a4452d9 100644 llvm::Triple GCCTriple; const Driver &D; -@@ -213,7 +214,8 @@ public: - MultilibSet Multilibs; +@@ -216,7 +217,8 @@ + const std::string GentooConfigDir = "/etc/env.d/gcc"; public: - explicit GCCInstallationDetector(const Driver &D) : IsValid(false), D(D) {} @@ -95,6 +95,7 @@ index 52690ab4..2a4452d9 100644 void init(const llvm::Triple &TargetTriple, const llvm::opt::ArgList &Args, ArrayRef ExtraTripleAliases = None); + diff --git a/test/Driver/Inputs/fedora_28_tree/usr/lib/gcc/x86_64-linux-gnu/7/crtbegin.o b/test/Driver/Inputs/fedora_28_tree/usr/lib/gcc/x86_64-linux-gnu/7/crtbegin.o new file mode 100644 index 00000000..e69de29b diff --git a/0001-Make-funwind-tables-the-default-for-all-archs.patch b/0001-Make-funwind-tables-the-default-for-all-archs.patch index d9e9125..0faa229 100644 --- a/0001-Make-funwind-tables-the-default-for-all-archs.patch +++ b/0001-Make-funwind-tables-the-default-for-all-archs.patch @@ -1,18 +1,7 @@ -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 { +diff -Naur clang-12.0.0rc1.src.orig/lib/Driver/ToolChain.cpp clang-12.0.0rc1.src/lib/Driver/ToolChain.cpp +--- clang-12.0.0rc1.src.orig/lib/Driver/ToolChain.cpp 2021-02-15 21:40:55.000000000 +0100 ++++ clang-12.0.0rc1.src/lib/Driver/ToolChain.cpp 2021-02-16 07:35:01.000000000 +0100 +@@ -257,7 +257,7 @@ } bool ToolChain::IsUnwindTablesDefault(const ArgList &Args) const { @@ -21,19 +10,15 @@ index b1fddb0af55..43af40ed0e8 100644 } 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 { +diff -Naur clang-12.0.0rc1.src.orig/lib/Driver/ToolChains/Gnu.cpp clang-12.0.0rc1.src/lib/Driver/ToolChains/Gnu.cpp +--- clang-12.0.0rc1.src.orig/lib/Driver/ToolChains/Gnu.cpp 2021-02-15 21:40:55.000000000 +0100 ++++ clang-12.0.0rc1.src/lib/Driver/ToolChains/Gnu.cpp 2021-02-16 07:35:30.000000000 +0100 +@@ -2713,7 +2713,7 @@ + case llvm::Triple::x86_64: + return true; + default: +- return false; ++ return true; + } } - 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-Partially-Revert-scan-view-Remove-Reporter.py-and-as.patch b/0001-Partially-Revert-scan-view-Remove-Reporter.py-and-as.patch deleted file mode 100644 index 6079e9f..0000000 --- a/0001-Partially-Revert-scan-view-Remove-Reporter.py-and-as.patch +++ /dev/null @@ -1,224 +0,0 @@ -From 9d68d4554d903353a7d4599d2428bd479651eb40 Mon Sep 17 00:00:00 2001 -From: Tom Stellard -Date: Tue, 9 Feb 2021 13:35:43 -0800 -Subject: [PATCH] Partially Revert "scan-view: Remove Reporter.py and - associated AppleScript files" - -This reverts some of commit dbb01536f6f49fa428f170e34466072ef439b3e9. - -The Reporter module was still being used by the ScanView.py module and deleting -it caused scan-view to fail. This commit adds back Reporter.py but removes the -code the references the AppleScript files which were removed in -dbb01536f6f49fa428f170e34466072ef439b3e9. - -Differential Revision: https://reviews.llvm.org/D96367 ---- - clang/tools/scan-view/CMakeLists.txt | 1 + - clang/tools/scan-view/share/Reporter.py | 183 ++++++++++++++++++++++++ - 2 files changed, 184 insertions(+) - create mode 100644 clang/tools/scan-view/share/Reporter.py - -diff --git a/clang/tools/scan-view/CMakeLists.txt b/clang/tools/scan-view/CMakeLists.txt -index dd3d33439299..eccc6b83195b 100644 ---- a/clang/tools/scan-view/CMakeLists.txt -+++ b/clang/tools/scan-view/CMakeLists.txt -@@ -5,6 +5,7 @@ set(BinFiles - - set(ShareFiles - ScanView.py -+ Reporter.py - startfile.py - bugcatcher.ico) - -diff --git a/clang/tools/scan-view/share/Reporter.py b/clang/tools/scan-view/share/Reporter.py -new file mode 100644 -index 000000000000..31a14fb0cf74 ---- /dev/null -+++ b/clang/tools/scan-view/share/Reporter.py -@@ -0,0 +1,183 @@ -+#!/usr/bin/env python -+# -*- coding: utf-8 -*- -+ -+"""Methods for reporting bugs.""" -+ -+import subprocess, sys, os -+ -+__all__ = ['ReportFailure', 'BugReport', 'getReporters'] -+ -+# -+ -+class ReportFailure(Exception): -+ """Generic exception for failures in bug reporting.""" -+ def __init__(self, value): -+ self.value = value -+ -+# Collect information about a bug. -+ -+class BugReport(object): -+ def __init__(self, title, description, files): -+ self.title = title -+ self.description = description -+ self.files = files -+ -+# Reporter interfaces. -+ -+import os -+ -+import email, mimetypes, smtplib -+from email import encoders -+from email.message import Message -+from email.mime.base import MIMEBase -+from email.mime.multipart import MIMEMultipart -+from email.mime.text import MIMEText -+ -+#===------------------------------------------------------------------------===# -+# ReporterParameter -+#===------------------------------------------------------------------------===# -+ -+class ReporterParameter(object): -+ def __init__(self, n): -+ self.name = n -+ def getName(self): -+ return self.name -+ def getValue(self,r,bugtype,getConfigOption): -+ return getConfigOption(r.getName(),self.getName()) -+ def saveConfigValue(self): -+ return True -+ -+class TextParameter (ReporterParameter): -+ def getHTML(self,r,bugtype,getConfigOption): -+ return """\ -+ -+%s: -+ -+"""%(self.getName(),r.getName(),self.getName(),self.getValue(r,bugtype,getConfigOption)) -+ -+class SelectionParameter (ReporterParameter): -+ def __init__(self, n, values): -+ ReporterParameter.__init__(self,n) -+ self.values = values -+ -+ def getHTML(self,r,bugtype,getConfigOption): -+ default = self.getValue(r,bugtype,getConfigOption) -+ return """\ -+ -+%s:"""%(self.getName(),r.getName(),self.getName(),'\n'.join(["""\ -+"""%(o[0], -+ o[0] == default and ' selected="selected"' or '', -+ o[1]) for o in self.values])) -+ -+#===------------------------------------------------------------------------===# -+# Reporters -+#===------------------------------------------------------------------------===# -+ -+class EmailReporter(object): -+ def getName(self): -+ return 'Email' -+ -+ def getParameters(self): -+ return [TextParameter(x) for x in ['To', 'From', 'SMTP Server', 'SMTP Port']] -+ -+ # Lifted from python email module examples. -+ def attachFile(self, outer, path): -+ # Guess the content type based on the file's extension. Encoding -+ # will be ignored, although we should check for simple things like -+ # gzip'd or compressed files. -+ ctype, encoding = mimetypes.guess_type(path) -+ if ctype is None or encoding is not None: -+ # No guess could be made, or the file is encoded (compressed), so -+ # use a generic bag-of-bits type. -+ ctype = 'application/octet-stream' -+ maintype, subtype = ctype.split('/', 1) -+ if maintype == 'text': -+ fp = open(path) -+ # Note: we should handle calculating the charset -+ msg = MIMEText(fp.read(), _subtype=subtype) -+ fp.close() -+ else: -+ fp = open(path, 'rb') -+ msg = MIMEBase(maintype, subtype) -+ msg.set_payload(fp.read()) -+ fp.close() -+ # Encode the payload using Base64 -+ encoders.encode_base64(msg) -+ # Set the filename parameter -+ msg.add_header('Content-Disposition', 'attachment', filename=os.path.basename(path)) -+ outer.attach(msg) -+ -+ def fileReport(self, report, parameters): -+ mainMsg = """\ -+BUG REPORT -+--- -+Title: %s -+Description: %s -+"""%(report.title, report.description) -+ -+ if not parameters.get('To'): -+ raise ReportFailure('No "To" address specified.') -+ if not parameters.get('From'): -+ raise ReportFailure('No "From" address specified.') -+ -+ msg = MIMEMultipart() -+ msg['Subject'] = 'BUG REPORT: %s'%(report.title) -+ # FIXME: Get config parameters -+ msg['To'] = parameters.get('To') -+ msg['From'] = parameters.get('From') -+ msg.preamble = mainMsg -+ -+ msg.attach(MIMEText(mainMsg, _subtype='text/plain')) -+ for file in report.files: -+ self.attachFile(msg, file) -+ -+ try: -+ s = smtplib.SMTP(host=parameters.get('SMTP Server'), -+ port=parameters.get('SMTP Port')) -+ s.sendmail(msg['From'], msg['To'], msg.as_string()) -+ s.close() -+ except: -+ raise ReportFailure('Unable to send message via SMTP.') -+ -+ return "Message sent!" -+ -+class BugzillaReporter(object): -+ def getName(self): -+ return 'Bugzilla' -+ -+ def getParameters(self): -+ return [TextParameter(x) for x in ['URL','Product']] -+ -+ def fileReport(self, report, parameters): -+ raise NotImplementedError -+ -+ -+class RadarClassificationParameter(SelectionParameter): -+ def __init__(self): -+ SelectionParameter.__init__(self,"Classification", -+ [['1', 'Security'], ['2', 'Crash/Hang/Data Loss'], -+ ['3', 'Performance'], ['4', 'UI/Usability'], -+ ['6', 'Serious Bug'], ['7', 'Other']]) -+ -+ def saveConfigValue(self): -+ return False -+ -+ def getValue(self,r,bugtype,getConfigOption): -+ if bugtype.find("leak") != -1: -+ return '3' -+ elif bugtype.find("dereference") != -1: -+ return '2' -+ elif bugtype.find("missing ivar release") != -1: -+ return '3' -+ else: -+ return '7' -+ -+### -+ -+def getReporters(): -+ reporters = [] -+ reporters.append(EmailReporter()) -+ return reporters -+ --- -2.27.0 - diff --git a/0001-scan-view-Remove-Reporter.py-and-associated-AppleScr.patch b/0001-scan-view-Remove-Reporter.py-and-associated-AppleScr.patch deleted file mode 100644 index e8a7969..0000000 --- a/0001-scan-view-Remove-Reporter.py-and-associated-AppleScr.patch +++ /dev/null @@ -1,299 +0,0 @@ -From f962ce26b4bf716af29b9d4d05860d5fb81cee61 Mon Sep 17 00:00:00 2001 -From: Tom Stellard -Date: Fri, 18 Dec 2020 23:16:26 +0000 -Subject: [PATCH] scan-view: Remove Reporter.py and associated AppleScript - files - -I'm not exactly sure what this is, but it appears to be a tool for reporting -internal issues at Apple. These files haven't been meaningfully updated in -12 years, and it doesn't seem like there is any reason to keep them in tree. - -Differential Revision: https://reviews.llvm.org/D93565 ---- - clang/tools/scan-view/CMakeLists.txt | 3 - - clang/tools/scan-view/share/FileRadar.scpt | Bin 18418 -> 0 bytes - .../scan-view/share/GetRadarVersion.scpt | 0 - clang/tools/scan-view/share/Reporter.py | 251 ------------------ - 4 files changed, 254 deletions(-) - delete mode 100644 clang/tools/scan-view/share/FileRadar.scpt - delete mode 100644 clang/tools/scan-view/share/GetRadarVersion.scpt - delete mode 100644 clang/tools/scan-view/share/Reporter.py - -diff --git a/clang/tools/scan-view/CMakeLists.txt b/clang/tools/scan-view/CMakeLists.txt -index 22edb974bac7..dd3d33439299 100644 ---- a/clang/tools/scan-view/CMakeLists.txt -+++ b/clang/tools/scan-view/CMakeLists.txt -@@ -5,10 +5,7 @@ set(BinFiles - - set(ShareFiles - ScanView.py -- Reporter.py - startfile.py -- FileRadar.scpt -- GetRadarVersion.scpt - bugcatcher.ico) - - if(CLANG_INSTALL_SCANVIEW) -diff --git a/clang/tools/scan-view/share/GetRadarVersion.scpt b/clang/tools/scan-view/share/GetRadarVersion.scpt -deleted file mode 100644 -index e69de29bb2d1..000000000000 -diff --git a/clang/tools/scan-view/share/Reporter.py b/clang/tools/scan-view/share/Reporter.py -deleted file mode 100644 -index b1ff16142e27..000000000000 ---- a/clang/tools/scan-view/share/Reporter.py -+++ /dev/null -@@ -1,251 +0,0 @@ --#!/usr/bin/env python --# -*- coding: utf-8 -*- -- --"""Methods for reporting bugs.""" -- --import subprocess, sys, os -- --__all__ = ['ReportFailure', 'BugReport', 'getReporters'] -- --# -- --class ReportFailure(Exception): -- """Generic exception for failures in bug reporting.""" -- def __init__(self, value): -- self.value = value -- --# Collect information about a bug. -- --class BugReport(object): -- def __init__(self, title, description, files): -- self.title = title -- self.description = description -- self.files = files -- --# Reporter interfaces. -- --import os -- --import email, mimetypes, smtplib --from email import encoders --from email.message import Message --from email.mime.base import MIMEBase --from email.mime.multipart import MIMEMultipart --from email.mime.text import MIMEText -- --#===------------------------------------------------------------------------===# --# ReporterParameter --#===------------------------------------------------------------------------===# -- --class ReporterParameter(object): -- def __init__(self, n): -- self.name = n -- def getName(self): -- return self.name -- def getValue(self,r,bugtype,getConfigOption): -- return getConfigOption(r.getName(),self.getName()) -- def saveConfigValue(self): -- return True -- --class TextParameter (ReporterParameter): -- def getHTML(self,r,bugtype,getConfigOption): -- return """\ -- --%s: -- --"""%(self.getName(),r.getName(),self.getName(),self.getValue(r,bugtype,getConfigOption)) -- --class SelectionParameter (ReporterParameter): -- def __init__(self, n, values): -- ReporterParameter.__init__(self,n) -- self.values = values -- -- def getHTML(self,r,bugtype,getConfigOption): -- default = self.getValue(r,bugtype,getConfigOption) -- return """\ -- --%s:"""%(self.getName(),r.getName(),self.getName(),'\n'.join(["""\ --"""%(o[0], -- o[0] == default and ' selected="selected"' or '', -- o[1]) for o in self.values])) -- --#===------------------------------------------------------------------------===# --# Reporters --#===------------------------------------------------------------------------===# -- --class EmailReporter(object): -- def getName(self): -- return 'Email' -- -- def getParameters(self): -- return [TextParameter(x) for x in ['To', 'From', 'SMTP Server', 'SMTP Port']] -- -- # Lifted from python email module examples. -- def attachFile(self, outer, path): -- # Guess the content type based on the file's extension. Encoding -- # will be ignored, although we should check for simple things like -- # gzip'd or compressed files. -- ctype, encoding = mimetypes.guess_type(path) -- if ctype is None or encoding is not None: -- # No guess could be made, or the file is encoded (compressed), so -- # use a generic bag-of-bits type. -- ctype = 'application/octet-stream' -- maintype, subtype = ctype.split('/', 1) -- if maintype == 'text': -- fp = open(path) -- # Note: we should handle calculating the charset -- msg = MIMEText(fp.read(), _subtype=subtype) -- fp.close() -- else: -- fp = open(path, 'rb') -- msg = MIMEBase(maintype, subtype) -- msg.set_payload(fp.read()) -- fp.close() -- # Encode the payload using Base64 -- encoders.encode_base64(msg) -- # Set the filename parameter -- msg.add_header('Content-Disposition', 'attachment', filename=os.path.basename(path)) -- outer.attach(msg) -- -- def fileReport(self, report, parameters): -- mainMsg = """\ --BUG REPORT ----- --Title: %s --Description: %s --"""%(report.title, report.description) -- -- if not parameters.get('To'): -- raise ReportFailure('No "To" address specified.') -- if not parameters.get('From'): -- raise ReportFailure('No "From" address specified.') -- -- msg = MIMEMultipart() -- msg['Subject'] = 'BUG REPORT: %s'%(report.title) -- # FIXME: Get config parameters -- msg['To'] = parameters.get('To') -- msg['From'] = parameters.get('From') -- msg.preamble = mainMsg -- -- msg.attach(MIMEText(mainMsg, _subtype='text/plain')) -- for file in report.files: -- self.attachFile(msg, file) -- -- try: -- s = smtplib.SMTP(host=parameters.get('SMTP Server'), -- port=parameters.get('SMTP Port')) -- s.sendmail(msg['From'], msg['To'], msg.as_string()) -- s.close() -- except: -- raise ReportFailure('Unable to send message via SMTP.') -- -- return "Message sent!" -- --class BugzillaReporter(object): -- def getName(self): -- return 'Bugzilla' -- -- def getParameters(self): -- return [TextParameter(x) for x in ['URL','Product']] -- -- def fileReport(self, report, parameters): -- raise NotImplementedError -- -- --class RadarClassificationParameter(SelectionParameter): -- def __init__(self): -- SelectionParameter.__init__(self,"Classification", -- [['1', 'Security'], ['2', 'Crash/Hang/Data Loss'], -- ['3', 'Performance'], ['4', 'UI/Usability'], -- ['6', 'Serious Bug'], ['7', 'Other']]) -- -- def saveConfigValue(self): -- return False -- -- def getValue(self,r,bugtype,getConfigOption): -- if bugtype.find("leak") != -1: -- return '3' -- elif bugtype.find("dereference") != -1: -- return '2' -- elif bugtype.find("missing ivar release") != -1: -- return '3' -- else: -- return '7' -- --class RadarReporter(object): -- @staticmethod -- def isAvailable(): -- # FIXME: Find this .scpt better -- path = os.path.join(os.path.dirname(__file__),'../share/scan-view/GetRadarVersion.scpt') -- try: -- p = subprocess.Popen(['osascript',path], -- stdout=subprocess.PIPE, stderr=subprocess.PIPE) -- except: -- return False -- data,err = p.communicate() -- res = p.wait() -- # FIXME: Check version? Check for no errors? -- return res == 0 -- -- def getName(self): -- return 'Radar' -- -- def getParameters(self): -- return [ TextParameter('Component'), TextParameter('Component Version'), -- RadarClassificationParameter() ] -- -- def fileReport(self, report, parameters): -- component = parameters.get('Component', '') -- componentVersion = parameters.get('Component Version', '') -- classification = parameters.get('Classification', '') -- personID = "" -- diagnosis = "" -- config = "" -- -- if not component.strip(): -- component = 'Bugs found by clang Analyzer' -- if not componentVersion.strip(): -- componentVersion = 'X' -- -- script = os.path.join(os.path.dirname(__file__),'../share/scan-view/FileRadar.scpt') -- args = ['osascript', script, component, componentVersion, classification, personID, report.title, -- report.description, diagnosis, config] + [os.path.abspath(f) for f in report.files] --# print >>sys.stderr, args -- try: -- p = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE) -- except: -- raise ReportFailure("Unable to file radar (AppleScript failure).") -- data, err = p.communicate() -- res = p.wait() -- -- if res: -- raise ReportFailure("Unable to file radar (AppleScript failure).") -- -- try: -- values = eval(data) -- except: -- raise ReportFailure("Unable to process radar results.") -- -- # We expect (int: bugID, str: message) -- if len(values) != 2 or not isinstance(values[0], int): -- raise ReportFailure("Unable to process radar results.") -- -- bugID,message = values -- bugID = int(bugID) -- -- if not bugID: -- raise ReportFailure(message) -- -- return "Filed: %d"%(bugID,bugID) -- --### -- --def getReporters(): -- reporters = [] -- if RadarReporter.isAvailable(): -- reporters.append(RadarReporter()) -- reporters.append(EmailReporter()) -- return reporters -- --- -2.26.2 - diff --git a/0002-gtest-reorg.patch b/0002-gtest-reorg.patch index 121ac46..f8edbd3 100644 --- a/0002-gtest-reorg.patch +++ b/0002-gtest-reorg.patch @@ -1,17 +1,7 @@ -From 1f26a0284925859b72ee520ce74452d77d822409 Mon Sep 17 00:00:00 2001 -From: serge-sans-paille -Date: Mon, 28 Jan 2019 19:12:27 +0000 -Subject: [PATCH 2/2] [PATCH] gtest reorg - ---- - CMakeLists.txt | 12 +++++------- - 1 file changed, 5 insertions(+), 7 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index c2016a45ca..48ea3c3bb9 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -157,12 +157,6 @@ Please install Python or specify the PYTHON_EXECUTABLE CMake variable.") +diff -Naur clang-12.0.0rc1.src.orig/CMakeLists.txt clang-12.0.0rc1.src/CMakeLists.txt +--- clang-12.0.0rc1.src.orig/CMakeLists.txt 2021-02-14 21:40:31.000000000 +0100 ++++ clang-12.0.0rc1.src/CMakeLists.txt 2021-02-14 21:41:57.000000000 +0100 +@@ -153,12 +153,6 @@ set(LLVM_UTILS_PROVIDED ON) set(CLANG_TEST_DEPS FileCheck count not) endif() @@ -24,7 +14,7 @@ index c2016a45ca..48ea3c3bb9 100644 else() # Seek installed Lit. find_program(LLVM_LIT -@@ -507,7 +501,11 @@ endif() +@@ -537,7 +531,11 @@ if( CLANG_INCLUDE_TESTS ) @@ -37,6 +27,3 @@ index c2016a45ca..48ea3c3bb9 100644 add_subdirectory(unittests) list(APPEND CLANG_TEST_DEPS ClangUnitTests) list(APPEND CLANG_TEST_PARAMS --- -2.19.2 - diff --git a/clang-tidy.patch b/clang-tidy.patch new file mode 100644 index 0000000..beb566f --- /dev/null +++ b/clang-tidy.patch @@ -0,0 +1,36 @@ +diff -Naur clang-tools-extra-12.0.0rc1.src.orig/unittests/clang-tidy/CMakeLists.txt clang-tools-extra-12.0.0rc1.src/unittests/clang-tidy/CMakeLists.txt +--- clang-tools-extra-12.0.0rc1.src.orig/unittests/clang-tidy/CMakeLists.txt 2021-02-15 11:12:22.000000000 +0100 ++++ clang-tools-extra-12.0.0rc1.src/unittests/clang-tidy/CMakeLists.txt 2021-02-15 17:02:32.000000000 +0100 +@@ -1,9 +1,17 @@ + set(LLVM_LINK_COMPONENTS + FrontendOpenMP + Support +- TestingSupport + ) + ++if(CLANG_BUILT_STANDALONE) ++ # LLVMTestingSupport library is needed for clang-tidy tests. ++ if (EXISTS ${LLVM_MAIN_SRC_DIR}/lib/Testing/Support ++ AND NOT TARGET LLVMTestingSupport) ++ add_subdirectory(${LLVM_MAIN_SRC_DIR}/lib/Testing/Support ++ lib/Testing/Support) ++ endif() ++endif() ++ + get_filename_component(CLANG_LINT_SOURCE_DIR + ${CMAKE_CURRENT_SOURCE_DIR}/../../clang-tidy REALPATH) + include_directories(${CLANG_LINT_SOURCE_DIR}) +@@ -37,6 +45,7 @@ + clangToolingCore + clangTransformer + ) ++ + target_link_libraries(ClangTidyTests + PRIVATE + clangTidy +@@ -46,4 +55,5 @@ + clangTidyObjCModule + clangTidyReadabilityModule + clangTidyUtils ++ LLVMTestingSupport + ) diff --git a/clang.spec b/clang.spec index fed16cc..c444ed2 100644 --- a/clang.spec +++ b/clang.spec @@ -1,10 +1,10 @@ %global compat_build 0 -%global maj_ver 11 -%global min_ver 1 +%global maj_ver 12 +%global min_ver 0 %global patch_ver 0 -%global rc_ver 2 -%global baserelease 5 +%global rc_ver 1 +%global baserelease 1 %global clang_tools_binaries \ %{_bindir}/clang-apply-replacements \ @@ -85,16 +85,18 @@ Source2: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{versio %endif Source4: tstellar-gpg-key.asc -Patch4: 0002-gtest-reorg.patch -Patch11: 0001-ToolChain-Add-lgcc_s-to-the-linker-flags-when-using-.patch -Patch13: 0001-Make-funwind-tables-the-default-for-all-archs.patch + +%if !0%{?compat_build} +Patch21: completion-model-cmake.patch +Patch22: clang-tidy.patch +%endif # Not Upstream -Patch15: 0001-clang-Don-t-install-static-libraries.patch -Patch16: 0001-clang-Fix-spurious-test-failure.patch -Patch17: 0001-Driver-Prefer-gcc-toolchains-with-libgcc_s.so-when-n.patch -Patch18: 0001-scan-view-Remove-Reporter.py-and-associated-AppleScr.patch -Patch19: 0001-Partially-Revert-scan-view-Remove-Reporter.py-and-as.patch +Patch4: 0002-gtest-reorg.patch +Patch11: 0001-ToolChain-Add-lgcc_s-to-the-linker-flags-when-using-.patch +Patch13: 0001-Make-funwind-tables-the-default-for-all-archs.patch +Patch15: 0001-clang-Don-t-install-static-libraries.patch +Patch17: 0001-Driver-Prefer-gcc-toolchains-with-libgcc_s.so-when-n.patch BuildRequires: gcc BuildRequires: gcc-c++ @@ -263,6 +265,11 @@ Requires: python3 %{gpgverify} --keyring='%{SOURCE4}' --signature='%{SOURCE2}' --data='%{SOURCE1}' %setup -T -q -b 1 -n %{clang_tools_srcdir} +%patch21 -p1 -b .comp-model +%patch22 -p1 -b .clang-tidy + +# failing test case +rm test/clang-tidy/checkers/altera-struct-pack-align.cpp pathfix.py -i %{__python3} -pn \ @@ -273,26 +280,18 @@ pathfix.py -i %{__python3} -pn \ %patch4 -p1 -b .gtest %patch11 -p1 -b .libcxx-fix -%patch13 -p2 -b .unwind-all +%patch13 -p1 -b .unwind-default %patch15 -p2 -b .no-install-static -%patch16 -p2 -b .test-fix2 %patch17 -p1 -b .check-gcc_s -%patch18 -p2 -b .scan-view-remove-files -%patch19 -p2 -b .scan-view-remove-files-fix -# Patch does not support binary diffs from git so we have to manually delete -# this: -rm tools/scan-view/share/FileRadar.scpt - -mv ../%{clang_tools_srcdir} tools/extra +# failing test case +rm test/CodeGen/profile-filter.c pathfix.py -i %{__python3} -pn \ tools/clang-format/*.py \ tools/clang-format/git-clang-format \ utils/hmaptool/hmaptool \ - tools/scan-view/bin/scan-view \ - tools/scan-view/share/Reporter.py \ - tools/scan-view/share/startfile.py + tools/scan-view/bin/scan-view %endif %build @@ -340,6 +339,7 @@ sed -i 's/\@FEDORA_LLVM_LIB_SUFFIX\@//g' test/lit.cfg.py -DCLANG_INCLUDE_TESTS:BOOL=OFF \ %else -DCLANG_INCLUDE_TESTS:BOOL=ON \ + -DLLVM_EXTERNAL_CLANG_TOOLS_EXTRA_SOURCE_DIR=../%{clang_tools_srcdir} \ -DLLVM_EXTERNAL_LIT=%{_bindir}/lit \ -DLLVM_MAIN_SRC_DIR=%{_datadir}/llvm/src \ %if 0%{?__isa_bits} == 64 @@ -427,7 +427,6 @@ ln -s clang++ %{buildroot}%{_bindir}/clang++-%{maj_ver} # Fix permission chmod u-x %{buildroot}%{_mandir}/man1/scan-build.1* -chmod a+x %{buildroot}%{_datadir}/scan-view/{Reporter.py,startfile.py} # create a link to clang's resource directory that is "constant" across minor # version bumps @@ -539,7 +538,10 @@ false %endif %changelog -* Thu Feb 09 2021 Tom Stellard - 11.1.0-0.5.rc2 +* Sun Feb 14 2021 sguelton@redhat.com - 12.0.0-0.1.rc1 +- 12.0.0-rc1 release + +* Tue Feb 09 2021 Tom Stellard - 11.1.0-0.5.rc2 - Remove some unnecessary scan-view files * Tue Jan 26 2021 Fedora Release Engineering - 11.1.0-0.4.rc2 diff --git a/completion-model-cmake.patch b/completion-model-cmake.patch new file mode 100644 index 0000000..925294d --- /dev/null +++ b/completion-model-cmake.patch @@ -0,0 +1,14 @@ +diff -Naur clang-tools-extra-12.0.0rc1.src.orig/clangd/quality/CompletionModel.cmake clang-tools-extra-12.0.0rc1.src/clangd/quality/CompletionModel.cmake +--- clang-tools-extra-12.0.0rc1.src.orig/clangd/quality/CompletionModel.cmake 2021-02-14 17:03:14.000000000 +0100 ++++ clang-tools-extra-12.0.0rc1.src/clangd/quality/CompletionModel.cmake 2021-02-14 20:57:51.000000000 +0100 +@@ -5,8 +5,8 @@ + # will define a C++ class called ${cpp_class} - which may be a + # namespace-qualified class name. + function(gen_decision_forest model filename cpp_class) +- set(model_compiler ${CMAKE_SOURCE_DIR}/../clang-tools-extra/clangd/quality/CompletionModelCodegen.py) +- ++ set(model_compiler ${LLVM_EXTERNAL_CLANG_TOOLS_EXTRA_SOURCE_DIR}/clangd/quality/CompletionModelCodegen.py) ++ + set(output_dir ${CMAKE_CURRENT_BINARY_DIR}) + set(header_file ${output_dir}/${filename}.h) + set(cpp_file ${output_dir}/${filename}.cpp) diff --git a/sources b/sources index e235efe..16e84c4 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ -SHA512 (clang-11.1.0rc2.src.tar.xz) = cae207e69b6d7df31303b1c73d55d82091babedbe0dc684aab1b603ce7e749d98a11a14ae9e3848dcb95a5840b38de56f407dda10b8b80eac3a6ce09ca44758a -SHA512 (clang-tools-extra-11.1.0rc2.src.tar.xz) = 462a15d571b0f7bb02641cf1ebfa8e510c6877839f6cdae48a8535ef481ec4ffdcf062fc7cfd8ea791bc4f8dff45f2104151cae6fa94d1091f995bcf8b87c0e5 -SHA512 (clang-tools-extra-11.1.0rc2.src.tar.xz.sig) = 7cb6632673c9739c87f1a8cc643e7f5583b52fc893d489d738216b423ceba6e97454323674cf0ee178e4141171d24eefc1b0786fad84efcb2bdb27d6033393b3 -SHA512 (clang-11.1.0rc2.src.tar.xz.sig) = 4921b2c4ef64c57d7135989349da8999b621c182362c0edabb23c67192052729afc9ba09888ee683cb10e39d5645250b1b62100c22ded8ac05f1ca0ba36b8e64 +SHA512 (clang-12.0.0rc1.src.tar.xz) = ffde0f500926e3bb40c9565e013ae73f488ecf3ffea28a1a14c366d12fddc9a399d126cb8af1b42565cc8c32fdcc6d8f5056fd31dd6e104dad2b856cda19009e +SHA512 (clang-tools-extra-12.0.0rc1.src.tar.xz) = 5c7dd5a5fc287513f281db66963101452a5463454393c554f4af043f99737b49110f3d0e07932e99a329f904175c236d31063c2c86b1f9f679c75fb55db0fab3 +SHA512 (clang-tools-extra-12.0.0rc1.src.tar.xz.sig) = 7e63da5b1f2df71d2378a7bff02eb8976a40ff4a106cb775a022b305d2847282d0c5865413ca77e41785c63cf90e11a9b9f2838b148febd1f9e0eea048d1102c +SHA512 (clang-12.0.0rc1.src.tar.xz.sig) = 4afb9effe6417a5c1d03189aff9c8cf3af49a317504b0d09c4c3242627f92c9b27a0291346ee547541fe8c00f36075f3b47b3572eaa8a6174854a3d2505348b3