diff --git a/.clang.metadata b/.clang.metadata new file mode 100644 index 0000000..f6029bc --- /dev/null +++ b/.clang.metadata @@ -0,0 +1,2 @@ +51250856f368acef5ab335a16f994bf29ad3d115 SOURCES/clang-12.0.0.src.tar.xz +5fe54db45be35b8f77acc32f08e01912f8e8b915 SOURCES/clang-tools-extra-12.0.0.src.tar.xz diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..59ed886 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +SOURCES/clang-12.0.0.src.tar.xz +SOURCES/clang-tools-extra-12.0.0.src.tar.xz diff --git a/SOURCES/0001-PATCH-clang-Reorganize-gtest-integration.patch b/SOURCES/0001-PATCH-clang-Reorganize-gtest-integration.patch new file mode 100644 index 0000000..e854f01 --- /dev/null +++ b/SOURCES/0001-PATCH-clang-Reorganize-gtest-integration.patch @@ -0,0 +1,42 @@ +From c6b921c8d833546946b70a8c2640032fd7c62461 Mon Sep 17 00:00:00 2001 +From: serge-sans-paille +Date: Thu, 25 Feb 2021 14:04:52 +0100 +Subject: [PATCH 1/6] [PATCH][clang] Reorganize gtest integration + +--- + clang/CMakeLists.txt | 12 +++++------- + 1 file changed, 5 insertions(+), 7 deletions(-) + +diff --git a/clang/CMakeLists.txt b/clang/CMakeLists.txt +index 9e74014..0185276 100644 +--- a/clang/CMakeLists.txt ++++ b/clang/CMakeLists.txt +@@ -153,12 +153,6 @@ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR ) + set(LLVM_UTILS_PROVIDED ON) + set(CLANG_TEST_DEPS FileCheck count not) + endif() +- set(UNITTEST_DIR ${LLVM_MAIN_SRC_DIR}/utils/unittest) +- if(EXISTS ${UNITTEST_DIR}/googletest/include/gtest/gtest.h +- AND NOT EXISTS ${LLVM_LIBRARY_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX} +- AND EXISTS ${UNITTEST_DIR}/CMakeLists.txt) +- add_subdirectory(${UNITTEST_DIR} utils/unittest) +- endif() + else() + # Seek installed Lit. + find_program(LLVM_LIT +@@ -537,7 +531,11 @@ endif() + + + if( CLANG_INCLUDE_TESTS ) +- if(EXISTS ${LLVM_MAIN_SRC_DIR}/utils/unittest/googletest/include/gtest/gtest.h) ++ set(UNITTEST_DIR ${LLVM_MAIN_SRC_DIR}/utils/unittest) ++ if(EXISTS ${UNITTEST_DIR}/googletest/include/gtest/gtest.h ++ AND NOT EXISTS ${LLVM_LIBRARY_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX} ++ AND EXISTS ${UNITTEST_DIR}/CMakeLists.txt) ++ add_subdirectory(${UNITTEST_DIR} utils/unittest) + add_subdirectory(unittests) + list(APPEND CLANG_TEST_DEPS ClangUnitTests) + list(APPEND CLANG_TEST_PARAMS +-- +1.8.3.1 + diff --git a/SOURCES/0001-PATCH-clang-tools-extra-Make-clangd-CompletionModel-.patch b/SOURCES/0001-PATCH-clang-tools-extra-Make-clangd-CompletionModel-.patch new file mode 100644 index 0000000..4745e78 --- /dev/null +++ b/SOURCES/0001-PATCH-clang-tools-extra-Make-clangd-CompletionModel-.patch @@ -0,0 +1,31 @@ +From 84e4fe467f290c85b3d7d22c7333d192e1282054 Mon Sep 17 00:00:00 2001 +From: serge-sans-paille +Date: Wed, 17 Mar 2021 08:32:56 +0100 +Subject: [PATCH] [PATCH][clang-tools-extra] Make clangd CompletionModel usable + even with non-standard (but supported) layout + +llvm supports specifying a non-standard layout where each project lies in its +own place. Do not assume a fixed layout and use the appropriate cmake variable +instead. +--- + clang-tools-extra/clangd/quality/CompletionModel.cmake | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/clang-tools-extra/clangd/quality/CompletionModel.cmake b/clang-tools-extra/clangd/quality/CompletionModel.cmake +index 60c6d2a..41bc2ed 100644 +--- a/clang-tools-extra/clangd/quality/CompletionModel.cmake ++++ b/clang-tools-extra/clangd/quality/CompletionModel.cmake +@@ -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) +-- +1.8.3.1 + diff --git a/SOURCES/0002-PATCH-clang-Make-funwind-tables-the-default-on-all-a.patch b/SOURCES/0002-PATCH-clang-Make-funwind-tables-the-default-on-all-a.patch new file mode 100644 index 0000000..0a29dd4 --- /dev/null +++ b/SOURCES/0002-PATCH-clang-Make-funwind-tables-the-default-on-all-a.patch @@ -0,0 +1,40 @@ +From 07b062e1f7c3359550aa8c0a7b86f6054971439d Mon Sep 17 00:00:00 2001 +From: serge-sans-paille +Date: Thu, 25 Feb 2021 14:09:29 +0100 +Subject: [PATCH 2/6] [PATCH][clang] Make -funwind-tables the default on 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 b2ddef1..715b323 100644 +--- a/clang/lib/Driver/ToolChain.cpp ++++ b/clang/lib/Driver/ToolChain.cpp +@@ -257,7 +257,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 1d8a3cd..5deeb10 100644 +--- a/clang/lib/Driver/ToolChains/Gnu.cpp ++++ b/clang/lib/Driver/ToolChains/Gnu.cpp +@@ -2713,7 +2713,7 @@ bool Generic_GCC::IsUnwindTablesDefault(const ArgList &Args) const { + case llvm::Triple::x86_64: + return true; + default: +- return false; ++ return true; + } + } + +-- +1.8.3.1 + diff --git a/SOURCES/0003-PATCH-clang-Don-t-install-static-libraries.patch b/SOURCES/0003-PATCH-clang-Don-t-install-static-libraries.patch new file mode 100644 index 0000000..82f99a7 --- /dev/null +++ b/SOURCES/0003-PATCH-clang-Don-t-install-static-libraries.patch @@ -0,0 +1,25 @@ +From 2c6cd40d016f492d53e16f1c7424a0d9878ae7ec Mon Sep 17 00:00:00 2001 +From: Tom Stellard +Date: Fri, 31 Jan 2020 11:04:57 -0800 +Subject: [PATCH 3/6] [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 704278a..1737b24 100644 +--- a/clang/cmake/modules/AddClang.cmake ++++ b/clang/cmake/modules/AddClang.cmake +@@ -111,7 +111,7 @@ macro(add_clang_library name) + if(TARGET ${lib}) + target_link_libraries(${lib} 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(${lib} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR + "clang-libraries" IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR +-- +1.8.3.1 + diff --git a/SOURCES/0004-PATCH-clang-Prefer-gcc-toolchains-with-libgcc_s.so-w.patch b/SOURCES/0004-PATCH-clang-Prefer-gcc-toolchains-with-libgcc_s.so-w.patch new file mode 100644 index 0000000..4f2cf39 --- /dev/null +++ b/SOURCES/0004-PATCH-clang-Prefer-gcc-toolchains-with-libgcc_s.so-w.patch @@ -0,0 +1,132 @@ +From d8af49687765744efaae7ba0f0c4c0fcd58a0e31 Mon Sep 17 00:00:00 2001 +From: serge-sans-paille +Date: Wed, 23 Sep 2020 12:47:30 +0000 +Subject: [PATCH 4/6] [PATCH][clang] Prefer gcc toolchains with libgcc_s.so + when not static linking libgcc + +Fedora ships cross-compilers on all platforms, so a user could end up +with a gcc x86_64 cross-compiler installed on an x86_64 system. clang +maintains a list of supported triples for each target and when all +else is equal will prefer toolchains with triples that appear earlier +in the list. + +The cross-compiler triple on Fedora is x86_64-linux-gnu and this comes +before the Fedora system compiler's triple: x86_64-redhat-linux in +the triples list, so the cross compiler is always preferred. This +is a problem, because the cross compiler is missing libraries, like +libgcc_s.so, that clang expects to be there so linker invocations +will fail. + +This patch fixes this by checking for the existence of libgcc_s.so +when it is required and taking that into account when selecting a +toolchain. +--- + clang/lib/Driver/ToolChains/Gnu.cpp | 16 ++++++++++++++-- + clang/lib/Driver/ToolChains/Gnu.h | 4 +++- + .../usr/lib/gcc/x86_64-linux-gnu/7/crtbegin.o | 0 + .../usr/lib/gcc/x86_64-redhat-linux/7/crtbegin.o | 0 + .../usr/lib/gcc/x86_64-redhat-linux/7/libgcc_s.so | 0 + clang/test/Driver/linux-ld.c | 12 ++++++++++++ + 6 files changed, 29 insertions(+), 3 deletions(-) + create mode 100644 clang/test/Driver/Inputs/fedora_28_tree/usr/lib/gcc/x86_64-linux-gnu/7/crtbegin.o + create mode 100644 clang/test/Driver/Inputs/fedora_28_tree/usr/lib/gcc/x86_64-redhat-linux/7/crtbegin.o + create mode 100644 clang/test/Driver/Inputs/fedora_28_tree/usr/lib/gcc/x86_64-redhat-linux/7/libgcc_s.so + +diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp +index 5deeb10..5d51517 100644 +--- a/clang/lib/Driver/ToolChains/Gnu.cpp ++++ b/clang/lib/Driver/ToolChains/Gnu.cpp +@@ -2539,6 +2539,8 @@ void Generic_GCC::GCCInstallationDetector::ScanLibDirForGCCTriple( + (TargetArch == llvm::Triple::x86 && + TargetTriple.getOS() != llvm::Triple::Solaris)}}; + ++ bool NeedLibgccShared = !Args.hasArg(options::OPT_static_libgcc) && ++ !Args.hasArg(options::OPT_static); + for (auto &Suffix : Suffixes) { + if (!Suffix.Active) + continue; +@@ -2556,8 +2558,17 @@ void Generic_GCC::GCCInstallationDetector::ScanLibDirForGCCTriple( + continue; // Saw this path before; no need to look at it again. + if (CandidateVersion.isOlderThan(4, 1, 1)) + continue; +- if (CandidateVersion <= Version) +- continue; ++ ++ bool CandidateHasLibGccShared = false; ++ if (CandidateVersion <= Version) { ++ if (NeedLibgccShared && !HasLibGccShared) { ++ CandidateHasLibGccShared = ++ D.getVFS().exists(LI->path() + "/libgcc_s.so"); ++ ++ } ++ if (HasLibGccShared || !CandidateHasLibGccShared) ++ continue; ++ } + + if (!ScanGCCForMultilibs(TargetTriple, Args, LI->path(), + NeedsBiarchSuffix)) +@@ -2571,6 +2582,7 @@ void Generic_GCC::GCCInstallationDetector::ScanLibDirForGCCTriple( + GCCInstallPath = (LibDir + "/" + LibSuffix + "/" + VersionText).str(); + GCCParentLibPath = (GCCInstallPath + "/../" + Suffix.ReversePath).str(); + IsValid = true; ++ HasLibGccShared = CandidateHasLibGccShared; + } + } + } +diff --git a/clang/lib/Driver/ToolChains/Gnu.h b/clang/lib/Driver/ToolChains/Gnu.h +index 90d3baf..9d0cea2 100644 +--- a/clang/lib/Driver/ToolChains/Gnu.h ++++ b/clang/lib/Driver/ToolChains/Gnu.h +@@ -190,6 +190,7 @@ public: + /// Driver, and has logic for fuzzing that where appropriate. + class GCCInstallationDetector { + bool IsValid; ++ bool HasLibGccShared; + llvm::Triple GCCTriple; + const Driver &D; + +@@ -216,7 +217,8 @@ public: + const std::string GentooConfigDir = "/etc/env.d/gcc"; + + public: +- explicit GCCInstallationDetector(const Driver &D) : IsValid(false), D(D) {} ++ explicit GCCInstallationDetector(const Driver &D) ++ : IsValid(false), HasLibGccShared(false), D(D) {} + void init(const llvm::Triple &TargetTriple, const llvm::opt::ArgList &Args, + ArrayRef ExtraTripleAliases = None); + +diff --git a/clang/test/Driver/Inputs/fedora_28_tree/usr/lib/gcc/x86_64-linux-gnu/7/crtbegin.o b/clang/test/Driver/Inputs/fedora_28_tree/usr/lib/gcc/x86_64-linux-gnu/7/crtbegin.o +new file mode 100644 +index 0000000..e69de29 +diff --git a/clang/test/Driver/Inputs/fedora_28_tree/usr/lib/gcc/x86_64-redhat-linux/7/crtbegin.o b/clang/test/Driver/Inputs/fedora_28_tree/usr/lib/gcc/x86_64-redhat-linux/7/crtbegin.o +new file mode 100644 +index 0000000..e69de29 +diff --git a/clang/test/Driver/Inputs/fedora_28_tree/usr/lib/gcc/x86_64-redhat-linux/7/libgcc_s.so b/clang/test/Driver/Inputs/fedora_28_tree/usr/lib/gcc/x86_64-redhat-linux/7/libgcc_s.so +new file mode 100644 +index 0000000..e69de29 +diff --git a/clang/test/Driver/linux-ld.c b/clang/test/Driver/linux-ld.c +index 24d3c78..071bb9b 100644 +--- a/clang/test/Driver/linux-ld.c ++++ b/clang/test/Driver/linux-ld.c +@@ -784,6 +784,18 @@ + // CHECK-FEDORA-31-RISCV64: "{{.*}}/usr/lib/gcc/riscv64-redhat-linux/9{{/|\\\\}}crtend.o" + // CHECK-FEDORA-31-RISCV64: "{{.*}}/usr/lib/gcc/riscv64-redhat-linux/9{{/|\\\\}}crtn.o" + // ++// Check that clang does not select the cross compiler by default on Fedora 28. ++// ++// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ ++// RUN: --target=x86_64-unknown-linux-gnu \ ++// RUN: --gcc-toolchain="" \ ++// RUN: --sysroot=%S/Inputs/fedora_28_tree \ ++// RUN: | FileCheck --check-prefix=CHECK-FEDORA-28-X86_64 %s ++// ++// CHECK-FEDORA-28-X86_64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" ++// CHECK-FEDORA-28-X86_64: "[[SYSROOT]]/usr/lib/gcc/x86_64-redhat-linux/7/crtbegin.o" ++// CHECK-FEDORA-28-X86_64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-redhat-linux/7" ++// + // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ + // RUN: --target=arm-unknown-linux-gnueabi -rtlib=platform \ + // RUN: --gcc-toolchain="" \ +-- +1.8.3.1 + diff --git a/SOURCES/0005-PATCH-clang-Partially-Revert-scan-view-Remove-Report.patch b/SOURCES/0005-PATCH-clang-Partially-Revert-scan-view-Remove-Report.patch new file mode 100644 index 0000000..868fe59 --- /dev/null +++ b/SOURCES/0005-PATCH-clang-Partially-Revert-scan-view-Remove-Report.patch @@ -0,0 +1,224 @@ +From ea01f898fd74bae23d8be31f1a29b542e886e3a5 Mon Sep 17 00:00:00 2001 +From: Tom Stellard +Date: Tue, 9 Feb 2021 13:35:43 -0800 +Subject: [PATCH 5/6] [PATCH][clang] 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 dd3d334..eccc6b8 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 0000000..31a14fb +--- /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 ++ +-- +1.8.3.1 + diff --git a/SOURCES/0006-PATCH-clang-Allow-__ieee128-as-an-alias-to-__float12.patch b/SOURCES/0006-PATCH-clang-Allow-__ieee128-as-an-alias-to-__float12.patch new file mode 100644 index 0000000..91e82b5 --- /dev/null +++ b/SOURCES/0006-PATCH-clang-Allow-__ieee128-as-an-alias-to-__float12.patch @@ -0,0 +1,77 @@ +From 1ef1e91142ac48ecb826f33e1e7072c7402d9fe7 Mon Sep 17 00:00:00 2001 +From: serge-sans-paille +Date: Wed, 3 Mar 2021 09:58:31 +0100 +Subject: [PATCH 6/6] [PATCH][clang] Allow __ieee128 as an alias to __float128 + on ppc + +This matches gcc behavior. + +Differential Revision: https://reviews.llvm.org/D97846 + +(cherry picked from commit 4aa510be78a75a4da82657fe433016f00dad0784) +--- + clang/include/clang/Basic/LangOptions.def | 1 + + clang/lib/Basic/IdentifierTable.cpp | 3 +++ + clang/lib/Basic/Targets/PPC.cpp | 1 + + clang/test/Sema/128bitfloat.cpp | 7 +++++++ + 4 files changed, 12 insertions(+) + +diff --git a/clang/include/clang/Basic/LangOptions.def b/clang/include/clang/Basic/LangOptions.def +index c01f0cc..3c22393e 100644 +--- a/clang/include/clang/Basic/LangOptions.def ++++ b/clang/include/clang/Basic/LangOptions.def +@@ -107,6 +107,7 @@ LANGOPT(Bool , 1, 0, "bool, true, and false keywords") + LANGOPT(Half , 1, 0, "half keyword") + LANGOPT(WChar , 1, CPlusPlus, "wchar_t keyword") + LANGOPT(Char8 , 1, 0, "char8_t keyword") ++LANGOPT(IEEE128 , 1, 0, "__ieee128 keyword") + LANGOPT(DeclSpecKeyword , 1, 0, "__declspec keyword") + BENIGN_LANGOPT(DollarIdents , 1, 1, "'$' in identifiers") + BENIGN_LANGOPT(AsmPreprocessor, 1, 0, "preprocessor in asm mode") +diff --git a/clang/lib/Basic/IdentifierTable.cpp b/clang/lib/Basic/IdentifierTable.cpp +index 51c6e02..cedc94a 100644 +--- a/clang/lib/Basic/IdentifierTable.cpp ++++ b/clang/lib/Basic/IdentifierTable.cpp +@@ -227,6 +227,9 @@ void IdentifierTable::AddKeywords(const LangOptions &LangOpts) { + if (LangOpts.DeclSpecKeyword) + AddKeyword("__declspec", tok::kw___declspec, KEYALL, LangOpts, *this); + ++ if (LangOpts.IEEE128) ++ AddKeyword("__ieee128", tok::kw___float128, KEYALL, LangOpts, *this); ++ + // Add the 'import' contextual keyword. + get("import").setModulesImport(true); + } +diff --git a/clang/lib/Basic/Targets/PPC.cpp b/clang/lib/Basic/Targets/PPC.cpp +index ff09c0f..38f286c 100644 +--- a/clang/lib/Basic/Targets/PPC.cpp ++++ b/clang/lib/Basic/Targets/PPC.cpp +@@ -551,6 +551,7 @@ void PPCTargetInfo::adjust(LangOptions &Opts) { + LongDoubleFormat = Opts.PPCIEEELongDouble + ? &llvm::APFloat::IEEEquad() + : &llvm::APFloat::PPCDoubleDouble(); ++ Opts.IEEE128 = 1; + } + + ArrayRef PPCTargetInfo::getTargetBuiltins() const { +diff --git a/clang/test/Sema/128bitfloat.cpp b/clang/test/Sema/128bitfloat.cpp +index 4a826b4..6a9ae74 100644 +--- a/clang/test/Sema/128bitfloat.cpp ++++ b/clang/test/Sema/128bitfloat.cpp +@@ -6,6 +6,13 @@ + // RUN: %clang_cc1 -triple x86_64-windows-msvc -verify -std=c++11 %s + + #if defined(__FLOAT128__) || defined(__SIZEOF_FLOAT128__) ++ ++#if defined(__ppc__) ++template struct __is_float128 { static constexpr bool value = false; }; ++template <> struct __is_float128<__float128> { static constexpr bool value = true; }; ++static_assert(__is_float128<__ieee128>::value, "__ieee128 aliases to __float128"); ++#endif ++ + __float128 f; + template struct __is_floating_point_helper {}; + template<> struct __is_floating_point_helper<__float128> {}; +-- +1.8.3.1 + diff --git a/SOURCES/clang-12.0.0.src.tar.xz.sig b/SOURCES/clang-12.0.0.src.tar.xz.sig new file mode 100644 index 0000000..cb670f9 Binary files /dev/null and b/SOURCES/clang-12.0.0.src.tar.xz.sig differ diff --git a/SOURCES/clang-tools-extra-12.0.0.src.tar.xz.sig b/SOURCES/clang-tools-extra-12.0.0.src.tar.xz.sig new file mode 100644 index 0000000..8352c40 Binary files /dev/null and b/SOURCES/clang-tools-extra-12.0.0.src.tar.xz.sig differ diff --git a/SOURCES/clang.rpmlintrc b/SOURCES/clang.rpmlintrc new file mode 100644 index 0000000..6618110 --- /dev/null +++ b/SOURCES/clang.rpmlintrc @@ -0,0 +1,3 @@ +# clang needs libstdc++-devel installed in order to compile c++ programs. +addFilter("E: devel-dependency libstdc\+\+-devel") +addFilter("E: explicit-lib-dependency libstdc\+\+-devel") diff --git a/SOURCES/hans-gpg-key.asc b/SOURCES/hans-gpg-key.asc new file mode 100644 index 0000000..4b3cdde --- /dev/null +++ b/SOURCES/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/tstellar-gpg-key.asc b/SOURCES/tstellar-gpg-key.asc new file mode 100644 index 0000000..eba625c Binary files /dev/null and b/SOURCES/tstellar-gpg-key.asc differ diff --git a/SPECS/clang.spec b/SPECS/clang.spec new file mode 100644 index 0000000..e8128c3 --- /dev/null +++ b/SPECS/clang.spec @@ -0,0 +1,1045 @@ +%bcond_with compat_build + +%global maj_ver 12 +%global min_ver 0 +%global patch_ver 0 +#%%global rc_ver 5 + +%global clang_tools_binaries \ + %{_bindir}/clang-apply-replacements \ + %{_bindir}/clang-change-namespace \ + %{_bindir}/clang-check \ + %{_bindir}/clang-doc \ + %{_bindir}/clang-extdef-mapping \ + %{_bindir}/clang-format \ + %{_bindir}/clang-include-fixer \ + %{_bindir}/clang-move \ + %{_bindir}/clang-offload-bundler \ + %{_bindir}/clang-offload-wrapper \ + %{_bindir}/clang-query \ + %{_bindir}/clang-refactor \ + %{_bindir}/clang-rename \ + %{_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-cl \ + %{_bindir}/clang-cpp \ + +%if %{with compat_build} +%global pkg_name clang%{maj_ver} +# Install clang to same prefix as llvm, so that apps that use llvm-config +# will also be able to find clang libs. +%global install_prefix %{_libdir}/llvm%{maj_ver} +%global install_bindir %{install_prefix}/bin +%global install_includedir %{install_prefix}/include +%global install_libdir %{install_prefix}/lib + +%global pkg_bindir %{install_bindir} +%global pkg_includedir %{install_includedir} +%global pkg_libdir %{install_libdir} +%else +%global pkg_name clang +%global install_prefix /usr +%global pkg_libdir %{_libdir} +%endif + +%global build_install_prefix %{buildroot}%{install_prefix} + +%ifarch ppc64le +# Too many threads on ppc64 systems causes OOM errors. +%global _smp_mflags -j8 +%endif + +%global clang_srcdir 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 +Version: %{maj_ver}.%{min_ver}.%{patch_ver}%{?rc_ver:~rc%{rc_ver}} +Release: 1%{?dist} +Summary: A C language family front-end for LLVM + +License: NCSA +URL: http://llvm.org +Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}%{?rc_ver:-rc%{rc_ver}}/%{clang_srcdir}.tar.xz +Source3: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}%{?rc_ver:-rc%{rc_ver}}/%{clang_srcdir}.tar.xz.sig +%if %{without compat_build} +Source1: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}%{?rc_ver:-rc%{rc_ver}}/%{clang_tools_srcdir}.tar.xz +Source2: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}%{?rc_ver:-rc%{rc_ver}}/%{clang_tools_srcdir}.tar.xz.sig +%endif +Source4: tstellar-gpg-key.asc + +# Patches for clang +Patch0: 0001-PATCH-clang-Reorganize-gtest-integration.patch +Patch1: 0002-PATCH-clang-Make-funwind-tables-the-default-on-all-a.patch +Patch2: 0003-PATCH-clang-Don-t-install-static-libraries.patch +Patch3: 0004-PATCH-clang-Prefer-gcc-toolchains-with-libgcc_s.so-w.patch +Patch4: 0005-PATCH-clang-Partially-Revert-scan-view-Remove-Report.patch +Patch5: 0006-PATCH-clang-Allow-__ieee128-as-an-alias-to-__float12.patch + +# Patches for clang-tools-extra +%if %{without compat_build} +Patch201: 0001-PATCH-clang-tools-extra-Make-clangd-CompletionModel-.patch +%endif + +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: cmake +BuildRequires: ninja-build +%if %{with compat_build} +BuildRequires: llvm%{maj_ver}-devel = %{version} +BuildRequires: llvm%{maj_ver}-static = %{version} +%else +BuildRequires: llvm-devel = %{version} +BuildRequires: llvm-test = %{version} +# llvm-static is required, because clang-tablegen needs libLLVMTableGen, which +# is not included in libLLVM.so. +BuildRequires: llvm-static = %{version} +BuildRequires: llvm-googletest = %{version} +%endif + +BuildRequires: libxml2-devel +BuildRequires: perl-generators +BuildRequires: ncurses-devel +# According to https://fedoraproject.org/wiki/Packaging:Emacs a package +# should BuildRequires: emacs if it packages emacs integration files. +BuildRequires: emacs + +# The testsuite uses /usr/bin/lit which is part of the python3-lit package. +BuildRequires: python3-lit + +BuildRequires: python3-sphinx +BuildRequires: libatomic + +# We need python3-devel for pathfix.py. +BuildRequires: python3-devel + +# For reproducible pyc file generation +# See https://docs.fedoraproject.org/en-US/packaging-guidelines/Python_Appendix/#_byte_compilation_reproducibility +BuildRequires: /usr/bin/marshalparser +%global py_reproducible_pyc_path %{buildroot}%{python3_sitelib} + +# Needed for %%multilib_fix_c_header +BuildRequires: multilib-rpm-config + +# For origin certification +BuildRequires: gnupg2 + +# scan-build uses these perl modules so they need to be installed in order +# to run the tests. +BuildRequires: perl(Digest::MD5) +BuildRequires: perl(File::Copy) +BuildRequires: perl(File::Find) +BuildRequires: perl(File::Path) +BuildRequires: perl(File::Temp) +BuildRequires: perl(FindBin) +BuildRequires: perl(Hash::Util) +BuildRequires: perl(lib) +BuildRequires: perl(Term::ANSIColor) +BuildRequires: perl(Text::ParseWords) +BuildRequires: perl(Sys::Hostname) + +Requires: %{name}-libs%{?_isa} = %{version}-%{release} + +# clang requires gcc, clang++ requires libstdc++-devel +# - https://bugzilla.redhat.com/show_bug.cgi?id=1021645 +# - https://bugzilla.redhat.com/show_bug.cgi?id=1158594 +Requires: libstdc++-devel +Requires: gcc-c++ + +Provides: clang(major) = %{maj_ver} + +Conflicts: compiler-rt < %{version} +Conflicts: compiler-rt > %{version} + +%description +clang: noun + 1. A loud, resonant, metallic sound. + 2. The strident call of a crane or goose. + 3. C-language family front-end toolkit. + +The goal of the Clang project is to create a new C, C++, Objective C +and Objective C++ front-end for the LLVM compiler. Its tools are built +as libraries and designed to be loosely-coupled and extensible. + +Install compiler-rt if you want the Blocks C language extension or to +enable sanitization and profiling options when building, and +libomp-devel to enable -fopenmp. + +%package libs +Summary: Runtime library for clang +Requires: %{name}-resource-filesystem%{?_isa} = %{version} +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 +Runtime library for clang. + +%package devel +Summary: Development header files for clang +%if %{without compat_build} +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 +Development header files for clang. + +%package resource-filesystem +Summary: Filesystem package that owns the clang resource directory +Provides: %{name}-resource-filesystem(major) = %{maj_ver} + +%description resource-filesystem +This package owns the clang resouce directory: $libdir/clang/$version/ + +%if %{without compat_build} +%package analyzer +Summary: A source code analysis framework +License: NCSA and MIT +BuildArch: noarch +Requires: %{name} = %{version}-%{release} + +%description analyzer +The Clang Static Analyzer consists of both a source code analysis +framework and a standalone tool that finds bugs in C and Objective-C +programs. The standalone tool is invoked from the command-line, and is +intended to run in tandem with a build of a project or code base. + +%package tools-extra +Summary: Extra tools for clang +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +Requires: emacs-filesystem + +%description tools-extra +A set of extra tools built using Clang's tooling API. + +# Put git-clang-format in its own package, because it Requires git +# and we don't want to force users to install all those dependenices if they +# just want clang. +%package -n git-clang-format +Summary: Integration of clang-format for git +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} +Requires: python3 +%description -n python3-clang +%{summary}. + + +%endif + + +%prep +%{gpgverify} --keyring='%{SOURCE4}' --signature='%{SOURCE3}' --data='%{SOURCE0}' + +%if %{with compat_build} +%autosetup -n %{clang_srcdir} -p2 +%else + +%{gpgverify} --keyring='%{SOURCE4}' --signature='%{SOURCE2}' --data='%{SOURCE1}' +%setup -T -q -b 1 -n %{clang_tools_srcdir} +%autopatch -m200 -p2 + +# failing test case +rm test/clang-tidy/checkers/altera-struct-pack-align.cpp + +pathfix.py -i %{__python3} -pn \ + clang-tidy/tool/*.py \ + clang-include-fixer/find-all-symbols/tool/run-find-all-symbols.py + +%setup -q -n %{clang_srcdir} +%autopatch -M200 -p2 + +# 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 +%endif + +%build + +# We run the builders out of memory on armv7 and i686 when LTO is enabled +%ifarch %{arm} i686 +%define _lto_cflags %{nil} +%else +# This package does not ship any object files or static libraries, so we +# don't need -ffat-lto-objects. +%global _lto_cflags %(echo %{_lto_cflags} | sed 's/-ffat-lto-objects//') +%endif + +# lto builds with gcc 11 fail while running the lit tests. +%define _lto_cflags %{nil} + +%if 0%{?__isa_bits} == 64 +sed -i 's/\@FEDORA_LLVM_LIB_SUFFIX\@/64/g' test/lit.cfg.py +%else +sed -i 's/\@FEDORA_LLVM_LIB_SUFFIX\@//g' test/lit.cfg.py +%endif + +%ifarch s390 s390x %{arm} %ix86 ppc64le +# Decrease debuginfo verbosity to reduce memory consumption during final library linking +%global optflags %(echo %{optflags} | sed 's/-g /-g1 /') +%endif + +# -DCMAKE_INSTALL_RPATH=";" is a workaround for llvm manually setting the +# rpath of libraries and binaries. llvm will skip the manual setting +# if CAMKE_INSTALL_RPATH is set to a value, but cmake interprets this value +# as nothing, so it sets the rpath to "" when installing. +%cmake -G Ninja \ + -DLLVM_PARALLEL_LINK_JOBS=1 \ + -DLLVM_LINK_LLVM_DYLIB:BOOL=ON \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DPYTHON_EXECUTABLE=%{__python3} \ + -DCMAKE_INSTALL_RPATH:BOOL=";" \ +%ifarch s390 s390x %{arm} %ix86 ppc64le + -DCMAKE_C_FLAGS_RELWITHDEBINFO="%{optflags} -DNDEBUG" \ + -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="%{optflags} -DNDEBUG" \ +%endif +%if %{with compat_build} + -DCLANG_BUILD_TOOLS:BOOL=OFF \ + -DLLVM_CONFIG:FILEPATH=%{_bindir}/llvm-config-%{maj_ver}-%{__isa_bits} \ + -DCMAKE_INSTALL_PREFIX=%{install_prefix} \ + -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 + -DLLVM_LIBDIR_SUFFIX=64 \ +%else + -DLLVM_LIBDIR_SUFFIX= \ +%endif +%endif + \ +%if %{with compat_build} + -DLLVM_TABLEGEN_EXE:FILEPATH=%{_bindir}/llvm-tblgen-%{maj_ver} \ +%else + -DLLVM_TABLEGEN_EXE:FILEPATH=%{_bindir}/llvm-tblgen \ +%endif + -DCLANG_ENABLE_ARCMT:BOOL=ON \ + -DCLANG_ENABLE_STATIC_ANALYZER:BOOL=ON \ + -DCLANG_INCLUDE_DOCS:BOOL=ON \ + -DCLANG_PLUGIN_SUPPORT:BOOL=ON \ + -DENABLE_LINKER_BUILD_ID:BOOL=ON \ + -DLLVM_ENABLE_EH=ON \ + -DLLVM_ENABLE_RTTI=ON \ + -DLLVM_BUILD_DOCS=ON \ + -DLLVM_ENABLE_SPHINX=ON \ + -DCLANG_LINK_CLANG_DYLIB=ON \ + -DSPHINX_WARNINGS_AS_ERRORS=OFF \ + \ + -DCLANG_BUILD_EXAMPLES:BOOL=OFF \ + -DBUILD_SHARED_LIBS=OFF \ + -DCLANG_REPOSITORY_STRING="%{?fedora:Fedora}%{?rhel:Red Hat} %{version}-%{release}" \ + -DCLANG_DEFAULT_UNWINDLIB=libgcc + +%cmake_build + +%install + +%cmake_install + +%if %{with compat_build} + +# Remove binaries/other files +rm -Rf %{buildroot}%{install_bindir} +rm -Rf %{buildroot}%{install_prefix}/share +rm -Rf %{buildroot}%{install_prefix}/libexec + +# Move include files +mkdir -p %{buildroot}%{pkg_includedir} +mv %{buildroot}/%{install_includedir}/clang %{buildroot}/%{pkg_includedir}/ +mv %{buildroot}/%{install_includedir}/clang-c %{buildroot}/%{pkg_includedir}/ + +%else + +# install clang python bindings +mkdir -p %{buildroot}%{python3_sitelib}/clang/ +install -p -m644 bindings/python/clang/* %{buildroot}%{python3_sitelib}/clang/ +%py_byte_compile %{__python3} %{buildroot}%{python3_sitelib}/clang + +# multilib fix +%multilib_fix_c_header --file %{_includedir}/clang/Config/config.h + +# Move emacs integration files to the correct directory +mkdir -p %{buildroot}%{_emacs_sitestartdir} +for f in clang-format.el clang-rename.el clang-include-fixer.el; do +mv %{buildroot}{%{_datadir}/clang,%{_emacs_sitestartdir}}/$f +done + +# remove editor integrations (bbedit, sublime, emacs, vim) +rm -vf %{buildroot}%{_datadir}/clang/clang-format-bbedit.applescript +rm -vf %{buildroot}%{_datadir}/clang/clang-format-sublime.py* + +# TODO: Package html docs +rm -Rvf %{buildroot}%{_docdir}/clang/html +rm -Rvf %{buildroot}%{_datadir}/clang/clang-doc-default-stylesheet.css +rm -Rvf %{buildroot}%{_datadir}/clang/index.js + +# TODO: What are the Fedora guidelines for packaging bash autocomplete files? +rm -vf %{buildroot}%{_datadir}/clang/bash-autocomplete.sh + +# Create Manpage symlinks +ln -s clang.1.gz %{buildroot}%{_mandir}/man1/clang++.1.gz +ln -s clang.1.gz %{buildroot}%{_mandir}/man1/clang-%{maj_ver}.1.gz +ln -s clang.1.gz %{buildroot}%{_mandir}/man1/clang++-%{maj_ver}.1.gz + +# Add clang++-{version} symlink +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 + +# Create sub-directories in the clang resource directory that will be +# populated by other packages +mkdir -p %{buildroot}%{_libdir}/clang/%{version}/{include,lib,share}/ + +%endif + +# Remove clang-tidy headers. We don't ship the libraries for these. +rm -Rvf %{buildroot}%{_includedir}/clang-tidy/ + +# Add a symlink in /usr/bin to clang-format-diff +ln -s %{_datadir}/clang/clang-format-diff.py %{buildroot}%{_bindir}/clang-format-diff + +%check +%if %{without compat_build} +# requires lit.py from LLVM utilities +# FIXME: Fix failing ARM tests +LD_LIBRARY_PATH=%{buildroot}/%{_libdir} %cmake_build --target check-all || \ +%ifarch %{arm} +: +%else +false +%endif + +%endif + + +%if %{without compat_build} +%files +%license LICENSE.TXT +%{clang_binaries} +%{_mandir}/man1/clang.1.gz +%{_mandir}/man1/clang++.1.gz +%{_mandir}/man1/clang-%{maj_ver}.1.gz +%{_mandir}/man1/clang++-%{maj_ver}.1.gz +%endif + +%files libs +%if %{without compat_build} +%{_libdir}/clang/ +%{_libdir}/*.so.* +%else +%{pkg_libdir}/*.so.* +%{pkg_libdir}/clang/%{version} +%endif + +%files devel +%if %{without compat_build} +%{_libdir}/*.so +%{_includedir}/clang/ +%{_includedir}/clang-c/ +%{_libdir}/cmake/* +%dir %{_datadir}/clang/ +%else +%{pkg_libdir}/*.so +%{pkg_includedir}/clang/ +%{pkg_includedir}/clang-c/ +%{pkg_libdir}/cmake/ +%endif + +%files resource-filesystem +%dir %{pkg_libdir}/clang/%{version}/ +%dir %{pkg_libdir}/clang/%{version}/include/ +%dir %{pkg_libdir}/clang/%{version}/lib/ +%dir %{pkg_libdir}/clang/%{version}/share/ +%if %{without compat_build} +%{pkg_libdir}/clang/%{maj_ver} +%endif + +%if %{without compat_build} +%files analyzer +%{_bindir}/scan-view +%{_bindir}/scan-build +%{_libexecdir}/ccc-analyzer +%{_libexecdir}/c++-analyzer +%{_datadir}/scan-view/ +%{_datadir}/scan-build/ +%{_mandir}/man1/scan-build.1.* + +%files tools-extra +%{clang_tools_binaries} +%{_bindir}/c-index-test +%{_bindir}/find-all-symbols +%{_bindir}/modularize +%{_bindir}/clang-format-diff +%{_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* +%{_datadir}/clang/run-find-all-symbols.py* +%{_datadir}/clang/clang-rename.py* + +%files -n git-clang-format +%{_bindir}/git-clang-format + +%files -n python3-clang +%{python3_sitelib}/clang/ + + +%endif +%changelog +* Fri Apr 16 2021 Tom Stellard - 12.0.0-1 +- 12.0.0 Release + +* Wed Apr 14 2021 Tom Stellard - 12.0.0-0.12.rc5 +- Add symlink to clang-format-diff in /usr/bin +- rhbz#1939018 + +* Thu Apr 08 2021 sguelton@redhat.com - 12.0.0-0.11.rc5 +- New upstream release candidate + +* Sat Apr 03 2021 sguelton@redhat.com - 12.0.0-0.10.rc4 +- Make pyc files from python3-clang reproducible + +* Fri Apr 02 2021 sguelton@redhat.com - 12.0.0-0.9.rc4 +- New upstream release candidate + +* Wed Mar 31 2021 Jonathan Wakely - 12.0.0-0.8.rc3 +- Rebuilt for removed libstdc++ symbols (#1937698) + +* Mon Mar 15 2021 sguelton@redhat.com - 12.0.0-0.7.rc3 +- Apply patch D97846 to fix rhbz#1934065 + +* Mon Mar 15 2021 Timm Bäder 12.0.0-0.6.rc3 +- Set CLANG_DEFAULT_UNWIND_LIB instead of using custom patch +- Add toolchains test to the tests.yml + +* Thu Mar 11 2021 sguelton@redhat.com - 12.0.0-0.5.rc3 +- LLVM 12.0.0 rc3 + +* Tue Mar 09 2021 sguelton@redhat.com - 12.0.0-0.4.rc2 +- rebuilt + +* Mon Mar 01 2021 sguelton@redhat.com - 12.0.0-0.3.rc2 +- Reapply some wrongly removed patch + +* Wed Feb 24 2021 sguelton@redhat.com - 12.0.0-0.2.rc2 +- 12.0.0-rc2 release + +* 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 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Fri Jan 22 2021 Serge Guelton - 11.1.0-0.3.rc2 +- 11.1.0-rc2 release + +* Wed Jan 20 2021 Serge Guelton - 11.1.0-0.2.rc1 +- rebuilt with https://reviews.llvm.org/D94941 applied. + +* Thu Jan 14 2021 Serge Guelton - 11.1.0-0.1.rc1 +- 11.1.0-rc1 release + +* Wed Jan 06 2021 Serge Guelton - 11.0.1-4 +- LLVM 11.0.1 final + +* Sun Dec 20 2020 sguelton@redhat.com - 11.0.1-3.rc2 +- llvm 11.0.1-rc2 + +* Wed Dec 16 2020 Tom Stellard - 11.0.1-2.rc1 +- Don't build with -flto + +* Tue Dec 01 2020 sguelton@redhat.com - 11.0.1-1.rc1 +- llvm 11.0.1-rc1 + +* Thu Oct 29 2020 Tom Stellard - 11.0.0-3 +- Remove -ffat-lto-objects compiler flag + +* Wed Oct 28 2020 Tom Stellard - 11.0.0-2 +- Add clang-resource-filesystem sub-package + +* Thu Oct 15 2020 sguelton@redhat.com - 11.0.0-1 +- Fix NVR + +* Mon Oct 12 2020 sguelton@redhat.com - 11.0.0-0.7 +- llvm 11.0.0 - final release + +* Thu Oct 08 2020 sguelton@redhat.com - 11.0.0-0.6.rc6 +- 11.0.0-rc6 + +* Fri Oct 02 2020 sguelton@redhat.com - 11.0.0-0.5.rc5 +- 11.0.0-rc5 Release + +* Sun Sep 27 2020 sguelton@redhat.com - 11.0.0-0.4.rc3 +- Fix NVR + +* Thu Sep 24 2020 sguelton@redhat.com - 11.0.0-0.1.rc3 +- 11.0.0-rc3 Release + +* Tue Sep 22 2020 sguelton@redhat.com - 11.0.0-0.3.rc2 +- Prefer gcc toolchains with libgcc_s + +* Tue Sep 01 2020 sguelton@redhat.com - 11.0.0-0.2.rc2 +- Normalize some doc directory locations + +* Tue Sep 01 2020 sguelton@redhat.com - 11.0.0-0.1.rc2 +- 11.0.0-rc2 Release +- Use %%license macro + +* Tue Aug 11 2020 Tom Stellard - 11.0.0-0.2.rc1 +- Fix test failures + +* Mon Aug 10 2020 Tom Stellard - 11.0.0-0.1.rc1 +- 11.0.0-rc1 Release + +* Tue Aug 04 2020 Tom Stellard - 10.0.0-11 +- Remove Requires: emacs-filesystem + +* Sat Aug 01 2020 Fedora Release Engineering - 10.0.0-10 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jul 28 2020 Jeff Law - 10.0.0-9 +- Disable LTO on arm and i686 + +* Mon Jul 27 2020 Fedora Release Engineering - 10.0.0-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 20 2020 sguelton@redhat.com - 10.0.0-7 +- Update cmake macro usage +- Finalize source verification + +* Fri Jun 26 2020 Tom Stellard - 10.0.0-6 +- Add cet.h header + +* Mon Jun 08 2020 Tom Stellard - 10.0.0-5 +- Accept multiple --config options + +* Wed Jun 3 2020 Dan Čermák - 10.0.0-4 +- Add symlink to %%{_libdir}/clang/%%{maj_ver} for persistent access to the resource directory accross minor version bumps + +* Mon May 25 2020 Miro Hrončok - 10.0.0-3 +- Rebuilt for Python 3.9 + +* Tue May 19 2020 sguelton@redhat.com - 10.0.0-2 +- Backport ad7211df6f257e39da2e5a11b2456b4488f32a1e, see rhbz#1825593 + +* 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 + +* Mon Aug 19 2019 Miro Hrončok - 8.0.0-3.2 +- Rebuilt for Python 3.8 + +* Wed Jul 24 2019 Fedora Release Engineering - 8.0.0-3.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Thu May 16 2019 sguelton@redhat.com - 8.0.0-3 +- Fix for rhbz#1674031 + +* Fri Apr 12 2019 sguelton@redhat.com - 8.0.0-2 +- Remove useless patch thanks to GCC upgrade + +* Wed Mar 20 2019 sguelton@redhat.com - 8.0.0-1 +- 8.0.0 final + +* Tue Mar 12 2019 sguelton@redhat.com - 8.0.0-0.6.rc4 +- 8.0.0 Release candidate 4 + +* Mon Mar 4 2019 sguelton@redhat.com - 8.0.0-0.5.rc3 +- Cleanup specfile after llvm dependency update + +* Mon Mar 4 2019 sguelton@redhat.com - 8.0.0-0.4.rc3 +- 8.0.0 Release candidate 3 + +* Mon Feb 25 2019 tstellar@redhat.com - 8.0.0-0.3.rc2 +- Fix compiling with -stdlib=libc++ + +* Thu Feb 21 2019 sguelton@redhat.com - 8.0.0-0.2.rc2 +- 8.0.0 Release candidate 2 + +* Sat Feb 09 2019 sguelton@redhat.com - 8.0.0-0.1.rc1 +- 8.0.0 Release candidate 1 + +* Tue Feb 05 2019 sguelton@redhat.com - 7.0.1-6 +- Update patch for Python3 port of scan-view + +* Tue Feb 05 2019 sguelton@redhat.com - 7.0.1-5 +- Working CI test suite + +* Mon Feb 04 2019 sguelton@redhat.com - 7.0.1-4 +- Workaround gcc-9 bug when compiling bitfields + +* Fri Feb 01 2019 sguelton@redhat.com - 7.0.1-3 +- Fix uninitialized error detected by gcc-9 + +* Thu Jan 31 2019 Fedora Release Engineering - 7.0.1-2.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Wed Dec 19 2018 Tom Stellard - 7.0.1-2 +- Fix for rhbz#1657544 + +* Tue Dec 18 2018 sguelton@redhat.com - 7.0.1-1 +- 7.0.1 + +* Tue Dec 18 2018 sguelton@redhat.com - 7.0.0-10 +- Install proper manpage symlinks for clang/clang++ versions + +* Fri Dec 14 2018 sguelton@redhat.com - 7.0.0-9 +- No longer Ignore -fstack-clash-protection option + +* Tue Dec 04 2018 sguelton@redhat.com - 7.0.0-8 +- Ensure rpmlint passes on specfile + +* Fri Nov 30 2018 Tom Stellard - 7.0.0-7 +- 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 + +* Mon Nov 19 2018 Tom Stellard - 7.0.0-5 +- Run 'make check-all' instead of 'make check-clang' + +* Mon Nov 19 2018 sergesanspaille - 7.0.0-4 +- Avoid Python2 + Python3 dependency for clang-analyzer + +* Mon Nov 05 2018 Tom Stellard - 7.0.0-3 +- User helper macro to fixup config.h for multilib + +* Tue Oct 02 2018 Tom Stellard - 7.0.0-2 +- Use correct shebang substitution for python scripts + +* Mon Sep 24 2018 Tom Stellard - 7.0.0-1 +- 7.0.0 Release + +* Wed Sep 19 2018 Tom Stellard - 7.0.0-0.16.rc3 +- Move builtin headers into clang-libs sub-package + +* Wed Sep 19 2018 Tom Stellard - 7.0.0-0.15.rc3 +- Remove ambiguous python shebangs + +* Thu Sep 13 2018 Tom Stellard - 7.0.0-0.14.rc3 +- Move unversioned shared objects to devel package + +* Thu Sep 13 2018 Tom Stellard - 7.0.0-0.13.rc3 +- Rebuild with new llvm-devel that disables rpath on install + +* Thu Sep 13 2018 Tom Stellard - 7.0.0-0.12.rc3 +- Fix clang++-7 symlink + +* Wed Sep 12 2018 Tom Stellard - 7.0.0-0.11.rc3 +- 7.0.0-rc3 Release + +* Mon Sep 10 2018 Tom Stellard - 7.0.0-0.10.rc2 +- Drop siod from llvm-test-suite + +* Fri Sep 07 2018 Tom Stellard - 7.0.0-0.9.rc2 +- Drop python2 dependency from clang package + +* Thu Sep 06 2018 Tom Stellard - 7.0.0-0.8.rc2 +- Drop all uses of python2 from lit tests + +* Sat Sep 01 2018 Tom Stellard - 7.0.0-0.7.rc2 +- Add Fedora specific version string + +* Tue Aug 28 2018 Tom Stellard - 7.0.0-0.6.rc2 +- 7.0.0-rc2 Release + +* Tue Aug 28 2018 Tom Stellard - 7.0.0-0.5.rc1 +- Enable unit tests + +* Fri Aug 17 2018 Tom Stellard - 7.0.0-0.4.rc1 +- Move llvm-test-suite into a sub-package + +* Fri Aug 17 2018 Tom Stellard - 7.0.0-0.3.rc1 +- Recommend the same version of compiler-rt + +* Wed Aug 15 2018 Tom Stellard - 7.0.0-0.2.rc1 +- Rebuild for f30 + +* Mon Aug 13 2018 Tom Stellard - 7.0.0-0.1.rc1 +- 7.0.0-rc1 Release + +* Mon Jul 23 2018 Tom Stellard - 6.0.1-3 +- Sync spec file with the clang6.0 package + +* Thu Jul 12 2018 Fedora Release Engineering - 6.0.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue Jun 26 2018 Tom Stellard - 6.0.1-1 +- 6.0.1 Release + +* Wed Jun 13 2018 Tom Stellard - 6.0.1-0.2.rc2 +- 6.0.1-rc2 + +* Fri May 11 2018 Tom Stellard - 6.0.1-0.1.rc1 +- 6.0.1-rc1 Release + +* Fri Mar 23 2018 Tom Stellard - 6.0.0-5 +- Add a clang++-{version} symlink rhbz#1534098 + +* Thu Mar 22 2018 Tom Stellard - 6.0.0-4 +- Use correct script for running lit tests + +* Wed Mar 21 2018 Tom Stellard - 6.0.0-3 +- Fix toolchain detection so we don't default to using cross-compilers: + rhbz#1482491 + +* Mon Mar 12 2018 Tom Stellard - 6.0.0-2 +- Add Provides: clang(major) rhbz#1547444 + +* Fri Mar 09 2018 Tom Stellard - 6.0.0-1 +- 6.0.0 Release + +* Mon Feb 12 2018 Tom Stellard - 6.0.0-0.6.rc2 +- 6.0.0-rc2 Release + +* Wed Feb 07 2018 Fedora Release Engineering - 6.0.0-0.5.rc1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Feb 01 2018 Tom Stellard - 6.0.0-0.4.rc1 +- Package python helper scripts for tools + +* Fri Jan 26 2018 Tom Stellard - 6.0.0-0.3.rc1 +- Ignore -fstack-clash-protection option instead of giving an error + +* Fri Jan 26 2018 Tom Stellard - 6.0.0-0.2.rc1 +- Package emacs integration files + +* Wed Jan 24 2018 Tom Stellard - 6.0.0-0.1.rc1 +- 6.0.0-rc1 Release + +* Wed Jan 24 2018 Tom Stellard - 5.0.1-3 +- Rebuild against llvm5.0 compatibility package +- rhbz#1538231 + +* Wed Jan 03 2018 Iryna Shcherbina - 5.0.1-2 +- Update Python 2 dependency declarations to new packaging standards + (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) + +* Wed Dec 20 2017 Tom Stellard - 5.0.1-1 +- 5.0.1 Release + +* Wed Dec 13 2017 Tom Stellard - 5.0.0-3 +- Make compiler-rt a weak dependency and add a weak dependency on libomp + +* Mon Nov 06 2017 Merlin Mathesius - 5.0.0-2 +- Cleanup spec file conditionals + +* Mon Oct 16 2017 Tom Stellard - 5.0.0-1 +- 5.0.0 Release + +* Wed Oct 04 2017 Rex Dieter - 4.0.1-6 +- python2-clang subpkg (#1490997) +- tools-extras: tighten (internal) -libs dep +- %%install: avoid cd + +* Wed Aug 30 2017 Tom Stellard - 4.0.1-5 +- Add Requires: python for git-clang-format + +* Sun Aug 06 2017 Björn Esser - 4.0.1-4 +- Rebuilt for AutoReq cmake-filesystem + +* Wed Aug 02 2017 Fedora Release Engineering - 4.0.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 4.0.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Jun 23 2017 Tom Stellard - 4.0.1-1 +- 4.0.1 Release. + +* Fri Jun 16 2017 Tom Stellard - 4.0.0-8 +- Enable make check-clang + +* Mon Jun 12 2017 Tom Stellard - 4.0.0-7 +- Package git-clang-format + +* Thu Jun 08 2017 Tom Stellard - 4.0.0-6 +- Generate man pages + +* Thu Jun 08 2017 Tom Stellard - 4.0.0-5 +- Ignore test-suite failures until all arches are fixed. + +* Mon Apr 03 2017 Tom Stellard - 4.0.0-4 +- Run llvm test-suite + +* Mon Mar 27 2017 Tom Stellard - 4.0.0-3 +- Enable eh/rtti, which are required by lldb. + +* Fri Mar 24 2017 Tom Stellard - 4.0.0-2 +- Fix clang-tools-extra build +- Fix install + +* Thu Mar 23 2017 Tom Stellard - 4.0.0-1 +- clang 4.0.0 final release + +* Mon Mar 20 2017 David Goerger - 3.9.1-3 +- add clang-tools-extra rhbz#1328091 + +* Thu Mar 16 2017 Tom Stellard - 3.9.1-2 +- Enable build-id by default rhbz#1432403 + +* Thu Mar 02 2017 Dave Airlie - 3.9.1-1 +- clang 3.9.1 final release + +* Fri Feb 10 2017 Fedora Release Engineering - 3.9.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Mon Nov 14 2016 Nathaniel McCallum - 3.9.0-3 +- Add Requires: compiler-rt to clang-libs. +- Without this, compiling with certain CFLAGS breaks. + +* Tue Nov 1 2016 Peter Robinson 3.9.0-2 +- Rebuild for new arches + +* Fri Oct 14 2016 Dave Airlie - 3.9.0-1 +- clang 3.9.0 final release + +* Fri Jul 01 2016 Stephan Bergmann - 3.8.0-2 +- Resolves: rhbz#1282645 add GCC abi_tag support + +* Thu Mar 10 2016 Dave Airlie 3.8.0-1 +- clang 3.8.0 final release + +* Thu Mar 03 2016 Dave Airlie 3.8.0-0.4 +- clang 3.8.0rc3 + +* Wed Feb 24 2016 Dave Airlie - 3.8.0-0.3 +- package all libs into clang-libs. + +* Wed Feb 24 2016 Dave Airlie 3.8.0-0.2 +- enable dynamic linking of clang against llvm + +* Thu Feb 18 2016 Dave Airlie - 3.8.0-0.1 +- clang 3.8.0rc2 + +* Fri Feb 12 2016 Dave Airlie 3.7.1-4 +- rebuild against latest llvm packages +- add BuildRequires llvm-static + +* Wed Feb 03 2016 Fedora Release Engineering - 3.7.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Thu Jan 28 2016 Dave Airlie 3.7.1-2 +- just accept clang includes moving to /usr/lib64, upstream don't let much else happen + +* Thu Jan 28 2016 Dave Airlie 3.7.1-1 +- initial build in Fedora. + +* Tue Oct 06 2015 Jan Vcelak 3.7.0-100 +- initial version using cmake build system