diff options
author | Nikodem Rabuliński <nikodem@rabulinski.com> | 2023-10-18 15:56:30 +0200 |
---|---|---|
committer | Nikodem Rabuliński <nikodem@rabulinski.com> | 2024-01-12 20:06:30 +0100 |
commit | 62cb8f462840a7c10b5b7431be35d91dbb92ff78 (patch) | |
tree | c0726c2bda85820aba3acabb8dd118f099d5c982 /pkgs/development | |
parent | 6152f88decf00332c9e0772f2902c6d1c6b555be (diff) |
llef: init at unstable-2023-10-18
Diffstat (limited to 'pkgs/development')
-rw-r--r-- | pkgs/development/compilers/llvm/15/default.nix | 8 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/16/default.nix | 8 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/common/lldb-plugins/llef.nix | 43 |
3 files changed, 57 insertions, 2 deletions
diff --git a/pkgs/development/compilers/llvm/15/default.nix b/pkgs/development/compilers/llvm/15/default.nix index 9e9008c7f1eeb..307198b5e9a39 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 30da7d57e7912..878806ff85aba 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 0000000000000..f671132aa61e0 --- /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"; + }; +} |