Move llvm-test-suite into a sub-package

This will allow it to be run by CI systems instead of during
the %check phase.
This commit is contained in:
Tom Stellard 2018-08-17 18:18:32 +00:00
parent 68eed61006
commit 52c2187ff7
7 changed files with 152 additions and 17 deletions

2
.gitignore vendored
View File

@ -39,3 +39,5 @@
/cfe-7.0.0rc1.src.tar.xz
/test-suite-7.0.0rc1.src.tar.xz
/clang-tools-extra-7.0.0rc1.src.tar.xz
/test-suite-7.0.0rc1.src.fedora.tar.gz
/test-suite-7.0.0rc1.src.fedora.tar.xz

View File

@ -0,0 +1,25 @@
From 2ebadefad7d5b8d6770fc135f1ad48059a5ac3b5 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar@redhat.com>
Date: Fri, 17 Aug 2018 20:12:53 -0700
Subject: [PATCH] ABI-Testsuite: Force the old c++11 ABI in mangling/test.xpp
The check lines for this test assume the old c++11 ABI.
---
ABI-Testsuite/test/mangling/test.xpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ABI-Testsuite/test/mangling/test.xpp b/ABI-Testsuite/test/mangling/test.xpp
index e7f4e00..b39e284 100755
--- a/ABI-Testsuite/test/mangling/test.xpp
+++ b/ABI-Testsuite/test/mangling/test.xpp
@@ -1,6 +1,6 @@
// This file is distributed under the University of Illinois Open Source License.
// See LICENSE.TXT for details.
-// RUN: cxx_compiler cxx_11 -c %s -o %t.o
+// RUN: cxx_compiler cxx_11 -D_GLIBCXX_USE_CXX11_ABI=0 -c %s -o %t.o
// RUN: bindump %t.o | FileCheck -allow-deprecated-dag-overlap prefixes %s
#include <cstddef>
--
1.8.3.1

View File

@ -0,0 +1,28 @@
From b997a61df6094d258db94393d378282e039ebe13 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar@redhat.com>
Date: Fri, 17 Aug 2018 16:00:52 -0700
Subject: [PATCH] Fix CLAMR build with newer libstdc++
---
MultiSource/Benchmarks/DOE-ProxyApps-C++/CLAMR/MallocPlus.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/MultiSource/Benchmarks/DOE-ProxyApps-C++/CLAMR/MallocPlus.h b/MultiSource/Benchmarks/DOE-ProxyApps-C++/CLAMR/MallocPlus.h
index 138704f..9db368d 100644
--- a/MultiSource/Benchmarks/DOE-ProxyApps-C++/CLAMR/MallocPlus.h
+++ b/MultiSource/Benchmarks/DOE-ProxyApps-C++/CLAMR/MallocPlus.h
@@ -99,9 +99,9 @@ struct malloc_plus_memory_entry {
struct cmp_str
{
- bool operator()(char const *a, char const *b)
+ bool operator()(const string &a, const string &b)
{
- return strcmp(a, b) < 0;
+ return a.compare(b) < 0;
}
};
--
1.8.3.1

View File

@ -55,11 +55,11 @@
%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
%global test_suite_srcdir test-suite-%{version}%{?rc_ver:rc%{rc_ver}}.src.fedora
Name: %pkg_name
Version: %{maj_ver}.%{min_ver}.%{patch_ver}
Release: 0.3.rc%{rc_ver}%{?dist}
Release: 0.4.rc%{rc_ver}%{?dist}
Summary: A C language family front-end for LLVM
License: NCSA
@ -67,7 +67,14 @@ URL: http://llvm.org
Source0: http://%{?rc_ver:pre}releases.llvm.org/%{version}/%{?rc_ver:rc%{rc_ver}}/%{clang_srcdir}.tar.xz
%if !0%{?compat_build}
Source1: http://llvm.org/releases/%{version}/%{clang_tools_srcdir}.tar.xz
Source2: http://llvm.org/releases/%{version}/%{test_suite_srcdir}.tar.xz
# The LLVM Test Suite contains progrms with "BAD" or unknown licenses which should
# be removed. Some of the unknown licenses may be OK, but until they are reviewed,
# we will remove them.
# Use the pkg_test_suite.sh script to generate the test-suite tarball:
# wget http://llvm.org/releases/%%{version}/%%{test_suite_srcdir}.tar.xz
# ./pkg_test_suite.sh %%{test_suite_srcdir}.tar.xz
Source2: %{test_suite_srcdir}.tar.xz
%endif
Source100: clang-config.h
@ -78,6 +85,10 @@ Patch2: 0001-Driver-Prefer-vendor-supplied-gcc-toolchain.patch
# This was merged into the release_70 branch after 7.0.0-rc1
Patch3: 0001-Merging-r338627.patch
# Test suite Patches
Patch100: 0001-Fix-CLAMR-build-with-newer-libstdc.patch
Patch101: 0001-ABI-Testsuite-Force-the-old-c-11-ABI-in-mangling-tes.patch
BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: cmake
@ -108,11 +119,7 @@ BuildRequires: python3-lit
# /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: python2-rpm-macros
BuildRequires: python3-sphinx
BuildRequires: libatomic
@ -198,6 +205,22 @@ Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Requires: python2
%description -n python2-clang
%{summary}.
%package -n llvm-test-suite
Summary: C/C++ Compiler Test Suite
License: NCSA, MIT, GPL, Python
Requires: cmake
Requires: libstdc++-static
Requires: python3-lit = 0.7.0
# ABI-Testsuite requires python2-lit
Requires: python2-lit = 0.7.0
Requires: llvm
Requires: tcl
%description -n llvm-test-suite
C/C++ Compiler Test Suite that is mantained as an LLVM sub-project. This test
suite can be run with any compiler, not just clang.
%endif
@ -208,6 +231,8 @@ Requires: python2
%setup -T -q -b 1 -n %{clang_tools_srcdir}
%setup -T -q -b 2 -n %{test_suite_srcdir}
%patch100 -p1 -b .build-fix
%patch101 -p1 -b .old-abi-fix
%setup -q -n %{clang_srcdir}
%patch0 -p1 -b .lit-search-path
@ -319,6 +344,10 @@ rm -vf %{buildroot}%{_datadir}/clang/bash-autocomplete.sh
# Add clang++-{version} sylink
ln -s %{_bindir}/clang++ %{buildroot}%{_bindir}/clang++-%{maj_ver}
# Install test suite
mkdir -p %{buildroot}%{_datadir}/llvm-test-suite/
cp -R %{_builddir}/%{test_suite_srcdir}/* %{buildroot}%{_datadir}/llvm-test-suite
%endif
%check
@ -333,14 +362,6 @@ PATH=%{_libdir}/llvm:$PATH make check-clang || \
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
@ -407,8 +428,14 @@ make %{?_smp_mflags} check || :
%files -n python2-clang
%{python2_sitelib}/clang/
%files -n llvm-test-suite
%{_datadir}/llvm-test-suite/
%endif
%changelog
* Fri Aug 17 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-0.4.rc1
- Move llvm-test-suite into a sub-package
* Fri Aug 17 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-0.3.rc1
- Recommend the same version of compiler-rt

44
pkg_test_suite.sh Normal file
View File

@ -0,0 +1,44 @@
set -ex
tmpdir=`mktemp -d`
currentdir=`pwd`
tar -C $tmpdir -xJf $1
test_suite_src=`echo $1 | cut -d . -f 1-4`
pushd $tmpdir
test -d $test_suite_src
UNKNOWN="\
MultiSource/Benchmarks/mediabench/ \
MultiSource/Applications/JM/"
#MallocBench/{espresso,cfrac} might be OK
BAD="\
MultiSource/Benchmarks/MallocBench/ \
MultiSource/Benchmarks/7zip/"
POSSIBLY_BAD="\
MultiSource/Benchmarks/Olden/ \
MultiSource/Benchmarks/Fhourstones/ \
MultiSource/Benchmarks/ASCI_Purple/SMG2000/ \
MultiSource/Benchmarks/Fhourstones-3.1/ \
MultiSource/Benchmarks/McCat/ \
MultiSource/Applications/spiff/"
for f in $UNKNOWN $BAD $POSSIBLY_BAD; do
test -d $test_suite_src/$f
rm -Rf $test_suite_src/$f
basedir=`dirname $f`
dir=`basename $f`
cmake_file=$test_suite_src/$basedir/CMakeLists.txt
test -f $cmake_file
sed -i s/add_subdirectory\($dir\)//g $cmake_file
done
tar --transform=s/$test_suite_src/$test_suite_src.fedora/ --show-transformed-names -cJf $currentdir/$test_suite_src.fedora.tar.xz $test_suite_src
pushd
rm -Rf $tmpdir

View File

@ -1,3 +1,3 @@
SHA512 (cfe-7.0.0rc1.src.tar.xz) = 97d8775c36c0883861d6b0732451c3d431d30dbe39d405b2755d87a4d8d217fafea7becd31765dca8d5b7ae0dc33785ada10c6f60331a70d5294b22f00242cd0
SHA512 (test-suite-7.0.0rc1.src.tar.xz) = fbfeefdd27ff9e8e323214a77fd34bc661f7869b62188d8fe86308396ca2dedb757dd3b8f00d4c3978f727ba35b64797832dcfadff9882a7418b2aa74616aca8
SHA512 (test-suite-7.0.0rc1.src.fedora.tar.xz) = ed31281b7119d4f9b6b3c65a6c872a7987fe18a589a485485a5b715620ffef4b116a6f72fac039c6638ea2e981b348cad9d6908d111661db3df8bfe96f64e795
SHA512 (clang-tools-extra-7.0.0rc1.src.tar.xz) = a7d467b714731f54ed08019b698f7e301060ca84f0fcb23494c374a0d3b6e9d4d3f3bfd62ed83888574a29aff3fb5a718b5af85f59abd49a2683dbb543c7e033

View File

@ -5,8 +5,17 @@
- classic
required_packages:
- clang
- llvm-test-suite
- ninja-build
- gcc-x86_64-linux-gnu
- which
tests:
- rhbz#482491:
dir: ./
run: echo "int main(){}" | clang -x c -
- llvm-test-suite:
dir: ./
run: cd $(mktemp -d) && cmake -G Ninja /usr/share/llvm-test-suite/ -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang && ninja check
- llvm-abi-test-suite:
dir: ./
run: cd /usr/share/llvm-test-suite/ABI-Testsuite/ && python2 linux-x86.py clang test -v --path /usr/lib64/llvm/