diff --git a/pkgs/development/compilers/llvm/8/lldb/default.nix b/pkgs/development/compilers/llvm/8/lldb/default.nix index f6d77d0b00f4..361221154298 100644 --- a/pkgs/development/compilers/llvm/8/lldb/default.nix +++ b/pkgs/development/compilers/llvm/8/lldb/default.nix @@ -23,6 +23,9 @@ stdenv.mkDerivation rec { patches = [ ./gnu-install-dirs.patch + + # Fix darwin build + ./lldb-gdb-remote-no-libcompress.patch ]; postPatch = '' @@ -33,6 +36,9 @@ stdenv.mkDerivation rec { cmake/modules/LLDBStandalone.cmake sed -i 's,"$.LLVM_LIBRARY_DIR.",${libllvm.lib}/lib ${libclang.lib}/lib,' \ cmake/modules/LLDBStandalone.cmake + + substituteInPlace tools/CMakeLists.txt \ + --replace "add_subdirectory(debugserver)" "" ''; outputs = [ "out" "lib" "dev" ]; @@ -46,7 +52,11 @@ stdenv.mkDerivation rec { ] ++ lib.optionals stdenv.isDarwin [ darwin.libobjc darwin.apple_sdk.libs.xpc - darwin.apple_sdk.frameworks.Foundation darwin.bootstrap_cmds darwin.apple_sdk.frameworks.Carbon darwin.apple_sdk.frameworks.Cocoa + darwin.apple_sdk.frameworks.Foundation + darwin.bootstrap_cmds + darwin.apple_sdk.frameworks.Carbon + darwin.apple_sdk.frameworks.Cocoa + darwin.apple_sdk.frameworks.DebugSymbols ]; CXXFLAGS = "-fno-rtti"; @@ -55,6 +65,9 @@ stdenv.mkDerivation rec { cmakeFlags = [ "-DLLDB_INCLUDE_TESTS=${if doCheck then "YES" else "NO"}" "-DLLDB_CODESIGN_IDENTITY=" # codesigning makes nondeterministic + ] ++ lib.optionals stdenv.isDarwin [ + # Building debugserver requires the proprietary libcompression + "-DLLDB_NO_DEBUGSERVER=ON" ] ++ lib.optionals doCheck [ "-DLLDB_TEST_C_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc" "-DLLDB_TEST_CXX_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++" @@ -80,7 +93,7 @@ stdenv.mkDerivation rec { ''; meta = llvm_meta // { - broken = stdenv.isDarwin; + broken = stdenv.isDarwin && stdenv.isAarch64; homepage = "https://lldb.llvm.org/"; description = "A next-generation high-performance debugger"; longDescription = '' diff --git a/pkgs/development/compilers/llvm/8/lldb/lldb-gdb-remote-no-libcompress.patch b/pkgs/development/compilers/llvm/8/lldb/lldb-gdb-remote-no-libcompress.patch new file mode 100644 index 000000000000..e04d4ffb1060 --- /dev/null +++ b/pkgs/development/compilers/llvm/8/lldb/lldb-gdb-remote-no-libcompress.patch @@ -0,0 +1,30 @@ +diff -ru a/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp b/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp +--- a/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp 2019-01-09 19:46:09.000000000 -0500 ++++ b/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp 2021-11-27 00:23:08.000000000 -0500 +@@ -42,11 +42,6 @@ + #define DEBUGSERVER_BASENAME "lldb-server" + #endif + +-#if defined(__APPLE__) +-#define HAVE_LIBCOMPRESSION +-#include +-#endif +- + #if defined(HAVE_LIBZ) + #include + #endif +diff -ru a/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp b/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp +--- a/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp 2018-12-18 18:02:50.000000000 -0500 ++++ b/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp 2021-11-27 00:09:07.000000000 -0500 +@@ -37,11 +37,6 @@ + + #include "llvm/ADT/StringSwitch.h" + +-#if defined(__APPLE__) +-#define HAVE_LIBCOMPRESSION +-#include +-#endif +- + using namespace lldb; + using namespace lldb_private; + using namespace lldb_private::process_gdb_remote;