Compare commits

...

93 Commits
f28 ... master

Author SHA1 Message Date
sergesanspaille 0c8ce6b93d 10.0.0 final 2020-03-30 09:41:15 +00:00
sergesanspaille 80c3a7cb7a 10.0.0 rc6 2020-03-24 20:08:33 +00:00
sergesanspaille dc3ceec895 Update git-clang-format dependency, see rhbz#1815913 2020-03-22 19:50:16 +00:00
Tom Stellard 7a3aee27c2 Add dependency on libomp-devel
This fixes compiling with -fopenmp, because clang needs libomp-devel
to be installed so it can find omp.h.
2020-03-20 18:43:26 +00:00
sergesanspaille fd397b2953 10.0.0 rc5 2020-03-20 12:36:28 +00:00
sergesanspaille dc1e065203 10.0.0 rc4 2020-03-15 07:19:13 +00:00
sergesanspaille b73627486c Move a few files from clang to clang-tools-extra. 2020-03-12 08:29:38 +00:00
sergesanspaille 8d37c48855 Remove trailing whitespaces 2020-03-12 08:24:26 +00:00
Christophe de Dinechin 5e48b7c9be Move clang-format.el along with tools-extra (bz#1812487)
With the current setup, if you only install clang-tools-extra, the
package clang-format is not found by Emacs.

A similar change was made for the Python scripts, although I did not
run in the same situation myself.

v2: Moved additional files at the suggestion of @sergesanspaille
%{_mandir}/man1/diagtool.1.gz
%{_bindir}/c-index-test
Also restored trailing whitespaces in the .spec file
2020-03-12 08:58:45 +01:00
sergesanspaille 9264afee32 10.0.0 rc3 2020-03-05 11:21:38 +00:00
sergesanspaille b45d596d2f Apply -fdiscard-value-names patch 2020-02-25 23:30:58 +00:00
sergesanspaille 28cdc9893f Fix NVR 2020-02-17 15:49:10 +00:00
sergesanspaille 139b5a7e66 10.0.0 rc2 2020-02-15 22:52:09 +00:00
sergesanspaille b6fa739f4c Prevent compiler-rt potential version conflicts 2020-02-11 20:34:14 +00:00
Tom Stellard 03d578532d Stop shipping individual component libraries
https://fedoraproject.org/wiki/Changes/Stop-Shipping-Individual-Component-Libraries-In-clang-lib-Package
2020-02-10 19:51:57 -08:00
sergesanspaille 688e6aa50e Add missing sources entry 2020-02-06 15:21:14 +00:00
sergesanspaille cf309ffb9a 10.0.0rc1 2020-02-06 10:41:16 +00:00
Fedora Release Engineering 51cb45dd23 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-01-28 14:07:59 +00:00
Tom Stellard 5baf5a3c1f Fix crash with kernel bpf self-tests 2020-01-14 01:51:46 +00:00
Tom Stellard 86a049a618 9.0.1 Release 2019-12-20 03:01:31 +00:00
Tom Stellard 4c28031fc0 Add explicit requires for clang-libs to fix rpmdiff errors 2019-12-11 18:09:07 +00:00
sergesanspaille 797f722f5f Activate -funwind-tables on all arches, see rhbz#1655546 2019-12-10 13:33:59 +00:00
Tom Stellard 6ff40379f9 Enable gating on the tests in dist-git 2019-09-28 01:13:43 +00:00
Tom Stellard 73d4dd7e74 Pull tests from tests/clang repository 2019-09-25 02:40:16 +00:00
Tom Stellard d04c1c444a 9.0.0 Release 2019-09-20 01:03:04 +00:00
Tom Stellard 69ca58540c Reduce debug info verbosity on ppc64le to avoid OOM errors in koji 2019-09-11 19:58:15 +00:00
Tom Stellard e3a4c7d64e Add missing patch 2019-09-11 04:04:54 +00:00
Tom Stellard 1ca49851e1 9.0.0 Release candidate 3 2019-09-11 03:52:43 +00:00
Tom Stellard 277bd76c83 Sync with clang8.0 compat 2019-08-22 20:19:43 +00:00
Tom Stellard 77df2a6206 Pull llvm-test-suite tests from common repo 2019-08-22 20:18:09 +00:00
sergesanspaille 7b4d800ffc 8.0.0-4
- Rebuilt for Python 3.8
2019-08-20 20:55:20 +00:00
Miro Hrončok 86a9d03ab1 Rebuilt for Python 3.8 2019-08-19 10:11:35 +02:00
Fedora Release Engineering b3b8190661 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-07-24 20:20:23 +00:00
sergesanspaille 09654593bd Fix for rhbz#1674031 2019-05-28 11:12:08 +00:00
sergesanspaille fe4c5544fa [PATCH] typo fix
Commited on behalf of Thierry Vignaud <thierry.vignaud@gmail.com>
2019-04-16 13:45:10 +00:00
sergesanspaille 32e777c925 Remove useless patch thanks to gcc upgrade 2019-04-13 05:55:07 +00:00
sergesanspaille 25a719b7c8 8.0.0-final 2019-03-20 19:38:13 +00:00
sergesanspaille cc03e58772 8.0.0rc4 2019-03-12 14:15:43 +00:00
sergesanspaille 434e91810d Fix installation dir and cleanup specfile 2019-03-06 11:28:07 +00:00
sergesanspaille b4398f1f4f 8.0.0 rc3 2019-03-06 11:28:07 +00:00
sergesanspaille d31698ef8e Port clang compat changes back from clang7.0 2019-03-06 11:28:07 +00:00
Tom Stellard d41e350538 Fix compiling with -stdlib=libc++ 2019-02-25 21:17:07 +00:00
sergesanspaille 81de65ab87 8.0.0 rc2 - fix versioning number 2019-02-22 08:15:29 +00:00
sergesanspaille 0cae14eafb 8.0.0rc2 2019-02-21 21:30:51 +00:00
sergesanspaille d89c69d309 Silent some test failure for the rc1 2019-02-15 18:51:52 +00:00
sergesanspaille dc3e88bfa1 Remove duplicate scan-build entry 2019-02-15 13:53:01 +00:00
sergesanspaille f5f2063cd5 Upload *both* sources 2019-02-15 11:33:02 +00:00
sergesanspaille 54010afc71 New source 2019-02-15 09:30:39 +00:00
sergesanspaille 78aea57435 Upload new sources 2019-02-15 09:06:44 +00:00
sergesanspaille 478f0a1e6b Decrease debug info verbosity for some target and prevent parallel linking 2019-02-14 21:12:15 +00:00
sergesanspaille b53704a451 8.0.0rc1 2019-02-13 15:48:31 +00:00
sergesanspaille b4f2f9a2ea Scan-view Python3 compat 2019-02-05 20:44:37 +00:00
sergesanspaille 734d45aa8f Fix and reorganize CI tests 2019-02-05 17:35:30 +00:00
sergesanspaille dc88066dc2 Patch for gcc-9 bug 2019-02-05 06:15:36 +00:00
sergesanspaille 59a913a078 Fix gcc-9 build 2019-02-01 07:51:41 +00:00
Fedora Release Engineering aa6b8300b9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-01-31 15:40:24 +00:00
Tom Stellard 1f58b21528 Fix for rhbz#1657544 2018-12-19 16:58:24 +00:00
Tom Stellard 1e5a2ecac9 Disable pocl tests 2018-12-19 03:42:36 +00:00
sergesanspaille 01e69400f6 Bump version to 7.0.1 2018-12-18 07:03:33 +00:00
sergesanspaille d870610e6e Improve man support 2018-12-18 06:50:05 +00:00
sergesanspaille dbc386190b No longer ignore -fstack-clash-protection option incompatibility 2018-12-14 07:32:50 +00:00
sergesanspaille c67fd455f2 Ensure rpmlint passes on specfile 2018-12-04 13:11:18 +00:00
Tom Stellard 52edfa5810 Drop python2 dependency from clang-tools-extra 2018-11-30 19:38:01 +00:00
Tom Stellard d49953335b Bump release for previous commit 2018-11-28 18:07:13 +00:00
sergesanspaille 62621b0c0b Prune reference to llvm-test-suite
Fix https://bugzilla.redhat.com/show_bug.cgi?id=1651434
2018-11-28 09:08:31 +00:00
Tom Stellard a37bcb2943 Run 'make check-all' instead of 'make check-clang'
make check-all will run the clang-tools-extras tests in addition to
all the clang tests.
2018-11-19 23:51:26 +00:00
sergesanspaille b730992174 Fix duplicate Python2 + Python3 dependency for clang analyzer
This should fix https://bugzilla.redhat.com/show_bug.cgi?id=1634831
2018-11-19 08:51:12 +00:00
Tom Stellard 816ea521a1 User helper macro to fixup config.h for multilib 2018-11-06 00:28:53 +00:00
Tom Stellard 120d6498d7 Add pocl test to the CI test list 2018-10-04 16:37:48 +00:00
Tom Stellard 94356f81b4 Remove which from the list of test dependencies
llvm-test-suite will pull this in automatically.
2018-10-04 16:37:48 +00:00
Tom Stellard 471d877a78 Limit test-suite to a single thread
This avoids OOM errors on the CI systems.
2018-10-03 18:15:31 +00:00
Tom Stellard 15d2b4b54e Use correct shebang substitution for python scripts
This is a follow up for rhbz#1538238
2018-10-02 00:23:07 +00:00
Tom Stellard 468c6f2a1a 7.0.0 Release 2018-09-25 02:05:06 +00:00
Tom Stellard 00e1fa93d1 Move builtin headers into clang-libs sub-package
rhbz#1582884
2018-09-20 05:18:02 +00:00
Tom Stellard fe1772d561 Remove ambiguous python shebangs 2018-09-19 16:52:16 +00:00
Tom Stellard 5d6c3ad71b Move unversioned shared objects to devel package 2018-09-14 02:54:50 +00:00
Tom Stellard 3f2f4300ee Rebuild with new llvm-devel that disables rpath on install 2018-09-13 20:37:04 +00:00
Tom Stellard 6955c7a59c Fix clang++-7 symlink 2018-09-13 16:51:14 +00:00
Tom Stellard 3f7338a07c 7.0.0-rc3 Release 2018-09-12 02:51:33 +00:00
Tom Stellard 2fbc3e1b92 Drop siod from llvm-test-suite
This test is buggy.  See llvm.org/PR38648.

Also add which to Requires for llvm-test-suite.
2018-09-10 17:30:10 +00:00
Tom Stellard 17d16059d3 Drop python2 dependency from clang package 2018-09-07 21:01:14 +00:00
Tom Stellard c823f68df9 Drop all uses of python2 from lit tests 2018-09-06 20:34:50 +00:00
Tom Stellard 5a51a28e57 Add Fedora specific version string 2018-09-04 18:04:42 +00:00
Tom Stellard 462b3d2eb2 7.0.0-rc2 Release 2018-08-30 16:38:13 +00:00
Tom Stellard f7f57849e2 Enable unit tests 2018-08-28 00:30:34 +00:00
Tom Stellard ad3b6d908d Fix comment 2018-08-27 23:46:19 +00:00
Tom Stellard 52c2187ff7 Move llvm-test-suite into a sub-package
This will allow it to be run by CI systems instead of during
the %check phase.
2018-08-23 15:07:37 +00:00
Tom Stellard 68eed61006 Recommend the same version of compiler-rt
When clang searches for the compiler-rt libraries, it constructs
the search path using the clang version.  If the clang and compiler-rt
versions don't match, then clang can't find the libraries.
2018-08-17 18:35:07 +00:00
Tom Stellard 599360b865 Rebuild for f30 2018-08-15 02:58:47 +00:00
Tom Stellard 7761cfa923 7.0.0-rc1 Release 2018-08-14 04:40:41 +00:00
Tom Stellard 74e8e2347b Sync spec file with the clang6.0 package 2018-07-23 22:20:29 +00:00
Fedora Release Engineering 2b91340e99 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-07-12 21:50:24 +00:00
Igor Gnatenko 43cdae7656 add BuildRequires: gcc-c++,gcc
Reference: https://fedoraproject.org/wiki/Changes/Remove_GCC_from_BuildRoot
2018-07-09 19:06:43 +02:00
19 changed files with 921 additions and 422 deletions

63
.gitignore vendored
View File

@ -36,3 +36,66 @@
/cfe-6.0.1.src.tar.xz
/clang-tools-extra-6.0.1.src.tar.xz
/test-suite-6.0.1.src.tar.xz
/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
/cfe-7.0.0rc2.src.tar.xz
/clang-tools-extra-7.0.0rc2.src.tar.xz
/test-suite-7.0.0rc2.src.fedora.tar.xz
/cfe-7.0.0rc3.src.tar.xz
/clang-tools-extra-7.0.0rc3.src.tar.xz
/test-suite-7.0.0rc3.src.fedora.tar.xz
/cfe-7.0.0.src.tar.xz
/test-suite-7.0.0.src.fedora.tar.xz
/clang-tools-extra-7.0.0.src.tar.xz
/clang-tools-extra-7.0.1.src.tar.xz
/cfe-7.0.1.src.tar.xz
/clang-tools-extra-8.0.0rc1.src.tar.xz
/cfe-8.0.0rc1.src.tar.xz
/cfe-8.0.0rc2.src.tar.xz
/clang-tools-extra-8.0.0rc2.src.tar.xz
/cfe-8.0.0rc3.src.tar.xz
/clang-tools-extra-8.0.0rc3.src.tar.xz
/cfe-8.0.0rc4.src.tar.xz
/clang-tools-extra-8.0.0rc4.src.tar.xz
/cfe-8.0.0.src.tar.xz
/clang-tools-extra-8.0.0.src.tar.xz
/cfe-9.0.0rc2.src.tar.xz
/clang-tools-extra-9.0.0rc2.src.tar.xz
/cfe-9.0.0rc3.src.tar.xz
/clang-tools-extra-9.0.0rc3.src.tar.xz
/cfe-9.0.0.src.tar.xz
/clang-tools-extra-9.0.0.src.tar.xz
/clang-9.0.1.src.tar.xz
/clang-tools-extra-9.0.1.src.tar.xz
/clang-10.0.0rc1.src.tar.xz
/clang-tools-extra-10.0.0rc1.src.tar.xz
/clang-10.0.0rc1.src.tar.xz.sig
/clang-tools-extra-10.0.0rc1.src.tar.xz.sig
/clang-10.0.0rc2.src.tar.xz
/clang-tools-extra-10.0.0rc2.src.tar.xz
/clang-tools-extra-10.0.0rc2.src.tar.xz.sig
/clang-10.0.0rc2.src.tar.xz.sig
/clang-10.0.0rc3.src.tar.xz
/clang-tools-extra-10.0.0rc3.src.tar.xz
/clang-tools-extra-10.0.0rc3.src.tar.xz.sig
/clang-10.0.0rc3.src.tar.xz.sig
/clang-10.0.0rc4.src.tar.xz
/clang-tools-extra-10.0.0rc4.src.tar.xz
/clang-tools-extra-10.0.0rc4.src.tar.xz.sig
/clang-10.0.0rc4.src.tar.xz.sig
/clang-10.0.0rc5.src.tar.xz
/clang-tools-extra-10.0.0rc5.src.tar.xz
/clang-tools-extra-10.0.0rc5.src.tar.xz.sig
/clang-10.0.0rc5.src.tar.xz.sig
/clang-10.0.0rc6.src.tar.xz
/clang-tools-extra-10.0.0rc6.src.tar.xz
/clang-tools-extra-10.0.0rc6.src.tar.xz.sig
/clang-10.0.0rc6.src.tar.xz.sig
/clang-10.0.0.src.tar.xz.sig
/clang-tools-extra-10.0.0.src.tar.xz.sig
/clang-tools-extra-10.0.0.src.tar.xz
/clang-10.0.0.src.tar.xz

View File

@ -1,36 +0,0 @@
From f5f712dfcac6ee99381c5aca212950276f1743e8 Mon Sep 17 00:00:00 2001
From: Eric Fiselier <eric@efcs.ca>
Date: Fri, 10 Feb 2017 01:59:20 +0000
Subject: [PATCH] [CMake] Fix pthread handling for out-of-tree builds
LLVM defines `PTHREAD_LIB` which is used by AddLLVM.cmake and various projects
to correctly link the threading library when needed. Unfortunately
`PTHREAD_LIB` is defined by LLVM's `config-ix.cmake` file which isn't installed
and therefore can't be used when configuring out-of-tree builds. This causes
such builds to fail since `pthread` isn't being correctly linked.
This patch attempts to fix that problem by renaming and exporting
`LLVM_PTHREAD_LIB` as part of`LLVMConfig.cmake`. I renamed `PTHREAD_LIB`
because It seemed likely to cause collisions with downstream users of
`LLVMConfig.cmake`.
git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@294690 91177308-0d34-0410-b5e6-96231b3b80d8
---
include-fixer/plugin/CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include-fixer/plugin/CMakeLists.txt b/include-fixer/plugin/CMakeLists.txt
index 2799fd4..df792ea 100644
--- a/include-fixer/plugin/CMakeLists.txt
+++ b/include-fixer/plugin/CMakeLists.txt
@@ -9,5 +9,5 @@ add_clang_library(clangIncludeFixerPlugin
clangParse
clangSema
clangTooling
- ${PTHREAD_LIB}
+ ${LLVM_PTHREAD_LIB}
)
--
1.8.3.1

View File

@ -1,120 +0,0 @@
From 69d981a5d41d481556bd38f8d668d7f1177ac2b4 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar@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

View File

@ -1,42 +0,0 @@
From 428ca4520a79ec5a6df9c6adc8b8069623868cdb Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar@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

View File

@ -0,0 +1,39 @@
From 690373af5a5d50cf115ed6e4d2849bb786f9dc8e Mon Sep 17 00:00:00 2001
From: serge-sans-paille <sguelton@redhat.com>
Date: Tue, 10 Dec 2019 09:18:03 +0000
Subject: [PATCH] Make -funwind-tables the default for all archs
---
clang/lib/Driver/ToolChain.cpp | 2 +-
clang/lib/Driver/ToolChains/Gnu.cpp | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/clang/lib/Driver/ToolChain.cpp b/clang/lib/Driver/ToolChain.cpp
index b1fddb0af55..43af40ed0e8 100644
--- a/clang/lib/Driver/ToolChain.cpp
+++ b/clang/lib/Driver/ToolChain.cpp
@@ -244,7 +244,7 @@ std::string ToolChain::getInputFilename(const InputInfo &Input) const {
}
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 33cdd3585c2..15e82be8f3a 100644
--- a/clang/lib/Driver/ToolChains/Gnu.cpp
+++ b/clang/lib/Driver/ToolChains/Gnu.cpp
@@ -2535,7 +2535,7 @@ void Generic_GCC::printVerboseInfo(raw_ostream &OS) const {
}
bool Generic_GCC::IsUnwindTablesDefault(const ArgList &Args) const {
- return getArch() == llvm::Triple::x86_64;
+ return true;
}
bool Generic_GCC::isPICDefault() const {
--
2.20.1

View File

@ -0,0 +1,50 @@
From 09ae3ef5710a89505318ec721c65b6c838147276 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar@redhat.com>
Date: Thu, 7 Feb 2019 21:05:37 -0800
Subject: [PATCH] ToolChain: Add -lgcc_s to the linker flags when using libc++
The libc++ build for Fedora does not include an implementation of
libunwind, so we need to explicitly link against something that
provides this implementation.
---
clang/lib/Driver/ToolChain.cpp | 1 +
clang/test/Driver/netbsd.cpp | 4 ++--
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/lib/Driver/ToolChain.cpp b/lib/Driver/ToolChain.cpp
index 88a627e..cb99844 100644
--- a/lib/Driver/ToolChain.cpp
+++ b/lib/Driver/ToolChain.cpp
@@ -767,6 +767,7 @@ void ToolChain::AddCXXStdlibLibArgs(const ArgList &Args,
switch (Type) {
case ToolChain::CST_Libcxx:
CmdArgs.push_back("-lc++");
+ CmdArgs.push_back("-lgcc_s");
break;
case ToolChain::CST_Libstdcxx:
diff --git a/test/Driver/netbsd.cpp b/test/Driver/netbsd.cpp
index 4af7d83..ff18c62 100644
--- a/test/Driver/netbsd.cpp
+++ b/test/Driver/netbsd.cpp
@@ -131,7 +131,7 @@
// ARM-7: clang{{.*}}" "-cc1" "-triple" "armv5e-unknown-netbsd7.0.0-eabi"
// ARM-7: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
// ARM-7: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
-// ARM-7: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc++" "-lm" "-lc"
+// ARM-7: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc++" "-lgcc_s" "-lm" "-lc"
// ARM-7: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
// AARCH64: clang{{.*}}" "-cc1" "-triple" "aarch64-unknown-netbsd"
@@ -250,7 +250,7 @@
// S-ARM-7: clang{{.*}}" "-cc1" "-triple" "armv5e-unknown-netbsd7.0.0-eabi"
// S-ARM-7: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
// S-ARM-7: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
-// S-ARM-7: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc++" "-lm" "-lc"
+// S-ARM-7: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc++" "-lgcc_s" "-lm" "-lc"
// S-ARM-7: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
// S-AARCH64: clang{{.*}}" "-cc1" "-triple" "aarch64-unknown-netbsd"
--
1.8.3.1

View File

@ -0,0 +1,25 @@
From 856b789b9de0895786ba23681c4337172676e01e Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar@redhat.com>
Date: Fri, 31 Jan 2020 11:04:57 -0800
Subject: [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 cbd618e..9cf076a 100644
--- a/clang/cmake/modules/AddClang.cmake
+++ b/clang/cmake/modules/AddClang.cmake
@@ -97,7 +97,7 @@ macro(add_clang_library name)
if(TARGET ${name})
target_link_libraries(${name} 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(${name} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR
"clang-libraries" IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR
--
1.8.3.1

View File

@ -1,27 +0,0 @@
From 06cde370a44393d65bae7f61279900b5838b4a2c Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar@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

View File

@ -1,73 +0,0 @@
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,99 @@
From 11857d49948b845dcfd7c7f78595095e3add012d Mon Sep 17 00:00:00 2001
From: Rong Xu <xur@google.com>
Date: Tue, 25 Feb 2020 08:04:01 -0800
Subject: [PATCH] [remark][diagnostics] [codegen] Fix PR44896
This patch fixes PR44896. For IR input files, option fdiscard-value-names
should be ignored as we need named values in loadModule().
Commit 60d3947922 sets this option after loadModule() where valued names
already created. This creates an inconsistent state in setNameImpl()
that leads to a seg fault.
This patch forces fdiscard-value-names to be false for IR input files.
This patch also emits a warning of "ignoring -fdiscard-value-names" if
option fdiscard-value-names is explictly enabled in the commandline for
IR input files.
Differential Revision: https://reviews.llvm.org/D74878
---
clang/include/clang/Basic/DiagnosticDriverKinds.td | 3 +++
clang/lib/CodeGen/CodeGenAction.cpp | 3 +++
clang/lib/Driver/ToolChains/Clang.cpp | 10 +++++++++-
clang/test/CodeGen/PR44896.ll | 15 +++++++++++++++
4 files changed, 30 insertions(+), 1 deletion(-)
create mode 100644 clang/test/CodeGen/PR44896.ll
diff --git a/clang/include/clang/Basic/DiagnosticDriverKinds.td b/clang/include/clang/Basic/DiagnosticDriverKinds.td
index ecd871e..48ece91 100644
--- a/clang/include/clang/Basic/DiagnosticDriverKinds.td
+++ b/clang/include/clang/Basic/DiagnosticDriverKinds.td
@@ -271,6 +271,9 @@ def warn_drv_unsupported_debug_info_opt_for_target : Warning<
InGroup<UnsupportedTargetOpt>;
def warn_c_kext : Warning<
"ignoring -fapple-kext which is valid for C++ and Objective-C++ only">;
+def warn_ignoring_fdiscard_for_bitcode : Warning<
+ "ignoring -fdiscard-value-names for LLVM Bitcode">,
+ InGroup<UnusedCommandLineArgument>;
def warn_drv_input_file_unused : Warning<
"%0: '%1' input unused%select{ when '%3' is present|}2">,
InGroup<UnusedCommandLineArgument>;
diff --git a/clang/lib/CodeGen/CodeGenAction.cpp b/clang/lib/CodeGen/CodeGenAction.cpp
index 5ebc34c..81946b1 100644
--- a/clang/lib/CodeGen/CodeGenAction.cpp
+++ b/clang/lib/CodeGen/CodeGenAction.cpp
@@ -1146,6 +1146,9 @@ void CodeGenAction::ExecuteAction() {
CI.getTargetOpts(), CI.getLangOpts(),
CI.getFrontendOpts().ShowTimers,
std::move(LinkModules), *VMContext, nullptr);
+ // PR44896: Force DiscardValueNames as false. DiscardValueNames cannot be
+ // true here because the valued names are needed for reading textual IR.
+ Ctx.setDiscardValueNames(false);
Ctx.setDiagnosticHandler(
std::make_unique<ClangDiagnosticHandler>(CodeGenOpts, &Result));
diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp
index 19a23c9..d387a1d 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -4332,8 +4332,16 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
// Discard value names in assert builds unless otherwise specified.
if (Args.hasFlag(options::OPT_fdiscard_value_names,
- options::OPT_fno_discard_value_names, !IsAssertBuild))
+ options::OPT_fno_discard_value_names, !IsAssertBuild)) {
+ if (Args.hasArg(options::OPT_fdiscard_value_names) &&
+ (std::any_of(Inputs.begin(), Inputs.end(),
+ [](const clang::driver::InputInfo &II) {
+ return types::isLLVMIR(II.getType());
+ }))) {
+ D.Diag(diag::warn_ignoring_fdiscard_for_bitcode);
+ }
CmdArgs.push_back("-discard-value-names");
+ }
// Set the main file name, so that debug info works even with
// -save-temps.
diff --git a/clang/test/CodeGen/PR44896.ll b/clang/test/CodeGen/PR44896.ll
new file mode 100644
index 0000000..a4d3445
--- /dev/null
+++ b/clang/test/CodeGen/PR44896.ll
@@ -0,0 +1,15 @@
+; RUN: %clang -fdiscard-value-names -S %s -o /dev/null 2>&1 | FileCheck --check-prefix=WARNING %s
+; RUN: %clang -S %s -o /dev/null 2>&1 | FileCheck --check-prefix=NOWARNING %s
+; RUN: %clang_cc1 -S -emit-llvm %s -discard-value-names -o /dev/null
+; PR 44896
+
+; WARNING: ignoring -fdiscard-value-names for LLVM Bitcode
+; NOWARNING-NOT: ignoring -fdiscard-value-names for LLVM Bitcode
+
+target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
+target triple = "x86_64--linux-gnu"
+
+define linkonce i8* @b(i8* %a) {
+ ret i8* %a
+}
+
--
1.8.3.1

42
0002-gtest-reorg.patch Normal file
View File

@ -0,0 +1,42 @@
From 1f26a0284925859b72ee520ce74452d77d822409 Mon Sep 17 00:00:00 2001
From: serge-sans-paille <sguelton@redhat.com>
Date: Mon, 28 Jan 2019 19:12:27 +0000
Subject: [PATCH 2/2] [PATCH] gtest reorg
---
CMakeLists.txt | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c2016a45ca..48ea3c3bb9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -157,12 +157,6 @@ Please install Python or specify the PYTHON_EXECUTABLE CMake variable.")
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
@@ -507,7 +501,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
--
2.19.2

View File

@ -1,9 +0,0 @@
#include <bits/wordsize.h>
#if __WORDSIZE == 32
#include "config-32.h"
#elif __WORDSIZE == 64
#include "config-64.h"
#else
#error "Unknown word size"
#endif

View File

@ -1,30 +1,58 @@
%global maj_ver 6
%global compat_build 0
%global maj_ver 10
%global min_ver 0
%global patch_ver 1
%global patch_ver 0
#%%global rc_ver 6
%global baserelease 1
%global clang_tools_binaries \
%{_bindir}/clangd \
%{_bindir}/clang-apply-replacements \
%{_bindir}/clang-change-namespace \
%{_bindir}/clang-check \
%{_bindir}/clang-doc \
%{_bindir}/clang-extdef-mapping \
%{_bindir}/clang-format \
%{_bindir}/clang-import-test \
%{_bindir}/clang-include-fixer \
%{_bindir}/clang-move \
%{_bindir}/clang-offload-bundler \
%{_bindir}/clang-offload-wrapper \
%{_bindir}/clang-query \
%{_bindir}/clang-refactor \
%{_bindir}/clang-reorder-fields \
%{_bindir}/clang-rename \
%{_bindir}/clang-tidy
%{_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}.%{min_ver} \
%{_bindir}/clang++-%{maj_ver}.%{min_ver} \
%{_bindir}/clang-check \
%{_bindir}/clang-%{maj_ver} \
%{_bindir}/clang++-%{maj_ver} \
%{_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
%global install_prefix /usr
%endif
%if 0%{?fedora} || 0%{?rhel} > 7
%bcond_without python3
@ -32,35 +60,67 @@
%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
%global build_install_prefix %{buildroot}%{install_prefix}
Name: clang
%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}
Release: 1%{?dist}
Release: %{baserelease}%{?rc_ver:.rc%{rc_ver}}%{?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
Source1: http://llvm.org/releases/%{version}/%{clang_tools_srcdir}.tar.xz
Source2: http://llvm.org/releases/%{version}/%{test_suite_srcdir}.tar.xz
%if 0%{?rc_ver:1}
Source0: https://prereleases.llvm.org/%{version}/rc%{rc_ver}/%{clang_srcdir}.tar.xz
Source3: https://prereleases.llvm.org/%{version}/rc%{rc_ver}/%{clang_srcdir}.tar.xz.sig
%else
Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/%{clang_srcdir}.tar.xz
Source3: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/%{clang_srcdir}.tar.xz.sig
%endif
%if !0%{?compat_build}
%if 0%{?rc_ver:1}
Source1: https://prereleases.llvm.org/%{version}/rc%{rc_ver}/%{clang_tools_srcdir}.tar.xz
Source2: https://prereleases.llvm.org/%{version}/rc%{rc_ver}/%{clang_tools_srcdir}.tar.xz.sig
%else
Source1: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/%{clang_tools_srcdir}.tar.xz
Source2: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/%{clang_tools_srcdir}.tar.xz.sig
%endif
%endif
Source4: https://prereleases.llvm.org/%{version}/hans-gpg-key.asc
Source100: clang-config.h
Patch4: 0002-gtest-reorg.patch
Patch11: 0001-ToolChain-Add-lgcc_s-to-the-linker-flags-when-using-.patch
Patch13: 0001-Make-funwind-tables-the-default-for-all-archs.patch
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
# Not Upstream
Patch15: 0001-clang-Don-t-install-static-libraries.patch
BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: cmake
BuildRequires: ninja-build
%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: libxml2-devel
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: perl-generators
BuildRequires: ncurses-devel
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
@ -68,20 +128,18 @@ 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
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: python3-sphinx
BuildRequires: libatomic
BuildRequires: zlib-devel
BuildRequires: tcl
BuildRequires: python2-virtualenv
BuildRequires: libstdc++-static
BuildRequires: python3-sphinx
# We need python3-devel for pathfix.py.
BuildRequires: python3-devel
# Needed for %%multilib_fix_c_header
BuildRequires: multilib-rpm-config
BuildRequires: chrpath
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
@ -91,9 +149,12 @@ Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Requires: libstdc++-devel
Requires: gcc-c++
Requires: emacs-filesystem
Requires: emacs-filesystem
Provides: clang(major) = %{maj_ver}
Provides: clang(major) = %{maj_ver}
Conflicts: compiler-rt < %{version}
Conflicts: compiler-rt > %{version}
%description
clang: noun
@ -107,29 +168,33 @@ as libraries and designed to be loosely-coupled and extensible.
%package libs
Summary: Runtime library for clang
Recommends: compiler-rt%{?_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.
Summary: Development header files for clang
%if !0%{?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.
%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
@ -138,45 +203,64 @@ 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
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
# 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: clang-format integration for git
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: git
Requires: python2
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 python2-clang
Summary: Python2 bindings for clang
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Requires: python2
%description -n python2-clang
%package -n python3-clang
Summary: Python3 bindings for clang
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Requires: python3
%description -n python3-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}
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}
%patch0 -p1 -b .lit-search-path
%patch1 -p1 -b .fstack-clash-protection
%patch2 -p1 -b .vendor-gcc
%patch4 -p1 -b .gtest
%patch11 -p1 -b .libcxx-fix
%patch13 -p2 -b .unwind-all
%patch15 -p2 -b .no-install-static
mv ../%{clang_tools_srcdir} tools/extra
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
%if 0%{?__isa_bits} == 64
@ -188,51 +272,87 @@ sed -i 's/\@FEDORA_LLVM_LIB_SUFFIX\@//g' test/lit.cfg.py
mkdir -p _build
cd _build
%ifarch %{arm}
%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
%cmake .. \
# -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 \
-DLLVM_CONFIG:FILEPATH=/usr/bin/llvm-config-%{__isa_bits} \
-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 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
-DCLANG_INCLUDE_TESTS:BOOL=ON \
-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 !0%{compat_build}
-DLLVM_TABLEGEN_EXE:FILEPATH=%{_bindir}/llvm-tblgen \
%else
-DLLVM_TABLEGEN_EXE:FILEPATH=%{_bindir}/llvm-tblgen-%{maj_ver}.%{min_ver} \
%endif
-DCLANG_ENABLE_ARCMT:BOOL=ON \
-DCLANG_ENABLE_STATIC_ANALYZER:BOOL=ON \
-DCLANG_INCLUDE_DOCS:BOOL=ON \
-DCLANG_INCLUDE_TESTS: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 \
-DLLVM_EXTERNAL_LIT=%{python2_sitelib}/lit/main.py \
\
-DCLANG_BUILD_EXAMPLES:BOOL=OFF \
%if 0%{?__isa_bits} == 64
-DLLVM_LIBDIR_SUFFIX=64 \
%else
-DLLVM_LIBDIR_SUFFIX= \
%endif
-DLIB_SUFFIX=
-DBUILD_SHARED_LIBS=OFF \
-DCLANG_REPOSITORY_STRING="%{?fedora:Fedora}%{?rhel:Red Hat} %{version}-%{release}"
make %{?_smp_mflags}
%ninja_build
%install
make install DESTDIR=%{buildroot} -C _build
%ninja_install -C _build
sed -i -e 's~#!/usr/bin/env python~#!%{_bindir}/python2~' %{buildroot}%{_bindir}/git-clang-format
%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
# install clang python bindings
mkdir -p %{buildroot}%{python2_sitelib}/clang/
install -p -m644 bindings/python/clang/* %{buildroot}%{python2_sitelib}/clang/
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
mv -v %{buildroot}%{_includedir}/clang/Config/config{,-%{__isa_bits}}.h
install -m 0644 %{SOURCE100} %{buildroot}%{_includedir}/clang/Config/config.h
%multilib_fix_c_header --file %{_includedir}/clang/Config/config.h
# Move emacs integration files to the correct directory
mkdir -p %{buildroot}%{_emacs_sitestartdir}
@ -240,68 +360,83 @@ 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}
rm -Rvf %{buildroot}%{install_prefix}/share/clang/clang-doc-default-stylesheet.css
rm -Rvf %{buildroot}%{install_prefix}/share/clang/index.js
# 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}
# 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*
%check
# 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
%check
%if !0%{?compat_build}
# requires lit.py from LLVM utilities
# FIXME: Fix failing ARM tests, s390x i686 and ppc64le tests
# FIXME: Ignore test failures until rhbz#1715016 is fixed.
LD_LIBRARY_PATH=%{buildroot}%{_libdir} ninja check-all -C _build || \
%ifarch s390x i686 ppc64le %{arm}
:
%else
:
%endif
# 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*
%{_mandir}/man1/clang++.1.gz
%{_mandir}/man1/clang-%{maj_ver}.1.gz
%{_mandir}/man1/clang++-%{maj_ver}.1.gz
%endif
%files libs
%if !0%{?compat_build}
%{_libdir}/clang/
%{_libdir}/*.so.*
%{_libdir}/*.so
%else
%{pkg_libdir}/*.so.*
%{pkg_libdir}/clang/%{version}
%endif
%files devel
%if !0%{?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
%if !0%{?compat_build}
%files analyzer
%{_bindir}/scan-view
%{_bindir}/scan-build
%{_bindir}/scan-build
%{_libexecdir}/ccc-analyzer
%{_libexecdir}/c++-analyzer
%{_datadir}/scan-view/
@ -310,10 +445,15 @@ make %{?_smp_mflags} check || :
%files tools-extra
%{clang_tools_binaries}
%{_bindir}/c-index-test
%{_bindir}/find-all-symbols
%{_bindir}/modularize
%{_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*
@ -323,10 +463,220 @@ make %{?_smp_mflags} check || :
%files -n git-clang-format
%{_bindir}/git-clang-format
%files -n python2-clang
%{python2_sitelib}/clang/
%files -n python3-clang
%{python3_sitelib}/clang/
%endif
%changelog
* 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 <tstellar@redhat.com> - 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 <tstellar@redhat.com> - 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 <releng@fedoraproject.org> - 9.0.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Fri Jan 10 2020 Tom Stellard <tstellar@redhat.com> - 9.0.1-2
- Fix crash with kernel bpf self-tests
* Thu Dec 19 2019 Tom Stellard <tstellar@redhat.com> - 9.0.1-1
- 9.0.1 Release
* Wed Dec 11 2019 Tom Stellard <tstellar@redhat.com> - 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 <tstellar@redhat.com> - 9.0.0-1
- 9.0.0 Release
* Wed Sep 11 2019 Tom Stellard <tstellar@redhat.com> - 9.0.0-0.2.rc3
- Reduce debug info verbosity on ppc64le to avoid OOM errors in koji
* Thu Aug 22 2019 Tom Stellard <tstellar@redhat.com> - 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 <mhroncok@redhat.com> - 8.0.0-3.2
- Rebuilt for Python 3.8
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 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 <releng@fedoraproject.org> - 7.0.1-2.1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Wed Dec 19 2018 Tom Stellard <tstellar@redhat.com> - 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 <tstellar@redhat.com> - 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 <tstellar@redhat.com> - 7.0.0-5
- Run 'make check-all' instead of 'make check-clang'
* Mon Nov 19 2018 sergesanspaille <sguelton@redhat.com> - 7.0.0-4
- Avoid Python2 + Python3 dependency for clang-analyzer
* Mon Nov 05 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-3
- User helper macro to fixup config.h for multilib
* Tue Oct 02 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-2
- Use correct shebang substitution for python scripts
* Mon Sep 24 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-1
- 7.0.0 Release
* Wed Sep 19 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-0.16.rc3
- Move builtin headers into clang-libs sub-package
* Wed Sep 19 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-0.15.rc3
- Remove ambiguous python shebangs
* Thu Sep 13 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-0.14.rc3
- Move unversioned shared objects to devel package
* Thu Sep 13 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-0.13.rc3
- Rebuild with new llvm-devel that disables rpath on install
* Thu Sep 13 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-0.12.rc3
- Fix clang++-7 symlink
* Wed Sep 12 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-0.11.rc3
- 7.0.0-rc3 Release
* Mon Sep 10 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-0.10.rc2
- Drop siod from llvm-test-suite
* Fri Sep 07 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-0.9.rc2
- Drop python2 dependency from clang package
* Thu Sep 06 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-0.8.rc2
- Drop all uses of python2 from lit tests
* Sat Sep 01 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-0.7.rc2
- Add Fedora specific version string
* Tue Aug 28 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-0.6.rc2
- 7.0.0-rc2 Release
* Tue Aug 28 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-0.5.rc1
- Enable unit tests
* 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
* Wed Aug 15 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-0.2.rc1
- Rebuild for f30
* Mon Aug 13 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-0.1.rc1
- 7.0.0-rc1 Release
* Mon Jul 23 2018 Tom Stellard <tstellar@redhat.com> - 6.0.1-3
- Sync spec file with the clang6.0 package
* Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 6.0.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Tue Jun 26 2018 Tom Stellard <tstellar@redhat.com> - 6.0.1-1
- 6.0.1 Release

12
gating.yaml Normal file
View File

@ -0,0 +1,12 @@
--- !Policy
product_versions:
- fedora-*
decision_context: bodhi_update_push_testing
rules:
- !PassingTestCaseRule {test_case_name: org.centos.prod.ci.pipeline.allpackages-build.package.test.functional.complete}
--- !Policy
product_versions:
- fedora-*
decision_context: bodhi_update_push_stable
rules:
- !PassingTestCaseRule {test_case_name: org.centos.prod.ci.pipeline.allpackages-build.package.test.functional.complete}

52
hans-gpg-key.asc Normal file
View File

@ -0,0 +1,52 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
67H2IH//2sf8dw==
=ADVe
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -1,3 +1,4 @@
SHA512 (cfe-6.0.1.src.tar.xz) = f64ba9290059f6e36fee41c8f32bf483609d31c291fcd2f77d41fecfdf3c8233a5e23b93a1c73fed03683823bd6e72757ed993dd32527de3d5f2b7a64bb031b9
SHA512 (clang-tools-extra-6.0.1.src.tar.xz) = cf29d117b6dabcb7a8e5f6dab5016ce5a5c8f475679001a43fd5c935f2c368f37cdef50aae2080a1e4524f647f6d83458d4a5dec5b45d03fb374f463caf7c3f5
SHA512 (test-suite-6.0.1.src.tar.xz) = 32a4d00be14eff8209688427f2883a23a3a64403eb2daa0aa8aa940fcb05b4e546000d44896a0b9dd9225b5590cf61bc549c212db7ff1be29c274d08e2969fac
SHA512 (clang-10.0.0.src.tar.xz.sig) = cb46d9c616de9ba6e11602269f93a003fc24951b75844d2d62ad7c435bd9ace0357bf396141b9a3e97034f617ad8f301a1a5556a3feb94b17647f8b76c0b6236
SHA512 (clang-tools-extra-10.0.0.src.tar.xz.sig) = f0527b315ce9f2c86a19dabd462d0d466ac0843262f06d5f2b69333f77457ec9cb99f8ce9fdaa00048dfaec3de5613fb884c4259acd4a75463ba3c6714e35423
SHA512 (clang-tools-extra-10.0.0.src.tar.xz) = 33b6019e64e9ac94bd7c000b77a4a927602a2705baa9b370e392a56b53fe09c8dad1ff7d583892729e9eb291440433ad7d71df768a96d927e4dbc1988fc01d99
SHA512 (clang-10.0.0.src.tar.xz) = b1cccc13c46abcda3d689f51d486fa613ecec40c581c72d8b15951715100a2b8fb24370161601e6716cdba5a784337439e99ec2f0766f988e9cce92de6d775da

22
tests/tests-libomp.yml Normal file
View File

@ -0,0 +1,22 @@
- hosts: localhost
pre_tasks:
# We want to make sure libomp is not already present on the system to ensure
# that clang pulls in the correct libomp dependencies when it is installed.
- name: Uninstall libomp
package:
name: "{{ item }}"
state: absent
with_items:
- libomp
- libomp-devel
roles:
- role: standard-test-basic
tags:
- classic
repositories:
- repo: "https://src.fedoraproject.org/tests/clang.git"
dest: "clang"
required_packages:
- clang
tests:
- clang/libomp

View File

@ -5,8 +5,31 @@
- classic
required_packages:
- clang
- llvm-test-suite
- ninja-build
- gcc-x86_64-linux-gnu
# FIXME: It would be nice if we could only install dependencies for a
# single test rather than installing dependencies for all tests. This
# will help us catch bugs with implicit package dependencies e.g.
# package A depends on package B but does not have an explicit Requires.
# These are required for the llvm-toolchain test:
- clang
- lld
- compiler-rt
- libcxx-devel
- glibc-devel
- gcc
repositories:
- repo: "https://src.fedoraproject.org/tests/llvm-test-suite.git"
dest: "llvm-test-suite"
- repo: "https://src.fedoraproject.org/tests/clang.git"
dest: "clang"
tests:
- rhbz#482491:
dir: ./
run: echo "int main(){}" | clang -x c -
- llvm-test-suite/test-suite
- llvm-test-suite/abi-test-suite
- clang/rhbz_1657544
- clang/rhbz_1647130
- clang/llvm-toolchain

28
tests/testspocl.yml Normal file
View File

@ -0,0 +1,28 @@
# This is separate from tests.yml because we want to run the tests without
# clang installed.
# FIXME: Is there some way we can put this yaml definition in the tests/pocl
# repo? Right now we need to copy and paste this everywhere the test is run.
- hosts: localhost
pre_tasks:
# Programs linked against pocl should be able to run without clang installed,
# so when we run the test we want to make sure clang is not installed to
# verify we haven't introduced an implicit dependency on clang.
- name: Uninstall clang
package:
name: clang
state: absent
tags: classic
roles:
- role: standard-test-basic
tags:
- classic
repositories:
- repo: "https://src.fedoraproject.org/tests/pocl.git"
dest: "pocl"
required_packages:
- ocl-icd-devel
- pocl
- gcc
tests:
# rhbz#1582884
- pocl/simple-opencl-no-clang: