Commit f3a60920 authored by Chaoting Liu's avatar Chaoting Liu

llvm/clang stack: update to 6.0.0 (see detail)

llvm now split to different packages

- llvm, llvm-libs (in dir llvm/): the main llvm lib and functional part
- lld: (dynamic) linker of llvm
- lldb: debugger of llvm
- compiler-rt: runtime compiler lib for clang to build and run
- clang: C/C++ compiler from llvm project

they should stay in same release version
the update sequence is:
(optional ocaml group->) llvm -> lld -> compiler-rt -> clang
parent 0e2a24cd
# $Id$
# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
pkgname=clang
pkgver=6.0.0
pkgrel=1
pkgdesc="C language family frontend for LLVM"
arch=('x86_64')
url="https://clang.llvm.org/"
license=('custom:University of Illinois/NCSA Open Source License')
depends=('llvm-libs' 'gcc' 'compiler-rt')
makedepends=('llvm' 'cmake' 'ninja' 'python3-sphinx')
optdepends=('openmp: OpenMP support in clang with -fopenmp'
'python: for git-clang-format'
'python2: for scan-view')
provides=("clang-analyzer=$pkgver" "clang-tools-extra=$pkgver")
conflicts=('clang-analyzer' 'clang-tools-extra')
replaces=('clang-analyzer' 'clang-tools-extra')
source=(https://releases.llvm.org/$pkgver/cfe-$pkgver.src.tar.xz{,.sig}
https://releases.llvm.org/$pkgver/clang-tools-extra-$pkgver.src.tar.xz{,.sig}
https://releases.llvm.org/$pkgver/llvm-$pkgver.src.tar.xz{,.sig}
enable-SSP-and-PIE-by-default.patch)
sha256sums=('e07d6dd8d9ef196cfc8e8bb131cbd6a2ed0b1caf1715f9d05b0f0eeaddb6df32'
'SKIP'
'053b424a4cd34c9335d8918734dd802a8da612d13a26bbb88fcdf524b2d989d2'
'SKIP'
'1ff53c915b4e761ef400b803f07261ade637b0c269d99569f18040f3dcee4408'
'SKIP'
'28d38b7f4bcaa0c974f8c48d732a0db309ea89ffa901c39de90725ae857946c1')
validpgpkeys+=('B6C8F98282B944E3B0D5C2530FC3042E345AD05D') # Hans Wennborg <hans@chromium.org>
validpgpkeys+=('11E521D646982372EB577A1F8F0871F202119294') # Tom Stellard <tom@stellard.net>
prepare() {
cd "$srcdir/cfe-$pkgver.src"
mkdir build
mv "$srcdir/clang-tools-extra-$pkgver.src" tools/extra
patch -Np1 -i ../enable-SSP-and-PIE-by-default.patch
}
build() {
cd "$srcdir/cfe-$pkgver.src/build"
cmake .. -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DPYTHON_EXECUTABLE=/usr/bin/python3 \
-DBUILD_SHARED_LIBS=ON \
-DLLVM_LINK_LLVM_DYLIB=ON \
-DLLVM_ENABLE_RTTI=ON \
-DLLVM_BUILD_TESTS=ON \
-DLLVM_INCLUDE_DOCS=ON \
-DLLVM_BUILD_DOCS=ON \
-DLLVM_ENABLE_SPHINX=ON \
-DSPHINX_WARNINGS_AS_ERRORS=OFF \
-DLLVM_EXTERNAL_LIT=/usr/bin/lit \
-DLLVM_MAIN_SRC_DIR="$srcdir/llvm-$pkgver.src"
ninja
}
check() {
cd "$srcdir/cfe-$pkgver.src/build"
ninja check-clang{,-tools}
}
_python2_optimize() {
python2 -m compileall "$@"
python2 -O -m compileall "$@"
}
_python3_optimize() {
python3 -m compileall "$@"
python3 -O -m compileall "$@"
python3 -OO -m compileall "$@"
}
package() {
cd "$srcdir/cfe-$pkgver.src/build"
DESTDIR="$pkgdir" ninja install
install -Dm644 ../LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
# Remove documentation sources
rm -r "$pkgdir"/usr/share/doc/clang{,-tools}/html/{_sources,.buildinfo}
# Move analyzer scripts out of /usr/libexec
mv "$pkgdir"/usr/libexec/{ccc,c++}-analyzer "$pkgdir/usr/lib/clang/"
rmdir "$pkgdir/usr/libexec"
sed -i 's|libexec|lib/clang|' "$pkgdir/usr/bin/scan-build"
# Install Python bindings
for _py in 2.7 3.6; do
install -d "$pkgdir/usr/lib/python$_py/site-packages"
cp -a ../bindings/python/clang "$pkgdir/usr/lib/python$_py/site-packages/"
_python${_py%%.*}_optimize "$pkgdir/usr/lib/python$_py"
done
# Fix shebang in Python 2 scripts
sed -i '1s|/usr/bin/env python$|&2|' \
"$pkgdir/usr/bin/scan-view" \
"$pkgdir"/usr/share/$pkgname/*.py
# Compile Python scripts
_python2_optimize "$pkgdir/usr/share"
}
# vim:set ts=2 sw=2 et:
This diff is collapsed.
# $Id$
# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
pkgname=compiler-rt
pkgver=6.0.0
pkgrel=1
pkgdesc="Compiler runtime libraries for clang"
arch=('x86_64')
url="https://compiler-rt.llvm.org/"
license=('custom:University of Illinois/NCSA Open Source License')
depends=('gcc-libs')
makedepends=('llvm' 'cmake' 'ninja' 'python')
# Build 32-bit compiler-rt libraries on x86_64 (FS#41911)
makedepends_x86_64=('lib32-gcc-libs')
options=('staticlibs')
source=(https://releases.llvm.org/$pkgver/$pkgname-$pkgver.src.tar.xz{,.sig})
sha256sums=('d0cc1342cf57e9a8d52f5498da47a3b28d24ac0d39cbc92308781b3ee0cea79a'
'SKIP')
validpgpkeys+=('B6C8F98282B944E3B0D5C2530FC3042E345AD05D') # Hans Wennborg <hans@chromium.org>
validpgpkeys+=('11E521D646982372EB577A1F8F0871F202119294') # Tom Stellard <tom@stellard.net>
prepare() {
cd "$srcdir/$pkgname-$pkgver.src"
mkdir build
}
build() {
cd "$srcdir/$pkgname-$pkgver.src/build"
cmake .. -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr
ninja
}
package() {
cd "$srcdir/$pkgname-$pkgver.src/build"
DESTDIR="$pkgdir" ninja install
install -Dm644 ../LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
mkdir -p "$pkgdir/usr/lib/clang/$pkgver/lib"
mv "$pkgdir"/usr/lib/{linux,clang/$pkgver/lib/}
mv "$pkgdir"/usr/{*.txt,lib/clang/$pkgver/}
}
# vim:set ts=2 sw=2 et:
# $Id$
# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
pkgname=lld
pkgver=6.0.0
pkgrel=1
pkgdesc="Linker from the LLVM project"
arch=('x86_64')
url="https://lld.llvm.org/"
license=('custom:University of Illinois/NCSA Open Source License')
depends=(llvm-libs=$pkgver)
makedepends=("llvm=$pkgver" 'cmake' 'ninja' 'python3-sphinx' 'gtest')
source=(https://releases.llvm.org/$pkgver/$pkgname-$pkgver.src.tar.xz{,.sig})
sha256sums=('6b8c4a833cf30230c0213d78dbac01af21387b298225de90ab56032ca79c0e0b'
'SKIP')
validpgpkeys+=('B6C8F98282B944E3B0D5C2530FC3042E345AD05D') # Hans Wennborg <hans@chromium.org>
validpgpkeys+=('11E521D646982372EB577A1F8F0871F202119294') # Tom Stellard <tom@stellard.net>
prepare() {
cd "$srcdir/$pkgname-$pkgver.src"
mkdir build
}
build() {
cd "$srcdir/$pkgname-$pkgver.src/build"
cmake .. -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DPYTHON_EXECUTABLE=/usr/bin/python3 \
-DBUILD_SHARED_LIBS=ON \
-DLLVM_LINK_LLVM_DYLIB=ON \
-DLLVM_INCLUDE_TESTS=ON \
-DLLVM_BUILD_TESTS=ON \
-DLLVM_BUILD_DOCS=ON \
-DLLVM_ENABLE_SPHINX=ON \
-DLLVM_EXTERNAL_LIT=/usr/bin/lit
ninja
}
check() {
cd "$srcdir/$pkgname-$pkgver.src/build"
if [[ -e /usr/bin/lld ]]; then
# TODO(foutrelis): tests use system lld if it exists; check if it's fixable
error "Cannot run the tests while lld is installed to the system"
return 1
fi
ninja check-lld
}
package() {
cd "$srcdir/$pkgname-$pkgver.src/build"
DESTDIR="$pkgdir" ninja install
install -Dm644 ../LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
# Remove documentation sources
rm -r "$pkgdir"/usr/share/doc/$pkgname/html/{_sources,.buildinfo}
}
# vim:set ts=2 sw=2 et:
# $Id$
# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
pkgname=lldb
pkgver=6.0.0
pkgrel=1
pkgdesc="Next generation, high-performance debugger"
arch=('x86_64')
url="https://lldb.llvm.org/"
license=('custom:University of Illinois/NCSA Open Source License')
depends=('llvm-libs' 'clang' 'python2' 'python2-six')
makedepends=('llvm' 'cmake' 'ninja' 'swig')
source=(https://releases.llvm.org/$pkgver/$pkgname-$pkgver.src.tar.xz{,.sig}
PR36630-install-lldb-SB-headers.patch
PR36687-fix-standalone-LLVM_LINK_LLVM_DYLIB-builds.patch)
sha256sums=('46f54c1d7adcd047d87c0179f7b6fa751614f339f4f87e60abceaa45f414d454'
'SKIP'
'5b765f7420bbf3fb4521a2f2022a40ba4f703ab555fe61e88a6d6617a6713921'
'1f146b2009553c6a5f76fa077b621fba66db5ef26c9790e9f64e608304d099e5')
validpgpkeys+=('B6C8F98282B944E3B0D5C2530FC3042E345AD05D') # Hans Wennborg <hans@chromium.org>
validpgpkeys+=('11E521D646982372EB577A1F8F0871F202119294') # Tom Stellard <tom@stellard.net>
prepare() {
cd "$srcdir/$pkgname-$pkgver.src"
mkdir build
# https://bugs.llvm.org/show_bug.cgi?id=36630
patch -Np1 -i ../PR36630-install-lldb-SB-headers.patch
# https://bugs.llvm.org/show_bug.cgi?id=36687
patch -Np1 -i ../PR36687-fix-standalone-LLVM_LINK_LLVM_DYLIB-builds.patch
}
build() {
cd "$srcdir/$pkgname-$pkgver.src/build"
cmake .. -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DPYTHON_EXECUTABLE=/usr/bin/python2 \
-DPYTHON_LIBRARY=/usr/lib/libpython2.7.so \
-DPYTHON_INCLUDE_DIR=/usr/include/python2.7 \
-DLLVM_LINK_LLVM_DYLIB=ON \
-DLLDB_USE_SYSTEM_SIX=1
ninja
}
package() {
cd "$srcdir/$pkgname-$pkgver.src/build"
DESTDIR="$pkgdir" ninja install
install -Dm644 ../LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
# Install possibly outdated man page; better than nothing!
install -Dm644 ../docs/lldb.1 "$pkgdir/usr/share/man/man1/lldb.1"
# Remove static libraries
rm "$pkgdir"/usr/lib/*.a
# Relocate custom readline.so module which links agaisnt libedit
mv "$pkgdir"/usr/lib/python2.7/site-packages/{,lldb/}readline.so
sed -i '2isys.path.insert(1, "/usr/lib/python2.7/site-packages/lldb")' \
"$pkgdir/usr/lib/python2.7/site-packages/lldb/embedded_interpreter.py"
# Compile Python scripts
python2 -m compileall "$pkgdir"
python2 -O -m compileall "$pkgdir"
}
# vim:set ts=2 sw=2 et:
From 8f577000b2fe2f5bf5d08e352a2f15f9421f9c82 Mon Sep 17 00:00:00 2001
From: Pavel Labath <labath@google.com>
Date: Thu, 8 Mar 2018 15:52:46 +0000
Subject: [PATCH] Install lldb's SB headers (pr36630)
These were removed in r309021 in what looks like an accidentally
committed change. This brings them back.
I also rename the header component to lldb-headers (instead of
lldb_headers) to match the llvm style and add a special
install-lldb-headers target, which installs just the headers.
git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@327016 91177308-0d34-0410-b5e6-96231b3b80d8
---
cmake/modules/LLDBConfig.cmake | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/cmake/modules/LLDBConfig.cmake b/cmake/modules/LLDBConfig.cmake
index 8f75880dfb..24878b5913 100644
--- a/cmake/modules/LLDBConfig.cmake
+++ b/cmake/modules/LLDBConfig.cmake
@@ -277,27 +277,31 @@ include_directories(BEFORE
if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
install(DIRECTORY include/
- COMPONENT lldb_headers
+ COMPONENT lldb-headers
DESTINATION include
FILES_MATCHING
PATTERN "*.h"
PATTERN ".svn" EXCLUDE
PATTERN ".cmake" EXCLUDE
PATTERN "Config.h" EXCLUDE
- PATTERN "lldb-*.h" EXCLUDE
- PATTERN "API/*.h" EXCLUDE
)
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/
- COMPONENT lldb_headers
+ COMPONENT lldb-headers
DESTINATION include
FILES_MATCHING
PATTERN "*.h"
PATTERN ".svn" EXCLUDE
PATTERN ".cmake" EXCLUDE
- PATTERN "lldb-*.h" EXCLUDE
- PATTERN "API/*.h" EXCLUDE
)
+
+ add_custom_target(lldb-headers)
+ set_target_properties(lldb-headers PROPERTIES FOLDER "Misc")
+
+ if (NOT CMAKE_CONFIGURATION_TYPES)
+ add_llvm_install_targets(install-lldb-headers
+ COMPONENT lldb-headers)
+ endif()
endif()
if (NOT LIBXML2_FOUND AND NOT (CMAKE_SYSTEM_NAME MATCHES "Windows"))
From 39c65fb3ea6ddbec92b32efa1a7fbd0fb299ce63 Mon Sep 17 00:00:00 2001
From: Pavel Labath <labath@google.com>
Date: Wed, 14 Mar 2018 10:08:21 +0000
Subject: [PATCH] [cmake] Fix standalone+LLVM_LINK_LLVM_DYLIB builds (pr36687)
Summary:
To make this build work, I needed to add detection code for the pthread
library. This is necessary, because we have direct calls to these
libraries (instead of going through llvm) and in the standalone build we
cannot rely on llvm to detect these for us. In a standalone non-dylib
build this was accidentaly working because these libraries were pulled
in as an interface dependency of the .a files, but in a dylib build
these are no longer part of the link interface, and so we need to add
them explicitly.
Reviewers: krytarowski, zturner
Subscribers: lldb-commits, mgorny
Differential Revision: https://reviews.llvm.org/D44379
git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@327490 91177308-0d34-0410-b5e6-96231b3b80d8
---
cmake/modules/LLDBConfig.cmake | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/cmake/modules/LLDBConfig.cmake b/cmake/modules/LLDBConfig.cmake
index 24878b5913..32effe7737 100644
--- a/cmake/modules/LLDBConfig.cmake
+++ b/cmake/modules/LLDBConfig.cmake
@@ -346,14 +346,18 @@ else()
endif()
-if (HAVE_LIBPTHREAD)
- list(APPEND system_libs pthread)
-endif(HAVE_LIBPTHREAD)
+if( WIN32 AND NOT CYGWIN )
+ set(PURE_WINDOWS 1)
+endif()
-if (HAVE_LIBDL)
- list(APPEND system_libs ${CMAKE_DL_LIBS})
+if(NOT PURE_WINDOWS)
+ set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
+ find_package(Threads REQUIRED)
+ list(APPEND system_libs ${CMAKE_THREAD_LIBS_INIT})
endif()
+list(APPEND system_libs ${CMAKE_DL_LIBS})
+
# Figure out if lldb could use lldb-server. If so, then we'll
# ensure we build lldb-server when an lldb target is being built.
if (CMAKE_SYSTEM_NAME MATCHES "Android|Darwin|FreeBSD|Linux|NetBSD")
From 4d613a84ce271c6225068bef67d727ae02b2e3b1 Mon Sep 17 00:00:00 2001
From: Pavel Labath <labath@google.com>
Date: Wed, 14 Mar 2018 09:28:38 +0000
Subject: [PATCH] Export LLVM_DYLIB_COMPONENTS in LLVMConfig.cmake
Summary:
This is needed so that external projects (e.g. a standalone build of
lldb) can link to the LLVM shared library via the USE_SHARED argument of
llvm_config. Without this, llvm_config would add LLVM to the link list,
but then also add the constituent static libraries, resulting in
multiply defined symbols.
Reviewers: beanz, mgorny
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D44391
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327484 91177308-0d34-0410-b5e6-96231b3b80d8
---
cmake/modules/LLVMConfig.cmake.in | 2 ++
1 file changed, 2 insertions(+)
diff --git a/cmake/modules/LLVMConfig.cmake.in b/cmake/modules/LLVMConfig.cmake.in
index fe4df5278498..e70018679846 100644
--- a/cmake/modules/LLVMConfig.cmake.in
+++ b/cmake/modules/LLVMConfig.cmake.in
@@ -13,6 +13,8 @@ set(LLVM_COMMON_DEPENDS @LLVM_COMMON_DEPENDS@)
set(LLVM_AVAILABLE_LIBS @LLVM_AVAILABLE_LIBS@)
+set(LLVM_DYLIB_COMPONENTS @LLVM_DYLIB_COMPONENTS@)
+
set(LLVM_ALL_TARGETS @LLVM_ALL_TARGETS@)
set(LLVM_TARGETS_TO_BUILD @LLVM_TARGETS_TO_BUILD@)
Index: cmake/modules/LLVM-Config.cmake
===================================================================
--- cmake/modules/LLVM-Config.cmake
+++ cmake/modules/LLVM-Config.cmake
@@ -68,7 +68,7 @@
cmake_parse_arguments(ARG "USE_SHARED" "" "" ${ARGN})
set(link_components ${ARG_UNPARSED_ARGUMENTS})
- if(USE_SHARED)
+ if(ARG_USE_SHARED)
# If USE_SHARED is specified, then we link against libLLVM,
# but also against the component libraries below. This is
# done in case libLLVM does not contain all of the components
This diff is collapsed.
From 7c9054610e354340f9474dcd13a927f929912d1d Mon Sep 17 00:00:00 2001
From: Eugene Zelenko <eugene.zelenko@gmail.com>
Date: Tue, 6 Mar 2018 23:06:13 +0000
Subject: [PATCH] [Transforms] Add missing header for InstructionCombining.cpp,
in order to export LLVMInitializeInstCombine as extern "C". Fixes PR35947.
Patch by Brenton Bostick.
Differential revision: https://reviews.llvm.org/D44140
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@326843 91177308-0d34-0410-b5e6-96231b3b80d8
---
lib/Transforms/InstCombine/InstructionCombining.cpp | 1 +
1 file changed, 1 insertion(+)
diff --git a/lib/Transforms/InstCombine/InstructionCombining.cpp b/lib/Transforms/InstCombine/InstructionCombining.cpp
index a3b2fe9e5d22..7ec73433e8f6 100644
--- a/lib/Transforms/InstCombine/InstructionCombining.cpp
+++ b/lib/Transforms/InstCombine/InstructionCombining.cpp
@@ -34,6 +34,7 @@
//===----------------------------------------------------------------------===//
#include "InstCombineInternal.h"
+#include "llvm-c/Initialization.h"
#include "llvm/ADT/APInt.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DenseMap.h"
From 866cf8f3afa0224e31d36ca0351ac5cb0d303757 Mon Sep 17 00:00:00 2001
From: Bjorn Pettersson <bjorn.a.pettersson@ericsson.com>
Date: Tue, 6 Mar 2018 13:23:28 +0000
Subject: [PATCH] Fixup for rL326769 (RegState::Debug is being truncated to a
bool)
I obviously messed up arguments to MachineOperand::CreateReg
in rL326769. This should make it work as intended.
Thanks to RKSimon for spotting this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@326780 91177308-0d34-0410-b5e6-96231b3b80d8
---
lib/CodeGen/LiveDebugVariables.cpp | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/lib/CodeGen/LiveDebugVariables.cpp b/lib/CodeGen/LiveDebugVariables.cpp
index f3fcd004defd..8c547cdcff33 100644
--- a/lib/CodeGen/LiveDebugVariables.cpp
+++ b/lib/CodeGen/LiveDebugVariables.cpp
@@ -557,8 +557,11 @@ bool LDVImpl::handleDebugValue(MachineInstr &MI, SlotIndex Idx) {
getUserValue(Var, Expr, MI.getDebugLoc());
if (!Discard)
UV->addDef(Idx, MI.getOperand(0), IsIndirect);
- else
- UV->addDef(Idx, MachineOperand::CreateReg(0U, RegState::Debug), false);
+ else {
+ MachineOperand MO = MachineOperand::CreateReg(0U, false);
+ MO.setIsDebug();
+ UV->addDef(Idx, MO, false);
+ }
return true;
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment