chickenPackages_4.chicken: fix build on x86_64-darwin

Use the `@executable_path` because the full path to the store is too long.

Also add the target prefix to `install_name_tool`.
This commit is contained in:
Randy Eckenrode 2023-11-07 08:10:21 -05:00
parent 4c234ceeb6
commit c9575b19aa
No known key found for this signature in database
GPG Key ID: 64C1CD4EC2A600D9

View File

@ -20,6 +20,13 @@ stdenv.mkDerivation {
sha256 = "0hvckhi5gfny3mlva6d7y9pmx7cbwvq0r7mk11k3sdiik9hlkmdd";
};
postPatch = lib.optionalString stdenv.isDarwin ''
# There is not enough space in the load command to accomodate a full path to the store,
# so use `@executable_path` to specify a relative path to chickens lib folder.
sed -e '/POSTINSTALL_PROGRAM_FLAGS = /{s|$(LIBDIR)|@executable_path/../lib|}' \
-i Makefile.macosx
'';
setupHook = lib.optional (bootstrap-chicken != null) ./setup-hook.sh;
# -fno-strict-overflow is not a supported argument in clang on darwin
@ -31,7 +38,7 @@ stdenv.mkDerivation {
] ++ (lib.optionals stdenv.isDarwin [
"XCODE_TOOL_PATH=${darwin.binutils.bintools}/bin"
"C_COMPILER=$(CC)"
"POSTINSTALL_PROGRAM=install_name_tool"
"POSTINSTALL_PROGRAM=${stdenv.cc.targetPrefix}install_name_tool"
]);
# We need a bootstrap-chicken to regenerate the c-files after