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:
commit
d4bad6a35a
|
@ -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 = ''
|
||||
|
|
|
@ -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;
|
|
@ -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 = ''
|
||||
|
|
|
@ -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;
|
|
@ -18,4 +18,7 @@
|
|||
|
||||
# Also expose CoreSymbolication; used by `root` package.
|
||||
CoreSymbolication = {};
|
||||
|
||||
# Also expose DebugSymbols; used by `llvmPackages_8.lldb` package.
|
||||
DebugSymbols = {};
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue