diff options
author | github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> | 2024-01-13 18:01:22 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-13 18:01:22 +0000 |
commit | e59c8549eb8dd30b1efc9e9d566fe114ef6c55e2 (patch) | |
tree | 0f529f186b3002bbf2ffe2d74d967053c339ea49 /pkgs/development/compilers/llvm | |
parent | 97fe47cbdcfe32ed36c17ec28d66142d7a88b8f4 (diff) | |
parent | 23bef9e4b28d8e6c65ebcf063b1cb40f8eb37b49 (diff) |
Merge staging-next into staging
Diffstat (limited to 'pkgs/development/compilers/llvm')
4 files changed, 58 insertions, 2 deletions
diff --git a/pkgs/development/compilers/llvm/15/default.nix b/pkgs/development/compilers/llvm/15/default.nix index 45512528fde68..d9ca0819f2e07 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: '' @@ -360,4 +366,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 e4fe73fd60ad6..db9385043be26 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; @@ -371,4 +377,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"; + }; +} diff --git a/pkgs/development/compilers/llvm/common/lldb.nix b/pkgs/development/compilers/llvm/common/lldb.nix index 23ed4a2a2042e..4cb73a4d97a63 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"; |