From 19a974945b823af31667569713784c8af23ad39d Mon Sep 17 00:00:00 2001 From: John Ericson Date: Wed, 24 Mar 2021 01:40:33 +0000 Subject: llvmPackages: Organize files Always do pkg/default.nix not pkg.nix; use directories to avoid prefixing patches and other files. --- pkgs/development/compilers/llvm/9/lldb/default.nix | 70 ++++++++++++++++++++++ .../development/compilers/llvm/9/lldb/procfs.patch | 31 ++++++++++ 2 files changed, 101 insertions(+) create mode 100644 pkgs/development/compilers/llvm/9/lldb/default.nix create mode 100644 pkgs/development/compilers/llvm/9/lldb/procfs.patch (limited to 'pkgs/development/compilers/llvm/9/lldb') diff --git a/pkgs/development/compilers/llvm/9/lldb/default.nix b/pkgs/development/compilers/llvm/9/lldb/default.nix new file mode 100644 index 00000000000..d75acf135f3 --- /dev/null +++ b/pkgs/development/compilers/llvm/9/lldb/default.nix @@ -0,0 +1,70 @@ +{ lib, stdenv +, fetch +, cmake +, zlib +, ncurses +, swig +, which +, libedit +, libxml2 +, llvm +, clang-unwrapped +, python3 +, version +, darwin +, lit +}: + +stdenv.mkDerivation rec { + pname = "lldb"; + inherit version; + + src = fetch pname "02gb3fbz09kyw8n71218v5v77ip559x3gqbcp8y3w6n3jpbryywa"; + + patches = [ ./procfs.patch ]; + + nativeBuildInputs = [ cmake python3 which swig lit ]; + buildInputs = [ + ncurses + zlib + libedit + libxml2 + llvm + ] + ++ 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 + ]; + + CXXFLAGS = "-fno-rtti"; + hardeningDisable = [ "format" ]; + + cmakeFlags = [ + "-DLLDB_CODESIGN_IDENTITY=" # codesigning makes nondeterministic + "-DClang_DIR=${clang-unwrapped}/lib/cmake" + "-DLLVM_EXTERNAL_LIT=${lit}/bin/lit" + ]; + + postInstall = '' + # man page + mkdir -p $out/share/man/man1 + install ../docs/lldb.1 -t $out/share/man/man1/ + + # Editor support + # vscode: + install -D ../tools/lldb-vscode/package.json $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/package.json + mkdir -p $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin + ln -s $out/bin/lldb-vscode $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin + ''; + + meta = with lib; { + description = "A next-generation high-performance debugger"; + homepage = "https://llvm.org/"; + license = licenses.ncsa; + platforms = platforms.all; + }; +} diff --git a/pkgs/development/compilers/llvm/9/lldb/procfs.patch b/pkgs/development/compilers/llvm/9/lldb/procfs.patch new file mode 100644 index 00000000000..b075dbaeee0 --- /dev/null +++ b/pkgs/development/compilers/llvm/9/lldb/procfs.patch @@ -0,0 +1,31 @@ +--- a/source/Plugins/Process/Linux/Procfs.h ++++ b/source/Plugins/Process/Linux/Procfs.h +@@ -11,21 +11,12 @@ + // sys/procfs.h on Android/Linux for all supported architectures. + + #include ++#include + +-#ifdef __ANDROID__ +-#if defined(__arm64__) || defined(__aarch64__) +-typedef unsigned long elf_greg_t; +-typedef elf_greg_t +- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))]; +-typedef struct user_fpsimd_state elf_fpregset_t; +-#ifndef NT_FPREGSET +-#define NT_FPREGSET NT_PRFPREG +-#endif // NT_FPREGSET +-#elif defined(__mips__) +-#ifndef NT_FPREGSET +-#define NT_FPREGSET NT_PRFPREG +-#endif // NT_FPREGSET +-#endif +-#else // __ANDROID__ ++#if !defined(__GLIBC__) && defined(__powerpc__) ++#define pt_regs musl_pt_regs ++#include ++#undef pt_regs ++#else + #include +-#endif // __ANDROID__ ++#endif -- cgit 1.4.1