init clang
This commit is contained in:
parent
96d6022320
commit
8387785c74
@ -0,0 +1,52 @@
|
|||||||
|
From a1bccf89a02accab69b359ef004faa95257333c0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tom Stellard <tstellar@redhat.com>
|
||||||
|
Date: Fri, 7 Sep 2018 18:27:16 +0000
|
||||||
|
Subject: [PATCH] Convert clang-format-diff.py to python3 using 2to3
|
||||||
|
|
||||||
|
---
|
||||||
|
tools/clang-format/clang-format-diff.py | 10 +++++-----
|
||||||
|
1 file changed, 5 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/tools/clang-format/clang-format-diff.py b/tools/clang-format/clang-format-diff.py
|
||||||
|
index ffa30e70dd..1525a3815c 100755
|
||||||
|
--- a/tools/clang-format/clang-format-diff.py
|
||||||
|
+++ b/tools/clang-format/clang-format-diff.py
|
||||||
|
@@ -1,4 +1,4 @@
|
||||||
|
-#!/usr/bin/env python
|
||||||
|
+#!/usr/bin/python3
|
||||||
|
#
|
||||||
|
#===- clang-format-diff.py - ClangFormat Diff Reformatter ----*- python -*--===#
|
||||||
|
#
|
||||||
|
@@ -27,7 +27,7 @@ import difflib
|
||||||
|
import re
|
||||||
|
import string
|
||||||
|
import subprocess
|
||||||
|
-import StringIO
|
||||||
|
+import io
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
@@ -89,9 +89,9 @@ def main():
|
||||||
|
['-lines', str(start_line) + ':' + str(end_line)])
|
||||||
|
|
||||||
|
# Reformat files containing changes in place.
|
||||||
|
- for filename, lines in lines_by_file.iteritems():
|
||||||
|
+ for filename, lines in lines_by_file.items():
|
||||||
|
if args.i and args.verbose:
|
||||||
|
- print 'Formatting', filename
|
||||||
|
+ print('Formatting', filename)
|
||||||
|
command = [args.binary, filename]
|
||||||
|
if args.i:
|
||||||
|
command.append('-i')
|
||||||
|
@@ -109,7 +109,7 @@ def main():
|
||||||
|
if not args.i:
|
||||||
|
with open(filename) as f:
|
||||||
|
code = f.readlines()
|
||||||
|
- formatted_code = StringIO.StringIO(stdout).readlines()
|
||||||
|
+ formatted_code = io.StringIO(stdout).readlines()
|
||||||
|
diff = difflib.unified_diff(code, formatted_code,
|
||||||
|
filename, filename,
|
||||||
|
'(before formatting)', '(after formatting)')
|
||||||
|
--
|
||||||
|
2.14.3
|
||||||
|
|
||||||
93
0001-Convert-scan-view-to-python3-using-2to3.patch
Normal file
93
0001-Convert-scan-view-to-python3-using-2to3.patch
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
From c760f8d703af0c67774681b5a259d5dd3a1e5a77 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tom Stellard <tstellar@redhat.com>
|
||||||
|
Date: Wed, 19 Sep 2018 08:53:10 -0700
|
||||||
|
Subject: [PATCH] Convert scan-view to python3 using 2to3
|
||||||
|
|
||||||
|
---
|
||||||
|
tools/scan-view/bin/scan-view | 24 ++++++++++++------------
|
||||||
|
1 file changed, 12 insertions(+), 12 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/tools/scan-view/bin/scan-view b/tools/scan-view/bin/scan-view
|
||||||
|
index 1b6e8ba..ca3dac5 100755
|
||||||
|
--- a/tools/scan-view/bin/scan-view
|
||||||
|
+++ b/tools/scan-view/bin/scan-view
|
||||||
|
@@ -7,9 +7,9 @@ import sys
|
||||||
|
import imp
|
||||||
|
import os
|
||||||
|
import posixpath
|
||||||
|
-import thread
|
||||||
|
+import _thread
|
||||||
|
import time
|
||||||
|
-import urllib
|
||||||
|
+import urllib.request, urllib.parse, urllib.error
|
||||||
|
import webbrowser
|
||||||
|
|
||||||
|
# How long to wait for server to start.
|
||||||
|
@@ -27,7 +27,7 @@ kMaxPortsToTry = 100
|
||||||
|
|
||||||
|
def url_is_up(url):
|
||||||
|
try:
|
||||||
|
- o = urllib.urlopen(url)
|
||||||
|
+ o = urllib.request.urlopen(url)
|
||||||
|
except IOError:
|
||||||
|
return False
|
||||||
|
o.close()
|
||||||
|
@@ -35,7 +35,7 @@ def url_is_up(url):
|
||||||
|
|
||||||
|
|
||||||
|
def start_browser(port, options):
|
||||||
|
- import urllib
|
||||||
|
+ import urllib.request, urllib.parse, urllib.error
|
||||||
|
import webbrowser
|
||||||
|
|
||||||
|
url = 'http://%s:%d' % (options.host, port)
|
||||||
|
@@ -52,10 +52,10 @@ def start_browser(port, options):
|
||||||
|
sys.stderr.flush()
|
||||||
|
time.sleep(kSleepTimeout)
|
||||||
|
else:
|
||||||
|
- print >> sys.stderr, 'WARNING: Unable to detect that server started.'
|
||||||
|
+ print('WARNING: Unable to detect that server started.', file=sys.stderr)
|
||||||
|
|
||||||
|
if options.debug:
|
||||||
|
- print >> sys.stderr, '%s: Starting webbrowser...' % sys.argv[0]
|
||||||
|
+ print('%s: Starting webbrowser...' % sys.argv[0], file=sys.stderr)
|
||||||
|
webbrowser.open(url)
|
||||||
|
|
||||||
|
|
||||||
|
@@ -69,9 +69,9 @@ def run(port, options, root):
|
||||||
|
|
||||||
|
import ScanView
|
||||||
|
try:
|
||||||
|
- print 'Starting scan-view at: http://%s:%d' % (options.host,
|
||||||
|
- port)
|
||||||
|
- print ' Use Ctrl-C to exit.'
|
||||||
|
+ print('Starting scan-view at: http://%s:%d' % (options.host,
|
||||||
|
+ port))
|
||||||
|
+ print(' Use Ctrl-C to exit.')
|
||||||
|
httpd = ScanView.create_server((options.host, port),
|
||||||
|
options, root)
|
||||||
|
httpd.serve_forever()
|
||||||
|
@@ -80,9 +80,9 @@ def run(port, options, root):
|
||||||
|
|
||||||
|
|
||||||
|
def port_is_open(port):
|
||||||
|
- import SocketServer
|
||||||
|
+ import socketserver
|
||||||
|
try:
|
||||||
|
- t = SocketServer.TCPServer((kDefaultHost, port), None)
|
||||||
|
+ t = socketserver.TCPServer((kDefaultHost, port), None)
|
||||||
|
except:
|
||||||
|
return False
|
||||||
|
t.server_close()
|
||||||
|
@@ -135,7 +135,7 @@ def main():
|
||||||
|
# Kick off thread to wait for server and start web browser, if
|
||||||
|
# requested.
|
||||||
|
if args.startBrowser:
|
||||||
|
- t = thread.start_new_thread(start_browser, (port, args))
|
||||||
|
+ t = _thread.start_new_thread(start_browser, (port, args))
|
||||||
|
|
||||||
|
run(port, args, args.root)
|
||||||
|
|
||||||
|
--
|
||||||
|
1.8.3.1
|
||||||
|
|
||||||
24
0001-Don-t-prefer-python2.7.patch
Normal file
24
0001-Don-t-prefer-python2.7.patch
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
From d13bd5108e3471cc6f6203ba1c0c0e67323bbb12 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tom Stellard <tstellar@redhat.com>
|
||||||
|
Date: Wed, 5 Sep 2018 21:43:42 -0700
|
||||||
|
Subject: [PATCH] Don't prefer python2.7
|
||||||
|
|
||||||
|
---
|
||||||
|
CMakeLists.txt | 1 -
|
||||||
|
1 file changed, 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index 52b8819..6f233fd 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -109,7 +109,6 @@ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR )
|
||||||
|
set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX} )
|
||||||
|
|
||||||
|
if(LLVM_INCLUDE_TESTS)
|
||||||
|
- set(Python_ADDITIONAL_VERSIONS 2.7)
|
||||||
|
include(FindPythonInterp)
|
||||||
|
if(NOT PYTHONINTERP_FOUND)
|
||||||
|
message(FATAL_ERROR
|
||||||
|
--
|
||||||
|
1.8.3.1
|
||||||
|
|
||||||
120
0001-Driver-Prefer-vendor-supplied-gcc-toolchain.patch
Normal file
120
0001-Driver-Prefer-vendor-supplied-gcc-toolchain.patch
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
From d84a971ba917569829b51fff6057e5fd0d85e402 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 | 47 ++++++++++++++++++++++---------------------
|
||||||
|
1 file changed, 24 insertions(+), 23 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/lib/Driver/ToolChains/Gnu.cpp b/lib/Driver/ToolChains/Gnu.cpp
|
||||||
|
index 3755673..5a49a6e 100644
|
||||||
|
--- a/lib/Driver/ToolChains/Gnu.cpp
|
||||||
|
+++ b/lib/Driver/ToolChains/Gnu.cpp
|
||||||
|
@@ -1811,18 +1811,19 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
|
||||||
|
// lifetime or initialization issues.
|
||||||
|
static const char *const AArch64LibDirs[] = {"/lib64", "/lib"};
|
||||||
|
static const char *const AArch64Triples[] = {
|
||||||
|
- "aarch64-none-linux-gnu", "aarch64-linux-gnu", "aarch64-redhat-linux",
|
||||||
|
- "aarch64-suse-linux"};
|
||||||
|
+ "aarch64-redhat-linux", "aarch64-suse-linux",
|
||||||
|
+ "aarch64-none-linux-gnu", "aarch64-linux-gnu"};
|
||||||
|
static const char *const AArch64beLibDirs[] = {"/lib"};
|
||||||
|
static const char *const AArch64beTriples[] = {"aarch64_be-none-linux-gnu",
|
||||||
|
"aarch64_be-linux-gnu"};
|
||||||
|
|
||||||
|
static const char *const ARMLibDirs[] = {"/lib"};
|
||||||
|
static const char *const ARMTriples[] = {"arm-linux-gnueabi"};
|
||||||
|
- 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"};
|
||||||
|
static const char *const ARMebHFTriples[] = {
|
||||||
|
@@ -1830,19 +1831,19 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
|
||||||
|
|
||||||
|
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-unknown-linux",
|
||||||
|
- "x86_64-amazon-linux"};
|
||||||
|
+ "x86_64-redhat-linux6E", "x86_64-redhat-linux",
|
||||||
|
+ "x86_64-suse-linux", "x86_64-slackware-linux",
|
||||||
|
+ "x86_64-manbo-linux-gnu", "x86_64-amazon-linux",
|
||||||
|
+ "x86_64-linux-gnu", "x86_64-unknown-linux-gnu",
|
||||||
|
+ "x86_64-pc-linux-gnu", "x86_64-linux-gnu",
|
||||||
|
+ "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", "i586-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-gnu", "i686-pc-linux-gnu",
|
||||||
|
+ "i486-linux-gnu", "i386-linux-gnu", "i586-linux-gnu"};
|
||||||
|
|
||||||
|
static const char *const MIPSLibDirs[] = {"/lib"};
|
||||||
|
static const char *const MIPSTriples[] = {"mips-linux-gnu", "mips-mti-linux",
|
||||||
|
@@ -1864,16 +1865,16 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
|
||||||
|
|
||||||
|
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 RISCV32LibDirs[] = {"/lib", "/lib32"};
|
||||||
|
static const char *const RISCVTriples[] = {"riscv32-unknown-linux-gnu",
|
||||||
|
@@ -1889,8 +1890,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
|
||||||
|
|
||||||
|
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"};
|
||||||
|
|
||||||
|
|
||||||
|
using std::begin;
|
||||||
|
--
|
||||||
|
1.8.3.1
|
||||||
|
|
||||||
42
0001-GCC-compatibility-Ignore-fstack-clash-protection.patch
Normal file
42
0001-GCC-compatibility-Ignore-fstack-clash-protection.patch
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
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
|
||||||
|
|
||||||
42
0001-gtest-reorg.patch
Normal file
42
0001-gtest-reorg.patch
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
From 3b2afecc227d652f84f883d4018d43971de6a311 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tom Stellard <tstellar@redhat.com>
|
||||||
|
Date: Wed, 21 Mar 2018 07:17:00 -0700
|
||||||
|
Subject: [PATCH] gtest reorg
|
||||||
|
|
||||||
|
---
|
||||||
|
CMakeLists.txt | 12 +++++-------
|
||||||
|
1 file changed, 5 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index 2eee8e6..01d290f 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -142,12 +142,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
|
||||||
|
@@ -477,7 +471,11 @@ endif()
|
||||||
|
|
||||||
|
|
||||||
|
if( CLANG_INCLUDE_TESTS )
|
||||||
|
- if(EXISTS ${LLVM_MAIN_SRC_DIR}/utils/unittest/googletest/include/gtest/gtest.h)
|
||||||
|
+ set(UNITTEST_DIR ${LLVM_MAIN_SRC_DIR}/utils/unittest)
|
||||||
|
+ if(EXISTS ${UNITTEST_DIR}/googletest/include/gtest/gtest.h
|
||||||
|
+ AND NOT EXISTS ${LLVM_LIBRARY_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX}
|
||||||
|
+ AND EXISTS ${UNITTEST_DIR}/CMakeLists.txt)
|
||||||
|
+ add_subdirectory(${UNITTEST_DIR} utils/unittest)
|
||||||
|
add_subdirectory(unittests)
|
||||||
|
list(APPEND CLANG_TEST_DEPS ClangUnitTests)
|
||||||
|
list(APPEND CLANG_TEST_PARAMS
|
||||||
|
--
|
||||||
|
1.8.3.1
|
||||||
|
|
||||||
@ -0,0 +1,27 @@
|
|||||||
|
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
|
||||||
|
|
||||||
BIN
cfe-7.0.0.src.tar.xz
Normal file
BIN
cfe-7.0.0.src.tar.xz
Normal file
Binary file not shown.
9
clang-config.h
Normal file
9
clang-config.h
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
#include <bits/wordsize.h>
|
||||||
|
|
||||||
|
#if __WORDSIZE == 32
|
||||||
|
#include "config-32.h"
|
||||||
|
#elif __WORDSIZE == 64
|
||||||
|
#include "config-64.h"
|
||||||
|
#else
|
||||||
|
#error "Unknown word size"
|
||||||
|
#endif
|
||||||
BIN
clang-tools-extra-7.0.0.src.tar.xz
Normal file
BIN
clang-tools-extra-7.0.0.src.tar.xz
Normal file
Binary file not shown.
262
clang.spec
Normal file
262
clang.spec
Normal file
@ -0,0 +1,262 @@
|
|||||||
|
%global maj_ver 7
|
||||||
|
%global min_ver 0
|
||||||
|
%global patch_ver 0
|
||||||
|
|
||||||
|
%global clang_srcdir cfe-%{version}.src
|
||||||
|
%global clang_tools_srcdir clang-tools-extra-%{version}.src
|
||||||
|
|
||||||
|
Name: clang
|
||||||
|
Version: %{maj_ver}.%{min_ver}.%{patch_ver}
|
||||||
|
Release: 4
|
||||||
|
License: NCSA
|
||||||
|
Summary: An "LLVM native" C/C++/Objective-C compiler
|
||||||
|
URL: http://llvm.org
|
||||||
|
Source0: http://releases.llvm.org/%{version}/%{clang_srcdir}.tar.xz
|
||||||
|
Source1: http://llvm.org/releases/%{version}/%{clang_tools_srcdir}.tar.xz
|
||||||
|
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
|
||||||
|
Patch4: 0001-gtest-reorg.patch
|
||||||
|
Patch5: 0001-Don-t-prefer-python2.7.patch
|
||||||
|
Patch6: 0001-Convert-clang-format-diff.py-to-python3-using-2to3.patch
|
||||||
|
Patch7: 0001-Convert-scan-view-to-python3-using-2to3.patch
|
||||||
|
|
||||||
|
BuildRequires: cmake gcc-c++ python-sphinx git
|
||||||
|
BuildRequires: llvm-devel = %{version}
|
||||||
|
BuildRequires: llvm-static = %{version}
|
||||||
|
BuildRequires: llvm-googletest = %{version}
|
||||||
|
BuildRequires: libxml2-devel perl-generators ncurses-devel emacs libatomic
|
||||||
|
BuildRequires: python2-lit python3-lit python2-rpm-macros python3-sphinx python3-devel
|
||||||
|
|
||||||
|
Requires: libstdc++-devel gcc-c++ emacs-filesystem
|
||||||
|
provides: %{name}-libs
|
||||||
|
Obsoletes: %{name}-libs
|
||||||
|
Recommends: compiler-rt = %{version}
|
||||||
|
Recommends: libomp = %{version}
|
||||||
|
Provides: clang(major) = %{maj_ver}
|
||||||
|
|
||||||
|
%description
|
||||||
|
The Clang project provides a language front-end and tooling infrastructure for\
|
||||||
|
languages in the C language family (C, C++, Objective C/C++, OpenCL, CUDA, and\
|
||||||
|
RenderScript) for the LLVM project. Both a GCC-compatible compiler driver (clang)\
|
||||||
|
and an MSVC-compatible compiler driver (clang-cl.exe) are provided.\
|
||||||
|
|
||||||
|
%package devel
|
||||||
|
Summary: Development header files for clang.
|
||||||
|
Requires: %{name} = %{version}-%{release}
|
||||||
|
Requires: %{name}-tools-extra = %{version}-%{release}
|
||||||
|
|
||||||
|
%description devel
|
||||||
|
Development header files for clang.
|
||||||
|
|
||||||
|
%package help
|
||||||
|
Summary: Help manual for %{name}
|
||||||
|
|
||||||
|
%description help
|
||||||
|
The %{name}-help package conatins man manual etc
|
||||||
|
|
||||||
|
%package analyzer
|
||||||
|
Summary: A source code analysis framework
|
||||||
|
License: NCSA and MIT
|
||||||
|
BuildArch: noarch
|
||||||
|
Requires: %{name} = %{version}-%{release}
|
||||||
|
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 = %{version}-%{release}
|
||||||
|
Requires: emacs-filesystem
|
||||||
|
|
||||||
|
%description tools-extra
|
||||||
|
A set of extra tools built using Clang's tooling API.
|
||||||
|
|
||||||
|
%package -n git-clang-format
|
||||||
|
Summary: clang-format integration for git
|
||||||
|
Requires: %{name} = %{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 = %{version}-%{release}
|
||||||
|
Requires: python2
|
||||||
|
%description -n python2-clang
|
||||||
|
%{summary}.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -T -q -b 1 -n %{clang_tools_srcdir}
|
||||||
|
pathfix.py -i %{__python3} -pn \
|
||||||
|
clang-tidy/tool/*.py
|
||||||
|
pathfix.py -i %{__python2} -pn \
|
||||||
|
include-fixer/find-all-symbols/tool/run-find-all-symbols.py
|
||||||
|
|
||||||
|
%autosetup -n %{clang_srcdir} -p1 -Sgit
|
||||||
|
pathfix.py -i %{__python3} -pn \
|
||||||
|
tools/clang-format/*.py \
|
||||||
|
tools/clang-format/git-clang-format \
|
||||||
|
utils/hmaptool/hmaptool \
|
||||||
|
tools/scan-view/bin/scan-view
|
||||||
|
mv ../%{clang_tools_srcdir} tools/extra
|
||||||
|
|
||||||
|
%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}
|
||||||
|
%global optflags %(echo %{optflags} | sed 's/-g /-g1 /')
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%cmake .. \
|
||||||
|
-DLLVM_LINK_LLVM_DYLIB:BOOL=ON \
|
||||||
|
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||||
|
-DLLVM_CONFIG:FILEPATH=/usr/bin/llvm-config-%{__isa_bits} \
|
||||||
|
-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
|
||||||
|
\
|
||||||
|
-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 \
|
||||||
|
-DCLANG_REPOSITORY_STRING="%{_vendor} %{version}-%{release}" \
|
||||||
|
-DLIB_SUFFIX=
|
||||||
|
|
||||||
|
%make_build
|
||||||
|
|
||||||
|
%install
|
||||||
|
%make_install -C _build
|
||||||
|
|
||||||
|
mkdir -p %{buildroot}%{python2_sitelib}/clang/
|
||||||
|
install -p -m644 bindings/python/clang/* %{buildroot}%{python2_sitelib}/clang/
|
||||||
|
|
||||||
|
mv -v %{buildroot}%{_includedir}/clang/Config/config{,-%{__isa_bits}}.h
|
||||||
|
install -m 0644 %{SOURCE100} %{buildroot}%{_includedir}/clang/Config/config.h
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
rm -vf %{buildroot}%{_datadir}/clang/clang-format-bbedit.applescript
|
||||||
|
rm -vf %{buildroot}%{_datadir}/clang/clang-format-sublime.py*
|
||||||
|
|
||||||
|
rm -Rvf %{buildroot}%{_pkgdocdir}
|
||||||
|
|
||||||
|
rm -vf %{buildroot}%{_datadir}/clang/bash-autocomplete.sh
|
||||||
|
|
||||||
|
ln -s clang++ %{buildroot}%{_bindir}/clang++-%{maj_ver}
|
||||||
|
|
||||||
|
%check
|
||||||
|
cd _build
|
||||||
|
PATH=%{_libdir}/llvm:$PATH make %{?_smp_mflags} check-clang || \
|
||||||
|
%ifarch %{arm}
|
||||||
|
:
|
||||||
|
%else
|
||||||
|
false
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%files
|
||||||
|
%{_bindir}/clang
|
||||||
|
%{_bindir}/clang++
|
||||||
|
%{_bindir}/clang-%{maj_ver}
|
||||||
|
%{_bindir}/clang++-%{maj_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
|
||||||
|
%{_bindir}/diagtool
|
||||||
|
%{_bindir}/hmaptool
|
||||||
|
%{_bindir}/c-index-test
|
||||||
|
%{_emacs_sitestartdir}/clang-format.el
|
||||||
|
%{_datadir}/clang/clang-format.py*
|
||||||
|
%{_datadir}/clang/clang-format-diff.py*
|
||||||
|
%{_libdir}/clang/
|
||||||
|
%{_libdir}/*.so.*
|
||||||
|
|
||||||
|
%files devel
|
||||||
|
%{_libdir}/*.so
|
||||||
|
%{_includedir}/clang/
|
||||||
|
%{_includedir}/clang-c/
|
||||||
|
%{_libdir}/cmake/*
|
||||||
|
%dir %{_datadir}/clang/
|
||||||
|
|
||||||
|
%files help
|
||||||
|
%{_mandir}/man1/clang.1.gz
|
||||||
|
%{_mandir}/man1/diagtool.1.gz
|
||||||
|
|
||||||
|
%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
|
||||||
|
%{_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
|
||||||
|
%{_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/
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Tue Dec 17 2019 openEuler Buildteam <buildteam@openeuler.org> - 7.0.0-4
|
||||||
|
- Delete redundant info
|
||||||
|
|
||||||
|
* Mon Dec 9 2019 openEuler Buildteam <buildteam@openeuler.org> - 7.0.0-3
|
||||||
|
- Package init
|
||||||
Loading…
x
Reference in New Issue
Block a user