summary refs log tree commit diff
path: root/pkgs/build-support/libredirect/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/build-support/libredirect/default.nix')
-rw-r--r--pkgs/build-support/libredirect/default.nix8
1 files changed, 7 insertions, 1 deletions
diff --git a/pkgs/build-support/libredirect/default.nix b/pkgs/build-support/libredirect/default.nix
index 5545c93c19e..9ed00c8a8f6 100644
--- a/pkgs/build-support/libredirect/default.nix
+++ b/pkgs/build-support/libredirect/default.nix
@@ -44,7 +44,7 @@ else stdenv.mkDerivation rec {
       -isystem ${llvmPackages_13.clang.libc}/include \
       -isystem ${llvmPackages_13.libclang.lib}/lib/clang/*/include \
       -L${llvmPackages_13.clang.libc}/lib \
-      -Wl,-install_name,$out/lib/$libName \
+      -Wl,-install_name,$libName \
       -Wall -std=c99 -O3 -fPIC libredirect.c \
       -ldl -shared -o "$libName"
     '' else if stdenv.isDarwin then ''
@@ -73,6 +73,12 @@ else stdenv.mkDerivation rec {
 
     install -vD "$libName" "$out/lib/$libName"
 
+  '' + lib.optionalString (stdenv.isDarwin && stdenv.isAarch64) ''
+    # dylib will be rejected unless dylib rpath gets explictly set
+    install_name_tool \
+      -change $libName $out/lib/$libName \
+      $out/lib/$libName
+  '' + ''
     # Provide a setup hook that injects our library into every process.
     mkdir -p "$hook/nix-support"
     cat <<SETUP_HOOK > "$hook/nix-support/setup-hook"