From e6364478be7fd717b418363a374b511ee64d439d Mon Sep 17 00:00:00 2001 From: Michael Holmes Date: Tue, 12 Dec 2023 10:17:08 -0500 Subject: [PATCH] gerbil: fix soname of libgerbil on darwin The soname/identification of libgerbil on darwin is not correctly fixed up, resulting in any binaries linked with libgerbil to attempt to link to libgerbil in the temporary build dir from the gerbil derivation. This means that any compiled gerbil program won't work as the propagated soname will result in the binary being unable to correctly link with libgerbil. Adding an Darwin-only step to use `install_name_tool` to fix up the soname of libgerbil fixes this issue. We're using realpath here as the qualified path to `libgerbil` is `$out/gerbil/$version/lib/libgerbil.so` and this is an easier way to obtain the qualified path. Fixes NixOS/nixpkgs#272967. --- pkgs/development/compilers/gerbil/build.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/development/compilers/gerbil/build.nix b/pkgs/development/compilers/gerbil/build.nix index a0922ff9ccac..af983be968b0 100644 --- a/pkgs/development/compilers/gerbil/build.nix +++ b/pkgs/development/compilers/gerbil/build.nix @@ -106,6 +106,9 @@ stdenv.mkDerivation rec { ./install.sh (cd $out/bin ; ln -s ../gerbil/bin/* .) runHook postInstall + '' + lib.optionalString stdenv.isDarwin '' + libgerbil="$(realpath "$out/gerbil/lib/libgerbil.so")" + install_name_tool -id "$libgerbil" "$libgerbil" ''; dontStrip = true;