Commit f08d5fcc authored by George Huebner's avatar George Huebner Committed by Jörg Thalheim
Browse files

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.
parent 03e72fc2
Loading
Loading
Loading
Loading
+18 −1
Original line number Diff line number Diff line
@@ -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";
  };
})