From 3b2056536c45c70e817e805b2b7f12b7ab468386 Mon Sep 17 00:00:00 2001 From: Tuomas Tynkkynen Date: Fri, 24 Nov 2017 14:34:04 +0200 Subject: [PATCH] qemu: Rename x86Only option to hostCpuOnly And also make it work on ARM and Aarch64. --- pkgs/applications/virtualization/qemu/default.nix | 11 ++++++++--- pkgs/top-level/all-packages.nix | 12 ++++++------ 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/pkgs/applications/virtualization/qemu/default.nix b/pkgs/applications/virtualization/qemu/default.nix index a43ce12e83e..66e5928ca15 100644 --- a/pkgs/applications/virtualization/qemu/default.nix +++ b/pkgs/applications/virtualization/qemu/default.nix @@ -12,7 +12,7 @@ , spiceSupport ? !stdenv.isDarwin, spice, spice_protocol , usbredirSupport ? spiceSupport, usbredir , xenSupport ? false, xen -, x86Only ? false +, hostCpuOnly ? false , nixosTestRunner ? false }: @@ -23,12 +23,17 @@ let audio = optionalString (hasSuffix "linux" stdenv.system) "alsa," + optionalString pulseSupport "pa," + optionalString sdlSupport "sdl,"; + + hostCpuTargets = if stdenv.isi686 || stdenv.isx86_64 then "i386-softmmu,x86_64-softmmu" + else if stdenv.isArm then "arm-softmmu" + else if stdenv.isAarch64 then "aarch64-softmmu" + else throw "Don't know how to build a 'hostCpuOnly = true' QEMU"; in stdenv.mkDerivation rec { name = "qemu-" + stdenv.lib.optionalString xenSupport "xen-" - + stdenv.lib.optionalString x86Only "x86-only-" + + stdenv.lib.optionalString hostCpuOnly "host-cpu-only-" + stdenv.lib.optionalString nixosTestRunner "for-vm-tests-" + version; @@ -75,7 +80,7 @@ stdenv.mkDerivation rec { ++ optional seccompSupport "--enable-seccomp" ++ optional spiceSupport "--enable-spice" ++ optional usbredirSupport "--enable-usb-redir" - ++ optional x86Only "--target-list=i386-softmmu,x86_64-softmmu" + ++ optional hostCpuOnly "--target-list=${hostCpuTargets}" ++ optional stdenv.isDarwin "--enable-cocoa" ++ optional stdenv.isLinux "--enable-linux-aio" ++ optional xenSupport "--enable-xen"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a584b5e6c85..a457769ff3e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -13001,16 +13001,16 @@ with pkgs; watch = callPackage ../os-specific/linux/procps/watch.nix { }; - qemu_kvm = lowPrio (qemu.override { x86Only = true; }); + qemu_kvm = lowPrio (qemu.override { hostCpuOnly = true; }); # See `xenPackages` source for explanations. # Building with `xen` instead of `xen-slim` is possible, but makes no sense. - qemu_xen = lowPrio (qemu.override { x86Only = true; xenSupport = true; xen = xen-slim; }); - qemu_xen-light = lowPrio (qemu.override { x86Only = true; xenSupport = true; xen = xen-light; }); - qemu_xen_4_8 = lowPrio (qemu.override { x86Only = true; xenSupport = true; xen = xen_4_8-slim; }); - qemu_xen_4_8-light = lowPrio (qemu.override { x86Only = true; xenSupport = true; xen = xen_4_8-light; }); + qemu_xen = lowPrio (qemu.override { hostCpuOnly = true; xenSupport = true; xen = xen-slim; }); + qemu_xen-light = lowPrio (qemu.override { hostCpuOnly = true; xenSupport = true; xen = xen-light; }); + qemu_xen_4_8 = lowPrio (qemu.override { hostCpuOnly = true; xenSupport = true; xen = xen_4_8-slim; }); + qemu_xen_4_8-light = lowPrio (qemu.override { hostCpuOnly = true; xenSupport = true; xen = xen_4_8-light; }); - qemu_test = lowPrio (qemu.override { x86Only = true; nixosTestRunner = true; }); + qemu_test = lowPrio (qemu.override { hostCpuOnly = true; nixosTestRunner = true; }); firmwareLinuxNonfree = callPackage ../os-specific/linux/firmware/firmware-linux-nonfree { };