From f08d5fcc179a8545391ff0daa5fc9809e7619bfa Mon Sep 17 00:00:00 2001 From: George Huebner Date: Wed, 16 Jul 2025 21:00:55 -0400 Subject: [PATCH] syzkaller: use cross compilation in build This doesn't change anything if targetSystem==hostSystem, but it allows fuzzing e.g. a x86_64-linux guest on aarch64-darwin. --- pkgs/by-name/sy/syzkaller/package.nix | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/sy/syzkaller/package.nix b/pkgs/by-name/sy/syzkaller/package.nix index a2f1d4fdd272..278d68fd7b04 100644 --- a/pkgs/by-name/sy/syzkaller/package.nix +++ b/pkgs/by-name/sy/syzkaller/package.nix @@ -5,6 +5,17 @@ go, ncurses, }: +let + cpus = { + "x86_64" = "amd64"; + "i686" = "386"; + "aarch64" = "arm64"; + }; + targetSystem = lib.systems.parse.mkSystemFromString stdenv.targetPlatform.system; + targetOS = targetSystem.kernel.name; + targetArch = cpus.${targetSystem.cpu.name}; + targetVMArch = cpus.${(lib.systems.parse.mkSystemFromString stdenv.hostPlatform.system).cpu.name}; +in stdenv.mkDerivation (finalAttrs: { pname = "syzkaller"; version = "0-unstable-2024-01-09"; @@ -47,6 +58,12 @@ stdenv.mkDerivation (finalAttrs: { runHook postConfigure ''; + makeFlags = [ + "TARGETOS=${targetOS}" + "TARGETVMARCH=${targetVMArch}" + "TARGETARCH=${targetArch}" + ]; + dontInstall = true; meta = { @@ -54,7 +71,7 @@ stdenv.mkDerivation (finalAttrs: { homepage = "https://github.com/google/syzkaller"; license = lib.licenses.asl20; maintainers = [ lib.maintainers.msanft ]; - platforms = lib.platforms.linux; + platforms = lib.platforms.unix; mainProgram = "syz-manager"; }; })