The package rpms/clang6.0.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/clang6.0.git/commit/?id=b9ae4c536....
Change:
+%ifarch %{arm}
Thanks.
Full change:
============
commit b9ae4c536c962c88fbb67f9be4ffb066cf283b59
Author: Tom Stellard <tstellar(a)redhat.com>
Date: Mon Jul 23 22:25:35 2018 +0000
6.0.1 Release
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..e849c7d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/cfe-6.0.1.src.tar.xz
diff --git a/0001-Driver-Prefer-vendor-supplied-gcc-toolchain.patch
b/0001-Driver-Prefer-vendor-supplied-gcc-toolchain.patch
new file mode 100644
index 0000000..1b9d0e0
--- /dev/null
+++ b/0001-Driver-Prefer-vendor-supplied-gcc-toolchain.patch
@@ -0,0 +1,120 @@
+From 69d981a5d41d481556bd38f8d668d7f1177ac2b4 Mon Sep 17 00:00:00 2001
+From: Tom Stellard <tstellar(a)redhat.com>
+Date: Thu, 18 Jan 2018 02:57:51 +0000
+Subject: [PATCH] Driver: Prefer vendor supplied gcc toolchain
+
+Summary:
+This patch fixes an issue on Fedora where if you had the x86_64 cross
+compiler installed on your x86_64 system, then clang would use that compiler
+as the default toolchain. This was happening because the cross compiler
+is installed to /usr/lib/gcc/x86_64-linux-gnu/ and this directory comes before
+the default compiler directory (/usr/lib/gcc/x86_64-redhat-linux/) in the search
+list.
+
+This patch re-orders the search list so that vendor supplied gcc toolchains
+are selected before toolchains with a generic target, which should prevent
+these kind of issues on other OSes too.
+
+Subscribers: srhines, cfe-commits
+
+Differential Revision:
https://reviews.llvm.org/D42608
+---
+ lib/Driver/ToolChains/Gnu.cpp | 45 ++++++++++++++++++++++---------------------
+ 1 file changed, 23 insertions(+), 22 deletions(-)
+
+diff --git a/lib/Driver/ToolChains/Gnu.cpp b/lib/Driver/ToolChains/Gnu.cpp
+index 7845781..9cec316 100644
+--- a/lib/Driver/ToolChains/Gnu.cpp
++++ b/lib/Driver/ToolChains/Gnu.cpp
+@@ -1709,8 +1709,8 @@ bool
Generic_GCC::GCCInstallationDetector::getBiarchSibling(Multilib &M) const {
+ // lifetime or initialization issues.
+ static const char *const AArch64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const AArch64Triples[] = {
+- "aarch64-none-linux-gnu", "aarch64-linux-gnu",
"aarch64-linux-android",
+- "aarch64-redhat-linux", "aarch64-suse-linux"};
++ "aarch64-redhat-linux", "aarch64-suse-linux",
++ "aarch64-none-linux-gnu", "aarch64-linux-gnu",
"aarch64-linux-android"};
+ static const char *const AArch64beLibDirs[] = {"/lib"};
+ static const char *const AArch64beTriples[] = {"aarch64_be-none-linux-gnu",
+ "aarch64_be-linux-gnu"};
+@@ -1718,10 +1718,11 @@ bool
Generic_GCC::GCCInstallationDetector::getBiarchSibling(Multilib &M) const {
+ static const char *const ARMLibDirs[] = {"/lib"};
+ static const char *const ARMTriples[] = {"arm-linux-gnueabi",
+ "arm-linux-androideabi"};
+- static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
+- "armv7hl-redhat-linux-gnueabi",
++ static const char *const ARMHFTriples[] = {"armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "arm-linux-gnueabihf",
++ };
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
+ "armeb-linux-androideabi"};
+@@ -1730,19 +1731,19 @@ bool
Generic_GCC::GCCInstallationDetector::getBiarchSibling(Multilib &M) const {
+
+ static const char *const X86_64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const X86_64Triples[] = {
+- "x86_64-linux-gnu", "x86_64-unknown-linux-gnu",
+- "x86_64-pc-linux-gnu", "x86_64-redhat-linux6E",
+- "x86_64-redhat-linux", "x86_64-suse-linux",
+- "x86_64-manbo-linux-gnu", "x86_64-linux-gnu",
+- "x86_64-slackware-linux", "x86_64-linux-android",
++ "x86_64-redhat-linux6E", "x86_64-redhat-linux",
++ "x86_64-suse-linux", "x86_64-slackware-linux",
++ "x86_64-manbo-linux-gnu", "x86_64-linux-gnu",
++ "x86_64-unknown-linux-gnu", "x86_64-pc-linux-gnu",
++ "x86_64-linux-gnu", "x86_64-linux-android",
+ "x86_64-unknown-linux"};
+ static const char *const X32LibDirs[] = {"/libx32"};
+ static const char *const X86LibDirs[] = {"/lib32", "/lib"};
+ static const char *const X86Triples[] = {
+- "i686-linux-gnu", "i686-pc-linux-gnu",
"i486-linux-gnu",
+- "i386-linux-gnu", "i386-redhat-linux6E",
"i686-redhat-linux",
+- "i586-redhat-linux", "i386-redhat-linux",
"i586-suse-linux",
+- "i486-slackware-linux", "i686-montavista-linux",
"i686-linux-android",
++ "i386-redhat-linux6E", "i686-redhat-linux",
"i586-redhat-linuxll",
++ "i386-redhat-linux", "i586-suse-linux",
"i486-slackware-linux",
++ "i686-montavista-linux", "i686-linux-gnu",
"i686-pc-linux-gnu",
++ "i486-linux-gnu", "i386-linux-gnu",
"i686-linux-android",
+ "i586-linux-gnu"};
+
+ static const char *const MIPSLibDirs[] = {"/lib"};
+@@ -1772,16 +1773,16 @@ bool
Generic_GCC::GCCInstallationDetector::getBiarchSibling(Multilib &M) const {
+
+ static const char *const PPCLibDirs[] = {"/lib32", "/lib"};
+ static const char *const PPCTriples[] = {
+- "powerpc-linux-gnu", "powerpc-unknown-linux-gnu",
"powerpc-linux-gnuspe",
+- "powerpc-suse-linux", "powerpc-montavista-linuxspe"};
++ "powerpc-suse-linux", "powerpc-montavista-linuxspe",
++ "powerpc-linux-gnu", "powerpc-unknown-linux-gnu",
"powerpc-linux-gnuspe"};
+ static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64Triples[] = {
+- "powerpc64-linux-gnu", "powerpc64-unknown-linux-gnu",
+- "powerpc64-suse-linux", "ppc64-redhat-linux"};
++ "powerpc64-suse-linux", "ppc64-redhat-linux",
++ "powerpc64-linux-gnu", "powerpc64-unknown-linux-gnu"};
+ static const char *const PPC64LELibDirs[] = {"/lib64", "/lib"};
+ static const char *const PPC64LETriples[] = {
+- "powerpc64le-linux-gnu", "powerpc64le-unknown-linux-gnu",
+- "powerpc64le-suse-linux", "ppc64le-redhat-linux"};
++ "powerpc64le-suse-linux", "ppc64le-redhat-linux",
++ "powerpc64le-linux-gnu", "powerpc64le-unknown-linux-gnu"};
+
+ static const char *const SPARCv8LibDirs[] = {"/lib32", "/lib"};
+ static const char *const SPARCv8Triples[] = {"sparc-linux-gnu",
+@@ -1792,8 +1793,8 @@ bool
Generic_GCC::GCCInstallationDetector::getBiarchSibling(Multilib &M) const {
+
+ static const char *const SystemZLibDirs[] = {"/lib64", "/lib"};
+ static const char *const SystemZTriples[] = {
+- "s390x-linux-gnu", "s390x-unknown-linux-gnu",
"s390x-ibm-linux-gnu",
+- "s390x-suse-linux", "s390x-redhat-linux"};
++ "s390x-ibm-linux-gnu", "s390x-suse-linux",
"s390x-redhat-linux",
++ "s390x-linux-gnu", "s390x-unknown-linux-gnu"};
+
+ // Solaris.
+ static const char *const SolarisSPARCLibDirs[] = {"/gcc"};
+--
+1.8.3.1
+
diff --git a/0001-GCC-compatibility-Ignore-fstack-clash-protection.patch
b/0001-GCC-compatibility-Ignore-fstack-clash-protection.patch
new file mode 100644
index 0000000..5683b71
--- /dev/null
+++ b/0001-GCC-compatibility-Ignore-fstack-clash-protection.patch
@@ -0,0 +1,42 @@
+From 428ca4520a79ec5a6df9c6adc8b8069623868cdb Mon Sep 17 00:00:00 2001
+From: Tom Stellard <tstellar(a)redhat.com>
+Date: Fri, 26 Jan 2018 11:38:04 -0800
+Subject: [PATCH] GCC compatibility: Ignore -fstack-clash-protection
+
+Reviewers: sylvestre.ledru
+
+Subscribers: cfe-commits
+
+Differential Revision:
https://reviews.llvm.org/D42593
+---
+ include/clang/Driver/Options.td | 1 +
+ test/Driver/clang_f_opts.c | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/include/clang/Driver/Options.td b/include/clang/Driver/Options.td
+index 41f31cf..e9078a2 100644
+--- a/include/clang/Driver/Options.td
++++ b/include/clang/Driver/Options.td
+@@ -2705,6 +2705,7 @@ defm single_precision_constant :
BooleanFFlag<"single-precision-constant">,
+ Group<clang_ignored_gcc_optimization_f_Group>;
+ defm spec_constr_count : BooleanFFlag<"spec-constr-count">,
Group<clang_ignored_f_Group>;
+ defm stack_check : BooleanFFlag<"stack-check">,
Group<clang_ignored_f_Group>;
++defm stack_clash_protection : BooleanFFlag<"stack-clash-protection">,
Group<clang_ignored_f_Group>;
+ defm strength_reduce :
+ BooleanFFlag<"strength-reduce">,
Group<clang_ignored_gcc_optimization_f_Group>;
+ defm tls_model : BooleanFFlag<"tls-model">,
Group<clang_ignored_f_Group>;
+diff --git a/test/Driver/clang_f_opts.c b/test/Driver/clang_f_opts.c
+index 5755c5d..8710ff4 100644
+--- a/test/Driver/clang_f_opts.c
++++ b/test/Driver/clang_f_opts.c
+@@ -284,6 +284,7 @@
+ // RUN: -ffriend-injection \
+ // RUN: -fno-implement-inlines -fimplement-inlines \
+ // RUN: -fstack-check \
++// RUN: -fstack-clash-protection \
+ // RUN: -fforce-addr \
+ // RUN: -malign-functions=100 \
+ // RUN: -malign-loops=100 \
+--
+1.8.3.1
+
diff --git a/0001-lit.cfg-Add-hack-so-lit-can-find-not-and-FileCheck.patch
b/0001-lit.cfg-Add-hack-so-lit-can-find-not-and-FileCheck.patch
new file mode 100644
index 0000000..508434d
--- /dev/null
+++ b/0001-lit.cfg-Add-hack-so-lit-can-find-not-and-FileCheck.patch
@@ -0,0 +1,27 @@
+From 06cde370a44393d65bae7f61279900b5838b4a2c Mon Sep 17 00:00:00 2001
+From: Tom Stellard <tstellar(a)redhat.com>
+Date: Tue, 23 Jan 2018 18:59:20 -0800
+Subject: [PATCH] lit.cfg: Add hack so lit can find not and FileCheck
+
+---
+ test/lit.cfg.py | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/test/lit.cfg.py b/test/lit.cfg.py
+index 5323cfe..5b4184e 100644
+--- a/test/lit.cfg.py
++++ b/test/lit.cfg.py
+@@ -39,7 +39,10 @@ config.test_source_root = os.path.dirname(__file__)
+ # test_exec_root: The root path where tests should be run.
+ config.test_exec_root = os.path.join(config.clang_obj_root, 'test')
+
++old_llvm_tools_dir = llvm_config.config.llvm_tools_dir
++llvm_config.config.llvm_tools_dir = '/usr/lib@FEDORA_LLVM_LIB_SUFFIX@/llvm'
+ llvm_config.use_default_substitutions()
++llvm_config.config.llvm_tools_dir = old_llvm_tools_dir
+
+ llvm_config.use_clang()
+
+--
+1.8.3.1
+
diff --git a/clang6.0.spec b/clang6.0.spec
new file mode 100644
index 0000000..632ceb1
--- /dev/null
+++ b/clang6.0.spec
@@ -0,0 +1,572 @@
+%global compat_build 1
+
+%global maj_ver 6
+%global min_ver 0
+%global patch_ver 1
+
+%global clang_tools_binaries \
+ %{_bindir}/clangd \
+ %{_bindir}/clang-apply-replacements \
+ %{_bindir}/clang-change-namespace \
+ %{_bindir}/clang-include-fixer \
+ %{_bindir}/clang-query \
+ %{_bindir}/clang-refactor \
+ %{_bindir}/clang-reorder-fields \
+ %{_bindir}/clang-rename \
+ %{_bindir}/clang-tidy
+
+%global clang_binaries \
+ %{_bindir}/clang \
+ %{_bindir}/clang++ \
+ %{_bindir}/clang-%{maj_ver}.%{min_ver} \
+ %{_bindir}/clang++-%{maj_ver}.%{min_ver} \
+ %{_bindir}/clang-check \
+ %{_bindir}/clang-cl \
+ %{_bindir}/clang-cpp \
+ %{_bindir}/clang-format \
+ %{_bindir}/clang-func-mapping \
+ %{_bindir}/clang-import-test \
+ %{_bindir}/clang-offload-bundler
+
+%if 0%{?compat_build}
+%global pkg_name clang%{maj_ver}.%{min_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}.%{min_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 %{_includedir}/llvm%{maj_ver}.%{min_ver}
+%global pkg_libdir %{install_libdir}
+%else
+%global pkg_name clang
+%endif
+
+%if 0%{?fedora} || 0%{?rhel} > 7
+%bcond_without python3
+%else
+%bcond_with python3
+%endif
+
+%global clang_srcdir cfe-%{version}%{?rc_ver:rc%{rc_ver}}.src
+%global clang_tools_srcdir clang-tools-extra-%{version}%{?rc_ver:rc%{rc_ver}}.src
+%global test_suite_srcdir test-suite-%{version}%{?rc_ver:rc%{rc_ver}}.src
+
+Name: %pkg_name
+Version: %{maj_ver}.%{min_ver}.%{patch_ver}
+Release: 3%{?dist}
+Summary: A C language family front-end for LLVM
+
+License: NCSA
+URL:
http://llvm.org
+Source0:
http://llvm.org/releases/%{version}/%{clang_srcdir}.tar.xz
+%if !0%{?compat_build}
+Source1:
http://llvm.org/releases/%{version}/%{clang_tools_srcdir}.tar.xz
+Source2:
http://llvm.org/releases/%{version}/%{test_suite_srcdir}.tar.xz
+%endif
+
+Source100: clang-config.h
+
+Patch0: 0001-lit.cfg-Add-hack-so-lit-can-find-not-and-FileCheck.patch
+Patch1: 0001-GCC-compatibility-Ignore-fstack-clash-protection.patch
+Patch2: 0001-Driver-Prefer-vendor-supplied-gcc-toolchain.patch
+
+BuildRequires: gcc
+BuildRequires: gcc-c++
+BuildRequires: cmake
+%if 0%{?compat_build}
+BuildRequires: llvm%{maj_ver}.%{min_ver}-devel = %{version}
+BuildRequires: llvm%{maj_ver}.%{min_ver}-static = %{version}
+%else
+BuildRequires: llvm-devel = %{version}
+BuildRequires: llvm-static = %{version}
+%endif
+
+BuildRequires: libxml2-devel
+# llvm-static is required, because clang-tablegen needs libLLVMTableGen, which
+# is not included in libLLVM.so.
+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
+
+# These build dependencies are required for the test suite.
+%if %with python3
+# The testsuite uses /usr/bin/lit which is part of the python3-lit package.
+BuildRequires: python3-lit
+%endif
+
+# make check-clang passes LLVM_EXTERNAL_LIT as an argument to
+# /usr/bin/python2, so we must have the python2 version of lit.
+# FIXME: We should find a way to not depend on python2-lit.
+BuildRequires: python2-lit
+
+BuildRequires: zlib-devel
+BuildRequires: tcl
+BuildRequires: python2-virtualenv
+BuildRequires: libstdc++-static
+BuildRequires: python3-sphinx
+
+
+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++
+
+Requires: emacs-filesystem
+
+Provides: clang(major) = %{maj_ver}
+
+%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.
+
+%package libs
+Summary: Runtime library for clang
+Recommends: compiler-rt%{?_isa} >= %{version}
+Recommends: libomp%{_isa} = %{version}
+
+%description libs
+Runtime library for clang.
+
+%package devel
+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}
+
+%description devel
+Development header files for clang.
+
+%if !0%{?compat_build}
+%package analyzer
+Summary: A source code analysis framework
+License: NCSA and MIT
+BuildArch: noarch
+Requires: %{name} = %{version}-%{release}
+# not picked up automatically since files are currently not installed in
+# standard Python hierarchies yet
+Requires: python2
+
+%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 python2
+# and we don't want to force users to install all those dependenices if they
+# just want clang.
+%package -n git-clang-format
+Summary: clang-format integration for git
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: git
+Requires: python2
+
+%description -n git-clang-format
+clang-format integration for git.
+
+%package -n python2-clang
+Summary: Python2 bindings for clang
+Requires: %{name}-libs%{?_isa} = %{version}-%{release}
+Requires: python2
+%description -n python2-clang
+%{summary}.
+%endif
+
+
+%prep
+%if 0%{?compat_build}
+%autosetup -n %{clang_srcdir} -p1
+%else
+%setup -T -q -b 1 -n %{clang_tools_srcdir}
+
+%setup -T -q -b 2 -n %{test_suite_srcdir}
+
+%setup -q -n %{clang_srcdir}
+%patch0 -p1 -b .lit-search-path
+%patch1 -p1 -b .fstack-clash-protection
+%patch2 -p1 -b .vendor-gcc
+
+mv ../%{clang_tools_srcdir} tools/extra
+%endif
+
+%build
+
+%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
+
+mkdir -p _build
+cd _build
+
+%ifarch %{arm}
+# Decrease debuginfo verbosity to reduce memory consumption during final library linking
+%global optflags %(echo %{optflags} | sed 's/-g /-g1 /')
+%endif
+
+%cmake .. \
+ -DLLVM_LINK_LLVM_DYLIB:BOOL=ON \
+ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+%if 0%{?compat_build}
+ -DLLVM_CONFIG:FILEPATH=%{_bindir}/llvm-config-%{maj_ver}.%{min_ver}-%{__isa_bits} \
+ -DCMAKE_INSTALL_PREFIX=%{install_prefix} \
+ -DCLANG_INCLUDE_TESTS:BOOL=OFF \
+%else
+ -DLLVM_CONFIG:FILEPATH=/usr/bin/llvm-config-%{__isa_bits} \
+ -DCLANG_INCLUDE_TESTS:BOOL=ON \
+ -DLLVM_EXTERNAL_LIT=%{python2_sitelib}/lit/main.py \
+%if 0%{?__isa_bits} == 64
+ -DLLVM_LIBDIR_SUFFIX=64 \
+%else
+ -DLLVM_LIBDIR_SUFFIX= \
+%endif
+%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 \
+ -DSPHINX_WARNINGS_AS_ERRORS=OFF \
+ \
+ -DCLANG_BUILD_EXAMPLES:BOOL=OFF \
+ -DLIB_SUFFIX=
+
+make %{?_smp_mflags}
+
+%install
+make install DESTDIR=%{buildroot} -C _build
+
+%if 0%{?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
+
+sed -i -e 's~#!/usr/bin/env python~#!%{_bindir}/python2~'
%{buildroot}%{_bindir}/git-clang-format
+
+# install clang python bindings
+mkdir -p %{buildroot}%{python2_sitelib}/clang/
+install -p -m644 bindings/python/clang/* %{buildroot}%{python2_sitelib}/clang/
+
+# multilib fix
+mv -v %{buildroot}%{_includedir}/clang/Config/config{,-%{__isa_bits}}.h
+install -m 0644 %{SOURCE100} %{buildroot}%{_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
+
+#Fix python shebang
+for f in clang-tidy-diff.py clang-format-diff.py run-clang-tidy.py
run-find-all-symbols.py; do
+ sed -i -e '1{\@^#!/usr/bin/env python@d}' %{buildroot}%{_datadir}/clang/$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}%{_pkgdocdir}
+
+# TODO: What are the Fedora guidelines for packaging bash autocomplete files?
+rm -vf %{buildroot}%{_datadir}/clang/bash-autocomplete.sh
+
+# Add clang++-{version} sylink
+ln -s %{_bindir}/clang++ %{buildroot}%{_bindir}/clang++-%{maj_ver}.%{min_ver}
+
+%endif
+
+%check
+%if !0%{?compat_build}
+# requires lit.py from LLVM utilities
+cd _build
+# FIXME: Fix failing ARM tests
+PATH=%{_libdir}/llvm:$PATH make check-clang || \
+%ifarch %{arm}
+:
+%else
+false
+%endif
+
+mkdir -p %{_builddir}/%{test_suite_srcdir}/_build
+cd %{_builddir}/%{test_suite_srcdir}/_build
+
+# FIXME: Using the cmake macro adds -Werror=format-security to the C/CXX flags,
+# which causes the test suite to fail to build.
+cmake .. -DCMAKE_C_COMPILER=%{buildroot}/usr/bin/clang \
+ -DCMAKE_CXX_COMPILER=%{buildroot}/usr/bin/clang++
+make %{?_smp_mflags} check || :
+%endif
+
+
+%if !0%{?compat_build}
+%files
+%{_libdir}/clang/
+%{clang_binaries}
+%{_bindir}/c-index-test
+%{_mandir}/man1/clang.1.gz
+%{_emacs_sitestartdir}/clang-format.el
+%{_datadir}/clang/clang-format.py*
+%{_datadir}/clang/clang-format-diff.py*
+%endif
+
+%files libs
+%if !0%{?compat_build}
+%{_libdir}/*.so.*
+%{_libdir}/*.so
+%else
+%{pkg_libdir}/*.so.*
+%{pkg_libdir}/*.so
+%{pkg_libdir}/clang/%{version}
+%endif
+
+%files devel
+%if !0%{?compat_build}
+%{_includedir}/clang/
+%{_includedir}/clang-c/
+%{_libdir}/cmake/*
+%dir %{_datadir}/clang/
+%else
+%{pkg_includedir}/clang/
+%{pkg_includedir}/clang-c/
+%{pkg_libdir}/cmake/
+%endif
+
+%if !0%{?compat_build}
+%files analyzer
+%{_bindir}/scan-view
+%{_bindir}/scan-build
+%{_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}/find-all-symbols
+%{_bindir}/modularize
+%{_emacs_sitestartdir}/clang-rename.el
+%{_emacs_sitestartdir}/clang-include-fixer.el
+%{_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 python2-clang
+%{python2_sitelib}/clang/
+
+%endif
+%changelog
+* Mon Jul 23 2018 Tom Stellard <tstellar(a)redhat.com> - 6.0.1-3
+- Sync spec file with the clang6.0 package
+
+* Thu Jul 12 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 6.0.1-2
+- Rebuilt for
https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
+
+* Tue Jun 26 2018 Tom Stellard <tstellar(a)redhat.com> - 6.0.1-1
+- 6.0.1 Release
+
+* Wed Jun 13 2018 Tom Stellard <tstellar(a)redhat.com> - 6.0.1-0.2.rc2
+- 6.0.1-rc2
+
+* Fri May 11 2018 Tom Stellard <tstellar(a)redhat.com> - 6.0.1-0.1.rc1
+- 6.0.1-rc1 Release
+
+* Fri Mar 23 2018 Tom Stellard <tstellar(a)redhat.com> - 6.0.0-5
+- Add a clang++-{version} symlink rhbz#1534098
+
+* Thu Mar 22 2018 Tom Stellard <tstellar(a)redhat.com> - 6.0.0-4
+- Use correct script for running lit tests
+
+* Wed Mar 21 2018 Tom Stellard <tstellar(a)redhat.com> - 6.0.0-3
+- Fix toolchain detection so we don't default to using cross-compilers:
+ rhbz#1482491
+
+* Mon Mar 12 2018 Tom Stellard <tstellar(a)redhat.com> - 6.0.0-2
+- Add Provides: clang(major) rhbz#1547444
+
+* Fri Mar 09 2018 Tom Stellard <tstellar(a)redhat.com> - 6.0.0-1
+- 6.0.0 Release
+
+* Mon Feb 12 2018 Tom Stellard <tstellar(a)redhat.com> - 6.0.0-0.6.rc2
+- 6.0.0-rc2 Release
+
+* Wed Feb 07 2018 Fedora Release Engineering <releng(a)fedoraproject.org> -
6.0.0-0.5.rc1
+- Rebuilt for
https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
+* Thu Feb 01 2018 Tom Stellard <tstellar(a)redhat.com> - 6.0.0-0.4.rc1
+- Package python helper scripts for tools
+
+* Fri Jan 26 2018 Tom Stellard <tstellar(a)redhat.com> - 6.0.0-0.3.rc1
+- Ignore -fstack-clash-protection option instead of giving an error
+
+* Fri Jan 26 2018 Tom Stellard <tstellar(a)redhat.com> - 6.0.0-0.2.rc1
+- Package emacs integration files
+
+* Wed Jan 24 2018 Tom Stellard <tstellar(a)redhat.com> - 6.0.0-0.1.rc1
+- 6.0.0-rc1 Release
+
+* Wed Jan 24 2018 Tom Stellard <tstellar(a)redhat.com> - 5.0.1-3
+- Rebuild against llvm5.0 compatibility package
+- rhbz#1538231
+
+* Wed Jan 03 2018 Iryna Shcherbina <ishcherb(a)redhat.com> - 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 <tstellar(a)redhat.com> - 5.0.1-1
+- 5.0.1 Release
+
+* Wed Dec 13 2017 Tom Stellard <tstellar(a)redhat.com> - 5.0.0-3
+- Make compiler-rt a weak dependency and add a weak dependency on libomp
+
+* Mon Nov 06 2017 Merlin Mathesius <mmathesi(a)redhat.com> - 5.0.0-2
+- Cleanup spec file conditionals
+
+* Mon Oct 16 2017 Tom Stellard <tstellar(a)redhat.com> - 5.0.0-1
+- 5.0.0 Release
+
+* Wed Oct 04 2017 Rex Dieter <rdieter(a)fedoraproject.org> - 4.0.1-6
+- python2-clang subpkg (#1490997)
+- tools-extras: tighten (internal) -libs dep
+- %%install: avoid cd
+
+* Wed Aug 30 2017 Tom Stellard <tstellar(a)redhat.com> - 4.0.1-5
+- Add Requires: python for git-clang-format
+
+* Sun Aug 06 2017 Bjrn Esser <besser82(a)fedoraproject.org> - 4.0.1-4
+- Rebuilt for AutoReq cmake-filesystem
+
+* Wed Aug 02 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 4.0.1-3
+- Rebuilt for
https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
+
+* Wed Jul 26 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 4.0.1-2
+- Rebuilt for
https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
+
+* Fri Jun 23 2017 Tom Stellard <tstellar(a)redhat.com> - 4.0.1-1
+- 4.0.1 Release.
+
+* Fri Jun 16 2017 Tom Stellard <tstellar(a)redhat.com> - 4.0.0-8
+- Enable make check-clang
+
+* Mon Jun 12 2017 Tom Stellard <tstellar(a)redhat.com> - 4.0.0-7
+- Package git-clang-format
+
+* Thu Jun 08 2017 Tom Stellard <tstellar(a)redhat.com> - 4.0.0-6
+- Generate man pages
+
+* Thu Jun 08 2017 Tom Stellard <tstellar(a)redhat.com> - 4.0.0-5
+- Ignore test-suite failures until all arches are fixed.
+
+* Mon Apr 03 2017 Tom Stellard <tstellar(a)redhat.com> - 4.0.0-4
+- Run llvm test-suite
+
+* Mon Mar 27 2017 Tom Stellard <tstellar(a)redhat.com> - 4.0.0-3
+- Enable eh/rtti, which are required by lldb.
+
+* Fri Mar 24 2017 Tom Stellard <tstellar(a)redhat.com> - 4.0.0-2
+- Fix clang-tools-extra build
+- Fix install
+
+* Thu Mar 23 2017 Tom Stellard <tstellar(a)redhat.com> - 4.0.0-1
+- clang 4.0.0 final release
+
+* Mon Mar 20 2017 David Goerger <david.goerger(a)yale.edu> - 3.9.1-3
+- add clang-tools-extra rhbz#1328091
+
+* Thu Mar 16 2017 Tom Stellard <tstellar(a)redhat.com> - 3.9.1-2
+- Enable build-id by default rhbz#1432403
+
+* Thu Mar 02 2017 Dave Airlie <airlied(a)redhat.com> - 3.9.1-1
+- clang 3.9.1 final release
+
+* Fri Feb 10 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.9.0-4
+- Rebuilt for
https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
+
+* Mon Nov 14 2016 Nathaniel McCallum <npmccallum(a)redhat.com> - 3.9.0-3
+- Add Requires: compiler-rt to clang-libs.
+- Without this, compiling with certain CFLAGS breaks.
+
+* Tue Nov 1 2016 Peter Robinson <pbrobinson(a)fedoraproject.org> 3.9.0-2
+- Rebuild for new arches
+
+* Fri Oct 14 2016 Dave Airlie <airlied(a)redhat.com> - 3.9.0-1
+- clang 3.9.0 final release
+
+* Fri Jul 01 2016 Stephan Bergmann <sbergman(a)redhat.com> - 3.8.0-2
+- Resolves: rhbz#1282645 add GCC abi_tag support
+
+* Thu Mar 10 2016 Dave Airlie <airlied(a)redhat.com> 3.8.0-1
+- clang 3.8.0 final release
+
+* Thu Mar 03 2016 Dave Airlie <airlied(a)redhat.com> 3.8.0-0.4
+- clang 3.8.0rc3
+
+* Wed Feb 24 2016 Dave Airlie <airlied(a)redhat.com> - 3.8.0-0.3
+- package all libs into clang-libs.
+
+* Wed Feb 24 2016 Dave Airlie <airlied(a)redhat.com> 3.8.0-0.2
+- enable dynamic linking of clang against llvm
+
+* Thu Feb 18 2016 Dave Airlie <airlied(a)redhat.com> - 3.8.0-0.1
+- clang 3.8.0rc2
+
+* Fri Feb 12 2016 Dave Airlie <airlied(a)redhat.com> 3.7.1-4
+- rebuild against latest llvm packages
+- add BuildRequires llvm-static
+
+* Wed Feb 03 2016 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.7.1-3
+- Rebuilt for
https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
+
+* Thu Jan 28 2016 Dave Airlie <airlied(a)redhat.com> 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 <airlied(a)redhat.com> 3.7.1-1
+- initial build in Fedora.
+
+* Tue Oct 06 2015 Jan Vcelak <jvcelak(a)fedoraproject.org> 3.7.0-100
+- initial version using cmake build system
diff --git a/sources b/sources
new file mode 100644
index 0000000..43c7949
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+SHA512 (cfe-6.0.1.src.tar.xz) =
f64ba9290059f6e36fee41c8f32bf483609d31c291fcd2f77d41fecfdf3c8233a5e23b93a1c73fed03683823bd6e72757ed993dd32527de3d5f2b7a64bb031b9