guix/nix/libstore
Ludovic Courtès 9556ac498f
daemon: Try to execute derivation builders only for matching OS kernels.
Fixes <https://bugs.gnu.org/43668>.

Previously, guix-daemon would try to run GNU/Hurd executables on
GNU/Linux.  execve(2) would succeed, but the executable would
immediately crash.

This change prevents it from attempting to execute "i586-gnu" code on
"*-linux", while preserving the binfmt_misc-friendly behavior
implemented in commit 7bf2a70a4f.

* nix/libstore/build.cc (sameOperatingSystemKernel): New function.
(DerivationGoal::runChild): Call 'execve' only when
'sameOperatingSystemKernel' returns true.
2020-10-01 12:45:38 +02:00
..
.gitignore nix: Tweak .gitignore files. 2020-06-24 19:55:22 +01:00
build.cc daemon: Try to execute derivation builders only for matching OS kernels. 2020-10-01 12:45:38 +02:00
builtins.cc daemon: Run 'guix perform-download' directly. 2019-09-08 11:49:24 +02:00
builtins.hh
derivations.cc
derivations.hh
gc.cc daemon: Handle EXDEV when moving to trash directory. 2020-06-06 15:43:35 -07:00
globals.cc daemon: Remove 'NIX_LIBEXEC_DIR'. 2019-09-08 11:49:24 +02:00
globals.hh daemon: Remove 'NIX_LIBEXEC_DIR'. 2019-09-08 11:49:24 +02:00
local-store.cc daemon: Spawn 'guix authenticate' once for all. 2020-09-14 15:42:55 +02:00
local-store.hh daemon: Make 'profiles/per-user' non-world-writable. 2019-10-16 22:53:40 +02:00
misc.cc
misc.hh
optimise-store.cc daemon: Correctly handle EMLINK corner case when deduplicating. 2020-06-25 12:29:22 +02:00
pathlocks.cc
pathlocks.hh
references.cc
references.hh
sqlite.cc
sqlite.hh
store-api.cc
store-api.hh daemon: Make 'profiles/per-user' non-world-writable. 2019-10-16 22:53:40 +02:00
worker-protocol.hh