diff options
author | John Ericson <John.Ericson@Obsidian.Systems> | 2021-03-24 01:40:33 +0000 |
---|---|---|
committer | John Ericson <John.Ericson@Obsidian.Systems> | 2021-03-24 05:02:50 +0000 |
commit | 19a974945b823af31667569713784c8af23ad39d (patch) | |
tree | 24a1ce4fd900cb9bc34f2727cf11bdae739a4da8 /pkgs/development/compilers/llvm/11/lldb | |
parent | 9677d30d773021b9237e8130f5ba2879bf954354 (diff) |
llvmPackages: Organize files
Always do pkg/default.nix not pkg.nix; use directories to avoid prefixing patches and other files.
Diffstat (limited to 'pkgs/development/compilers/llvm/11/lldb')
-rw-r--r-- | pkgs/development/compilers/llvm/11/lldb/default.nix | 99 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/11/lldb/procfs.patch | 31 |
2 files changed, 130 insertions, 0 deletions
diff --git a/pkgs/development/compilers/llvm/11/lldb/default.nix b/pkgs/development/compilers/llvm/11/lldb/default.nix new file mode 100644 index 0000000000000..fc9b471ec9aba --- /dev/null +++ b/pkgs/development/compilers/llvm/11/lldb/default.nix @@ -0,0 +1,99 @@ +{ lib, stdenv +, fetch +, cmake +, zlib +, ncurses +, swig +, which +, libedit +, libxml2 +, llvm +, clang-unwrapped +, python3 +, version +, darwin +, lit +, enableManpages ? false +}: + +stdenv.mkDerivation (rec { + pname = "lldb"; + inherit version; + + src = fetch pname "1vlyg015dyng43xqb8cg2l6r9ix8klibxsajazbfnckdnh54hwxj"; + + patches = [ ./procfs.patch ]; + + nativeBuildInputs = [ cmake python3 which swig lit ] + ++ lib.optionals enableManpages [ python3.pkgs.sphinx python3.pkgs.recommonmark ]; + + 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 + ]; + + hardeningDisable = [ "format" ]; + + cmakeFlags = [ + "-DLLVM_ENABLE_RTTI=OFF" + "-DClang_DIR=${clang-unwrapped}/lib/cmake" + "-DLLVM_EXTERNAL_LIT=${lit}/bin/lit" + ] ++ lib.optionals stdenv.isDarwin [ + "-DLLDB_USE_SYSTEM_DEBUGSERVER=ON" + ] ++ lib.optionals (!stdenv.isDarwin) [ + "-DLLDB_CODESIGN_IDENTITY=" # codesigning makes nondeterministic + ] ++ lib.optionals enableManpages [ + "-DLLVM_ENABLE_SPHINX=ON" + "-DSPHINX_OUTPUT_MAN=ON" + "-DSPHINX_OUTPUT_HTML=OFF" + ]; + + postInstall = '' + # 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://lldb.llvm.org"; + license = licenses.ncsa; + platforms = platforms.all; + }; +} // lib.optionalAttrs enableManpages { + pname = "lldb-manpages"; + + buildPhase = '' + make docs-lldb-man + ''; + + propagatedBuildInputs = []; + + installPhase = '' + # manually install lldb man page + mkdir -p $out/share/man/man1 + install docs/man/lldb.1 -t $out/share/man/man1/ + ''; + + postPatch = null; + postInstall = null; + + outputs = [ "out" ]; + + doCheck = false; + + meta.description = "man pages for LLDB ${version}"; +}) diff --git a/pkgs/development/compilers/llvm/11/lldb/procfs.patch b/pkgs/development/compilers/llvm/11/lldb/procfs.patch new file mode 100644 index 0000000000000..b075dbaeee0ad --- /dev/null +++ b/pkgs/development/compilers/llvm/11/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 <sys/ptrace.h> ++#include <asm/ptrace.h> + +-#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 <sys/procfs.h> ++#undef pt_regs ++#else + #include <sys/procfs.h> +-#endif // __ANDROID__ ++#endif |