summaryrefslogtreecommitdiffstats
path: root/source/d/llvm
diff options
context:
space:
mode:
Diffstat (limited to 'source/d/llvm')
-rw-r--r--source/d/llvm/clang_disable_pgo.patch14
-rwxr-xr-xsource/d/llvm/llvm.SlackBuild22
-rw-r--r--source/d/llvm/n_clang_allow_BUILD_SHARED_LIBRARY.patch19
3 files changed, 34 insertions, 21 deletions
diff --git a/source/d/llvm/clang_disable_pgo.patch b/source/d/llvm/clang_disable_pgo.patch
deleted file mode 100644
index c3998798d..000000000
--- a/source/d/llvm/clang_disable_pgo.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- ./tools/clang/lib/CodeGen/CodeGenPGO.cpp.orig 2018-03-08 19:50:01.115345121 -0600
-+++ ./tools/clang/lib/CodeGen/CodeGenPGO.cpp 2018-03-08 19:52:24.016358481 -0600
-@@ -22,10 +22,7 @@
- #include "llvm/Support/FileSystem.h"
- #include "llvm/Support/MD5.h"
-
--static llvm::cl::opt<bool>
-- EnableValueProfiling("enable-value-profiling", llvm::cl::ZeroOrMore,
-- llvm::cl::desc("Enable value profiling"),
-- llvm::cl::Hidden, llvm::cl::init(false));
-+static bool EnableValueProfiling = false;
-
- using namespace clang;
- using namespace CodeGen;
diff --git a/source/d/llvm/llvm.SlackBuild b/source/d/llvm/llvm.SlackBuild
index 87428b381..591ed74db 100755
--- a/source/d/llvm/llvm.SlackBuild
+++ b/source/d/llvm/llvm.SlackBuild
@@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=llvm
VERSION=${VERSION:-$(echo llvm-*.tar.xz | rev | cut -f 4- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
NUMJOBS=${NUMJOBS:-" -j7 "}
@@ -114,9 +114,9 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-# disable value profiling until https://llvm.org/bugs/show_bug.cgi?id=30587
-# is fixed.
-zcat $CWD/clang_disable_pgo.patch.gz | patch -p1 --verbose || exit 1
+# Work around https://llvm.org/bugs/show_bug.cgi?id=30587
+# by building clang with shared libs
+zcat $CWD/n_clang_allow_BUILD_SHARED_LIBRARY.patch.gz | patch -p0 --verbose || exit 1
# need to disable assertions to make llvm thread-safe
# clang resource dir is a relative path based on the location of the clang binary
@@ -130,12 +130,14 @@ cd build
-DCMAKE_INSTALL_PREFIX=/usr \
-DLLVM_LIBDIR_SUFFIX=${LIBDIRSUFFIX} \
-DCMAKE_BUILD_TYPE=Release \
+ -DBUILD_SHARED_LIBS=OFF \
+ -DCLANG_BUILD_SHARED_LIBS=ON \
-DLLVM_BUILD_LLVM_DYLIB=ON \
- -DLLVM_DYLIB_EXPORT_ALL=ON \
-DLLVM_LINK_LLVM_DYLIB=ON \
-DLLVM_ENABLE_RTTI=ON \
-DLLVM_ENABLE_FFI=ON \
-DLLVM_ENABLE_ASSERTIONS=OFF \
+ -DLLVM_USE_OPROFILE=ON \
-DLLVM_BINUTILS_INCDIR=/usr/include \
-DCLANG_RESOURCE_DIR="../lib${LIBDIRSUFFIX}/clang/${VERSION}" \
.. || exit 1
@@ -163,8 +165,10 @@ done
rm -f $PKG/usr/lib$LIBDIRSUFFIX/libgomp.so
# Install Python bindings
-mkdir -p "$PKG/usr/lib$LIBDIRSUFFIX/python2.7/site-packages"
-cp -a tools/clang/bindings/python/clang "$PKG/usr/lib$LIBDIRSUFFIX/python2.7/site-packages/"
+for pyver in 2.7 3.6; do
+ mkdir -p "$PKG/usr/lib$LIBDIRSUFFIX/python$pyver/site-packages"
+ cp -a tools/clang/bindings/python/clang "$PKG/usr/lib$LIBDIRSUFFIX/python$pyver/site-packages/"
+done
# Remove bundled python-six
rm -f "$PKG/usr/lib$LIBDIRSUFFIX/python2.7/site-packages/six.py"
@@ -172,12 +176,16 @@ rm -f "$PKG/usr/lib$LIBDIRSUFFIX/python2.7/site-packages/six.py"
# Compile Python scripts
python -m compileall "$PKG/usr/lib$LIBDIRSUFFIX/python2.7/site-packages/clang"
python -O -m compileall "$PKG/usr/lib$LIBDIRSUFFIX/python2.7/site-packages/clang"
+python3 -m compileall "$PKG/usr/lib$LIBDIRSUFFIX/python3.6/site-packages/clang"
+python3 -O -m compileall "$PKG/usr/lib$LIBDIRSUFFIX/python3.6/site-packages/clang"
python -m compileall "$PKG/usr/lib$LIBDIRSUFFIX/python2.7/site-packages/lldb"
python -O -m compileall "$PKG/usr/lib$LIBDIRSUFFIX/python2.7/site-packages/lldb"
python -m compileall "$PKG/usr/share/scan-view"
python -O -m compileall "$PKG/usr/share/scan-view"
python -m compileall "$PKG/usr/share/clang"
python -O -m compileall "$PKG/usr/share/clang"
+python -m compileall "$PKG/usr/share/opt-viewer"
+python -O -m compileall "$PKG/usr/share/opt-viewer"
# Move man page directory:
mv $PKG/usr/share/man $PKG/usr/
diff --git a/source/d/llvm/n_clang_allow_BUILD_SHARED_LIBRARY.patch b/source/d/llvm/n_clang_allow_BUILD_SHARED_LIBRARY.patch
new file mode 100644
index 000000000..8e42aaee6
--- /dev/null
+++ b/source/d/llvm/n_clang_allow_BUILD_SHARED_LIBRARY.patch
@@ -0,0 +1,19 @@
+We use LLVM_BUILD_LLVM_DYLIB to build the llvm libraries as shared, but that
+does not work for clang. We can use BUILD_SHARED_LIBS on clang, but since we
+build them all together, we need to smuggle it in using this patch.
+
+Index: CMakeLists.txt
+===================================================================
+--- tools/clang/CMakeLists.txt
++++ tools/clang/CMakeLists.txt
+@@ -1,5 +1,10 @@
+ cmake_minimum_required(VERSION 3.4.3)
+
++if( CLANG_BUILD_SHARED_LIBS )
++ set(BUILD_SHARED_LIBS ON)
++ set(LLVM_BUILD_LLVM_DYLIB OFF)
++endif()
++
+ # If we are not building as a part of LLVM, build Clang as an
+ # standalone project, using LLVM as an external library:
+ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR )