From 4cbb6bd6cb7942843d16714adf124a9249996809 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Sat, 30 Aug 2025 21:10:07 +0100 Subject: [PATCH] guile: disable stripping on `linux` as well (`binutils-2.45` compat) Without the change `weechat` fails to build on `binutils-2.45` as: Pre-boot error; key: misc-error, args: ("load-thunk-from-memory" "missing DT_GUILE_ENTRY" () #f)Subprocess aborted This happens because `guile-3` uses `ELF` format to store guile bytecode and `strip` sometimes destroys `guile`-specific details in `ELF` files. --- pkgs/development/interpreters/guile/3.0.nix | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkgs/development/interpreters/guile/3.0.nix b/pkgs/development/interpreters/guile/3.0.nix index 3ead981877d1..d3bf1518868c 100644 --- a/pkgs/development/interpreters/guile/3.0.nix +++ b/pkgs/development/interpreters/guile/3.0.nix @@ -147,8 +147,12 @@ builder rec { doCheck = false; doInstallCheck = doCheck; - # In procedure bytevector-u8-ref: Argument 2 out of range - dontStrip = stdenv.hostPlatform.isDarwin; + # guile-3 uses ELF files to store bytecode. strip does not + # always handle them correctly and destroys the image: + # darwin: In procedure bytevector-u8-ref: Argument 2 out of range + # linux binutils-2.45: $ guile --version + # Pre-boot error; key: misc-error, args: ("load-thunk-from-memory" "missing DT_GUILE_ENTRY" () #f)Aborted + dontStrip = true; setupHook = ./setup-hook-3.0.sh;