From: "Daniel P. Berrange" <berrange@xxxxxxxxxx> Use virArch APIs to determine host architecture when launching QEMU. Signed-off-by: Daniel P. Berrange <berrange@xxxxxxxxxx> --- src/qemu/qemu_command.c | 25 +++++-------------------- 1 file changed, 5 insertions(+), 20 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 9009bd2..6968f74 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -32,6 +32,7 @@ #include "logging.h" #include "virterror_internal.h" #include "util.h" +#include "virarch.h" #include "virfile.h" #include "uuid.h" #include "c-ctype.h" @@ -121,21 +122,6 @@ VIR_ENUM_IMPL(qemuDomainFSDriver, VIR_DOMAIN_FS_DRIVER_TYPE_LAST, "handle"); -static void -uname_normalize(struct utsname *ut) -{ - uname(ut); - - /* Map i386, i486, i586 to i686. */ - if (ut->machine[0] == 'i' && - ut->machine[1] != '\0' && - ut->machine[2] == '8' && - ut->machine[3] == '6' && - ut->machine[4] == '\0') - ut->machine[1] = '6'; -} - - /** * qemuPhysIfaceConnect: * @def: the definition of the VM (needed by 802.1Qbh and audit) @@ -4281,7 +4267,7 @@ qemuBuildCpuArgStr(const virQEMUDriverPtr driver, const virDomainDefPtr def, const char *emulator, qemuCapsPtr caps, - const struct utsname *ut, + virArch hostarch, char **opt, bool *hasHwVirt, bool migrating) @@ -4414,7 +4400,7 @@ qemuBuildCpuArgStr(const virQEMUDriverPtr driver, * 2. emulator is qemu-system-x86_64 */ if (STREQ(def->os.arch, "i686") && - ((STREQ(ut->machine, "x86_64") && + (((hostarch == VIR_ARCH_X86_64) && strstr(emulator, "kvm")) || strstr(emulator, "x86_64"))) { virBufferAdd(&buf, default_model, -1); @@ -4959,7 +4945,6 @@ qemuBuildCommandLine(virConnectPtr conn, enum virNetDevVPortProfileOp vmop) { int i, j; - struct utsname ut; int disableKQEMU = 0; int enableKQEMU = 0; int disableKVM = 0; @@ -4977,7 +4962,6 @@ qemuBuildCommandLine(virConnectPtr conn, int spice = 0; int usbcontroller = 0; bool usblegacy = false; - uname_normalize(&ut); int contOrder[] = { /* We don't add an explicit IDE or FD controller because the * provided PIIX4 device already includes one. It isn't possible to @@ -4988,6 +4972,7 @@ qemuBuildCommandLine(virConnectPtr conn, VIR_DOMAIN_CONTROLLER_TYPE_VIRTIO_SERIAL, VIR_DOMAIN_CONTROLLER_TYPE_CCID, }; + virArch hostarch = virArchFromHost(); VIR_DEBUG("conn=%p driver=%p def=%p mon=%p json=%d " "caps=%p migrateFrom=%s migrateFD=%d " @@ -5074,7 +5059,7 @@ qemuBuildCommandLine(virConnectPtr conn, goto error; if (qemuBuildCpuArgStr(driver, def, emulator, caps, - &ut, &cpu, &hasHwVirt, !!migrateFrom) < 0) + hostarch, &cpu, &hasHwVirt, !!migrateFrom) < 0) goto error; if (cpu) { -- 1.7.11.7 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list