Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
34 lines
863 B
Nix
34 lines
863 B
Nix
{
|
|
targetPackages,
|
|
lib,
|
|
makeSetupHook,
|
|
dieHook,
|
|
writeShellScript,
|
|
tests,
|
|
cc ? targetPackages.stdenv.cc,
|
|
sanitizers ? [ ],
|
|
}:
|
|
|
|
makeSetupHook {
|
|
name = "make-binary-wrapper-hook";
|
|
propagatedBuildInputs = [ dieHook ];
|
|
|
|
substitutions = {
|
|
cc = "${cc}/bin/${cc.targetPrefix}cc ${
|
|
lib.escapeShellArgs (map (s: "-fsanitize=${s}") sanitizers)
|
|
+ lib.optionalString (
|
|
cc.isClang && !cc.stdenv.hostPlatform.isDarwin
|
|
) "--ld-path=${cc.targetPrefix}ld"
|
|
}";
|
|
};
|
|
|
|
passthru = {
|
|
# Extract the function call used to create a binary wrapper from its embedded docstring
|
|
extractCmd = writeShellScript "extract-binary-wrapper-cmd" ''
|
|
${targetPackages.gnuStdenv.cc.bintools.targetPrefix}strings -dw "$1" | sed -n '/^makeCWrapper/,/^$/ p'
|
|
'';
|
|
|
|
tests = tests.makeBinaryWrapper;
|
|
};
|
|
} ./make-binary-wrapper.sh
|