3
0
Fork 0
forked from mirrors/nixpkgs

Merge pull request #147577 from veprbl/pr/lldb_89_darwin_fix

llvmPackages_{8,9}.lldb: fix darwin build
This commit is contained in:
Dmitry Kalinkin 2023-01-03 05:29:24 -05:00 committed by GitHub
commit d4bad6a35a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 88 additions and 4 deletions

View file

@ -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 = ''

View file

@ -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 <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;

View file

@ -1,5 +1,6 @@
{ 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 = ''

View file

@ -0,0 +1,17 @@
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;

View file

@ -18,4 +18,7 @@
# Also expose CoreSymbolication; used by `root` package.
CoreSymbolication = {};
# Also expose DebugSymbols; used by `llvmPackages_8.lldb` package.
DebugSymbols = {};
}

View file

@ -326,7 +326,7 @@ in rec {
"Versions/A/Frameworks/WebKitLegacy.framework/Versions/A/WebKitLegacy.tbd"
];
});
} // lib.genAttrs [ "ContactsPersistence" "CoreSymbolication" "GameCenter" "SkyLight" "UIFoundation" ] (x: tbdOnlyFramework x {});
} // lib.genAttrs [ "ContactsPersistence" "CoreSymbolication" "DebugSymbols" "GameCenter" "SkyLight" "UIFoundation" ] (x: tbdOnlyFramework x {});
bareFrameworks = lib.mapAttrs framework (import ./frameworks.nix {
inherit frameworks libs;