diff options
Diffstat (limited to 'source/d/llvm')
-rw-r--r-- | source/d/llvm/clang_disable_pgo.patch | 14 | ||||
-rwxr-xr-x | source/d/llvm/llvm.SlackBuild | 22 | ||||
-rw-r--r-- | source/d/llvm/n_clang_allow_BUILD_SHARED_LIBRARY.patch | 19 |
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 ) |