about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRyan Lahfa <masterancpp@gmail.com>2024-01-13 16:51:40 +0100
committerGitHub <noreply@github.com>2024-01-13 16:51:40 +0100
commit4c2d752af61a17672cb048081de5d2cbfe040a68 (patch)
tree6747b877461f82c30aef1349f6cc0ac868e1782f
parent41aa423726f2906f3e261c507b2d9134987466e2 (diff)
parent6305515e452f7d64708da7cfee6627dd35c808f3 (diff)
downloadnixlib-4c2d752af61a17672cb048081de5d2cbfe040a68.tar
nixlib-4c2d752af61a17672cb048081de5d2cbfe040a68.tar.gz
nixlib-4c2d752af61a17672cb048081de5d2cbfe040a68.tar.bz2
nixlib-4c2d752af61a17672cb048081de5d2cbfe040a68.tar.lz
nixlib-4c2d752af61a17672cb048081de5d2cbfe040a68.tar.xz
nixlib-4c2d752af61a17672cb048081de5d2cbfe040a68.tar.zst
nixlib-4c2d752af61a17672cb048081de5d2cbfe040a68.zip
Merge pull request #261840 from nrabulinski/llef-init
llef: init at unstable-2023-10-18
-rw-r--r--maintainers/maintainer-list.nix7
-rw-r--r--pkgs/development/compilers/llvm/15/default.nix8
-rw-r--r--pkgs/development/compilers/llvm/16/default.nix8
-rw-r--r--pkgs/development/compilers/llvm/common/lldb-plugins/llef.nix43
-rw-r--r--pkgs/development/compilers/llvm/common/lldb.nix1
5 files changed, 65 insertions, 2 deletions
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index 31320d5eb44e..ec1aca2a02eb 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -13615,6 +13615,13 @@
     githubId = 13149442;
     name = "Nico Pulido-Mateo";
   };
+  nrabulinski = {
+    email = "1337-nix@nrab.lol";
+    matrix = "@niko:nrab.lol";
+    github = "nrabulinski";
+    githubId = 24574288;
+    name = "Nikodem RabuliƄski";
+  };
   nrdxp = {
     email = "tim.deh@pm.me";
     matrix = "@timdeh:matrix.org";
diff --git a/pkgs/development/compilers/llvm/15/default.nix b/pkgs/development/compilers/llvm/15/default.nix
index 9e9008c7f1ee..307198b5e9a3 100644
--- a/pkgs/development/compilers/llvm/15/default.nix
+++ b/pkgs/development/compilers/llvm/15/default.nix
@@ -59,6 +59,12 @@ in let
   inherit (releaseInfo) release_version version;
   inherit (import ../common/common-let.nix { inherit lib fetchFromGitHub release_version gitRelease officialRelease monorepoSrc'; }) llvm_meta monorepoSrc;
 
+  lldbPlugins = lib.makeExtensible (lldbPlugins: let
+    callPackage = newScope (lldbPlugins // { inherit stdenv; inherit (tools) lldb; });
+  in {
+    llef = callPackage ../common/lldb-plugins/llef.nix {};
+  });
+
   tools = lib.makeExtensible (tools: let
     callPackage = newScope (tools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc buildLlvmTools; });
     mkExtraBuildCommands0 = cc: ''
@@ -359,4 +365,4 @@ in let
   });
   noExtend = extensible: lib.attrsets.removeAttrs extensible [ "extend" ];
 
-in { inherit tools libraries release_version; } // (noExtend libraries) // (noExtend tools)
+in { inherit tools libraries release_version lldbPlugins; } // (noExtend libraries) // (noExtend tools)
diff --git a/pkgs/development/compilers/llvm/16/default.nix b/pkgs/development/compilers/llvm/16/default.nix
index 30da7d57e791..878806ff85ab 100644
--- a/pkgs/development/compilers/llvm/16/default.nix
+++ b/pkgs/development/compilers/llvm/16/default.nix
@@ -59,6 +59,12 @@ in let
   inherit (releaseInfo) release_version version;
   inherit (import ../common/common-let.nix { inherit lib fetchFromGitHub release_version gitRelease officialRelease monorepoSrc'; }) llvm_meta monorepoSrc;
 
+  lldbPlugins = lib.makeExtensible (lldbPlugins: let
+    callPackage = newScope (lldbPlugins // { inherit stdenv; inherit (tools) lldb; });
+  in {
+    llef = callPackage ../common/lldb-plugins/llef.nix {};
+  });
+
   tools = lib.makeExtensible (tools: let
     callPackage = newScope (tools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc buildLlvmTools; });
     major = lib.versions.major release_version;
@@ -370,4 +376,4 @@ in let
   });
   noExtend = extensible: lib.attrsets.removeAttrs extensible [ "extend" ];
 
-in { inherit tools libraries release_version; } // (noExtend libraries) // (noExtend tools)
+in { inherit tools libraries release_version lldbPlugins; } // (noExtend libraries) // (noExtend tools)
diff --git a/pkgs/development/compilers/llvm/common/lldb-plugins/llef.nix b/pkgs/development/compilers/llvm/common/lldb-plugins/llef.nix
new file mode 100644
index 000000000000..f671132aa61e
--- /dev/null
+++ b/pkgs/development/compilers/llvm/common/lldb-plugins/llef.nix
@@ -0,0 +1,43 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, makeWrapper
+, lldb
+}:
+
+stdenv.mkDerivation {
+  pname = "llef";
+  version = "unstable-2023-10-18";
+
+  src = fetchFromGitHub {
+    owner = "foundryzero";
+    repo = "llef";
+    rev = "629bd75f44c356f7a3576a6436d3919ce111240d";
+    hash = "sha256-JtCHG89s436Di/6+V7Le4CZnkIPh/RYIllfXEO/B7+8";
+  };
+
+  dontBuild = true;
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/llef
+    cp -r llef.py arch commands common handlers $out/share/llef
+    makeWrapper ${lib.getExe lldb} $out/bin/llef \
+      --add-flags "-o 'settings set stop-disassembly-display never'" \
+      --add-flags "-o \"command script import $out/share/llef/llef.py\""
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "LLEF is a plugin for LLDB to make it more useful for RE and VR";
+    homepage = "https://github.com/foundryzero/llef";
+    license = licenses.mit;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ nrabulinski ];
+    mainProgram = "llef";
+  };
+}
diff --git a/pkgs/development/compilers/llvm/common/lldb.nix b/pkgs/development/compilers/llvm/common/lldb.nix
index 23ed4a2a2042..4cb73a4d97a6 100644
--- a/pkgs/development/compilers/llvm/common/lldb.nix
+++ b/pkgs/development/compilers/llvm/common/lldb.nix
@@ -176,6 +176,7 @@ stdenv.mkDerivation (rec {
     broken =
       (lib.versionOlder release_version "11" && stdenv.isDarwin && stdenv.isAarch64)
         || (((lib.versions.major release_version) == "13") && stdenv.isDarwin);
+    mainProgram = "lldb";
   };
 } // lib.optionalAttrs enableManpages {
   pname = "lldb-manpages";