Merge remote-tracking branch 'origin/f27' into f26

This commit is contained in:
Tom Stellard 2017-08-24 00:06:49 +00:00
commit da075636c1
7 changed files with 267 additions and 10 deletions

4
.gitignore vendored
View File

@ -8,3 +8,7 @@
/clang-tools-extra-3.9.1.src.tar.xz
/cfe-4.0.0.src.tar.xz
/clang-tools-extra-4.0.0.src.tar.xz
/test-suite-4.0.0.src.tar.xz
/cfe-4.0.1.src.tar.xz
/test-suite-4.0.1.src.tar.xz
/clang-tools-extra-4.0.1.src.tar.xz

View File

@ -0,0 +1,29 @@
From 9d17579a4fa653627bfafa77621c3a89867da97d Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar@redhat.com>
Date: Tue, 9 May 2017 01:42:33 +0000
Subject: [PATCH] docs: Fix Sphinx detection with out-of-tree builds
Adapt to changes made in r302499.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@302500 91177308-0d34-0410-b5e6-96231b3b80d8
---
docs/CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt
index 13b79fdf..d2956c1 100644
--- a/docs/CMakeLists.txt
+++ b/docs/CMakeLists.txt
@@ -91,8 +91,8 @@ endif()
endif()
if (LLVM_ENABLE_SPHINX)
+ include(AddSphinxTarget)
if (SPHINX_FOUND)
- include(AddSphinxTarget)
if (${SPHINX_OUTPUT_HTML})
add_sphinx_target(html clang)
add_custom_command(TARGET docs-clang-html POST_BUILD
--
1.8.3.1

View File

@ -0,0 +1,73 @@
From c4d409e8481e402eb34739c6579bd9ffe383f3cd Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar@redhat.com>
Date: Fri, 16 Jun 2017 00:48:27 +0000
Subject: [PATCH] lit.cfg: Remove substitutions for clang/llvm tools
We were missing some subsitutions, for example 'not with no pipe, so
there was a mismatch where some tests would run tools using the full
path and others would search PATH for the tool.
The new beahavior is that the lit tests will always search PATH for the
tool. This should not change the current functionality, because the
smae paths that were being used in substitutions are being added to
PATH.
---
test/lit.cfg | 42 ------------------------------------------
1 file changed, 42 deletions(-)
diff --git a/test/lit.cfg b/test/lit.cfg
index 7d8bebf..9ded96c 100644
--- a/test/lit.cfg
+++ b/test/lit.cfg
@@ -303,48 +303,6 @@ config.substitutions.append(
(' %clang-cl ',
"""*** invalid substitution, use '%clang_cl'. ***""") )
-# For each occurrence of a clang tool name as its own word, replace it
-# with the full path to the build directory holding that tool. This
-# ensures that we are testing the tools just built and not some random
-# tools that might happen to be in the user's PATH.
-tool_dirs = os.path.pathsep.join((clang_tools_dir, llvm_tools_dir))
-
-# Regex assertions to reject neighbor hyphens/dots (seen in some tests).
-# For example, don't match 'clang-check-' or '.clang-format'.
-NoPreHyphenDot = r"(?<!(-|\.))"
-NoPostHyphenDot = r"(?!(-|\.))"
-NoPostBar = r"(?!(/|\\))"
-
-tool_patterns = [r"\bFileCheck\b",
- r"\bc-index-test\b",
- NoPreHyphenDot + r"\bclang-check\b" + NoPostHyphenDot,
- NoPreHyphenDot + r"\bclang-format\b" + NoPostHyphenDot,
- # FIXME: Some clang test uses opt?
- NoPreHyphenDot + r"\bopt\b" + NoPostBar + NoPostHyphenDot,
- # Handle these specially as they are strings searched
- # for during testing.
- r"\| \bcount\b",
- r"\| \bnot\b"]
-
-if config.clang_examples:
- tool_patterns.append(NoPreHyphenDot + r"\bclang-interpreter\b" + NoPostHyphenDot)
-
-for pattern in tool_patterns:
- # Extract the tool name from the pattern. This relies on the tool
- # name being surrounded by \b word match operators. If the
- # pattern starts with "| ", include it in the string to be
- # substituted.
- tool_match = re.match(r"^(\\)?((\| )?)\W+b([0-9A-Za-z-_]+)\\b\W*$",
- pattern)
- tool_pipe = tool_match.group(2)
- tool_name = tool_match.group(4)
- tool_path = lit.util.which(tool_name, tool_dirs)
- if not tool_path:
- # Warn, but still provide a substitution.
- lit_config.note('Did not find ' + tool_name + ' in ' + tool_dirs)
- tool_path = clang_tools_dir + '/' + tool_name
- config.substitutions.append((pattern, tool_pipe + tool_path))
-
###
# Set available features we allow tests to conditionalize on.
--
2.9.3

View File

@ -0,0 +1,43 @@
From 3306314bccdb3429a58fca198bec8d1a01cdf170 Mon Sep 17 00:00:00 2001
From: Matthias Braun <matze@braunis.de>
Date: Fri, 13 Jan 2017 18:36:20 +0000
Subject: [PATCH] litsupport: Add compatibility cludge so it still works with
the pypy version of lit
git-svn-id: https://llvm.org/svn/llvm-project/test-suite/trunk@291933 91177308-0d34-0410-b5e6-96231b3b80d8
---
litsupport/testfile.py | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/litsupport/testfile.py b/litsupport/testfile.py
index d1d234a..7223938 100644
--- a/litsupport/testfile.py
+++ b/litsupport/testfile.py
@@ -27,16 +27,19 @@ def parse(context, filename):
runscript = []
verifyscript = []
metricscripts = {}
- keywords = ['PREPARE:', 'RUN:', 'VERIFY:', 'METRIC:']
+ # Note that we keep both "RUN" and "RUN:" in the list to stay compatible
+ # with older lit versions.
+ keywords = ['PREPARE:', 'PREPARE', 'RUN:', 'RUN', 'VERIFY:', 'VERIFY',
+ 'METRIC:', 'METRIC']
for line_number, command_type, ln in \
parseIntegratedTestScriptCommands(filename, keywords):
- if command_type == 'PREPARE:':
+ if command_type.startswith('PREPARE'):
_parseShellCommand(preparescript, ln)
- elif command_type == 'RUN:':
+ elif command_type.startswith('RUN'):
_parseShellCommand(runscript, ln)
- elif command_type == 'VERIFY:':
+ elif command_type.startswith('VERIFY'):
_parseShellCommand(verifyscript, ln)
- elif command_type == 'METRIC:':
+ elif command_type.startswith('METRIC'):
metric, ln = ln.split(':', 1)
metricscript = metricscripts.setdefault(metric.strip(), list())
_parseShellCommand(metricscript, ln)
--
2.9.3

View File

@ -0,0 +1,27 @@
From 0d272ed9be35fcd1992b08a9026a74d18cf1d7ec Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar@redhat.com>
Date: Thu, 15 Jun 2017 16:33:25 -0400
Subject: [PATCH] test: Remove FileCheck, not, count dependencies
clang already adds these as dependencies for lit.
---
test/CMakeLists.txt | 3 ---
1 file changed, 3 deletions(-)
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index a9d7b7c..1a8930a 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -31,9 +31,6 @@ if(CLANG_TOOLS_TEST_USE_VG)
endif()
set(CLANG_TOOLS_TEST_DEPS
- # Base line deps.
- FileCheck count not
-
# clang-tidy tests require it.
clang-headers
--
1.8.3.1

View File

@ -16,28 +16,57 @@
%{_bindir}/clang-cpp \
%{_bindir}/clang-format \
%{_bindir}/clang-import-test \
%{_bindir}/clang-offload-bundler
%{_bindir}/clang-offload-bundler \
%{_bindir}/git-clang-format
%if 0%{?fedora}
%bcond_without python3
%else
%bcond_with python3
%endif
Name: clang
Version: 4.0.0
Release: 3%{?dist}
Version: 4.0.1
Release: 4%{?dist}
Summary: A C language family front-end for LLVM
License: NCSA
URL: http://llvm.org
Source0: http://llvm.org/releases/%{version}/cfe-%{version}.src.tar.xz
Source1: http://llvm.org/releases/%{version}/clang-tools-extra-%{version}.src.tar.xz
Source2: http://llvm.org/releases/%{version}/test-suite-%{version}.src.tar.xz
Source100: clang-config.h
Patch0: 0001-CMake-Fix-pthread-handling-for-out-of-tree-builds.patch
# This patch is required when the test suite is using python-lit 0.5.0.
Patch1: 0001-litsupport-Add-compatibility-cludge-so-it-still-work.patch
Patch2: 0001-docs-Fix-Sphinx-detection-with-out-of-tree-builds.patch
Patch3: 0001-test-Remove-FileCheck-not-count-dependencies.patch
Patch4: 0001-lit.cfg-Remove-substitutions-for-clang-llvm-tools.patch
BuildRequires: cmake
BuildRequires: llvm-devel = %{version}
BuildRequires: libxml2-devel
# llvm-static is required, because clang-tablegen needs libLLVMTableGen, which
# is not included in libLLVM.so.
BuildRequires: llvm-static = %{version}
BuildRequires: perl-generators
BuildRequires: ncurses-devel
# These build dependencies are required for the test suite.
%if %with python3
BuildRequires: python3-lit
%else
BuildRequires: python2-lit
%endif
BuildRequires: zlib-devel
BuildRequires: tcl
BuildRequires: python-virtualenv
BuildRequires: libstdc++-static
BuildRequires: python3-sphinx
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
# clang requires gcc, clang++ requires libstdc++-devel
@ -96,8 +125,14 @@ A set of extra tools built using Clang's tooling API.
%prep
%setup -T -q -b 1 -n clang-tools-extra-%{version}.src
%patch0 -p1 -b .pthread-fix
%patch3 -p1 -b .lit-dep-fix
%setup -T -q -b 2 -n test-suite-%{version}.src
%patch1 -p1 -b .lit-fix
%setup -q -n cfe-%{version}.src
%patch2 -p1 -b .docs-fix
%patch4 -p1 -b .lit-tools-fix
mv ../clang-tools-extra-%{version}.src tools/extra
@ -117,6 +152,9 @@ cd _build
-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 \
%if 0%{?__isa_bits} == 64
@ -136,8 +174,6 @@ make install DESTDIR=%{buildroot}
mv -v %{buildroot}%{_includedir}/clang/Config/config{,-%{__isa_bits}}.h
install -m 0644 %{SOURCE100} %{buildroot}%{_includedir}/clang/Config/config.h
# remove git integration
rm -vf %{buildroot}%{_bindir}/git-clang-format
# 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*
@ -154,15 +190,29 @@ rm -vf %{buildroot}%{_datadir}/clang/clang-rename.py
# remove diff reformatter
rm -vf %{buildroot}%{_datadir}/clang/clang-format-diff.py*
# TODO: Package html docs
rm -Rvf %{buildroot}%{_pkgdocdir}
%check
# requires lit.py from LLVM utilities
#cd _build
#make check-all
cd _build
PATH=%{_libdir}/llvm:$PATH make check-clang
mkdir -p %{_builddir}/test-suite-%{version}.src/_build
cd %{_builddir}/test-suite-%{version}.src/_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 || :
%files
%{_libdir}/clang/
%{clang_binaries}
%{_bindir}/c-index-test
%{_mandir}/man1/clang.1.gz
%files libs
%{_libdir}/*.so.*
@ -171,7 +221,7 @@ rm -vf %{buildroot}%{_datadir}/clang/clang-format-diff.py*
%files devel
%{_includedir}/clang/
%{_includedir}/clang-c/
%{_libdir}/cmake/
%{_libdir}/cmake/*
%dir %{_datadir}/clang/
%files analyzer
@ -190,6 +240,33 @@ rm -vf %{buildroot}%{_datadir}/clang/clang-format-diff.py*
%{_bindir}/modularize
%changelog
* Sun Aug 06 2017 Björn Esser <besser82@fedoraproject.org> - 4.0.1-4
- Rebuilt for AutoReq cmake-filesystem
* Wed Aug 02 2017 Fedora Release Engineering <releng@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@fedoraproject.org> - 4.0.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Fri Jun 23 2017 Tom Stellard <tstellar@redhat.com> - 4.0.1-1
- 4.0.1 Release.
* Fri Jun 16 2017 Tom Stellard <tstellar@redhat.com> - 4.0.0-8
- Enable make check-clang
* Mon Jun 12 2017 Tom Stellard <tstellar@redhat.com> - 4.0.0-7
- Package git-clang-format
* Thu Jun 08 2017 Tom Stellard <tstellar@redhat.com> - 4.0.0-6
- Generate man pages
* Thu Jun 08 2017 Tom Stellard <tstellar@redhat.com> - 4.0.0-5
- Ignore test-suite failures until all arches are fixed.
* Mon Apr 03 2017 Tom Stellard <tstellar@redhat.com> - 4.0.0-4
- Run llvm test-suite
* Mon Mar 27 2017 Tom Stellard <tstellar@redhat.com> - 4.0.0-3
- Enable eh/rtti, which are required by lldb.

View File

@ -1,2 +1,6 @@
SHA512 (cfe-4.0.0.src.tar.xz) = a0d9972ec337a5c105fcbe7abc4076ba1e580f28908a3318f43bbfe59143f446ed5b78dad210f624145d7e5a3d56c15bfead78826c068422b60120fa1cfa482a
SHA512 (clang-tools-extra-4.0.0.src.tar.xz) = 2f9aed5ff7e175b730802961f9ce0aa6376ce78d905839e60536b6d166f68dc31d4420a668ed1e08f3601a5fefa8f7514172daaf77eb325fecd00e55f56e5af4
SHA512 (test-suite-4.0.0.src.tar.xz) = 1ec2bc3307d8047ffe877e86ebac69f8f1f3ac062d789c2e341b4d4be4b1973d02ab398879cd42faf3346b8952991f00f4f77e4e63604718241cc5f5abb822b3
SHA512 (cfe-4.0.1.src.tar.xz) = 936c9e1626b27e63a4fb11f3c0cb998eeaf9a520ad6e2bcd67cb4352e59e7781ecc700df79794f3fd70473d90b7e2ba418a39038eb0146b68e843f0705c1f964
SHA512 (test-suite-4.0.1.src.tar.xz) = 4a7184568fb805f299d7723622f87e1c7755701a2344b1a554ed657952caa25855ec637c889a15ad23994e4850822571b008c4fc95bee833aa05d564b9ff11c6
SHA512 (clang-tools-extra-4.0.1.src.tar.xz) = ea26d926f428e62e76cf8a073e63ffe05645f6592e05d7717d5c257908870ae9217727d3e1578227b14eda5937085872463f1a8e99970256179c68b8a92e69e0