Commit f5ff3cf7 authored by Francis Gagné's avatar Francis Gagné
Browse files

lldb: Fix dependency cycle between `out` and `lib` outputs

Remove the `lib` output, so that `/lib` goes to the `out` output
instead. This fixes the following error:

ERROR: noBrokenSymlinks: the symlink .../lib/python3.12/site-packages/lldb/lldb-argdumper points to a missing target .../bin/lldb-argdumper

Fixes #380196
parent 7c3f4d15
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -54,9 +54,10 @@ stdenv.mkDerivation (rec {
  src = src';
  inherit patches;

  # LLDB expects to find the path to `bin` relative to `lib` on Darwin. It can’t be patched with the location of
  # the `lib` output because that would create a cycle between it and the `out` output.
  outputs = [ "out" "dev" ] ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ "lib" ];
  # There is no `lib` output because some of the files in `$out/lib` depend on files in `$out/bin`.
  # For example, `$out/lib/python3.12/site-packages/lldb/lldb-argdumper` is a symlink to `$out/bin/lldb-argdumper`.
  # Also, LLDB expects to find the path to `bin` relative to `lib` on Darwin.
  outputs = [ "out" "dev" ];

  sourceRoot = lib.optional (lib.versionAtLeast release_version "13") "${src.name}/${pname}";

@@ -140,7 +141,7 @@ stdenv.mkDerivation (rec {
  '';

  postInstall = ''
    wrapProgram $out/bin/lldb --prefix PYTHONPATH : $lib/${python3.sitePackages}/
    wrapProgram $out/bin/lldb --prefix PYTHONPATH : ''${!outputLib}/${python3.sitePackages}/

    # Editor support
    # vscode: