Unverified Commit d4bad6a3 authored by Dmitry Kalinkin's avatar Dmitry Kalinkin Committed by GitHub
Browse files

Merge pull request #147577 from veprbl/pr/lldb_89_darwin_fix

llvmPackages_{8,9}.lldb: fix darwin build
parents 23c46c81 de3d5787
Loading
Loading
Loading
Loading
+15 −2
Original line number Diff line number Diff line
@@ -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 = ''
+30 −0
Original line number Diff line number Diff line
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 <compression.h>
-#endif
-
 #if defined(HAVE_LIBZ)
 #include <zlib.h>
 #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 <compression.h>
-#endif
-
 using namespace lldb;
 using namespace lldb_private;
 using namespace lldb_private::process_gdb_remote;
+22 −1
Original line number Diff line number Diff line
{ lib, stdenv, llvm_meta
, fetch
, fetchpatch
, cmake
, zlib
, ncurses
@@ -13,6 +14,7 @@
, version
, darwin
, makeWrapper
, perl
, lit
}:

@@ -25,12 +27,27 @@ stdenv.mkDerivation rec {
  patches = [
    ./procfs.patch
    ./gnu-install-dirs.patch

    # Fix darwin build
    (fetchpatch {
      name = "lldb-use-system-debugserver-fix.patch";
      url = "https://github.com/llvm-mirror/lldb/commit/be770754cc43da22eacdb70c6203f4582eeb011f.diff";
      sha256 = "sha256-tKkk6sn//0Hu0nlzoKWs5fXMWc+O2JAWOEJ1ZnaLuVU=";
      excludes = [ "packages/*" ];
      postFetch = ''
        substituteInPlace "$out" --replace add_lldb_tool_subdirectory add_subdirectory
      '';
    })
    ./lldb-gdb-remote-no-libcompress.patch
  ];

  outputs = [ "out" "lib" "dev" ];

  nativeBuildInputs = [
    cmake python3 which swig lit makeWrapper
  ] ++ lib.optionals stdenv.isDarwin [
    # for scripts/generate-vers.pl
    perl
  ];

  buildInputs = [
@@ -42,6 +59,7 @@ stdenv.mkDerivation rec {
    darwin.bootstrap_cmds
    darwin.apple_sdk.frameworks.Carbon
    darwin.apple_sdk.frameworks.Cocoa
    darwin.apple_sdk.frameworks.DebugSymbols
  ];

  CXXFLAGS = "-fno-rtti";
@@ -52,6 +70,9 @@ stdenv.mkDerivation rec {
    "-DClang_DIR=${libclang.dev}/lib/cmake"
    "-DLLVM_EXTERNAL_LIT=${lit}/bin/lit"
    "-DLLDB_CODESIGN_IDENTITY=" # codesigning makes nondeterministic
  ] ++ lib.optionals stdenv.isDarwin [
    # Building debugserver requires the proprietary libcompression
    "-DLLDB_USE_SYSTEM_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 +101,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 = ''
+17 −0
Original line number Diff line number Diff line
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	2019-12-11 14:15:30.000000000 -0500
+++ b/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp	2021-11-26 23:44:28.000000000 -0500
@@ -36,13 +36,6 @@
 
 #include "llvm/ADT/StringSwitch.h"
 
-#if defined(__APPLE__)
-#ifndef HAVE_LIBCOMPRESSION
-#define HAVE_LIBCOMPRESSION
-#endif
-#include <compression.h>
-#endif
-
 using namespace lldb;
 using namespace lldb_private;
 using namespace lldb_private::process_gdb_remote;
+3 −0
Original line number Diff line number Diff line
@@ -18,4 +18,7 @@

  # Also expose CoreSymbolication; used by `root` package.
  CoreSymbolication = {};

  # Also expose DebugSymbols; used by `llvmPackages_8.lldb` package.
  DebugSymbols = {};
}
Loading