From de510f07b5fc00d4bb03ef89a9ee1bae4c7b8147 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Mon, 16 Sep 2019 08:44:03 +0000 Subject: [PATCH] build-llvm: Enable building LLDB --- build-llvm.sh | 13 ++++++++++--- strip-llvm.sh | 14 ++++++++++++-- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/build-llvm.sh b/build-llvm.sh index 856a54d..3ca992d 100755 --- a/build-llvm.sh +++ b/build-llvm.sh @@ -89,12 +89,13 @@ if [ -n "$HOST" ]; then CMAKEFLAGS="$CMAKEFLAGS -DCMAKE_C_COMPILER=$HOST-gcc" CMAKEFLAGS="$CMAKEFLAGS -DCMAKE_CXX_COMPILER=$HOST-g++" CMAKEFLAGS="$CMAKEFLAGS -DCMAKE_RC_COMPILER=$HOST-windres" - CMAKEFLAGS="$CMAKEFLAGS -DCROSS_TOOLCHAIN_FLAGS_NATIVE=" + CMAKEFLAGS="$CMAKEFLAGS -DCROSS_TOOLCHAIN_FLAGS_NATIVE=-DLLDB_DISABLE_LIBEDIT=ON;-DLLDB_DISABLE_PYTHON=ON;-DLLDB_DISABLE_CURSES=ON" native=$(find_native_tools) if [ -n "$native" ]; then CMAKEFLAGS="$CMAKEFLAGS -DLLVM_TABLEGEN=$native/llvm-tblgen" CMAKEFLAGS="$CMAKEFLAGS -DCLANG_TABLEGEN=$native/clang-tblgen" + CMAKEFLAGS="$CMAKEFLAGS -DLLDB_TABLEGEN=$native/lldb-tblgen" CMAKEFLAGS="$CMAKEFLAGS -DLLVM_CONFIG_PATH=$native/llvm-config" fi CROSS_ROOT=$(cd $(dirname $(which $HOST-gcc))/../$HOST && pwd) @@ -133,7 +134,7 @@ MINGW*) # path names are included, in assert messages), allowing ccache to speed # up compilation. cd tools - for p in clang lld; do + for p in clang lld lldb; do if [ ! -e $p ]; then ln -s ../../$p . fi @@ -144,16 +145,22 @@ esac mkdir -p $BUILDDIR cd $BUILDDIR +# Building LLDB for macOS fails unless building libc++ is enabled at the +# same time, or unless the LLDB tests are disabled. cmake \ ${CMAKE_GENERATOR+-G} "$CMAKE_GENERATOR" \ -DCMAKE_INSTALL_PREFIX="$PREFIX" \ -DCMAKE_BUILD_TYPE=Release \ -DLLVM_ENABLE_ASSERTIONS=$ASSERTS \ - ${EXPLICIT_PROJECTS+-DLLVM_ENABLE_PROJECTS="clang;lld"} \ + ${EXPLICIT_PROJECTS+-DLLVM_ENABLE_PROJECTS="clang;lld;lldb"} \ -DLLVM_TARGETS_TO_BUILD="ARM;AArch64;X86" \ -DLLVM_INSTALL_TOOLCHAIN_ONLY=$TOOLCHAIN_ONLY \ -DLLVM_TOOLCHAIN_TOOLS="llvm-ar;llvm-ranlib;llvm-objdump;llvm-rc;llvm-cvtres;llvm-nm;llvm-strings;llvm-readobj;llvm-dlltool;llvm-pdbutil;llvm-objcopy;llvm-strip;llvm-cov;llvm-profdata;llvm-addr2line;llvm-symbolizer" \ ${HOST+-DLLVM_HOST_TRIPLE=$HOST} \ + -DLLDB_DISABLE_LIBEDIT=ON \ + -DLLDB_DISABLE_PYTHON=ON \ + -DLLDB_DISABLE_CURSES=ON \ + -DLLDB_INCLUDE_TESTS=OFF \ $CMAKEFLAGS \ .. diff --git a/strip-llvm.sh b/strip-llvm.sh index fb895cb..3f1542a 100755 --- a/strip-llvm.sh +++ b/strip-llvm.sh @@ -38,7 +38,7 @@ MINGW*) esac cd bin -for i in bugpoint c-index-test clang-* diagtool dsymutil git-clang-format hmaptool ld64.lld llc lli llvm-* obj2yaml opt sancov sanstats scan-build scan-view verify-uselistorder wasm-ld yaml2obj libclang.dll LTO.dll *Remarks.dll *.bat; do +for i in bugpoint c-index-test clang-* diagtool dsymutil git-clang-format hmaptool ld64.lld llc lldb-* lli llvm-* obj2yaml opt sancov sanstats scan-build scan-view verify-uselistorder wasm-ld yaml2obj libclang.dll LTO.dll *Remarks.dll *.bat; do basename=$i if [ -n "$EXEEXT" ]; then # Some in the list are expanded globs, some are plain names we list. @@ -74,6 +74,8 @@ for i in bugpoint c-index-test clang-* diagtool dsymutil git-clang-format hmapto rm $i fi ;; + lldb|lldb-server) + ;; *) if [ -f $i ]; then rm $i @@ -106,5 +108,13 @@ cd include rm -rf clang clang-c lld llvm llvm-c cd .. cd lib -rm -rf lib*.a *.so* *.dylib* cmake +for i in lib*.a *.so* *.dylib* cmake; do + case $i in + liblldb*) + ;; + *) + rm -rf $i + ;; + esac +done cd ..