tweag / skyscope

A tool for visualising and exploring Bazel Skyframe graphs.
MIT License
55 stars 7 forks source link

Closure missing some dynamic libraries on MacOS #90

Closed benradf closed 11 months ago

benradf commented 1 year ago

Describe the bug

dyld[6246]: Library not loaded: /nix/store/26k4g66lmvhlkvh5jv9k7vd28mizk7gp-libiconv-50/lib/libiconv-nocharset.dylib
  Referenced from: <no uuid> /private/var/tmp/_bazel_ksmiley/c8513c989333be3c89713e16206869b2/external/skyscope_macos/skyscope/closure/libiconv.dylib
  Reason: tried: '/nix/store/26k4g66lmvhlkvh5jv9k7vd28mizk7gp-libiconv-50/lib/libiconv-nocharset.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/nix/store/26k4g66lmvhlkvh5jv9k7vd28mizk7gp-libiconv-50/lib/libiconv-nocharset.dylib' (no such file), '/nix/store/26k4g66lmvhlkvh5jv9k7vd28mizk7gp-libiconv-50/lib/libiconv-nocharset.dylib' (no such file), '/usr/local/lib/libiconv-nocharset.dylib' (no such file), '/usr/lib/libiconv-nocharset.dylib' (no such file, not in dyld cache)Library not loaded: /nix/store/jjridp9bvflshikcqdx1icy8m7d6a1gq-libcxxabi-11.1.0/lib/libc++abi.1.dylib
  Referenced from: <no uuid> /private/var/tmp/_bazel_ksmiley/c8513c989333be3c89713e16206869b2/external/skyscope_macos/skyscope/closure/libc++.1.0.dylib
  Reason: tried: '/nix/store/jjridp9bvflshikcqdx1icy8m7d6a1gq-libcxxabi-11.1.0/lib/libc++abi.1.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/nix/store/jjridp9bvflshikcqdx1icy8m7d6a1gq-libcxxabi-11.1.0/lib/libc++abi.1.dylib' (no such file), '/nix/store/jjridp9bvflshikcqdx1icy8m7d6a1gq-libcxxabi-11.1.0/lib/libc++abi.1.dylib' (no such file), '/usr/local/lib/libc++abi.1.dylib' (no such file), '/usr/lib/libc++abi.1.dylib' (no such file, not in dyld cache)
/private/var/tmp/_bazel_ksmiley/c8513c989333be3c89713e16206869b2/execroot/_main/bazel-out/darwin_arm64-fastbuild/bin/external/skyscope_macos/skyscope/import.runfiles/./skyscope_macos/skyscope/bin/skyscope: line 27:  6246 Abort trap: 6           "$SKYSCOPE_BINARY" +RTS -N -RTS "$@"

We bundle the direct dependencies of skyscope, but it seems some transitive dependencies are missing:

$ otool -L /Users/ben/.local/skyscope/closure/libiconv.dylib 
/Users/ben/.local/skyscope/closure/libiconv.dylib:
        /nix/store/26k4g66lmvhlkvh5jv9k7vd28mizk7gp-libiconv-50/lib/libiconv.dylib (compatibility version 7.0.0, current version 7.0.0)
        /nix/store/26k4g66lmvhlkvh5jv9k7vd28mizk7gp-libiconv-50/lib/libiconv-nocharset.dylib (compatibility version 7.0.0, current version 7.0.0, reexport)
        /nix/store/26k4g66lmvhlkvh5jv9k7vd28mizk7gp-libiconv-50/lib/libcharset.1.dylib (compatibility version 2.0.0, current version 2.0.0, reexport)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1292.60.1)

Will need to update assemble_closure here to fix this problem.

Additional context https://bazelbuild.slack.com/archives/CA31HN1T3/p1683560345555339?thread_ts=1683196684.915689&cid=CA31HN1T3

benradf commented 11 months ago

To use Skyscope on MacOS now, you'll have to build it from source as binaries are no longer distributed for that platform.