* [PATCH v6 00/23] x86: Secure Encrypted Virtualization (AMD)
@ 2018-01-29 17:41 ` Brijesh Singh
0 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh
This patch series provides support for AMD's new Secure Encrypted
Virtualization (SEV) feature.
SEV is an extension to the AMD-V architecture which supports running
multiple VMs under the control of a hypervisor. The SEV feature allows
the memory contents of a virtual machine (VM) to be transparently encrypted
with a key unique to the guest VM. The memory controller contains a
high performance encryption engine which can be programmed with multiple
keys for use by a different VMs in the system. The programming and
management of these keys is handled by the AMD Secure Processor firmware
which exposes a commands for these tasks.
The KVM SEV patch series introduced a new ioctl (KVM_MEMORY_ENCRYPTION_OP)
which is used by qemu to issue the SEV commands to assist performing
common hypervisor activities such as a launching, running, snapshooting,
migration and debugging guests.
The following links provide additional details:
AMD Memory Encryption whitepaper:
http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2013/12/AMD_Memory_Encryption_Whitepaper_v7-Public.pdf
AMD64 Architecture Programmer's Manual:
http://support.amd.com/TechDocs/24593.pdf
SME is section 7.10
SEV is section 15.34
Secure Encrypted Virutualization Key Management:
http://support.amd.com/TechDocs/55766_SEV-KM API_Specification.pdf
KVM Forum slides:
http://www.linux-kvm.org/images/7/74/02x08A-Thomas_Lendacky-AMDs_Virtualizatoin_Memory_Encryption_Technology.pdf
Video of the KVM Forum Talk:
https://www.youtube.com/watch?v=RcvQ1xN55Ew
---
The complete patch series is available :
https://github.com/codomania/qemu/tree/v6
Using these patches we have succesfully booted and tested a guest both with and
without SEV enabled.
TODO:
* Add SEV guest migration support
* Add SEV guest snapshot and restore support
Changes since v5:
- drop MEMTXTATTRS_DEBUG macro, caller now specify attrs.debug=1 when needed.
- drop DPRINTF and use trace points to output the debug messages
Changes since v4:
- extend sev-guest object to add new properties 'dh-cert-file', 'session-file' etc.
- emit SEV_MEASUREMENT event when measurement is available
- add migration blocker
- add memory encryption cpuid support
- rebase the series with recent qemu tree
Changes since v3:
- update to newer SEV spec (0.12 -> 0.14)
- update to newer KVM RFC and use KVM_MEMORY_ENCRYPTION_OP ioctl instead
of KVM_ISSUE_SEV.
- add support to encrypt plfash
Changes since v2:
- rename ram_ops to ram_debug_ops
- use '-' rather than '_' when adding new member in KvmInfo struct
- update sev object to use link properties when referencing other objects
- use ldq_phys_debug in tlb_info_64 and mem_info_64.
- remove sev-guest-policy object, we will revisit it after basic SEV
guest support is merged.
- remove kernel API from doc and add SEV guest LAUNCH model. The doc will
be updated as we integerate the remaining SEV APIs.
Changes since v1:
- Added Documentation
- Added security-policy object.
- Drop sev config parsing support and create new objects to get/set SEV
specific parameters
- Added sev-guest-info object.
- Added sev-launch-info object.
- Added kvm_memory_encrytion_* APIs. The idea behind this was to allow adding
a non SEV memory encrytion object without modifying interfaces.
- Drop patch to load OS image at fixed location.
- updated LAUNCH_FINISH command structure. Now the structure contains
just 'measurement' field. Other fields are not used and will also be removed
from newer SEV firmware API spec.
Brijesh Singh (23):
memattrs: add debug attribute
exec: add ram_debug_ops support
exec: add debug version of physical memory read and write API
monitor/i386: use debug APIs when accessing guest memory
target/i386: add memory encryption feature cpuid support
machine: add -memory-encryption property
kvm: update kvm.h to include memory encryption ioctls
docs: add AMD Secure Encrypted Virtualization (SEV)
accel: add Secure Encrypted Virtulization (SEV) object
sev: add command to initialize the memory encryption context
sev: register the guest memory range which may contain encrypted data
kvm: introduce memory encryption APIs
hmp: display memory encryption support in 'info kvm'
sev: add command to create launch memory encryption context
sev: add command to encrypt guest memory region
target/i386: encrypt bios rom
qapi: add SEV_MEASUREMENT event
sev: emit the SEV_MEASUREMENT event
sev: Finalize the SEV guest launch flow
hw: i386: set ram_debug_ops when memory encryption is enabled
sev: add debug encrypt and decrypt commands
target/i386: clear C-bit when walking SEV guest page table
sev: add migration blocker
accel/kvm/Makefile.objs | 2 +-
accel/kvm/kvm-all.c | 48 +++
accel/kvm/sev.c | 661 +++++++++++++++++++++++++++++++++++++++++
accel/kvm/trace-events | 10 +
accel/stubs/kvm-stub.c | 14 +
cpus.c | 2 +-
disas.c | 2 +-
docs/amd-memory-encryption.txt | 109 +++++++
exec.c | 107 ++++++-
hmp.c | 2 +
hw/core/machine.c | 22 ++
hw/i386/pc.c | 9 +
hw/i386/pc_sysfw.c | 19 ++
include/exec/cpu-common.h | 15 +
include/exec/memattrs.h | 2 +
include/exec/memory.h | 27 ++
include/hw/boards.h | 1 +
include/sysemu/kvm.h | 25 ++
include/sysemu/sev.h | 76 +++++
linux-headers/linux/kvm.h | 90 ++++++
monitor.c | 8 +-
qapi-schema.json | 18 +-
qemu-options.hx | 36 +++
qmp.c | 1 +
target/i386/cpu.c | 36 +++
target/i386/cpu.h | 6 +
target/i386/helper.c | 46 ++-
target/i386/monitor.c | 145 +++++----
28 files changed, 1450 insertions(+), 89 deletions(-)
create mode 100644 accel/kvm/sev.c
create mode 100644 docs/amd-memory-encryption.txt
create mode 100644 include/sysemu/sev.h
--
2.9.5
^ permalink raw reply [flat|nested] 118+ messages in thread
* [Qemu-devel] [PATCH v6 00/23] x86: Secure Encrypted Virtualization (AMD)
@ 2018-01-29 17:41 ` Brijesh Singh
0 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh
This patch series provides support for AMD's new Secure Encrypted
Virtualization (SEV) feature.
SEV is an extension to the AMD-V architecture which supports running
multiple VMs under the control of a hypervisor. The SEV feature allows
the memory contents of a virtual machine (VM) to be transparently encrypted
with a key unique to the guest VM. The memory controller contains a
high performance encryption engine which can be programmed with multiple
keys for use by a different VMs in the system. The programming and
management of these keys is handled by the AMD Secure Processor firmware
which exposes a commands for these tasks.
The KVM SEV patch series introduced a new ioctl (KVM_MEMORY_ENCRYPTION_OP)
which is used by qemu to issue the SEV commands to assist performing
common hypervisor activities such as a launching, running, snapshooting,
migration and debugging guests.
The following links provide additional details:
AMD Memory Encryption whitepaper:
http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2013/12/AMD_Memory_Encryption_Whitepaper_v7-Public.pdf
AMD64 Architecture Programmer's Manual:
http://support.amd.com/TechDocs/24593.pdf
SME is section 7.10
SEV is section 15.34
Secure Encrypted Virutualization Key Management:
http://support.amd.com/TechDocs/55766_SEV-KM API_Specification.pdf
KVM Forum slides:
http://www.linux-kvm.org/images/7/74/02x08A-Thomas_Lendacky-AMDs_Virtualizatoin_Memory_Encryption_Technology.pdf
Video of the KVM Forum Talk:
https://www.youtube.com/watch?v=RcvQ1xN55Ew
---
The complete patch series is available :
https://github.com/codomania/qemu/tree/v6
Using these patches we have succesfully booted and tested a guest both with and
without SEV enabled.
TODO:
* Add SEV guest migration support
* Add SEV guest snapshot and restore support
Changes since v5:
- drop MEMTXTATTRS_DEBUG macro, caller now specify attrs.debug=1 when needed.
- drop DPRINTF and use trace points to output the debug messages
Changes since v4:
- extend sev-guest object to add new properties 'dh-cert-file', 'session-file' etc.
- emit SEV_MEASUREMENT event when measurement is available
- add migration blocker
- add memory encryption cpuid support
- rebase the series with recent qemu tree
Changes since v3:
- update to newer SEV spec (0.12 -> 0.14)
- update to newer KVM RFC and use KVM_MEMORY_ENCRYPTION_OP ioctl instead
of KVM_ISSUE_SEV.
- add support to encrypt plfash
Changes since v2:
- rename ram_ops to ram_debug_ops
- use '-' rather than '_' when adding new member in KvmInfo struct
- update sev object to use link properties when referencing other objects
- use ldq_phys_debug in tlb_info_64 and mem_info_64.
- remove sev-guest-policy object, we will revisit it after basic SEV
guest support is merged.
- remove kernel API from doc and add SEV guest LAUNCH model. The doc will
be updated as we integerate the remaining SEV APIs.
Changes since v1:
- Added Documentation
- Added security-policy object.
- Drop sev config parsing support and create new objects to get/set SEV
specific parameters
- Added sev-guest-info object.
- Added sev-launch-info object.
- Added kvm_memory_encrytion_* APIs. The idea behind this was to allow adding
a non SEV memory encrytion object without modifying interfaces.
- Drop patch to load OS image at fixed location.
- updated LAUNCH_FINISH command structure. Now the structure contains
just 'measurement' field. Other fields are not used and will also be removed
from newer SEV firmware API spec.
Brijesh Singh (23):
memattrs: add debug attribute
exec: add ram_debug_ops support
exec: add debug version of physical memory read and write API
monitor/i386: use debug APIs when accessing guest memory
target/i386: add memory encryption feature cpuid support
machine: add -memory-encryption property
kvm: update kvm.h to include memory encryption ioctls
docs: add AMD Secure Encrypted Virtualization (SEV)
accel: add Secure Encrypted Virtulization (SEV) object
sev: add command to initialize the memory encryption context
sev: register the guest memory range which may contain encrypted data
kvm: introduce memory encryption APIs
hmp: display memory encryption support in 'info kvm'
sev: add command to create launch memory encryption context
sev: add command to encrypt guest memory region
target/i386: encrypt bios rom
qapi: add SEV_MEASUREMENT event
sev: emit the SEV_MEASUREMENT event
sev: Finalize the SEV guest launch flow
hw: i386: set ram_debug_ops when memory encryption is enabled
sev: add debug encrypt and decrypt commands
target/i386: clear C-bit when walking SEV guest page table
sev: add migration blocker
accel/kvm/Makefile.objs | 2 +-
accel/kvm/kvm-all.c | 48 +++
accel/kvm/sev.c | 661 +++++++++++++++++++++++++++++++++++++++++
accel/kvm/trace-events | 10 +
accel/stubs/kvm-stub.c | 14 +
cpus.c | 2 +-
disas.c | 2 +-
docs/amd-memory-encryption.txt | 109 +++++++
exec.c | 107 ++++++-
hmp.c | 2 +
hw/core/machine.c | 22 ++
hw/i386/pc.c | 9 +
hw/i386/pc_sysfw.c | 19 ++
include/exec/cpu-common.h | 15 +
include/exec/memattrs.h | 2 +
include/exec/memory.h | 27 ++
include/hw/boards.h | 1 +
include/sysemu/kvm.h | 25 ++
include/sysemu/sev.h | 76 +++++
linux-headers/linux/kvm.h | 90 ++++++
monitor.c | 8 +-
qapi-schema.json | 18 +-
qemu-options.hx | 36 +++
qmp.c | 1 +
target/i386/cpu.c | 36 +++
target/i386/cpu.h | 6 +
target/i386/helper.c | 46 ++-
target/i386/monitor.c | 145 +++++----
28 files changed, 1450 insertions(+), 89 deletions(-)
create mode 100644 accel/kvm/sev.c
create mode 100644 docs/amd-memory-encryption.txt
create mode 100644 include/sysemu/sev.h
--
2.9.5
^ permalink raw reply [flat|nested] 118+ messages in thread
* [PATCH v6 01/23] memattrs: add debug attribute
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
@ 2018-01-29 17:41 ` Brijesh Singh
-1 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh, Alistair Francis
Extend the MemTxAttrs to include 'debug' flag. The flag can be used as
general indicator that operation was triggered by the debugger.
Later in the patch series we set the debug=1 when issuing a memory access
from the gdbstub or HMP commands. This patch is prerequisite to support
debugging the encrypted guest. If we see request with debug=1 then we
will need to use encryption APIs to access the guest memory.
Cc: Alistair Francis <alistair.francis@xilinx.com>
Cc: Peter Maydell <peter.maydell@linaro.org>
Cc: Edgar E. Iglesias" <edgar.iglesias@xilinx.com>
Cc: Richard Henderson <richard.henderson@linaro.org>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
include/exec/memattrs.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/exec/memattrs.h b/include/exec/memattrs.h
index d4a16420984b..08099e4f7e72 100644
--- a/include/exec/memattrs.h
+++ b/include/exec/memattrs.h
@@ -37,6 +37,8 @@ typedef struct MemTxAttrs {
unsigned int user:1;
/* Requester ID (for MSI for example) */
unsigned int requester_id:16;
+ /* Memory access request from the debugger */
+ unsigned int debug:1;
} MemTxAttrs;
/* Bus masters which don't specify any attributes will get this,
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [Qemu-devel] [PATCH v6 01/23] memattrs: add debug attribute
@ 2018-01-29 17:41 ` Brijesh Singh
0 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh, Alistair Francis
Extend the MemTxAttrs to include 'debug' flag. The flag can be used as
general indicator that operation was triggered by the debugger.
Later in the patch series we set the debug=1 when issuing a memory access
from the gdbstub or HMP commands. This patch is prerequisite to support
debugging the encrypted guest. If we see request with debug=1 then we
will need to use encryption APIs to access the guest memory.
Cc: Alistair Francis <alistair.francis@xilinx.com>
Cc: Peter Maydell <peter.maydell@linaro.org>
Cc: Edgar E. Iglesias" <edgar.iglesias@xilinx.com>
Cc: Richard Henderson <richard.henderson@linaro.org>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
include/exec/memattrs.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/exec/memattrs.h b/include/exec/memattrs.h
index d4a16420984b..08099e4f7e72 100644
--- a/include/exec/memattrs.h
+++ b/include/exec/memattrs.h
@@ -37,6 +37,8 @@ typedef struct MemTxAttrs {
unsigned int user:1;
/* Requester ID (for MSI for example) */
unsigned int requester_id:16;
+ /* Memory access request from the debugger */
+ unsigned int debug:1;
} MemTxAttrs;
/* Bus masters which don't specify any attributes will get this,
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [PATCH v6 02/23] exec: add ram_debug_ops support
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
@ 2018-01-29 17:41 ` Brijesh Singh
-1 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh, Peter Crosthwaite,
Richard Henderson
Currently, the guest memory access for the debug purpose is performed
using the memcpy(). Lets extend the 'struct MemoryRegion' to include
ram_debug_ops callbacks. The ram_debug_ops can be used to override
memcpy() with something else.
The feature can be used by encrypted guest -- which can register
callbacks to override memcpy() with memory encryption/decryption APIs.
a typical usage:
mem_read(uint8_t *dst, uint8_t *src, uint32_t len, MemTxAttrs *attrs);
mem_write(uint8_t *dst, uint8_t *src, uint32_t len, MemTxAttrs *attrs);
MemoryRegionRAMReadWriteOps ops;
ops.read = mem_read;
ops.write = mem_write;
memory_region_init_ram(mem, NULL, "memory", size, NULL);
memory_region_set_ram_debug_ops(mem, ops);
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Peter Crosthwaite <crosthwaite.peter@gmail.com>
Cc: Richard Henderson <rth@twiddle.net>
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
exec.c | 66 ++++++++++++++++++++++++++++++++++++++-------------
include/exec/memory.h | 27 +++++++++++++++++++++
2 files changed, 77 insertions(+), 16 deletions(-)
diff --git a/exec.c b/exec.c
index 629a5083851d..1919052b7385 100644
--- a/exec.c
+++ b/exec.c
@@ -3050,7 +3050,11 @@ static MemTxResult flatview_write_continue(FlatView *fv, hwaddr addr,
} else {
/* RAM case */
ptr = qemu_ram_ptr_length(mr->ram_block, addr1, &l, false);
- memcpy(ptr, buf, l);
+ if (attrs.debug && mr->ram_debug_ops) {
+ mr->ram_debug_ops->write(ptr, buf, l, attrs);
+ } else {
+ memcpy(ptr, buf, l);
+ }
invalidate_and_set_dirty(mr, addr1, l);
}
@@ -3148,7 +3152,11 @@ MemTxResult flatview_read_continue(FlatView *fv, hwaddr addr,
} else {
/* RAM case */
ptr = qemu_ram_ptr_length(mr->ram_block, addr1, &l, false);
- memcpy(buf, ptr, l);
+ if (attrs.debug && mr->ram_debug_ops) {
+ mr->ram_debug_ops->read(buf, ptr, l, attrs);
+ } else {
+ memcpy(buf, ptr, l);
+ }
}
if (release_lock) {
@@ -3218,11 +3226,13 @@ void cpu_physical_memory_rw(hwaddr addr, uint8_t *buf,
enum write_rom_type {
WRITE_DATA,
+ READ_DATA,
FLUSH_CACHE,
};
-static inline void cpu_physical_memory_write_rom_internal(AddressSpace *as,
- hwaddr addr, const uint8_t *buf, int len, enum write_rom_type type)
+static inline void cpu_physical_memory_rw_internal(AddressSpace *as,
+ hwaddr addr, uint8_t *buf, int len, MemTxAttrs attrs,
+ enum write_rom_type type)
{
hwaddr l;
uint8_t *ptr;
@@ -3237,12 +3247,33 @@ static inline void cpu_physical_memory_write_rom_internal(AddressSpace *as,
if (!(memory_region_is_ram(mr) ||
memory_region_is_romd(mr))) {
l = memory_access_size(mr, l, addr1);
+ /* Pass MMIO down to address address_space_rw */
+ switch (type) {
+ case READ_DATA:
+ case WRITE_DATA:
+ address_space_rw(as, addr1, attrs, buf, l,
+ type == WRITE_DATA);
+ break;
+ case FLUSH_CACHE:
+ break;
+ }
} else {
/* ROM/RAM case */
ptr = qemu_map_ram_ptr(mr->ram_block, addr1);
switch (type) {
+ case READ_DATA:
+ if (mr->ram_debug_ops) {
+ mr->ram_debug_ops->read(buf, ptr, l, attrs);
+ } else {
+ memcpy(buf, ptr, l);
+ }
+ break;
case WRITE_DATA:
- memcpy(ptr, buf, l);
+ if (mr->ram_debug_ops) {
+ mr->ram_debug_ops->write(ptr, buf, l, attrs);
+ } else {
+ memcpy(ptr, buf, l);
+ }
invalidate_and_set_dirty(mr, addr1, l);
break;
case FLUSH_CACHE:
@@ -3261,7 +3292,8 @@ static inline void cpu_physical_memory_write_rom_internal(AddressSpace *as,
void cpu_physical_memory_write_rom(AddressSpace *as, hwaddr addr,
const uint8_t *buf, int len)
{
- cpu_physical_memory_write_rom_internal(as, addr, buf, len, WRITE_DATA);
+ cpu_physical_memory_rw_internal(as, addr, (uint8_t *)buf, len,
+ MEMTXATTRS_UNSPECIFIED, WRITE_DATA);
}
void cpu_flush_icache_range(hwaddr start, int len)
@@ -3276,8 +3308,10 @@ void cpu_flush_icache_range(hwaddr start, int len)
return;
}
- cpu_physical_memory_write_rom_internal(&address_space_memory,
- start, NULL, len, FLUSH_CACHE);
+ cpu_physical_memory_rw_internal(&address_space_memory,
+ start, NULL, len,
+ MEMTXATTRS_UNSPECIFIED,
+ FLUSH_CACHE);
}
typedef struct {
@@ -3583,6 +3617,7 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
int l;
hwaddr phys_addr;
target_ulong page;
+ int type = is_write ? WRITE_DATA : READ_DATA;
cpu_synchronize_state(cpu);
while (len > 0) {
@@ -3592,6 +3627,10 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
page = addr & TARGET_PAGE_MASK;
phys_addr = cpu_get_phys_page_attrs_debug(cpu, page, &attrs);
asidx = cpu_asidx_from_attrs(cpu, attrs);
+
+ /* set debug attrs to indicate memory access is from the debugger */
+ attrs.debug = 1;
+
/* if no physical page mapped, return an error */
if (phys_addr == -1)
return -1;
@@ -3599,14 +3638,9 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
if (l > len)
l = len;
phys_addr += (addr & ~TARGET_PAGE_MASK);
- if (is_write) {
- cpu_physical_memory_write_rom(cpu->cpu_ases[asidx].as,
- phys_addr, buf, l);
- } else {
- address_space_rw(cpu->cpu_ases[asidx].as, phys_addr,
- MEMTXATTRS_UNSPECIFIED,
- buf, l, 0);
- }
+ cpu_physical_memory_rw_internal(cpu->cpu_ases[asidx].as,
+ phys_addr, buf, l, attrs,
+ type);
len -= l;
buf += l;
addr += l;
diff --git a/include/exec/memory.h b/include/exec/memory.h
index 07c5d6d59796..4d027fffeebf 100644
--- a/include/exec/memory.h
+++ b/include/exec/memory.h
@@ -215,6 +215,18 @@ typedef struct IOMMUMemoryRegionClass {
typedef struct CoalescedMemoryRange CoalescedMemoryRange;
typedef struct MemoryRegionIoeventfd MemoryRegionIoeventfd;
+/* Memory Region RAM debug callback */
+typedef struct MemoryRegionRAMReadWriteOps MemoryRegionRAMReadWriteOps;
+
+struct MemoryRegionRAMReadWriteOps {
+ /* Write data into guest memory */
+ int (*write) (uint8_t *dest, const uint8_t *src,
+ uint32_t len, MemTxAttrs attrs);
+ /* Read data from guest memory */
+ int (*read) (uint8_t *dest, const uint8_t *src,
+ uint32_t len, MemTxAttrs attrs);
+};
+
struct MemoryRegion {
Object parent_obj;
@@ -254,6 +266,7 @@ struct MemoryRegion {
const char *name;
unsigned ioeventfd_nb;
MemoryRegionIoeventfd *ioeventfds;
+ const MemoryRegionRAMReadWriteOps *ram_debug_ops;
};
struct IOMMUMemoryRegion {
@@ -624,6 +637,20 @@ void memory_region_init_rom_device_nomigrate(MemoryRegion *mr,
Error **errp);
/**
+ * memory_region_set_ram_debug_ops: Set debug access ops for a given memory region
+ *
+ * @mr: the #MemoryRegion to be initialized
+ * @ops: a function that will be used for when accessing @target region during
+ * debug
+ */
+static inline void
+memory_region_set_ram_debug_ops(MemoryRegion *mr,
+ const MemoryRegionRAMReadWriteOps *ops)
+{
+ mr->ram_debug_ops = ops;
+}
+
+/**
* memory_region_init_reservation: Initialize a memory region that reserves
* I/O space.
*
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [Qemu-devel] [PATCH v6 02/23] exec: add ram_debug_ops support
@ 2018-01-29 17:41 ` Brijesh Singh
0 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh, Peter Crosthwaite,
Richard Henderson
Currently, the guest memory access for the debug purpose is performed
using the memcpy(). Lets extend the 'struct MemoryRegion' to include
ram_debug_ops callbacks. The ram_debug_ops can be used to override
memcpy() with something else.
The feature can be used by encrypted guest -- which can register
callbacks to override memcpy() with memory encryption/decryption APIs.
a typical usage:
mem_read(uint8_t *dst, uint8_t *src, uint32_t len, MemTxAttrs *attrs);
mem_write(uint8_t *dst, uint8_t *src, uint32_t len, MemTxAttrs *attrs);
MemoryRegionRAMReadWriteOps ops;
ops.read = mem_read;
ops.write = mem_write;
memory_region_init_ram(mem, NULL, "memory", size, NULL);
memory_region_set_ram_debug_ops(mem, ops);
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Peter Crosthwaite <crosthwaite.peter@gmail.com>
Cc: Richard Henderson <rth@twiddle.net>
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
exec.c | 66 ++++++++++++++++++++++++++++++++++++++-------------
include/exec/memory.h | 27 +++++++++++++++++++++
2 files changed, 77 insertions(+), 16 deletions(-)
diff --git a/exec.c b/exec.c
index 629a5083851d..1919052b7385 100644
--- a/exec.c
+++ b/exec.c
@@ -3050,7 +3050,11 @@ static MemTxResult flatview_write_continue(FlatView *fv, hwaddr addr,
} else {
/* RAM case */
ptr = qemu_ram_ptr_length(mr->ram_block, addr1, &l, false);
- memcpy(ptr, buf, l);
+ if (attrs.debug && mr->ram_debug_ops) {
+ mr->ram_debug_ops->write(ptr, buf, l, attrs);
+ } else {
+ memcpy(ptr, buf, l);
+ }
invalidate_and_set_dirty(mr, addr1, l);
}
@@ -3148,7 +3152,11 @@ MemTxResult flatview_read_continue(FlatView *fv, hwaddr addr,
} else {
/* RAM case */
ptr = qemu_ram_ptr_length(mr->ram_block, addr1, &l, false);
- memcpy(buf, ptr, l);
+ if (attrs.debug && mr->ram_debug_ops) {
+ mr->ram_debug_ops->read(buf, ptr, l, attrs);
+ } else {
+ memcpy(buf, ptr, l);
+ }
}
if (release_lock) {
@@ -3218,11 +3226,13 @@ void cpu_physical_memory_rw(hwaddr addr, uint8_t *buf,
enum write_rom_type {
WRITE_DATA,
+ READ_DATA,
FLUSH_CACHE,
};
-static inline void cpu_physical_memory_write_rom_internal(AddressSpace *as,
- hwaddr addr, const uint8_t *buf, int len, enum write_rom_type type)
+static inline void cpu_physical_memory_rw_internal(AddressSpace *as,
+ hwaddr addr, uint8_t *buf, int len, MemTxAttrs attrs,
+ enum write_rom_type type)
{
hwaddr l;
uint8_t *ptr;
@@ -3237,12 +3247,33 @@ static inline void cpu_physical_memory_write_rom_internal(AddressSpace *as,
if (!(memory_region_is_ram(mr) ||
memory_region_is_romd(mr))) {
l = memory_access_size(mr, l, addr1);
+ /* Pass MMIO down to address address_space_rw */
+ switch (type) {
+ case READ_DATA:
+ case WRITE_DATA:
+ address_space_rw(as, addr1, attrs, buf, l,
+ type == WRITE_DATA);
+ break;
+ case FLUSH_CACHE:
+ break;
+ }
} else {
/* ROM/RAM case */
ptr = qemu_map_ram_ptr(mr->ram_block, addr1);
switch (type) {
+ case READ_DATA:
+ if (mr->ram_debug_ops) {
+ mr->ram_debug_ops->read(buf, ptr, l, attrs);
+ } else {
+ memcpy(buf, ptr, l);
+ }
+ break;
case WRITE_DATA:
- memcpy(ptr, buf, l);
+ if (mr->ram_debug_ops) {
+ mr->ram_debug_ops->write(ptr, buf, l, attrs);
+ } else {
+ memcpy(ptr, buf, l);
+ }
invalidate_and_set_dirty(mr, addr1, l);
break;
case FLUSH_CACHE:
@@ -3261,7 +3292,8 @@ static inline void cpu_physical_memory_write_rom_internal(AddressSpace *as,
void cpu_physical_memory_write_rom(AddressSpace *as, hwaddr addr,
const uint8_t *buf, int len)
{
- cpu_physical_memory_write_rom_internal(as, addr, buf, len, WRITE_DATA);
+ cpu_physical_memory_rw_internal(as, addr, (uint8_t *)buf, len,
+ MEMTXATTRS_UNSPECIFIED, WRITE_DATA);
}
void cpu_flush_icache_range(hwaddr start, int len)
@@ -3276,8 +3308,10 @@ void cpu_flush_icache_range(hwaddr start, int len)
return;
}
- cpu_physical_memory_write_rom_internal(&address_space_memory,
- start, NULL, len, FLUSH_CACHE);
+ cpu_physical_memory_rw_internal(&address_space_memory,
+ start, NULL, len,
+ MEMTXATTRS_UNSPECIFIED,
+ FLUSH_CACHE);
}
typedef struct {
@@ -3583,6 +3617,7 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
int l;
hwaddr phys_addr;
target_ulong page;
+ int type = is_write ? WRITE_DATA : READ_DATA;
cpu_synchronize_state(cpu);
while (len > 0) {
@@ -3592,6 +3627,10 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
page = addr & TARGET_PAGE_MASK;
phys_addr = cpu_get_phys_page_attrs_debug(cpu, page, &attrs);
asidx = cpu_asidx_from_attrs(cpu, attrs);
+
+ /* set debug attrs to indicate memory access is from the debugger */
+ attrs.debug = 1;
+
/* if no physical page mapped, return an error */
if (phys_addr == -1)
return -1;
@@ -3599,14 +3638,9 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
if (l > len)
l = len;
phys_addr += (addr & ~TARGET_PAGE_MASK);
- if (is_write) {
- cpu_physical_memory_write_rom(cpu->cpu_ases[asidx].as,
- phys_addr, buf, l);
- } else {
- address_space_rw(cpu->cpu_ases[asidx].as, phys_addr,
- MEMTXATTRS_UNSPECIFIED,
- buf, l, 0);
- }
+ cpu_physical_memory_rw_internal(cpu->cpu_ases[asidx].as,
+ phys_addr, buf, l, attrs,
+ type);
len -= l;
buf += l;
addr += l;
diff --git a/include/exec/memory.h b/include/exec/memory.h
index 07c5d6d59796..4d027fffeebf 100644
--- a/include/exec/memory.h
+++ b/include/exec/memory.h
@@ -215,6 +215,18 @@ typedef struct IOMMUMemoryRegionClass {
typedef struct CoalescedMemoryRange CoalescedMemoryRange;
typedef struct MemoryRegionIoeventfd MemoryRegionIoeventfd;
+/* Memory Region RAM debug callback */
+typedef struct MemoryRegionRAMReadWriteOps MemoryRegionRAMReadWriteOps;
+
+struct MemoryRegionRAMReadWriteOps {
+ /* Write data into guest memory */
+ int (*write) (uint8_t *dest, const uint8_t *src,
+ uint32_t len, MemTxAttrs attrs);
+ /* Read data from guest memory */
+ int (*read) (uint8_t *dest, const uint8_t *src,
+ uint32_t len, MemTxAttrs attrs);
+};
+
struct MemoryRegion {
Object parent_obj;
@@ -254,6 +266,7 @@ struct MemoryRegion {
const char *name;
unsigned ioeventfd_nb;
MemoryRegionIoeventfd *ioeventfds;
+ const MemoryRegionRAMReadWriteOps *ram_debug_ops;
};
struct IOMMUMemoryRegion {
@@ -624,6 +637,20 @@ void memory_region_init_rom_device_nomigrate(MemoryRegion *mr,
Error **errp);
/**
+ * memory_region_set_ram_debug_ops: Set debug access ops for a given memory region
+ *
+ * @mr: the #MemoryRegion to be initialized
+ * @ops: a function that will be used for when accessing @target region during
+ * debug
+ */
+static inline void
+memory_region_set_ram_debug_ops(MemoryRegion *mr,
+ const MemoryRegionRAMReadWriteOps *ops)
+{
+ mr->ram_debug_ops = ops;
+}
+
+/**
* memory_region_init_reservation: Initialize a memory region that reserves
* I/O space.
*
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [PATCH v6 03/23] exec: add debug version of physical memory read and write API
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
@ 2018-01-29 17:41 ` Brijesh Singh
-1 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh, Peter Crosthwaite,
Richard Henderson
Adds the following new APIs
- cpu_physical_memory_read_debug
- cpu_physical_memory_write_debug
- cpu_physical_memory_rw_debug
- ldl_phys_debug
- ldq_phys_debug
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Peter Crosthwaite <crosthwaite.peter@gmail.com>
Cc: Richard Henderson <rth@twiddle.net>
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
---
exec.c | 41 +++++++++++++++++++++++++++++++++++++++++
include/exec/cpu-common.h | 15 +++++++++++++++
2 files changed, 56 insertions(+)
diff --git a/exec.c b/exec.c
index 1919052b7385..49dabdbeecbd 100644
--- a/exec.c
+++ b/exec.c
@@ -3610,6 +3610,47 @@ void address_space_cache_destroy(MemoryRegionCache *cache)
#define RCU_READ_UNLOCK() rcu_read_unlock()
#include "memory_ldst.inc.c"
+uint32_t ldl_phys_debug(CPUState *cpu, hwaddr addr)
+{
+ MemTxAttrs attrs;
+ int asidx = cpu_asidx_from_attrs(cpu, attrs);
+ uint32_t val;
+
+ /* set debug attrs to indicate memory access is from the debugger */
+ attrs.debug = 1;
+
+ cpu_physical_memory_rw_internal(cpu->cpu_ases[asidx].as,
+ addr, (void *) &val,
+ 4, attrs, READ_DATA);
+ return tswap32(val);
+}
+
+uint64_t ldq_phys_debug(CPUState *cpu, hwaddr addr)
+{
+ MemTxAttrs attrs;
+ int asidx = cpu_asidx_from_attrs(cpu, attrs);
+ uint64_t val;
+
+ /* set debug attrs to indicate memory access is from the debugger */
+ attrs.debug = 1;
+
+ cpu_physical_memory_rw_internal(cpu->cpu_ases[asidx].as,
+ addr, (void *) &val,
+ 8, attrs, READ_DATA);
+ return val;
+}
+
+void cpu_physical_memory_rw_debug(hwaddr addr, uint8_t *buf,
+ int len, int is_write)
+{
+ MemTxAttrs attrs;
+
+ /* set debug attrs to indicate memory access is from the debugger */
+ attrs.debug = 1;
+
+ address_space_rw(&address_space_memory, addr, attrs, buf, len, is_write);
+}
+
/* virtual memory access for debug (includes writing to ROM) */
int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
uint8_t *buf, int len, int is_write)
diff --git a/include/exec/cpu-common.h b/include/exec/cpu-common.h
index 74341b19d26a..fa01385d4f1b 100644
--- a/include/exec/cpu-common.h
+++ b/include/exec/cpu-common.h
@@ -77,11 +77,26 @@ size_t qemu_ram_pagesize_largest(void);
void cpu_physical_memory_rw(hwaddr addr, uint8_t *buf,
int len, int is_write);
+void cpu_physical_memory_rw_debug(hwaddr addr, uint8_t *buf,
+ int len, int is_write);
static inline void cpu_physical_memory_read(hwaddr addr,
void *buf, int len)
{
cpu_physical_memory_rw(addr, buf, len, 0);
}
+static inline void cpu_physical_memory_read_debug(hwaddr addr,
+ void *buf, int len)
+{
+ cpu_physical_memory_rw_debug(addr, buf, len, 0);
+}
+static inline void cpu_physical_memory_write_debug(hwaddr addr,
+ const void *buf, int len)
+{
+ cpu_physical_memory_rw_debug(addr, (void *)buf, len, 1);
+}
+uint32_t ldl_phys_debug(CPUState *cpu, hwaddr addr);
+uint64_t ldq_phys_debug(CPUState *cpu, hwaddr addr);
+
static inline void cpu_physical_memory_write(hwaddr addr,
const void *buf, int len)
{
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [Qemu-devel] [PATCH v6 03/23] exec: add debug version of physical memory read and write API
@ 2018-01-29 17:41 ` Brijesh Singh
0 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh, Peter Crosthwaite,
Richard Henderson
Adds the following new APIs
- cpu_physical_memory_read_debug
- cpu_physical_memory_write_debug
- cpu_physical_memory_rw_debug
- ldl_phys_debug
- ldq_phys_debug
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Peter Crosthwaite <crosthwaite.peter@gmail.com>
Cc: Richard Henderson <rth@twiddle.net>
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
---
exec.c | 41 +++++++++++++++++++++++++++++++++++++++++
include/exec/cpu-common.h | 15 +++++++++++++++
2 files changed, 56 insertions(+)
diff --git a/exec.c b/exec.c
index 1919052b7385..49dabdbeecbd 100644
--- a/exec.c
+++ b/exec.c
@@ -3610,6 +3610,47 @@ void address_space_cache_destroy(MemoryRegionCache *cache)
#define RCU_READ_UNLOCK() rcu_read_unlock()
#include "memory_ldst.inc.c"
+uint32_t ldl_phys_debug(CPUState *cpu, hwaddr addr)
+{
+ MemTxAttrs attrs;
+ int asidx = cpu_asidx_from_attrs(cpu, attrs);
+ uint32_t val;
+
+ /* set debug attrs to indicate memory access is from the debugger */
+ attrs.debug = 1;
+
+ cpu_physical_memory_rw_internal(cpu->cpu_ases[asidx].as,
+ addr, (void *) &val,
+ 4, attrs, READ_DATA);
+ return tswap32(val);
+}
+
+uint64_t ldq_phys_debug(CPUState *cpu, hwaddr addr)
+{
+ MemTxAttrs attrs;
+ int asidx = cpu_asidx_from_attrs(cpu, attrs);
+ uint64_t val;
+
+ /* set debug attrs to indicate memory access is from the debugger */
+ attrs.debug = 1;
+
+ cpu_physical_memory_rw_internal(cpu->cpu_ases[asidx].as,
+ addr, (void *) &val,
+ 8, attrs, READ_DATA);
+ return val;
+}
+
+void cpu_physical_memory_rw_debug(hwaddr addr, uint8_t *buf,
+ int len, int is_write)
+{
+ MemTxAttrs attrs;
+
+ /* set debug attrs to indicate memory access is from the debugger */
+ attrs.debug = 1;
+
+ address_space_rw(&address_space_memory, addr, attrs, buf, len, is_write);
+}
+
/* virtual memory access for debug (includes writing to ROM) */
int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
uint8_t *buf, int len, int is_write)
diff --git a/include/exec/cpu-common.h b/include/exec/cpu-common.h
index 74341b19d26a..fa01385d4f1b 100644
--- a/include/exec/cpu-common.h
+++ b/include/exec/cpu-common.h
@@ -77,11 +77,26 @@ size_t qemu_ram_pagesize_largest(void);
void cpu_physical_memory_rw(hwaddr addr, uint8_t *buf,
int len, int is_write);
+void cpu_physical_memory_rw_debug(hwaddr addr, uint8_t *buf,
+ int len, int is_write);
static inline void cpu_physical_memory_read(hwaddr addr,
void *buf, int len)
{
cpu_physical_memory_rw(addr, buf, len, 0);
}
+static inline void cpu_physical_memory_read_debug(hwaddr addr,
+ void *buf, int len)
+{
+ cpu_physical_memory_rw_debug(addr, buf, len, 0);
+}
+static inline void cpu_physical_memory_write_debug(hwaddr addr,
+ const void *buf, int len)
+{
+ cpu_physical_memory_rw_debug(addr, (void *)buf, len, 1);
+}
+uint32_t ldl_phys_debug(CPUState *cpu, hwaddr addr);
+uint64_t ldq_phys_debug(CPUState *cpu, hwaddr addr);
+
static inline void cpu_physical_memory_write(hwaddr addr,
const void *buf, int len)
{
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [PATCH v6 04/23] monitor/i386: use debug APIs when accessing guest memory
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
@ 2018-01-29 17:41 ` Brijesh Singh
-1 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh, Peter Crosthwaite,
Richard Henderson, Markus Armbruster
Updates HMP commands to use the debug version of APIs when accessing the
guest memory.
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Peter Crosthwaite <crosthwaite.peter@gmail.com>
Cc: Richard Henderson <rth@twiddle.net>
Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
Cc: Markus Armbruster <armbru@redhat.com>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
cpus.c | 2 +-
disas.c | 2 +-
monitor.c | 8 ++++---
target/i386/helper.c | 14 ++++++------
target/i386/monitor.c | 59 +++++++++++++++++++++++++++------------------------
5 files changed, 45 insertions(+), 40 deletions(-)
diff --git a/cpus.c b/cpus.c
index 2cb0af9b2249..c50e5613bed8 100644
--- a/cpus.c
+++ b/cpus.c
@@ -2147,7 +2147,7 @@ void qmp_pmemsave(int64_t addr, int64_t size, const char *filename,
l = sizeof(buf);
if (l > size)
l = size;
- cpu_physical_memory_read(addr, buf, l);
+ cpu_physical_memory_read_debug(addr, buf, l);
if (fwrite(buf, 1, l, f) != l) {
error_setg(errp, QERR_IO_ERROR);
goto exit;
diff --git a/disas.c b/disas.c
index d4ad1089efb3..fcedbf263302 100644
--- a/disas.c
+++ b/disas.c
@@ -586,7 +586,7 @@ static int
physical_read_memory(bfd_vma memaddr, bfd_byte *myaddr, int length,
struct disassemble_info *info)
{
- cpu_physical_memory_read(memaddr, myaddr, length);
+ cpu_physical_memory_read_debug(memaddr, myaddr, length);
return 0;
}
diff --git a/monitor.c b/monitor.c
index b9da5e20d1e7..2c082d31549d 100644
--- a/monitor.c
+++ b/monitor.c
@@ -1358,7 +1358,7 @@ static void memory_dump(Monitor *mon, int count, int format, int wsize,
if (l > line_size)
l = line_size;
if (is_physical) {
- cpu_physical_memory_read(addr, buf, l);
+ cpu_physical_memory_read_debug(addr, buf, l);
} else {
if (cpu_memory_rw_debug(cs, addr, buf, l, 0) < 0) {
monitor_printf(mon, " Cannot access memory\n");
@@ -1564,8 +1564,10 @@ static void hmp_sum(Monitor *mon, const QDict *qdict)
sum = 0;
for(addr = start; addr < (start + size); addr++) {
- uint8_t val = address_space_ldub(&address_space_memory, addr,
- MEMTXATTRS_UNSPECIFIED, NULL);
+ uint8_t buf[0];
+ uint8_t val;
+ cpu_physical_memory_read_debug(addr, buf, 1);
+ val = ldub_p(buf);
/* BSD sum algorithm ('sum' Unix command) */
sum = (sum >> 1) | (sum << 15);
sum += val;
diff --git a/target/i386/helper.c b/target/i386/helper.c
index f63eb3d3f4fb..5dc9e8839bc8 100644
--- a/target/i386/helper.c
+++ b/target/i386/helper.c
@@ -757,7 +757,7 @@ hwaddr x86_cpu_get_phys_page_debug(CPUState *cs, vaddr addr)
if (la57) {
pml5e_addr = ((env->cr[3] & ~0xfff) +
(((addr >> 48) & 0x1ff) << 3)) & a20_mask;
- pml5e = x86_ldq_phys(cs, pml5e_addr);
+ pml5e = ldq_phys_debug(cs, pml5e_addr);
if (!(pml5e & PG_PRESENT_MASK)) {
return -1;
}
@@ -767,7 +767,7 @@ hwaddr x86_cpu_get_phys_page_debug(CPUState *cs, vaddr addr)
pml4e_addr = ((pml5e & PG_ADDRESS_MASK) +
(((addr >> 39) & 0x1ff) << 3)) & a20_mask;
- pml4e = x86_ldq_phys(cs, pml4e_addr);
+ pml4e = ldq_phys_debug(cs, pml4e_addr);
if (!(pml4e & PG_PRESENT_MASK)) {
return -1;
}
@@ -788,14 +788,14 @@ hwaddr x86_cpu_get_phys_page_debug(CPUState *cs, vaddr addr)
{
pdpe_addr = ((env->cr[3] & ~0x1f) + ((addr >> 27) & 0x18)) &
a20_mask;
- pdpe = x86_ldq_phys(cs, pdpe_addr);
+ pdpe = ldq_phys_debug(cs, pdpe_addr);
if (!(pdpe & PG_PRESENT_MASK))
return -1;
}
pde_addr = ((pdpe & PG_ADDRESS_MASK) +
(((addr >> 21) & 0x1ff) << 3)) & a20_mask;
- pde = x86_ldq_phys(cs, pde_addr);
+ pde = ldq_phys_debug(cs, pde_addr);
if (!(pde & PG_PRESENT_MASK)) {
return -1;
}
@@ -808,7 +808,7 @@ hwaddr x86_cpu_get_phys_page_debug(CPUState *cs, vaddr addr)
pte_addr = ((pde & PG_ADDRESS_MASK) +
(((addr >> 12) & 0x1ff) << 3)) & a20_mask;
page_size = 4096;
- pte = x86_ldq_phys(cs, pte_addr);
+ pte = ldq_phys_debug(cs, pte_addr);
}
if (!(pte & PG_PRESENT_MASK)) {
return -1;
@@ -818,7 +818,7 @@ hwaddr x86_cpu_get_phys_page_debug(CPUState *cs, vaddr addr)
/* page directory entry */
pde_addr = ((env->cr[3] & ~0xfff) + ((addr >> 20) & 0xffc)) & a20_mask;
- pde = x86_ldl_phys(cs, pde_addr);
+ pde = ldl_phys_debug(cs, pde_addr);
if (!(pde & PG_PRESENT_MASK))
return -1;
if ((pde & PG_PSE_MASK) && (env->cr[4] & CR4_PSE_MASK)) {
@@ -827,7 +827,7 @@ hwaddr x86_cpu_get_phys_page_debug(CPUState *cs, vaddr addr)
} else {
/* page directory entry */
pte_addr = ((pde & ~0xfff) + ((addr >> 10) & 0xffc)) & a20_mask;
- pte = x86_ldl_phys(cs, pte_addr);
+ pte = ldl_phys_debug(cs, pte_addr);
if (!(pte & PG_PRESENT_MASK)) {
return -1;
}
diff --git a/target/i386/monitor.c b/target/i386/monitor.c
index 75e155ffb1c4..96890547f6b4 100644
--- a/target/i386/monitor.c
+++ b/target/i386/monitor.c
@@ -66,7 +66,7 @@ static void tlb_info_32(Monitor *mon, CPUArchState *env)
pgd = env->cr[3] & ~0xfff;
for(l1 = 0; l1 < 1024; l1++) {
- cpu_physical_memory_read(pgd + l1 * 4, &pde, 4);
+ cpu_physical_memory_read_debug(pgd + l1 * 4, &pde, 4);
pde = le32_to_cpu(pde);
if (pde & PG_PRESENT_MASK) {
if ((pde & PG_PSE_MASK) && (env->cr[4] & CR4_PSE_MASK)) {
@@ -74,7 +74,8 @@ static void tlb_info_32(Monitor *mon, CPUArchState *env)
print_pte(mon, env, (l1 << 22), pde, ~((1 << 21) - 1));
} else {
for(l2 = 0; l2 < 1024; l2++) {
- cpu_physical_memory_read((pde & ~0xfff) + l2 * 4, &pte, 4);
+ cpu_physical_memory_read_debug((pde & ~0xfff) + l2 * 4,
+ &pte, 4);
pte = le32_to_cpu(pte);
if (pte & PG_PRESENT_MASK) {
print_pte(mon, env, (l1 << 22) + (l2 << 12),
@@ -95,12 +96,12 @@ static void tlb_info_pae32(Monitor *mon, CPUArchState *env)
pdp_addr = env->cr[3] & ~0x1f;
for (l1 = 0; l1 < 4; l1++) {
- cpu_physical_memory_read(pdp_addr + l1 * 8, &pdpe, 8);
+ cpu_physical_memory_read_debug(pdp_addr + l1 * 8, &pdpe, 8);
pdpe = le64_to_cpu(pdpe);
if (pdpe & PG_PRESENT_MASK) {
pd_addr = pdpe & 0x3fffffffff000ULL;
for (l2 = 0; l2 < 512; l2++) {
- cpu_physical_memory_read(pd_addr + l2 * 8, &pde, 8);
+ cpu_physical_memory_read_debug(pd_addr + l2 * 8, &pde, 8);
pde = le64_to_cpu(pde);
if (pde & PG_PRESENT_MASK) {
if (pde & PG_PSE_MASK) {
@@ -110,7 +111,8 @@ static void tlb_info_pae32(Monitor *mon, CPUArchState *env)
} else {
pt_addr = pde & 0x3fffffffff000ULL;
for (l3 = 0; l3 < 512; l3++) {
- cpu_physical_memory_read(pt_addr + l3 * 8, &pte, 8);
+ cpu_physical_memory_read_debug(pt_addr + l3 * 8,
+ &pte, 8);
pte = le64_to_cpu(pte);
if (pte & PG_PRESENT_MASK) {
print_pte(mon, env, (l1 << 30) + (l2 << 21)
@@ -135,7 +137,7 @@ static void tlb_info_la48(Monitor *mon, CPUArchState *env,
uint64_t pdp_addr, pd_addr, pt_addr;
for (l1 = 0; l1 < 512; l1++) {
- cpu_physical_memory_read(pml4_addr + l1 * 8, &pml4e, 8);
+ cpu_physical_memory_read_debug(pml4_addr + l1 * 8, &pml4e, 8);
pml4e = le64_to_cpu(pml4e);
if (!(pml4e & PG_PRESENT_MASK)) {
continue;
@@ -143,7 +145,7 @@ static void tlb_info_la48(Monitor *mon, CPUArchState *env,
pdp_addr = pml4e & 0x3fffffffff000ULL;
for (l2 = 0; l2 < 512; l2++) {
- cpu_physical_memory_read(pdp_addr + l2 * 8, &pdpe, 8);
+ cpu_physical_memory_read_debug(pdp_addr + l2 * 8, &pdpe, 8);
pdpe = le64_to_cpu(pdpe);
if (!(pdpe & PG_PRESENT_MASK)) {
continue;
@@ -158,7 +160,7 @@ static void tlb_info_la48(Monitor *mon, CPUArchState *env,
pd_addr = pdpe & 0x3fffffffff000ULL;
for (l3 = 0; l3 < 512; l3++) {
- cpu_physical_memory_read(pd_addr + l3 * 8, &pde, 8);
+ cpu_physical_memory_read_debug(pd_addr + l3 * 8, &pde, 8);
pde = le64_to_cpu(pde);
if (!(pde & PG_PRESENT_MASK)) {
continue;
@@ -173,9 +175,7 @@ static void tlb_info_la48(Monitor *mon, CPUArchState *env,
pt_addr = pde & 0x3fffffffff000ULL;
for (l4 = 0; l4 < 512; l4++) {
- cpu_physical_memory_read(pt_addr
- + l4 * 8,
- &pte, 8);
+ cpu_physical_memory_read_debug(pt_addr + l4 * 8, &pte, 8);
pte = le64_to_cpu(pte);
if (pte & PG_PRESENT_MASK) {
print_pte(mon, env, (l0 << 48) + (l1 << 39) +
@@ -196,7 +196,7 @@ static void tlb_info_la57(Monitor *mon, CPUArchState *env)
pml5_addr = env->cr[3] & 0x3fffffffff000ULL;
for (l0 = 0; l0 < 512; l0++) {
- cpu_physical_memory_read(pml5_addr + l0 * 8, &pml5e, 8);
+ cpu_physical_memory_read_debug(pml5_addr + l0 * 8, &pml5e, 8);
pml5e = le64_to_cpu(pml5e);
if (pml5e & PG_PRESENT_MASK) {
tlb_info_la48(mon, env, l0, pml5e & 0x3fffffffff000ULL);
@@ -271,7 +271,7 @@ static void mem_info_32(Monitor *mon, CPUArchState *env)
last_prot = 0;
start = -1;
for(l1 = 0; l1 < 1024; l1++) {
- cpu_physical_memory_read(pgd + l1 * 4, &pde, 4);
+ cpu_physical_memory_read_debug(pgd + l1 * 4, &pde, 4);
pde = le32_to_cpu(pde);
end = l1 << 22;
if (pde & PG_PRESENT_MASK) {
@@ -280,7 +280,8 @@ static void mem_info_32(Monitor *mon, CPUArchState *env)
mem_print(mon, &start, &last_prot, end, prot);
} else {
for(l2 = 0; l2 < 1024; l2++) {
- cpu_physical_memory_read((pde & ~0xfff) + l2 * 4, &pte, 4);
+ cpu_physical_memory_read_debug((pde & ~0xfff) + l2 * 4,
+ &pte, 4);
pte = le32_to_cpu(pte);
end = (l1 << 22) + (l2 << 12);
if (pte & PG_PRESENT_MASK) {
@@ -313,13 +314,13 @@ static void mem_info_pae32(Monitor *mon, CPUArchState *env)
last_prot = 0;
start = -1;
for (l1 = 0; l1 < 4; l1++) {
- cpu_physical_memory_read(pdp_addr + l1 * 8, &pdpe, 8);
+ cpu_physical_memory_read_debug(pdp_addr + l1 * 8, &pdpe, 8);
pdpe = le64_to_cpu(pdpe);
end = l1 << 30;
if (pdpe & PG_PRESENT_MASK) {
pd_addr = pdpe & 0x3fffffffff000ULL;
for (l2 = 0; l2 < 512; l2++) {
- cpu_physical_memory_read(pd_addr + l2 * 8, &pde, 8);
+ cpu_physical_memory_read_debug(pd_addr + l2 * 8, &pde, 8);
pde = le64_to_cpu(pde);
end = (l1 << 30) + (l2 << 21);
if (pde & PG_PRESENT_MASK) {
@@ -330,7 +331,8 @@ static void mem_info_pae32(Monitor *mon, CPUArchState *env)
} else {
pt_addr = pde & 0x3fffffffff000ULL;
for (l3 = 0; l3 < 512; l3++) {
- cpu_physical_memory_read(pt_addr + l3 * 8, &pte, 8);
+ cpu_physical_memory_read_debug(pt_addr + l3 * 8,
+ &pte, 8);
pte = le64_to_cpu(pte);
end = (l1 << 30) + (l2 << 21) + (l3 << 12);
if (pte & PG_PRESENT_MASK) {
@@ -369,13 +371,13 @@ static void mem_info_la48(Monitor *mon, CPUArchState *env)
last_prot = 0;
start = -1;
for (l1 = 0; l1 < 512; l1++) {
- cpu_physical_memory_read(pml4_addr + l1 * 8, &pml4e, 8);
+ cpu_physical_memory_read_debug(pml4_addr + l1 * 8, &pml4e, 8);
pml4e = le64_to_cpu(pml4e);
end = l1 << 39;
if (pml4e & PG_PRESENT_MASK) {
pdp_addr = pml4e & 0x3fffffffff000ULL;
for (l2 = 0; l2 < 512; l2++) {
- cpu_physical_memory_read(pdp_addr + l2 * 8, &pdpe, 8);
+ cpu_physical_memory_read_debug(pdp_addr + l2 * 8, &pdpe, 8);
pdpe = le64_to_cpu(pdpe);
end = (l1 << 39) + (l2 << 30);
if (pdpe & PG_PRESENT_MASK) {
@@ -387,7 +389,8 @@ static void mem_info_la48(Monitor *mon, CPUArchState *env)
} else {
pd_addr = pdpe & 0x3fffffffff000ULL;
for (l3 = 0; l3 < 512; l3++) {
- cpu_physical_memory_read(pd_addr + l3 * 8, &pde, 8);
+ cpu_physical_memory_read_debug(pd_addr + l3 * 8,
+ &pde, 8);
pde = le64_to_cpu(pde);
end = (l1 << 39) + (l2 << 30) + (l3 << 21);
if (pde & PG_PRESENT_MASK) {
@@ -399,9 +402,9 @@ static void mem_info_la48(Monitor *mon, CPUArchState *env)
} else {
pt_addr = pde & 0x3fffffffff000ULL;
for (l4 = 0; l4 < 512; l4++) {
- cpu_physical_memory_read(pt_addr
- + l4 * 8,
- &pte, 8);
+ cpu_physical_memory_read_debug(pt_addr
+ + l4 * 8,
+ &pte, 8);
pte = le64_to_cpu(pte);
end = (l1 << 39) + (l2 << 30) +
(l3 << 21) + (l4 << 12);
@@ -446,7 +449,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *env)
last_prot = 0;
start = -1;
for (l0 = 0; l0 < 512; l0++) {
- cpu_physical_memory_read(pml5_addr + l0 * 8, &pml5e, 8);
+ cpu_physical_memory_read_debug(pml5_addr + l0 * 8, &pml5e, 8);
pml5e = le64_to_cpu(pml5e);
end = l0 << 48;
if (!(pml5e & PG_PRESENT_MASK)) {
@@ -457,7 +460,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *env)
pml4_addr = pml5e & 0x3fffffffff000ULL;
for (l1 = 0; l1 < 512; l1++) {
- cpu_physical_memory_read(pml4_addr + l1 * 8, &pml4e, 8);
+ cpu_physical_memory_read_debug(pml4_addr + l1 * 8, &pml4e, 8);
pml4e = le64_to_cpu(pml4e);
end = (l0 << 48) + (l1 << 39);
if (!(pml4e & PG_PRESENT_MASK)) {
@@ -468,7 +471,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *env)
pdp_addr = pml4e & 0x3fffffffff000ULL;
for (l2 = 0; l2 < 512; l2++) {
- cpu_physical_memory_read(pdp_addr + l2 * 8, &pdpe, 8);
+ cpu_physical_memory_read_debug(pdp_addr + l2 * 8, &pdpe, 8);
pdpe = le64_to_cpu(pdpe);
end = (l0 << 48) + (l1 << 39) + (l2 << 30);
if (pdpe & PG_PRESENT_MASK) {
@@ -487,7 +490,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *env)
pd_addr = pdpe & 0x3fffffffff000ULL;
for (l3 = 0; l3 < 512; l3++) {
- cpu_physical_memory_read(pd_addr + l3 * 8, &pde, 8);
+ cpu_physical_memory_read_debug(pd_addr + l3 * 8, &pde, 8);
pde = le64_to_cpu(pde);
end = (l0 << 48) + (l1 << 39) + (l2 << 30) + (l3 << 21);
if (pde & PG_PRESENT_MASK) {
@@ -506,7 +509,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *env)
pt_addr = pde & 0x3fffffffff000ULL;
for (l4 = 0; l4 < 512; l4++) {
- cpu_physical_memory_read(pt_addr + l4 * 8, &pte, 8);
+ cpu_physical_memory_read_debug(pt_addr + l4 * 8, &pte, 8);
pte = le64_to_cpu(pte);
end = (l0 << 48) + (l1 << 39) + (l2 << 30) +
(l3 << 21) + (l4 << 12);
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [Qemu-devel] [PATCH v6 04/23] monitor/i386: use debug APIs when accessing guest memory
@ 2018-01-29 17:41 ` Brijesh Singh
0 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh, Peter Crosthwaite,
Richard Henderson, Markus Armbruster
Updates HMP commands to use the debug version of APIs when accessing the
guest memory.
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Peter Crosthwaite <crosthwaite.peter@gmail.com>
Cc: Richard Henderson <rth@twiddle.net>
Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
Cc: Markus Armbruster <armbru@redhat.com>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
cpus.c | 2 +-
disas.c | 2 +-
monitor.c | 8 ++++---
target/i386/helper.c | 14 ++++++------
target/i386/monitor.c | 59 +++++++++++++++++++++++++++------------------------
5 files changed, 45 insertions(+), 40 deletions(-)
diff --git a/cpus.c b/cpus.c
index 2cb0af9b2249..c50e5613bed8 100644
--- a/cpus.c
+++ b/cpus.c
@@ -2147,7 +2147,7 @@ void qmp_pmemsave(int64_t addr, int64_t size, const char *filename,
l = sizeof(buf);
if (l > size)
l = size;
- cpu_physical_memory_read(addr, buf, l);
+ cpu_physical_memory_read_debug(addr, buf, l);
if (fwrite(buf, 1, l, f) != l) {
error_setg(errp, QERR_IO_ERROR);
goto exit;
diff --git a/disas.c b/disas.c
index d4ad1089efb3..fcedbf263302 100644
--- a/disas.c
+++ b/disas.c
@@ -586,7 +586,7 @@ static int
physical_read_memory(bfd_vma memaddr, bfd_byte *myaddr, int length,
struct disassemble_info *info)
{
- cpu_physical_memory_read(memaddr, myaddr, length);
+ cpu_physical_memory_read_debug(memaddr, myaddr, length);
return 0;
}
diff --git a/monitor.c b/monitor.c
index b9da5e20d1e7..2c082d31549d 100644
--- a/monitor.c
+++ b/monitor.c
@@ -1358,7 +1358,7 @@ static void memory_dump(Monitor *mon, int count, int format, int wsize,
if (l > line_size)
l = line_size;
if (is_physical) {
- cpu_physical_memory_read(addr, buf, l);
+ cpu_physical_memory_read_debug(addr, buf, l);
} else {
if (cpu_memory_rw_debug(cs, addr, buf, l, 0) < 0) {
monitor_printf(mon, " Cannot access memory\n");
@@ -1564,8 +1564,10 @@ static void hmp_sum(Monitor *mon, const QDict *qdict)
sum = 0;
for(addr = start; addr < (start + size); addr++) {
- uint8_t val = address_space_ldub(&address_space_memory, addr,
- MEMTXATTRS_UNSPECIFIED, NULL);
+ uint8_t buf[0];
+ uint8_t val;
+ cpu_physical_memory_read_debug(addr, buf, 1);
+ val = ldub_p(buf);
/* BSD sum algorithm ('sum' Unix command) */
sum = (sum >> 1) | (sum << 15);
sum += val;
diff --git a/target/i386/helper.c b/target/i386/helper.c
index f63eb3d3f4fb..5dc9e8839bc8 100644
--- a/target/i386/helper.c
+++ b/target/i386/helper.c
@@ -757,7 +757,7 @@ hwaddr x86_cpu_get_phys_page_debug(CPUState *cs, vaddr addr)
if (la57) {
pml5e_addr = ((env->cr[3] & ~0xfff) +
(((addr >> 48) & 0x1ff) << 3)) & a20_mask;
- pml5e = x86_ldq_phys(cs, pml5e_addr);
+ pml5e = ldq_phys_debug(cs, pml5e_addr);
if (!(pml5e & PG_PRESENT_MASK)) {
return -1;
}
@@ -767,7 +767,7 @@ hwaddr x86_cpu_get_phys_page_debug(CPUState *cs, vaddr addr)
pml4e_addr = ((pml5e & PG_ADDRESS_MASK) +
(((addr >> 39) & 0x1ff) << 3)) & a20_mask;
- pml4e = x86_ldq_phys(cs, pml4e_addr);
+ pml4e = ldq_phys_debug(cs, pml4e_addr);
if (!(pml4e & PG_PRESENT_MASK)) {
return -1;
}
@@ -788,14 +788,14 @@ hwaddr x86_cpu_get_phys_page_debug(CPUState *cs, vaddr addr)
{
pdpe_addr = ((env->cr[3] & ~0x1f) + ((addr >> 27) & 0x18)) &
a20_mask;
- pdpe = x86_ldq_phys(cs, pdpe_addr);
+ pdpe = ldq_phys_debug(cs, pdpe_addr);
if (!(pdpe & PG_PRESENT_MASK))
return -1;
}
pde_addr = ((pdpe & PG_ADDRESS_MASK) +
(((addr >> 21) & 0x1ff) << 3)) & a20_mask;
- pde = x86_ldq_phys(cs, pde_addr);
+ pde = ldq_phys_debug(cs, pde_addr);
if (!(pde & PG_PRESENT_MASK)) {
return -1;
}
@@ -808,7 +808,7 @@ hwaddr x86_cpu_get_phys_page_debug(CPUState *cs, vaddr addr)
pte_addr = ((pde & PG_ADDRESS_MASK) +
(((addr >> 12) & 0x1ff) << 3)) & a20_mask;
page_size = 4096;
- pte = x86_ldq_phys(cs, pte_addr);
+ pte = ldq_phys_debug(cs, pte_addr);
}
if (!(pte & PG_PRESENT_MASK)) {
return -1;
@@ -818,7 +818,7 @@ hwaddr x86_cpu_get_phys_page_debug(CPUState *cs, vaddr addr)
/* page directory entry */
pde_addr = ((env->cr[3] & ~0xfff) + ((addr >> 20) & 0xffc)) & a20_mask;
- pde = x86_ldl_phys(cs, pde_addr);
+ pde = ldl_phys_debug(cs, pde_addr);
if (!(pde & PG_PRESENT_MASK))
return -1;
if ((pde & PG_PSE_MASK) && (env->cr[4] & CR4_PSE_MASK)) {
@@ -827,7 +827,7 @@ hwaddr x86_cpu_get_phys_page_debug(CPUState *cs, vaddr addr)
} else {
/* page directory entry */
pte_addr = ((pde & ~0xfff) + ((addr >> 10) & 0xffc)) & a20_mask;
- pte = x86_ldl_phys(cs, pte_addr);
+ pte = ldl_phys_debug(cs, pte_addr);
if (!(pte & PG_PRESENT_MASK)) {
return -1;
}
diff --git a/target/i386/monitor.c b/target/i386/monitor.c
index 75e155ffb1c4..96890547f6b4 100644
--- a/target/i386/monitor.c
+++ b/target/i386/monitor.c
@@ -66,7 +66,7 @@ static void tlb_info_32(Monitor *mon, CPUArchState *env)
pgd = env->cr[3] & ~0xfff;
for(l1 = 0; l1 < 1024; l1++) {
- cpu_physical_memory_read(pgd + l1 * 4, &pde, 4);
+ cpu_physical_memory_read_debug(pgd + l1 * 4, &pde, 4);
pde = le32_to_cpu(pde);
if (pde & PG_PRESENT_MASK) {
if ((pde & PG_PSE_MASK) && (env->cr[4] & CR4_PSE_MASK)) {
@@ -74,7 +74,8 @@ static void tlb_info_32(Monitor *mon, CPUArchState *env)
print_pte(mon, env, (l1 << 22), pde, ~((1 << 21) - 1));
} else {
for(l2 = 0; l2 < 1024; l2++) {
- cpu_physical_memory_read((pde & ~0xfff) + l2 * 4, &pte, 4);
+ cpu_physical_memory_read_debug((pde & ~0xfff) + l2 * 4,
+ &pte, 4);
pte = le32_to_cpu(pte);
if (pte & PG_PRESENT_MASK) {
print_pte(mon, env, (l1 << 22) + (l2 << 12),
@@ -95,12 +96,12 @@ static void tlb_info_pae32(Monitor *mon, CPUArchState *env)
pdp_addr = env->cr[3] & ~0x1f;
for (l1 = 0; l1 < 4; l1++) {
- cpu_physical_memory_read(pdp_addr + l1 * 8, &pdpe, 8);
+ cpu_physical_memory_read_debug(pdp_addr + l1 * 8, &pdpe, 8);
pdpe = le64_to_cpu(pdpe);
if (pdpe & PG_PRESENT_MASK) {
pd_addr = pdpe & 0x3fffffffff000ULL;
for (l2 = 0; l2 < 512; l2++) {
- cpu_physical_memory_read(pd_addr + l2 * 8, &pde, 8);
+ cpu_physical_memory_read_debug(pd_addr + l2 * 8, &pde, 8);
pde = le64_to_cpu(pde);
if (pde & PG_PRESENT_MASK) {
if (pde & PG_PSE_MASK) {
@@ -110,7 +111,8 @@ static void tlb_info_pae32(Monitor *mon, CPUArchState *env)
} else {
pt_addr = pde & 0x3fffffffff000ULL;
for (l3 = 0; l3 < 512; l3++) {
- cpu_physical_memory_read(pt_addr + l3 * 8, &pte, 8);
+ cpu_physical_memory_read_debug(pt_addr + l3 * 8,
+ &pte, 8);
pte = le64_to_cpu(pte);
if (pte & PG_PRESENT_MASK) {
print_pte(mon, env, (l1 << 30) + (l2 << 21)
@@ -135,7 +137,7 @@ static void tlb_info_la48(Monitor *mon, CPUArchState *env,
uint64_t pdp_addr, pd_addr, pt_addr;
for (l1 = 0; l1 < 512; l1++) {
- cpu_physical_memory_read(pml4_addr + l1 * 8, &pml4e, 8);
+ cpu_physical_memory_read_debug(pml4_addr + l1 * 8, &pml4e, 8);
pml4e = le64_to_cpu(pml4e);
if (!(pml4e & PG_PRESENT_MASK)) {
continue;
@@ -143,7 +145,7 @@ static void tlb_info_la48(Monitor *mon, CPUArchState *env,
pdp_addr = pml4e & 0x3fffffffff000ULL;
for (l2 = 0; l2 < 512; l2++) {
- cpu_physical_memory_read(pdp_addr + l2 * 8, &pdpe, 8);
+ cpu_physical_memory_read_debug(pdp_addr + l2 * 8, &pdpe, 8);
pdpe = le64_to_cpu(pdpe);
if (!(pdpe & PG_PRESENT_MASK)) {
continue;
@@ -158,7 +160,7 @@ static void tlb_info_la48(Monitor *mon, CPUArchState *env,
pd_addr = pdpe & 0x3fffffffff000ULL;
for (l3 = 0; l3 < 512; l3++) {
- cpu_physical_memory_read(pd_addr + l3 * 8, &pde, 8);
+ cpu_physical_memory_read_debug(pd_addr + l3 * 8, &pde, 8);
pde = le64_to_cpu(pde);
if (!(pde & PG_PRESENT_MASK)) {
continue;
@@ -173,9 +175,7 @@ static void tlb_info_la48(Monitor *mon, CPUArchState *env,
pt_addr = pde & 0x3fffffffff000ULL;
for (l4 = 0; l4 < 512; l4++) {
- cpu_physical_memory_read(pt_addr
- + l4 * 8,
- &pte, 8);
+ cpu_physical_memory_read_debug(pt_addr + l4 * 8, &pte, 8);
pte = le64_to_cpu(pte);
if (pte & PG_PRESENT_MASK) {
print_pte(mon, env, (l0 << 48) + (l1 << 39) +
@@ -196,7 +196,7 @@ static void tlb_info_la57(Monitor *mon, CPUArchState *env)
pml5_addr = env->cr[3] & 0x3fffffffff000ULL;
for (l0 = 0; l0 < 512; l0++) {
- cpu_physical_memory_read(pml5_addr + l0 * 8, &pml5e, 8);
+ cpu_physical_memory_read_debug(pml5_addr + l0 * 8, &pml5e, 8);
pml5e = le64_to_cpu(pml5e);
if (pml5e & PG_PRESENT_MASK) {
tlb_info_la48(mon, env, l0, pml5e & 0x3fffffffff000ULL);
@@ -271,7 +271,7 @@ static void mem_info_32(Monitor *mon, CPUArchState *env)
last_prot = 0;
start = -1;
for(l1 = 0; l1 < 1024; l1++) {
- cpu_physical_memory_read(pgd + l1 * 4, &pde, 4);
+ cpu_physical_memory_read_debug(pgd + l1 * 4, &pde, 4);
pde = le32_to_cpu(pde);
end = l1 << 22;
if (pde & PG_PRESENT_MASK) {
@@ -280,7 +280,8 @@ static void mem_info_32(Monitor *mon, CPUArchState *env)
mem_print(mon, &start, &last_prot, end, prot);
} else {
for(l2 = 0; l2 < 1024; l2++) {
- cpu_physical_memory_read((pde & ~0xfff) + l2 * 4, &pte, 4);
+ cpu_physical_memory_read_debug((pde & ~0xfff) + l2 * 4,
+ &pte, 4);
pte = le32_to_cpu(pte);
end = (l1 << 22) + (l2 << 12);
if (pte & PG_PRESENT_MASK) {
@@ -313,13 +314,13 @@ static void mem_info_pae32(Monitor *mon, CPUArchState *env)
last_prot = 0;
start = -1;
for (l1 = 0; l1 < 4; l1++) {
- cpu_physical_memory_read(pdp_addr + l1 * 8, &pdpe, 8);
+ cpu_physical_memory_read_debug(pdp_addr + l1 * 8, &pdpe, 8);
pdpe = le64_to_cpu(pdpe);
end = l1 << 30;
if (pdpe & PG_PRESENT_MASK) {
pd_addr = pdpe & 0x3fffffffff000ULL;
for (l2 = 0; l2 < 512; l2++) {
- cpu_physical_memory_read(pd_addr + l2 * 8, &pde, 8);
+ cpu_physical_memory_read_debug(pd_addr + l2 * 8, &pde, 8);
pde = le64_to_cpu(pde);
end = (l1 << 30) + (l2 << 21);
if (pde & PG_PRESENT_MASK) {
@@ -330,7 +331,8 @@ static void mem_info_pae32(Monitor *mon, CPUArchState *env)
} else {
pt_addr = pde & 0x3fffffffff000ULL;
for (l3 = 0; l3 < 512; l3++) {
- cpu_physical_memory_read(pt_addr + l3 * 8, &pte, 8);
+ cpu_physical_memory_read_debug(pt_addr + l3 * 8,
+ &pte, 8);
pte = le64_to_cpu(pte);
end = (l1 << 30) + (l2 << 21) + (l3 << 12);
if (pte & PG_PRESENT_MASK) {
@@ -369,13 +371,13 @@ static void mem_info_la48(Monitor *mon, CPUArchState *env)
last_prot = 0;
start = -1;
for (l1 = 0; l1 < 512; l1++) {
- cpu_physical_memory_read(pml4_addr + l1 * 8, &pml4e, 8);
+ cpu_physical_memory_read_debug(pml4_addr + l1 * 8, &pml4e, 8);
pml4e = le64_to_cpu(pml4e);
end = l1 << 39;
if (pml4e & PG_PRESENT_MASK) {
pdp_addr = pml4e & 0x3fffffffff000ULL;
for (l2 = 0; l2 < 512; l2++) {
- cpu_physical_memory_read(pdp_addr + l2 * 8, &pdpe, 8);
+ cpu_physical_memory_read_debug(pdp_addr + l2 * 8, &pdpe, 8);
pdpe = le64_to_cpu(pdpe);
end = (l1 << 39) + (l2 << 30);
if (pdpe & PG_PRESENT_MASK) {
@@ -387,7 +389,8 @@ static void mem_info_la48(Monitor *mon, CPUArchState *env)
} else {
pd_addr = pdpe & 0x3fffffffff000ULL;
for (l3 = 0; l3 < 512; l3++) {
- cpu_physical_memory_read(pd_addr + l3 * 8, &pde, 8);
+ cpu_physical_memory_read_debug(pd_addr + l3 * 8,
+ &pde, 8);
pde = le64_to_cpu(pde);
end = (l1 << 39) + (l2 << 30) + (l3 << 21);
if (pde & PG_PRESENT_MASK) {
@@ -399,9 +402,9 @@ static void mem_info_la48(Monitor *mon, CPUArchState *env)
} else {
pt_addr = pde & 0x3fffffffff000ULL;
for (l4 = 0; l4 < 512; l4++) {
- cpu_physical_memory_read(pt_addr
- + l4 * 8,
- &pte, 8);
+ cpu_physical_memory_read_debug(pt_addr
+ + l4 * 8,
+ &pte, 8);
pte = le64_to_cpu(pte);
end = (l1 << 39) + (l2 << 30) +
(l3 << 21) + (l4 << 12);
@@ -446,7 +449,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *env)
last_prot = 0;
start = -1;
for (l0 = 0; l0 < 512; l0++) {
- cpu_physical_memory_read(pml5_addr + l0 * 8, &pml5e, 8);
+ cpu_physical_memory_read_debug(pml5_addr + l0 * 8, &pml5e, 8);
pml5e = le64_to_cpu(pml5e);
end = l0 << 48;
if (!(pml5e & PG_PRESENT_MASK)) {
@@ -457,7 +460,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *env)
pml4_addr = pml5e & 0x3fffffffff000ULL;
for (l1 = 0; l1 < 512; l1++) {
- cpu_physical_memory_read(pml4_addr + l1 * 8, &pml4e, 8);
+ cpu_physical_memory_read_debug(pml4_addr + l1 * 8, &pml4e, 8);
pml4e = le64_to_cpu(pml4e);
end = (l0 << 48) + (l1 << 39);
if (!(pml4e & PG_PRESENT_MASK)) {
@@ -468,7 +471,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *env)
pdp_addr = pml4e & 0x3fffffffff000ULL;
for (l2 = 0; l2 < 512; l2++) {
- cpu_physical_memory_read(pdp_addr + l2 * 8, &pdpe, 8);
+ cpu_physical_memory_read_debug(pdp_addr + l2 * 8, &pdpe, 8);
pdpe = le64_to_cpu(pdpe);
end = (l0 << 48) + (l1 << 39) + (l2 << 30);
if (pdpe & PG_PRESENT_MASK) {
@@ -487,7 +490,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *env)
pd_addr = pdpe & 0x3fffffffff000ULL;
for (l3 = 0; l3 < 512; l3++) {
- cpu_physical_memory_read(pd_addr + l3 * 8, &pde, 8);
+ cpu_physical_memory_read_debug(pd_addr + l3 * 8, &pde, 8);
pde = le64_to_cpu(pde);
end = (l0 << 48) + (l1 << 39) + (l2 << 30) + (l3 << 21);
if (pde & PG_PRESENT_MASK) {
@@ -506,7 +509,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *env)
pt_addr = pde & 0x3fffffffff000ULL;
for (l4 = 0; l4 < 512; l4++) {
- cpu_physical_memory_read(pt_addr + l4 * 8, &pte, 8);
+ cpu_physical_memory_read_debug(pt_addr + l4 * 8, &pte, 8);
pte = le64_to_cpu(pte);
end = (l0 << 48) + (l1 << 39) + (l2 << 30) +
(l3 << 21) + (l4 << 12);
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [PATCH v6 05/23] target/i386: add memory encryption feature cpuid support
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
@ 2018-01-29 17:41 ` Brijesh Singh
-1 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh, Richard Henderson
AMD EPYC processors support memory encryption feature. The feature
is reported through CPUID 8000_001F[EAX].
Fn8000_001F [EAX]:
Bit 0 Secure Memory Encryption (SME) supported
Bit 1 Secure Encrypted Virtualization (SEV) supported
Bit 2 Page flush MSR supported
Bit 3 Ecrypted State (SEV-ES) support
when memory encryption feature is reported, CPUID 8000_001F[EBX] should
provide additional information regarding the feature (such as which page
table bit is used to mark pages as encrypted etc). The information in EBX
and ECX may vary from one family to another hence we use the host cpuid
to populate the EBX information.
The details for memory encryption CPUID is available in AMD APM
(http://support.amd.com/TechDocs/24593.pdf) Section 15.34.1
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
target/i386/cpu.c | 36 ++++++++++++++++++++++++++++++++++++
target/i386/cpu.h | 6 ++++++
2 files changed, 42 insertions(+)
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
index a49d2221adc9..4147eb6e18a9 100644
--- a/target/i386/cpu.c
+++ b/target/i386/cpu.c
@@ -234,6 +234,7 @@ static void x86_cpu_vendor_words2str(char *dst, uint32_t vendor1,
#define TCG_EXT4_FEATURES 0
#define TCG_SVM_FEATURES 0
#define TCG_KVM_FEATURES 0
+#define TCG_MEM_ENCRYPT_FEATURES 0
#define TCG_7_0_EBX_FEATURES (CPUID_7_0_EBX_SMEP | CPUID_7_0_EBX_SMAP | \
CPUID_7_0_EBX_BMI1 | CPUID_7_0_EBX_BMI2 | CPUID_7_0_EBX_ADX | \
CPUID_7_0_EBX_PCOMMIT | CPUID_7_0_EBX_CLFLUSHOPT | \
@@ -545,6 +546,20 @@ static FeatureWordInfo feature_word_info[FEATURE_WORDS] = {
.cpuid_reg = R_EDX,
.tcg_features = ~0U,
},
+ [FEAT_MEM_ENCRYPT] = {
+ .feat_names = {
+ "sme", "sev", "page-flush-msr", "sev-es",
+ NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL,
+ },
+ .cpuid_eax = 0x8000001F, .cpuid_reg = R_EAX,
+ .tcg_features = TCG_MEM_ENCRYPT_FEATURES,
+ }
};
typedef struct X86RegisterInfo32 {
@@ -1965,6 +1980,9 @@ static X86CPUDefinition builtin_x86_defs[] = {
CPUID_XSAVE_XGETBV1,
.features[FEAT_6_EAX] =
CPUID_6_EAX_ARAT,
+ /* Missing: SEV_ES */
+ .features[FEAT_MEM_ENCRYPT] =
+ CPUID_8000_001F_EAX_SME | CPUID_8000_001F_EAX_SEV,
.xlevel = 0x8000000A,
.model_id = "AMD EPYC Processor",
},
@@ -3589,6 +3607,19 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count,
*edx = 0;
}
break;
+ case 0x8000001F:
+ if (env->features[FEAT_MEM_ENCRYPT] & CPUID_8000_001F_EAX_SEV) {
+ *eax = env->features[FEAT_MEM_ENCRYPT];
+ host_cpuid(0x8000001F, 0, NULL, ebx, NULL, NULL);
+ *ecx = 0;
+ *edx = 0;
+ } else {
+ *eax = 0;
+ *ebx = 0;
+ *ecx = 0;
+ *edx = 0;
+ }
+ break;
case 0xC0000000:
*eax = env->cpuid_xlevel2;
*ebx = 0;
@@ -4036,10 +4067,15 @@ static void x86_cpu_expand_features(X86CPU *cpu, Error **errp)
x86_cpu_adjust_feat_level(cpu, FEAT_C000_0001_EDX);
x86_cpu_adjust_feat_level(cpu, FEAT_SVM);
x86_cpu_adjust_feat_level(cpu, FEAT_XSAVE);
+ x86_cpu_adjust_feat_level(cpu, FEAT_MEM_ENCRYPT);
/* SVM requires CPUID[0x8000000A] */
if (env->features[FEAT_8000_0001_ECX] & CPUID_EXT3_SVM) {
x86_cpu_adjust_level(cpu, &env->cpuid_min_xlevel, 0x8000000A);
}
+ /* SEV requires CPUID[0x8000001F] */
+ if ((env->features[FEAT_MEM_ENCRYPT] & CPUID_8000_001F_EAX_SEV)) {
+ x86_cpu_adjust_level(cpu, &env->cpuid_min_xlevel, 0x8000001F);
+ }
}
/* Set cpuid_*level* based on cpuid_min_*level, if not explicitly set */
diff --git a/target/i386/cpu.h b/target/i386/cpu.h
index f91e37d25dea..f7a0ab20fdd1 100644
--- a/target/i386/cpu.h
+++ b/target/i386/cpu.h
@@ -483,6 +483,7 @@ typedef enum FeatureWord {
FEAT_6_EAX, /* CPUID[6].EAX */
FEAT_XSAVE_COMP_LO, /* CPUID[EAX=0xd,ECX=0].EAX */
FEAT_XSAVE_COMP_HI, /* CPUID[EAX=0xd,ECX=0].EDX */
+ FEAT_MEM_ENCRYPT, /* CPUID[8000_001F].EAX */
FEATURE_WORDS,
} FeatureWord;
@@ -679,6 +680,11 @@ typedef uint32_t FeatureWordArray[FEATURE_WORDS];
#define CPUID_6_EAX_ARAT (1U << 2)
+#define CPUID_8000_001F_EAX_SME (1U << 0) /* SME */
+#define CPUID_8000_001F_EAX_SEV (1U << 1) /* SEV */
+#define CPUID_8000_001F_EAX_PAGE_FLUSH_MSR (1U << 2) /* Page flush MSR */
+#define CPUID_8000_001F_EAX_SEV_ES (1U << 3) /* SEV-ES */
+
/* CPUID[0x80000007].EDX flags: */
#define CPUID_APM_INVTSC (1U << 8)
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [Qemu-devel] [PATCH v6 05/23] target/i386: add memory encryption feature cpuid support
@ 2018-01-29 17:41 ` Brijesh Singh
0 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh, Richard Henderson
AMD EPYC processors support memory encryption feature. The feature
is reported through CPUID 8000_001F[EAX].
Fn8000_001F [EAX]:
Bit 0 Secure Memory Encryption (SME) supported
Bit 1 Secure Encrypted Virtualization (SEV) supported
Bit 2 Page flush MSR supported
Bit 3 Ecrypted State (SEV-ES) support
when memory encryption feature is reported, CPUID 8000_001F[EBX] should
provide additional information regarding the feature (such as which page
table bit is used to mark pages as encrypted etc). The information in EBX
and ECX may vary from one family to another hence we use the host cpuid
to populate the EBX information.
The details for memory encryption CPUID is available in AMD APM
(http://support.amd.com/TechDocs/24593.pdf) Section 15.34.1
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
target/i386/cpu.c | 36 ++++++++++++++++++++++++++++++++++++
target/i386/cpu.h | 6 ++++++
2 files changed, 42 insertions(+)
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
index a49d2221adc9..4147eb6e18a9 100644
--- a/target/i386/cpu.c
+++ b/target/i386/cpu.c
@@ -234,6 +234,7 @@ static void x86_cpu_vendor_words2str(char *dst, uint32_t vendor1,
#define TCG_EXT4_FEATURES 0
#define TCG_SVM_FEATURES 0
#define TCG_KVM_FEATURES 0
+#define TCG_MEM_ENCRYPT_FEATURES 0
#define TCG_7_0_EBX_FEATURES (CPUID_7_0_EBX_SMEP | CPUID_7_0_EBX_SMAP | \
CPUID_7_0_EBX_BMI1 | CPUID_7_0_EBX_BMI2 | CPUID_7_0_EBX_ADX | \
CPUID_7_0_EBX_PCOMMIT | CPUID_7_0_EBX_CLFLUSHOPT | \
@@ -545,6 +546,20 @@ static FeatureWordInfo feature_word_info[FEATURE_WORDS] = {
.cpuid_reg = R_EDX,
.tcg_features = ~0U,
},
+ [FEAT_MEM_ENCRYPT] = {
+ .feat_names = {
+ "sme", "sev", "page-flush-msr", "sev-es",
+ NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL,
+ },
+ .cpuid_eax = 0x8000001F, .cpuid_reg = R_EAX,
+ .tcg_features = TCG_MEM_ENCRYPT_FEATURES,
+ }
};
typedef struct X86RegisterInfo32 {
@@ -1965,6 +1980,9 @@ static X86CPUDefinition builtin_x86_defs[] = {
CPUID_XSAVE_XGETBV1,
.features[FEAT_6_EAX] =
CPUID_6_EAX_ARAT,
+ /* Missing: SEV_ES */
+ .features[FEAT_MEM_ENCRYPT] =
+ CPUID_8000_001F_EAX_SME | CPUID_8000_001F_EAX_SEV,
.xlevel = 0x8000000A,
.model_id = "AMD EPYC Processor",
},
@@ -3589,6 +3607,19 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count,
*edx = 0;
}
break;
+ case 0x8000001F:
+ if (env->features[FEAT_MEM_ENCRYPT] & CPUID_8000_001F_EAX_SEV) {
+ *eax = env->features[FEAT_MEM_ENCRYPT];
+ host_cpuid(0x8000001F, 0, NULL, ebx, NULL, NULL);
+ *ecx = 0;
+ *edx = 0;
+ } else {
+ *eax = 0;
+ *ebx = 0;
+ *ecx = 0;
+ *edx = 0;
+ }
+ break;
case 0xC0000000:
*eax = env->cpuid_xlevel2;
*ebx = 0;
@@ -4036,10 +4067,15 @@ static void x86_cpu_expand_features(X86CPU *cpu, Error **errp)
x86_cpu_adjust_feat_level(cpu, FEAT_C000_0001_EDX);
x86_cpu_adjust_feat_level(cpu, FEAT_SVM);
x86_cpu_adjust_feat_level(cpu, FEAT_XSAVE);
+ x86_cpu_adjust_feat_level(cpu, FEAT_MEM_ENCRYPT);
/* SVM requires CPUID[0x8000000A] */
if (env->features[FEAT_8000_0001_ECX] & CPUID_EXT3_SVM) {
x86_cpu_adjust_level(cpu, &env->cpuid_min_xlevel, 0x8000000A);
}
+ /* SEV requires CPUID[0x8000001F] */
+ if ((env->features[FEAT_MEM_ENCRYPT] & CPUID_8000_001F_EAX_SEV)) {
+ x86_cpu_adjust_level(cpu, &env->cpuid_min_xlevel, 0x8000001F);
+ }
}
/* Set cpuid_*level* based on cpuid_min_*level, if not explicitly set */
diff --git a/target/i386/cpu.h b/target/i386/cpu.h
index f91e37d25dea..f7a0ab20fdd1 100644
--- a/target/i386/cpu.h
+++ b/target/i386/cpu.h
@@ -483,6 +483,7 @@ typedef enum FeatureWord {
FEAT_6_EAX, /* CPUID[6].EAX */
FEAT_XSAVE_COMP_LO, /* CPUID[EAX=0xd,ECX=0].EAX */
FEAT_XSAVE_COMP_HI, /* CPUID[EAX=0xd,ECX=0].EDX */
+ FEAT_MEM_ENCRYPT, /* CPUID[8000_001F].EAX */
FEATURE_WORDS,
} FeatureWord;
@@ -679,6 +680,11 @@ typedef uint32_t FeatureWordArray[FEATURE_WORDS];
#define CPUID_6_EAX_ARAT (1U << 2)
+#define CPUID_8000_001F_EAX_SME (1U << 0) /* SME */
+#define CPUID_8000_001F_EAX_SEV (1U << 1) /* SEV */
+#define CPUID_8000_001F_EAX_PAGE_FLUSH_MSR (1U << 2) /* Page flush MSR */
+#define CPUID_8000_001F_EAX_SEV_ES (1U << 3) /* SEV-ES */
+
/* CPUID[0x80000007].EDX flags: */
#define CPUID_APM_INVTSC (1U << 8)
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [PATCH v6 06/23] machine: add -memory-encryption property
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
@ 2018-01-29 17:41 ` Brijesh Singh
-1 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh, Marcel Apfelbaum
When CPU supports memory encryption feature, the property can be used to
specify the encryption object to use when launching an encrypted guest.
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Cc: Marcel Apfelbaum <marcel@redhat.com>
Cc: Stefan Hajnoczi <stefanha@gmail.com>
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
hw/core/machine.c | 22 ++++++++++++++++++++++
include/hw/boards.h | 1 +
qemu-options.hx | 2 ++
3 files changed, 25 insertions(+)
diff --git a/hw/core/machine.c b/hw/core/machine.c
index cdc1163dc6fb..e9940e58ad65 100644
--- a/hw/core/machine.c
+++ b/hw/core/machine.c
@@ -334,6 +334,22 @@ static bool machine_get_enforce_config_section(Object *obj, Error **errp)
return ms->enforce_config_section;
}
+static char *machine_get_memory_encryption(Object *obj, Error **errp)
+{
+ MachineState *ms = MACHINE(obj);
+
+ return g_strdup(ms->memory_encryption);
+}
+
+static void machine_set_memory_encryption(Object *obj, const char *value,
+ Error **errp)
+{
+ MachineState *ms = MACHINE(obj);
+
+ g_free(ms->memory_encryption);
+ ms->memory_encryption = g_strdup(value);
+}
+
void machine_class_allow_dynamic_sysbus_dev(MachineClass *mc, const char *type)
{
strList *item = g_new0(strList, 1);
@@ -612,6 +628,12 @@ static void machine_class_init(ObjectClass *oc, void *data)
&error_abort);
object_class_property_set_description(oc, "enforce-config-section",
"Set on to enforce configuration section migration", &error_abort);
+
+ object_class_property_add_str(oc, "memory-encryption",
+ machine_get_memory_encryption, machine_set_memory_encryption,
+ &error_abort);
+ object_class_property_set_description(oc, "memory-encryption",
+ "Set memory encyption object to use", &error_abort);
}
static void machine_class_base_init(ObjectClass *oc, void *data)
diff --git a/include/hw/boards.h b/include/hw/boards.h
index efb0a9edfdf1..8ce9a7a21d3d 100644
--- a/include/hw/boards.h
+++ b/include/hw/boards.h
@@ -243,6 +243,7 @@ struct MachineState {
bool suppress_vmdesc;
bool enforce_config_section;
bool enable_graphics;
+ char *memory_encryption;
ram_addr_t ram_size;
ram_addr_t maxram_size;
diff --git a/qemu-options.hx b/qemu-options.hx
index 1d73fb151d87..bec3490d7b8d 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -110,6 +110,8 @@ code to send configuration section even if the machine-type sets the
@option{migration.send-configuration} property to @var{off}.
NOTE: this parameter is deprecated. Please use @option{-global}
@option{migration.send-configuration}=@var{on|off} instead.
+@item memory-encryption=@var{}
+Memory encryption object to use. The default is none.
@end table
ETEXI
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [Qemu-devel] [PATCH v6 06/23] machine: add -memory-encryption property
@ 2018-01-29 17:41 ` Brijesh Singh
0 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh, Marcel Apfelbaum
When CPU supports memory encryption feature, the property can be used to
specify the encryption object to use when launching an encrypted guest.
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Cc: Marcel Apfelbaum <marcel@redhat.com>
Cc: Stefan Hajnoczi <stefanha@gmail.com>
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
hw/core/machine.c | 22 ++++++++++++++++++++++
include/hw/boards.h | 1 +
qemu-options.hx | 2 ++
3 files changed, 25 insertions(+)
diff --git a/hw/core/machine.c b/hw/core/machine.c
index cdc1163dc6fb..e9940e58ad65 100644
--- a/hw/core/machine.c
+++ b/hw/core/machine.c
@@ -334,6 +334,22 @@ static bool machine_get_enforce_config_section(Object *obj, Error **errp)
return ms->enforce_config_section;
}
+static char *machine_get_memory_encryption(Object *obj, Error **errp)
+{
+ MachineState *ms = MACHINE(obj);
+
+ return g_strdup(ms->memory_encryption);
+}
+
+static void machine_set_memory_encryption(Object *obj, const char *value,
+ Error **errp)
+{
+ MachineState *ms = MACHINE(obj);
+
+ g_free(ms->memory_encryption);
+ ms->memory_encryption = g_strdup(value);
+}
+
void machine_class_allow_dynamic_sysbus_dev(MachineClass *mc, const char *type)
{
strList *item = g_new0(strList, 1);
@@ -612,6 +628,12 @@ static void machine_class_init(ObjectClass *oc, void *data)
&error_abort);
object_class_property_set_description(oc, "enforce-config-section",
"Set on to enforce configuration section migration", &error_abort);
+
+ object_class_property_add_str(oc, "memory-encryption",
+ machine_get_memory_encryption, machine_set_memory_encryption,
+ &error_abort);
+ object_class_property_set_description(oc, "memory-encryption",
+ "Set memory encyption object to use", &error_abort);
}
static void machine_class_base_init(ObjectClass *oc, void *data)
diff --git a/include/hw/boards.h b/include/hw/boards.h
index efb0a9edfdf1..8ce9a7a21d3d 100644
--- a/include/hw/boards.h
+++ b/include/hw/boards.h
@@ -243,6 +243,7 @@ struct MachineState {
bool suppress_vmdesc;
bool enforce_config_section;
bool enable_graphics;
+ char *memory_encryption;
ram_addr_t ram_size;
ram_addr_t maxram_size;
diff --git a/qemu-options.hx b/qemu-options.hx
index 1d73fb151d87..bec3490d7b8d 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -110,6 +110,8 @@ code to send configuration section even if the machine-type sets the
@option{migration.send-configuration} property to @var{off}.
NOTE: this parameter is deprecated. Please use @option{-global}
@option{migration.send-configuration}=@var{on|off} instead.
+@item memory-encryption=@var{}
+Memory encryption object to use. The default is none.
@end table
ETEXI
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [PATCH v6 07/23] kvm: update kvm.h to include memory encryption ioctls
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
@ 2018-01-29 17:41 ` Brijesh Singh
-1 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh, Christian Borntraeger,
Cornelia Huck
Updates kmv.h to include memory encryption ioctls and SEV commands.
Cc: Christian Borntraeger <borntraeger@de.ibm.com>
Cc: Cornelia Huck <cornelia.huck@de.ibm.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
| 90 +++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 90 insertions(+)
--git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h
index d92c9b2f0ed2..aed22309950d 100644
--- a/linux-headers/linux/kvm.h
+++ b/linux-headers/linux/kvm.h
@@ -1362,6 +1362,96 @@ struct kvm_s390_ucas_mapping {
/* Available with KVM_CAP_S390_CMMA_MIGRATION */
#define KVM_S390_GET_CMMA_BITS _IOWR(KVMIO, 0xb8, struct kvm_s390_cmma_log)
#define KVM_S390_SET_CMMA_BITS _IOW(KVMIO, 0xb9, struct kvm_s390_cmma_log)
+/* Memory Encryption Commands */
+#define KVM_MEMORY_ENCRYPT_OP _IOWR(KVMIO, 0xba, unsigned long)
+
+struct kvm_enc_region {
+ __u64 addr;
+ __u64 size;
+};
+
+#define KVM_MEMORY_ENCRYPT_REG_REGION _IOR(KVMIO, 0xbb, struct kvm_enc_region)
+#define KVM_MEMORY_ENCRYPT_UNREG_REGION _IOR(KVMIO, 0xbc, struct kvm_enc_region)
+
+/* Secure Encrypted Virtualization command */
+enum sev_cmd_id {
+ /* Guest initialization commands */
+ KVM_SEV_INIT = 0,
+ KVM_SEV_ES_INIT,
+ /* Guest launch commands */
+ KVM_SEV_LAUNCH_START,
+ KVM_SEV_LAUNCH_UPDATE_DATA,
+ KVM_SEV_LAUNCH_UPDATE_VMSA,
+ KVM_SEV_LAUNCH_SECRET,
+ KVM_SEV_LAUNCH_MEASURE,
+ KVM_SEV_LAUNCH_FINISH,
+ /* Guest migration commands (outgoing) */
+ KVM_SEV_SEND_START,
+ KVM_SEV_SEND_UPDATE_DATA,
+ KVM_SEV_SEND_UPDATE_VMSA,
+ KVM_SEV_SEND_FINISH,
+ /* Guest migration commands (incoming) */
+ KVM_SEV_RECEIVE_START,
+ KVM_SEV_RECEIVE_UPDATE_DATA,
+ KVM_SEV_RECEIVE_UPDATE_VMSA,
+ KVM_SEV_RECEIVE_FINISH,
+ /* Guest status and debug commands */
+ KVM_SEV_GUEST_STATUS,
+ KVM_SEV_DBG_DECRYPT,
+ KVM_SEV_DBG_ENCRYPT,
+ /* Guest certificates commands */
+ KVM_SEV_CERT_EXPORT,
+
+ KVM_SEV_NR_MAX,
+};
+
+struct kvm_sev_cmd {
+ __u32 id;
+ __u64 data;
+ __u32 error;
+ __u32 sev_fd;
+};
+
+struct kvm_sev_launch_start {
+ __u32 handle;
+ __u32 policy;
+ __u64 dh_uaddr;
+ __u32 dh_len;
+ __u64 session_uaddr;
+ __u32 session_len;
+};
+
+struct kvm_sev_launch_update_data {
+ __u64 uaddr;
+ __u32 len;
+};
+
+
+struct kvm_sev_launch_secret {
+ __u64 hdr_uaddr;
+ __u32 hdr_len;
+ __u64 guest_uaddr;
+ __u32 guest_len;
+ __u64 trans_uaddr;
+ __u32 trans_len;
+};
+
+struct kvm_sev_launch_measure {
+ __u64 uaddr;
+ __u32 len;
+};
+
+struct kvm_sev_guest_status {
+ __u32 handle;
+ __u32 policy;
+ __u32 state;
+};
+
+struct kvm_sev_dbg {
+ __u64 src_uaddr;
+ __u64 dst_uaddr;
+ __u32 len;
+};
#define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0)
#define KVM_DEV_ASSIGN_PCI_2_3 (1 << 1)
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [Qemu-devel] [PATCH v6 07/23] kvm: update kvm.h to include memory encryption ioctls
@ 2018-01-29 17:41 ` Brijesh Singh
0 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh, Christian Borntraeger,
Cornelia Huck
Updates kmv.h to include memory encryption ioctls and SEV commands.
Cc: Christian Borntraeger <borntraeger@de.ibm.com>
Cc: Cornelia Huck <cornelia.huck@de.ibm.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
| 90 +++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 90 insertions(+)
--git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h
index d92c9b2f0ed2..aed22309950d 100644
--- a/linux-headers/linux/kvm.h
+++ b/linux-headers/linux/kvm.h
@@ -1362,6 +1362,96 @@ struct kvm_s390_ucas_mapping {
/* Available with KVM_CAP_S390_CMMA_MIGRATION */
#define KVM_S390_GET_CMMA_BITS _IOWR(KVMIO, 0xb8, struct kvm_s390_cmma_log)
#define KVM_S390_SET_CMMA_BITS _IOW(KVMIO, 0xb9, struct kvm_s390_cmma_log)
+/* Memory Encryption Commands */
+#define KVM_MEMORY_ENCRYPT_OP _IOWR(KVMIO, 0xba, unsigned long)
+
+struct kvm_enc_region {
+ __u64 addr;
+ __u64 size;
+};
+
+#define KVM_MEMORY_ENCRYPT_REG_REGION _IOR(KVMIO, 0xbb, struct kvm_enc_region)
+#define KVM_MEMORY_ENCRYPT_UNREG_REGION _IOR(KVMIO, 0xbc, struct kvm_enc_region)
+
+/* Secure Encrypted Virtualization command */
+enum sev_cmd_id {
+ /* Guest initialization commands */
+ KVM_SEV_INIT = 0,
+ KVM_SEV_ES_INIT,
+ /* Guest launch commands */
+ KVM_SEV_LAUNCH_START,
+ KVM_SEV_LAUNCH_UPDATE_DATA,
+ KVM_SEV_LAUNCH_UPDATE_VMSA,
+ KVM_SEV_LAUNCH_SECRET,
+ KVM_SEV_LAUNCH_MEASURE,
+ KVM_SEV_LAUNCH_FINISH,
+ /* Guest migration commands (outgoing) */
+ KVM_SEV_SEND_START,
+ KVM_SEV_SEND_UPDATE_DATA,
+ KVM_SEV_SEND_UPDATE_VMSA,
+ KVM_SEV_SEND_FINISH,
+ /* Guest migration commands (incoming) */
+ KVM_SEV_RECEIVE_START,
+ KVM_SEV_RECEIVE_UPDATE_DATA,
+ KVM_SEV_RECEIVE_UPDATE_VMSA,
+ KVM_SEV_RECEIVE_FINISH,
+ /* Guest status and debug commands */
+ KVM_SEV_GUEST_STATUS,
+ KVM_SEV_DBG_DECRYPT,
+ KVM_SEV_DBG_ENCRYPT,
+ /* Guest certificates commands */
+ KVM_SEV_CERT_EXPORT,
+
+ KVM_SEV_NR_MAX,
+};
+
+struct kvm_sev_cmd {
+ __u32 id;
+ __u64 data;
+ __u32 error;
+ __u32 sev_fd;
+};
+
+struct kvm_sev_launch_start {
+ __u32 handle;
+ __u32 policy;
+ __u64 dh_uaddr;
+ __u32 dh_len;
+ __u64 session_uaddr;
+ __u32 session_len;
+};
+
+struct kvm_sev_launch_update_data {
+ __u64 uaddr;
+ __u32 len;
+};
+
+
+struct kvm_sev_launch_secret {
+ __u64 hdr_uaddr;
+ __u32 hdr_len;
+ __u64 guest_uaddr;
+ __u32 guest_len;
+ __u64 trans_uaddr;
+ __u32 trans_len;
+};
+
+struct kvm_sev_launch_measure {
+ __u64 uaddr;
+ __u32 len;
+};
+
+struct kvm_sev_guest_status {
+ __u32 handle;
+ __u32 policy;
+ __u32 state;
+};
+
+struct kvm_sev_dbg {
+ __u64 src_uaddr;
+ __u64 dst_uaddr;
+ __u32 len;
+};
#define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0)
#define KVM_DEV_ASSIGN_PCI_2_3 (1 << 1)
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [PATCH v6 08/23] docs: add AMD Secure Encrypted Virtualization (SEV)
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
@ 2018-01-29 17:41 ` Brijesh Singh
-1 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh
Create a documentation entry to describe the AMD Secure Encrypted
Virtualization (SEV) feature.
Cc: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
docs/amd-memory-encryption.txt | 92 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 92 insertions(+)
create mode 100644 docs/amd-memory-encryption.txt
diff --git a/docs/amd-memory-encryption.txt b/docs/amd-memory-encryption.txt
new file mode 100644
index 000000000000..72a92b6c6353
--- /dev/null
+++ b/docs/amd-memory-encryption.txt
@@ -0,0 +1,92 @@
+Secure Encrypted Virtualization (SEV) is a feature found on AMD processors.
+
+SEV is an extension to the AMD-V architecture which supports running encrypted
+virtual machine (VMs) under the control of KVM. Encrypted VMs have their pages
+(code and data) secured such that only the guest itself has access to the
+unencrypted version. Each encrypted VM is associated with a unique encryption
+key; if its data is accessed to a different entity using a different key the
+encrypted guests data will be incorrectly decrypted, leading to unintelligible
+data.
+
+The key management of this feature is handled by separate processor known as
+AMD secure processor (AMD-SP) which is present in AMD SOCs. Firmware running
+inside the AMD-SP provide commands to support common VM lifecycle. This
+includes commands for launching, snapshotting, migrating and debugging the
+encrypted guest. Those SEV command can be issued via KVM_MEMORY_ENCRYPT_OP
+ioctls.
+
+Launching
+---------
+Boot images (such as bios) must be encrypted before guest can be booted.
+MEMORY_ENCRYPT_OP ioctl provides commands to encrypt the images :LAUNCH_START,
+LAUNCH_UPDATE_DATA, LAUNCH_MEASURE and LAUNCH_FINISH. These four commands
+together generate a fresh memory encryption key for the VM, encrypt the boot
+images and provide a measurement than can be used as an attestation of the
+successful launch.
+
+LAUNCH_START is called first to create a cryptographic launch context within
+the firmware. To create this context, guest owner must provides guest policy,
+its public Diffie-Hellman key (PDH) and session parameters. These inputs
+should be treated as binary blob and must be passed as-is to the SEV firmware.
+
+The guest policy is passed as plaintext and hypervisor may able to read it
+but should not modify it (any modification of the policy bits will result
+in bad measurement). The guest policy is a 4-byte data structure containing
+several flags that restricts what can be done on running SEV guest.
+See KM Spec section 3 and 6.2 for more details.
+
+Guest owners provided DH certificate and session parameters will be used to
+establish a cryptographic session with the guest owner to negotiate keys used
+for the attestation.
+
+LAUNCH_UPDATE_DATA encrypts the memory region using the cryptographic context
+created via LAUNCH_START command. If required, this command can be called
+multiple times to encrypt different memory regions. The command also calculates
+the measurement of the memory contents as it encrypts.
+
+LAUNCH_MEASURE command can be used to retrieve the measurement of encrypted
+memory. This measurement is a signature of the memory contents that can be
+sent to the guest owner as an attestation that the memory was encrypted
+correctly by the firmware. The guest owner may wait to provide the guest
+confidential information until it can verify the attestation measurement.
+Since the guest owner knows the initial contents of the guest at boot, the
+attestation measurement can be verified by comparing it to what the guest owner
+expects.
+
+LAUNCH_FINISH command finalizes the guest launch and destroy's the cryptographic
+context.
+
+See SEV KM API Spec [1] 'Launching a guest' usage flow (Appendix A) for the
+complete flow chart.
+
+Debugging
+-----------
+Since memory contents of SEV guest is encrypted hence hypervisor access to the
+guest memory will get a cipher text. If guest policy allows debugging, then
+hypervisor can use DEBUG_DECRYPT and DEBUG_ENCRYPT commands access the guest
+memory region for debug purposes.
+
+Snapshot/Restore
+-----------------
+TODO
+
+Live Migration
+----------------
+TODO
+
+References
+-----------------
+
+AMD Memory Encryption whitepaper:
+http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2013/12/AMD_Memory_Encryption_Whitepaper_v7-Public.pdf
+
+Secure Encrypted Virutualization Key Management:
+[1] http://support.amd.com/TechDocs/55766_SEV-KM API_Specification.pdf
+
+KVM Forum slides:
+http://www.linux-kvm.org/images/7/74/02x08A-Thomas_Lendacky-AMDs_Virtualizatoin_Memory_Encryption_Technology.pdf
+
+AMD64 Architecture Programmer's Manual:
+ http://support.amd.com/TechDocs/24593.pdf
+ SME is section 7.10
+ SEV is section 15.34
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [Qemu-devel] [PATCH v6 08/23] docs: add AMD Secure Encrypted Virtualization (SEV)
@ 2018-01-29 17:41 ` Brijesh Singh
0 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh
Create a documentation entry to describe the AMD Secure Encrypted
Virtualization (SEV) feature.
Cc: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
docs/amd-memory-encryption.txt | 92 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 92 insertions(+)
create mode 100644 docs/amd-memory-encryption.txt
diff --git a/docs/amd-memory-encryption.txt b/docs/amd-memory-encryption.txt
new file mode 100644
index 000000000000..72a92b6c6353
--- /dev/null
+++ b/docs/amd-memory-encryption.txt
@@ -0,0 +1,92 @@
+Secure Encrypted Virtualization (SEV) is a feature found on AMD processors.
+
+SEV is an extension to the AMD-V architecture which supports running encrypted
+virtual machine (VMs) under the control of KVM. Encrypted VMs have their pages
+(code and data) secured such that only the guest itself has access to the
+unencrypted version. Each encrypted VM is associated with a unique encryption
+key; if its data is accessed to a different entity using a different key the
+encrypted guests data will be incorrectly decrypted, leading to unintelligible
+data.
+
+The key management of this feature is handled by separate processor known as
+AMD secure processor (AMD-SP) which is present in AMD SOCs. Firmware running
+inside the AMD-SP provide commands to support common VM lifecycle. This
+includes commands for launching, snapshotting, migrating and debugging the
+encrypted guest. Those SEV command can be issued via KVM_MEMORY_ENCRYPT_OP
+ioctls.
+
+Launching
+---------
+Boot images (such as bios) must be encrypted before guest can be booted.
+MEMORY_ENCRYPT_OP ioctl provides commands to encrypt the images :LAUNCH_START,
+LAUNCH_UPDATE_DATA, LAUNCH_MEASURE and LAUNCH_FINISH. These four commands
+together generate a fresh memory encryption key for the VM, encrypt the boot
+images and provide a measurement than can be used as an attestation of the
+successful launch.
+
+LAUNCH_START is called first to create a cryptographic launch context within
+the firmware. To create this context, guest owner must provides guest policy,
+its public Diffie-Hellman key (PDH) and session parameters. These inputs
+should be treated as binary blob and must be passed as-is to the SEV firmware.
+
+The guest policy is passed as plaintext and hypervisor may able to read it
+but should not modify it (any modification of the policy bits will result
+in bad measurement). The guest policy is a 4-byte data structure containing
+several flags that restricts what can be done on running SEV guest.
+See KM Spec section 3 and 6.2 for more details.
+
+Guest owners provided DH certificate and session parameters will be used to
+establish a cryptographic session with the guest owner to negotiate keys used
+for the attestation.
+
+LAUNCH_UPDATE_DATA encrypts the memory region using the cryptographic context
+created via LAUNCH_START command. If required, this command can be called
+multiple times to encrypt different memory regions. The command also calculates
+the measurement of the memory contents as it encrypts.
+
+LAUNCH_MEASURE command can be used to retrieve the measurement of encrypted
+memory. This measurement is a signature of the memory contents that can be
+sent to the guest owner as an attestation that the memory was encrypted
+correctly by the firmware. The guest owner may wait to provide the guest
+confidential information until it can verify the attestation measurement.
+Since the guest owner knows the initial contents of the guest at boot, the
+attestation measurement can be verified by comparing it to what the guest owner
+expects.
+
+LAUNCH_FINISH command finalizes the guest launch and destroy's the cryptographic
+context.
+
+See SEV KM API Spec [1] 'Launching a guest' usage flow (Appendix A) for the
+complete flow chart.
+
+Debugging
+-----------
+Since memory contents of SEV guest is encrypted hence hypervisor access to the
+guest memory will get a cipher text. If guest policy allows debugging, then
+hypervisor can use DEBUG_DECRYPT and DEBUG_ENCRYPT commands access the guest
+memory region for debug purposes.
+
+Snapshot/Restore
+-----------------
+TODO
+
+Live Migration
+----------------
+TODO
+
+References
+-----------------
+
+AMD Memory Encryption whitepaper:
+http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2013/12/AMD_Memory_Encryption_Whitepaper_v7-Public.pdf
+
+Secure Encrypted Virutualization Key Management:
+[1] http://support.amd.com/TechDocs/55766_SEV-KM API_Specification.pdf
+
+KVM Forum slides:
+http://www.linux-kvm.org/images/7/74/02x08A-Thomas_Lendacky-AMDs_Virtualizatoin_Memory_Encryption_Technology.pdf
+
+AMD64 Architecture Programmer's Manual:
+ http://support.amd.com/TechDocs/24593.pdf
+ SME is section 7.10
+ SEV is section 15.34
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [PATCH v6 09/23] accel: add Secure Encrypted Virtulization (SEV) object
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
@ 2018-01-29 17:41 ` Brijesh Singh
-1 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh
Add a new memory encryption object 'sev-guest'. The object will be used
to create enrypted VMs on AMD EPYC CPU. The object provides the properties
to pass guest owner's public Diffie-hellman key, guest policy and session
information required to create the memory encryption context within the
SEV firmware.
e.g to launch SEV guest
# $QEMU \
-object sev-guest,id=sev0 \
-machine ....,memory-encryption=sev0
Cc: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
accel/kvm/Makefile.objs | 2 +-
accel/kvm/sev.c | 179 +++++++++++++++++++++++++++++++++++++++++
docs/amd-memory-encryption.txt | 17 ++++
include/sysemu/sev.h | 53 ++++++++++++
qemu-options.hx | 34 ++++++++
5 files changed, 284 insertions(+), 1 deletion(-)
create mode 100644 accel/kvm/sev.c
create mode 100644 include/sysemu/sev.h
diff --git a/accel/kvm/Makefile.objs b/accel/kvm/Makefile.objs
index 85351e7de7e8..666ceef3dae3 100644
--- a/accel/kvm/Makefile.objs
+++ b/accel/kvm/Makefile.objs
@@ -1 +1 @@
-obj-$(CONFIG_KVM) += kvm-all.o
+obj-$(CONFIG_KVM) += kvm-all.o sev.o
diff --git a/accel/kvm/sev.c b/accel/kvm/sev.c
new file mode 100644
index 000000000000..e93fdfeb0c8f
--- /dev/null
+++ b/accel/kvm/sev.c
@@ -0,0 +1,179 @@
+/*
+ * QEMU SEV support
+ *
+ * Copyright Advanced Micro Devices 2016-2018
+ *
+ * Author:
+ * Brijesh Singh <brijesh.singh@amd.com>
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or later.
+ * See the COPYING file in the top-level directory.
+ *
+ */
+
+#include "qemu/osdep.h"
+#include "qapi/error.h"
+#include "qom/object_interfaces.h"
+#include "qemu/base64.h"
+#include "sysemu/kvm.h"
+#include "sysemu/sev.h"
+#include "sysemu/sysemu.h"
+
+#define DEFAULT_GUEST_POLICY 0x1 /* disable debug */
+#define DEFAULT_SEV_DEVICE "/dev/sev"
+
+static void
+qsev_guest_finalize(Object *obj)
+{
+}
+
+static char *
+qsev_guest_get_session_file(Object *obj, Error **errp)
+{
+ QSevGuestInfo *s = QSEV_GUEST_INFO(obj);
+
+ return s->session_file ? g_strdup(s->session_file) : NULL;
+}
+
+static void
+qsev_guest_set_session_file(Object *obj, const char *value, Error **errp)
+{
+ QSevGuestInfo *s = QSEV_GUEST_INFO(obj);
+
+ s->session_file = g_strdup(value);
+}
+
+static char *
+qsev_guest_get_dh_cert_file(Object *obj, Error **errp)
+{
+ QSevGuestInfo *s = QSEV_GUEST_INFO(obj);
+
+ return g_strdup(s->dh_cert_file);
+}
+
+static void
+qsev_guest_set_dh_cert_file(Object *obj, const char *value, Error **errp)
+{
+ QSevGuestInfo *s = QSEV_GUEST_INFO(obj);
+
+ s->dh_cert_file = g_strdup(value);
+}
+
+static char *
+qsev_guest_get_sev_device(Object *obj, Error **errp)
+{
+ QSevGuestInfo *sev = QSEV_GUEST_INFO(obj);
+
+ return g_strdup(sev->sev_device);
+}
+
+static void
+qsev_guest_set_sev_device(Object *obj, const char *value, Error **errp)
+{
+ QSevGuestInfo *sev = QSEV_GUEST_INFO(obj);
+
+ sev->sev_device = g_strdup(value);
+}
+
+static void
+qsev_guest_class_init(ObjectClass *oc, void *data)
+{
+ object_class_property_add_str(oc, "sev-device",
+ qsev_guest_get_sev_device,
+ qsev_guest_set_sev_device,
+ NULL);
+ object_class_property_set_description(oc, "sev-device",
+ "SEV device to use", NULL);
+ object_class_property_add_str(oc, "dh-cert-file",
+ qsev_guest_get_dh_cert_file,
+ qsev_guest_set_dh_cert_file,
+ NULL);
+ object_class_property_set_description(oc, "dh-cert-file",
+ "guest owners DH certificate (encoded with base64)", NULL);
+ object_class_property_add_str(oc, "session-file",
+ qsev_guest_get_session_file,
+ qsev_guest_set_session_file,
+ NULL);
+ object_class_property_set_description(oc, "session-file",
+ "guest owners session parameters (encoded with base64)", NULL);
+}
+
+static void
+qsev_guest_set_handle(Object *obj, Visitor *v, const char *name,
+ void *opaque, Error **errp)
+{
+ QSevGuestInfo *sev = QSEV_GUEST_INFO(obj);
+ uint32_t value;
+
+ visit_type_uint32(v, name, &value, errp);
+ sev->handle = value;
+}
+
+static void
+qsev_guest_set_policy(Object *obj, Visitor *v, const char *name,
+ void *opaque, Error **errp)
+{
+ QSevGuestInfo *sev = QSEV_GUEST_INFO(obj);
+ uint32_t value;
+
+ visit_type_uint32(v, name, &value, errp);
+ sev->policy = value;
+}
+
+static void
+qsev_guest_get_policy(Object *obj, Visitor *v, const char *name,
+ void *opaque, Error **errp)
+{
+ uint32_t value;
+ QSevGuestInfo *sev = QSEV_GUEST_INFO(obj);
+
+ value = sev->policy;
+ visit_type_uint32(v, name, &value, errp);
+}
+
+static void
+qsev_guest_get_handle(Object *obj, Visitor *v, const char *name,
+ void *opaque, Error **errp)
+{
+ uint32_t value;
+ QSevGuestInfo *sev = QSEV_GUEST_INFO(obj);
+
+ value = sev->handle;
+ visit_type_uint32(v, name, &value, errp);
+}
+
+static void
+qsev_guest_init(Object *obj)
+{
+ QSevGuestInfo *sev = QSEV_GUEST_INFO(obj);
+
+ sev->sev_device = g_strdup(DEFAULT_SEV_DEVICE);
+ sev->policy = DEFAULT_GUEST_POLICY;
+ object_property_add(obj, "policy", "uint32", qsev_guest_get_policy,
+ qsev_guest_set_policy, NULL, NULL, NULL);
+ object_property_add(obj, "handle", "uint32", qsev_guest_get_handle,
+ qsev_guest_set_handle, NULL, NULL, NULL);
+}
+
+/* sev guest info */
+static const TypeInfo qsev_guest_info = {
+ .parent = TYPE_OBJECT,
+ .name = TYPE_QSEV_GUEST_INFO,
+ .instance_size = sizeof(QSevGuestInfo),
+ .instance_finalize = qsev_guest_finalize,
+ .class_size = sizeof(QSevGuestInfoClass),
+ .class_init = qsev_guest_class_init,
+ .instance_init = qsev_guest_init,
+ .interfaces = (InterfaceInfo[]) {
+ { TYPE_USER_CREATABLE },
+ { }
+ }
+};
+
+static void
+sev_register_types(void)
+{
+ type_register_static(&qsev_guest_info);
+}
+
+type_init(sev_register_types);
diff --git a/docs/amd-memory-encryption.txt b/docs/amd-memory-encryption.txt
index 72a92b6c6353..1527f603ea2a 100644
--- a/docs/amd-memory-encryption.txt
+++ b/docs/amd-memory-encryption.txt
@@ -35,10 +35,21 @@ in bad measurement). The guest policy is a 4-byte data structure containing
several flags that restricts what can be done on running SEV guest.
See KM Spec section 3 and 6.2 for more details.
+The guest policy can be provided via the 'policy' property (see below)
+
+# ${QEMU} \
+ sev-guest,id=sev0,policy=0x1...\
+
Guest owners provided DH certificate and session parameters will be used to
establish a cryptographic session with the guest owner to negotiate keys used
for the attestation.
+The DH certificate and session blob can be provided via 'dh-cert-file' and
+'session-file' property (see below
+
+# ${QEMU} \
+ sev-guest,id=sev0,dh-cert-file=<file1>,session-file=<file2>
+
LAUNCH_UPDATE_DATA encrypts the memory region using the cryptographic context
created via LAUNCH_START command. If required, this command can be called
multiple times to encrypt different memory regions. The command also calculates
@@ -59,6 +70,12 @@ context.
See SEV KM API Spec [1] 'Launching a guest' usage flow (Appendix A) for the
complete flow chart.
+To launch a SEV guest
+
+# ${QEMU} \
+ -machine ...,memory-encryption=sev0 \
+ -object sev-guest,id=sev0
+
Debugging
-----------
Since memory contents of SEV guest is encrypted hence hypervisor access to the
diff --git a/include/sysemu/sev.h b/include/sysemu/sev.h
new file mode 100644
index 000000000000..d2621a9d1100
--- /dev/null
+++ b/include/sysemu/sev.h
@@ -0,0 +1,53 @@
+/*
+ * QEMU Secure Encrypted Virutualization (SEV) support
+ *
+ * Copyright: Advanced Micro Devices, 2016-2018
+ *
+ * Authors:
+ * Brijesh Singh <brijesh.singh@amd.com>
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or later.
+ * See the COPYING file in the top-level directory.
+ *
+ */
+
+#ifndef QEMU_SEV_H
+#define QEMU_SEV_H
+
+#include "qom/object.h"
+#include "qapi/error.h"
+#include "sysemu/kvm.h"
+#include "qemu/error-report.h"
+
+#define TYPE_QSEV_GUEST_INFO "sev-guest"
+#define QSEV_GUEST_INFO(obj) \
+ OBJECT_CHECK(QSevGuestInfo, (obj), TYPE_QSEV_GUEST_INFO)
+
+typedef struct QSevGuestInfo QSevGuestInfo;
+typedef struct QSevGuestInfoClass QSevGuestInfoClass;
+
+/**
+ * QSevGuestInfo:
+ *
+ * The QSevGuestInfo object is used for creating a SEV guest.
+ *
+ * # $QEMU \
+ * -object sev-guest,id=sev0 \
+ * -machine ...,memory-encryption=sev0
+ */
+struct QSevGuestInfo {
+ Object parent_obj;
+
+ char *sev_device;
+ uint32_t policy;
+ uint32_t handle;
+ char *dh_cert_file;
+ char *session_file;
+};
+
+struct QSevGuestInfoClass {
+ ObjectClass parent_class;
+};
+
+#endif
+
diff --git a/qemu-options.hx b/qemu-options.hx
index bec3490d7b8d..031886c1da77 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -4280,6 +4280,40 @@ contents of @code{iv.b64} to the second secret
data=$SECRET,iv=$(<iv.b64)
@end example
+@item -object sev-guest,id=@var{id},sev-device=@var{string}[,policy=@var{policy},handle=@var{handle},dh-cert-file=@var{file},session-file=@var{file}]
+
+Create a Secure Encrypted Virtualization (SEV) guest object, which can be used
+to provide the guest memory encryption support on AMD processors.
+
+The @option{sev-device} provides the device file to use for communicating with
+the SEV firmware running inside AMD Secure Processor. The default device is
+'/dev/sev'. If hardware supports memory encryption then /dev/sev devices are
+created by CCP driver.
+
+The @option{policy} provides the guest policy to be enforced by the SEV firmware
+and restrict what configuration and operational commands can be performed on this
+guest by the hypervisor. The policy should be provided by the guest owner and is
+bound to the guest and cannot be changed throughout the lifetime of the guest.
+The default is 0.
+
+If guest @option{policy} allows sharing the key with another SEV guest then
+@option{handle} can be use to provide handle of the guest from which to share
+the key.
+
+The @option{dh-cert-file} and @option{session-file} provides the guest owner's
+Public Diffie-Hillman key defined in SEV spec. The PDH and session parameters
+are used for establishing a cryptographic session with the guest owner to
+negotiate keys used for attestation. The file must be encoded in base64.
+
+e.g to launch a SEV guest
+@example
+ # $QEMU \
+ ......
+ -object sev-guest,id=sev0 \
+ -machine ...,memory-encryption=sev0
+ .....
+
+@end example
@end table
ETEXI
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [Qemu-devel] [PATCH v6 09/23] accel: add Secure Encrypted Virtulization (SEV) object
@ 2018-01-29 17:41 ` Brijesh Singh
0 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh
Add a new memory encryption object 'sev-guest'. The object will be used
to create enrypted VMs on AMD EPYC CPU. The object provides the properties
to pass guest owner's public Diffie-hellman key, guest policy and session
information required to create the memory encryption context within the
SEV firmware.
e.g to launch SEV guest
# $QEMU \
-object sev-guest,id=sev0 \
-machine ....,memory-encryption=sev0
Cc: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
accel/kvm/Makefile.objs | 2 +-
accel/kvm/sev.c | 179 +++++++++++++++++++++++++++++++++++++++++
docs/amd-memory-encryption.txt | 17 ++++
include/sysemu/sev.h | 53 ++++++++++++
qemu-options.hx | 34 ++++++++
5 files changed, 284 insertions(+), 1 deletion(-)
create mode 100644 accel/kvm/sev.c
create mode 100644 include/sysemu/sev.h
diff --git a/accel/kvm/Makefile.objs b/accel/kvm/Makefile.objs
index 85351e7de7e8..666ceef3dae3 100644
--- a/accel/kvm/Makefile.objs
+++ b/accel/kvm/Makefile.objs
@@ -1 +1 @@
-obj-$(CONFIG_KVM) += kvm-all.o
+obj-$(CONFIG_KVM) += kvm-all.o sev.o
diff --git a/accel/kvm/sev.c b/accel/kvm/sev.c
new file mode 100644
index 000000000000..e93fdfeb0c8f
--- /dev/null
+++ b/accel/kvm/sev.c
@@ -0,0 +1,179 @@
+/*
+ * QEMU SEV support
+ *
+ * Copyright Advanced Micro Devices 2016-2018
+ *
+ * Author:
+ * Brijesh Singh <brijesh.singh@amd.com>
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or later.
+ * See the COPYING file in the top-level directory.
+ *
+ */
+
+#include "qemu/osdep.h"
+#include "qapi/error.h"
+#include "qom/object_interfaces.h"
+#include "qemu/base64.h"
+#include "sysemu/kvm.h"
+#include "sysemu/sev.h"
+#include "sysemu/sysemu.h"
+
+#define DEFAULT_GUEST_POLICY 0x1 /* disable debug */
+#define DEFAULT_SEV_DEVICE "/dev/sev"
+
+static void
+qsev_guest_finalize(Object *obj)
+{
+}
+
+static char *
+qsev_guest_get_session_file(Object *obj, Error **errp)
+{
+ QSevGuestInfo *s = QSEV_GUEST_INFO(obj);
+
+ return s->session_file ? g_strdup(s->session_file) : NULL;
+}
+
+static void
+qsev_guest_set_session_file(Object *obj, const char *value, Error **errp)
+{
+ QSevGuestInfo *s = QSEV_GUEST_INFO(obj);
+
+ s->session_file = g_strdup(value);
+}
+
+static char *
+qsev_guest_get_dh_cert_file(Object *obj, Error **errp)
+{
+ QSevGuestInfo *s = QSEV_GUEST_INFO(obj);
+
+ return g_strdup(s->dh_cert_file);
+}
+
+static void
+qsev_guest_set_dh_cert_file(Object *obj, const char *value, Error **errp)
+{
+ QSevGuestInfo *s = QSEV_GUEST_INFO(obj);
+
+ s->dh_cert_file = g_strdup(value);
+}
+
+static char *
+qsev_guest_get_sev_device(Object *obj, Error **errp)
+{
+ QSevGuestInfo *sev = QSEV_GUEST_INFO(obj);
+
+ return g_strdup(sev->sev_device);
+}
+
+static void
+qsev_guest_set_sev_device(Object *obj, const char *value, Error **errp)
+{
+ QSevGuestInfo *sev = QSEV_GUEST_INFO(obj);
+
+ sev->sev_device = g_strdup(value);
+}
+
+static void
+qsev_guest_class_init(ObjectClass *oc, void *data)
+{
+ object_class_property_add_str(oc, "sev-device",
+ qsev_guest_get_sev_device,
+ qsev_guest_set_sev_device,
+ NULL);
+ object_class_property_set_description(oc, "sev-device",
+ "SEV device to use", NULL);
+ object_class_property_add_str(oc, "dh-cert-file",
+ qsev_guest_get_dh_cert_file,
+ qsev_guest_set_dh_cert_file,
+ NULL);
+ object_class_property_set_description(oc, "dh-cert-file",
+ "guest owners DH certificate (encoded with base64)", NULL);
+ object_class_property_add_str(oc, "session-file",
+ qsev_guest_get_session_file,
+ qsev_guest_set_session_file,
+ NULL);
+ object_class_property_set_description(oc, "session-file",
+ "guest owners session parameters (encoded with base64)", NULL);
+}
+
+static void
+qsev_guest_set_handle(Object *obj, Visitor *v, const char *name,
+ void *opaque, Error **errp)
+{
+ QSevGuestInfo *sev = QSEV_GUEST_INFO(obj);
+ uint32_t value;
+
+ visit_type_uint32(v, name, &value, errp);
+ sev->handle = value;
+}
+
+static void
+qsev_guest_set_policy(Object *obj, Visitor *v, const char *name,
+ void *opaque, Error **errp)
+{
+ QSevGuestInfo *sev = QSEV_GUEST_INFO(obj);
+ uint32_t value;
+
+ visit_type_uint32(v, name, &value, errp);
+ sev->policy = value;
+}
+
+static void
+qsev_guest_get_policy(Object *obj, Visitor *v, const char *name,
+ void *opaque, Error **errp)
+{
+ uint32_t value;
+ QSevGuestInfo *sev = QSEV_GUEST_INFO(obj);
+
+ value = sev->policy;
+ visit_type_uint32(v, name, &value, errp);
+}
+
+static void
+qsev_guest_get_handle(Object *obj, Visitor *v, const char *name,
+ void *opaque, Error **errp)
+{
+ uint32_t value;
+ QSevGuestInfo *sev = QSEV_GUEST_INFO(obj);
+
+ value = sev->handle;
+ visit_type_uint32(v, name, &value, errp);
+}
+
+static void
+qsev_guest_init(Object *obj)
+{
+ QSevGuestInfo *sev = QSEV_GUEST_INFO(obj);
+
+ sev->sev_device = g_strdup(DEFAULT_SEV_DEVICE);
+ sev->policy = DEFAULT_GUEST_POLICY;
+ object_property_add(obj, "policy", "uint32", qsev_guest_get_policy,
+ qsev_guest_set_policy, NULL, NULL, NULL);
+ object_property_add(obj, "handle", "uint32", qsev_guest_get_handle,
+ qsev_guest_set_handle, NULL, NULL, NULL);
+}
+
+/* sev guest info */
+static const TypeInfo qsev_guest_info = {
+ .parent = TYPE_OBJECT,
+ .name = TYPE_QSEV_GUEST_INFO,
+ .instance_size = sizeof(QSevGuestInfo),
+ .instance_finalize = qsev_guest_finalize,
+ .class_size = sizeof(QSevGuestInfoClass),
+ .class_init = qsev_guest_class_init,
+ .instance_init = qsev_guest_init,
+ .interfaces = (InterfaceInfo[]) {
+ { TYPE_USER_CREATABLE },
+ { }
+ }
+};
+
+static void
+sev_register_types(void)
+{
+ type_register_static(&qsev_guest_info);
+}
+
+type_init(sev_register_types);
diff --git a/docs/amd-memory-encryption.txt b/docs/amd-memory-encryption.txt
index 72a92b6c6353..1527f603ea2a 100644
--- a/docs/amd-memory-encryption.txt
+++ b/docs/amd-memory-encryption.txt
@@ -35,10 +35,21 @@ in bad measurement). The guest policy is a 4-byte data structure containing
several flags that restricts what can be done on running SEV guest.
See KM Spec section 3 and 6.2 for more details.
+The guest policy can be provided via the 'policy' property (see below)
+
+# ${QEMU} \
+ sev-guest,id=sev0,policy=0x1...\
+
Guest owners provided DH certificate and session parameters will be used to
establish a cryptographic session with the guest owner to negotiate keys used
for the attestation.
+The DH certificate and session blob can be provided via 'dh-cert-file' and
+'session-file' property (see below
+
+# ${QEMU} \
+ sev-guest,id=sev0,dh-cert-file=<file1>,session-file=<file2>
+
LAUNCH_UPDATE_DATA encrypts the memory region using the cryptographic context
created via LAUNCH_START command. If required, this command can be called
multiple times to encrypt different memory regions. The command also calculates
@@ -59,6 +70,12 @@ context.
See SEV KM API Spec [1] 'Launching a guest' usage flow (Appendix A) for the
complete flow chart.
+To launch a SEV guest
+
+# ${QEMU} \
+ -machine ...,memory-encryption=sev0 \
+ -object sev-guest,id=sev0
+
Debugging
-----------
Since memory contents of SEV guest is encrypted hence hypervisor access to the
diff --git a/include/sysemu/sev.h b/include/sysemu/sev.h
new file mode 100644
index 000000000000..d2621a9d1100
--- /dev/null
+++ b/include/sysemu/sev.h
@@ -0,0 +1,53 @@
+/*
+ * QEMU Secure Encrypted Virutualization (SEV) support
+ *
+ * Copyright: Advanced Micro Devices, 2016-2018
+ *
+ * Authors:
+ * Brijesh Singh <brijesh.singh@amd.com>
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or later.
+ * See the COPYING file in the top-level directory.
+ *
+ */
+
+#ifndef QEMU_SEV_H
+#define QEMU_SEV_H
+
+#include "qom/object.h"
+#include "qapi/error.h"
+#include "sysemu/kvm.h"
+#include "qemu/error-report.h"
+
+#define TYPE_QSEV_GUEST_INFO "sev-guest"
+#define QSEV_GUEST_INFO(obj) \
+ OBJECT_CHECK(QSevGuestInfo, (obj), TYPE_QSEV_GUEST_INFO)
+
+typedef struct QSevGuestInfo QSevGuestInfo;
+typedef struct QSevGuestInfoClass QSevGuestInfoClass;
+
+/**
+ * QSevGuestInfo:
+ *
+ * The QSevGuestInfo object is used for creating a SEV guest.
+ *
+ * # $QEMU \
+ * -object sev-guest,id=sev0 \
+ * -machine ...,memory-encryption=sev0
+ */
+struct QSevGuestInfo {
+ Object parent_obj;
+
+ char *sev_device;
+ uint32_t policy;
+ uint32_t handle;
+ char *dh_cert_file;
+ char *session_file;
+};
+
+struct QSevGuestInfoClass {
+ ObjectClass parent_class;
+};
+
+#endif
+
diff --git a/qemu-options.hx b/qemu-options.hx
index bec3490d7b8d..031886c1da77 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -4280,6 +4280,40 @@ contents of @code{iv.b64} to the second secret
data=$SECRET,iv=$(<iv.b64)
@end example
+@item -object sev-guest,id=@var{id},sev-device=@var{string}[,policy=@var{policy},handle=@var{handle},dh-cert-file=@var{file},session-file=@var{file}]
+
+Create a Secure Encrypted Virtualization (SEV) guest object, which can be used
+to provide the guest memory encryption support on AMD processors.
+
+The @option{sev-device} provides the device file to use for communicating with
+the SEV firmware running inside AMD Secure Processor. The default device is
+'/dev/sev'. If hardware supports memory encryption then /dev/sev devices are
+created by CCP driver.
+
+The @option{policy} provides the guest policy to be enforced by the SEV firmware
+and restrict what configuration and operational commands can be performed on this
+guest by the hypervisor. The policy should be provided by the guest owner and is
+bound to the guest and cannot be changed throughout the lifetime of the guest.
+The default is 0.
+
+If guest @option{policy} allows sharing the key with another SEV guest then
+@option{handle} can be use to provide handle of the guest from which to share
+the key.
+
+The @option{dh-cert-file} and @option{session-file} provides the guest owner's
+Public Diffie-Hillman key defined in SEV spec. The PDH and session parameters
+are used for establishing a cryptographic session with the guest owner to
+negotiate keys used for attestation. The file must be encoded in base64.
+
+e.g to launch a SEV guest
+@example
+ # $QEMU \
+ ......
+ -object sev-guest,id=sev0 \
+ -machine ...,memory-encryption=sev0
+ .....
+
+@end example
@end table
ETEXI
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [PATCH v6 10/23] sev: add command to initialize the memory encryption context
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
@ 2018-01-29 17:41 ` Brijesh Singh
-1 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh
When memory encryption is enabled, KVM_SEV_INIT command is used to
initialize the platform. The command loads the SEV related persistent
data from non-volatile storage and initializes the platform context.
This command should be first issued before invoking any other guest
commands provided by the SEV firmware.
Cc: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
accel/kvm/kvm-all.c | 15 ++++++
accel/kvm/sev.c | 124 +++++++++++++++++++++++++++++++++++++++++++++++++
accel/kvm/trace-events | 2 +
include/sysemu/sev.h | 10 ++++
4 files changed, 151 insertions(+)
diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c
index f290f487a573..a9b16846675e 100644
--- a/accel/kvm/kvm-all.c
+++ b/accel/kvm/kvm-all.c
@@ -38,6 +38,7 @@
#include "qemu/event_notifier.h"
#include "trace.h"
#include "hw/irq.h"
+#include "sysemu/sev.h"
#include "hw/boards.h"
@@ -103,6 +104,9 @@ struct KVMState
#endif
KVMMemoryListener memory_listener;
QLIST_HEAD(, KVMParkedVcpu) kvm_parked_vcpus;
+
+ /* memory encryption */
+ void *memcrypt_handle;
};
KVMState *kvm_state;
@@ -1632,6 +1636,17 @@ static int kvm_init(MachineState *ms)
kvm_state = s;
+ /*
+ * if memory encryption object is specified then initialize the memory
+ * encryption context.
+ * */
+ if (ms->memory_encryption) {
+ kvm_state->memcrypt_handle = sev_guest_init(ms->memory_encryption);
+ if (!kvm_state->memcrypt_handle) {
+ goto err;
+ }
+ }
+
ret = kvm_arch_init(ms, s);
if (ret < 0) {
goto err;
diff --git a/accel/kvm/sev.c b/accel/kvm/sev.c
index e93fdfeb0c8f..be1791e510b3 100644
--- a/accel/kvm/sev.c
+++ b/accel/kvm/sev.c
@@ -18,10 +18,72 @@
#include "sysemu/kvm.h"
#include "sysemu/sev.h"
#include "sysemu/sysemu.h"
+#include "trace.h"
#define DEFAULT_GUEST_POLICY 0x1 /* disable debug */
#define DEFAULT_SEV_DEVICE "/dev/sev"
+static int sev_fd;
+
+#define SEV_FW_MAX_ERROR 0x17
+
+static char sev_fw_errlist[SEV_FW_MAX_ERROR][100] = {
+ "",
+ "Platform state is invalid",
+ "Guest state is invalid",
+ "Platform configuration is invalid",
+ "Buffer too small",
+ "Platform is already owned",
+ "Certificate is invalid",
+ "Policy is not allowed",
+ "Guest is not active",
+ "Invalid address",
+ "Bad signature",
+ "Bad measurement",
+ "Asid is already owned",
+ "Invalid ASID",
+ "WBINVD is required",
+ "DF_FLUSH is required",
+ "Guest handle is invalid",
+ "Invalid command",
+ "Guest is active",
+ "Hardware error",
+ "Hardware unsafe",
+ "Feature not supported",
+ "Invalid parameter"
+};
+
+static int
+sev_ioctl(int cmd, void *data, int *error)
+{
+ int r;
+ struct kvm_sev_cmd input;
+
+ memset(&input, 0x0, sizeof(input));
+
+ input.id = cmd;
+ input.sev_fd = sev_fd;
+ input.data = (__u64)data;
+
+ r = kvm_vm_ioctl(kvm_state, KVM_MEMORY_ENCRYPT_OP, &input);
+
+ if (error) {
+ *error = input.error;
+ }
+
+ return r;
+}
+
+static char *
+fw_error_to_str(int code)
+{
+ if (code > SEV_FW_MAX_ERROR) {
+ return NULL;
+ }
+
+ return sev_fw_errlist[code];
+}
+
static void
qsev_guest_finalize(Object *obj)
{
@@ -170,6 +232,68 @@ static const TypeInfo qsev_guest_info = {
}
};
+static QSevGuestInfo *
+lookup_sev_guest_info(const char *id)
+{
+ Object *obj;
+ QSevGuestInfo *info;
+
+ obj = object_resolve_path_component(object_get_objects_root(), id);
+ if (!obj) {
+ return NULL;
+ }
+
+ info = (QSevGuestInfo *)
+ object_dynamic_cast(obj, TYPE_QSEV_GUEST_INFO);
+ if (!info) {
+ return NULL;
+ }
+
+ return info;
+}
+
+void *
+sev_guest_init(const char *id)
+{
+ SEVState *s;
+ char *devname;
+ int ret, fw_error;
+
+ s = g_malloc0(sizeof(SEVState));
+ if (!s) {
+ return NULL;
+ }
+
+ s->sev_info = lookup_sev_guest_info(id);
+ if (!s->sev_info) {
+ error_report("%s: '%s' is not a valid '%s' object",
+ __func__, id, TYPE_QSEV_GUEST_INFO);
+ goto err;
+ }
+
+ devname = object_property_get_str(OBJECT(s->sev_info), "sev-device", NULL);
+ sev_fd = open(devname, O_RDWR);
+ if (sev_fd < 0) {
+ error_report("%s: Failed to open %s '%s'", __func__,
+ devname, strerror(errno));
+ goto err;
+ }
+ g_free(devname);
+
+ trace_kvm_sev_init();
+ ret = sev_ioctl(KVM_SEV_INIT, NULL, &fw_error);
+ if (ret) {
+ error_report("%s: failed to initialize ret=%d fw_error=%d '%s'",
+ __func__, ret, fw_error, fw_error_to_str(fw_error));
+ goto err;
+ }
+
+ return s;
+err:
+ g_free(s);
+ return NULL;
+}
+
static void
sev_register_types(void)
{
diff --git a/accel/kvm/trace-events b/accel/kvm/trace-events
index f89ba5578dc1..ea487e5a5913 100644
--- a/accel/kvm/trace-events
+++ b/accel/kvm/trace-events
@@ -13,3 +13,5 @@ kvm_irqchip_add_msi_route(char *name, int vector, int virq) "dev %s vector %d vi
kvm_irqchip_update_msi_route(int virq) "Updating MSI route virq=%d"
kvm_irqchip_release_virq(int virq) "virq %d"
+# sev.c
+kvm_sev_init(void) ""
diff --git a/include/sysemu/sev.h b/include/sysemu/sev.h
index d2621a9d1100..6aec25bc05e5 100644
--- a/include/sysemu/sev.h
+++ b/include/sysemu/sev.h
@@ -14,6 +14,8 @@
#ifndef QEMU_SEV_H
#define QEMU_SEV_H
+#include <linux/kvm.h>
+
#include "qom/object.h"
#include "qapi/error.h"
#include "sysemu/kvm.h"
@@ -49,5 +51,13 @@ struct QSevGuestInfoClass {
ObjectClass parent_class;
};
+struct SEVState {
+ QSevGuestInfo *sev_info;
+};
+
+typedef struct SEVState SEVState;
+
+void *sev_guest_init(const char *id);
+
#endif
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [Qemu-devel] [PATCH v6 10/23] sev: add command to initialize the memory encryption context
@ 2018-01-29 17:41 ` Brijesh Singh
0 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh
When memory encryption is enabled, KVM_SEV_INIT command is used to
initialize the platform. The command loads the SEV related persistent
data from non-volatile storage and initializes the platform context.
This command should be first issued before invoking any other guest
commands provided by the SEV firmware.
Cc: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
accel/kvm/kvm-all.c | 15 ++++++
accel/kvm/sev.c | 124 +++++++++++++++++++++++++++++++++++++++++++++++++
accel/kvm/trace-events | 2 +
include/sysemu/sev.h | 10 ++++
4 files changed, 151 insertions(+)
diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c
index f290f487a573..a9b16846675e 100644
--- a/accel/kvm/kvm-all.c
+++ b/accel/kvm/kvm-all.c
@@ -38,6 +38,7 @@
#include "qemu/event_notifier.h"
#include "trace.h"
#include "hw/irq.h"
+#include "sysemu/sev.h"
#include "hw/boards.h"
@@ -103,6 +104,9 @@ struct KVMState
#endif
KVMMemoryListener memory_listener;
QLIST_HEAD(, KVMParkedVcpu) kvm_parked_vcpus;
+
+ /* memory encryption */
+ void *memcrypt_handle;
};
KVMState *kvm_state;
@@ -1632,6 +1636,17 @@ static int kvm_init(MachineState *ms)
kvm_state = s;
+ /*
+ * if memory encryption object is specified then initialize the memory
+ * encryption context.
+ * */
+ if (ms->memory_encryption) {
+ kvm_state->memcrypt_handle = sev_guest_init(ms->memory_encryption);
+ if (!kvm_state->memcrypt_handle) {
+ goto err;
+ }
+ }
+
ret = kvm_arch_init(ms, s);
if (ret < 0) {
goto err;
diff --git a/accel/kvm/sev.c b/accel/kvm/sev.c
index e93fdfeb0c8f..be1791e510b3 100644
--- a/accel/kvm/sev.c
+++ b/accel/kvm/sev.c
@@ -18,10 +18,72 @@
#include "sysemu/kvm.h"
#include "sysemu/sev.h"
#include "sysemu/sysemu.h"
+#include "trace.h"
#define DEFAULT_GUEST_POLICY 0x1 /* disable debug */
#define DEFAULT_SEV_DEVICE "/dev/sev"
+static int sev_fd;
+
+#define SEV_FW_MAX_ERROR 0x17
+
+static char sev_fw_errlist[SEV_FW_MAX_ERROR][100] = {
+ "",
+ "Platform state is invalid",
+ "Guest state is invalid",
+ "Platform configuration is invalid",
+ "Buffer too small",
+ "Platform is already owned",
+ "Certificate is invalid",
+ "Policy is not allowed",
+ "Guest is not active",
+ "Invalid address",
+ "Bad signature",
+ "Bad measurement",
+ "Asid is already owned",
+ "Invalid ASID",
+ "WBINVD is required",
+ "DF_FLUSH is required",
+ "Guest handle is invalid",
+ "Invalid command",
+ "Guest is active",
+ "Hardware error",
+ "Hardware unsafe",
+ "Feature not supported",
+ "Invalid parameter"
+};
+
+static int
+sev_ioctl(int cmd, void *data, int *error)
+{
+ int r;
+ struct kvm_sev_cmd input;
+
+ memset(&input, 0x0, sizeof(input));
+
+ input.id = cmd;
+ input.sev_fd = sev_fd;
+ input.data = (__u64)data;
+
+ r = kvm_vm_ioctl(kvm_state, KVM_MEMORY_ENCRYPT_OP, &input);
+
+ if (error) {
+ *error = input.error;
+ }
+
+ return r;
+}
+
+static char *
+fw_error_to_str(int code)
+{
+ if (code > SEV_FW_MAX_ERROR) {
+ return NULL;
+ }
+
+ return sev_fw_errlist[code];
+}
+
static void
qsev_guest_finalize(Object *obj)
{
@@ -170,6 +232,68 @@ static const TypeInfo qsev_guest_info = {
}
};
+static QSevGuestInfo *
+lookup_sev_guest_info(const char *id)
+{
+ Object *obj;
+ QSevGuestInfo *info;
+
+ obj = object_resolve_path_component(object_get_objects_root(), id);
+ if (!obj) {
+ return NULL;
+ }
+
+ info = (QSevGuestInfo *)
+ object_dynamic_cast(obj, TYPE_QSEV_GUEST_INFO);
+ if (!info) {
+ return NULL;
+ }
+
+ return info;
+}
+
+void *
+sev_guest_init(const char *id)
+{
+ SEVState *s;
+ char *devname;
+ int ret, fw_error;
+
+ s = g_malloc0(sizeof(SEVState));
+ if (!s) {
+ return NULL;
+ }
+
+ s->sev_info = lookup_sev_guest_info(id);
+ if (!s->sev_info) {
+ error_report("%s: '%s' is not a valid '%s' object",
+ __func__, id, TYPE_QSEV_GUEST_INFO);
+ goto err;
+ }
+
+ devname = object_property_get_str(OBJECT(s->sev_info), "sev-device", NULL);
+ sev_fd = open(devname, O_RDWR);
+ if (sev_fd < 0) {
+ error_report("%s: Failed to open %s '%s'", __func__,
+ devname, strerror(errno));
+ goto err;
+ }
+ g_free(devname);
+
+ trace_kvm_sev_init();
+ ret = sev_ioctl(KVM_SEV_INIT, NULL, &fw_error);
+ if (ret) {
+ error_report("%s: failed to initialize ret=%d fw_error=%d '%s'",
+ __func__, ret, fw_error, fw_error_to_str(fw_error));
+ goto err;
+ }
+
+ return s;
+err:
+ g_free(s);
+ return NULL;
+}
+
static void
sev_register_types(void)
{
diff --git a/accel/kvm/trace-events b/accel/kvm/trace-events
index f89ba5578dc1..ea487e5a5913 100644
--- a/accel/kvm/trace-events
+++ b/accel/kvm/trace-events
@@ -13,3 +13,5 @@ kvm_irqchip_add_msi_route(char *name, int vector, int virq) "dev %s vector %d vi
kvm_irqchip_update_msi_route(int virq) "Updating MSI route virq=%d"
kvm_irqchip_release_virq(int virq) "virq %d"
+# sev.c
+kvm_sev_init(void) ""
diff --git a/include/sysemu/sev.h b/include/sysemu/sev.h
index d2621a9d1100..6aec25bc05e5 100644
--- a/include/sysemu/sev.h
+++ b/include/sysemu/sev.h
@@ -14,6 +14,8 @@
#ifndef QEMU_SEV_H
#define QEMU_SEV_H
+#include <linux/kvm.h>
+
#include "qom/object.h"
#include "qapi/error.h"
#include "sysemu/kvm.h"
@@ -49,5 +51,13 @@ struct QSevGuestInfoClass {
ObjectClass parent_class;
};
+struct SEVState {
+ QSevGuestInfo *sev_info;
+};
+
+typedef struct SEVState SEVState;
+
+void *sev_guest_init(const char *id);
+
#endif
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [PATCH v6 11/23] sev: register the guest memory range which may contain encrypted data
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
@ 2018-01-29 17:41 ` Brijesh Singh
-1 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh
When SEV is enabled, the hardware encryption engine uses a tweak such
that the two identical plaintext at different location will have a
different ciphertexts. So swapping or moving a ciphertexts of two guest
pages will not result in plaintexts being swapped. Hence relocating
a physical backing pages of the SEV guest will require some additional
steps in KVM driver. The KVM_MEMORY_ENCRYPT_{UN,}REG_REGION ioctl can be
used to register/unregister the guest memory region which may contain the
encrypted data. KVM driver will internally handle the relocating physical
backing pages of registered memory regions.
Cc: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
accel/kvm/sev.c | 41 +++++++++++++++++++++++++++++++++++++++++
accel/kvm/trace-events | 2 ++
2 files changed, 43 insertions(+)
diff --git a/accel/kvm/sev.c b/accel/kvm/sev.c
index be1791e510b3..5ae37caeb361 100644
--- a/accel/kvm/sev.c
+++ b/accel/kvm/sev.c
@@ -85,6 +85,45 @@ fw_error_to_str(int code)
}
static void
+sev_ram_block_added(RAMBlockNotifier *n, void *host, size_t size)
+{
+ int r;
+ struct kvm_enc_region range;
+
+ range.addr = (__u64)host;
+ range.size = size;
+
+ trace_kvm_memcrypt_register_region(host, size);
+ r = kvm_vm_ioctl(kvm_state, KVM_MEMORY_ENCRYPT_REG_REGION, &range);
+ if (r) {
+ error_report("%s: failed to register region (%p+%#lx)",
+ __func__, host, size);
+ }
+}
+
+static void
+sev_ram_block_removed(RAMBlockNotifier *n, void *host, size_t size)
+{
+ int r;
+ struct kvm_enc_region range;
+
+ range.addr = (__u64)host;
+ range.size = size;
+
+ trace_kvm_memcrypt_unregister_region(host, size);
+ r = kvm_vm_ioctl(kvm_state, KVM_MEMORY_ENCRYPT_UNREG_REGION, &range);
+ if (r) {
+ error_report("%s: failed to unregister region (%p+%#lx)",
+ __func__, host, size);
+ }
+}
+
+static struct RAMBlockNotifier sev_ram_notifier = {
+ .ram_block_added = sev_ram_block_added,
+ .ram_block_removed = sev_ram_block_removed,
+};
+
+static void
qsev_guest_finalize(Object *obj)
{
}
@@ -288,6 +327,8 @@ sev_guest_init(const char *id)
goto err;
}
+ ram_block_notifier_add(&sev_ram_notifier);
+
return s;
err:
g_free(s);
diff --git a/accel/kvm/trace-events b/accel/kvm/trace-events
index ea487e5a5913..364c84bd7a73 100644
--- a/accel/kvm/trace-events
+++ b/accel/kvm/trace-events
@@ -15,3 +15,5 @@ kvm_irqchip_release_virq(int virq) "virq %d"
# sev.c
kvm_sev_init(void) ""
+kvm_memcrypt_register_region(void *addr, size_t len) "addr %p len 0x%lu"
+kvm_memcrypt_unregister_region(void *addr, size_t len) "addr %p len 0x%lu"
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [Qemu-devel] [PATCH v6 11/23] sev: register the guest memory range which may contain encrypted data
@ 2018-01-29 17:41 ` Brijesh Singh
0 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh
When SEV is enabled, the hardware encryption engine uses a tweak such
that the two identical plaintext at different location will have a
different ciphertexts. So swapping or moving a ciphertexts of two guest
pages will not result in plaintexts being swapped. Hence relocating
a physical backing pages of the SEV guest will require some additional
steps in KVM driver. The KVM_MEMORY_ENCRYPT_{UN,}REG_REGION ioctl can be
used to register/unregister the guest memory region which may contain the
encrypted data. KVM driver will internally handle the relocating physical
backing pages of registered memory regions.
Cc: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
accel/kvm/sev.c | 41 +++++++++++++++++++++++++++++++++++++++++
accel/kvm/trace-events | 2 ++
2 files changed, 43 insertions(+)
diff --git a/accel/kvm/sev.c b/accel/kvm/sev.c
index be1791e510b3..5ae37caeb361 100644
--- a/accel/kvm/sev.c
+++ b/accel/kvm/sev.c
@@ -85,6 +85,45 @@ fw_error_to_str(int code)
}
static void
+sev_ram_block_added(RAMBlockNotifier *n, void *host, size_t size)
+{
+ int r;
+ struct kvm_enc_region range;
+
+ range.addr = (__u64)host;
+ range.size = size;
+
+ trace_kvm_memcrypt_register_region(host, size);
+ r = kvm_vm_ioctl(kvm_state, KVM_MEMORY_ENCRYPT_REG_REGION, &range);
+ if (r) {
+ error_report("%s: failed to register region (%p+%#lx)",
+ __func__, host, size);
+ }
+}
+
+static void
+sev_ram_block_removed(RAMBlockNotifier *n, void *host, size_t size)
+{
+ int r;
+ struct kvm_enc_region range;
+
+ range.addr = (__u64)host;
+ range.size = size;
+
+ trace_kvm_memcrypt_unregister_region(host, size);
+ r = kvm_vm_ioctl(kvm_state, KVM_MEMORY_ENCRYPT_UNREG_REGION, &range);
+ if (r) {
+ error_report("%s: failed to unregister region (%p+%#lx)",
+ __func__, host, size);
+ }
+}
+
+static struct RAMBlockNotifier sev_ram_notifier = {
+ .ram_block_added = sev_ram_block_added,
+ .ram_block_removed = sev_ram_block_removed,
+};
+
+static void
qsev_guest_finalize(Object *obj)
{
}
@@ -288,6 +327,8 @@ sev_guest_init(const char *id)
goto err;
}
+ ram_block_notifier_add(&sev_ram_notifier);
+
return s;
err:
g_free(s);
diff --git a/accel/kvm/trace-events b/accel/kvm/trace-events
index ea487e5a5913..364c84bd7a73 100644
--- a/accel/kvm/trace-events
+++ b/accel/kvm/trace-events
@@ -15,3 +15,5 @@ kvm_irqchip_release_virq(int virq) "virq %d"
# sev.c
kvm_sev_init(void) ""
+kvm_memcrypt_register_region(void *addr, size_t len) "addr %p len 0x%lu"
+kvm_memcrypt_unregister_region(void *addr, size_t len) "addr %p len 0x%lu"
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [PATCH v6 12/23] kvm: introduce memory encryption APIs
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
@ 2018-01-29 17:41 ` Brijesh Singh
-1 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh
Inorder to integerate the Secure Encryption Virtualization (SEV) support
add few high-level memory encryption APIs which can be used for encrypting
the guest memory region.
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: kvm@vger.kernel.org
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
accel/kvm/kvm-all.c | 30 ++++++++++++++++++++++++++++++
accel/stubs/kvm-stub.c | 14 ++++++++++++++
include/sysemu/kvm.h | 25 +++++++++++++++++++++++++
3 files changed, 69 insertions(+)
diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c
index a9b16846675e..54a0fd6097fb 100644
--- a/accel/kvm/kvm-all.c
+++ b/accel/kvm/kvm-all.c
@@ -107,6 +107,8 @@ struct KVMState
/* memory encryption */
void *memcrypt_handle;
+ int (*memcrypt_encrypt_data)(void *handle, uint8_t *ptr, uint64_t len);
+ void (*memcrypt_debug_ops)(void *handle, MemoryRegion *mr);
};
KVMState *kvm_state;
@@ -142,6 +144,34 @@ int kvm_get_max_memslots(void)
return s->nr_slots;
}
+bool kvm_memcrypt_enabled(void)
+{
+ if (kvm_state && kvm_state->memcrypt_handle) {
+ return true;
+ }
+
+ return false;
+}
+
+int kvm_memcrypt_encrypt_data(uint8_t *ptr, uint64_t len)
+{
+ if (kvm_state->memcrypt_handle &&
+ kvm_state->memcrypt_encrypt_data) {
+ return kvm_state->memcrypt_encrypt_data(kvm_state->memcrypt_handle,
+ ptr, len);
+ }
+
+ return 1;
+}
+
+void kvm_memcrypt_set_debug_ops(MemoryRegion *mr)
+{
+ if (kvm_state->memcrypt_handle &&
+ kvm_state->memcrypt_debug_ops) {
+ kvm_state->memcrypt_debug_ops(kvm_state->memcrypt_handle, mr);
+ }
+}
+
static KVMSlot *kvm_get_free_slot(KVMMemoryListener *kml)
{
KVMState *s = kvm_state;
diff --git a/accel/stubs/kvm-stub.c b/accel/stubs/kvm-stub.c
index c964af3e1c97..5739712a67e3 100644
--- a/accel/stubs/kvm-stub.c
+++ b/accel/stubs/kvm-stub.c
@@ -105,6 +105,20 @@ int kvm_on_sigbus(int code, void *addr)
return 1;
}
+bool kvm_memcrypt_enabled(void)
+{
+ return false;
+}
+
+int kvm_memcrypt_encrypt_data(uint8_t *ptr, uint64_t len)
+{
+ return 1;
+}
+
+void kvm_memcrypt_set_debug_ops(MemoryRegion *mr)
+{
+}
+
#ifndef CONFIG_USER_ONLY
int kvm_irqchip_add_msi_route(KVMState *s, int vector, PCIDevice *dev)
{
diff --git a/include/sysemu/kvm.h b/include/sysemu/kvm.h
index bbf12a172339..4a5db5dde390 100644
--- a/include/sysemu/kvm.h
+++ b/include/sysemu/kvm.h
@@ -231,6 +231,31 @@ int kvm_destroy_vcpu(CPUState *cpu);
*/
bool kvm_arm_supports_user_irq(void);
+/**
+ * kvm_memcrypt_enabled - return boolean indicating whether memory encryption
+ * is enabled
+ * Returns: 1 memory encryption is enabled
+ * 0 memory encryption is disabled
+ */
+bool kvm_memcrypt_enabled(void);
+
+/**
+ * kvm_memcrypt_encrypt_data: encrypt the memory range
+ *
+ * Return: 1 failed to encrypt the range
+ * 0 succesfully encrypted memory region
+ */
+int kvm_memcrypt_encrypt_data(uint8_t *ptr, uint64_t len);
+
+/**
+ * kvm_memcrypt_set_debug_ram_ops: set debug_ram_ops callback
+ *
+ * When debug_ram_ops is set, debug access to this memory region will use
+ * memory encryption APIs.
+ */
+void kvm_memcrypt_set_debug_ops(MemoryRegion *mr);
+
+
#ifdef NEED_CPU_H
#include "cpu.h"
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [Qemu-devel] [PATCH v6 12/23] kvm: introduce memory encryption APIs
@ 2018-01-29 17:41 ` Brijesh Singh
0 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh
Inorder to integerate the Secure Encryption Virtualization (SEV) support
add few high-level memory encryption APIs which can be used for encrypting
the guest memory region.
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: kvm@vger.kernel.org
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
accel/kvm/kvm-all.c | 30 ++++++++++++++++++++++++++++++
accel/stubs/kvm-stub.c | 14 ++++++++++++++
include/sysemu/kvm.h | 25 +++++++++++++++++++++++++
3 files changed, 69 insertions(+)
diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c
index a9b16846675e..54a0fd6097fb 100644
--- a/accel/kvm/kvm-all.c
+++ b/accel/kvm/kvm-all.c
@@ -107,6 +107,8 @@ struct KVMState
/* memory encryption */
void *memcrypt_handle;
+ int (*memcrypt_encrypt_data)(void *handle, uint8_t *ptr, uint64_t len);
+ void (*memcrypt_debug_ops)(void *handle, MemoryRegion *mr);
};
KVMState *kvm_state;
@@ -142,6 +144,34 @@ int kvm_get_max_memslots(void)
return s->nr_slots;
}
+bool kvm_memcrypt_enabled(void)
+{
+ if (kvm_state && kvm_state->memcrypt_handle) {
+ return true;
+ }
+
+ return false;
+}
+
+int kvm_memcrypt_encrypt_data(uint8_t *ptr, uint64_t len)
+{
+ if (kvm_state->memcrypt_handle &&
+ kvm_state->memcrypt_encrypt_data) {
+ return kvm_state->memcrypt_encrypt_data(kvm_state->memcrypt_handle,
+ ptr, len);
+ }
+
+ return 1;
+}
+
+void kvm_memcrypt_set_debug_ops(MemoryRegion *mr)
+{
+ if (kvm_state->memcrypt_handle &&
+ kvm_state->memcrypt_debug_ops) {
+ kvm_state->memcrypt_debug_ops(kvm_state->memcrypt_handle, mr);
+ }
+}
+
static KVMSlot *kvm_get_free_slot(KVMMemoryListener *kml)
{
KVMState *s = kvm_state;
diff --git a/accel/stubs/kvm-stub.c b/accel/stubs/kvm-stub.c
index c964af3e1c97..5739712a67e3 100644
--- a/accel/stubs/kvm-stub.c
+++ b/accel/stubs/kvm-stub.c
@@ -105,6 +105,20 @@ int kvm_on_sigbus(int code, void *addr)
return 1;
}
+bool kvm_memcrypt_enabled(void)
+{
+ return false;
+}
+
+int kvm_memcrypt_encrypt_data(uint8_t *ptr, uint64_t len)
+{
+ return 1;
+}
+
+void kvm_memcrypt_set_debug_ops(MemoryRegion *mr)
+{
+}
+
#ifndef CONFIG_USER_ONLY
int kvm_irqchip_add_msi_route(KVMState *s, int vector, PCIDevice *dev)
{
diff --git a/include/sysemu/kvm.h b/include/sysemu/kvm.h
index bbf12a172339..4a5db5dde390 100644
--- a/include/sysemu/kvm.h
+++ b/include/sysemu/kvm.h
@@ -231,6 +231,31 @@ int kvm_destroy_vcpu(CPUState *cpu);
*/
bool kvm_arm_supports_user_irq(void);
+/**
+ * kvm_memcrypt_enabled - return boolean indicating whether memory encryption
+ * is enabled
+ * Returns: 1 memory encryption is enabled
+ * 0 memory encryption is disabled
+ */
+bool kvm_memcrypt_enabled(void);
+
+/**
+ * kvm_memcrypt_encrypt_data: encrypt the memory range
+ *
+ * Return: 1 failed to encrypt the range
+ * 0 succesfully encrypted memory region
+ */
+int kvm_memcrypt_encrypt_data(uint8_t *ptr, uint64_t len);
+
+/**
+ * kvm_memcrypt_set_debug_ram_ops: set debug_ram_ops callback
+ *
+ * When debug_ram_ops is set, debug access to this memory region will use
+ * memory encryption APIs.
+ */
+void kvm_memcrypt_set_debug_ops(MemoryRegion *mr);
+
+
#ifdef NEED_CPU_H
#include "cpu.h"
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [PATCH v6 13/23] hmp: display memory encryption support in 'info kvm'
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
@ 2018-01-29 17:41 ` Brijesh Singh
-1 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh, Markus Armbruster
update 'info kvm' to display the memory encryption support.
(qemu) info kvm
kvm support: enabled
memory encryption: disabled
Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
Cc: Eric Blake <eblake@redhat.com>
Cc: Markus Armbruster <armbru@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
hmp.c | 2 ++
qapi-schema.json | 5 ++++-
qmp.c | 1 +
3 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/hmp.c b/hmp.c
index 056bf70cf1e2..6ceb6b30af75 100644
--- a/hmp.c
+++ b/hmp.c
@@ -88,6 +88,8 @@ void hmp_info_kvm(Monitor *mon, const QDict *qdict)
monitor_printf(mon, "kvm support: ");
if (info->present) {
monitor_printf(mon, "%s\n", info->enabled ? "enabled" : "disabled");
+ monitor_printf(mon, "memory encryption: %s\n",
+ info->mem_encryption ? "enabled" : "disabled");
} else {
monitor_printf(mon, "not compiled\n");
}
diff --git a/qapi-schema.json b/qapi-schema.json
index 5c06745c7927..2046c96669bf 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -314,9 +314,12 @@
#
# @present: true if KVM acceleration is built into this executable
#
+# @mem-encryption: true if Memory Encryption is active (since 2.12)
+#
# Since: 0.14.0
##
-{ 'struct': 'KvmInfo', 'data': {'enabled': 'bool', 'present': 'bool'} }
+{ 'struct': 'KvmInfo', 'data': {'enabled': 'bool', 'present': 'bool',
+ 'mem-encryption' : 'bool'} }
##
# @query-kvm:
diff --git a/qmp.c b/qmp.c
index 52cfd2d81c0f..3a527bc8c39c 100644
--- a/qmp.c
+++ b/qmp.c
@@ -69,6 +69,7 @@ KvmInfo *qmp_query_kvm(Error **errp)
info->enabled = kvm_enabled();
info->present = kvm_available();
+ info->mem_encryption = kvm_memcrypt_enabled();
return info;
}
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [Qemu-devel] [PATCH v6 13/23] hmp: display memory encryption support in 'info kvm'
@ 2018-01-29 17:41 ` Brijesh Singh
0 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh, Markus Armbruster
update 'info kvm' to display the memory encryption support.
(qemu) info kvm
kvm support: enabled
memory encryption: disabled
Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
Cc: Eric Blake <eblake@redhat.com>
Cc: Markus Armbruster <armbru@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
hmp.c | 2 ++
qapi-schema.json | 5 ++++-
qmp.c | 1 +
3 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/hmp.c b/hmp.c
index 056bf70cf1e2..6ceb6b30af75 100644
--- a/hmp.c
+++ b/hmp.c
@@ -88,6 +88,8 @@ void hmp_info_kvm(Monitor *mon, const QDict *qdict)
monitor_printf(mon, "kvm support: ");
if (info->present) {
monitor_printf(mon, "%s\n", info->enabled ? "enabled" : "disabled");
+ monitor_printf(mon, "memory encryption: %s\n",
+ info->mem_encryption ? "enabled" : "disabled");
} else {
monitor_printf(mon, "not compiled\n");
}
diff --git a/qapi-schema.json b/qapi-schema.json
index 5c06745c7927..2046c96669bf 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -314,9 +314,12 @@
#
# @present: true if KVM acceleration is built into this executable
#
+# @mem-encryption: true if Memory Encryption is active (since 2.12)
+#
# Since: 0.14.0
##
-{ 'struct': 'KvmInfo', 'data': {'enabled': 'bool', 'present': 'bool'} }
+{ 'struct': 'KvmInfo', 'data': {'enabled': 'bool', 'present': 'bool',
+ 'mem-encryption' : 'bool'} }
##
# @query-kvm:
diff --git a/qmp.c b/qmp.c
index 52cfd2d81c0f..3a527bc8c39c 100644
--- a/qmp.c
+++ b/qmp.c
@@ -69,6 +69,7 @@ KvmInfo *qmp_query_kvm(Error **errp)
info->enabled = kvm_enabled();
info->present = kvm_available();
+ info->mem_encryption = kvm_memcrypt_enabled();
return info;
}
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [PATCH v6 14/23] sev: add command to create launch memory encryption context
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
@ 2018-01-29 17:41 ` Brijesh Singh
-1 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh
The KVM_SEV_LAUNCH_START command creates a new VM encryption key (VEK).
The encryption key created with the command will be used for encrypting
the bootstrap images (such as guest bios).
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: kvm@vger.kernel.org
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
accel/kvm/sev.c | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++
accel/kvm/trace-events | 2 ++
include/sysemu/sev.h | 10 ++++++
3 files changed, 109 insertions(+)
diff --git a/accel/kvm/sev.c b/accel/kvm/sev.c
index 5ae37caeb361..eea07ac9642f 100644
--- a/accel/kvm/sev.c
+++ b/accel/kvm/sev.c
@@ -27,6 +27,17 @@ static int sev_fd;
#define SEV_FW_MAX_ERROR 0x17
+static SevGuestState current_sev_guest_state = SEV_STATE_UNINIT;
+
+static char sev_state_str[SEV_STATE_MAX][10] = {
+ "uninit",
+ "lupdate",
+ "secret",
+ "running",
+ "supdate",
+ "rupdate",
+};
+
static char sev_fw_errlist[SEV_FW_MAX_ERROR][100] = {
"",
"Platform state is invalid",
@@ -85,6 +96,16 @@ fw_error_to_str(int code)
}
static void
+sev_set_guest_state(SevGuestState new_state)
+{
+ assert(new_state < SEV_STATE_MAX);
+
+ trace_kvm_sev_change_state(sev_state_str[current_sev_guest_state],
+ sev_state_str[new_state]);
+ current_sev_guest_state = new_state;
+}
+
+static void
sev_ram_block_added(RAMBlockNotifier *n, void *host, size_t size)
{
int r;
@@ -291,6 +312,76 @@ lookup_sev_guest_info(const char *id)
return info;
}
+static int
+sev_read_file_base64(const char *filename, guchar **data, gsize *len)
+{
+ gsize sz;
+ gchar *base64;
+ GError *error = NULL;
+
+ if (!g_file_get_contents(filename, &base64, &sz, &error)) {
+ error_report("failed to read '%s' (%s)", filename, error->message);
+ return -1;
+ }
+
+ *data = g_base64_decode(base64, len);
+ return 0;
+}
+
+static int
+sev_launch_start(SEVState *s)
+{
+ gsize sz;
+ int ret = 1;
+ int fw_error;
+ QSevGuestInfo *sev = s->sev_info;
+ struct kvm_sev_launch_start *start;
+ guchar *session = NULL, *dh_cert = NULL;
+
+ start = g_malloc0(sizeof(*start));
+ if (!start) {
+ return 1;
+ }
+
+ start->handle = object_property_get_int(OBJECT(sev), "handle",
+ &error_abort);
+ start->policy = object_property_get_int(OBJECT(sev), "policy",
+ &error_abort);
+ if (sev->session_file) {
+ if (sev_read_file_base64(sev->session_file, &session, &sz) < 0) {
+ return 1;
+ }
+ start->session_uaddr = (unsigned long)session;
+ start->session_len = sz;
+ }
+
+ if (sev->dh_cert_file) {
+ if (sev_read_file_base64(sev->dh_cert_file, &dh_cert, &sz) < 0) {
+ return 1;
+ }
+ start->dh_uaddr = (unsigned long)dh_cert;
+ start->dh_len = sz;
+ }
+
+ trace_kvm_sev_launch_start(start->policy, session, dh_cert);
+ ret = sev_ioctl(KVM_SEV_LAUNCH_START, start, &fw_error);
+ if (ret < 0) {
+ error_report("%s: LAUNCH_START ret=%d fw_error=%d '%s'",
+ __func__, ret, fw_error, fw_error_to_str(fw_error));
+ return 1;
+ }
+
+ object_property_set_int(OBJECT(sev), start->handle, "handle",
+ &error_abort);
+ sev_set_guest_state(SEV_STATE_LUPDATE);
+
+ g_free(start);
+ g_free(session);
+ g_free(dh_cert);
+
+ return 0;
+}
+
void *
sev_guest_init(const char *id)
{
@@ -327,6 +418,12 @@ sev_guest_init(const char *id)
goto err;
}
+ ret = sev_launch_start(s);
+ if (ret) {
+ error_report("%s: failed to create encryption context", __func__);
+ goto err;
+ }
+
ram_block_notifier_add(&sev_ram_notifier);
return s;
diff --git a/accel/kvm/trace-events b/accel/kvm/trace-events
index 364c84bd7a73..a4ea1c382ec2 100644
--- a/accel/kvm/trace-events
+++ b/accel/kvm/trace-events
@@ -17,3 +17,5 @@ kvm_irqchip_release_virq(int virq) "virq %d"
kvm_sev_init(void) ""
kvm_memcrypt_register_region(void *addr, size_t len) "addr %p len 0x%lu"
kvm_memcrypt_unregister_region(void *addr, size_t len) "addr %p len 0x%lu"
+kvm_sev_change_state(char *old, char *new) "%s -> %s"
+kvm_sev_launch_start(int policy, void *session, void *pdh) "policy 0x%x session %p pdh %p"
diff --git a/include/sysemu/sev.h b/include/sysemu/sev.h
index 6aec25bc05e5..392b21fafbd3 100644
--- a/include/sysemu/sev.h
+++ b/include/sysemu/sev.h
@@ -51,6 +51,16 @@ struct QSevGuestInfoClass {
ObjectClass parent_class;
};
+typedef enum {
+ SEV_STATE_UNINIT = 0,
+ SEV_STATE_LUPDATE,
+ SEV_STATE_SECRET,
+ SEV_STATE_RUNNING,
+ SEV_STATE_SUPDATE,
+ SEV_STATE_RUPDATE,
+ SEV_STATE_MAX
+} SevGuestState;
+
struct SEVState {
QSevGuestInfo *sev_info;
};
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [Qemu-devel] [PATCH v6 14/23] sev: add command to create launch memory encryption context
@ 2018-01-29 17:41 ` Brijesh Singh
0 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh
The KVM_SEV_LAUNCH_START command creates a new VM encryption key (VEK).
The encryption key created with the command will be used for encrypting
the bootstrap images (such as guest bios).
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: kvm@vger.kernel.org
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
accel/kvm/sev.c | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++
accel/kvm/trace-events | 2 ++
include/sysemu/sev.h | 10 ++++++
3 files changed, 109 insertions(+)
diff --git a/accel/kvm/sev.c b/accel/kvm/sev.c
index 5ae37caeb361..eea07ac9642f 100644
--- a/accel/kvm/sev.c
+++ b/accel/kvm/sev.c
@@ -27,6 +27,17 @@ static int sev_fd;
#define SEV_FW_MAX_ERROR 0x17
+static SevGuestState current_sev_guest_state = SEV_STATE_UNINIT;
+
+static char sev_state_str[SEV_STATE_MAX][10] = {
+ "uninit",
+ "lupdate",
+ "secret",
+ "running",
+ "supdate",
+ "rupdate",
+};
+
static char sev_fw_errlist[SEV_FW_MAX_ERROR][100] = {
"",
"Platform state is invalid",
@@ -85,6 +96,16 @@ fw_error_to_str(int code)
}
static void
+sev_set_guest_state(SevGuestState new_state)
+{
+ assert(new_state < SEV_STATE_MAX);
+
+ trace_kvm_sev_change_state(sev_state_str[current_sev_guest_state],
+ sev_state_str[new_state]);
+ current_sev_guest_state = new_state;
+}
+
+static void
sev_ram_block_added(RAMBlockNotifier *n, void *host, size_t size)
{
int r;
@@ -291,6 +312,76 @@ lookup_sev_guest_info(const char *id)
return info;
}
+static int
+sev_read_file_base64(const char *filename, guchar **data, gsize *len)
+{
+ gsize sz;
+ gchar *base64;
+ GError *error = NULL;
+
+ if (!g_file_get_contents(filename, &base64, &sz, &error)) {
+ error_report("failed to read '%s' (%s)", filename, error->message);
+ return -1;
+ }
+
+ *data = g_base64_decode(base64, len);
+ return 0;
+}
+
+static int
+sev_launch_start(SEVState *s)
+{
+ gsize sz;
+ int ret = 1;
+ int fw_error;
+ QSevGuestInfo *sev = s->sev_info;
+ struct kvm_sev_launch_start *start;
+ guchar *session = NULL, *dh_cert = NULL;
+
+ start = g_malloc0(sizeof(*start));
+ if (!start) {
+ return 1;
+ }
+
+ start->handle = object_property_get_int(OBJECT(sev), "handle",
+ &error_abort);
+ start->policy = object_property_get_int(OBJECT(sev), "policy",
+ &error_abort);
+ if (sev->session_file) {
+ if (sev_read_file_base64(sev->session_file, &session, &sz) < 0) {
+ return 1;
+ }
+ start->session_uaddr = (unsigned long)session;
+ start->session_len = sz;
+ }
+
+ if (sev->dh_cert_file) {
+ if (sev_read_file_base64(sev->dh_cert_file, &dh_cert, &sz) < 0) {
+ return 1;
+ }
+ start->dh_uaddr = (unsigned long)dh_cert;
+ start->dh_len = sz;
+ }
+
+ trace_kvm_sev_launch_start(start->policy, session, dh_cert);
+ ret = sev_ioctl(KVM_SEV_LAUNCH_START, start, &fw_error);
+ if (ret < 0) {
+ error_report("%s: LAUNCH_START ret=%d fw_error=%d '%s'",
+ __func__, ret, fw_error, fw_error_to_str(fw_error));
+ return 1;
+ }
+
+ object_property_set_int(OBJECT(sev), start->handle, "handle",
+ &error_abort);
+ sev_set_guest_state(SEV_STATE_LUPDATE);
+
+ g_free(start);
+ g_free(session);
+ g_free(dh_cert);
+
+ return 0;
+}
+
void *
sev_guest_init(const char *id)
{
@@ -327,6 +418,12 @@ sev_guest_init(const char *id)
goto err;
}
+ ret = sev_launch_start(s);
+ if (ret) {
+ error_report("%s: failed to create encryption context", __func__);
+ goto err;
+ }
+
ram_block_notifier_add(&sev_ram_notifier);
return s;
diff --git a/accel/kvm/trace-events b/accel/kvm/trace-events
index 364c84bd7a73..a4ea1c382ec2 100644
--- a/accel/kvm/trace-events
+++ b/accel/kvm/trace-events
@@ -17,3 +17,5 @@ kvm_irqchip_release_virq(int virq) "virq %d"
kvm_sev_init(void) ""
kvm_memcrypt_register_region(void *addr, size_t len) "addr %p len 0x%lu"
kvm_memcrypt_unregister_region(void *addr, size_t len) "addr %p len 0x%lu"
+kvm_sev_change_state(char *old, char *new) "%s -> %s"
+kvm_sev_launch_start(int policy, void *session, void *pdh) "policy 0x%x session %p pdh %p"
diff --git a/include/sysemu/sev.h b/include/sysemu/sev.h
index 6aec25bc05e5..392b21fafbd3 100644
--- a/include/sysemu/sev.h
+++ b/include/sysemu/sev.h
@@ -51,6 +51,16 @@ struct QSevGuestInfoClass {
ObjectClass parent_class;
};
+typedef enum {
+ SEV_STATE_UNINIT = 0,
+ SEV_STATE_LUPDATE,
+ SEV_STATE_SECRET,
+ SEV_STATE_RUNNING,
+ SEV_STATE_SUPDATE,
+ SEV_STATE_RUPDATE,
+ SEV_STATE_MAX
+} SevGuestState;
+
struct SEVState {
QSevGuestInfo *sev_info;
};
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [PATCH v6 15/23] sev: add command to encrypt guest memory region
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
@ 2018-01-29 17:41 ` Brijesh Singh
-1 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh
The KVM_SEV_LAUNCH_UPDATE_DATA command is used to encrypt a guest memory
region using the VM Encryption Key created using LAUNCH_START.
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
accel/kvm/kvm-all.c | 2 ++
accel/kvm/sev.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
accel/kvm/trace-events | 1 +
include/sysemu/sev.h | 1 +
4 files changed, 53 insertions(+)
diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c
index 54a0fd6097fb..d35eebb97901 100644
--- a/accel/kvm/kvm-all.c
+++ b/accel/kvm/kvm-all.c
@@ -1675,6 +1675,8 @@ static int kvm_init(MachineState *ms)
if (!kvm_state->memcrypt_handle) {
goto err;
}
+
+ kvm_state->memcrypt_encrypt_data = sev_encrypt_data;
}
ret = kvm_arch_init(ms, s);
diff --git a/accel/kvm/sev.c b/accel/kvm/sev.c
index eea07ac9642f..1f757df725df 100644
--- a/accel/kvm/sev.c
+++ b/accel/kvm/sev.c
@@ -95,6 +95,12 @@ fw_error_to_str(int code)
return sev_fw_errlist[code];
}
+static bool
+sev_check_state(SevGuestState state)
+{
+ return current_sev_guest_state == state ? true : false;
+}
+
static void
sev_set_guest_state(SevGuestState new_state)
{
@@ -382,6 +388,36 @@ sev_launch_start(SEVState *s)
return 0;
}
+static int
+sev_launch_update_data(uint8_t *addr, uint64_t len)
+{
+ int ret, fw_error;
+ struct kvm_sev_launch_update_data *update;
+
+ if (addr == NULL || len <= 0) {
+ return 1;
+ }
+
+ update = g_malloc0(sizeof(*update));
+ if (!update) {
+ return 1;
+ }
+
+ update->uaddr = (__u64)addr;
+ update->len = len;
+ trace_kvm_sev_launch_update_data(addr, len);
+ ret = sev_ioctl(KVM_SEV_LAUNCH_UPDATE_DATA, update, &fw_error);
+ if (ret) {
+ error_report("%s: LAUNCH_UPDATE ret=%d fw_error=%d '%s'",
+ __func__, ret, fw_error, fw_error_to_str(fw_error));
+ goto err;
+ }
+
+err:
+ g_free(update);
+ return ret;
+}
+
void *
sev_guest_init(const char *id)
{
@@ -432,6 +468,19 @@ err:
return NULL;
}
+int
+sev_encrypt_data(void *handle, uint8_t *ptr, uint64_t len)
+{
+ assert (handle);
+
+ /* if SEV is in update state then encrypt the data else do nothing */
+ if (sev_check_state(SEV_STATE_LUPDATE)) {
+ return sev_launch_update_data(ptr, len);
+ }
+
+ return 0;
+}
+
static void
sev_register_types(void)
{
diff --git a/accel/kvm/trace-events b/accel/kvm/trace-events
index a4ea1c382ec2..c55546f36a25 100644
--- a/accel/kvm/trace-events
+++ b/accel/kvm/trace-events
@@ -19,3 +19,4 @@ kvm_memcrypt_register_region(void *addr, size_t len) "addr %p len 0x%lu"
kvm_memcrypt_unregister_region(void *addr, size_t len) "addr %p len 0x%lu"
kvm_sev_change_state(char *old, char *new) "%s -> %s"
kvm_sev_launch_start(int policy, void *session, void *pdh) "policy 0x%x session %p pdh %p"
+kvm_sev_launch_update_data(void *addr, uint64_t len) "addr %p len 0x%" PRIu64
diff --git a/include/sysemu/sev.h b/include/sysemu/sev.h
index 392b21fafbd3..839800efdbbf 100644
--- a/include/sysemu/sev.h
+++ b/include/sysemu/sev.h
@@ -68,6 +68,7 @@ struct SEVState {
typedef struct SEVState SEVState;
void *sev_guest_init(const char *id);
+int sev_encrypt_data(void *handle, uint8_t *ptr, uint64_t len);
#endif
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [Qemu-devel] [PATCH v6 15/23] sev: add command to encrypt guest memory region
@ 2018-01-29 17:41 ` Brijesh Singh
0 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh
The KVM_SEV_LAUNCH_UPDATE_DATA command is used to encrypt a guest memory
region using the VM Encryption Key created using LAUNCH_START.
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
accel/kvm/kvm-all.c | 2 ++
accel/kvm/sev.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
accel/kvm/trace-events | 1 +
include/sysemu/sev.h | 1 +
4 files changed, 53 insertions(+)
diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c
index 54a0fd6097fb..d35eebb97901 100644
--- a/accel/kvm/kvm-all.c
+++ b/accel/kvm/kvm-all.c
@@ -1675,6 +1675,8 @@ static int kvm_init(MachineState *ms)
if (!kvm_state->memcrypt_handle) {
goto err;
}
+
+ kvm_state->memcrypt_encrypt_data = sev_encrypt_data;
}
ret = kvm_arch_init(ms, s);
diff --git a/accel/kvm/sev.c b/accel/kvm/sev.c
index eea07ac9642f..1f757df725df 100644
--- a/accel/kvm/sev.c
+++ b/accel/kvm/sev.c
@@ -95,6 +95,12 @@ fw_error_to_str(int code)
return sev_fw_errlist[code];
}
+static bool
+sev_check_state(SevGuestState state)
+{
+ return current_sev_guest_state == state ? true : false;
+}
+
static void
sev_set_guest_state(SevGuestState new_state)
{
@@ -382,6 +388,36 @@ sev_launch_start(SEVState *s)
return 0;
}
+static int
+sev_launch_update_data(uint8_t *addr, uint64_t len)
+{
+ int ret, fw_error;
+ struct kvm_sev_launch_update_data *update;
+
+ if (addr == NULL || len <= 0) {
+ return 1;
+ }
+
+ update = g_malloc0(sizeof(*update));
+ if (!update) {
+ return 1;
+ }
+
+ update->uaddr = (__u64)addr;
+ update->len = len;
+ trace_kvm_sev_launch_update_data(addr, len);
+ ret = sev_ioctl(KVM_SEV_LAUNCH_UPDATE_DATA, update, &fw_error);
+ if (ret) {
+ error_report("%s: LAUNCH_UPDATE ret=%d fw_error=%d '%s'",
+ __func__, ret, fw_error, fw_error_to_str(fw_error));
+ goto err;
+ }
+
+err:
+ g_free(update);
+ return ret;
+}
+
void *
sev_guest_init(const char *id)
{
@@ -432,6 +468,19 @@ err:
return NULL;
}
+int
+sev_encrypt_data(void *handle, uint8_t *ptr, uint64_t len)
+{
+ assert (handle);
+
+ /* if SEV is in update state then encrypt the data else do nothing */
+ if (sev_check_state(SEV_STATE_LUPDATE)) {
+ return sev_launch_update_data(ptr, len);
+ }
+
+ return 0;
+}
+
static void
sev_register_types(void)
{
diff --git a/accel/kvm/trace-events b/accel/kvm/trace-events
index a4ea1c382ec2..c55546f36a25 100644
--- a/accel/kvm/trace-events
+++ b/accel/kvm/trace-events
@@ -19,3 +19,4 @@ kvm_memcrypt_register_region(void *addr, size_t len) "addr %p len 0x%lu"
kvm_memcrypt_unregister_region(void *addr, size_t len) "addr %p len 0x%lu"
kvm_sev_change_state(char *old, char *new) "%s -> %s"
kvm_sev_launch_start(int policy, void *session, void *pdh) "policy 0x%x session %p pdh %p"
+kvm_sev_launch_update_data(void *addr, uint64_t len) "addr %p len 0x%" PRIu64
diff --git a/include/sysemu/sev.h b/include/sysemu/sev.h
index 392b21fafbd3..839800efdbbf 100644
--- a/include/sysemu/sev.h
+++ b/include/sysemu/sev.h
@@ -68,6 +68,7 @@ struct SEVState {
typedef struct SEVState SEVState;
void *sev_guest_init(const char *id);
+int sev_encrypt_data(void *handle, uint8_t *ptr, uint64_t len);
#endif
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [PATCH v6 16/23] target/i386: encrypt bios rom
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
@ 2018-01-29 17:41 ` Brijesh Singh
-1 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh, Richard Henderson
SEV requires that guest bios must be encrypted before booting the guest.
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
hw/i386/pc_sysfw.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/hw/i386/pc_sysfw.c b/hw/i386/pc_sysfw.c
index 6b183747fcea..8ddbbf74d330 100644
--- a/hw/i386/pc_sysfw.c
+++ b/hw/i386/pc_sysfw.c
@@ -112,6 +112,8 @@ static void pc_system_flash_init(MemoryRegion *rom_memory)
pflash_t *system_flash;
MemoryRegion *flash_mem;
char name[64];
+ void *flash_ptr;
+ int ret, flash_size;
sector_bits = 12;
sector_size = 1 << sector_bits;
@@ -168,6 +170,17 @@ static void pc_system_flash_init(MemoryRegion *rom_memory)
if (unit == 0) {
flash_mem = pflash_cfi01_get_memory(system_flash);
pc_isa_bios_init(rom_memory, flash_mem, size);
+
+ /* Encrypt the pflash boot ROM */
+ if (kvm_memcrypt_enabled()) {
+ flash_ptr = memory_region_get_ram_ptr(flash_mem);
+ flash_size = memory_region_size(flash_mem);
+ ret = kvm_memcrypt_encrypt_data(flash_ptr, flash_size);
+ if (ret) {
+ error_report("failed to encrypt pflash rom");
+ exit(1);
+ }
+ }
}
}
}
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [Qemu-devel] [PATCH v6 16/23] target/i386: encrypt bios rom
@ 2018-01-29 17:41 ` Brijesh Singh
0 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh, Richard Henderson
SEV requires that guest bios must be encrypted before booting the guest.
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
hw/i386/pc_sysfw.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/hw/i386/pc_sysfw.c b/hw/i386/pc_sysfw.c
index 6b183747fcea..8ddbbf74d330 100644
--- a/hw/i386/pc_sysfw.c
+++ b/hw/i386/pc_sysfw.c
@@ -112,6 +112,8 @@ static void pc_system_flash_init(MemoryRegion *rom_memory)
pflash_t *system_flash;
MemoryRegion *flash_mem;
char name[64];
+ void *flash_ptr;
+ int ret, flash_size;
sector_bits = 12;
sector_size = 1 << sector_bits;
@@ -168,6 +170,17 @@ static void pc_system_flash_init(MemoryRegion *rom_memory)
if (unit == 0) {
flash_mem = pflash_cfi01_get_memory(system_flash);
pc_isa_bios_init(rom_memory, flash_mem, size);
+
+ /* Encrypt the pflash boot ROM */
+ if (kvm_memcrypt_enabled()) {
+ flash_ptr = memory_region_get_ram_ptr(flash_mem);
+ flash_size = memory_region_size(flash_mem);
+ ret = kvm_memcrypt_encrypt_data(flash_ptr, flash_size);
+ if (ret) {
+ error_report("failed to encrypt pflash rom");
+ exit(1);
+ }
+ }
}
}
}
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [PATCH v6 17/23] qapi: add SEV_MEASUREMENT event
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
@ 2018-01-29 17:41 ` Brijesh Singh
-1 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh, Markus Armbruster
Add SEV_MEASUREMENT event which can be used by libvirt to get the
measurement of the memory regions encrypted through the SEV launch
flow. The measurement value is base64 encoded.
Cc: Daniel P. Berrange <berrange@redhat.com>
Cc: Eric Blake <eblake@redhat.com>
Cc: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
qapi-schema.json | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/qapi-schema.json b/qapi-schema.json
index 2046c96669bf..e1f5d14e2e3f 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -3192,3 +3192,16 @@
# Since: 2.11
##
{ 'command': 'watchdog-set-action', 'data' : {'action': 'WatchdogAction'} }
+
+##
+# @SEV_MEASUREMENT:
+#
+# Emitted when measurement is available for the SEV guest.
+#
+# @value: measurement value encoded in base64
+#
+# Since: 2.12
+#
+##
+{ 'event' : 'SEV_MEASUREMENT',
+ 'data' : { 'value' : 'str' } }
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [Qemu-devel] [PATCH v6 17/23] qapi: add SEV_MEASUREMENT event
@ 2018-01-29 17:41 ` Brijesh Singh
0 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh, Markus Armbruster
Add SEV_MEASUREMENT event which can be used by libvirt to get the
measurement of the memory regions encrypted through the SEV launch
flow. The measurement value is base64 encoded.
Cc: Daniel P. Berrange <berrange@redhat.com>
Cc: Eric Blake <eblake@redhat.com>
Cc: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
qapi-schema.json | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/qapi-schema.json b/qapi-schema.json
index 2046c96669bf..e1f5d14e2e3f 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -3192,3 +3192,16 @@
# Since: 2.11
##
{ 'command': 'watchdog-set-action', 'data' : {'action': 'WatchdogAction'} }
+
+##
+# @SEV_MEASUREMENT:
+#
+# Emitted when measurement is available for the SEV guest.
+#
+# @value: measurement value encoded in base64
+#
+# Since: 2.12
+#
+##
+{ 'event' : 'SEV_MEASUREMENT',
+ 'data' : { 'value' : 'str' } }
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [PATCH v6 18/23] sev: emit the SEV_MEASUREMENT event
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
@ 2018-01-29 17:41 ` Brijesh Singh
-1 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh
During machine creation we encrypted the guest bios image, the
LAUNCH_MEASURE command can be used to retrieve the measurement of
the encrypted memory region. Emit the SEV_MEASUREMENT event so that
libvirt can grab the measurement value as soon as we are done with
creating the encrypted machine.
Cc: Daniel P. Berrange <berrange@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: kvm@vger.kernel.org
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
accel/kvm/sev.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++
accel/kvm/trace-events | 1 +
include/sysemu/sev.h | 1 +
3 files changed, 60 insertions(+)
diff --git a/accel/kvm/sev.c b/accel/kvm/sev.c
index 1f757df725df..b78cf3144b1d 100644
--- a/accel/kvm/sev.c
+++ b/accel/kvm/sev.c
@@ -19,11 +19,13 @@
#include "sysemu/sev.h"
#include "sysemu/sysemu.h"
#include "trace.h"
+#include "qapi-event.h"
#define DEFAULT_GUEST_POLICY 0x1 /* disable debug */
#define DEFAULT_SEV_DEVICE "/dev/sev"
static int sev_fd;
+static SEVState *sev_state;
#define SEV_FW_MAX_ERROR 0x17
@@ -418,6 +420,59 @@ err:
return ret;
}
+static void
+sev_launch_get_measure(Notifier *notifier, void *unused)
+{
+ int ret, error;
+ guchar *data;
+ SEVState *s = sev_state;
+ struct kvm_sev_launch_measure *measurement;
+
+ measurement = g_malloc0(sizeof(*measurement));
+ if (!measurement) {
+ return;
+ }
+
+ /* query the measurement blob length */
+ ret = sev_ioctl(KVM_SEV_LAUNCH_MEASURE, measurement, &error);
+ if (!measurement->len) {
+ error_report("%s: LAUNCH_MEASURE ret=%d fw_error=%d '%s'",
+ __func__, ret, error, fw_error_to_str(errno));
+ goto free_measurement;
+ }
+
+ data = g_malloc(measurement->len);
+ if (s->measurement) {
+ goto free_data;
+ }
+
+ measurement->uaddr = (unsigned long)data;
+
+ /* get the measurement blob */
+ ret = sev_ioctl(KVM_SEV_LAUNCH_MEASURE, measurement, &error);
+ if (ret) {
+ error_report("%s: LAUNCH_MEASURE ret=%d fw_error=%d '%s'",
+ __func__, ret, error, fw_error_to_str(errno));
+ goto free_data;
+ }
+
+ sev_set_guest_state(SEV_STATE_SECRET);
+
+ /* encode the measurement value and emit the event */
+ s->measurement = g_base64_encode(data, measurement->len);
+ trace_kvm_sev_launch_measurement(s->measurement);
+ qapi_event_send_sev_measurement(s->measurement, &error_abort);
+
+free_data:
+ g_free(data);
+free_measurement:
+ g_free(measurement);
+}
+
+static Notifier sev_machine_done_notify = {
+ .notify = sev_launch_get_measure,
+};
+
void *
sev_guest_init(const char *id)
{
@@ -461,6 +516,9 @@ sev_guest_init(const char *id)
}
ram_block_notifier_add(&sev_ram_notifier);
+ qemu_add_machine_init_done_notifier(&sev_machine_done_notify);
+
+ sev_state = s;
return s;
err:
diff --git a/accel/kvm/trace-events b/accel/kvm/trace-events
index c55546f36a25..51df5113ad07 100644
--- a/accel/kvm/trace-events
+++ b/accel/kvm/trace-events
@@ -20,3 +20,4 @@ kvm_memcrypt_unregister_region(void *addr, size_t len) "addr %p len 0x%lu"
kvm_sev_change_state(char *old, char *new) "%s -> %s"
kvm_sev_launch_start(int policy, void *session, void *pdh) "policy 0x%x session %p pdh %p"
kvm_sev_launch_update_data(void *addr, uint64_t len) "addr %p len 0x%" PRIu64
+kvm_sev_launch_measurement(const char *value) "data %s"
diff --git a/include/sysemu/sev.h b/include/sysemu/sev.h
index 839800efdbbf..572120c865ea 100644
--- a/include/sysemu/sev.h
+++ b/include/sysemu/sev.h
@@ -63,6 +63,7 @@ typedef enum {
struct SEVState {
QSevGuestInfo *sev_info;
+ gchar *measurement;
};
typedef struct SEVState SEVState;
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [Qemu-devel] [PATCH v6 18/23] sev: emit the SEV_MEASUREMENT event
@ 2018-01-29 17:41 ` Brijesh Singh
0 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh
During machine creation we encrypted the guest bios image, the
LAUNCH_MEASURE command can be used to retrieve the measurement of
the encrypted memory region. Emit the SEV_MEASUREMENT event so that
libvirt can grab the measurement value as soon as we are done with
creating the encrypted machine.
Cc: Daniel P. Berrange <berrange@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: kvm@vger.kernel.org
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
accel/kvm/sev.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++
accel/kvm/trace-events | 1 +
include/sysemu/sev.h | 1 +
3 files changed, 60 insertions(+)
diff --git a/accel/kvm/sev.c b/accel/kvm/sev.c
index 1f757df725df..b78cf3144b1d 100644
--- a/accel/kvm/sev.c
+++ b/accel/kvm/sev.c
@@ -19,11 +19,13 @@
#include "sysemu/sev.h"
#include "sysemu/sysemu.h"
#include "trace.h"
+#include "qapi-event.h"
#define DEFAULT_GUEST_POLICY 0x1 /* disable debug */
#define DEFAULT_SEV_DEVICE "/dev/sev"
static int sev_fd;
+static SEVState *sev_state;
#define SEV_FW_MAX_ERROR 0x17
@@ -418,6 +420,59 @@ err:
return ret;
}
+static void
+sev_launch_get_measure(Notifier *notifier, void *unused)
+{
+ int ret, error;
+ guchar *data;
+ SEVState *s = sev_state;
+ struct kvm_sev_launch_measure *measurement;
+
+ measurement = g_malloc0(sizeof(*measurement));
+ if (!measurement) {
+ return;
+ }
+
+ /* query the measurement blob length */
+ ret = sev_ioctl(KVM_SEV_LAUNCH_MEASURE, measurement, &error);
+ if (!measurement->len) {
+ error_report("%s: LAUNCH_MEASURE ret=%d fw_error=%d '%s'",
+ __func__, ret, error, fw_error_to_str(errno));
+ goto free_measurement;
+ }
+
+ data = g_malloc(measurement->len);
+ if (s->measurement) {
+ goto free_data;
+ }
+
+ measurement->uaddr = (unsigned long)data;
+
+ /* get the measurement blob */
+ ret = sev_ioctl(KVM_SEV_LAUNCH_MEASURE, measurement, &error);
+ if (ret) {
+ error_report("%s: LAUNCH_MEASURE ret=%d fw_error=%d '%s'",
+ __func__, ret, error, fw_error_to_str(errno));
+ goto free_data;
+ }
+
+ sev_set_guest_state(SEV_STATE_SECRET);
+
+ /* encode the measurement value and emit the event */
+ s->measurement = g_base64_encode(data, measurement->len);
+ trace_kvm_sev_launch_measurement(s->measurement);
+ qapi_event_send_sev_measurement(s->measurement, &error_abort);
+
+free_data:
+ g_free(data);
+free_measurement:
+ g_free(measurement);
+}
+
+static Notifier sev_machine_done_notify = {
+ .notify = sev_launch_get_measure,
+};
+
void *
sev_guest_init(const char *id)
{
@@ -461,6 +516,9 @@ sev_guest_init(const char *id)
}
ram_block_notifier_add(&sev_ram_notifier);
+ qemu_add_machine_init_done_notifier(&sev_machine_done_notify);
+
+ sev_state = s;
return s;
err:
diff --git a/accel/kvm/trace-events b/accel/kvm/trace-events
index c55546f36a25..51df5113ad07 100644
--- a/accel/kvm/trace-events
+++ b/accel/kvm/trace-events
@@ -20,3 +20,4 @@ kvm_memcrypt_unregister_region(void *addr, size_t len) "addr %p len 0x%lu"
kvm_sev_change_state(char *old, char *new) "%s -> %s"
kvm_sev_launch_start(int policy, void *session, void *pdh) "policy 0x%x session %p pdh %p"
kvm_sev_launch_update_data(void *addr, uint64_t len) "addr %p len 0x%" PRIu64
+kvm_sev_launch_measurement(const char *value) "data %s"
diff --git a/include/sysemu/sev.h b/include/sysemu/sev.h
index 839800efdbbf..572120c865ea 100644
--- a/include/sysemu/sev.h
+++ b/include/sysemu/sev.h
@@ -63,6 +63,7 @@ typedef enum {
struct SEVState {
QSevGuestInfo *sev_info;
+ gchar *measurement;
};
typedef struct SEVState SEVState;
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [PATCH v6 19/23] sev: Finalize the SEV guest launch flow
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
@ 2018-01-29 17:41 ` Brijesh Singh
-1 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh
SEV launch flow requires us to issue LAUNCH_FINISH command before guest
is ready to run.
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: kvm@vger.kernel.org
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
accel/kvm/sev.c | 29 +++++++++++++++++++++++++++++
accel/kvm/trace-events | 1 +
2 files changed, 30 insertions(+)
diff --git a/accel/kvm/sev.c b/accel/kvm/sev.c
index b78cf3144b1d..c227d7591c38 100644
--- a/accel/kvm/sev.c
+++ b/accel/kvm/sev.c
@@ -473,6 +473,34 @@ static Notifier sev_machine_done_notify = {
.notify = sev_launch_get_measure,
};
+static void
+sev_launch_finish(SEVState *s)
+{
+ int ret, error;
+
+ trace_kvm_sev_launch_finish();
+ ret = sev_ioctl(KVM_SEV_LAUNCH_FINISH, 0, &error);
+ if (ret) {
+ error_report("%s: LAUNCH_FINISH ret=%d fw_error=%d '%s'",
+ __func__, ret, error, fw_error_to_str(error));
+ exit(1);
+ }
+
+ sev_set_guest_state(SEV_STATE_RUNNING);
+}
+
+static void
+sev_vm_state_change(void *opaque, int running, RunState state)
+{
+ SEVState *s = opaque;
+
+ if (running) {
+ if (!sev_check_state(SEV_STATE_RUNNING)) {
+ sev_launch_finish(s);
+ }
+ }
+}
+
void *
sev_guest_init(const char *id)
{
@@ -517,6 +545,7 @@ sev_guest_init(const char *id)
ram_block_notifier_add(&sev_ram_notifier);
qemu_add_machine_init_done_notifier(&sev_machine_done_notify);
+ qemu_add_vm_change_state_handler(sev_vm_state_change, s);
sev_state = s;
diff --git a/accel/kvm/trace-events b/accel/kvm/trace-events
index 51df5113ad07..05038709acfc 100644
--- a/accel/kvm/trace-events
+++ b/accel/kvm/trace-events
@@ -21,3 +21,4 @@ kvm_sev_change_state(char *old, char *new) "%s -> %s"
kvm_sev_launch_start(int policy, void *session, void *pdh) "policy 0x%x session %p pdh %p"
kvm_sev_launch_update_data(void *addr, uint64_t len) "addr %p len 0x%" PRIu64
kvm_sev_launch_measurement(const char *value) "data %s"
+kvm_sev_launch_finish(void) ""
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [Qemu-devel] [PATCH v6 19/23] sev: Finalize the SEV guest launch flow
@ 2018-01-29 17:41 ` Brijesh Singh
0 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh
SEV launch flow requires us to issue LAUNCH_FINISH command before guest
is ready to run.
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: kvm@vger.kernel.org
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
accel/kvm/sev.c | 29 +++++++++++++++++++++++++++++
accel/kvm/trace-events | 1 +
2 files changed, 30 insertions(+)
diff --git a/accel/kvm/sev.c b/accel/kvm/sev.c
index b78cf3144b1d..c227d7591c38 100644
--- a/accel/kvm/sev.c
+++ b/accel/kvm/sev.c
@@ -473,6 +473,34 @@ static Notifier sev_machine_done_notify = {
.notify = sev_launch_get_measure,
};
+static void
+sev_launch_finish(SEVState *s)
+{
+ int ret, error;
+
+ trace_kvm_sev_launch_finish();
+ ret = sev_ioctl(KVM_SEV_LAUNCH_FINISH, 0, &error);
+ if (ret) {
+ error_report("%s: LAUNCH_FINISH ret=%d fw_error=%d '%s'",
+ __func__, ret, error, fw_error_to_str(error));
+ exit(1);
+ }
+
+ sev_set_guest_state(SEV_STATE_RUNNING);
+}
+
+static void
+sev_vm_state_change(void *opaque, int running, RunState state)
+{
+ SEVState *s = opaque;
+
+ if (running) {
+ if (!sev_check_state(SEV_STATE_RUNNING)) {
+ sev_launch_finish(s);
+ }
+ }
+}
+
void *
sev_guest_init(const char *id)
{
@@ -517,6 +545,7 @@ sev_guest_init(const char *id)
ram_block_notifier_add(&sev_ram_notifier);
qemu_add_machine_init_done_notifier(&sev_machine_done_notify);
+ qemu_add_vm_change_state_handler(sev_vm_state_change, s);
sev_state = s;
diff --git a/accel/kvm/trace-events b/accel/kvm/trace-events
index 51df5113ad07..05038709acfc 100644
--- a/accel/kvm/trace-events
+++ b/accel/kvm/trace-events
@@ -21,3 +21,4 @@ kvm_sev_change_state(char *old, char *new) "%s -> %s"
kvm_sev_launch_start(int policy, void *session, void *pdh) "policy 0x%x session %p pdh %p"
kvm_sev_launch_update_data(void *addr, uint64_t len) "addr %p len 0x%" PRIu64
kvm_sev_launch_measurement(const char *value) "data %s"
+kvm_sev_launch_finish(void) ""
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [PATCH v6 20/23] hw: i386: set ram_debug_ops when memory encryption is enabled
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
@ 2018-01-29 17:41 ` Brijesh Singh
-1 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh, Richard Henderson
When memory encryption is enabled, the guest RAM and boot flash ROM will
contain the encrypted data. By setting the debug ops allow us to invoke
encryption APIs when accessing the memory for the debug purposes.
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
hw/i386/pc.c | 9 +++++++++
hw/i386/pc_sysfw.c | 6 ++++++
2 files changed, 15 insertions(+)
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index ccc50baa85e0..ba451c0dc520 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -1357,6 +1357,15 @@ void pc_memory_init(PCMachineState *pcms,
e820_add_entry(0x100000000ULL, pcms->above_4g_mem_size, E820_RAM);
}
+ /*
+ * When memory encryption is enabled, the guest RAM will be encrypted with
+ * a guest unique key. Set the debug ops so that any debug access to the
+ * guest RAM will go through the memory encryption APIs.
+ */
+ if (kvm_memcrypt_enabled()) {
+ kvm_memcrypt_set_debug_ops(ram);
+ }
+
if (!pcmc->has_reserved_memory &&
(machine->ram_slots ||
(machine->maxram_size > machine->ram_size))) {
diff --git a/hw/i386/pc_sysfw.c b/hw/i386/pc_sysfw.c
index 8ddbbf74d330..3d149b1c9f3c 100644
--- a/hw/i386/pc_sysfw.c
+++ b/hw/i386/pc_sysfw.c
@@ -180,6 +180,12 @@ static void pc_system_flash_init(MemoryRegion *rom_memory)
error_report("failed to encrypt pflash rom");
exit(1);
}
+
+ /*
+ * The pflash ROM is encrypted, set the debug ops so that any
+ * debug accesses will use memory encryption APIs.
+ */
+ kvm_memcrypt_set_debug_ops(flash_mem);
}
}
}
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [Qemu-devel] [PATCH v6 20/23] hw: i386: set ram_debug_ops when memory encryption is enabled
@ 2018-01-29 17:41 ` Brijesh Singh
0 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh, Richard Henderson
When memory encryption is enabled, the guest RAM and boot flash ROM will
contain the encrypted data. By setting the debug ops allow us to invoke
encryption APIs when accessing the memory for the debug purposes.
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
hw/i386/pc.c | 9 +++++++++
hw/i386/pc_sysfw.c | 6 ++++++
2 files changed, 15 insertions(+)
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index ccc50baa85e0..ba451c0dc520 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -1357,6 +1357,15 @@ void pc_memory_init(PCMachineState *pcms,
e820_add_entry(0x100000000ULL, pcms->above_4g_mem_size, E820_RAM);
}
+ /*
+ * When memory encryption is enabled, the guest RAM will be encrypted with
+ * a guest unique key. Set the debug ops so that any debug access to the
+ * guest RAM will go through the memory encryption APIs.
+ */
+ if (kvm_memcrypt_enabled()) {
+ kvm_memcrypt_set_debug_ops(ram);
+ }
+
if (!pcmc->has_reserved_memory &&
(machine->ram_slots ||
(machine->maxram_size > machine->ram_size))) {
diff --git a/hw/i386/pc_sysfw.c b/hw/i386/pc_sysfw.c
index 8ddbbf74d330..3d149b1c9f3c 100644
--- a/hw/i386/pc_sysfw.c
+++ b/hw/i386/pc_sysfw.c
@@ -180,6 +180,12 @@ static void pc_system_flash_init(MemoryRegion *rom_memory)
error_report("failed to encrypt pflash rom");
exit(1);
}
+
+ /*
+ * The pflash ROM is encrypted, set the debug ops so that any
+ * debug accesses will use memory encryption APIs.
+ */
+ kvm_memcrypt_set_debug_ops(flash_mem);
}
}
}
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [PATCH v6 21/23] sev: add debug encrypt and decrypt commands
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
@ 2018-01-29 17:41 ` Brijesh Singh
-1 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh
KVM_SEV_DBG_DECRYPT and KVM_SEV_DBG_ENCRYPT commands are used for
decrypting and encrypting guest memory region. The command works only if
the guest policy allows the debugging.
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: kvm@vger.kernel.org
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
accel/kvm/kvm-all.c | 1 +
accel/kvm/sev.c | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++
accel/kvm/trace-events | 1 +
include/sysemu/sev.h | 1 +
4 files changed, 74 insertions(+)
diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c
index d35eebb97901..b069261de32a 100644
--- a/accel/kvm/kvm-all.c
+++ b/accel/kvm/kvm-all.c
@@ -1677,6 +1677,7 @@ static int kvm_init(MachineState *ms)
}
kvm_state->memcrypt_encrypt_data = sev_encrypt_data;
+ kvm_state->memcrypt_debug_ops = sev_set_debug_ops;
}
ret = kvm_arch_init(ms, s);
diff --git a/accel/kvm/sev.c b/accel/kvm/sev.c
index c227d7591c38..65d34c531ee5 100644
--- a/accel/kvm/sev.c
+++ b/accel/kvm/sev.c
@@ -23,9 +23,11 @@
#define DEFAULT_GUEST_POLICY 0x1 /* disable debug */
#define DEFAULT_SEV_DEVICE "/dev/sev"
+#define GUEST_POLICY_DBG_BIT 0x1
static int sev_fd;
static SEVState *sev_state;
+static MemoryRegionRAMReadWriteOps sev_ops;
#define SEV_FW_MAX_ERROR 0x17
@@ -501,6 +503,50 @@ sev_vm_state_change(void *opaque, int running, RunState state)
}
}
+static int
+sev_dbg_enc_dec(uint8_t *dst, const uint8_t *src, uint32_t len, bool write)
+{
+ int ret, error;
+ struct kvm_sev_dbg *dbg;
+ dbg = g_malloc0(sizeof(*dbg));
+ if (!dbg) {
+ return 1;
+ }
+
+ dbg->src_uaddr = (unsigned long)src;
+ dbg->dst_uaddr = (unsigned long)dst;
+ dbg->len = len;
+
+ trace_kvm_sev_debug(write ? "encrypt" : "decrypt", src, dst, len);
+ ret = sev_ioctl(write ? KVM_SEV_DBG_ENCRYPT : KVM_SEV_DBG_DECRYPT,
+ dbg, &error);
+ if (ret) {
+ error_report("%s (%s) %#llx->%#llx+%#x ret=%d fw_error=%d '%s'",
+ __func__, write ? "write" : "read", dbg->src_uaddr,
+ dbg->dst_uaddr, dbg->len, ret, error,
+ fw_error_to_str(error));
+ }
+
+ g_free(dbg);
+ return ret;
+}
+
+static int
+sev_mem_read(uint8_t *dst, const uint8_t *src, uint32_t len, MemTxAttrs attrs)
+{
+ assert(attrs.debug);
+
+ return sev_dbg_enc_dec(dst, src, len, false);
+}
+
+static int
+sev_mem_write(uint8_t *dst, const uint8_t *src, uint32_t len, MemTxAttrs attrs)
+{
+ assert(attrs.debug);
+
+ return sev_dbg_enc_dec(dst, src, len, true);
+}
+
void *
sev_guest_init(const char *id)
{
@@ -568,6 +614,31 @@ sev_encrypt_data(void *handle, uint8_t *ptr, uint64_t len)
return 0;
}
+void
+sev_set_debug_ops(void *handle, MemoryRegion *mr)
+{
+ int policy;
+ SEVState *s = (SEVState *)handle;
+
+ policy = object_property_get_int(OBJECT(s->sev_info),
+ "policy", &error_abort);
+
+ /*
+ * Check if guest policy supports debugging
+ * Bit 0 :
+ * 0 - debug allowed
+ * 1 - debug is not allowed
+ */
+ if (policy & GUEST_POLICY_DBG_BIT) {
+ return;
+ }
+
+ sev_ops.read = sev_mem_read;
+ sev_ops.write = sev_mem_write;
+
+ memory_region_set_ram_debug_ops(mr, &sev_ops);
+}
+
static void
sev_register_types(void)
{
diff --git a/accel/kvm/trace-events b/accel/kvm/trace-events
index 05038709acfc..cdb244a3071a 100644
--- a/accel/kvm/trace-events
+++ b/accel/kvm/trace-events
@@ -22,3 +22,4 @@ kvm_sev_launch_start(int policy, void *session, void *pdh) "policy 0x%x session
kvm_sev_launch_update_data(void *addr, uint64_t len) "addr %p len 0x%" PRIu64
kvm_sev_launch_measurement(const char *value) "data %s"
kvm_sev_launch_finish(void) ""
+kvm_sev_debug(const char *op, const uint8_t *src, uint8_t *dst, int len) "(%s) src %p dst %p len %d"
diff --git a/include/sysemu/sev.h b/include/sysemu/sev.h
index 572120c865ea..82cd73fe58e8 100644
--- a/include/sysemu/sev.h
+++ b/include/sysemu/sev.h
@@ -70,6 +70,7 @@ typedef struct SEVState SEVState;
void *sev_guest_init(const char *id);
int sev_encrypt_data(void *handle, uint8_t *ptr, uint64_t len);
+void sev_set_debug_ops(void *handle, MemoryRegion *mr);
#endif
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [Qemu-devel] [PATCH v6 21/23] sev: add debug encrypt and decrypt commands
@ 2018-01-29 17:41 ` Brijesh Singh
0 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh
KVM_SEV_DBG_DECRYPT and KVM_SEV_DBG_ENCRYPT commands are used for
decrypting and encrypting guest memory region. The command works only if
the guest policy allows the debugging.
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: kvm@vger.kernel.org
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
accel/kvm/kvm-all.c | 1 +
accel/kvm/sev.c | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++
accel/kvm/trace-events | 1 +
include/sysemu/sev.h | 1 +
4 files changed, 74 insertions(+)
diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c
index d35eebb97901..b069261de32a 100644
--- a/accel/kvm/kvm-all.c
+++ b/accel/kvm/kvm-all.c
@@ -1677,6 +1677,7 @@ static int kvm_init(MachineState *ms)
}
kvm_state->memcrypt_encrypt_data = sev_encrypt_data;
+ kvm_state->memcrypt_debug_ops = sev_set_debug_ops;
}
ret = kvm_arch_init(ms, s);
diff --git a/accel/kvm/sev.c b/accel/kvm/sev.c
index c227d7591c38..65d34c531ee5 100644
--- a/accel/kvm/sev.c
+++ b/accel/kvm/sev.c
@@ -23,9 +23,11 @@
#define DEFAULT_GUEST_POLICY 0x1 /* disable debug */
#define DEFAULT_SEV_DEVICE "/dev/sev"
+#define GUEST_POLICY_DBG_BIT 0x1
static int sev_fd;
static SEVState *sev_state;
+static MemoryRegionRAMReadWriteOps sev_ops;
#define SEV_FW_MAX_ERROR 0x17
@@ -501,6 +503,50 @@ sev_vm_state_change(void *opaque, int running, RunState state)
}
}
+static int
+sev_dbg_enc_dec(uint8_t *dst, const uint8_t *src, uint32_t len, bool write)
+{
+ int ret, error;
+ struct kvm_sev_dbg *dbg;
+ dbg = g_malloc0(sizeof(*dbg));
+ if (!dbg) {
+ return 1;
+ }
+
+ dbg->src_uaddr = (unsigned long)src;
+ dbg->dst_uaddr = (unsigned long)dst;
+ dbg->len = len;
+
+ trace_kvm_sev_debug(write ? "encrypt" : "decrypt", src, dst, len);
+ ret = sev_ioctl(write ? KVM_SEV_DBG_ENCRYPT : KVM_SEV_DBG_DECRYPT,
+ dbg, &error);
+ if (ret) {
+ error_report("%s (%s) %#llx->%#llx+%#x ret=%d fw_error=%d '%s'",
+ __func__, write ? "write" : "read", dbg->src_uaddr,
+ dbg->dst_uaddr, dbg->len, ret, error,
+ fw_error_to_str(error));
+ }
+
+ g_free(dbg);
+ return ret;
+}
+
+static int
+sev_mem_read(uint8_t *dst, const uint8_t *src, uint32_t len, MemTxAttrs attrs)
+{
+ assert(attrs.debug);
+
+ return sev_dbg_enc_dec(dst, src, len, false);
+}
+
+static int
+sev_mem_write(uint8_t *dst, const uint8_t *src, uint32_t len, MemTxAttrs attrs)
+{
+ assert(attrs.debug);
+
+ return sev_dbg_enc_dec(dst, src, len, true);
+}
+
void *
sev_guest_init(const char *id)
{
@@ -568,6 +614,31 @@ sev_encrypt_data(void *handle, uint8_t *ptr, uint64_t len)
return 0;
}
+void
+sev_set_debug_ops(void *handle, MemoryRegion *mr)
+{
+ int policy;
+ SEVState *s = (SEVState *)handle;
+
+ policy = object_property_get_int(OBJECT(s->sev_info),
+ "policy", &error_abort);
+
+ /*
+ * Check if guest policy supports debugging
+ * Bit 0 :
+ * 0 - debug allowed
+ * 1 - debug is not allowed
+ */
+ if (policy & GUEST_POLICY_DBG_BIT) {
+ return;
+ }
+
+ sev_ops.read = sev_mem_read;
+ sev_ops.write = sev_mem_write;
+
+ memory_region_set_ram_debug_ops(mr, &sev_ops);
+}
+
static void
sev_register_types(void)
{
diff --git a/accel/kvm/trace-events b/accel/kvm/trace-events
index 05038709acfc..cdb244a3071a 100644
--- a/accel/kvm/trace-events
+++ b/accel/kvm/trace-events
@@ -22,3 +22,4 @@ kvm_sev_launch_start(int policy, void *session, void *pdh) "policy 0x%x session
kvm_sev_launch_update_data(void *addr, uint64_t len) "addr %p len 0x%" PRIu64
kvm_sev_launch_measurement(const char *value) "data %s"
kvm_sev_launch_finish(void) ""
+kvm_sev_debug(const char *op, const uint8_t *src, uint8_t *dst, int len) "(%s) src %p dst %p len %d"
diff --git a/include/sysemu/sev.h b/include/sysemu/sev.h
index 572120c865ea..82cd73fe58e8 100644
--- a/include/sysemu/sev.h
+++ b/include/sysemu/sev.h
@@ -70,6 +70,7 @@ typedef struct SEVState SEVState;
void *sev_guest_init(const char *id);
int sev_encrypt_data(void *handle, uint8_t *ptr, uint64_t len);
+void sev_set_debug_ops(void *handle, MemoryRegion *mr);
#endif
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [PATCH v6 22/23] target/i386: clear C-bit when walking SEV guest page table
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
@ 2018-01-29 17:41 ` Brijesh Singh
-1 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh, Richard Henderson
In SEV-enabled guest the pte entry will have C-bit set, we need to
clear the C-bit when walking the page table. The C-bit position should
be available in cpuid Fn8000_001f[EBX]
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
target/i386/helper.c | 46 +++++++++++++++++++--------
target/i386/monitor.c | 86 ++++++++++++++++++++++++++++++++++++---------------
2 files changed, 94 insertions(+), 38 deletions(-)
diff --git a/target/i386/helper.c b/target/i386/helper.c
index 5dc9e8839bc8..7dbbb9812950 100644
--- a/target/i386/helper.c
+++ b/target/i386/helper.c
@@ -723,6 +723,22 @@ void cpu_x86_update_cr4(CPUX86State *env, uint32_t new_cr4)
}
#if !defined(CONFIG_USER_ONLY)
+static uint64_t get_me_mask(void)
+{
+ uint64_t me_mask = 0;
+
+ /*
+ * When SEV is active, Fn8000_001F[EBX] Bit 0:5 contains the C-bit position
+ */
+ if (kvm_memcrypt_enabled()) {
+ uint32_t pos;
+ pos = kvm_arch_get_supported_cpuid(kvm_state, 0x8000001f, 0, R_EBX);
+ me_mask = (1UL << (pos & 0x3f));
+ }
+
+ return ~me_mask;
+}
+
hwaddr x86_cpu_get_phys_page_debug(CPUState *cs, vaddr addr)
{
X86CPU *cpu = X86_CPU(cs);
@@ -732,6 +748,9 @@ hwaddr x86_cpu_get_phys_page_debug(CPUState *cs, vaddr addr)
int32_t a20_mask;
uint32_t page_offset;
int page_size;
+ uint64_t me_mask;
+
+ me_mask = get_me_mask();
a20_mask = x86_get_a20_mask(env);
if (!(env->cr[0] & CR0_PG_MASK)) {
@@ -755,25 +774,25 @@ hwaddr x86_cpu_get_phys_page_debug(CPUState *cs, vaddr addr)
}
if (la57) {
- pml5e_addr = ((env->cr[3] & ~0xfff) +
+ pml5e_addr = ((env->cr[3] & ~0xfff & me_mask) +
(((addr >> 48) & 0x1ff) << 3)) & a20_mask;
- pml5e = ldq_phys_debug(cs, pml5e_addr);
+ pml5e = ldq_phys_debug(cs, pml5e_addr) & me_mask;
if (!(pml5e & PG_PRESENT_MASK)) {
return -1;
}
} else {
- pml5e = env->cr[3];
+ pml5e = env->cr[3] & me_mask;
}
pml4e_addr = ((pml5e & PG_ADDRESS_MASK) +
(((addr >> 39) & 0x1ff) << 3)) & a20_mask;
- pml4e = ldq_phys_debug(cs, pml4e_addr);
+ pml4e = ldq_phys_debug(cs, pml4e_addr) & me_mask;
if (!(pml4e & PG_PRESENT_MASK)) {
return -1;
}
pdpe_addr = ((pml4e & PG_ADDRESS_MASK) +
(((addr >> 30) & 0x1ff) << 3)) & a20_mask;
- pdpe = x86_ldq_phys(cs, pdpe_addr);
+ pdpe = ldq_phys_debug(cs, pdpe_addr) & me_mask;
if (!(pdpe & PG_PRESENT_MASK)) {
return -1;
}
@@ -786,16 +805,16 @@ hwaddr x86_cpu_get_phys_page_debug(CPUState *cs, vaddr addr)
} else
#endif
{
- pdpe_addr = ((env->cr[3] & ~0x1f) + ((addr >> 27) & 0x18)) &
- a20_mask;
- pdpe = ldq_phys_debug(cs, pdpe_addr);
+ pdpe_addr = ((env->cr[3] & ~0x1f & me_mask) + ((addr >> 27) & 0x18))
+ & a20_mask;
+ pdpe = ldq_phys_debug(cs, pdpe_addr) & me_mask;
if (!(pdpe & PG_PRESENT_MASK))
return -1;
}
pde_addr = ((pdpe & PG_ADDRESS_MASK) +
(((addr >> 21) & 0x1ff) << 3)) & a20_mask;
- pde = ldq_phys_debug(cs, pde_addr);
+ pde = ldq_phys_debug(cs, pde_addr) & me_mask;
if (!(pde & PG_PRESENT_MASK)) {
return -1;
}
@@ -808,7 +827,7 @@ hwaddr x86_cpu_get_phys_page_debug(CPUState *cs, vaddr addr)
pte_addr = ((pde & PG_ADDRESS_MASK) +
(((addr >> 12) & 0x1ff) << 3)) & a20_mask;
page_size = 4096;
- pte = ldq_phys_debug(cs, pte_addr);
+ pte = ldq_phys_debug(cs, pte_addr) & me_mask;
}
if (!(pte & PG_PRESENT_MASK)) {
return -1;
@@ -817,8 +836,9 @@ hwaddr x86_cpu_get_phys_page_debug(CPUState *cs, vaddr addr)
uint32_t pde;
/* page directory entry */
- pde_addr = ((env->cr[3] & ~0xfff) + ((addr >> 20) & 0xffc)) & a20_mask;
- pde = ldl_phys_debug(cs, pde_addr);
+ pde_addr = ((env->cr[3] & ~0xfff & me_mask) + ((addr >> 20) & 0xffc))
+ & a20_mask;
+ pde = ldl_phys_debug(cs, pde_addr) & me_mask;
if (!(pde & PG_PRESENT_MASK))
return -1;
if ((pde & PG_PSE_MASK) && (env->cr[4] & CR4_PSE_MASK)) {
@@ -827,7 +847,7 @@ hwaddr x86_cpu_get_phys_page_debug(CPUState *cs, vaddr addr)
} else {
/* page directory entry */
pte_addr = ((pde & ~0xfff) + ((addr >> 10) & 0xffc)) & a20_mask;
- pte = ldl_phys_debug(cs, pte_addr);
+ pte = ldl_phys_debug(cs, pte_addr) & me_mask;
if (!(pte & PG_PRESENT_MASK)) {
return -1;
}
diff --git a/target/i386/monitor.c b/target/i386/monitor.c
index 96890547f6b4..0b290f004a21 100644
--- a/target/i386/monitor.c
+++ b/target/i386/monitor.c
@@ -59,6 +59,22 @@ static void print_pte(Monitor *mon, CPUArchState *env, hwaddr addr,
pte & PG_RW_MASK ? 'W' : '-');
}
+static uint64_t get_me_mask(void)
+{
+ uint64_t me_mask = 0;
+
+ /*
+ * When SEV is active, Fn8000_001F[EBX] Bit 0:5 contains the C-bit position
+ */
+ if (kvm_memcrypt_enabled()) {
+ uint32_t pos;
+ pos = kvm_arch_get_supported_cpuid(kvm_state, 0x8000001f, 0, R_EBX);
+ me_mask = (1UL << (pos & 0x3f));
+ }
+
+ return ~me_mask;
+}
+
static void tlb_info_32(Monitor *mon, CPUArchState *env)
{
unsigned int l1, l2;
@@ -93,16 +109,20 @@ static void tlb_info_pae32(Monitor *mon, CPUArchState *env)
unsigned int l1, l2, l3;
uint64_t pdpe, pde, pte;
uint64_t pdp_addr, pd_addr, pt_addr;
+ uint64_t me_mask;
+
+ me_mask = get_me_mask();
pdp_addr = env->cr[3] & ~0x1f;
+ pdp_addr &= me_mask;
for (l1 = 0; l1 < 4; l1++) {
cpu_physical_memory_read_debug(pdp_addr + l1 * 8, &pdpe, 8);
- pdpe = le64_to_cpu(pdpe);
+ pdpe = le64_to_cpu(pdpe & me_mask);
if (pdpe & PG_PRESENT_MASK) {
pd_addr = pdpe & 0x3fffffffff000ULL;
for (l2 = 0; l2 < 512; l2++) {
cpu_physical_memory_read_debug(pd_addr + l2 * 8, &pde, 8);
- pde = le64_to_cpu(pde);
+ pde = le64_to_cpu(pde & me_mask);
if (pde & PG_PRESENT_MASK) {
if (pde & PG_PSE_MASK) {
/* 2M pages with PAE, CR4.PSE is ignored */
@@ -113,7 +133,7 @@ static void tlb_info_pae32(Monitor *mon, CPUArchState *env)
for (l3 = 0; l3 < 512; l3++) {
cpu_physical_memory_read_debug(pt_addr + l3 * 8,
&pte, 8);
- pte = le64_to_cpu(pte);
+ pte = le64_to_cpu(pte & me_mask);
if (pte & PG_PRESENT_MASK) {
print_pte(mon, env, (l1 << 30) + (l2 << 21)
+ (l3 << 12),
@@ -135,10 +155,13 @@ static void tlb_info_la48(Monitor *mon, CPUArchState *env,
uint64_t l1, l2, l3, l4;
uint64_t pml4e, pdpe, pde, pte;
uint64_t pdp_addr, pd_addr, pt_addr;
+ uint64_t me_mask;
+
+ me_mask = get_me_mask();
for (l1 = 0; l1 < 512; l1++) {
cpu_physical_memory_read_debug(pml4_addr + l1 * 8, &pml4e, 8);
- pml4e = le64_to_cpu(pml4e);
+ pml4e = le64_to_cpu(pml4e & me_mask);
if (!(pml4e & PG_PRESENT_MASK)) {
continue;
}
@@ -146,7 +169,7 @@ static void tlb_info_la48(Monitor *mon, CPUArchState *env,
pdp_addr = pml4e & 0x3fffffffff000ULL;
for (l2 = 0; l2 < 512; l2++) {
cpu_physical_memory_read_debug(pdp_addr + l2 * 8, &pdpe, 8);
- pdpe = le64_to_cpu(pdpe);
+ pdpe = le64_to_cpu(pdpe & me_mask);
if (!(pdpe & PG_PRESENT_MASK)) {
continue;
}
@@ -161,7 +184,7 @@ static void tlb_info_la48(Monitor *mon, CPUArchState *env,
pd_addr = pdpe & 0x3fffffffff000ULL;
for (l3 = 0; l3 < 512; l3++) {
cpu_physical_memory_read_debug(pd_addr + l3 * 8, &pde, 8);
- pde = le64_to_cpu(pde);
+ pde = le64_to_cpu(pde & me_mask);
if (!(pde & PG_PRESENT_MASK)) {
continue;
}
@@ -176,7 +199,7 @@ static void tlb_info_la48(Monitor *mon, CPUArchState *env,
pt_addr = pde & 0x3fffffffff000ULL;
for (l4 = 0; l4 < 512; l4++) {
cpu_physical_memory_read_debug(pt_addr + l4 * 8, &pte, 8);
- pte = le64_to_cpu(pte);
+ pte = le64_to_cpu(pte & me_mask);
if (pte & PG_PRESENT_MASK) {
print_pte(mon, env, (l0 << 48) + (l1 << 39) +
(l2 << 30) + (l3 << 21) + (l4 << 12),
@@ -193,11 +216,14 @@ static void tlb_info_la57(Monitor *mon, CPUArchState *env)
uint64_t l0;
uint64_t pml5e;
uint64_t pml5_addr;
+ uint64_t me_mask;
+
+ me_mask = get_me_mask();
- pml5_addr = env->cr[3] & 0x3fffffffff000ULL;
+ pml5_addr = env->cr[3] & 0x3fffffffff000ULL & me_mask;
for (l0 = 0; l0 < 512; l0++) {
cpu_physical_memory_read_debug(pml5_addr + l0 * 8, &pml5e, 8);
- pml5e = le64_to_cpu(pml5e);
+ pml5e = le64_to_cpu(pml5e & me_mask);
if (pml5e & PG_PRESENT_MASK) {
tlb_info_la48(mon, env, l0, pml5e & 0x3fffffffff000ULL);
}
@@ -225,7 +251,8 @@ void hmp_info_tlb(Monitor *mon, const QDict *qdict)
if (env->cr[4] & CR4_LA57_MASK) {
tlb_info_la57(mon, env);
} else {
- tlb_info_la48(mon, env, 0, env->cr[3] & 0x3fffffffff000ULL);
+ tlb_info_la48(mon, env, 0, env->cr[3] & 0x3fffffffff000ULL &
+ get_me_mask());
}
} else
#endif
@@ -309,19 +336,22 @@ static void mem_info_pae32(Monitor *mon, CPUArchState *env)
uint64_t pdpe, pde, pte;
uint64_t pdp_addr, pd_addr, pt_addr;
hwaddr start, end;
+ uint64_t me_mask;
- pdp_addr = env->cr[3] & ~0x1f;
+ me_mask = get_me_mask();
+
+ pdp_addr = env->cr[3] & ~0x1f & me_mask;
last_prot = 0;
start = -1;
for (l1 = 0; l1 < 4; l1++) {
cpu_physical_memory_read_debug(pdp_addr + l1 * 8, &pdpe, 8);
- pdpe = le64_to_cpu(pdpe);
+ pdpe = le64_to_cpu(pdpe & me_mask);
end = l1 << 30;
if (pdpe & PG_PRESENT_MASK) {
pd_addr = pdpe & 0x3fffffffff000ULL;
for (l2 = 0; l2 < 512; l2++) {
cpu_physical_memory_read_debug(pd_addr + l2 * 8, &pde, 8);
- pde = le64_to_cpu(pde);
+ pde = le64_to_cpu(pde & me_mask);
end = (l1 << 30) + (l2 << 21);
if (pde & PG_PRESENT_MASK) {
if (pde & PG_PSE_MASK) {
@@ -333,7 +363,7 @@ static void mem_info_pae32(Monitor *mon, CPUArchState *env)
for (l3 = 0; l3 < 512; l3++) {
cpu_physical_memory_read_debug(pt_addr + l3 * 8,
&pte, 8);
- pte = le64_to_cpu(pte);
+ pte = le64_to_cpu(pte & me_mask);
end = (l1 << 30) + (l2 << 21) + (l3 << 12);
if (pte & PG_PRESENT_MASK) {
prot = pte & pde & (PG_USER_MASK | PG_RW_MASK |
@@ -366,19 +396,22 @@ static void mem_info_la48(Monitor *mon, CPUArchState *env)
uint64_t l1, l2, l3, l4;
uint64_t pml4e, pdpe, pde, pte;
uint64_t pml4_addr, pdp_addr, pd_addr, pt_addr, start, end;
+ uint64_t me_mask;
+
+ me_mask = get_me_mask();
- pml4_addr = env->cr[3] & 0x3fffffffff000ULL;
+ pml4_addr = env->cr[3] & 0x3fffffffff000ULL & me_mask;
last_prot = 0;
start = -1;
for (l1 = 0; l1 < 512; l1++) {
cpu_physical_memory_read_debug(pml4_addr + l1 * 8, &pml4e, 8);
- pml4e = le64_to_cpu(pml4e);
+ pml4e = le64_to_cpu(pml4e & me_mask);
end = l1 << 39;
if (pml4e & PG_PRESENT_MASK) {
pdp_addr = pml4e & 0x3fffffffff000ULL;
for (l2 = 0; l2 < 512; l2++) {
cpu_physical_memory_read_debug(pdp_addr + l2 * 8, &pdpe, 8);
- pdpe = le64_to_cpu(pdpe);
+ pdpe = le64_to_cpu(pdpe & me_mask);
end = (l1 << 39) + (l2 << 30);
if (pdpe & PG_PRESENT_MASK) {
if (pdpe & PG_PSE_MASK) {
@@ -391,7 +424,7 @@ static void mem_info_la48(Monitor *mon, CPUArchState *env)
for (l3 = 0; l3 < 512; l3++) {
cpu_physical_memory_read_debug(pd_addr + l3 * 8,
&pde, 8);
- pde = le64_to_cpu(pde);
+ pde = le64_to_cpu(pde & me_mask);
end = (l1 << 39) + (l2 << 30) + (l3 << 21);
if (pde & PG_PRESENT_MASK) {
if (pde & PG_PSE_MASK) {
@@ -405,7 +438,7 @@ static void mem_info_la48(Monitor *mon, CPUArchState *env)
cpu_physical_memory_read_debug(pt_addr
+ l4 * 8,
&pte, 8);
- pte = le64_to_cpu(pte);
+ pte = le64_to_cpu(pte & me_mask);
end = (l1 << 39) + (l2 << 30) +
(l3 << 21) + (l4 << 12);
if (pte & PG_PRESENT_MASK) {
@@ -444,13 +477,16 @@ static void mem_info_la57(Monitor *mon, CPUArchState *env)
uint64_t l0, l1, l2, l3, l4;
uint64_t pml5e, pml4e, pdpe, pde, pte;
uint64_t pml5_addr, pml4_addr, pdp_addr, pd_addr, pt_addr, start, end;
+ uint64_t me_mask;
+
+ me_mask = get_me_mask();
- pml5_addr = env->cr[3] & 0x3fffffffff000ULL;
+ pml5_addr = env->cr[3] & 0x3fffffffff000ULL & me_mask;
last_prot = 0;
start = -1;
for (l0 = 0; l0 < 512; l0++) {
cpu_physical_memory_read_debug(pml5_addr + l0 * 8, &pml5e, 8);
- pml5e = le64_to_cpu(pml5e);
+ pml5e = le64_to_cpu(pml5e & me_mask);
end = l0 << 48;
if (!(pml5e & PG_PRESENT_MASK)) {
prot = 0;
@@ -461,7 +497,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *env)
pml4_addr = pml5e & 0x3fffffffff000ULL;
for (l1 = 0; l1 < 512; l1++) {
cpu_physical_memory_read_debug(pml4_addr + l1 * 8, &pml4e, 8);
- pml4e = le64_to_cpu(pml4e);
+ pml4e = le64_to_cpu(pml4e & me_mask);
end = (l0 << 48) + (l1 << 39);
if (!(pml4e & PG_PRESENT_MASK)) {
prot = 0;
@@ -472,7 +508,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *env)
pdp_addr = pml4e & 0x3fffffffff000ULL;
for (l2 = 0; l2 < 512; l2++) {
cpu_physical_memory_read_debug(pdp_addr + l2 * 8, &pdpe, 8);
- pdpe = le64_to_cpu(pdpe);
+ pdpe = le64_to_cpu(pdpe & me_mask);
end = (l0 << 48) + (l1 << 39) + (l2 << 30);
if (pdpe & PG_PRESENT_MASK) {
prot = 0;
@@ -491,7 +527,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *env)
pd_addr = pdpe & 0x3fffffffff000ULL;
for (l3 = 0; l3 < 512; l3++) {
cpu_physical_memory_read_debug(pd_addr + l3 * 8, &pde, 8);
- pde = le64_to_cpu(pde);
+ pde = le64_to_cpu(pde & me_mask);
end = (l0 << 48) + (l1 << 39) + (l2 << 30) + (l3 << 21);
if (pde & PG_PRESENT_MASK) {
prot = 0;
@@ -510,7 +546,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *env)
pt_addr = pde & 0x3fffffffff000ULL;
for (l4 = 0; l4 < 512; l4++) {
cpu_physical_memory_read_debug(pt_addr + l4 * 8, &pte, 8);
- pte = le64_to_cpu(pte);
+ pte = le64_to_cpu(pte & me_mask);
end = (l0 << 48) + (l1 << 39) + (l2 << 30) +
(l3 << 21) + (l4 << 12);
if (pte & PG_PRESENT_MASK) {
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [Qemu-devel] [PATCH v6 22/23] target/i386: clear C-bit when walking SEV guest page table
@ 2018-01-29 17:41 ` Brijesh Singh
0 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh, Richard Henderson
In SEV-enabled guest the pte entry will have C-bit set, we need to
clear the C-bit when walking the page table. The C-bit position should
be available in cpuid Fn8000_001f[EBX]
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
target/i386/helper.c | 46 +++++++++++++++++++--------
target/i386/monitor.c | 86 ++++++++++++++++++++++++++++++++++++---------------
2 files changed, 94 insertions(+), 38 deletions(-)
diff --git a/target/i386/helper.c b/target/i386/helper.c
index 5dc9e8839bc8..7dbbb9812950 100644
--- a/target/i386/helper.c
+++ b/target/i386/helper.c
@@ -723,6 +723,22 @@ void cpu_x86_update_cr4(CPUX86State *env, uint32_t new_cr4)
}
#if !defined(CONFIG_USER_ONLY)
+static uint64_t get_me_mask(void)
+{
+ uint64_t me_mask = 0;
+
+ /*
+ * When SEV is active, Fn8000_001F[EBX] Bit 0:5 contains the C-bit position
+ */
+ if (kvm_memcrypt_enabled()) {
+ uint32_t pos;
+ pos = kvm_arch_get_supported_cpuid(kvm_state, 0x8000001f, 0, R_EBX);
+ me_mask = (1UL << (pos & 0x3f));
+ }
+
+ return ~me_mask;
+}
+
hwaddr x86_cpu_get_phys_page_debug(CPUState *cs, vaddr addr)
{
X86CPU *cpu = X86_CPU(cs);
@@ -732,6 +748,9 @@ hwaddr x86_cpu_get_phys_page_debug(CPUState *cs, vaddr addr)
int32_t a20_mask;
uint32_t page_offset;
int page_size;
+ uint64_t me_mask;
+
+ me_mask = get_me_mask();
a20_mask = x86_get_a20_mask(env);
if (!(env->cr[0] & CR0_PG_MASK)) {
@@ -755,25 +774,25 @@ hwaddr x86_cpu_get_phys_page_debug(CPUState *cs, vaddr addr)
}
if (la57) {
- pml5e_addr = ((env->cr[3] & ~0xfff) +
+ pml5e_addr = ((env->cr[3] & ~0xfff & me_mask) +
(((addr >> 48) & 0x1ff) << 3)) & a20_mask;
- pml5e = ldq_phys_debug(cs, pml5e_addr);
+ pml5e = ldq_phys_debug(cs, pml5e_addr) & me_mask;
if (!(pml5e & PG_PRESENT_MASK)) {
return -1;
}
} else {
- pml5e = env->cr[3];
+ pml5e = env->cr[3] & me_mask;
}
pml4e_addr = ((pml5e & PG_ADDRESS_MASK) +
(((addr >> 39) & 0x1ff) << 3)) & a20_mask;
- pml4e = ldq_phys_debug(cs, pml4e_addr);
+ pml4e = ldq_phys_debug(cs, pml4e_addr) & me_mask;
if (!(pml4e & PG_PRESENT_MASK)) {
return -1;
}
pdpe_addr = ((pml4e & PG_ADDRESS_MASK) +
(((addr >> 30) & 0x1ff) << 3)) & a20_mask;
- pdpe = x86_ldq_phys(cs, pdpe_addr);
+ pdpe = ldq_phys_debug(cs, pdpe_addr) & me_mask;
if (!(pdpe & PG_PRESENT_MASK)) {
return -1;
}
@@ -786,16 +805,16 @@ hwaddr x86_cpu_get_phys_page_debug(CPUState *cs, vaddr addr)
} else
#endif
{
- pdpe_addr = ((env->cr[3] & ~0x1f) + ((addr >> 27) & 0x18)) &
- a20_mask;
- pdpe = ldq_phys_debug(cs, pdpe_addr);
+ pdpe_addr = ((env->cr[3] & ~0x1f & me_mask) + ((addr >> 27) & 0x18))
+ & a20_mask;
+ pdpe = ldq_phys_debug(cs, pdpe_addr) & me_mask;
if (!(pdpe & PG_PRESENT_MASK))
return -1;
}
pde_addr = ((pdpe & PG_ADDRESS_MASK) +
(((addr >> 21) & 0x1ff) << 3)) & a20_mask;
- pde = ldq_phys_debug(cs, pde_addr);
+ pde = ldq_phys_debug(cs, pde_addr) & me_mask;
if (!(pde & PG_PRESENT_MASK)) {
return -1;
}
@@ -808,7 +827,7 @@ hwaddr x86_cpu_get_phys_page_debug(CPUState *cs, vaddr addr)
pte_addr = ((pde & PG_ADDRESS_MASK) +
(((addr >> 12) & 0x1ff) << 3)) & a20_mask;
page_size = 4096;
- pte = ldq_phys_debug(cs, pte_addr);
+ pte = ldq_phys_debug(cs, pte_addr) & me_mask;
}
if (!(pte & PG_PRESENT_MASK)) {
return -1;
@@ -817,8 +836,9 @@ hwaddr x86_cpu_get_phys_page_debug(CPUState *cs, vaddr addr)
uint32_t pde;
/* page directory entry */
- pde_addr = ((env->cr[3] & ~0xfff) + ((addr >> 20) & 0xffc)) & a20_mask;
- pde = ldl_phys_debug(cs, pde_addr);
+ pde_addr = ((env->cr[3] & ~0xfff & me_mask) + ((addr >> 20) & 0xffc))
+ & a20_mask;
+ pde = ldl_phys_debug(cs, pde_addr) & me_mask;
if (!(pde & PG_PRESENT_MASK))
return -1;
if ((pde & PG_PSE_MASK) && (env->cr[4] & CR4_PSE_MASK)) {
@@ -827,7 +847,7 @@ hwaddr x86_cpu_get_phys_page_debug(CPUState *cs, vaddr addr)
} else {
/* page directory entry */
pte_addr = ((pde & ~0xfff) + ((addr >> 10) & 0xffc)) & a20_mask;
- pte = ldl_phys_debug(cs, pte_addr);
+ pte = ldl_phys_debug(cs, pte_addr) & me_mask;
if (!(pte & PG_PRESENT_MASK)) {
return -1;
}
diff --git a/target/i386/monitor.c b/target/i386/monitor.c
index 96890547f6b4..0b290f004a21 100644
--- a/target/i386/monitor.c
+++ b/target/i386/monitor.c
@@ -59,6 +59,22 @@ static void print_pte(Monitor *mon, CPUArchState *env, hwaddr addr,
pte & PG_RW_MASK ? 'W' : '-');
}
+static uint64_t get_me_mask(void)
+{
+ uint64_t me_mask = 0;
+
+ /*
+ * When SEV is active, Fn8000_001F[EBX] Bit 0:5 contains the C-bit position
+ */
+ if (kvm_memcrypt_enabled()) {
+ uint32_t pos;
+ pos = kvm_arch_get_supported_cpuid(kvm_state, 0x8000001f, 0, R_EBX);
+ me_mask = (1UL << (pos & 0x3f));
+ }
+
+ return ~me_mask;
+}
+
static void tlb_info_32(Monitor *mon, CPUArchState *env)
{
unsigned int l1, l2;
@@ -93,16 +109,20 @@ static void tlb_info_pae32(Monitor *mon, CPUArchState *env)
unsigned int l1, l2, l3;
uint64_t pdpe, pde, pte;
uint64_t pdp_addr, pd_addr, pt_addr;
+ uint64_t me_mask;
+
+ me_mask = get_me_mask();
pdp_addr = env->cr[3] & ~0x1f;
+ pdp_addr &= me_mask;
for (l1 = 0; l1 < 4; l1++) {
cpu_physical_memory_read_debug(pdp_addr + l1 * 8, &pdpe, 8);
- pdpe = le64_to_cpu(pdpe);
+ pdpe = le64_to_cpu(pdpe & me_mask);
if (pdpe & PG_PRESENT_MASK) {
pd_addr = pdpe & 0x3fffffffff000ULL;
for (l2 = 0; l2 < 512; l2++) {
cpu_physical_memory_read_debug(pd_addr + l2 * 8, &pde, 8);
- pde = le64_to_cpu(pde);
+ pde = le64_to_cpu(pde & me_mask);
if (pde & PG_PRESENT_MASK) {
if (pde & PG_PSE_MASK) {
/* 2M pages with PAE, CR4.PSE is ignored */
@@ -113,7 +133,7 @@ static void tlb_info_pae32(Monitor *mon, CPUArchState *env)
for (l3 = 0; l3 < 512; l3++) {
cpu_physical_memory_read_debug(pt_addr + l3 * 8,
&pte, 8);
- pte = le64_to_cpu(pte);
+ pte = le64_to_cpu(pte & me_mask);
if (pte & PG_PRESENT_MASK) {
print_pte(mon, env, (l1 << 30) + (l2 << 21)
+ (l3 << 12),
@@ -135,10 +155,13 @@ static void tlb_info_la48(Monitor *mon, CPUArchState *env,
uint64_t l1, l2, l3, l4;
uint64_t pml4e, pdpe, pde, pte;
uint64_t pdp_addr, pd_addr, pt_addr;
+ uint64_t me_mask;
+
+ me_mask = get_me_mask();
for (l1 = 0; l1 < 512; l1++) {
cpu_physical_memory_read_debug(pml4_addr + l1 * 8, &pml4e, 8);
- pml4e = le64_to_cpu(pml4e);
+ pml4e = le64_to_cpu(pml4e & me_mask);
if (!(pml4e & PG_PRESENT_MASK)) {
continue;
}
@@ -146,7 +169,7 @@ static void tlb_info_la48(Monitor *mon, CPUArchState *env,
pdp_addr = pml4e & 0x3fffffffff000ULL;
for (l2 = 0; l2 < 512; l2++) {
cpu_physical_memory_read_debug(pdp_addr + l2 * 8, &pdpe, 8);
- pdpe = le64_to_cpu(pdpe);
+ pdpe = le64_to_cpu(pdpe & me_mask);
if (!(pdpe & PG_PRESENT_MASK)) {
continue;
}
@@ -161,7 +184,7 @@ static void tlb_info_la48(Monitor *mon, CPUArchState *env,
pd_addr = pdpe & 0x3fffffffff000ULL;
for (l3 = 0; l3 < 512; l3++) {
cpu_physical_memory_read_debug(pd_addr + l3 * 8, &pde, 8);
- pde = le64_to_cpu(pde);
+ pde = le64_to_cpu(pde & me_mask);
if (!(pde & PG_PRESENT_MASK)) {
continue;
}
@@ -176,7 +199,7 @@ static void tlb_info_la48(Monitor *mon, CPUArchState *env,
pt_addr = pde & 0x3fffffffff000ULL;
for (l4 = 0; l4 < 512; l4++) {
cpu_physical_memory_read_debug(pt_addr + l4 * 8, &pte, 8);
- pte = le64_to_cpu(pte);
+ pte = le64_to_cpu(pte & me_mask);
if (pte & PG_PRESENT_MASK) {
print_pte(mon, env, (l0 << 48) + (l1 << 39) +
(l2 << 30) + (l3 << 21) + (l4 << 12),
@@ -193,11 +216,14 @@ static void tlb_info_la57(Monitor *mon, CPUArchState *env)
uint64_t l0;
uint64_t pml5e;
uint64_t pml5_addr;
+ uint64_t me_mask;
+
+ me_mask = get_me_mask();
- pml5_addr = env->cr[3] & 0x3fffffffff000ULL;
+ pml5_addr = env->cr[3] & 0x3fffffffff000ULL & me_mask;
for (l0 = 0; l0 < 512; l0++) {
cpu_physical_memory_read_debug(pml5_addr + l0 * 8, &pml5e, 8);
- pml5e = le64_to_cpu(pml5e);
+ pml5e = le64_to_cpu(pml5e & me_mask);
if (pml5e & PG_PRESENT_MASK) {
tlb_info_la48(mon, env, l0, pml5e & 0x3fffffffff000ULL);
}
@@ -225,7 +251,8 @@ void hmp_info_tlb(Monitor *mon, const QDict *qdict)
if (env->cr[4] & CR4_LA57_MASK) {
tlb_info_la57(mon, env);
} else {
- tlb_info_la48(mon, env, 0, env->cr[3] & 0x3fffffffff000ULL);
+ tlb_info_la48(mon, env, 0, env->cr[3] & 0x3fffffffff000ULL &
+ get_me_mask());
}
} else
#endif
@@ -309,19 +336,22 @@ static void mem_info_pae32(Monitor *mon, CPUArchState *env)
uint64_t pdpe, pde, pte;
uint64_t pdp_addr, pd_addr, pt_addr;
hwaddr start, end;
+ uint64_t me_mask;
- pdp_addr = env->cr[3] & ~0x1f;
+ me_mask = get_me_mask();
+
+ pdp_addr = env->cr[3] & ~0x1f & me_mask;
last_prot = 0;
start = -1;
for (l1 = 0; l1 < 4; l1++) {
cpu_physical_memory_read_debug(pdp_addr + l1 * 8, &pdpe, 8);
- pdpe = le64_to_cpu(pdpe);
+ pdpe = le64_to_cpu(pdpe & me_mask);
end = l1 << 30;
if (pdpe & PG_PRESENT_MASK) {
pd_addr = pdpe & 0x3fffffffff000ULL;
for (l2 = 0; l2 < 512; l2++) {
cpu_physical_memory_read_debug(pd_addr + l2 * 8, &pde, 8);
- pde = le64_to_cpu(pde);
+ pde = le64_to_cpu(pde & me_mask);
end = (l1 << 30) + (l2 << 21);
if (pde & PG_PRESENT_MASK) {
if (pde & PG_PSE_MASK) {
@@ -333,7 +363,7 @@ static void mem_info_pae32(Monitor *mon, CPUArchState *env)
for (l3 = 0; l3 < 512; l3++) {
cpu_physical_memory_read_debug(pt_addr + l3 * 8,
&pte, 8);
- pte = le64_to_cpu(pte);
+ pte = le64_to_cpu(pte & me_mask);
end = (l1 << 30) + (l2 << 21) + (l3 << 12);
if (pte & PG_PRESENT_MASK) {
prot = pte & pde & (PG_USER_MASK | PG_RW_MASK |
@@ -366,19 +396,22 @@ static void mem_info_la48(Monitor *mon, CPUArchState *env)
uint64_t l1, l2, l3, l4;
uint64_t pml4e, pdpe, pde, pte;
uint64_t pml4_addr, pdp_addr, pd_addr, pt_addr, start, end;
+ uint64_t me_mask;
+
+ me_mask = get_me_mask();
- pml4_addr = env->cr[3] & 0x3fffffffff000ULL;
+ pml4_addr = env->cr[3] & 0x3fffffffff000ULL & me_mask;
last_prot = 0;
start = -1;
for (l1 = 0; l1 < 512; l1++) {
cpu_physical_memory_read_debug(pml4_addr + l1 * 8, &pml4e, 8);
- pml4e = le64_to_cpu(pml4e);
+ pml4e = le64_to_cpu(pml4e & me_mask);
end = l1 << 39;
if (pml4e & PG_PRESENT_MASK) {
pdp_addr = pml4e & 0x3fffffffff000ULL;
for (l2 = 0; l2 < 512; l2++) {
cpu_physical_memory_read_debug(pdp_addr + l2 * 8, &pdpe, 8);
- pdpe = le64_to_cpu(pdpe);
+ pdpe = le64_to_cpu(pdpe & me_mask);
end = (l1 << 39) + (l2 << 30);
if (pdpe & PG_PRESENT_MASK) {
if (pdpe & PG_PSE_MASK) {
@@ -391,7 +424,7 @@ static void mem_info_la48(Monitor *mon, CPUArchState *env)
for (l3 = 0; l3 < 512; l3++) {
cpu_physical_memory_read_debug(pd_addr + l3 * 8,
&pde, 8);
- pde = le64_to_cpu(pde);
+ pde = le64_to_cpu(pde & me_mask);
end = (l1 << 39) + (l2 << 30) + (l3 << 21);
if (pde & PG_PRESENT_MASK) {
if (pde & PG_PSE_MASK) {
@@ -405,7 +438,7 @@ static void mem_info_la48(Monitor *mon, CPUArchState *env)
cpu_physical_memory_read_debug(pt_addr
+ l4 * 8,
&pte, 8);
- pte = le64_to_cpu(pte);
+ pte = le64_to_cpu(pte & me_mask);
end = (l1 << 39) + (l2 << 30) +
(l3 << 21) + (l4 << 12);
if (pte & PG_PRESENT_MASK) {
@@ -444,13 +477,16 @@ static void mem_info_la57(Monitor *mon, CPUArchState *env)
uint64_t l0, l1, l2, l3, l4;
uint64_t pml5e, pml4e, pdpe, pde, pte;
uint64_t pml5_addr, pml4_addr, pdp_addr, pd_addr, pt_addr, start, end;
+ uint64_t me_mask;
+
+ me_mask = get_me_mask();
- pml5_addr = env->cr[3] & 0x3fffffffff000ULL;
+ pml5_addr = env->cr[3] & 0x3fffffffff000ULL & me_mask;
last_prot = 0;
start = -1;
for (l0 = 0; l0 < 512; l0++) {
cpu_physical_memory_read_debug(pml5_addr + l0 * 8, &pml5e, 8);
- pml5e = le64_to_cpu(pml5e);
+ pml5e = le64_to_cpu(pml5e & me_mask);
end = l0 << 48;
if (!(pml5e & PG_PRESENT_MASK)) {
prot = 0;
@@ -461,7 +497,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *env)
pml4_addr = pml5e & 0x3fffffffff000ULL;
for (l1 = 0; l1 < 512; l1++) {
cpu_physical_memory_read_debug(pml4_addr + l1 * 8, &pml4e, 8);
- pml4e = le64_to_cpu(pml4e);
+ pml4e = le64_to_cpu(pml4e & me_mask);
end = (l0 << 48) + (l1 << 39);
if (!(pml4e & PG_PRESENT_MASK)) {
prot = 0;
@@ -472,7 +508,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *env)
pdp_addr = pml4e & 0x3fffffffff000ULL;
for (l2 = 0; l2 < 512; l2++) {
cpu_physical_memory_read_debug(pdp_addr + l2 * 8, &pdpe, 8);
- pdpe = le64_to_cpu(pdpe);
+ pdpe = le64_to_cpu(pdpe & me_mask);
end = (l0 << 48) + (l1 << 39) + (l2 << 30);
if (pdpe & PG_PRESENT_MASK) {
prot = 0;
@@ -491,7 +527,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *env)
pd_addr = pdpe & 0x3fffffffff000ULL;
for (l3 = 0; l3 < 512; l3++) {
cpu_physical_memory_read_debug(pd_addr + l3 * 8, &pde, 8);
- pde = le64_to_cpu(pde);
+ pde = le64_to_cpu(pde & me_mask);
end = (l0 << 48) + (l1 << 39) + (l2 << 30) + (l3 << 21);
if (pde & PG_PRESENT_MASK) {
prot = 0;
@@ -510,7 +546,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *env)
pt_addr = pde & 0x3fffffffff000ULL;
for (l4 = 0; l4 < 512; l4++) {
cpu_physical_memory_read_debug(pt_addr + l4 * 8, &pte, 8);
- pte = le64_to_cpu(pte);
+ pte = le64_to_cpu(pte & me_mask);
end = (l0 << 48) + (l1 << 39) + (l2 << 30) +
(l3 << 21) + (l4 << 12);
if (pte & PG_PRESENT_MASK) {
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [PATCH v6 23/23] sev: add migration blocker
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
@ 2018-01-29 17:41 ` Brijesh Singh
-1 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh
SEV guest migration is not implemented yet.
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
---
accel/kvm/sev.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/accel/kvm/sev.c b/accel/kvm/sev.c
index 65d34c531ee5..6800e059f57c 100644
--- a/accel/kvm/sev.c
+++ b/accel/kvm/sev.c
@@ -20,6 +20,7 @@
#include "sysemu/sysemu.h"
#include "trace.h"
#include "qapi-event.h"
+#include "migration/blocker.h"
#define DEFAULT_GUEST_POLICY 0x1 /* disable debug */
#define DEFAULT_SEV_DEVICE "/dev/sev"
@@ -28,6 +29,7 @@
static int sev_fd;
static SEVState *sev_state;
static MemoryRegionRAMReadWriteOps sev_ops;
+static Error *sev_mig_blocker;
#define SEV_FW_MAX_ERROR 0x17
@@ -479,6 +481,7 @@ static void
sev_launch_finish(SEVState *s)
{
int ret, error;
+ Error *local_err = NULL;
trace_kvm_sev_launch_finish();
ret = sev_ioctl(KVM_SEV_LAUNCH_FINISH, 0, &error);
@@ -489,6 +492,16 @@ sev_launch_finish(SEVState *s)
}
sev_set_guest_state(SEV_STATE_RUNNING);
+
+ /* add migration blocker */
+ error_setg(&sev_mig_blocker,
+ "SEV: Migration is not implemented");
+ ret = migrate_add_blocker(sev_mig_blocker, &local_err);
+ if (local_err) {
+ error_report_err(local_err);
+ error_free(sev_mig_blocker);
+ exit(1);
+ }
}
static void
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* [Qemu-devel] [PATCH v6 23/23] sev: add migration blocker
@ 2018-01-29 17:41 ` Brijesh Singh
0 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-29 17:41 UTC (permalink / raw)
To: qemu-devel
Cc: kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Brijesh Singh
SEV guest migration is not implemented yet.
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
---
accel/kvm/sev.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/accel/kvm/sev.c b/accel/kvm/sev.c
index 65d34c531ee5..6800e059f57c 100644
--- a/accel/kvm/sev.c
+++ b/accel/kvm/sev.c
@@ -20,6 +20,7 @@
#include "sysemu/sysemu.h"
#include "trace.h"
#include "qapi-event.h"
+#include "migration/blocker.h"
#define DEFAULT_GUEST_POLICY 0x1 /* disable debug */
#define DEFAULT_SEV_DEVICE "/dev/sev"
@@ -28,6 +29,7 @@
static int sev_fd;
static SEVState *sev_state;
static MemoryRegionRAMReadWriteOps sev_ops;
+static Error *sev_mig_blocker;
#define SEV_FW_MAX_ERROR 0x17
@@ -479,6 +481,7 @@ static void
sev_launch_finish(SEVState *s)
{
int ret, error;
+ Error *local_err = NULL;
trace_kvm_sev_launch_finish();
ret = sev_ioctl(KVM_SEV_LAUNCH_FINISH, 0, &error);
@@ -489,6 +492,16 @@ sev_launch_finish(SEVState *s)
}
sev_set_guest_state(SEV_STATE_RUNNING);
+
+ /* add migration blocker */
+ error_setg(&sev_mig_blocker,
+ "SEV: Migration is not implemented");
+ ret = migrate_add_blocker(sev_mig_blocker, &local_err);
+ if (local_err) {
+ error_report_err(local_err);
+ error_free(sev_mig_blocker);
+ exit(1);
+ }
}
static void
--
2.9.5
^ permalink raw reply related [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 00/23] x86: Secure Encrypted Virtualization (AMD)
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
@ 2018-01-29 18:13 ` no-reply
-1 siblings, 0 replies; 118+ messages in thread
From: no-reply @ 2018-01-29 18:13 UTC (permalink / raw)
To: brijesh.singh
Cc: famz, qemu-devel, edgar.iglesias, peter.maydell, ehabkost, kvm,
Thomas.Lendacky, stefanha, mst, richard.henderson, dgilbert,
brijesh.singh, pbonzini
Hi,
This series seems to have some coding style problems. See output below for
more information:
Type: series
Message-id: 20180129174132.108925-1-brijesh.singh@amd.com
Subject: [Qemu-devel] [PATCH v6 00/23] x86: Secure Encrypted Virtualization (AMD)
=== TEST SCRIPT BEGIN ===
#!/bin/bash
BASE=base
n=1
total=$(git log --oneline $BASE.. | wc -l)
failed=0
git config --local diff.renamelimit 0
git config --local diff.renames True
commits="$(git log --format=%H --reverse $BASE..)"
for c in $commits; do
echo "Checking PATCH $n/$total: $(git log -n 1 --format=%s $c)..."
if ! git show $c --format=email | ./scripts/checkpatch.pl --mailback -; then
failed=1
echo
fi
n=$((n+1))
done
exit $failed
=== TEST SCRIPT END ===
Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
t [tag update] patchew/1517235657-22547-1-git-send-email-ghammer@redhat.com -> patchew/1517235657-22547-1-git-send-email-ghammer@redhat.com
t [tag update] patchew/20180123035349.24538-1-richard.henderson@linaro.org -> patchew/20180123035349.24538-1-richard.henderson@linaro.org
* [new tag] patchew/20180129174132.108925-1-brijesh.singh@amd.com -> patchew/20180129174132.108925-1-brijesh.singh@amd.com
Switched to a new branch 'test'
6efcae2888 sev: add migration blocker
16a9e00946 target/i386: clear C-bit when walking SEV guest page table
3b5e4a5a54 sev: add debug encrypt and decrypt commands
9034d072b3 hw: i386: set ram_debug_ops when memory encryption is enabled
9b48370842 sev: Finalize the SEV guest launch flow
5e126818a5 sev: emit the SEV_MEASUREMENT event
1c9a562916 qapi: add SEV_MEASUREMENT event
b322fca554 target/i386: encrypt bios rom
10da3ed830 sev: add command to encrypt guest memory region
cc979f7ffb sev: add command to create launch memory encryption context
9388e9fbf7 hmp: display memory encryption support in 'info kvm'
8875a9eff3 kvm: introduce memory encryption APIs
c530cf3a0f sev: register the guest memory range which may contain encrypted data
f486eda972 sev: add command to initialize the memory encryption context
cd64908627 accel: add Secure Encrypted Virtulization (SEV) object
08729ca7e4 docs: add AMD Secure Encrypted Virtualization (SEV)
e13044a465 kvm: update kvm.h to include memory encryption ioctls
113e16b66e machine: add -memory-encryption property
f839a7f5d1 target/i386: add memory encryption feature cpuid support
4e159e781f monitor/i386: use debug APIs when accessing guest memory
fbeb706e23 exec: add debug version of physical memory read and write API
11bc1372d7 exec: add ram_debug_ops support
1b02df629e memattrs: add debug attribute
=== OUTPUT BEGIN ===
Checking PATCH 1/23: memattrs: add debug attribute...
Checking PATCH 2/23: exec: add ram_debug_ops support...
WARNING: line over 80 characters
#208: FILE: include/exec/memory.h:640:
+ * memory_region_set_ram_debug_ops: Set debug access ops for a given memory region
total: 0 errors, 1 warnings, 173 lines checked
Your patch has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 3/23: exec: add debug version of physical memory read and write API...
Checking PATCH 4/23: monitor/i386: use debug APIs when accessing guest memory...
WARNING: line over 80 characters
#356: FILE: target/i386/monitor.c:512:
+ cpu_physical_memory_read_debug(pt_addr + l4 * 8, &pte, 8);
total: 0 errors, 1 warnings, 291 lines checked
Your patch has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 5/23: target/i386: add memory encryption feature cpuid support...
Checking PATCH 6/23: machine: add -memory-encryption property...
Checking PATCH 7/23: kvm: update kvm.h to include memory encryption ioctls...
Checking PATCH 8/23: docs: add AMD Secure Encrypted Virtualization (SEV)...
Checking PATCH 9/23: accel: add Secure Encrypted Virtulization (SEV) object...
Checking PATCH 10/23: sev: add command to initialize the memory encryption context...
Checking PATCH 11/23: sev: register the guest memory range which may contain encrypted data...
Checking PATCH 12/23: kvm: introduce memory encryption APIs...
Checking PATCH 13/23: hmp: display memory encryption support in 'info kvm'...
Checking PATCH 14/23: sev: add command to create launch memory encryption context...
Checking PATCH 15/23: sev: add command to encrypt guest memory region...
ERROR: space prohibited between function name and open parenthesis '('
#86: FILE: accel/kvm/sev.c:474:
+ assert (handle);
total: 1 errors, 0 warnings, 86 lines checked
Your patch has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 16/23: target/i386: encrypt bios rom...
Checking PATCH 17/23: qapi: add SEV_MEASUREMENT event...
Checking PATCH 18/23: sev: emit the SEV_MEASUREMENT event...
Checking PATCH 19/23: sev: Finalize the SEV guest launch flow...
Checking PATCH 20/23: hw: i386: set ram_debug_ops when memory encryption is enabled...
Checking PATCH 21/23: sev: add debug encrypt and decrypt commands...
Checking PATCH 22/23: target/i386: clear C-bit when walking SEV guest page table...
Checking PATCH 23/23: sev: add migration blocker...
=== OUTPUT END ===
Test command exited with code: 1
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@freelists.org
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 00/23] x86: Secure Encrypted Virtualization (AMD)
@ 2018-01-29 18:13 ` no-reply
0 siblings, 0 replies; 118+ messages in thread
From: no-reply @ 2018-01-29 18:13 UTC (permalink / raw)
To: brijesh.singh
Cc: famz, qemu-devel, edgar.iglesias, peter.maydell, ehabkost, kvm,
Thomas.Lendacky, stefanha, mst, richard.henderson, dgilbert,
pbonzini
Hi,
This series seems to have some coding style problems. See output below for
more information:
Type: series
Message-id: 20180129174132.108925-1-brijesh.singh@amd.com
Subject: [Qemu-devel] [PATCH v6 00/23] x86: Secure Encrypted Virtualization (AMD)
=== TEST SCRIPT BEGIN ===
#!/bin/bash
BASE=base
n=1
total=$(git log --oneline $BASE.. | wc -l)
failed=0
git config --local diff.renamelimit 0
git config --local diff.renames True
commits="$(git log --format=%H --reverse $BASE..)"
for c in $commits; do
echo "Checking PATCH $n/$total: $(git log -n 1 --format=%s $c)..."
if ! git show $c --format=email | ./scripts/checkpatch.pl --mailback -; then
failed=1
echo
fi
n=$((n+1))
done
exit $failed
=== TEST SCRIPT END ===
Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
t [tag update] patchew/1517235657-22547-1-git-send-email-ghammer@redhat.com -> patchew/1517235657-22547-1-git-send-email-ghammer@redhat.com
t [tag update] patchew/20180123035349.24538-1-richard.henderson@linaro.org -> patchew/20180123035349.24538-1-richard.henderson@linaro.org
* [new tag] patchew/20180129174132.108925-1-brijesh.singh@amd.com -> patchew/20180129174132.108925-1-brijesh.singh@amd.com
Switched to a new branch 'test'
6efcae2888 sev: add migration blocker
16a9e00946 target/i386: clear C-bit when walking SEV guest page table
3b5e4a5a54 sev: add debug encrypt and decrypt commands
9034d072b3 hw: i386: set ram_debug_ops when memory encryption is enabled
9b48370842 sev: Finalize the SEV guest launch flow
5e126818a5 sev: emit the SEV_MEASUREMENT event
1c9a562916 qapi: add SEV_MEASUREMENT event
b322fca554 target/i386: encrypt bios rom
10da3ed830 sev: add command to encrypt guest memory region
cc979f7ffb sev: add command to create launch memory encryption context
9388e9fbf7 hmp: display memory encryption support in 'info kvm'
8875a9eff3 kvm: introduce memory encryption APIs
c530cf3a0f sev: register the guest memory range which may contain encrypted data
f486eda972 sev: add command to initialize the memory encryption context
cd64908627 accel: add Secure Encrypted Virtulization (SEV) object
08729ca7e4 docs: add AMD Secure Encrypted Virtualization (SEV)
e13044a465 kvm: update kvm.h to include memory encryption ioctls
113e16b66e machine: add -memory-encryption property
f839a7f5d1 target/i386: add memory encryption feature cpuid support
4e159e781f monitor/i386: use debug APIs when accessing guest memory
fbeb706e23 exec: add debug version of physical memory read and write API
11bc1372d7 exec: add ram_debug_ops support
1b02df629e memattrs: add debug attribute
=== OUTPUT BEGIN ===
Checking PATCH 1/23: memattrs: add debug attribute...
Checking PATCH 2/23: exec: add ram_debug_ops support...
WARNING: line over 80 characters
#208: FILE: include/exec/memory.h:640:
+ * memory_region_set_ram_debug_ops: Set debug access ops for a given memory region
total: 0 errors, 1 warnings, 173 lines checked
Your patch has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 3/23: exec: add debug version of physical memory read and write API...
Checking PATCH 4/23: monitor/i386: use debug APIs when accessing guest memory...
WARNING: line over 80 characters
#356: FILE: target/i386/monitor.c:512:
+ cpu_physical_memory_read_debug(pt_addr + l4 * 8, &pte, 8);
total: 0 errors, 1 warnings, 291 lines checked
Your patch has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 5/23: target/i386: add memory encryption feature cpuid support...
Checking PATCH 6/23: machine: add -memory-encryption property...
Checking PATCH 7/23: kvm: update kvm.h to include memory encryption ioctls...
Checking PATCH 8/23: docs: add AMD Secure Encrypted Virtualization (SEV)...
Checking PATCH 9/23: accel: add Secure Encrypted Virtulization (SEV) object...
Checking PATCH 10/23: sev: add command to initialize the memory encryption context...
Checking PATCH 11/23: sev: register the guest memory range which may contain encrypted data...
Checking PATCH 12/23: kvm: introduce memory encryption APIs...
Checking PATCH 13/23: hmp: display memory encryption support in 'info kvm'...
Checking PATCH 14/23: sev: add command to create launch memory encryption context...
Checking PATCH 15/23: sev: add command to encrypt guest memory region...
ERROR: space prohibited between function name and open parenthesis '('
#86: FILE: accel/kvm/sev.c:474:
+ assert (handle);
total: 1 errors, 0 warnings, 86 lines checked
Your patch has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 16/23: target/i386: encrypt bios rom...
Checking PATCH 17/23: qapi: add SEV_MEASUREMENT event...
Checking PATCH 18/23: sev: emit the SEV_MEASUREMENT event...
Checking PATCH 19/23: sev: Finalize the SEV guest launch flow...
Checking PATCH 20/23: hw: i386: set ram_debug_ops when memory encryption is enabled...
Checking PATCH 21/23: sev: add debug encrypt and decrypt commands...
Checking PATCH 22/23: target/i386: clear C-bit when walking SEV guest page table...
Checking PATCH 23/23: sev: add migration blocker...
=== OUTPUT END ===
Test command exited with code: 1
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@freelists.org
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [PATCH v6 00/23] x86: Secure Encrypted Virtualization (AMD)
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
@ 2018-01-29 18:17 ` no-reply
-1 siblings, 0 replies; 118+ messages in thread
From: no-reply @ 2018-01-29 18:17 UTC (permalink / raw)
To: brijesh.singh
Cc: edgar.iglesias, peter.maydell, famz, ehabkost, kvm,
Thomas.Lendacky, stefanha, mst, richard.henderson, qemu-devel,
dgilbert, pbonzini, brijesh.singh
Hi,
This series failed build test on s390x host. Please find the details below.
Type: series
Message-id: 20180129174132.108925-1-brijesh.singh@amd.com
Subject: [Qemu-devel] [PATCH v6 00/23] x86: Secure Encrypted Virtualization (AMD)
=== TEST SCRIPT BEGIN ===
#!/bin/bash
# Testing script will be invoked under the git checkout with
# HEAD pointing to a commit that has the patches applied on top of "base"
# branch
set -e
echo "=== ENV ==="
env
echo "=== PACKAGES ==="
rpm -qa
echo "=== TEST BEGIN ==="
CC=$HOME/bin/cc
INSTALL=$PWD/install
BUILD=$PWD/build
echo -n "Using CC: "
realpath $CC
mkdir -p $BUILD $INSTALL
SRC=$PWD
cd $BUILD
$SRC/configure --cc=$CC --prefix=$INSTALL
make -j4
# XXX: we need reliable clean up
# make check -j4 V=1
make install
=== TEST SCRIPT END ===
Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
0d1442912b..30d9fefe1a master -> master
t [tag update] patchew/1517235657-22547-1-git-send-email-ghammer@redhat.com -> patchew/1517235657-22547-1-git-send-email-ghammer@redhat.com
t [tag update] patchew/20180123035349.24538-1-richard.henderson@linaro.org -> patchew/20180123035349.24538-1-richard.henderson@linaro.org
* [new tag] patchew/20180129174132.108925-1-brijesh.singh@amd.com -> patchew/20180129174132.108925-1-brijesh.singh@amd.com
Switched to a new branch 'test'
6efcae2888 sev: add migration blocker
16a9e00946 target/i386: clear C-bit when walking SEV guest page table
3b5e4a5a54 sev: add debug encrypt and decrypt commands
9034d072b3 hw: i386: set ram_debug_ops when memory encryption is enabled
9b48370842 sev: Finalize the SEV guest launch flow
5e126818a5 sev: emit the SEV_MEASUREMENT event
1c9a562916 qapi: add SEV_MEASUREMENT event
b322fca554 target/i386: encrypt bios rom
10da3ed830 sev: add command to encrypt guest memory region
cc979f7ffb sev: add command to create launch memory encryption context
9388e9fbf7 hmp: display memory encryption support in 'info kvm'
8875a9eff3 kvm: introduce memory encryption APIs
c530cf3a0f sev: register the guest memory range which may contain encrypted data
f486eda972 sev: add command to initialize the memory encryption context
cd64908627 accel: add Secure Encrypted Virtulization (SEV) object
08729ca7e4 docs: add AMD Secure Encrypted Virtualization (SEV)
e13044a465 kvm: update kvm.h to include memory encryption ioctls
113e16b66e machine: add -memory-encryption property
f839a7f5d1 target/i386: add memory encryption feature cpuid support
4e159e781f monitor/i386: use debug APIs when accessing guest memory
fbeb706e23 exec: add debug version of physical memory read and write API
11bc1372d7 exec: add ram_debug_ops support
1b02df629e memattrs: add debug attribute
=== OUTPUT BEGIN ===
=== ENV ===
LANG=en_US.UTF-8
XDG_SESSION_ID=31743
USER=fam
PWD=/var/tmp/patchew-tester-tmp-hek3vjny/src
HOME=/home/fam
SHELL=/bin/sh
SHLVL=2
PATCHEW=/home/fam/patchew/patchew-cli -s http://patchew.org --nodebug
LOGNAME=fam
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1012/bus
XDG_RUNTIME_DIR=/run/user/1012
PATH=/usr/bin:/bin
_=/usr/bin/env
=== PACKAGES ===
gpg-pubkey-873529b8-54e386ff
glibc-debuginfo-common-2.24-10.fc25.s390x
fedora-release-26-1.noarch
dejavu-sans-mono-fonts-2.35-4.fc26.noarch
xemacs-filesystem-21.5.34-22.20170124hgf412e9f093d4.fc26.noarch
bash-4.4.12-7.fc26.s390x
freetype-2.7.1-9.fc26.s390x
libSM-1.2.2-5.fc26.s390x
libmpc-1.0.2-6.fc26.s390x
libaio-0.3.110-7.fc26.s390x
libverto-0.2.6-7.fc26.s390x
perl-Scalar-List-Utils-1.48-1.fc26.s390x
iptables-libs-1.6.1-2.fc26.s390x
perl-threads-shared-1.57-1.fc26.s390x
p11-kit-trust-0.23.9-2.fc26.s390x
tcl-8.6.6-2.fc26.s390x
libxshmfence-1.2-4.fc26.s390x
expect-5.45-23.fc26.s390x
perl-Thread-Queue-3.12-1.fc26.noarch
perl-encoding-2.19-6.fc26.s390x
keyutils-1.5.10-1.fc26.s390x
gmp-devel-6.1.2-4.fc26.s390x
enchant-1.6.0-16.fc26.s390x
net-snmp-libs-5.7.3-17.fc26.s390x
python-gobject-base-3.24.1-1.fc26.s390x
python3-distro-1.0.3-1.fc26.noarch
python3-enchant-1.6.10-1.fc26.noarch
python-lockfile-0.11.0-6.fc26.noarch
python2-pyparsing-2.1.10-3.fc26.noarch
python2-lxml-4.1.1-1.fc26.s390x
librados2-10.2.7-2.fc26.s390x
trousers-lib-0.3.13-7.fc26.s390x
libpaper-1.1.24-14.fc26.s390x
libdatrie-0.2.9-4.fc26.s390x
libsoup-2.58.2-1.fc26.s390x
passwd-0.79-9.fc26.s390x
bind99-libs-9.9.10-3.P3.fc26.s390x
python3-rpm-4.13.0.2-1.fc26.s390x
mock-core-configs-27.4-1.fc26.noarch
systemd-233-7.fc26.s390x
virglrenderer-0.6.0-1.20170210git76b3da97b.fc26.s390x
s390utils-ziomon-1.36.1-3.fc26.s390x
s390utils-osasnmpd-1.36.1-3.fc26.s390x
libXrandr-1.5.1-2.fc26.s390x
libglvnd-glx-1.0.0-1.fc26.s390x
texlive-ifxetex-svn19685.0.5-33.fc26.2.noarch
texlive-psnfss-svn33946.9.2a-33.fc26.2.noarch
texlive-dvipdfmx-def-svn40328-33.fc26.2.noarch
texlive-natbib-svn20668.8.31b-33.fc26.2.noarch
texlive-xdvi-bin-svn40750-33.20160520.fc26.2.s390x
texlive-cm-svn32865.0-33.fc26.2.noarch
texlive-beton-svn15878.0-33.fc26.2.noarch
texlive-fpl-svn15878.1.002-33.fc26.2.noarch
texlive-mflogo-svn38628-33.fc26.2.noarch
texlive-texlive-docindex-svn41430-33.fc26.2.noarch
texlive-luaotfload-bin-svn34647.0-33.20160520.fc26.2.noarch
texlive-koma-script-svn41508-33.fc26.2.noarch
texlive-pst-tree-svn24142.1.12-33.fc26.2.noarch
texlive-breqn-svn38099.0.98d-33.fc26.2.noarch
texlive-xetex-svn41438-33.fc26.2.noarch
gstreamer1-plugins-bad-free-1.12.3-1.fc26.s390x
xorg-x11-font-utils-7.5-33.fc26.s390x
ghostscript-fonts-5.50-36.fc26.noarch
libXext-devel-1.3.3-5.fc26.s390x
libusbx-devel-1.0.21-2.fc26.s390x
libglvnd-devel-1.0.0-1.fc26.s390x
emacs-25.3-3.fc26.s390x
alsa-lib-devel-1.1.4.1-1.fc26.s390x
kbd-2.0.4-2.fc26.s390x
dconf-0.26.0-2.fc26.s390x
ccache-3.3.4-1.fc26.s390x
glibc-static-2.25-12.fc26.s390x
mc-4.8.19-5.fc26.s390x
doxygen-1.8.13-9.fc26.s390x
dpkg-1.18.24-1.fc26.s390x
libtdb-1.3.13-1.fc26.s390x
python2-pynacl-1.1.1-1.fc26.s390x
nss-sysinit-3.34.0-1.0.fc26.s390x
kernel-4.13.16-202.fc26.s390x
perl-Filter-1.58-1.fc26.s390x
python2-pip-9.0.1-11.fc26.noarch
dnf-2.7.5-2.fc26.noarch
pcre2-utf16-10.23-11.fc26.s390x
glusterfs-devel-3.10.8-1.fc26.s390x
sssd-common-1.16.0-4.fc26.s390x
python2-sssdconfig-1.16.0-4.fc26.noarch
acpica-tools-20171110-1.fc26.s390x
glibc-debuginfo-2.24-10.fc25.s390x
fedora-repos-26-1.noarch
dejavu-fonts-common-2.35-4.fc26.noarch
bind99-license-9.9.10-3.P3.fc26.noarch
ncurses-libs-6.0-8.20170212.fc26.s390x
libpng-1.6.28-2.fc26.s390x
libICE-1.0.9-9.fc26.s390x
kmod-24-1.fc26.s390x
libseccomp-2.3.2-1.fc26.s390x
perl-Text-ParseWords-3.30-366.fc26.noarch
libtool-ltdl-2.4.6-17.fc26.s390x
perl-threads-2.16-1.fc26.s390x
libselinux-utils-2.6-7.fc26.s390x
userspace-rcu-0.9.3-2.fc26.s390x
libXfont-1.5.2-5.fc26.s390x
perl-Class-Inspector-1.31-3.fc26.noarch
perl-open-1.10-395.fc26.noarch
keyutils-libs-devel-1.5.10-1.fc26.s390x
isl-0.16.1-1.fc26.s390x
libsecret-0.18.5-3.fc26.s390x
compat-openssl10-1.0.2m-1.fc26.s390x
python3-iniparse-0.4-24.fc26.noarch
python3-dateutil-2.6.0-3.fc26.noarch
python3-firewall-0.4.4.5-1.fc26.noarch
python-enum34-1.1.6-1.fc26.noarch
python2-pygments-2.2.0-7.fc26.noarch
python2-dockerfile-parse-0.0.7-1.fc26.noarch
perl-Net-SSLeay-1.81-1.fc26.s390x
hostname-3.18-2.fc26.s390x
libtirpc-1.0.2-0.fc26.s390x
rpm-build-libs-4.13.0.2-1.fc26.s390x
libutempter-1.1.6-9.fc26.s390x
systemd-pam-233-7.fc26.s390x
pcre-utf16-8.41-3.fc26.s390x
libXinerama-1.1.3-7.fc26.s390x
mesa-libGL-17.2.4-2.fc26.s390x
texlive-amsfonts-svn29208.3.04-33.fc26.2.noarch
texlive-caption-svn41409-33.fc26.2.noarch
texlive-enumitem-svn24146.3.5.2-33.fc26.2.noarch
texlive-pdftex-def-svn22653.0.06d-33.fc26.2.noarch
texlive-xdvi-svn40768-33.fc26.2.noarch
texlive-courier-svn35058.0-33.fc26.2.noarch
texlive-charter-svn15878.0-33.fc26.2.noarch
texlive-graphics-def-svn41879-33.fc26.2.noarch
texlive-mfnfss-svn19410.0-33.fc26.2.noarch
texlive-texlive-en-svn41185-33.fc26.2.noarch
texlive-ifplatform-svn21156.0.4-33.fc26.2.noarch
texlive-ms-svn29849.0-33.fc26.2.noarch
texlive-pst-tools-svn34067.0.05-33.fc26.2.noarch
texlive-powerdot-svn38984-33.fc26.2.noarch
texlive-xetexconfig-svn41133-33.fc26.2.noarch
libvdpau-1.1.1-4.fc26.s390x
zlib-devel-1.2.11-2.fc26.s390x
gdk-pixbuf2-devel-2.36.9-1.fc26.s390x
libX11-devel-1.6.5-2.fc26.s390x
libtasn1-devel-4.12-1.fc26.s390x
libglvnd-core-devel-1.0.0-1.fc26.s390x
SDL2-devel-2.0.7-2.fc26.s390x
webkitgtk3-2.4.11-5.fc26.s390x
grubby-8.40-4.fc26.s390x
uboot-tools-2017.05-4.fc26.s390x
cracklib-dicts-2.9.6-5.fc26.s390x
texinfo-6.3-3.fc26.s390x
time-1.7-52.fc26.s390x
python2-deltarpm-3.6-19.fc26.s390x
nss-3.34.0-1.0.fc26.s390x
webkitgtk4-2.18.3-1.fc26.s390x
net-tools-2.0-0.43.20160912git.fc26.s390x
python2-setuptools-37.0.0-1.fc26.noarch
python2-dnf-2.7.5-2.fc26.noarch
pcre2-10.23-11.fc26.s390x
groff-base-1.22.3-10.fc26.s390x
python2-devel-2.7.14-4.fc26.s390x
python2-GitPython-2.1.7-2.fc26.noarch
boost-iostreams-1.63.0-10.fc26.s390x
gpg-pubkey-efe550f5-5220ba41
gpg-pubkey-81b46521-55b3ca9a
filesystem-3.2-40.fc26.s390x
basesystem-11-3.fc26.noarch
js-jquery-3.2.1-1.fc26.noarch
pcre-8.41-3.fc26.s390x
elfutils-libelf-0.169-1.fc26.s390x
libidn-1.33-2.fc26.s390x
libogg-1.3.2-6.fc26.s390x
slang-2.3.1a-2.fc26.s390x
apr-1.6.3-1.fc26.s390x
libxkbcommon-0.7.1-3.fc26.s390x
perl-IO-1.36-395.fc26.s390x
libvorbis-1.3.5-2.fc26.s390x
less-487-3.fc26.s390x
lttng-ust-2.9.0-2.fc26.s390x
OpenEXR-libs-2.2.0-6.fc26.s390x
ipset-libs-6.29-3.fc26.s390x
perl-XML-XPath-1.42-1.fc26.noarch
lua-filesystem-1.6.3-3.fc24.s390x
sqlite-3.20.1-1.fc26.s390x
gstreamer1-1.12.3-1.fc26.s390x
libpwquality-1.3.0-8.fc26.s390x
gettext-libs-0.19.8.1-9.fc26.s390x
python3-chardet-2.3.0-3.fc26.noarch
python3-slip-dbus-0.6.4-6.fc26.noarch
python-chardet-2.3.0-3.fc26.noarch
python2-pyasn1-0.2.3-1.fc26.noarch
python-slip-dbus-0.6.4-6.fc26.noarch
libarchive-3.2.2-4.fc26.s390x
libbabeltrace-1.5.2-2.fc26.s390x
cdparanoia-libs-10.2-22.fc26.s390x
krb5-workstation-1.15.2-4.fc26.s390x
python3-requests-kerberos-0.10.0-4.fc26.noarch
gpgme-1.8.0-12.fc26.s390x
python2-gpg-1.8.0-12.fc26.s390x
shadow-utils-4.3.1-3.fc26.s390x
cryptsetup-libs-1.7.5-1.fc26.s390x
kpartx-0.4.9-88.fc26.s390x
net-snmp-agent-libs-5.7.3-17.fc26.s390x
libXi-1.7.9-2.fc26.s390x
texlive-tetex-svn41059-33.fc26.2.noarch
texlive-tools-svn40934-33.fc26.2.noarch
texlive-bibtex-bin-svn40473-33.20160520.fc26.2.s390x
texlive-mfware-bin-svn40473-33.20160520.fc26.2.s390x
texlive-underscore-svn18261.0-33.fc26.2.noarch
texlive-avantgar-svn31835.0-33.fc26.2.noarch
texlive-anysize-svn15878.0-33.fc26.2.noarch
texlive-lineno-svn21442.4.41-33.fc26.2.noarch
texlive-mathpazo-svn15878.1.003-33.fc26.2.noarch
texlive-soul-svn15878.2.4-33.fc26.2.noarch
texlive-luatexbase-svn38550-33.fc26.2.noarch
texlive-listings-svn37534.1.6-33.fc26.2.noarch
texlive-pstricks-svn41321-33.fc26.2.noarch
texlive-metalogo-svn18611.0.12-33.fc26.2.noarch
texlive-dvipdfmx-svn41149-33.fc26.2.noarch
kbd-legacy-2.0.4-2.fc26.noarch
nspr-devel-4.17.0-1.fc26.s390x
ghostscript-x11-9.20-10.fc26.s390x
libXrender-devel-0.9.10-2.fc26.s390x
libxkbcommon-devel-0.7.1-3.fc26.s390x
mesa-libGL-devel-17.2.4-2.fc26.s390x
sqlite-devel-3.20.1-1.fc26.s390x
usbredir-devel-0.7.1-3.fc26.s390x
libcap-devel-2.25-5.fc26.s390x
brlapi-devel-0.6.6-5.fc26.s390x
fedora-upgrade-27.1-1.fc26.noarch
python3-pygpgme-0.3-22.fc26.s390x
pinentry-0.9.7-3.fc26.s390x
perl-Test-Harness-3.39-1.fc26.noarch
qemu-sanity-check-nodeps-1.1.5-6.fc26.s390x
libldb-1.1.29-5.fc26.s390x
python-libxml2-2.9.4-2.fc26.s390x
nss-util-devel-3.34.0-1.0.fc26.s390x
vim-filesystem-8.0.1360-1.fc26.s390x
webkitgtk4-plugin-process-gtk2-2.18.3-1.fc26.s390x
python2-2.7.14-4.fc26.s390x
libwayland-cursor-1.13.0-3.fc26.s390x
mariadb-config-10.1.29-1.fc26.s390x
gdb-headless-8.0.1-33.fc26.s390x
pulseaudio-libs-devel-11.1-7.fc26.s390x
curl-7.53.1-13.fc26.s390x
json-c-0.12.1-5.fc26.s390x
gpg-pubkey-34ec9cba-54e38751
gpg-pubkey-030d5aed-55b577f0
setup-2.10.5-2.fc26.noarch
lato-fonts-2.015-3.fc26.noarch
web-assets-filesystem-5-5.fc26.noarch
libsepol-2.6-2.fc26.s390x
libcap-2.25-5.fc26.s390x
tcp_wrappers-libs-7.6-85.fc26.s390x
libnl3-3.3.0-1.fc26.s390x
pixman-0.34.0-3.fc26.s390x
lzo-2.08-9.fc26.s390x
perl-5.24.3-395.fc26.s390x
libnl3-cli-3.3.0-1.fc26.s390x
gpm-libs-1.20.7-10.fc26.s390x
libgo-7.2.1-2.fc26.s390x
iso-codes-3.74-2.fc26.noarch
ipset-6.29-3.fc26.s390x
lua-term-0.07-1.fc25.s390x
libdb-utils-5.3.28-24.fc26.s390x
system-python-libs-3.6.3-2.fc26.s390x
dbus-glib-0.108-2.fc26.s390x
pam-1.3.0-2.fc26.s390x
avahi-glib-0.6.32-7.fc26.s390x
python2-dateutil-2.6.0-3.fc26.noarch
python3-asn1crypto-0.23.0-1.fc26.noarch
python3-slip-0.6.4-6.fc26.noarch
python-backports-ssl_match_hostname-3.5.0.1-4.fc26.noarch
python2-pyOpenSSL-16.2.0-6.fc26.noarch
python-slip-0.6.4-6.fc26.noarch
nss-pem-1.0.3-3.fc26.s390x
fipscheck-1.5.0-1.fc26.s390x
elfutils-0.169-1.fc26.s390x
cyrus-sasl-lib-2.1.26-32.fc26.s390x
libkadm5-1.15.2-4.fc26.s390x
python3-kerberos-1.2.5-3.fc26.s390x
rpmconf-1.0.19-1.fc26.noarch
libsemanage-2.6-4.fc26.s390x
device-mapper-libs-1.02.137-6.fc26.s390x
yum-3.4.3-512.fc26.noarch
device-mapper-multipath-0.4.9-88.fc26.s390x
net-snmp-5.7.3-17.fc26.s390x
libXtst-1.2.3-2.fc26.s390x
libXxf86vm-1.1.4-4.fc26.s390x
texlive-amsmath-svn41561-33.fc26.2.noarch
texlive-xkeyval-svn35741.2.7a-33.fc26.2.noarch
texlive-bibtex-svn40768-33.fc26.2.noarch
texlive-mfware-svn40768-33.fc26.2.noarch
texlive-wasy-svn35831.0-33.fc26.2.noarch
texlive-bookman-svn31835.0-33.fc26.2.noarch
texlive-babel-english-svn30264.3.3p-33.fc26.2.noarch
texlive-fix2col-svn38770-33.fc26.2.noarch
texlive-mdwtools-svn15878.1.05.4-33.fc26.2.noarch
texlive-tex-gyre-math-svn41264-33.fc26.2.noarch
texlive-luaotfload-svn40902-33.fc26.2.noarch
texlive-showexpl-svn32737.v0.3l-33.fc26.2.noarch
texlive-pstricks-add-svn40744-33.fc26.2.noarch
texlive-l3experimental-svn41163-33.fc26.2.noarch
texlive-xetex-bin-svn41091-33.20160520.fc26.2.s390x
kbd-misc-2.0.4-2.fc26.noarch
libpng-devel-1.6.28-2.fc26.s390x
ghostscript-core-9.20-10.fc26.s390x
libXfixes-devel-5.0.3-2.fc26.s390x
libverto-devel-0.2.6-7.fc26.s390x
mesa-libEGL-devel-17.2.4-2.fc26.s390x
popt-devel-1.16-12.fc26.s390x
readline-devel-7.0-5.fc26.s390x
cyrus-sasl-devel-2.1.26-32.fc26.s390x
sendmail-8.15.2-19.fc26.s390x
systemd-bootchart-231-3.fc26.s390x
perl-IO-Socket-SSL-2.049-1.fc26.noarch
python2-enchant-1.6.10-1.fc26.noarch
perl-generators-1.10-2.fc26.noarch
createrepo-0.10.3-11.fc26.noarch
webkitgtk4-jsc-2.18.3-1.fc26.s390x
vim-common-8.0.1360-1.fc26.s390x
nss-tools-3.34.0-1.0.fc26.s390x
glusterfs-api-3.10.8-1.fc26.s390x
pulseaudio-libs-glib2-11.1-7.fc26.s390x
mariadb-common-10.1.29-1.fc26.s390x
dhcp-libs-4.3.5-10.fc26.s390x
pcre2-devel-10.23-11.fc26.s390x
libtiff-4.0.9-1.fc26.s390x
kernel-headers-4.14.8-200.fc26.s390x
fontpackages-filesystem-1.44-18.fc26.noarch
vte-profile-0.48.4-1.fc26.s390x
texlive-kpathsea-doc-svn41139-33.fc26.2.noarch
zlib-1.2.11-2.fc26.s390x
readline-7.0-5.fc26.s390x
libattr-2.4.47-18.fc26.s390x
libgomp-7.2.1-2.fc26.s390x
libglvnd-1.0.0-1.fc26.s390x
lz4-libs-1.8.0-1.fc26.s390x
libcrypt-nss-2.25-12.fc26.s390x
jansson-2.10-2.fc26.s390x
perl-File-Path-2.12-367.fc26.noarch
perl-Unicode-EastAsianWidth-1.33-9.fc26.noarch
hunspell-1.5.4-2.fc26.s390x
libasyncns-0.8-11.fc26.s390x
libnetfilter_conntrack-1.0.6-2.fc26.s390x
perl-Storable-2.56-368.fc26.s390x
autoconf-2.69-24.fc26.noarch
device-mapper-persistent-data-0.6.3-5.fc26.s390x
quota-4.03-9.fc26.s390x
crypto-policies-20170606-1.git7c32281.fc26.noarch
glib2-2.52.3-2.fc26.s390x
python2-idna-2.5-1.fc26.noarch
python2-libcomps-0.1.8-3.fc26.s390x
gsettings-desktop-schemas-3.24.1-1.fc26.s390x
javapackages-tools-4.7.0-17.fc26.noarch
libselinux-python3-2.6-7.fc26.s390x
python-backports-1.0-9.fc26.s390x
python2-cryptography-2.0.2-2.fc26.s390x
libselinux-python-2.6-7.fc26.s390x
Lmod-7.5.3-1.fc26.s390x
fipscheck-lib-1.5.0-1.fc26.s390x
elfutils-libs-0.169-1.fc26.s390x
krb5-libs-1.15.2-4.fc26.s390x
libuser-0.62-6.fc26.s390x
python2-requests-kerberos-0.10.0-4.fc26.noarch
npth-1.5-1.fc26.s390x
packagedb-cli-2.14.1-2.fc26.noarch
ustr-1.0.4-22.fc26.s390x
device-mapper-1.02.137-6.fc26.s390x
polkit-pkla-compat-0.1-8.fc26.s390x
fakeroot-1.22-1.fc26.s390x
libXmu-1.1.2-5.fc26.s390x
cairo-gobject-1.14.10-1.fc26.s390x
texlive-booktabs-svn40846-33.fc26.2.noarch
texlive-dvips-bin-svn40987-33.20160520.fc26.2.s390x
texlive-float-svn15878.1.3d-33.fc26.2.noarch
texlive-tex-svn40793-33.fc26.2.noarch
texlive-fancyref-svn15878.0.9c-33.fc26.2.noarch
texlive-manfnt-font-svn35799.0-33.fc26.2.noarch
texlive-cmap-svn41168-33.fc26.2.noarch
texlive-hyph-utf8-svn41189-33.fc26.2.noarch
texlive-paralist-svn39247-33.fc26.2.noarch
texlive-trimspaces-svn15878.1.1-33.fc26.2.noarch
texlive-tipa-svn29349.1.3-33.fc26.2.noarch
texlive-l3packages-svn41246-33.fc26.2.noarch
texlive-pst-pdf-svn31660.1.1v-33.fc26.2.noarch
texlive-tex-gyre-svn18651.2.004-33.fc26.2.noarch
texlive-beamer-svn36461.3.36-33.fc26.2.noarch
gd-2.2.5-1.fc26.s390x
elfutils-libelf-devel-0.169-1.fc26.s390x
gc-devel-7.6.0-2.fc26.s390x
libXft-devel-2.3.2-5.fc26.s390x
krb5-devel-1.15.2-4.fc26.s390x
rpm-devel-4.13.0.2-1.fc26.s390x
pcre-static-8.41-3.fc26.s390x
bluez-libs-devel-5.46-6.fc26.s390x
systemtap-3.2-2.fc26.s390x
trousers-0.3.13-7.fc26.s390x
iproute-tc-4.11.0-1.fc26.s390x
python2-sphinx-1.5.5-1.fc26.noarch
libgnome-keyring-3.12.0-8.fc26.s390x
perl-File-ShareDir-1.102-8.fc26.noarch
python2-paramiko-2.2.1-1.fc26.noarch
python2-openidc-client-0.4.0-1.20171113git54dee6e.fc26.noarch
openssh-server-7.5p1-4.fc26.s390x
pulseaudio-libs-11.1-7.fc26.s390x
python2-bodhi-2.12.2-3.fc26.noarch
lua-libs-5.3.4-7.fc26.s390x
dhcp-common-4.3.5-10.fc26.noarch
python3-pip-9.0.1-11.fc26.noarch
python3-sssdconfig-1.16.0-4.fc26.noarch
gpg-pubkey-95a43f54-5284415a
gpg-pubkey-fdb19c98-56fd6333
gpg-pubkey-64dab85d-57d33e22
tzdata-2017c-1.fc26.noarch
firewalld-filesystem-0.4.4.5-1.fc26.noarch
xkeyboard-config-2.21-3.fc26.noarch
texlive-texlive-common-doc-svn40682-33.fc26.2.noarch
ncurses-base-6.0-8.20170212.fc26.noarch
libselinux-2.6-7.fc26.s390x
bzip2-libs-1.0.6-22.fc26.s390x
libdb-5.3.28-24.fc26.s390x
mpfr-3.1.5-3.fc26.s390x
file-libs-5.30-11.fc26.s390x
libunistring-0.9.7-1.fc26.s390x
libxslt-1.1.29-1.fc26.s390x
libtasn1-4.12-1.fc26.s390x
gdbm-1.13-1.fc26.s390x
libepoxy-1.4.3-1.fc26.s390x
libpsl-0.18.0-1.fc26.s390x
perl-Carp-1.40-366.fc26.noarch
e2fsprogs-libs-1.43.4-2.fc26.s390x
libmnl-1.0.4-2.fc26.s390x
openjpeg2-2.2.0-3.fc26.s390x
perl-PathTools-3.63-367.fc26.s390x
perl-File-Temp-0.230.400-2.fc26.noarch
perl-XML-Parser-2.44-6.fc26.s390x
libss-1.43.4-2.fc26.s390x
ilmbase-2.2.0-8.fc26.s390x
fuse-libs-2.9.7-2.fc26.s390x
libdaemon-0.14-11.fc26.s390x
libbasicobjects-0.1.1-34.fc26.s390x
iptables-1.6.1-2.fc26.s390x
perl-TermReadKey-2.37-2.fc26.s390x
perl-Term-ANSIColor-4.06-2.fc26.noarch
perl-libintl-perl-1.26-2.fc26.s390x
usbredir-0.7.1-3.fc26.s390x
fftw-libs-double-3.3.5-4.fc26.s390x
rsync-3.1.2-5.fc26.s390x
libiscsi-1.15.0-3.fc26.s390x
ttmkfdir-3.0.9-49.fc26.s390x
texlive-base-2016-33.20160520.fc26.1.noarch
python2-six-1.10.0-9.fc26.noarch
atk-2.24.0-1.fc26.s390x
python2-kitchen-1.2.4-6.fc26.noarch
guile-2.0.14-1.fc26.s390x
desktop-file-utils-0.23-3.fc26.s390x
pyxattr-0.5.3-10.fc26.s390x
shared-mime-info-1.8-2.fc26.s390x
libyaml-0.1.7-2.fc26.s390x
python3-PyYAML-3.12-3.fc26.s390x
openssh-7.5p1-4.fc26.s390x
kernel-core-4.13.16-202.fc26.s390x
perl-Git-2.13.6-2.fc26.noarch
python3-dnf-plugins-extras-common-2.0.4-1.fc26.noarch
openssl-1.1.0g-1.fc26.s390x
gawk-4.1.4-6.fc26.s390x
gnutls-3.5.16-4.fc26.s390x
openldap-2.4.45-2.fc26.s390x
bind-license-9.11.1-4.P3.fc26.noarch
python2-gluster-3.10.8-1.fc26.s390x
selinux-policy-3.13.1-260.17.fc26.noarch
linux-firmware-20171215-81.git2451bb22.fc26.noarch
libpkgconf-1.3.12-1.fc26.s390x
NetworkManager-libnm-1.8.2-4.fc26.s390x
gnutls-devel-3.5.16-4.fc26.s390x
mariadb-libs-10.1.29-1.fc26.s390x
python2-urllib3-1.20-2.fc26.noarch
sssd-nfs-idmap-1.16.0-4.fc26.s390x
libsss_sudo-1.16.0-4.fc26.s390x
libgudev-232-1.fc26.s390x
python3-libs-3.6.3-2.fc26.s390x
python3-javapackages-4.7.0-17.fc26.noarch
python3-ply-3.9-3.fc26.noarch
python3-systemd-234-1.fc26.s390x
python3-requests-2.13.0-1.fc26.noarch
blktrace-1.1.0-4.fc26.s390x
python2-asn1crypto-0.23.0-1.fc26.noarch
python2-cffi-1.9.1-2.fc26.s390x
python2-sphinx_rtd_theme-0.2.4-1.fc26.noarch
lua-json-1.3.2-7.fc26.noarch
libcephfs1-10.2.7-2.fc26.s390x
glib-networking-2.50.0-2.fc26.s390x
elfutils-default-yama-scope-0.169-1.fc26.noarch
GeoIP-GeoLite-data-2017.10-1.fc26.noarch
libedit-3.1-17.20160618cvs.fc26.s390x
libverto-libev-0.2.6-7.fc26.s390x
libserf-1.3.9-3.fc26.s390x
createrepo_c-0.10.0-9.fc26.s390x
python2-kerberos-1.2.5-3.fc26.s390x
libsrtp-1.5.4-4.fc26.s390x
lzo-minilzo-2.08-9.fc26.s390x
librepo-1.8.0-1.fc26.s390x
koji-1.14.0-1.fc26.noarch
sg3_utils-1.42-1.fc26.s390x
libobjc-7.2.1-2.fc26.s390x
policycoreutils-2.6-6.fc26.s390x
libdrm-2.4.88-1.fc26.s390x
kernel-core-4.13.13-200.fc26.s390x
systemtap-client-3.2-2.fc26.s390x
lvm2-2.02.168-6.fc26.s390x
device-mapper-multipath-libs-0.4.9-88.fc26.s390x
libfdt-1.4.5-1.fc26.s390x
s390utils-cmsfs-1.36.1-3.fc26.s390x
libXdamage-1.1.4-9.fc26.s390x
libXaw-1.0.13-5.fc26.s390x
brltty-5.5-5.fc26.s390x
librsvg2-2.40.18-1.fc26.s390x
texlive-tetex-bin-svn36770.0-33.20160520.fc26.2.noarch
texlive-etex-pkg-svn39355-33.fc26.2.noarch
texlive-graphics-svn41015-33.fc26.2.noarch
texlive-dvips-svn41149-33.fc26.2.noarch
texlive-zapfding-svn31835.0-33.fc26.2.noarch
texlive-footmisc-svn23330.5.5b-33.fc26.2.noarch
texlive-makeindex-svn40768-33.fc26.2.noarch
texlive-pst-ovl-svn40873-33.fc26.2.noarch
texlive-texlive-scripts-svn41433-33.fc26.2.noarch
texlive-ltabptch-svn17533.1.74d-33.fc26.2.noarch
texlive-euro-svn22191.1.1-33.fc26.2.noarch
texlive-mflogo-font-svn36898.1.002-33.fc26.2.noarch
texlive-zapfchan-svn31835.0-33.fc26.2.noarch
texlive-cmextra-svn32831.0-33.fc26.2.noarch
texlive-finstrut-svn21719.0.5-33.fc26.2.noarch
texlive-hyphen-base-svn41138-33.fc26.2.noarch
texlive-marginnote-svn41382-33.fc26.2.noarch
texlive-parallel-svn15878.0-33.fc26.2.noarch
texlive-sepnum-svn20186.2.0-33.fc26.2.noarch
texlive-environ-svn33821.0.3-33.fc26.2.noarch
texlive-type1cm-svn21820.0-33.fc26.2.noarch
texlive-xunicode-svn30466.0.981-33.fc26.2.noarch
texlive-attachfile-svn38830-33.fc26.2.noarch
texlive-fontspec-svn41262-33.fc26.2.noarch
texlive-fancyvrb-svn18492.2.8-33.fc26.2.noarch
texlive-pst-pdf-bin-svn7838.0-33.20160520.fc26.2.noarch
texlive-xcolor-svn41044-33.fc26.2.noarch
texlive-pdfpages-svn40638-33.fc26.2.noarch
texlive-sansmathaccent-svn30187.0-33.fc26.2.noarch
texlive-ucs-svn35853.2.2-33.fc26.2.noarch
texlive-dvipdfmx-bin-svn40273-33.20160520.fc26.2.s390x
libotf-0.9.13-8.fc26.s390x
go-srpm-macros-2-8.fc26.noarch
pcre-devel-8.41-3.fc26.s390x
mesa-libwayland-egl-devel-17.2.4-2.fc26.s390x
ghostscript-9.20-10.fc26.s390x
libcephfs_jni-devel-10.2.7-2.fc26.s390x
libXdamage-devel-1.1.4-9.fc26.s390x
freetype-devel-2.7.1-9.fc26.s390x
ncurses-devel-6.0-8.20170212.fc26.s390x
fontconfig-devel-2.12.6-4.fc26.s390x
cairo-devel-1.14.10-1.fc26.s390x
libselinux-devel-2.6-7.fc26.s390x
guile-devel-2.0.14-1.fc26.s390x
libcap-ng-devel-0.7.8-3.fc26.s390x
bash-completion-2.6-1.fc26.noarch
libXevie-1.0.3-12.fc26.s390x
kernel-4.13.13-200.fc26.s390x
audit-2.8.1-1.fc26.s390x
gcc-objc-7.2.1-2.fc26.s390x
gcc-go-7.2.1-2.fc26.s390x
python-firewall-0.4.4.5-1.fc26.noarch
python3-html5lib-0.999-13.fc26.noarch
python2-simplejson-3.10.0-3.fc26.s390x
flex-2.6.1-3.fc26.s390x
telnet-0.17-69.fc26.s390x
gpg-pubkey-8e1431d5-53bcbac7
emacs-filesystem-25.3-3.fc26.noarch
fontawesome-fonts-4.7.0-2.fc26.noarch
fontawesome-fonts-web-4.7.0-2.fc26.noarch
tzdata-java-2017c-1.fc26.noarch
rpmconf-base-1.0.19-1.fc26.noarch
glibc-2.25-12.fc26.s390x
info-6.3-3.fc26.s390x
sqlite-libs-3.20.1-1.fc26.s390x
texlive-lib-2016-33.20160520.fc26.1.s390x
sed-4.4-1.fc26.s390x
libicu-57.1-7.fc26.s390x
libcap-ng-0.7.8-3.fc26.s390x
nettle-3.3-2.fc26.s390x
libidn2-2.0.4-1.fc26.s390x
lcms2-2.8-3.fc26.s390x
dbus-libs-1.11.18-1.fc26.s390x
perl-Exporter-5.72-367.fc26.noarch
unzip-6.0-34.fc26.s390x
iproute-4.11.0-1.fc26.s390x
zip-3.0-18.fc26.s390x
perl-constant-1.33-368.fc26.noarch
perl-MIME-Base64-3.15-366.fc26.s390x
lua-posix-33.3.1-4.fc26.s390x
bzip2-1.0.6-22.fc26.s390x
libstdc++-devel-7.2.1-2.fc26.s390x
hyphen-2.8.8-6.fc26.s390x
libdvdread-5.0.3-4.fc26.s390x
libcollection-0.7.0-34.fc26.s390x
libdvdnav-5.0.3-5.fc26.s390x
perl-version-0.99.18-1.fc26.s390x
perl-Encode-2.88-6.fc26.s390x
automake-1.15-9.fc26.noarch
plymouth-core-libs-0.9.3-0.7.20160620git0e65b86c.fc26.s390x
hesiod-3.2.1-7.fc26.s390x
jasper-libs-2.0.14-1.fc26.s390x
mozjs17-17.0.0-18.fc26.s390x
fontconfig-2.12.6-4.fc26.s390x
harfbuzz-1.4.4-1.fc26.s390x
alsa-lib-1.1.4.1-1.fc26.s390x
make-4.2.1-2.fc26.s390x
gobject-introspection-1.52.1-1.fc26.s390x
hicolor-icon-theme-0.15-5.fc26.noarch
gdk-pixbuf2-2.36.9-1.fc26.s390x
libgusb-0.2.11-1.fc26.s390x
libtalloc-2.1.10-2.fc26.s390x
libdhash-0.5.0-34.fc26.s390x
python2-bcrypt-3.1.4-2.fc26.s390x
PyYAML-3.12-3.fc26.s390x
nss-softokn-freebl-3.34.0-1.0.fc26.s390x
kernel-modules-4.13.16-202.fc26.s390x
git-2.13.6-2.fc26.s390x
gnupg2-smime-2.2.3-1.fc26.s390x
openssl-devel-1.1.0g-1.fc26.s390x
python2-dnf-plugins-extras-common-2.0.4-1.fc26.noarch
copy-jdk-configs-3.3-2.fc26.noarch
glusterfs-client-xlators-3.10.8-1.fc26.s390x
libcurl-7.53.1-13.fc26.s390x
bind-libs-lite-9.11.1-4.P3.fc26.s390x
glusterfs-extra-xlators-3.10.8-1.fc26.s390x
python3-setuptools-37.0.0-1.fc26.noarch
kernel-core-4.14.8-200.fc26.s390x
pkgconf-1.3.12-1.fc26.s390x
NetworkManager-1.8.2-4.fc26.s390x
libjpeg-turbo-devel-1.5.3-1.fc26.s390x
lua-5.3.4-7.fc26.s390x
boost-thread-1.63.0-10.fc26.s390x
wget-1.19.2-2.fc26.s390x
libwebp-0.6.1-1.fc26.s390x
kernel-devel-4.14.8-200.fc26.s390x
python3-lxml-4.1.1-1.fc26.s390x
python3-ordered-set-2.0.0-6.fc26.noarch
python3-rpmconf-1.0.19-1.fc26.noarch
python-offtrac-0.1.0-9.fc26.noarch
python2-pycparser-2.14-10.fc26.noarch
python2-sphinx-theme-alabaster-0.7.9-3.fc26.noarch
python2-pysocks-1.6.7-1.fc26.noarch
lua-lpeg-1.0.1-2.fc26.s390x
poppler-0.52.0-10.fc26.s390x
libproxy-0.4.15-2.fc26.s390x
crontabs-1.11-14.20150630git.fc26.noarch
java-1.8.0-openjdk-headless-1.8.0.151-1.b12.fc26.s390x
libev-4.24-2.fc26.s390x
libsigsegv-2.11-1.fc26.s390x
fedora-cert-0.6.0.1-2.fc26.noarch
drpm-0.3.0-6.fc26.s390x
createrepo_c-libs-0.10.0-9.fc26.s390x
python2-cccolutils-1.5-3.fc26.s390x
m17n-lib-1.7.0-6.fc26.s390x
lsscsi-0.28-4.fc26.s390x
python2-koji-1.14.0-1.fc26.noarch
python3-koji-1.14.0-1.fc26.noarch
python3-gpg-1.8.0-12.fc26.s390x
sg3_utils-libs-1.42-1.fc26.s390x
SDL2-2.0.7-2.fc26.s390x
util-linux-2.30.2-1.fc26.s390x
rpcbind-0.2.4-8.rc2.fc26.s390x
s390utils-mon_statd-1.36.1-3.fc26.s390x
GConf2-3.2.6-17.fc26.s390x
systemd-container-233-7.fc26.s390x
usermode-1.111-9.fc26.s390x
pcre-utf32-8.41-3.fc26.s390x
libXt-1.1.5-4.fc26.s390x
libXpm-3.5.12-2.fc26.s390x
at-spi2-core-2.24.1-1.fc26.s390x
cairo-1.14.10-1.fc26.s390x
texlive-kpathsea-bin-svn40473-33.20160520.fc26.2.s390x
texlive-ifluatex-svn41346-33.fc26.2.noarch
texlive-babel-svn40706-33.fc26.2.noarch
texlive-colortbl-svn29803.v1.0a-33.fc26.2.noarch
texlive-marvosym-svn29349.2.2a-33.fc26.2.noarch
texlive-euler-svn17261.2.5-33.fc26.2.noarch
texlive-latexconfig-svn40274-33.fc26.2.noarch
texlive-plain-svn40274-33.fc26.2.noarch
texlive-texconfig-bin-svn29741.0-33.20160520.fc26.2.noarch
giflib-4.1.6-16.fc26.s390x
texlive-microtype-svn41127-33.fc26.2.noarch
texlive-eurosym-svn17265.1.4_subrfix-33.fc26.2.noarch
texlive-symbol-svn31835.0-33.fc26.2.noarch
texlive-chngcntr-svn17157.1.0a-33.fc26.2.noarch
texlive-euenc-svn19795.0.1h-33.fc26.2.noarch
texlive-luatex-svn40963-33.fc26.2.noarch
texlive-knuth-local-svn38627-33.fc26.2.noarch
texlive-mparhack-svn15878.1.4-33.fc26.2.noarch
texlive-rcs-svn15878.0-33.fc26.2.noarch
texlive-texlive-msg-translations-svn41431-33.fc26.2.noarch
texlive-updmap-map-svn41159-33.fc26.2.noarch
texlive-geometry-svn19716.5.6-33.fc26.2.noarch
texlive-memoir-svn41203-33.fc26.2.noarch
texlive-l3kernel-svn41246-33.fc26.2.noarch
texlive-pst-eps-svn15878.1.0-33.fc26.2.noarch
texlive-pst-text-svn15878.1.00-33.fc26.2.noarch
texlive-amscls-svn36804.0-33.fc26.2.noarch
texlive-pst-slpe-svn24391.1.31-33.fc26.2.noarch
texlive-extsizes-svn17263.1.4a-33.fc26.2.noarch
texlive-xetex-def-svn40327-33.fc26.2.noarch
texlive-collection-latex-svn41011-33.20160520.fc26.2.noarch
gstreamer1-plugins-base-1.12.3-1.fc26.s390x
fpc-srpm-macros-1.1-2.fc26.noarch
xorg-x11-proto-devel-7.7-22.fc26.noarch
urw-fonts-2.4-23.fc26.noarch
atk-devel-2.24.0-1.fc26.s390x
ImageMagick-libs-6.9.9.22-1.fc26.s390x
libxcb-devel-1.12-3.fc26.s390x
libXrandr-devel-1.5.1-2.fc26.s390x
libcom_err-devel-1.43.4-2.fc26.s390x
dbus-devel-1.11.18-1.fc26.s390x
libepoxy-devel-1.4.3-1.fc26.s390x
libicu-devel-57.1-7.fc26.s390x
p11-kit-devel-0.23.9-2.fc26.s390x
rpm-build-4.13.0.2-1.fc26.s390x
libssh2-devel-1.8.0-5.fc26.s390x
graphviz-2.40.1-4.fc26.s390x
zlib-static-1.2.11-2.fc26.s390x
mesa-libgbm-devel-17.2.4-2.fc26.s390x
dracut-config-rescue-046-3.1.fc26.s390x
screen-4.6.2-1.fc26.s390x
python-osbs-client-0.39.1-1.fc26.noarch
gcc-gdb-plugin-7.2.1-2.fc26.s390x
pyparsing-2.1.10-3.fc26.noarch
python3-pyasn1-0.2.3-1.fc26.noarch
python2-html5lib-0.999-13.fc26.noarch
teamd-1.27-1.fc26.s390x
hardlink-1.3-1.fc26.s390x
chrpath-0.16-4.fc26.s390x
libgcc-7.2.1-2.fc26.s390x
python-rpm-macros-3-20.fc26.noarch
texlive-pdftex-doc-svn41149-33.fc26.2.noarch
glibc-common-2.25-12.fc26.s390x
libstdc++-7.2.1-2.fc26.s390x
nspr-4.17.0-1.fc26.s390x
grep-3.1-1.fc26.s390x
libgcrypt-1.7.9-1.fc26.s390x
libacl-2.2.52-15.fc26.s390x
cpio-2.12-4.fc26.s390x
libatomic_ops-7.4.4-2.fc26.s390x
p11-kit-0.23.9-2.fc26.s390x
gc-7.6.0-2.fc26.s390x
psmisc-22.21-9.fc26.s390x
systemd-libs-233-7.fc26.s390x
xz-5.2.3-2.fc26.s390x
perl-libs-5.24.3-395.fc26.s390x
kmod-libs-24-1.fc26.s390x
libpcap-1.8.1-3.fc26.s390x
perl-macros-5.24.3-395.fc26.s390x
perl-parent-0.236-2.fc26.noarch
perl-Text-Unidecode-1.30-2.fc26.noarch
newt-0.52.20-1.fc26.s390x
libcomps-0.1.8-3.fc26.s390x
libfontenc-1.1.3-4.fc26.s390x
ipcalc-0.2.0-1.fc26.s390x
libnfnetlink-1.0.1-9.fc26.s390x
libref_array-0.1.5-34.fc26.s390x
perl-Term-Cap-1.17-366.fc26.noarch
perl-Digest-1.17-367.fc26.noarch
perl-SelfLoader-1.23-395.fc26.noarch
perl-Pod-Simple-3.35-2.fc26.noarch
perl-URI-1.71-6.fc26.noarch
cpp-7.2.1-2.fc26.s390x
attr-2.4.47-18.fc26.s390x
gmp-c++-6.1.2-4.fc26.s390x
xapian-core-libs-1.4.4-1.fc26.s390x
system-python-3.6.3-2.fc26.s390x
harfbuzz-icu-1.4.4-1.fc26.s390x
libtevent-0.9.34-1.fc26.s390x
http-parser-2.7.1-5.fc26.s390x
libsodium-1.0.14-1.fc26.s390x
python-gssapi-1.2.0-5.fc26.s390x
nss-softokn-3.34.0-1.0.fc26.s390x
gnupg2-2.2.3-1.fc26.s390x
nss-devel-3.34.0-1.0.fc26.s390x
vim-minimal-8.0.1360-1.fc26.s390x
perl-libnet-3.11-1.fc26.noarch
kernel-devel-4.13.16-202.fc26.s390x
python2-libs-2.7.14-4.fc26.s390x
libwayland-client-1.13.0-3.fc26.s390x
python3-dnf-2.7.5-2.fc26.noarch
glusterfs-fuse-3.10.8-1.fc26.s390x
pcre2-utf32-10.23-11.fc26.s390x
kernel-modules-4.14.8-200.fc26.s390x
pkgconf-pkg-config-1.3.12-1.fc26.s390x
NetworkManager-ppp-1.8.2-4.fc26.s390x
wayland-devel-1.13.0-3.fc26.s390x
kernel-4.14.8-200.fc26.s390x
boost-random-1.63.0-10.fc26.s390x
libmicrohttpd-0.9.58-1.fc26.s390x
mailx-12.5-24.fc26.s390x
NetworkManager-glib-1.8.2-4.fc26.s390x
libcroco-0.6.12-1.fc26.s390x
libssh2-1.8.0-5.fc26.s390x
json-glib-1.2.6-1.fc26.s390x
libevent-2.0.22-3.fc26.s390x
gdk-pixbuf2-modules-2.36.9-1.fc26.s390x
colord-libs-1.3.5-1.fc26.s390x
python3-magic-5.30-11.fc26.noarch
python3-gobject-base-3.24.1-1.fc26.s390x
python3-pyroute2-0.4.13-1.fc26.noarch
python3-pysocks-1.6.7-1.fc26.noarch
python2-click-6.7-3.fc26.noarch
python-munch-2.1.0-2.fc26.noarch
python2-ply-3.9-3.fc26.noarch
python2-snowballstemmer-1.2.1-3.fc26.noarch
python-magic-5.30-11.fc26.noarch
python-beautifulsoup4-4.6.0-1.fc26.noarch
python2-gitdb-2.0.3-1.fc26.noarch
librados-devel-10.2.7-2.fc26.s390x
libcacard-2.5.3-1.fc26.s390x
libmodman-2.0.1-13.fc26.s390x
zziplib-0.13.62-8.fc26.s390x
lksctp-tools-1.0.16-6.fc26.s390x
procmail-3.22-44.fc26.s390x
libthai-0.1.25-2.fc26.s390x
libpipeline-1.4.1-3.fc26.s390x
python2-pycurl-7.43.0-8.fc26.s390x
deltarpm-3.6-19.fc26.s390x
subversion-libs-1.9.7-1.fc26.s390x
python-krbV-1.0.90-13.fc26.s390x
m17n-db-1.7.0-8.fc26.noarch
linux-atm-libs-2.5.1-17.fc26.s390x
python2-rpm-4.13.0.2-1.fc26.s390x
python2-librepo-1.8.0-1.fc26.s390x
python2-dnf-plugins-core-2.1.5-1.fc26.noarch
qrencode-libs-3.4.4-1.fc26.s390x
s390utils-iucvterm-1.36.1-3.fc26.s390x
libsmartcols-2.30.2-1.fc26.s390x
dbus-1.11.18-1.fc26.s390x
systemd-udev-233-7.fc26.s390x
device-mapper-event-1.02.137-6.fc26.s390x
polkit-0.113-8.fc26.s390x
mock-1.4.7-2.fc26.noarch
libwmf-lite-0.2.8.4-53.fc26.s390x
libXcomposite-0.4.4-9.fc26.s390x
libXcursor-1.1.14-8.fc26.s390x
at-spi2-atk-2.24.1-1.fc26.s390x
pango-1.40.12-1.fc26.s390x
texlive-metafont-bin-svn40987-33.20160520.fc26.2.s390x
texlive-url-svn32528.3.4-33.fc26.2.noarch
texlive-fp-svn15878.0-33.fc26.2.noarch
texlive-latex-fonts-svn28888.0-33.fc26.2.noarch
texlive-mptopdf-bin-svn18674.0-33.20160520.fc26.2.noarch
texlive-fancybox-svn18304.1.4-33.fc26.2.noarch
texlive-lua-alt-getopt-svn29349.0.7.0-33.fc26.2.noarch
texlive-tex-bin-svn40987-33.20160520.fc26.2.s390x
texlive-texconfig-svn40768-33.fc26.2.noarch
texlive-wasy2-ps-svn35830.0-33.fc26.2.noarch
texlive-psfrag-svn15878.3.04-33.fc26.2.noarch
texlive-helvetic-svn31835.0-33.fc26.2.noarch
texlive-times-svn35058.0-33.fc26.2.noarch
texlive-cite-svn36428.5.5-33.fc26.2.noarch
texlive-fancyhdr-svn15878.3.1-33.fc26.2.noarch
texlive-luatex-bin-svn41091-33.20160520.fc26.2.s390x
texlive-lm-math-svn36915.1.959-33.fc26.2.noarch
texlive-ntgclass-svn15878.2.1a-33.fc26.2.noarch
texlive-sansmath-svn17997.1.1-33.fc26.2.noarch
texlive-textcase-svn15878.0-33.fc26.2.noarch
texlive-unicode-data-svn39808-33.fc26.2.noarch
texlive-breakurl-svn29901.1.40-33.fc26.2.noarch
texlive-latex-svn40218-33.fc26.2.noarch
texlive-lualatex-math-svn40621-33.fc26.2.noarch
texlive-pst-coil-svn37377.1.07-33.fc26.2.noarch
texlive-pst-plot-svn41242-33.fc26.2.noarch
texlive-unicode-math-svn38462-33.fc26.2.noarch
texlive-pst-blur-svn15878.2.0-33.fc26.2.noarch
texlive-cm-super-svn15878.0-33.fc26.2.noarch
texlive-wasysym-svn15878.2.0-33.fc26.2.noarch
texlive-collection-fontsrecommended-svn35830.0-33.20160520.fc26.2.noarch
libXv-1.0.11-2.fc26.s390x
ghc-srpm-macros-1.4.2-5.fc26.noarch
latex2html-2017.2-2.fc26.noarch
libXau-devel-1.0.8-7.fc26.s390x
libXcursor-devel-1.1.14-8.fc26.s390x
graphite2-devel-1.3.10-1.fc26.s390x
pixman-devel-0.34.0-3.fc26.s390x
wayland-protocols-devel-1.9-1.fc26.noarch
mesa-libGLES-devel-17.2.4-2.fc26.s390x
redhat-rpm-config-63-1.fc26.noarch
vte291-devel-0.48.4-1.fc26.s390x
ceph-devel-compat-10.2.7-2.fc26.s390x
lzo-devel-2.08-9.fc26.s390x
libiscsi-devel-1.15.0-3.fc26.s390x
libfdt-devel-1.4.5-1.fc26.s390x
dnsmasq-2.76-5.fc26.s390x
avahi-autoipd-0.6.32-7.fc26.s390x
rpm-plugin-systemd-inhibit-4.13.0.2-1.fc26.s390x
gcc-c++-7.2.1-2.fc26.s390x
python2-ndg_httpsclient-0.4.0-7.fc26.noarch
gettext-0.19.8.1-9.fc26.s390x
btrfs-progs-4.9.1-2.fc26.s390x
fedora-logos-26.0.1-1.fc26.s390x
dejagnu-1.6-2.fc26.noarch
libaio-devel-0.3.110-7.fc26.s390x
dos2unix-7.3.4-2.fc26.s390x
distribution-gpg-keys-1.15-1.fc26.noarch
python-sphinx-locale-1.5.5-1.fc26.noarch
python2-rpm-macros-3-20.fc26.noarch
libxml2-2.9.4-2.fc26.s390x
popt-1.16-12.fc26.s390x
tar-1.29-5.fc26.s390x
avahi-libs-0.6.32-7.fc26.s390x
m4-1.4.18-3.fc26.s390x
perl-Socket-2.024-2.fc26.s390x
perl-Time-Local-1.250-2.fc26.noarch
libmetalink-0.1.3-2.fc26.s390x
jbigkit-libs-2.1-6.fc26.s390x
netpbm-10.80.00-2.fc26.s390x
perl-Digest-MD5-2.55-3.fc26.s390x
perl-Getopt-Long-2.49.1-2.fc26.noarch
libglvnd-opengl-1.0.0-1.fc26.s390x
libattr-devel-2.4.47-18.fc26.s390x
teckit-2.5.1-16.fc26.s390x
python3-six-1.10.0-9.fc26.noarch
python3-libcomps-0.1.8-3.fc26.s390x
gtk-update-icon-cache-3.22.21-2.fc26.s390x
python3-3.6.3-2.fc26.s390x
python3-pyparsing-2.1.10-3.fc26.noarch
python2-markupsafe-0.23-13.fc26.s390x
python2-mock-2.0.0-4.fc26.noarch
python2-yubico-1.3.2-7.fc26.noarch
python2-smmap-2.0.3-1.fc26.noarch
librbd-devel-10.2.7-2.fc26.s390x
pigz-2.3.4-2.fc26.s390x
gcc-7.2.1-2.fc26.s390x
libnghttp2-1.21.1-1.fc26.s390x
cups-libs-2.2.2-7.fc26.s390x
libnfsidmap-0.27-1.fc26.s390x
ykpers-1.18.0-2.fc26.s390x
python3-librepo-1.8.0-1.fc26.s390x
systemtap-runtime-3.2-2.fc26.s390x
geoclue2-2.4.5-4.fc26.s390x
initscripts-9.72-1.fc26.s390x
plymouth-0.9.3-0.7.20160620git0e65b86c.fc26.s390x
ebtables-2.0.10-22.fc26.s390x
gssproxy-0.7.0-9.fc26.s390x
libXext-1.3.3-5.fc26.s390x
mesa-libEGL-17.2.4-2.fc26.s390x
texlive-texlive.infra-bin-svn40312-33.20160520.fc26.2.s390x
texlive-thumbpdf-svn34621.3.16-33.fc26.2.noarch
texlive-carlisle-svn18258.0-33.fc26.2.noarch
texlive-gsftopk-svn40768-33.fc26.2.noarch
texlive-pdftex-svn41149-33.fc26.2.noarch
texlive-crop-svn15878.1.5-33.fc26.2.noarch
texlive-pxfonts-svn15878.0-33.fc26.2.noarch
texlive-enctex-svn34957.0-33.fc26.2.noarch
texlive-kastrup-svn15878.0-33.fc26.2.noarch
texlive-pspicture-svn15878.0-33.fc26.2.noarch
texlive-varwidth-svn24104.0.92-33.fc26.2.noarch
texlive-currfile-svn40725-33.fc26.2.noarch
texlive-pst-grad-svn15878.1.06-33.fc26.2.noarch
texlive-latex-bin-svn41438-33.fc26.2.noarch
texlive-ltxmisc-svn21927.0-33.fc26.2.noarch
lasi-1.1.2-7.fc26.s390x
adwaita-icon-theme-3.24.0-2.fc26.noarch
xz-devel-5.2.3-2.fc26.s390x
xorg-x11-fonts-Type1-7.5-17.fc26.noarch
libXi-devel-1.7.9-2.fc26.s390x
at-spi2-atk-devel-2.24.1-1.fc26.s390x
pango-devel-1.40.12-1.fc26.s390x
libcacard-devel-2.5.3-1.fc26.s390x
libseccomp-devel-2.3.2-1.fc26.s390x
subversion-1.9.7-1.fc26.s390x
sudo-1.8.21p2-1.fc26.s390x
pykickstart-2.35-2.fc26.noarch
e2fsprogs-1.43.4-2.fc26.s390x
libstdc++-static-7.2.1-2.fc26.s390x
libbsd-0.8.3-3.fc26.s390x
c-ares-1.13.0-1.fc26.s390x
python2-pyxdg-0.25-12.fc26.noarch
nss-softokn-freebl-devel-3.34.0-1.0.fc26.s390x
python2-rpkg-1.51-2.fc26.noarch
strace-4.20-1.fc26.s390x
valgrind-3.13.0-12.fc26.s390x
libsss_idmap-1.16.0-4.fc26.s390x
gnutls-c++-3.5.16-4.fc26.s390x
libwayland-server-1.13.0-3.fc26.s390x
dhcp-client-4.3.5-10.fc26.s390x
bind-libs-9.11.1-4.P3.fc26.s390x
man-pages-4.09-4.fc26.noarch
gpg-pubkey-a29cb19c-53bcbba6
quota-nls-4.03-9.fc26.noarch
qt5-srpm-macros-5.8.0-2.fc26.noarch
xz-libs-5.2.3-2.fc26.s390x
gmp-6.1.2-4.fc26.s390x
audit-libs-2.8.1-1.fc26.s390x
file-5.30-11.fc26.s390x
libusbx-1.0.21-2.fc26.s390x
binutils-2.27-28.fc26.s390x
perl-Errno-1.25-395.fc26.s390x
perl-HTTP-Tiny-0.070-2.fc26.noarch
xml-common-0.6.3-45.fc26.noarch
opus-1.2.1-1.fc26.s390x
kernel-devel-4.13.13-200.fc26.s390x
perl-podlators-4.09-2.fc26.noarch
flac-libs-1.3.2-2.fc26.s390x
libacl-devel-2.2.52-15.fc26.s390x
coreutils-common-8.27-7.fc26.s390x
cracklib-2.9.6-5.fc26.s390x
pyliblzma-0.5.3-17.fc26.s390x
libnotify-0.7.7-2.fc26.s390x
python3-idna-2.5-1.fc26.noarch
python3-pyOpenSSL-16.2.0-6.fc26.noarch
python2-pbr-1.10.0-4.fc26.noarch
pyusb-1.0.0-4.fc26.noarch
python2-fedora-0.9.0-6.fc26.noarch
librbd1-10.2.7-2.fc26.s390x
pcre-cpp-8.41-3.fc26.s390x
glibc-devel-2.25-12.fc26.s390x
libnfs-1.9.8-3.fc26.s390x
libsolv-0.6.30-2.fc26.s390x
python3-pycurl-7.43.0-8.fc26.s390x
libyubikey-1.13-3.fc26.s390x
rpmlint-1.10-5.fc26.noarch
python2-pygpgme-0.3-22.fc26.s390x
s390utils-base-1.36.1-3.fc26.s390x
ppp-2.4.7-11.fc26.s390x
s390utils-cpuplugd-1.36.1-3.fc26.s390x
nfs-utils-2.1.1-6.rc6.fc26.s390x
libXrender-0.9.10-2.fc26.s390x
libglvnd-gles-1.0.0-1.fc26.s390x
texlive-texlive.infra-svn41280-33.fc26.2.noarch
texlive-lm-svn28119.2.004-33.fc26.2.noarch
texlive-babelbib-svn25245.1.31-33.fc26.2.noarch
texlive-index-svn24099.4.1beta-33.fc26.2.noarch
texlive-pdftex-bin-svn40987-33.20160520.fc26.2.s390x
texlive-csquotes-svn39538-33.fc26.2.noarch
texlive-rsfs-svn15878.0-33.fc26.2.noarch
texlive-etex-svn37057.0-33.fc26.2.noarch
texlive-knuth-lib-svn35820.0-33.fc26.2.noarch
texlive-pst-math-svn34786.0.63-33.fc26.2.noarch
texlive-utopia-svn15878.0-33.fc26.2.noarch
texlive-eso-pic-svn37925.2.0g-33.fc26.2.noarch
texlive-pst-fill-svn15878.1.01-33.fc26.2.noarch
texlive-latex-bin-bin-svn14050.0-33.20160520.fc26.2.noarch
texlive-jknapltx-svn19440.0-33.fc26.2.noarch
texlive-collection-latexrecommended-svn35765.0-33.20160520.fc26.2.noarch
adwaita-cursor-theme-3.24.0-2.fc26.noarch
xorg-x11-fonts-ISO8859-1-100dpi-7.5-17.fc26.noarch
libXcomposite-devel-0.4.4-9.fc26.s390x
at-spi2-core-devel-2.24.1-1.fc26.s390x
harfbuzz-devel-1.4.4-1.fc26.s390x
rpmdevtools-8.10-2.fc26.noarch
texi2html-5.0-5.fc26.noarch
libnfs-devel-1.9.8-3.fc26.s390x
firewalld-0.4.4.5-1.fc26.noarch
wpa_supplicant-2.6-12.fc26.s390x
systemtap-sdt-devel-3.2-2.fc26.s390x
newt-python-0.52.20-1.fc26.s390x
perl-Mozilla-CA-20160104-4.fc26.noarch
pth-2.0.7-28.fc26.s390x
python3-pyxdg-0.25-12.fc26.noarch
nss-softokn-devel-3.34.0-1.0.fc26.s390x
fedpkg-1.30-4.fc26.noarch
timedatex-0.4-3.fc26.s390x
libjpeg-turbo-1.5.3-1.fc26.s390x
glusterfs-cli-3.10.8-1.fc26.s390x
libsss_nss_idmap-1.16.0-4.fc26.s390x
gdb-8.0.1-33.fc26.s390x
dnf-yum-2.7.5-2.fc26.noarch
perl-Data-Dumper-2.161-3.fc26.s390x
python-async-0.6.1-9.fc22.s390x
poppler-data-0.4.7-7.fc26.noarch
ocaml-srpm-macros-4-2.fc26.noarch
libuuid-2.30.2-1.fc26.s390x
libgpg-error-1.25-2.fc26.s390x
libassuan-2.4.3-2.fc26.s390x
graphite2-1.3.10-1.fc26.s390x
perl-Text-Tabs+Wrap-2013.0523-366.fc26.noarch
perl-Error-0.17024-8.fc26.noarch
which-2.21-2.fc26.s390x
libXau-1.0.8-7.fc26.s390x
orc-0.4.27-1.fc26.s390x
perl-Pod-Perldoc-3.28-1.fc26.noarch
libsndfile-1.0.28-6.fc26.s390x
patch-2.7.5-4.fc26.s390x
gzip-1.8-2.fc26.s390x
python-ipaddress-1.0.16-4.fc26.noarch
yum-metadata-parser-1.1.4-18.fc26.s390x
python3-dbus-1.2.4-6.fc26.s390x
python3-cryptography-2.0.2-2.fc26.s390x
python3-kickstart-2.35-2.fc26.noarch
python2-imagesize-0.7.1-5.fc26.noarch
python2-jinja2-2.9.6-1.fc26.noarch
libradosstriper-devel-10.2.7-2.fc26.s390x
soundtouch-1.9.2-4.fc26.s390x
glibc-headers-2.25-12.fc26.s390x
libndp-1.6-2.fc26.s390x
rpm-4.13.0.2-1.fc26.s390x
rest-0.8.0-2.fc26.s390x
libvisual-0.4.0-21.fc26.s390x
python2-hawkey-0.11.1-1.fc26.s390x
dnf-plugins-core-2.1.5-1.fc26.noarch
fakeroot-libs-1.22-1.fc26.s390x
device-mapper-event-libs-1.02.137-6.fc26.s390x
cyrus-sasl-2.1.26-32.fc26.s390x
kernel-modules-4.13.13-200.fc26.s390x
cronie-anacron-1.5.1-5.fc26.s390x
libpath_utils-0.2.1-34.fc26.s390x
libX11-common-1.6.5-2.fc26.noarch
libXft-2.3.2-5.fc26.s390x
gtk2-2.24.31-4.fc26.s390x
texlive-etoolbox-svn38031.2.2a-33.fc26.2.noarch
texlive-multido-svn18302.1.42-33.fc26.2.noarch
texlive-glyphlist-svn28576.0-33.fc26.2.noarch
texlive-setspace-svn24881.6.7a-33.fc26.2.noarch
texlive-mathtools-svn38833-33.fc26.2.noarch
texlive-ncntrsbk-svn31835.0-33.fc26.2.noarch
texlive-dvisvgm-def-svn41011-33.fc26.2.noarch
texlive-ifetex-svn24853.1.2-33.fc26.2.noarch
texlive-parskip-svn19963.2.0-33.fc26.2.noarch
texlive-bera-svn20031.0-33.fc26.2.noarch
texlive-pgf-svn40966-33.fc26.2.noarch
texlive-auto-pst-pdf-svn23723.0.6-33.fc26.2.noarch
texlive-ctable-svn38672-33.fc26.2.noarch
texlive-typehtml-svn17134.0-33.fc26.2.noarch
mesa-libGLES-17.2.4-2.fc26.s390x
vte291-0.48.4-1.fc26.s390x
libdrm-devel-2.4.88-1.fc26.s390x
libcephfs_jni1-10.2.7-2.fc26.s390x
bzip2-devel-1.0.6-22.fc26.s390x
expat-devel-2.2.4-1.fc26.s390x
libsepol-devel-2.6-2.fc26.s390x
glib2-static-2.52.3-2.fc26.s390x
virglrenderer-devel-0.6.0-1.20170210git76b3da97b.fc26.s390x
yum-utils-1.1.31-512.fc26.noarch
parted-3.2-24.fc26.s390x
python3-beautifulsoup4-4.6.0-1.fc26.noarch
python-bunch-1.0.1-10.fc26.noarch
perl-Time-HiRes-1.9746-1.fc26.s390x
lz4-1.8.0-1.fc26.s390x
nss-util-3.34.0-1.0.fc26.s390x
openssh-clients-7.5p1-4.fc26.s390x
chrony-3.2-1.fc26.s390x
dnf-conf-2.7.5-2.fc26.noarch
glusterfs-server-3.10.8-1.fc26.s390x
sssd-client-1.16.0-4.fc26.s390x
man-db-2.7.6.1-8.fc26.s390x
bodhi-client-2.12.2-3.fc26.noarch
perl-Module-CoreList-5.20171120-1.fc26.noarch
hawkey-0.6.4-3.fc25.s390x
python-srpm-macros-3-20.fc26.noarch
perl-srpm-macros-1-21.fc26.noarch
expat-2.2.4-1.fc26.s390x
chkconfig-1.10-1.fc26.s390x
findutils-4.6.0-12.fc26.s390x
mesa-libwayland-egl-17.2.4-2.fc26.s390x
procps-ng-3.3.10-13.fc26.s390x
mesa-libglapi-17.2.4-2.fc26.s390x
perl-Unicode-Normalize-1.25-366.fc26.s390x
perl-IO-Socket-IP-0.39-1.fc26.noarch
hunspell-en-US-0.20140811.1-6.fc26.noarch
libxcb-1.12-3.fc26.s390x
libgo-devel-7.2.1-2.fc26.s390x
perl-Pod-Escapes-1.07-366.fc26.noarch
perl-Pod-Usage-1.69-2.fc26.noarch
libtheora-1.1.1-15.fc26.s390x
tcp_wrappers-7.6-85.fc26.s390x
coreutils-8.27-7.fc26.s390x
libmount-2.30.2-1.fc26.s390x
python2-iniparse-0.4-24.fc26.noarch
python2-decorator-4.0.11-2.fc26.noarch
ModemManager-glib-1.6.10-1.fc26.s390x
python3-decorator-4.0.11-2.fc26.noarch
python3-cffi-1.9.1-2.fc26.s390x
python-bugzilla-cli-2.1.0-1.fc26.noarch
python2-funcsigs-1.0.2-5.fc26.noarch
python2-babel-2.3.4-5.fc26.noarch
python-bugzilla-2.1.0-1.fc26.noarch
libradosstriper1-10.2.7-2.fc26.s390x
snappy-1.1.4-3.fc26.s390x
dtc-1.4.5-1.fc26.s390x
libmpcdec-1.2.6-17.fc26.s390x
rpm-libs-4.13.0.2-1.fc26.s390x
python-urlgrabber-3.10.1-11.fc26.noarch
sysfsutils-2.1.0-20.fc26.s390x
python3-hawkey-0.11.1-1.fc26.s390x
python3-dnf-plugins-core-2.1.5-1.fc26.noarch
ethtool-4.13-1.fc26.s390x
iputils-20161105-5.fc26.s390x
plymouth-scripts-0.9.3-0.7.20160620git0e65b86c.fc26.s390x
cronie-1.5.1-5.fc26.s390x
libini_config-1.3.1-34.fc26.s390x
libX11-1.6.5-2.fc26.s390x
libglvnd-egl-1.0.0-1.fc26.s390x
texlive-kpathsea-svn41139-33.fc26.2.noarch
texlive-thumbpdf-bin-svn6898.0-33.20160520.fc26.2.noarch
texlive-subfig-svn15878.1.3-33.fc26.2.noarch
texlive-gsftopk-bin-svn40473-33.20160520.fc26.2.s390x
texlive-tex-ini-files-svn40533-33.fc26.2.noarch
texlive-qstest-svn15878.0-33.fc26.2.noarch
texlive-palatino-svn31835.0-33.fc26.2.noarch
texlive-ec-svn25033.1.0-33.fc26.2.noarch
texlive-iftex-svn29654.0.2-33.fc26.2.noarch
texlive-pslatex-svn16416.0-33.fc26.2.noarch
texlive-algorithms-svn38085.0.1-33.fc26.2.noarch
texlive-filehook-svn24280.0.5d-33.fc26.2.noarch
texlive-pst-node-svn40743-33.fc26.2.noarch
texlive-rotating-svn16832.2.16b-33.fc26.2.noarch
texlive-seminar-svn34011.1.62-33.fc26.2.noarch
gtk3-3.22.21-2.fc26.s390x
libuuid-devel-2.30.2-1.fc26.s390x
java-1.8.0-openjdk-1.8.0.151-1.b12.fc26.s390x
libXinerama-devel-1.1.3-7.fc26.s390x
emacs-common-25.3-3.fc26.s390x
gtk3-devel-3.22.21-2.fc26.s390x
fedora-packager-0.6.0.1-2.fc26.noarch
libxml2-devel-2.9.4-2.fc26.s390x
snappy-devel-1.1.4-3.fc26.s390x
python2-dnf-plugin-migrate-2.1.5-1.fc26.noarch
authconfig-7.0.1-2.fc26.s390x
newt-python3-0.52.20-1.fc26.s390x
python-decoratortools-1.8-13.fc26.noarch
python-systemd-doc-234-1.fc26.s390x
openssl-libs-1.1.0g-1.fc26.s390x
git-core-2.13.6-2.fc26.s390x
python3-dnf-plugin-system-upgrade-2.0.4-1.fc26.noarch
glusterfs-libs-3.10.8-1.fc26.s390x
ca-certificates-2017.2.20-1.0.fc26.noarch
unbound-libs-1.6.7-1.fc26.s390x
libsss_certmap-1.16.0-4.fc26.s390x
glusterfs-api-devel-3.10.8-1.fc26.s390x
selinux-policy-targeted-3.13.1-260.17.fc26.noarch
publicsuffix-list-dafsa-20171028-1.fc26.noarch
gpg-pubkey-a0a7badb-52844296
gpg-pubkey-e372e838-56fd7943
gpg-pubkey-3b921d09-57a87096
google-roboto-slab-fonts-1.100263-0.5.20150923git.fc26.noarch
libreport-filesystem-2.9.1-3.fc26.s390x
glibc-all-langpacks-2.25-12.fc26.s390x
libcom_err-1.43.4-2.fc26.s390x
libffi-3.1-12.fc26.s390x
keyutils-libs-1.5.10-1.fc26.s390x
diffutils-3.5-3.fc26.s390x
apr-util-1.5.4-6.fc26.s390x
bluez-libs-5.46-6.fc26.s390x
libksba-1.3.5-3.fc26.s390x
ncurses-6.0-8.20170212.fc26.s390x
gsm-1.0.17-1.fc26.s390x
libteam-1.27-1.fc26.s390x
perl-Fedora-VSP-0.001-5.fc26.noarch
libusb-0.1.5-8.fc26.s390x
acl-2.2.52-15.fc26.s390x
dwz-0.12-3.fc26.s390x
libblkid-2.30.2-1.fc26.s390x
polkit-libs-0.113-8.fc26.s390x
dbus-python-1.2.4-6.fc26.s390x
gts-0.7.6-30.20121130.fc26.s390x
libfdisk-2.30.2-1.fc26.s390x
python3-pycparser-2.14-10.fc26.noarch
python3-bugzilla-2.1.0-1.fc26.noarch
python2-docutils-0.13.1-4.fc26.noarch
pytz-2016.10-4.fc26.noarch
python2-requests-2.13.0-1.fc26.noarch
libcephfs-devel-10.2.7-2.fc26.s390x
ncurses-c++-libs-6.0-8.20170212.fc26.s390x
GeoIP-1.6.11-1.fc26.s390x
liblockfile-1.09-5.fc26.s390x
rpm-plugin-selinux-4.13.0.2-1.fc26.s390x
systemtap-devel-3.2-2.fc26.s390x
libsysfs-2.1.0-20.fc26.s390x
libdnf-0.11.1-1.fc26.s390x
libgfortran-7.2.1-2.fc26.s390x
mesa-libgbm-17.2.4-2.fc26.s390x
dracut-046-3.1.fc26.s390x
lvm2-libs-2.02.168-6.fc26.s390x
libXfixes-5.0.3-2.fc26.s390x
brlapi-0.6.6-5.fc26.s390x
texlive-metafont-svn40793-33.fc26.2.noarch
texlive-graphics-cfg-svn40269-33.fc26.2.noarch
texlive-mptopdf-svn41282-33.fc26.2.noarch
texlive-makeindex-bin-svn40473-33.20160520.fc26.2.s390x
texlive-texlive-scripts-bin-svn29741.0-33.20160520.fc26.2.noarch
texlive-sauerj-svn15878.0-33.fc26.2.noarch
texlive-txfonts-svn15878.0-33.fc26.2.noarch
texlive-filecontents-svn24250.1.3-33.fc26.2.noarch
texlive-lualibs-svn40370-33.fc26.2.noarch
texlive-section-svn20180.0-33.fc26.2.noarch
texlive-ucharcat-svn38907-33.fc26.2.noarch
texlive-hyperref-svn41396-33.fc26.2.noarch
texlive-pst-3d-svn17257.1.10-33.fc26.2.noarch
texlive-oberdiek-svn41346-33.fc26.2.noarch
texlive-ae-svn15878.1.4-33.fc26.2.noarch
texlive-collection-basic-svn41149-33.20160520.fc26.2.noarch
gnat-srpm-macros-4-2.fc26.noarch
glib2-devel-2.52.3-2.fc26.s390x
netpbm-progs-10.80.00-2.fc26.s390x
libXxf86vm-devel-1.1.4-4.fc26.s390x
nettle-devel-3.3-2.fc26.s390x
cairo-gobject-devel-1.14.10-1.fc26.s390x
fedora-rpm-macros-26-2.fc26.noarch
elfutils-devel-0.169-1.fc26.s390x
libidn-devel-1.33-2.fc26.s390x
s390utils-1.36.1-3.fc26.s390x
gcc-gfortran-7.2.1-2.fc26.s390x
libtool-2.4.6-17.fc26.s390x
python3-cssselect-0.9.2-4.fc26.noarch
python2-cssselect-0.9.2-4.fc26.noarch
bison-3.0.4-6.fc26.s390x
rootfiles-8.1-20.fc26.noarch
git-core-doc-2.13.6-2.fc26.s390x
vim-enhanced-8.0.1360-1.fc26.s390x
glusterfs-3.10.8-1.fc26.s390x
boost-system-1.63.0-10.fc26.s390x
gnutls-dane-3.5.16-4.fc26.s390x
pkgconf-m4-1.3.12-1.fc26.noarch
libcurl-devel-7.53.1-13.fc26.s390x
python3-urllib3-1.20-2.fc26.noarch
libsss_autofs-1.16.0-4.fc26.s390x
=== TEST BEGIN ===
Using CC: /home/fam/bin/cc
Install prefix /var/tmp/patchew-tester-tmp-hek3vjny/src/install
BIOS directory /var/tmp/patchew-tester-tmp-hek3vjny/src/install/share/qemu
firmware path /var/tmp/patchew-tester-tmp-hek3vjny/src/install/share/qemu-firmware
binary directory /var/tmp/patchew-tester-tmp-hek3vjny/src/install/bin
library directory /var/tmp/patchew-tester-tmp-hek3vjny/src/install/lib
module directory /var/tmp/patchew-tester-tmp-hek3vjny/src/install/lib/qemu
libexec directory /var/tmp/patchew-tester-tmp-hek3vjny/src/install/libexec
include directory /var/tmp/patchew-tester-tmp-hek3vjny/src/install/include
config directory /var/tmp/patchew-tester-tmp-hek3vjny/src/install/etc
local state directory /var/tmp/patchew-tester-tmp-hek3vjny/src/install/var
Manual directory /var/tmp/patchew-tester-tmp-hek3vjny/src/install/share/man
ELF interp prefix /usr/gnemul/qemu-%M
Source path /var/tmp/patchew-tester-tmp-hek3vjny/src
GIT binary git
GIT submodules ui/keycodemapdb capstone
C compiler /home/fam/bin/cc
Host C compiler cc
C++ compiler c++
Objective-C compiler /home/fam/bin/cc
ARFLAGS rv
CFLAGS -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -g
QEMU_CFLAGS -I/usr/include/pixman-1 -Werror -DHAS_LIBSSH2_SFTP_FSYNC -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -DNCURSES_WIDECHAR -D_GNU_SOURCE -D_DEFAULT_SOURCE -m64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wexpansion-to-defined -Wendif-labels -Wno-shift-negative-value -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong -I/usr/include/p11-kit-1 -I/usr/include/libpng16 -I/usr/include/libdrm -I$(SRC_PATH)/capstone/include
LDFLAGS -Wl,--warn-common -m64 -g
make make
install install
python python -B
smbd /usr/sbin/smbd
module support no
host CPU s390x
host big endian yes
target list aarch64-softmmu alpha-softmmu arm-softmmu cris-softmmu i386-softmmu lm32-softmmu m68k-softmmu microblazeel-softmmu microblaze-softmmu mips64el-softmmu mips64-softmmu mipsel-softmmu mips-softmmu moxie-softmmu nios2-softmmu or1k-softmmu ppc64-softmmu ppcemb-softmmu ppc-softmmu s390x-softmmu sh4eb-softmmu sh4-softmmu sparc64-softmmu sparc-softmmu tricore-softmmu unicore32-softmmu x86_64-softmmu xtensaeb-softmmu xtensa-softmmu aarch64_be-linux-user aarch64-linux-user alpha-linux-user armeb-linux-user arm-linux-user cris-linux-user hppa-linux-user i386-linux-user m68k-linux-user microblazeel-linux-user microblaze-linux-user mips64el-linux-user mips64-linux-user mipsel-linux-user mips-linux-user mipsn32el-linux-user mipsn32-linux-user nios2-linux-user or1k-linux-user ppc64abi32-linux-user ppc64le-linux-user ppc64-linux-user ppc-linux-user s390x-linux-user sh4eb-linux-user sh4-linux-user sparc32plus-linux-user sparc64-linux-user sparc-linux-user tilegx-linux-user x86_64-linux-user
gprof enabled no
sparse enabled no
strip binaries yes
profiler no
static build no
SDL support yes (2.0.7)
GTK support yes (3.22.21)
GTK GL support yes
VTE support yes (0.48.4)
TLS priority NORMAL
GNUTLS support yes
GNUTLS rnd yes
libgcrypt no
libgcrypt kdf no
nettle yes (3.3)
nettle kdf yes
libtasn1 yes
curses support yes
virgl support yes
curl support yes
mingw32 support no
Audio drivers oss
Block whitelist (rw)
Block whitelist (ro)
VirtFS support yes
Multipath support no
VNC support yes
VNC SASL support yes
VNC JPEG support yes
VNC PNG support yes
xen support no
brlapi support yes
bluez support yes
Documentation yes
PIE no
vde support no
netmap support no
Linux AIO support yes
ATTR/XATTR support yes
Install blobs yes
KVM support yes
HAX support no
HVF support no
TCG support yes
TCG debug enabled no
TCG interpreter no
malloc trim support yes
RDMA support no
fdt support yes
preadv support yes
fdatasync yes
madvise yes
posix_madvise yes
libcap-ng support yes
vhost-net support yes
vhost-scsi support yes
vhost-vsock support yes
vhost-user support yes
Trace backends log
spice support no
rbd support yes
xfsctl support no
smartcard support yes
libusb yes
usb net redir yes
OpenGL support yes
OpenGL dmabufs yes
libiscsi support yes
libnfs support yes
build guest agent yes
QGA VSS support no
QGA w32 disk info no
QGA MSI support no
seccomp support yes
coroutine backend ucontext
coroutine pool yes
debug stack usage no
crypto afalg no
GlusterFS support yes
gcov gcov
gcov enabled no
TPM support yes
libssh2 support yes
TPM passthrough no
TPM emulator yes
QOM debugging yes
Live block migration yes
lzo support yes
snappy support yes
bzip2 support yes
NUMA host support no
libxml2 yes
tcmalloc support no
jemalloc support no
avx2 optimization no
replication support yes
VxHS block device no
capstone git
GEN aarch64-softmmu/config-devices.mak.tmp
GEN alpha-softmmu/config-devices.mak.tmp
GEN arm-softmmu/config-devices.mak.tmp
GEN cris-softmmu/config-devices.mak.tmp
GEN cris-softmmu/config-devices.mak
GEN i386-softmmu/config-devices.mak.tmp
GEN aarch64-softmmu/config-devices.mak
GEN lm32-softmmu/config-devices.mak.tmp
GEN arm-softmmu/config-devices.mak
GEN m68k-softmmu/config-devices.mak.tmp
GEN alpha-softmmu/config-devices.mak
GEN microblazeel-softmmu/config-devices.mak.tmp
GEN lm32-softmmu/config-devices.mak
GEN microblaze-softmmu/config-devices.mak.tmp
GEN microblazeel-softmmu/config-devices.mak
GEN mips64el-softmmu/config-devices.mak.tmp
GEN microblaze-softmmu/config-devices.mak
GEN m68k-softmmu/config-devices.mak
GEN i386-softmmu/config-devices.mak
GEN mips64-softmmu/config-devices.mak.tmp
GEN mipsel-softmmu/config-devices.mak.tmp
GEN mips-softmmu/config-devices.mak.tmp
GEN mips-softmmu/config-devices.mak
GEN mips64el-softmmu/config-devices.mak
GEN moxie-softmmu/config-devices.mak.tmp
GEN nios2-softmmu/config-devices.mak.tmp
GEN mips64-softmmu/config-devices.mak
GEN or1k-softmmu/config-devices.mak.tmp
GEN or1k-softmmu/config-devices.mak
GEN mipsel-softmmu/config-devices.mak
GEN nios2-softmmu/config-devices.mak
GEN ppc64-softmmu/config-devices.mak.tmp
GEN moxie-softmmu/config-devices.mak
GEN ppcemb-softmmu/config-devices.mak.tmp
GEN ppc-softmmu/config-devices.mak.tmp
GEN s390x-softmmu/config-devices.mak.tmp
GEN s390x-softmmu/config-devices.mak
GEN sh4eb-softmmu/config-devices.mak.tmp
GEN ppc-softmmu/config-devices.mak
GEN sh4-softmmu/config-devices.mak.tmp
GEN ppc64-softmmu/config-devices.mak
GEN ppcemb-softmmu/config-devices.mak
GEN sparc64-softmmu/config-devices.mak.tmp
GEN sparc-softmmu/config-devices.mak.tmp
GEN sparc-softmmu/config-devices.mak
GEN tricore-softmmu/config-devices.mak.tmp
GEN tricore-softmmu/config-devices.mak
GEN unicore32-softmmu/config-devices.mak.tmp
GEN sh4-softmmu/config-devices.mak
GEN x86_64-softmmu/config-devices.mak.tmp
GEN unicore32-softmmu/config-devices.mak
GEN sh4eb-softmmu/config-devices.mak
GEN xtensaeb-softmmu/config-devices.mak.tmp
GEN sparc64-softmmu/config-devices.mak
GEN xtensa-softmmu/config-devices.mak.tmp
GEN aarch64_be-linux-user/config-devices.mak.tmp
GEN xtensaeb-softmmu/config-devices.mak
GEN xtensa-softmmu/config-devices.mak
GEN aarch64-linux-user/config-devices.mak.tmp
GEN aarch64_be-linux-user/config-devices.mak
GEN alpha-linux-user/config-devices.mak.tmp
GEN x86_64-softmmu/config-devices.mak
GEN armeb-linux-user/config-devices.mak.tmp
GEN armeb-linux-user/config-devices.mak
GEN arm-linux-user/config-devices.mak.tmp
GEN cris-linux-user/config-devices.mak.tmp
GEN aarch64-linux-user/config-devices.mak
GEN hppa-linux-user/config-devices.mak.tmp
GEN arm-linux-user/config-devices.mak
GEN i386-linux-user/config-devices.mak.tmp
GEN cris-linux-user/config-devices.mak
GEN alpha-linux-user/config-devices.mak
GEN hppa-linux-user/config-devices.mak
GEN m68k-linux-user/config-devices.mak.tmp
GEN microblazeel-linux-user/config-devices.mak.tmp
GEN microblaze-linux-user/config-devices.mak.tmp
GEN i386-linux-user/config-devices.mak
GEN mips64el-linux-user/config-devices.mak.tmp
GEN microblaze-linux-user/config-devices.mak
GEN mips64-linux-user/config-devices.mak.tmp
GEN m68k-linux-user/config-devices.mak
GEN microblazeel-linux-user/config-devices.mak
GEN mips64el-linux-user/config-devices.mak
GEN mipsel-linux-user/config-devices.mak.tmp
GEN mips-linux-user/config-devices.mak.tmp
GEN mipsn32el-linux-user/config-devices.mak.tmp
GEN mipsel-linux-user/config-devices.mak
GEN mipsn32el-linux-user/config-devices.mak
GEN mipsn32-linux-user/config-devices.mak.tmp
GEN mips-linux-user/config-devices.mak
GEN nios2-linux-user/config-devices.mak.tmp
GEN mips64-linux-user/config-devices.mak
GEN mipsn32-linux-user/config-devices.mak
GEN or1k-linux-user/config-devices.mak.tmp
GEN ppc64abi32-linux-user/config-devices.mak.tmp
GEN nios2-linux-user/config-devices.mak
GEN ppc64abi32-linux-user/config-devices.mak
GEN ppc64le-linux-user/config-devices.mak.tmp
GEN or1k-linux-user/config-devices.mak
GEN ppc64-linux-user/config-devices.mak.tmp
GEN ppc64le-linux-user/config-devices.mak
GEN ppc-linux-user/config-devices.mak.tmp
GEN s390x-linux-user/config-devices.mak.tmp
GEN sh4eb-linux-user/config-devices.mak.tmp
GEN s390x-linux-user/config-devices.mak
GEN sh4-linux-user/config-devices.mak.tmp
GEN sh4eb-linux-user/config-devices.mak
GEN ppc64-linux-user/config-devices.mak
GEN ppc-linux-user/config-devices.mak
GEN sparc32plus-linux-user/config-devices.mak.tmp
GEN sparc64-linux-user/config-devices.mak.tmp
GEN sh4-linux-user/config-devices.mak
GEN sparc-linux-user/config-devices.mak.tmp
GEN tilegx-linux-user/config-devices.mak.tmp
GEN tilegx-linux-user/config-devices.mak
GEN x86_64-linux-user/config-devices.mak.tmp
GEN sparc32plus-linux-user/config-devices.mak
GEN sparc-linux-user/config-devices.mak
GEN config-host.h
GEN sparc64-linux-user/config-devices.mak
GIT ui/keycodemapdb capstone
GEN x86_64-linux-user/config-devices.mak
GEN qemu-options.def
GEN qmp-commands.h
GEN qapi-types.h
GEN qapi-visit.h
GEN qapi-event.h
GEN qmp-marshal.c
GEN qapi-types.c
GEN qapi-visit.c
GEN qapi-event.c
GEN qmp-introspect.h
GEN qmp-introspect.c
GEN trace/generated-tcg-tracers.h
GEN trace/generated-helpers-wrappers.h
Submodule 'capstone' (git://git.qemu.org/capstone.git) registered for path 'capstone'
Submodule 'ui/keycodemapdb' (git://git.qemu.org/keycodemapdb.git) registered for path 'ui/keycodemapdb'
GEN trace/generated-helpers.h
GEN trace/generated-helpers.c
Cloning into '/var/tmp/patchew-tester-tmp-hek3vjny/src/capstone'...
GEN module_block.h
GEN tests/test-qapi-types.h
GEN tests/test-qapi-visit.h
GEN tests/test-qmp-commands.h
GEN tests/test-qapi-event.h
GEN tests/test-qmp-introspect.h
GEN trace-root.h
GEN util/trace.h
GEN crypto/trace.h
GEN io/trace.h
GEN migration/trace.h
GEN block/trace.h
GEN chardev/trace.h
GEN hw/block/trace.h
GEN hw/block/dataplane/trace.h
GEN hw/char/trace.h
GEN hw/intc/trace.h
GEN hw/net/trace.h
GEN hw/virtio/trace.h
GEN hw/audio/trace.h
GEN hw/misc/trace.h
GEN hw/usb/trace.h
GEN hw/scsi/trace.h
GEN hw/nvram/trace.h
GEN hw/display/trace.h
GEN hw/input/trace.h
GEN hw/timer/trace.h
GEN hw/dma/trace.h
GEN hw/sparc/trace.h
GEN hw/sparc64/trace.h
GEN hw/sd/trace.h
GEN hw/isa/trace.h
GEN hw/mem/trace.h
GEN hw/i386/trace.h
GEN hw/i386/xen/trace.h
GEN hw/9pfs/trace.h
GEN hw/ppc/trace.h
GEN hw/pci/trace.h
GEN hw/pci-host/trace.h
GEN hw/s390x/trace.h
GEN hw/vfio/trace.h
GEN hw/acpi/trace.h
GEN hw/arm/trace.h
GEN hw/alpha/trace.h
GEN hw/xen/trace.h
GEN hw/ide/trace.h
GEN ui/trace.h
GEN audio/trace.h
GEN net/trace.h
GEN target/arm/trace.h
GEN target/i386/trace.h
GEN target/mips/trace.h
GEN target/sparc/trace.h
GEN target/s390x/trace.h
GEN target/ppc/trace.h
GEN qom/trace.h
GEN linux-user/trace.h
GEN qapi/trace.h
GEN accel/tcg/trace.h
GEN accel/kvm/trace.h
GEN nbd/trace.h
GEN scsi/trace.h
GEN trace-root.c
GEN util/trace.c
GEN crypto/trace.c
GEN io/trace.c
GEN migration/trace.c
GEN block/trace.c
GEN chardev/trace.c
GEN hw/block/trace.c
GEN hw/block/dataplane/trace.c
GEN hw/char/trace.c
GEN hw/intc/trace.c
GEN hw/net/trace.c
GEN hw/virtio/trace.c
GEN hw/audio/trace.c
GEN hw/misc/trace.c
GEN hw/usb/trace.c
GEN hw/scsi/trace.c
GEN hw/nvram/trace.c
GEN hw/display/trace.c
GEN hw/input/trace.c
GEN hw/timer/trace.c
GEN hw/dma/trace.c
GEN hw/sparc/trace.c
GEN hw/sparc64/trace.c
GEN hw/sd/trace.c
GEN hw/isa/trace.c
GEN hw/mem/trace.c
GEN hw/i386/trace.c
GEN hw/i386/xen/trace.c
GEN hw/9pfs/trace.c
GEN hw/ppc/trace.c
GEN hw/pci/trace.c
GEN hw/pci-host/trace.c
GEN hw/s390x/trace.c
GEN hw/vfio/trace.c
GEN hw/acpi/trace.c
GEN hw/arm/trace.c
GEN hw/alpha/trace.c
GEN hw/xen/trace.c
GEN hw/ide/trace.c
GEN ui/trace.c
GEN audio/trace.c
GEN net/trace.c
GEN target/arm/trace.c
GEN target/i386/trace.c
GEN target/mips/trace.c
GEN target/sparc/trace.c
GEN target/s390x/trace.c
GEN target/ppc/trace.c
GEN qom/trace.c
GEN linux-user/trace.c
GEN qapi/trace.c
GEN accel/tcg/trace.c
GEN accel/kvm/trace.c
GEN nbd/trace.c
GEN scsi/trace.c
GEN config-all-devices.mak
Cloning into '/var/tmp/patchew-tester-tmp-hek3vjny/src/ui/keycodemapdb'...
GEN ui/input-keymap-atset1-to-qcode.c
GEN ui/input-keymap-linux-to-qcode.c
GEN ui/input-keymap-qcode-to-atset1.c
GEN ui/input-keymap-qcode-to-atset2.c
GEN ui/input-keymap-qcode-to-atset3.c
CC cs.o
GEN ui/input-keymap-qcode-to-linux.c
GEN ui/input-keymap-qcode-to-qnum.c
CC utils.o
GEN ui/input-keymap-qcode-to-sun.c
GEN ui/input-keymap-qnum-to-qcode.c
GEN ui/input-keymap-usb-to-qcode.c
GEN ui/input-keymap-win32-to-qcode.c
GEN ui/input-keymap-x11-to-qcode.c
GEN ui/input-keymap-xorgevdev-to-qcode.c
GEN ui/input-keymap-xorgkbd-to-qcode.c
GEN ui/input-keymap-xorgxquartz-to-qcode.c
GEN ui/input-keymap-xorgxwin-to-qcode.c
CC SStream.o
CC MCInstrDesc.o
CC MCRegisterInfo.o
CC arch/ARM/ARMDisassembler.o
CC arch/ARM/ARMInstPrinter.o
CC arch/ARM/ARMMapping.o
CC arch/ARM/ARMModule.o
CC arch/AArch64/AArch64BaseInfo.o
CC arch/AArch64/AArch64Disassembler.o
CC arch/AArch64/AArch64InstPrinter.o
CC arch/AArch64/AArch64Mapping.o
CC arch/AArch64/AArch64Module.o
CC arch/Mips/MipsDisassembler.o
CC arch/Mips/MipsInstPrinter.o
CC arch/Mips/MipsMapping.o
CC arch/Mips/MipsModule.o
CC arch/PowerPC/PPCDisassembler.o
CC arch/PowerPC/PPCInstPrinter.o
CC arch/PowerPC/PPCMapping.o
CC arch/PowerPC/PPCModule.o
CC arch/Sparc/SparcDisassembler.o
CC arch/Sparc/SparcInstPrinter.o
CC arch/Sparc/SparcMapping.o
CC arch/Sparc/SparcModule.o
CC arch/SystemZ/SystemZDisassembler.o
CC arch/SystemZ/SystemZInstPrinter.o
CC arch/SystemZ/SystemZMapping.o
CC arch/SystemZ/SystemZModule.o
CC arch/SystemZ/SystemZMCTargetDesc.o
CC arch/X86/X86DisassemblerDecoder.o
CC arch/X86/X86Disassembler.o
CC arch/X86/X86IntelInstPrinter.o
CC arch/X86/X86ATTInstPrinter.o
CC arch/X86/X86Mapping.o
CC arch/X86/X86Module.o
CC arch/XCore/XCoreDisassembler.o
CC arch/XCore/XCoreInstPrinter.o
CC arch/XCore/XCoreMapping.o
CC arch/XCore/XCoreModule.o
CC MCInst.o
AR libcapstone.a
ar: creating /var/tmp/patchew-tester-tmp-hek3vjny/src/build/capstone/libcapstone.a
CC tests/qemu-iotests/socket_scm_helper.o
GEN docs/version.texi
GEN qemu-options.texi
GEN qemu-monitor.texi
GEN qemu-img-cmds.texi
GEN qemu-monitor-info.texi
GEN qemu-img.1
GEN qemu-nbd.8
GEN qemu-ga.8
GEN docs/interop/qemu-qmp-qapi.texi
GEN docs/interop/qemu-ga-qapi.texi
GEN docs/qemu-block-drivers.7
GEN fsdev/virtfs-proxy-helper.1
GEN qga/qapi-generated/qga-qapi-types.h
GEN qga/qapi-generated/qga-qapi-visit.h
GEN qga/qapi-generated/qga-qmp-commands.h
GEN qga/qapi-generated/qga-qapi-types.c
GEN qga/qapi-generated/qga-qapi-visit.c
GEN qga/qapi-generated/qga-qmp-marshal.c
CC qmp-introspect.o
CC qapi-types.o
CC qapi-visit.o
CC qapi-event.o
CC qapi/qapi-visit-core.o
CC qapi/qapi-dealloc-visitor.o
CC qapi/qobject-input-visitor.o
CC qapi/qobject-output-visitor.o
CC qapi/qmp-registry.o
CC qapi/qmp-dispatch.o
CC qapi/string-input-visitor.o
CC qapi/string-output-visitor.o
CC qapi/opts-visitor.o
CC qapi/qapi-clone-visitor.o
CC qapi/qmp-event.o
CC qapi/qapi-util.o
CC qobject/qnull.o
CC qobject/qnum.o
CC qobject/qstring.o
CC qobject/qdict.o
CC qobject/qlist.o
CC qobject/qbool.o
CC qobject/qlit.o
CC qobject/qjson.o
CC qobject/qobject.o
CC qobject/json-lexer.o
CC qobject/json-streamer.o
CC qobject/json-parser.o
CC trace/control.o
CC trace/qmp.o
CC util/osdep.o
CC util/cutils.o
CC util/unicode.o
CC util/qemu-timer-common.o
CC util/bufferiszero.o
CC util/lockcnt.o
CC util/aiocb.o
CC util/async.o
CC util/thread-pool.o
CC util/qemu-timer.o
CC util/main-loop.o
CC util/iohandler.o
CC util/aio-posix.o
CC util/compatfd.o
CC util/event_notifier-posix.o
CC util/mmap-alloc.o
CC util/oslib-posix.o
CC util/qemu-openpty.o
CC util/qemu-thread-posix.o
CC util/memfd.o
CC util/envlist.o
CC util/path.o
CC util/module.o
CC util/host-utils.o
CC util/bitmap.o
CC util/bitops.o
CC util/hbitmap.o
CC util/fifo8.o
CC util/acl.o
CC util/cacheinfo.o
CC util/error.o
CC util/qemu-error.o
CC util/id.o
CC util/iov.o
CC util/qemu-config.o
CC util/qemu-sockets.o
CC util/uri.o
CC util/notify.o
CC util/qemu-option.o
CC util/qemu-progress.o
CC util/keyval.o
CC util/hexdump.o
CC util/crc32c.o
CC util/uuid.o
CC util/throttle.o
CC util/getauxval.o
CC util/readline.o
CC util/rcu.o
CC util/qemu-coroutine.o
CC util/qemu-coroutine-lock.o
CC util/qemu-coroutine-io.o
CC util/qemu-coroutine-sleep.o
CC util/coroutine-ucontext.o
CC util/buffer.o
CC util/timed-average.o
CC util/base64.o
CC util/log.o
CC util/pagesize.o
CC util/qdist.o
CC util/qht.o
CC util/range.o
CC util/stats64.o
CC util/systemd.o
CC trace-root.o
CC util/trace.o
CC crypto/trace.o
CC io/trace.o
CC migration/trace.o
CC block/trace.o
CC chardev/trace.o
CC hw/block/trace.o
CC hw/block/dataplane/trace.o
CC hw/char/trace.o
CC hw/intc/trace.o
CC hw/net/trace.o
CC hw/virtio/trace.o
CC hw/audio/trace.o
CC hw/misc/trace.o
CC hw/usb/trace.o
CC hw/scsi/trace.o
CC hw/nvram/trace.o
CC hw/display/trace.o
CC hw/input/trace.o
CC hw/timer/trace.o
CC hw/dma/trace.o
CC hw/sparc/trace.o
CC hw/sparc64/trace.o
CC hw/sd/trace.o
CC hw/isa/trace.o
CC hw/mem/trace.o
CC hw/i386/trace.o
CC hw/i386/xen/trace.o
CC hw/9pfs/trace.o
CC hw/ppc/trace.o
CC hw/pci/trace.o
CC hw/pci-host/trace.o
CC hw/s390x/trace.o
CC hw/vfio/trace.o
CC hw/acpi/trace.o
CC hw/arm/trace.o
CC hw/alpha/trace.o
CC hw/xen/trace.o
CC hw/ide/trace.o
CC ui/trace.o
CC audio/trace.o
CC net/trace.o
CC target/arm/trace.o
CC target/i386/trace.o
CC target/mips/trace.o
CC target/sparc/trace.o
CC target/s390x/trace.o
CC target/ppc/trace.o
CC qom/trace.o
CC linux-user/trace.o
CC qapi/trace.o
CC accel/tcg/trace.o
CC accel/kvm/trace.o
CC nbd/trace.o
CC scsi/trace.o
CC crypto/pbkdf-stub.o
CC stubs/arch-query-cpu-def.o
CC stubs/arch-query-cpu-model-expansion.o
CC stubs/arch-query-cpu-model-comparison.o
CC stubs/arch-query-cpu-model-baseline.o
CC stubs/bdrv-next-monitor-owned.o
CC stubs/blk-commit-all.o
CC stubs/blockdev-close-all-bdrv-states.o
CC stubs/clock-warp.o
CC stubs/cpu-get-clock.o
CC stubs/cpu-get-icount.o
CC stubs/dump.o
CC stubs/error-printf.o
CC stubs/fdset.o
CC stubs/gdbstub.o
CC stubs/get-vm-name.o
CC stubs/iothread.o
CC stubs/iothread-lock.o
CC stubs/is-daemonized.o
CC stubs/linux-aio.o
CC stubs/machine-init-done.o
CC stubs/migr-blocker.o
CC stubs/change-state-handler.o
CC stubs/monitor.o
CC stubs/notify-event.o
CC stubs/qtest.o
CC stubs/replay.o
CC stubs/runstate-check.o
CC stubs/set-fd-handler.o
CC stubs/slirp.o
CC stubs/sysbus.o
CC stubs/tpm.o
CC stubs/trace-control.o
CC stubs/uuid.o
CC stubs/vm-stop.o
CC stubs/vmstate.o
CC stubs/qmp_pc_dimm.o
CC stubs/target-monitor-defs.o
CC stubs/target-get-monitor-def.o
CC stubs/pc_madt_cpu_entry.o
CC stubs/vmgenid.o
CC stubs/xen-common.o
CC stubs/xen-hvm.o
CC stubs/pci-host-piix.o
CC qemu-keymap.o
CC ui/input-keymap.o
CC contrib/ivshmem-client/ivshmem-client.o
CC contrib/ivshmem-client/main.o
CC contrib/ivshmem-server/ivshmem-server.o
CC contrib/ivshmem-server/main.o
CC qemu-nbd.o
CC block.o
CC blockjob.o
CC qemu-io-cmds.o
CC replication.o
CC block/raw-format.o
CC block/qcow.o
CC block/vdi.o
CC block/vmdk.o
CC block/cloop.o
CC block/bochs.o
CC block/vpc.o
CC block/vvfat.o
CC block/dmg.o
CC block/qcow2.o
CC block/qcow2-refcount.o
CC block/qcow2-cluster.o
CC block/qcow2-snapshot.o
CC block/qcow2-cache.o
CC block/qcow2-bitmap.o
CC block/qed.o
CC block/qed-l2-cache.o
CC block/qed-table.o
CC block/qed-cluster.o
CC block/qed-check.o
CC block/vhdx.o
CC block/vhdx-endian.o
CC block/vhdx-log.o
CC block/quorum.o
CC block/parallels.o
CC block/blkdebug.o
CC block/blkverify.o
CC block/blkreplay.o
CC block/block-backend.o
CC block/snapshot.o
CC block/qapi.o
CC block/file-posix.o
CC block/linux-aio.o
CC block/null.o
CC block/mirror.o
CC block/commit.o
CC block/io.o
CC block/throttle-groups.o
CC block/nbd.o
CC block/nbd-client.o
CC block/sheepdog.o
CC block/iscsi-opts.o
CC block/accounting.o
CC block/dirty-bitmap.o
CC block/write-threshold.o
CC block/backup.o
CC block/replication.o
CC block/throttle.o
CC block/crypto.o
CC nbd/server.o
CC nbd/client.o
CC nbd/common.o
CC scsi/utils.o
CC scsi/pr-manager.o
CC scsi/pr-manager-helper.o
CC block/iscsi.o
CC block/nfs.o
CC block/curl.o
CC block/rbd.o
CC block/gluster.o
CC block/ssh.o
CC block/dmg-bz2.o
CC crypto/init.o
CC crypto/hash.o
CC crypto/hash-nettle.o
CC crypto/hmac.o
CC crypto/hmac-nettle.o
CC crypto/aes.o
CC crypto/desrfb.o
CC crypto/cipher.o
CC crypto/tlscreds.o
CC crypto/tlscredsanon.o
CC crypto/tlscredsx509.o
CC crypto/tlssession.o
CC crypto/secret.o
CC crypto/random-gnutls.o
CC crypto/pbkdf.o
CC crypto/pbkdf-nettle.o
CC crypto/ivgen.o
CC crypto/ivgen-essiv.o
CC crypto/ivgen-plain.o
CC crypto/ivgen-plain64.o
CC crypto/afsplit.o
CC crypto/xts.o
CC crypto/block.o
CC crypto/block-qcow.o
CC crypto/block-luks.o
CC io/channel.o
CC io/channel-buffer.o
CC io/channel-command.o
CC io/channel-file.o
CC io/channel-socket.o
CC io/channel-tls.o
CC io/channel-watch.o
CC io/channel-websock.o
CC io/channel-util.o
CC io/dns-resolver.o
CC io/net-listener.o
CC io/task.o
CC qom/object.o
CC qom/container.o
CC qom/qom-qobject.o
CC qom/object_interfaces.o
GEN qemu-img-cmds.h
CC fsdev/virtfs-proxy-helper.o
CC qemu-io.o
CC fsdev/9p-marshal.o
CC fsdev/9p-iov-marshal.o
CC scsi/qemu-pr-helper.o
CC qemu-bridge-helper.o
CC blockdev.o
CC blockdev-nbd.o
CC bootdevice.o
CC iothread.o
CC qdev-monitor.o
CC device-hotplug.o
CC os-posix.o
CC bt-host.o
CC bt-vhci.o
CC dma-helpers.o
CC vl.o
CC tpm.o
CC qemu-seccomp.o
CC device_tree.o
CC qmp-marshal.o
CC qmp.o
CC hmp.o
CC cpus-common.o
CC audio/audio.o
CC audio/noaudio.o
CC audio/wavaudio.o
CC audio/mixeng.o
CC audio/sdlaudio.o
CC audio/ossaudio.o
CC audio/wavcapture.o
CC backends/rng.o
CC backends/rng-egd.o
CC backends/rng-random.o
CC backends/hostmem.o
CC backends/tpm.o
CC backends/hostmem-ram.o
CC backends/hostmem-file.o
CC backends/cryptodev.o
CC backends/cryptodev-builtin.o
CC block/stream.o
CC chardev/msmouse.o
CC chardev/wctablet.o
CC chardev/testdev.o
CC chardev/baum.o
CC disas/alpha.o
CC disas/arm.o
CXX disas/arm-a64.o
CC disas/cris.o
CC disas/hppa.o
CC disas/i386.o
CC disas/m68k.o
CC disas/microblaze.o
CC disas/mips.o
CC disas/nios2.o
CC disas/moxie.o
CC disas/ppc.o
CC disas/s390.o
CC disas/sh4.o
CC disas/sparc.o
CC disas/lm32.o
CC disas/xtensa.o
CXX disas/libvixl/vixl/utils.o
CXX disas/libvixl/vixl/compiler-intrinsics.o
CXX disas/libvixl/vixl/a64/instructions-a64.o
CXX disas/libvixl/vixl/a64/decoder-a64.o
CXX disas/libvixl/vixl/a64/disasm-a64.o
CC fsdev/qemu-fsdev.o
CC fsdev/qemu-fsdev-opts.o
CC fsdev/qemu-fsdev-throttle.o
CC fsdev/qemu-fsdev-dummy.o
CC hw/9pfs/9p.o
CC hw/9pfs/9p-util.o
CC hw/9pfs/9p-local.o
CC hw/9pfs/9p-xattr.o
CC hw/9pfs/9p-xattr-user.o
CC hw/9pfs/9p-posix-acl.o
CC hw/9pfs/coth.o
CC hw/9pfs/cofs.o
CC hw/9pfs/codir.o
CC hw/9pfs/cofile.o
CC hw/9pfs/coxattr.o
CC hw/9pfs/9p-synth.o
CC hw/9pfs/9p-handle.o
CC hw/9pfs/9p-proxy.o
CC hw/acpi/core.o
CC hw/acpi/piix4.o
CC hw/acpi/pcihp.o
CC hw/acpi/ich9.o
CC hw/acpi/tco.o
CC hw/acpi/cpu_hotplug.o
CC hw/acpi/memory_hotplug.o
CC hw/acpi/cpu.o
CC hw/acpi/nvdimm.o
CC hw/acpi/vmgenid.o
CC hw/acpi/acpi_interface.o
CC hw/acpi/bios-linker-loader.o
CC hw/acpi/aml-build.o
CC hw/acpi/ipmi.o
CC hw/acpi/acpi-stub.o
CC hw/acpi/ipmi-stub.o
CC hw/audio/sb16.o
CC hw/audio/es1370.o
CC hw/audio/ac97.o
CC hw/audio/fmopl.o
CC hw/audio/adlib.o
CC hw/audio/gus.o
CC hw/audio/gusemu_hal.o
CC hw/audio/gusemu_mixer.o
CC hw/audio/cs4231a.o
CC hw/audio/intel-hda.o
CC hw/audio/hda-codec.o
CC hw/audio/pcspk.o
CC hw/audio/wm8750.o
CC hw/audio/pl041.o
CC hw/audio/lm4549.o
CC hw/audio/cs4231.o
CC hw/audio/marvell_88w8618.o
CC hw/audio/milkymist-ac97.o
CC hw/audio/soundhw.o
CC hw/block/block.o
CC hw/block/cdrom.o
CC hw/block/hd-geometry.o
CC hw/block/fdc.o
CC hw/block/m25p80.o
CC hw/block/nand.o
CC hw/block/pflash_cfi01.o
CC hw/block/pflash_cfi02.o
CC hw/block/ecc.o
CC hw/block/onenand.o
CC hw/block/nvme.o
CC hw/bt/core.o
CC hw/bt/l2cap.o
CC hw/bt/sdp.o
CC hw/bt/hci.o
CC hw/bt/hid.o
CC hw/bt/hci-csr.o
CC hw/char/ipoctal232.o
CC hw/char/escc.o
CC hw/char/parallel.o
CC hw/char/pl011.o
CC hw/char/serial.o
CC hw/char/serial-isa.o
CC hw/char/serial-pci.o
CC hw/char/virtio-console.o
CC hw/char/xilinx_uartlite.o
CC hw/char/cadence_uart.o
CC hw/char/cmsdk-apb-uart.o
CC hw/char/etraxfs_ser.o
CC hw/char/debugcon.o
CC hw/char/grlib_apbuart.o
CC hw/char/imx_serial.o
CC hw/char/lm32_juart.o
CC hw/char/lm32_uart.o
CC hw/char/milkymist-uart.o
CC hw/char/sclpconsole.o
CC hw/char/sclpconsole-lm.o
CC hw/core/qdev.o
CC hw/core/qdev-properties.o
CC hw/core/bus.o
CC hw/core/reset.o
CC hw/core/qdev-fw.o
CC hw/core/fw-path-provider.o
CC hw/core/irq.o
CC hw/core/hotplug.o
CC hw/core/nmi.o
CC hw/core/empty_slot.o
CC hw/core/stream.o
CC hw/core/ptimer.o
CC hw/core/sysbus.o
CC hw/core/machine.o
CC hw/core/loader.o
CC hw/core/loader-fit.o
CC hw/core/qdev-properties-system.o
CC hw/core/register.o
CC hw/core/or-irq.o
CC hw/core/platform-bus.o
CC hw/cpu/core.o
CC hw/display/ads7846.o
CC hw/display/cirrus_vga.o
CC hw/display/g364fb.o
CC hw/display/jazz_led.o
CC hw/display/pl110.o
CC hw/display/ssd0303.o
CC hw/display/ssd0323.o
CC hw/display/vga-pci.o
CC hw/display/vga-isa.o
CC hw/display/vga-isa-mm.o
CC hw/display/vmware_vga.o
CC hw/display/blizzard.o
CC hw/display/exynos4210_fimd.o
CC hw/display/framebuffer.o
CC hw/display/milkymist-vgafb.o
CC hw/display/tc6393xb.o
CC hw/display/milkymist-tmu2.o
CC hw/dma/puv3_dma.o
CC hw/dma/rc4030.o
CC hw/dma/pl080.o
CC hw/dma/pl330.o
CC hw/dma/i82374.o
CC hw/dma/i8257.o
CC hw/dma/xilinx_axidma.o
CC hw/dma/xlnx-zynq-devcfg.o
CC hw/dma/etraxfs_dma.o
CC hw/dma/sparc32_dma.o
CC hw/gpio/max7310.o
CC hw/gpio/pl061.o
CC hw/gpio/puv3_gpio.o
CC hw/gpio/zaurus.o
CC hw/gpio/mpc8xxx.o
CC hw/gpio/gpio_key.o
CC hw/i2c/core.o
CC hw/i2c/smbus.o
CC hw/i2c/smbus_eeprom.o
CC hw/i2c/i2c-ddc.o
CC hw/i2c/versatile_i2c.o
CC hw/i2c/smbus_ich9.o
CC hw/i2c/pm_smbus.o
CC hw/i2c/bitbang_i2c.o
CC hw/i2c/exynos4210_i2c.o
CC hw/i2c/imx_i2c.o
CC hw/i2c/aspeed_i2c.o
CC hw/ide/core.o
CC hw/ide/atapi.o
CC hw/ide/qdev.o
CC hw/ide/pci.o
CC hw/ide/isa.o
CC hw/ide/piix.o
CC hw/ide/cmd646.o
CC hw/ide/macio.o
CC hw/ide/mmio.o
CC hw/ide/via.o
CC hw/ide/microdrive.o
CC hw/ide/ahci.o
CC hw/ide/ich.o
CC hw/ide/ahci-allwinner.o
CC hw/ide/sii3112.o
CC hw/input/adb.o
CC hw/input/adb-mouse.o
CC hw/input/adb-kbd.o
CC hw/input/hid.o
CC hw/input/lm832x.o
CC hw/input/pckbd.o
CC hw/input/pl050.o
CC hw/input/ps2.o
CC hw/input/stellaris_input.o
CC hw/input/tsc2005.o
CC hw/input/virtio-input.o
CC hw/input/virtio-input-hid.o
CC hw/input/virtio-input-host.o
CC hw/intc/heathrow_pic.o
CC hw/intc/i8259_common.o
CC hw/intc/i8259.o
CC hw/intc/pl190.o
CC hw/intc/puv3_intc.o
CC hw/intc/xilinx_intc.o
CC hw/intc/xlnx-pmu-iomod-intc.o
CC hw/intc/xlnx-zynqmp-ipi.o
CC hw/intc/etraxfs_pic.o
CC hw/intc/imx_avic.o
CC hw/intc/lm32_pic.o
CC hw/intc/realview_gic.o
CC hw/intc/slavio_intctl.o
CC hw/intc/ioapic_common.o
CC hw/intc/arm_gic_common.o
CC hw/intc/arm_gic.o
CC hw/intc/arm_gicv2m.o
CC hw/intc/arm_gicv3_common.o
CC hw/intc/arm_gicv3.o
CC hw/intc/arm_gicv3_dist.o
CC hw/intc/arm_gicv3_redist.o
CC hw/intc/arm_gicv3_its_common.o
CC hw/intc/openpic.o
CC hw/intc/intc.o
CC hw/ipack/ipack.o
CC hw/ipack/tpci200.o
CC hw/ipmi/ipmi.o
CC hw/ipmi/ipmi_bmc_sim.o
CC hw/ipmi/ipmi_bmc_extern.o
CC hw/ipmi/isa_ipmi_kcs.o
CC hw/ipmi/isa_ipmi_bt.o
CC hw/isa/isa-bus.o
CC hw/isa/apm.o
CC hw/isa/i82378.o
CC hw/isa/pc87312.o
CC hw/isa/piix4.o
CC hw/isa/vt82c686.o
CC hw/mem/pc-dimm.o
CC hw/mem/nvdimm.o
CC hw/misc/applesmc.o
CC hw/misc/max111x.o
CC hw/misc/tmp105.o
CC hw/misc/tmp421.o
CC hw/misc/debugexit.o
CC hw/misc/sga.o
CC hw/misc/pc-testdev.o
CC hw/misc/pci-testdev.o
CC hw/misc/edu.o
CC hw/misc/unimp.o
CC hw/misc/vmcoreinfo.o
CC hw/misc/arm_l2x0.o
CC hw/misc/arm_integrator_debug.o
CC hw/misc/a9scu.o
CC hw/misc/arm11scu.o
CC hw/misc/puv3_pm.o
CC hw/misc/macio/macio.o
CC hw/misc/macio/cuda.o
CC hw/misc/macio/mac_dbdma.o
CC hw/net/dp8393x.o
CC hw/net/ne2000.o
CC hw/net/eepro100.o
CC hw/net/pcnet-pci.o
CC hw/net/pcnet.o
CC hw/net/e1000.o
CC hw/net/e1000x_common.o
CC hw/net/net_tx_pkt.o
CC hw/net/net_rx_pkt.o
CC hw/net/e1000e.o
CC hw/net/e1000e_core.o
CC hw/net/rtl8139.o
CC hw/net/vmxnet3.o
CC hw/net/smc91c111.o
CC hw/net/lan9118.o
CC hw/net/ne2000-isa.o
CC hw/net/opencores_eth.o
CC hw/net/xgmac.o
CC hw/net/mipsnet.o
CC hw/net/xilinx_axienet.o
CC hw/net/allwinner_emac.o
CC hw/net/imx_fec.o
CC hw/net/cadence_gem.o
CC hw/net/stellaris_enet.o
CC hw/net/lance.o
CC hw/net/sunhme.o
CC hw/net/ftgmac100.o
CC hw/net/sungem.o
CC hw/net/rocker/rocker.o
CC hw/net/rocker/rocker_fp.o
CC hw/net/rocker/rocker_desc.o
CC hw/net/rocker/rocker_world.o
CC hw/net/rocker/rocker_of_dpa.o
CC hw/nvram/ds1225y.o
CC hw/nvram/eeprom93xx.o
CC hw/nvram/eeprom_at24c.o
CC hw/nvram/fw_cfg.o
CC hw/nvram/chrp_nvram.o
CC hw/nvram/mac_nvram.o
CC hw/pci-bridge/pci_bridge_dev.o
CC hw/pci-bridge/pcie_root_port.o
CC hw/pci-bridge/gen_pcie_root_port.o
CC hw/pci-bridge/pcie_pci_bridge.o
CC hw/pci-bridge/pci_expander_bridge.o
CC hw/pci-bridge/xio3130_upstream.o
CC hw/pci-bridge/xio3130_downstream.o
CC hw/pci-bridge/ioh3420.o
CC hw/pci-bridge/i82801b11.o
CC hw/pci-bridge/dec.o
CC hw/pci-bridge/simba.o
CC hw/pci-host/pam.o
CC hw/pci-host/prep.o
CC hw/pci-host/grackle.o
CC hw/pci-host/uninorth.o
CC hw/pci-host/ppce500.o
CC hw/pci-host/versatile.o
CC hw/pci-host/sabre.o
CC hw/pci-host/bonito.o
CC hw/pci-host/piix.o
CC hw/pci-host/q35.o
CC hw/pci-host/gpex.o
CC hw/pci-host/xilinx-pcie.o
CC hw/pci/pci.o
CC hw/pci/pci_bridge.o
CC hw/pci/msix.o
CC hw/pci/msi.o
CC hw/pci/shpc.o
CC hw/pci/slotid_cap.o
CC hw/pci/pci_host.o
CC hw/pci/pcie_host.o
CC hw/pci/pcie.o
CC hw/pci/pcie_aer.o
CC hw/pci/pcie_port.o
CC hw/pci/pci-stub.o
CC hw/pcmcia/pcmcia.o
CC hw/scsi/scsi-disk.o
CC hw/scsi/scsi-generic.o
CC hw/scsi/scsi-bus.o
CC hw/scsi/lsi53c895a.o
CC hw/scsi/mptsas.o
CC hw/scsi/mptconfig.o
CC hw/scsi/mptendian.o
CC hw/scsi/megasas.o
CC hw/scsi/vmw_pvscsi.o
CC hw/scsi/esp.o
CC hw/scsi/esp-pci.o
CC hw/sd/pl181.o
CC hw/sd/ssi-sd.o
CC hw/sd/sd.o
CC hw/sd/core.o
CC hw/sd/sdhci.o
CC hw/smbios/smbios.o
CC hw/smbios/smbios_type_38.o
CC hw/smbios/smbios-stub.o
CC hw/smbios/smbios_type_38-stub.o
CC hw/ssi/pl022.o
CC hw/ssi/ssi.o
CC hw/ssi/xilinx_spi.o
CC hw/ssi/xilinx_spips.o
CC hw/ssi/aspeed_smc.o
CC hw/ssi/stm32f2xx_spi.o
CC hw/ssi/mss-spi.o
CC hw/timer/arm_timer.o
CC hw/timer/arm_mptimer.o
CC hw/timer/armv7m_systick.o
CC hw/timer/a9gtimer.o
CC hw/timer/cadence_ttc.o
CC hw/timer/ds1338.o
CC hw/timer/hpet.o
CC hw/timer/i8254_common.o
CC hw/timer/i8254.o
CC hw/timer/m48t59.o
CC hw/timer/m48t59-isa.o
CC hw/timer/pl031.o
CC hw/timer/puv3_ost.o
CC hw/timer/twl92230.o
CC hw/timer/xilinx_timer.o
CC hw/timer/slavio_timer.o
CC hw/timer/etraxfs_timer.o
CC hw/timer/grlib_gptimer.o
CC hw/timer/imx_epit.o
CC hw/timer/imx_gpt.o
CC hw/timer/lm32_timer.o
CC hw/timer/milkymist-sysctl.o
CC hw/timer/stm32f2xx_timer.o
CC hw/timer/aspeed_timer.o
CC hw/timer/sun4v-rtc.o
CC hw/timer/cmsdk-apb-timer.o
CC hw/timer/mss-timer.o
CC hw/tpm/tpm_util.o
CC hw/tpm/tpm_tis.o
CC hw/tpm/tpm_emulator.o
CC hw/usb/core.o
CC hw/usb/combined-packet.o
CC hw/usb/bus.o
CC hw/usb/libhw.o
CC hw/usb/desc.o
CC hw/usb/desc-msos.o
CC hw/usb/hcd-uhci.o
CC hw/usb/hcd-ohci.o
CC hw/usb/hcd-ehci.o
CC hw/usb/hcd-ehci-pci.o
CC hw/usb/hcd-ehci-sysbus.o
CC hw/usb/hcd-xhci.o
CC hw/usb/hcd-xhci-nec.o
CC hw/usb/hcd-musb.o
CC hw/usb/dev-hub.o
CC hw/usb/dev-hid.o
CC hw/usb/dev-wacom.o
CC hw/usb/dev-storage.o
CC hw/usb/dev-uas.o
CC hw/usb/dev-audio.o
CC hw/usb/dev-serial.o
CC hw/usb/dev-network.o
CC hw/usb/dev-bluetooth.o
CC hw/usb/dev-smartcard-reader.o
CC hw/usb/ccid-card-passthru.o
CC hw/usb/ccid-card-emulated.o
CC hw/usb/dev-mtp.o
CC hw/usb/redirect.o
CC hw/usb/quirks.o
CC hw/usb/host-libusb.o
CC hw/usb/host-stub.o
CC hw/virtio/virtio-rng.o
CC hw/virtio/virtio-pci.o
CC hw/virtio/virtio-bus.o
CC hw/virtio/virtio-mmio.o
CC hw/virtio/vhost-stub.o
CC hw/watchdog/watchdog.o
CC hw/watchdog/wdt_ib700.o
CC hw/watchdog/wdt_i6300esb.o
CC hw/watchdog/wdt_diag288.o
CC hw/watchdog/wdt_aspeed.o
CC migration/migration.o
CC migration/socket.o
CC migration/fd.o
CC migration/exec.o
CC migration/tls.o
CC migration/channel.o
CC migration/savevm.o
CC migration/colo-comm.o
CC migration/colo.o
CC migration/colo-failover.o
CC migration/vmstate.o
CC migration/vmstate-types.o
CC migration/page_cache.o
CC migration/qemu-file.o
CC migration/global_state.o
CC migration/qemu-file-channel.o
CC migration/xbzrle.o
CC migration/postcopy-ram.o
CC migration/qjson.o
CC migration/block.o
CC net/net.o
CC net/queue.o
CC net/checksum.o
CC net/util.o
CC net/hub.o
CC net/socket.o
CC net/dump.o
CC net/eth.o
CC net/l2tpv3.o
CC net/vhost-user.o
CC net/slirp.o
CC net/filter.o
CC net/filter-buffer.o
CC net/filter-mirror.o
CC net/colo-compare.o
CC net/colo.o
CC net/filter-rewriter.o
CC net/filter-replay.o
CC net/tap.o
CC net/tap-linux.o
CC qom/cpu.o
CC replay/replay.o
CC replay/replay-internal.o
CC replay/replay-events.o
CC replay/replay-time.o
CC replay/replay-input.o
CC replay/replay-char.o
CC replay/replay-snapshot.o
CC replay/replay-net.o
CC replay/replay-audio.o
CC slirp/cksum.o
CC slirp/if.o
CC slirp/ip_icmp.o
CC slirp/ip6_icmp.o
CC slirp/ip6_input.o
CC slirp/ip6_output.o
CC slirp/ip_input.o
CC slirp/ip_output.o
CC slirp/dnssearch.o
CC slirp/dhcpv6.o
CC slirp/slirp.o
CC slirp/mbuf.o
CC slirp/misc.o
CC slirp/sbuf.o
CC slirp/socket.o
CC slirp/tcp_input.o
CC slirp/tcp_output.o
CC slirp/tcp_subr.o
CC slirp/tcp_timer.o
CC slirp/udp.o
CC slirp/udp6.o
CC slirp/bootp.o
CC slirp/tftp.o
CC slirp/arp_table.o
CC slirp/ndp_table.o
CC slirp/ncsi.o
CC ui/keymaps.o
CC ui/console.o
CC ui/cursor.o
CC ui/qemu-pixman.o
CC ui/input.o
CC ui/input-legacy.o
CC ui/input-linux.o
CC ui/sdl2.o
CC ui/sdl2-input.o
CC ui/sdl2-2d.o
CC ui/sdl2-gl.o
CC ui/curses.o
CC ui/vnc.o
CC ui/vnc-enc-zlib.o
CC ui/vnc-enc-hextile.o
CC ui/vnc-enc-tight.o
CC ui/vnc-palette.o
CC ui/vnc-enc-zrle.o
CC ui/vnc-auth-vencrypt.o
CC ui/vnc-auth-sasl.o
CC ui/vnc-ws.o
CC ui/vnc-jobs.o
CC ui/gtk.o
CC ui/x_keymap.o
VERT ui/shader/texture-blit-vert.h
VERT ui/shader/texture-blit-flip-vert.h
FRAG ui/shader/texture-blit-frag.h
CC ui/console-gl.o
CC ui/egl-helpers.o
CC ui/egl-context.o
CC ui/egl-headless.o
CC ui/gtk-gl-area.o
CC chardev/char.o
CC chardev/char-fd.o
CC chardev/char-fe.o
CC chardev/char-file.o
CC chardev/char-io.o
CC chardev/char-mux.o
CC chardev/char-null.o
CC chardev/char-parallel.o
CC chardev/char-pipe.o
CC chardev/char-pty.o
CC chardev/char-ringbuf.o
CC chardev/char-serial.o
CC chardev/char-socket.o
CC chardev/char-stdio.o
CC chardev/char-udp.o
LINK tests/qemu-iotests/socket_scm_helper
CCAS s390-ccw/start.o
GEN qemu-doc.html
GEN qemu-doc.txt
CC s390-ccw/main.o
GEN qemu.1
CC s390-ccw/bootmap.o
CC s390-ccw/sclp.o
GEN docs/interop/qemu-qmp-ref.html
CC s390-ccw/virtio.o
CC s390-ccw/virtio-scsi.o
GEN docs/interop/qemu-qmp-ref.txt
CC s390-ccw/virtio-blkdev.o
s390-netboot.img not built since roms/SLOF/ is not available.
BUILD s390-ccw/s390-ccw.elf
STRIP s390-ccw/s390-ccw.img
GEN docs/interop/qemu-qmp-ref.7
GEN docs/interop/qemu-ga-ref.html
GEN docs/interop/qemu-ga-ref.txt
GEN docs/interop/qemu-ga-ref.7
CC qga/commands.o
CC qga/guest-agent-command-state.o
CC qga/main.o
CC qga/commands-posix.o
CC qga/channel-posix.o
CC qga/qapi-generated/qga-qapi-types.o
CC qga/qapi-generated/qga-qapi-visit.o
CC qga/qapi-generated/qga-qmp-marshal.o
AR libqemuutil.a
CC qemu-img.o
LINK qemu-io
LINK fsdev/virtfs-proxy-helper
LINK scsi/qemu-pr-helper
LINK qemu-bridge-helper
CC ui/shader.o
LINK qemu-ga
LINK qemu-keymap
LINK ivshmem-client
LINK ivshmem-server
LINK qemu-nbd
GEN aarch64-softmmu/hmp-commands.h
GEN alpha-softmmu/hmp-commands.h
GEN alpha-softmmu/hmp-commands-info.h
GEN alpha-softmmu/config-target.h
GEN aarch64-softmmu/hmp-commands-info.h
GEN aarch64-softmmu/config-target.h
CC aarch64-softmmu/exec.o
GEN cris-softmmu/hmp-commands.h
GEN cris-softmmu/hmp-commands-info.h
CC alpha-softmmu/exec.o
GEN arm-softmmu/hmp-commands.h
GEN cris-softmmu/config-target.h
GEN arm-softmmu/hmp-commands-info.h
GEN arm-softmmu/config-target.h
CC cris-softmmu/exec.o
CC arm-softmmu/exec.o
CC aarch64-softmmu/tcg/tcg.o
CC alpha-softmmu/tcg/tcg.o
CC cris-softmmu/tcg/tcg.o
CC arm-softmmu/tcg/tcg.o
CC alpha-softmmu/tcg/tcg-op.o
CC aarch64-softmmu/tcg/tcg-op.o
CC cris-softmmu/tcg/tcg-op.o
CC arm-softmmu/tcg/tcg-op.o
CC aarch64-softmmu/tcg/optimize.o
CC alpha-softmmu/tcg/optimize.o
CC cris-softmmu/tcg/optimize.o
CC aarch64-softmmu/tcg/tcg-common.o
CC arm-softmmu/tcg/optimize.o
CC alpha-softmmu/tcg/tcg-common.o
CC aarch64-softmmu/fpu/softfloat.o
CC cris-softmmu/tcg/tcg-common.o
CC alpha-softmmu/fpu/softfloat.o
CC arm-softmmu/tcg/tcg-common.o
CC cris-softmmu/fpu/softfloat.o
CC arm-softmmu/fpu/softfloat.o
CC cris-softmmu/disas.o
CC aarch64-softmmu/disas.o
CC arm-softmmu/disas.o
CC cris-softmmu/arch_init.o
CC alpha-softmmu/disas.o
GEN aarch64-softmmu/gdbstub-xml.c
CC cris-softmmu/cpus.o
GEN arm-softmmu/gdbstub-xml.c
CC arm-softmmu/arch_init.o
CC alpha-softmmu/arch_init.o
CC aarch64-softmmu/arch_init.o
CC arm-softmmu/cpus.o
CC alpha-softmmu/cpus.o
CC aarch64-softmmu/cpus.o
CC cris-softmmu/monitor.o
CC alpha-softmmu/monitor.o
CC arm-softmmu/monitor.o
CC aarch64-softmmu/monitor.o
CC alpha-softmmu/gdbstub.o
CC cris-softmmu/gdbstub.o
CC arm-softmmu/gdbstub.o
CC alpha-softmmu/balloon.o
CC cris-softmmu/balloon.o
CC aarch64-softmmu/gdbstub.o
CC cris-softmmu/ioport.o
CC arm-softmmu/balloon.o
CC alpha-softmmu/ioport.o
CC cris-softmmu/numa.o
CC alpha-softmmu/numa.o
CC arm-softmmu/ioport.o
CC aarch64-softmmu/balloon.o
CC cris-softmmu/qtest.o
CC arm-softmmu/numa.o
CC aarch64-softmmu/ioport.o
CC arm-softmmu/qtest.o
CC alpha-softmmu/qtest.o
CC cris-softmmu/memory.o
CC aarch64-softmmu/numa.o
CC arm-softmmu/memory.o
CC alpha-softmmu/memory.o
CC aarch64-softmmu/qtest.o
CC cris-softmmu/memory_mapping.o
CC aarch64-softmmu/memory.o
CC cris-softmmu/dump.o
CC alpha-softmmu/memory_mapping.o
CC arm-softmmu/memory_mapping.o
CC alpha-softmmu/dump.o
CC aarch64-softmmu/memory_mapping.o
CC aarch64-softmmu/dump.o
CC cris-softmmu/migration/ram.o
CC arm-softmmu/dump.o
CC alpha-softmmu/migration/ram.o
CC aarch64-softmmu/migration/ram.o
CC arm-softmmu/migration/ram.o
CC cris-softmmu/accel/accel.o
CC aarch64-softmmu/accel/accel.o
CC cris-softmmu/accel/stubs/hax-stub.o
CC alpha-softmmu/accel/accel.o
CC cris-softmmu/accel/stubs/hvf-stub.o
CC aarch64-softmmu/accel/stubs/hax-stub.o
CC alpha-softmmu/accel/stubs/hax-stub.o
CC arm-softmmu/accel/accel.o
CC aarch64-softmmu/accel/stubs/hvf-stub.o
CC alpha-softmmu/accel/stubs/hvf-stub.o
CC cris-softmmu/accel/stubs/kvm-stub.o
CC arm-softmmu/accel/stubs/hax-stub.o
CC aarch64-softmmu/accel/stubs/kvm-stub.o
CC cris-softmmu/accel/tcg/tcg-all.o
CC alpha-softmmu/accel/stubs/kvm-stub.o
CC arm-softmmu/accel/stubs/hvf-stub.o
CC alpha-softmmu/accel/tcg/tcg-all.o
CC cris-softmmu/accel/tcg/cputlb.o
CC aarch64-softmmu/accel/tcg/tcg-all.o
CC alpha-softmmu/accel/tcg/cputlb.o
CC arm-softmmu/accel/stubs/kvm-stub.o
CC aarch64-softmmu/accel/tcg/cputlb.o
CC arm-softmmu/accel/tcg/tcg-all.o
CC arm-softmmu/accel/tcg/cputlb.o
CC cris-softmmu/accel/tcg/tcg-runtime.o
CC alpha-softmmu/accel/tcg/tcg-runtime.o
CC cris-softmmu/accel/tcg/cpu-exec.o
CC aarch64-softmmu/accel/tcg/tcg-runtime.o
CC alpha-softmmu/accel/tcg/cpu-exec.o
CC aarch64-softmmu/accel/tcg/cpu-exec.o
CC alpha-softmmu/accel/tcg/cpu-exec-common.o
CC cris-softmmu/accel/tcg/cpu-exec-common.o
CC cris-softmmu/accel/tcg/translate-all.o
CC arm-softmmu/accel/tcg/tcg-runtime.o
CC alpha-softmmu/accel/tcg/translate-all.o
CC aarch64-softmmu/accel/tcg/cpu-exec-common.o
CC arm-softmmu/accel/tcg/cpu-exec.o
CC alpha-softmmu/accel/tcg/translator.o
CC cris-softmmu/accel/tcg/translator.o
CC aarch64-softmmu/accel/tcg/translate-all.o
CC cris-softmmu/hw/core/generic-loader.o
CC arm-softmmu/accel/tcg/cpu-exec-common.o
CC alpha-softmmu/hw/9pfs/virtio-9p-device.o
CC aarch64-softmmu/accel/tcg/translator.o
CC cris-softmmu/hw/core/null-machine.o
CC alpha-softmmu/hw/block/virtio-blk.o
CC arm-softmmu/accel/tcg/translate-all.o
CC cris-softmmu/hw/misc/mmio_interface.o
CC aarch64-softmmu/hw/9pfs/virtio-9p-device.o
CC aarch64-softmmu/hw/adc/stm32f2xx_adc.o
CC cris-softmmu/hw/net/etraxfs_eth.o
CC alpha-softmmu/hw/block/vhost-user-blk.o
CC arm-softmmu/accel/tcg/translator.o
CC aarch64-softmmu/hw/block/virtio-blk.o
CC alpha-softmmu/hw/block/dataplane/virtio-blk.o
CC cris-softmmu/hw/net/vhost_net.o
CC alpha-softmmu/hw/char/virtio-serial-bus.o
CC arm-softmmu/hw/9pfs/virtio-9p-device.o
CC aarch64-softmmu/hw/block/vhost-user-blk.o
CC cris-softmmu/hw/net/rocker/qmp-norocker.o
CC aarch64-softmmu/hw/block/dataplane/virtio-blk.o
CC arm-softmmu/hw/adc/stm32f2xx_adc.o
CC cris-softmmu/hw/vfio/common.o
CC alpha-softmmu/hw/core/generic-loader.o
CC aarch64-softmmu/hw/char/exynos4210_uart.o
CC arm-softmmu/hw/block/virtio-blk.o
CC alpha-softmmu/hw/core/null-machine.o
CC aarch64-softmmu/hw/char/omap_uart.o
CC cris-softmmu/hw/vfio/platform.o
CC aarch64-softmmu/hw/char/digic-uart.o
CC alpha-softmmu/hw/display/vga.o
CC arm-softmmu/hw/block/vhost-user-blk.o
CC cris-softmmu/hw/vfio/spapr.o
CC aarch64-softmmu/hw/char/stm32f2xx_usart.o
CC arm-softmmu/hw/block/dataplane/virtio-blk.o
CC cris-softmmu/hw/cris/boot.o
CC cris-softmmu/hw/cris/axis_dev88.o
CC aarch64-softmmu/hw/char/bcm2835_aux.o
CC arm-softmmu/hw/char/exynos4210_uart.o
CC aarch64-softmmu/hw/char/virtio-serial-bus.o
CC cris-softmmu/target/cris/translate.o
CC alpha-softmmu/hw/display/virtio-gpu.o
CC arm-softmmu/hw/char/omap_uart.o
CC arm-softmmu/hw/char/digic-uart.o
CC aarch64-softmmu/hw/core/generic-loader.o
CC arm-softmmu/hw/char/stm32f2xx_usart.o
CC aarch64-softmmu/hw/core/null-machine.o
CC alpha-softmmu/hw/display/virtio-gpu-3d.o
CC arm-softmmu/hw/char/bcm2835_aux.o
CC aarch64-softmmu/hw/cpu/arm11mpcore.o
CC arm-softmmu/hw/char/virtio-serial-bus.o
CC alpha-softmmu/hw/display/virtio-gpu-pci.o
CC aarch64-softmmu/hw/cpu/realview_mpcore.o
CC cris-softmmu/target/cris/op_helper.o
CC aarch64-softmmu/hw/cpu/a9mpcore.o
CC arm-softmmu/hw/core/generic-loader.o
CC aarch64-softmmu/hw/cpu/a15mpcore.o
CC alpha-softmmu/hw/misc/ivshmem.o
CC aarch64-softmmu/hw/display/omap_dss.o
CC arm-softmmu/hw/core/null-machine.o
CC cris-softmmu/target/cris/helper.o
CC aarch64-softmmu/hw/display/omap_lcdc.o
CC arm-softmmu/hw/cpu/arm11mpcore.o
CC alpha-softmmu/hw/misc/mmio_interface.o
CC cris-softmmu/target/cris/cpu.o
CC arm-softmmu/hw/cpu/realview_mpcore.o
CC aarch64-softmmu/hw/display/pxa2xx_lcd.o
CC cris-softmmu/target/cris/gdbstub.o
CC alpha-softmmu/hw/net/virtio-net.o
CC arm-softmmu/hw/cpu/a9mpcore.o
CC cris-softmmu/target/cris/mmu.o
CC arm-softmmu/hw/cpu/a15mpcore.o
CC alpha-softmmu/hw/net/vhost_net.o
CC alpha-softmmu/hw/scsi/virtio-scsi.o
CC arm-softmmu/hw/display/omap_dss.o
CC cris-softmmu/target/cris/machine.o
CC alpha-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC arm-softmmu/hw/display/omap_lcdc.o
CC aarch64-softmmu/hw/display/bcm2835_fb.o
GEN trace/generated-helpers.c
CC cris-softmmu/trace/control-target.o
CC alpha-softmmu/hw/scsi/vhost-scsi-common.o
CC arm-softmmu/hw/display/pxa2xx_lcd.o
CC aarch64-softmmu/hw/display/vga.o
CC alpha-softmmu/hw/scsi/vhost-scsi.o
CC cris-softmmu/trace/generated-helpers.o
CC alpha-softmmu/hw/scsi/vhost-user-scsi.o
LINK cris-softmmu/qemu-system-cris
CC alpha-softmmu/hw/timer/mc146818rtc.o
CC arm-softmmu/hw/display/bcm2835_fb.o
CC aarch64-softmmu/hw/display/virtio-gpu.o
CC arm-softmmu/hw/display/vga.o
CC alpha-softmmu/hw/vfio/common.o
CC aarch64-softmmu/hw/display/virtio-gpu-3d.o
CC aarch64-softmmu/hw/display/virtio-gpu-pci.o
CC aarch64-softmmu/hw/display/dpcd.o
CC aarch64-softmmu/hw/display/xlnx_dp.o
CC aarch64-softmmu/hw/dma/xlnx_dpdma.o
CC arm-softmmu/hw/display/virtio-gpu.o
CC alpha-softmmu/hw/vfio/pci.o
CC arm-softmmu/hw/display/virtio-gpu-3d.o
CC aarch64-softmmu/hw/dma/omap_dma.o
CC arm-softmmu/hw/display/virtio-gpu-pci.o
CC arm-softmmu/hw/dma/omap_dma.o
GEN i386-softmmu/hmp-commands.h
GEN i386-softmmu/hmp-commands-info.h
GEN i386-softmmu/config-target.h
CC i386-softmmu/exec.o
CC i386-softmmu/tcg/tcg.o
CC i386-softmmu/tcg/tcg-op.o
CC i386-softmmu/tcg/optimize.o
CC i386-softmmu/tcg/tcg-common.o
CC i386-softmmu/fpu/softfloat.o
CC i386-softmmu/disas.o
GEN i386-softmmu/gdbstub-xml.c
CC i386-softmmu/arch_init.o
CC i386-softmmu/cpus.o
CC i386-softmmu/monitor.o
CC i386-softmmu/gdbstub.o
CC i386-softmmu/balloon.o
CC i386-softmmu/ioport.o
CC i386-softmmu/numa.o
CC i386-softmmu/qtest.o
CC i386-softmmu/memory.o
CC i386-softmmu/memory_mapping.o
CC i386-softmmu/dump.o
CC i386-softmmu/migration/ram.o
CC i386-softmmu/accel/accel.o
CC i386-softmmu/accel/stubs/hax-stub.o
CC i386-softmmu/accel/stubs/hvf-stub.o
CC i386-softmmu/accel/stubs/kvm-stub.o
CC i386-softmmu/accel/tcg/tcg-all.o
CC i386-softmmu/accel/tcg/cputlb.o
CC i386-softmmu/accel/tcg/tcg-runtime.o
CC i386-softmmu/accel/tcg/cpu-exec.o
CC i386-softmmu/accel/tcg/cpu-exec-common.o
CC i386-softmmu/accel/tcg/translate-all.o
CC i386-softmmu/accel/tcg/translator.o
CC i386-softmmu/hw/9pfs/virtio-9p-device.o
CC i386-softmmu/hw/block/virtio-blk.o
CC i386-softmmu/hw/block/vhost-user-blk.o
CC i386-softmmu/hw/block/dataplane/virtio-blk.o
CC i386-softmmu/hw/char/virtio-serial-bus.o
CC i386-softmmu/hw/core/generic-loader.o
CC i386-softmmu/hw/core/null-machine.o
CC i386-softmmu/hw/display/vga.o
CC i386-softmmu/hw/display/virtio-gpu.o
CC i386-softmmu/hw/display/virtio-gpu-3d.o
CC i386-softmmu/hw/display/virtio-gpu-pci.o
CC i386-softmmu/hw/display/virtio-vga.o
CC i386-softmmu/hw/intc/apic.o
CC i386-softmmu/hw/intc/apic_common.o
CC i386-softmmu/hw/intc/ioapic.o
CC i386-softmmu/hw/isa/lpc_ich9.o
CC i386-softmmu/hw/misc/ivshmem.o
CC i386-softmmu/hw/misc/pvpanic.o
CC i386-softmmu/hw/misc/mmio_interface.o
CC i386-softmmu/hw/net/virtio-net.o
CC i386-softmmu/hw/net/vhost_net.o
CC i386-softmmu/hw/scsi/virtio-scsi.o
CC i386-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC i386-softmmu/hw/scsi/vhost-scsi-common.o
CC i386-softmmu/hw/scsi/vhost-scsi.o
CC i386-softmmu/hw/scsi/vhost-user-scsi.o
CC i386-softmmu/hw/timer/mc146818rtc.o
CC i386-softmmu/hw/vfio/common.o
CC i386-softmmu/hw/vfio/pci.o
CC i386-softmmu/hw/vfio/pci-quirks.o
CC i386-softmmu/hw/vfio/platform.o
CC i386-softmmu/hw/vfio/spapr.o
CC i386-softmmu/hw/virtio/virtio.o
CC i386-softmmu/hw/virtio/virtio-balloon.o
CC i386-softmmu/hw/virtio/vhost.o
CC i386-softmmu/hw/virtio/vhost-backend.o
CC i386-softmmu/hw/virtio/vhost-user.o
CC i386-softmmu/hw/virtio/vhost-vsock.o
CC i386-softmmu/hw/virtio/virtio-crypto.o
CC i386-softmmu/hw/virtio/virtio-crypto-pci.o
CC i386-softmmu/hw/i386/multiboot.o
CC i386-softmmu/hw/i386/pc.o
CC i386-softmmu/hw/i386/pc_piix.o
CC i386-softmmu/hw/i386/pc_q35.o
CC i386-softmmu/hw/i386/pc_sysfw.o
CC i386-softmmu/hw/i386/x86-iommu.o
CC i386-softmmu/hw/i386/intel_iommu.o
CC i386-softmmu/hw/i386/amd_iommu.o
CC i386-softmmu/hw/i386/vmport.o
CC i386-softmmu/hw/i386/vmmouse.o
CC i386-softmmu/hw/i386/kvmvapic.o
CC i386-softmmu/hw/i386/acpi-build.o
CC i386-softmmu/target/i386/helper.o
CC i386-softmmu/target/i386/cpu.o
CC i386-softmmu/target/i386/gdbstub.o
CC i386-softmmu/target/i386/xsave_helper.o
CC i386-softmmu/target/i386/translate.o
CC i386-softmmu/target/i386/bpt_helper.o
CC i386-softmmu/target/i386/cc_helper.o
CC i386-softmmu/target/i386/excp_helper.o
CC i386-softmmu/target/i386/fpu_helper.o
CC i386-softmmu/target/i386/int_helper.o
CC i386-softmmu/target/i386/mem_helper.o
CC i386-softmmu/target/i386/misc_helper.o
CC i386-softmmu/target/i386/mpx_helper.o
CC i386-softmmu/target/i386/seg_helper.o
CC i386-softmmu/target/i386/smm_helper.o
CC i386-softmmu/target/i386/svm_helper.o
CC i386-softmmu/target/i386/machine.o
CC i386-softmmu/target/i386/arch_memory_mapping.o
CC i386-softmmu/target/i386/arch_dump.o
CC i386-softmmu/target/i386/monitor.o
CC i386-softmmu/target/i386/kvm-stub.o
GEN trace/generated-helpers.c
CC i386-softmmu/trace/control-target.o
CC i386-softmmu/gdbstub-xml.o
CC i386-softmmu/trace/generated-helpers.o
LINK i386-softmmu/qemu-system-i386
target/i386/helper.o: In function `get_me_mask':
/var/tmp/patchew-tester-tmp-hek3vjny/src/target/i386/helper.c:735: undefined reference to `kvm_arch_get_supported_cpuid'
target/i386/monitor.o: In function `get_me_mask':
/var/tmp/patchew-tester-tmp-hek3vjny/src/target/i386/monitor.c:71: undefined reference to `kvm_arch_get_supported_cpuid'
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:193: qemu-system-i386] Error 1
make: *** [Makefile:403: subdir-i386-softmmu] Error 2
make: *** Waiting for unfinished jobs....
CC arm-softmmu/hw/dma/soc_dma.o
CC aarch64-softmmu/hw/dma/soc_dma.o
CC alpha-softmmu/hw/vfio/pci-quirks.o
CC arm-softmmu/hw/dma/pxa2xx_dma.o
CC aarch64-softmmu/hw/dma/pxa2xx_dma.o
CC aarch64-softmmu/hw/dma/bcm2835_dma.o
CC arm-softmmu/hw/dma/bcm2835_dma.o
CC alpha-softmmu/hw/vfio/platform.o
CC arm-softmmu/hw/gpio/omap_gpio.o
CC alpha-softmmu/hw/vfio/spapr.o
CC alpha-softmmu/hw/virtio/virtio.o
CC arm-softmmu/hw/gpio/imx_gpio.o
CC alpha-softmmu/hw/virtio/virtio-balloon.o
CC arm-softmmu/hw/gpio/bcm2835_gpio.o
CC alpha-softmmu/hw/virtio/vhost.o
CC arm-softmmu/hw/i2c/omap_i2c.o
CC alpha-softmmu/hw/virtio/vhost-backend.o
CC alpha-softmmu/hw/virtio/vhost-user.o
CC arm-softmmu/hw/input/pxa2xx_keypad.o
CC arm-softmmu/hw/input/tsc210x.o
CC alpha-softmmu/hw/virtio/vhost-vsock.o
CC arm-softmmu/hw/intc/armv7m_nvic.o
CC aarch64-softmmu/hw/gpio/omap_gpio.o
CC alpha-softmmu/hw/virtio/virtio-crypto.o
CC arm-softmmu/hw/intc/exynos4210_gic.o
CC arm-softmmu/hw/intc/exynos4210_combiner.o
CC aarch64-softmmu/hw/gpio/imx_gpio.o
CC alpha-softmmu/hw/virtio/virtio-crypto-pci.o
CC aarch64-softmmu/hw/gpio/bcm2835_gpio.o
CC alpha-softmmu/hw/alpha/dp264.o
CC arm-softmmu/hw/intc/omap_intc.o
CC aarch64-softmmu/hw/i2c/omap_i2c.o
CC alpha-softmmu/hw/alpha/pci.o
CC arm-softmmu/hw/intc/bcm2835_ic.o
CC aarch64-softmmu/hw/input/pxa2xx_keypad.o
CC arm-softmmu/hw/intc/bcm2836_control.o
CC aarch64-softmmu/hw/input/tsc210x.o
CC arm-softmmu/hw/intc/allwinner-a10-pic.o
CC alpha-softmmu/hw/alpha/typhoon.o
CC arm-softmmu/hw/intc/aspeed_vic.o
CC aarch64-softmmu/hw/intc/armv7m_nvic.o
CC aarch64-softmmu/hw/intc/exynos4210_gic.o
CC alpha-softmmu/target/alpha/machine.o
CC aarch64-softmmu/hw/intc/exynos4210_combiner.o
CC aarch64-softmmu/hw/intc/omap_intc.o
CC alpha-softmmu/target/alpha/translate.o
CC aarch64-softmmu/hw/intc/bcm2835_ic.o
CC aarch64-softmmu/hw/intc/bcm2836_control.o
CC aarch64-softmmu/hw/intc/allwinner-a10-pic.o
CC aarch64-softmmu/hw/intc/aspeed_vic.o
CC aarch64-softmmu/hw/intc/arm_gicv3_cpuif.o
CC aarch64-softmmu/hw/misc/ivshmem.o
CC alpha-softmmu/target/alpha/helper.o
CC aarch64-softmmu/hw/misc/arm_sysctl.o
CC alpha-softmmu/target/alpha/cpu.o
CC aarch64-softmmu/hw/misc/cbus.o
CC aarch64-softmmu/hw/misc/exynos4210_pmu.o
CC alpha-softmmu/target/alpha/int_helper.o
CC aarch64-softmmu/hw/misc/exynos4210_clk.o
CC aarch64-softmmu/hw/misc/exynos4210_rng.o
CC alpha-softmmu/target/alpha/fpu_helper.o
CC aarch64-softmmu/hw/misc/imx_ccm.o
CC aarch64-softmmu/hw/misc/imx31_ccm.o
CC alpha-softmmu/target/alpha/vax_helper.o
CC aarch64-softmmu/hw/misc/imx25_ccm.o
CC aarch64-softmmu/hw/misc/imx6_ccm.o
CC aarch64-softmmu/hw/misc/imx6_src.o
CC alpha-softmmu/target/alpha/sys_helper.o
CC aarch64-softmmu/hw/misc/mst_fpga.o
CC aarch64-softmmu/hw/misc/omap_clk.o
CC alpha-softmmu/target/alpha/mem_helper.o
CC arm-softmmu/hw/intc/arm_gicv3_cpuif.o
CC aarch64-softmmu/hw/misc/omap_gpmc.o
CC aarch64-softmmu/hw/misc/omap_l4.o
CC alpha-softmmu/target/alpha/gdbstub.o
CC aarch64-softmmu/hw/misc/omap_sdrc.o
CC aarch64-softmmu/hw/misc/omap_tap.o
GEN trace/generated-helpers.c
CC alpha-softmmu/trace/control-target.o
CC arm-softmmu/hw/misc/ivshmem.o
CC aarch64-softmmu/hw/misc/bcm2835_mbox.o
CC alpha-softmmu/trace/generated-helpers.o
CC arm-softmmu/hw/misc/arm_sysctl.o
CC arm-softmmu/hw/misc/cbus.o
LINK alpha-softmmu/qemu-system-alpha
CC arm-softmmu/hw/misc/exynos4210_pmu.o
CC arm-softmmu/hw/misc/exynos4210_clk.o
CC arm-softmmu/hw/misc/exynos4210_rng.o
CC arm-softmmu/hw/misc/imx_ccm.o
CC arm-softmmu/hw/misc/imx31_ccm.o
CC arm-softmmu/hw/misc/imx25_ccm.o
CC aarch64-softmmu/hw/misc/bcm2835_property.o
CC arm-softmmu/hw/misc/imx6_ccm.o
CC arm-softmmu/hw/misc/imx6_src.o
CC aarch64-softmmu/hw/misc/bcm2835_rng.o
CC arm-softmmu/hw/misc/mst_fpga.o
CC aarch64-softmmu/hw/misc/zynq_slcr.o
CC arm-softmmu/hw/misc/omap_clk.o
CC aarch64-softmmu/hw/misc/zynq-xadc.o
CC aarch64-softmmu/hw/misc/stm32f2xx_syscfg.o
CC aarch64-softmmu/hw/misc/mps2-scc.o
CC aarch64-softmmu/hw/misc/auxbus.o
CC aarch64-softmmu/hw/misc/aspeed_scu.o
CC aarch64-softmmu/hw/misc/aspeed_sdmc.o
CC aarch64-softmmu/hw/misc/mmio_interface.o
CC arm-softmmu/hw/misc/omap_gpmc.o
CC arm-softmmu/hw/misc/omap_l4.o
CC aarch64-softmmu/hw/misc/msf2-sysreg.o
CC aarch64-softmmu/hw/net/virtio-net.o
CC arm-softmmu/hw/misc/omap_sdrc.o
CC aarch64-softmmu/hw/net/vhost_net.o
CC arm-softmmu/hw/misc/omap_tap.o
CC aarch64-softmmu/hw/pcmcia/pxa2xx.o
CC arm-softmmu/hw/misc/bcm2835_mbox.o
CC arm-softmmu/hw/misc/bcm2835_property.o
CC arm-softmmu/hw/misc/bcm2835_rng.o
CC arm-softmmu/hw/misc/zynq_slcr.o
CC arm-softmmu/hw/misc/zynq-xadc.o
CC arm-softmmu/hw/misc/stm32f2xx_syscfg.o
CC aarch64-softmmu/hw/scsi/virtio-scsi.o
CC arm-softmmu/hw/misc/mps2-scc.o
CC aarch64-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC arm-softmmu/hw/misc/aspeed_scu.o
CC arm-softmmu/hw/misc/aspeed_sdmc.o
CC aarch64-softmmu/hw/scsi/vhost-scsi-common.o
CC arm-softmmu/hw/misc/mmio_interface.o
CC aarch64-softmmu/hw/scsi/vhost-scsi.o
CC arm-softmmu/hw/misc/msf2-sysreg.o
CC aarch64-softmmu/hw/scsi/vhost-user-scsi.o
CC arm-softmmu/hw/net/virtio-net.o
CC arm-softmmu/hw/net/vhost_net.o
CC aarch64-softmmu/hw/sd/omap_mmc.o
CC aarch64-softmmu/hw/sd/pxa2xx_mmci.o
CC arm-softmmu/hw/pcmcia/pxa2xx.o
CC arm-softmmu/hw/scsi/virtio-scsi.o
CC arm-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC arm-softmmu/hw/scsi/vhost-scsi-common.o
CC arm-softmmu/hw/scsi/vhost-scsi.o
CC arm-softmmu/hw/scsi/vhost-user-scsi.o
CC aarch64-softmmu/hw/sd/bcm2835_sdhost.o
CC aarch64-softmmu/hw/ssi/omap_spi.o
CC aarch64-softmmu/hw/ssi/imx_spi.o
CC aarch64-softmmu/hw/timer/exynos4210_mct.o
CC aarch64-softmmu/hw/timer/exynos4210_pwm.o
CC aarch64-softmmu/hw/timer/exynos4210_rtc.o
CC aarch64-softmmu/hw/timer/omap_gptimer.o
CC aarch64-softmmu/hw/timer/omap_synctimer.o
CC aarch64-softmmu/hw/timer/pxa2xx_timer.o
CC aarch64-softmmu/hw/timer/digic-timer.o
CC aarch64-softmmu/hw/timer/allwinner-a10-pit.o
CC aarch64-softmmu/hw/usb/tusb6010.o
CC aarch64-softmmu/hw/vfio/common.o
CC aarch64-softmmu/hw/vfio/pci.o
CC aarch64-softmmu/hw/vfio/pci-quirks.o
CC aarch64-softmmu/hw/vfio/platform.o
CC aarch64-softmmu/hw/vfio/calxeda-xgmac.o
CC aarch64-softmmu/hw/vfio/amd-xgbe.o
CC aarch64-softmmu/hw/vfio/spapr.o
CC aarch64-softmmu/hw/virtio/virtio.o
CC aarch64-softmmu/hw/virtio/virtio-balloon.o
CC aarch64-softmmu/hw/virtio/vhost.o
CC aarch64-softmmu/hw/virtio/vhost-backend.o
CC aarch64-softmmu/hw/virtio/vhost-user.o
CC aarch64-softmmu/hw/virtio/vhost-vsock.o
CC aarch64-softmmu/hw/virtio/virtio-crypto.o
CC aarch64-softmmu/hw/virtio/virtio-crypto-pci.o
CC aarch64-softmmu/hw/arm/boot.o
CC aarch64-softmmu/hw/arm/collie.o
CC aarch64-softmmu/hw/arm/exynos4_boards.o
CC aarch64-softmmu/hw/arm/gumstix.o
CC aarch64-softmmu/hw/arm/highbank.o
CC aarch64-softmmu/hw/arm/digic_boards.o
CC aarch64-softmmu/hw/arm/integratorcp.o
CC aarch64-softmmu/hw/arm/mainstone.o
CC aarch64-softmmu/hw/arm/musicpal.o
CC aarch64-softmmu/hw/arm/nseries.o
CC aarch64-softmmu/hw/arm/omap_sx1.o
CC aarch64-softmmu/hw/arm/palm.o
CC aarch64-softmmu/hw/arm/realview.o
CC aarch64-softmmu/hw/arm/spitz.o
CC aarch64-softmmu/hw/arm/stellaris.o
CC aarch64-softmmu/hw/arm/tosa.o
CC aarch64-softmmu/hw/arm/versatilepb.o
CC aarch64-softmmu/hw/arm/vexpress.o
CC aarch64-softmmu/hw/arm/virt.o
CC aarch64-softmmu/hw/arm/xilinx_zynq.o
CC aarch64-softmmu/hw/arm/z2.o
CC aarch64-softmmu/hw/arm/virt-acpi-build.o
CC aarch64-softmmu/hw/arm/netduino2.o
CC aarch64-softmmu/hw/arm/sysbus-fdt.o
CC aarch64-softmmu/hw/arm/armv7m.o
CC aarch64-softmmu/hw/arm/exynos4210.o
CC aarch64-softmmu/hw/arm/pxa2xx.o
CC aarch64-softmmu/hw/arm/pxa2xx_gpio.o
CC aarch64-softmmu/hw/arm/pxa2xx_pic.o
CC aarch64-softmmu/hw/arm/digic.o
CC aarch64-softmmu/hw/arm/omap1.o
CC aarch64-softmmu/hw/arm/omap2.o
CC aarch64-softmmu/hw/arm/strongarm.o
CC aarch64-softmmu/hw/arm/allwinner-a10.o
CC aarch64-softmmu/hw/arm/cubieboard.o
CC aarch64-softmmu/hw/arm/bcm2835_peripherals.o
CC aarch64-softmmu/hw/arm/bcm2836.o
CC aarch64-softmmu/hw/arm/raspi.o
CC aarch64-softmmu/hw/arm/stm32f205_soc.o
CC aarch64-softmmu/hw/arm/xlnx-zynqmp.o
CC aarch64-softmmu/hw/arm/xlnx-zcu102.o
CC aarch64-softmmu/hw/arm/fsl-imx25.o
CC aarch64-softmmu/hw/arm/imx25_pdk.o
CC aarch64-softmmu/hw/arm/fsl-imx31.o
CC aarch64-softmmu/hw/arm/kzm.o
CC aarch64-softmmu/hw/arm/fsl-imx6.o
CC aarch64-softmmu/hw/arm/sabrelite.o
CC aarch64-softmmu/hw/arm/aspeed_soc.o
CC aarch64-softmmu/hw/arm/aspeed.o
CC aarch64-softmmu/hw/arm/mps2.o
CC aarch64-softmmu/hw/arm/msf2-soc.o
CC aarch64-softmmu/hw/arm/msf2-som.o
CC aarch64-softmmu/target/arm/arm-semi.o
CC aarch64-softmmu/target/arm/machine.o
CC aarch64-softmmu/target/arm/psci.o
CC aarch64-softmmu/target/arm/arch_dump.o
CC aarch64-softmmu/target/arm/monitor.o
CC aarch64-softmmu/target/arm/kvm-stub.o
CC aarch64-softmmu/target/arm/translate.o
CC aarch64-softmmu/target/arm/op_helper.o
CC aarch64-softmmu/target/arm/helper.o
CC aarch64-softmmu/target/arm/cpu.o
CC aarch64-softmmu/target/arm/neon_helper.o
CC aarch64-softmmu/target/arm/iwmmxt_helper.o
CC aarch64-softmmu/target/arm/gdbstub.o
CC aarch64-softmmu/target/arm/cpu64.o
CC aarch64-softmmu/target/arm/translate-a64.o
CC aarch64-softmmu/target/arm/helper-a64.o
CC aarch64-softmmu/target/arm/gdbstub64.o
CC aarch64-softmmu/target/arm/crypto_helper.o
CC aarch64-softmmu/target/arm/arm-powerctl.o
CC arm-softmmu/hw/sd/omap_mmc.o
CC arm-softmmu/hw/sd/pxa2xx_mmci.o
GEN trace/generated-helpers.c
CC aarch64-softmmu/trace/control-target.o
CC aarch64-softmmu/gdbstub-xml.o
CC arm-softmmu/hw/sd/bcm2835_sdhost.o
CC aarch64-softmmu/trace/generated-helpers.o
CC arm-softmmu/hw/ssi/omap_spi.o
CC arm-softmmu/hw/ssi/imx_spi.o
CC arm-softmmu/hw/timer/exynos4210_mct.o
CC arm-softmmu/hw/timer/exynos4210_pwm.o
CC arm-softmmu/hw/timer/exynos4210_rtc.o
CC arm-softmmu/hw/timer/omap_gptimer.o
CC arm-softmmu/hw/timer/omap_synctimer.o
CC arm-softmmu/hw/timer/pxa2xx_timer.o
CC arm-softmmu/hw/timer/digic-timer.o
CC arm-softmmu/hw/timer/allwinner-a10-pit.o
CC arm-softmmu/hw/usb/tusb6010.o
CC arm-softmmu/hw/vfio/common.o
CC arm-softmmu/hw/vfio/pci.o
CC arm-softmmu/hw/vfio/pci-quirks.o
CC arm-softmmu/hw/vfio/platform.o
LINK aarch64-softmmu/qemu-system-aarch64
CC arm-softmmu/hw/vfio/calxeda-xgmac.o
CC arm-softmmu/hw/vfio/amd-xgbe.o
CC arm-softmmu/hw/vfio/spapr.o
CC arm-softmmu/hw/virtio/virtio.o
CC arm-softmmu/hw/virtio/virtio-balloon.o
CC arm-softmmu/hw/virtio/vhost.o
CC arm-softmmu/hw/virtio/vhost-backend.o
CC arm-softmmu/hw/virtio/vhost-user.o
CC arm-softmmu/hw/virtio/vhost-vsock.o
CC arm-softmmu/hw/virtio/virtio-crypto.o
CC arm-softmmu/hw/virtio/virtio-crypto-pci.o
CC arm-softmmu/hw/arm/boot.o
CC arm-softmmu/hw/arm/collie.o
CC arm-softmmu/hw/arm/exynos4_boards.o
CC arm-softmmu/hw/arm/gumstix.o
CC arm-softmmu/hw/arm/highbank.o
CC arm-softmmu/hw/arm/digic_boards.o
CC arm-softmmu/hw/arm/integratorcp.o
CC arm-softmmu/hw/arm/mainstone.o
CC arm-softmmu/hw/arm/musicpal.o
CC arm-softmmu/hw/arm/nseries.o
CC arm-softmmu/hw/arm/omap_sx1.o
CC arm-softmmu/hw/arm/palm.o
CC arm-softmmu/hw/arm/realview.o
CC arm-softmmu/hw/arm/spitz.o
CC arm-softmmu/hw/arm/stellaris.o
CC arm-softmmu/hw/arm/tosa.o
CC arm-softmmu/hw/arm/versatilepb.o
CC arm-softmmu/hw/arm/vexpress.o
CC arm-softmmu/hw/arm/virt.o
CC arm-softmmu/hw/arm/xilinx_zynq.o
CC arm-softmmu/hw/arm/z2.o
CC arm-softmmu/hw/arm/virt-acpi-build.o
CC arm-softmmu/hw/arm/netduino2.o
CC arm-softmmu/hw/arm/sysbus-fdt.o
CC arm-softmmu/hw/arm/armv7m.o
CC arm-softmmu/hw/arm/exynos4210.o
CC arm-softmmu/hw/arm/pxa2xx.o
CC arm-softmmu/hw/arm/pxa2xx_gpio.o
CC arm-softmmu/hw/arm/pxa2xx_pic.o
CC arm-softmmu/hw/arm/digic.o
CC arm-softmmu/hw/arm/omap1.o
CC arm-softmmu/hw/arm/omap2.o
CC arm-softmmu/hw/arm/strongarm.o
CC arm-softmmu/hw/arm/allwinner-a10.o
CC arm-softmmu/hw/arm/cubieboard.o
CC arm-softmmu/hw/arm/bcm2835_peripherals.o
CC arm-softmmu/hw/arm/bcm2836.o
CC arm-softmmu/hw/arm/raspi.o
CC arm-softmmu/hw/arm/stm32f205_soc.o
CC arm-softmmu/hw/arm/fsl-imx25.o
CC arm-softmmu/hw/arm/imx25_pdk.o
CC arm-softmmu/hw/arm/fsl-imx31.o
CC arm-softmmu/hw/arm/kzm.o
CC arm-softmmu/hw/arm/fsl-imx6.o
CC arm-softmmu/hw/arm/sabrelite.o
CC arm-softmmu/hw/arm/aspeed_soc.o
CC arm-softmmu/hw/arm/aspeed.o
CC arm-softmmu/hw/arm/mps2.o
CC arm-softmmu/hw/arm/msf2-soc.o
CC arm-softmmu/hw/arm/msf2-som.o
CC arm-softmmu/target/arm/arm-semi.o
CC arm-softmmu/target/arm/machine.o
CC arm-softmmu/target/arm/psci.o
CC arm-softmmu/target/arm/arch_dump.o
CC arm-softmmu/target/arm/monitor.o
CC arm-softmmu/target/arm/kvm-stub.o
CC arm-softmmu/target/arm/translate.o
CC arm-softmmu/target/arm/op_helper.o
CC arm-softmmu/target/arm/helper.o
CC arm-softmmu/target/arm/cpu.o
CC arm-softmmu/target/arm/neon_helper.o
CC arm-softmmu/target/arm/iwmmxt_helper.o
CC arm-softmmu/target/arm/gdbstub.o
CC arm-softmmu/target/arm/crypto_helper.o
CC arm-softmmu/target/arm/arm-powerctl.o
GEN trace/generated-helpers.c
CC arm-softmmu/trace/control-target.o
CC arm-softmmu/gdbstub-xml.o
CC arm-softmmu/trace/generated-helpers.o
LINK arm-softmmu/qemu-system-arm
=== OUTPUT END ===
Test command exited with code: 2
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@freelists.org
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 00/23] x86: Secure Encrypted Virtualization (AMD)
@ 2018-01-29 18:17 ` no-reply
0 siblings, 0 replies; 118+ messages in thread
From: no-reply @ 2018-01-29 18:17 UTC (permalink / raw)
To: brijesh.singh
Cc: famz, qemu-devel, edgar.iglesias, peter.maydell, ehabkost, kvm,
Thomas.Lendacky, stefanha, mst, richard.henderson, dgilbert,
pbonzini
Hi,
This series failed build test on s390x host. Please find the details below.
Type: series
Message-id: 20180129174132.108925-1-brijesh.singh@amd.com
Subject: [Qemu-devel] [PATCH v6 00/23] x86: Secure Encrypted Virtualization (AMD)
=== TEST SCRIPT BEGIN ===
#!/bin/bash
# Testing script will be invoked under the git checkout with
# HEAD pointing to a commit that has the patches applied on top of "base"
# branch
set -e
echo "=== ENV ==="
env
echo "=== PACKAGES ==="
rpm -qa
echo "=== TEST BEGIN ==="
CC=$HOME/bin/cc
INSTALL=$PWD/install
BUILD=$PWD/build
echo -n "Using CC: "
realpath $CC
mkdir -p $BUILD $INSTALL
SRC=$PWD
cd $BUILD
$SRC/configure --cc=$CC --prefix=$INSTALL
make -j4
# XXX: we need reliable clean up
# make check -j4 V=1
make install
=== TEST SCRIPT END ===
Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
0d1442912b..30d9fefe1a master -> master
t [tag update] patchew/1517235657-22547-1-git-send-email-ghammer@redhat.com -> patchew/1517235657-22547-1-git-send-email-ghammer@redhat.com
t [tag update] patchew/20180123035349.24538-1-richard.henderson@linaro.org -> patchew/20180123035349.24538-1-richard.henderson@linaro.org
* [new tag] patchew/20180129174132.108925-1-brijesh.singh@amd.com -> patchew/20180129174132.108925-1-brijesh.singh@amd.com
Switched to a new branch 'test'
6efcae2888 sev: add migration blocker
16a9e00946 target/i386: clear C-bit when walking SEV guest page table
3b5e4a5a54 sev: add debug encrypt and decrypt commands
9034d072b3 hw: i386: set ram_debug_ops when memory encryption is enabled
9b48370842 sev: Finalize the SEV guest launch flow
5e126818a5 sev: emit the SEV_MEASUREMENT event
1c9a562916 qapi: add SEV_MEASUREMENT event
b322fca554 target/i386: encrypt bios rom
10da3ed830 sev: add command to encrypt guest memory region
cc979f7ffb sev: add command to create launch memory encryption context
9388e9fbf7 hmp: display memory encryption support in 'info kvm'
8875a9eff3 kvm: introduce memory encryption APIs
c530cf3a0f sev: register the guest memory range which may contain encrypted data
f486eda972 sev: add command to initialize the memory encryption context
cd64908627 accel: add Secure Encrypted Virtulization (SEV) object
08729ca7e4 docs: add AMD Secure Encrypted Virtualization (SEV)
e13044a465 kvm: update kvm.h to include memory encryption ioctls
113e16b66e machine: add -memory-encryption property
f839a7f5d1 target/i386: add memory encryption feature cpuid support
4e159e781f monitor/i386: use debug APIs when accessing guest memory
fbeb706e23 exec: add debug version of physical memory read and write API
11bc1372d7 exec: add ram_debug_ops support
1b02df629e memattrs: add debug attribute
=== OUTPUT BEGIN ===
=== ENV ===
LANG=en_US.UTF-8
XDG_SESSION_ID=31743
USER=fam
PWD=/var/tmp/patchew-tester-tmp-hek3vjny/src
HOME=/home/fam
SHELL=/bin/sh
SHLVL=2
PATCHEW=/home/fam/patchew/patchew-cli -s http://patchew.org --nodebug
LOGNAME=fam
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1012/bus
XDG_RUNTIME_DIR=/run/user/1012
PATH=/usr/bin:/bin
_=/usr/bin/env
=== PACKAGES ===
gpg-pubkey-873529b8-54e386ff
glibc-debuginfo-common-2.24-10.fc25.s390x
fedora-release-26-1.noarch
dejavu-sans-mono-fonts-2.35-4.fc26.noarch
xemacs-filesystem-21.5.34-22.20170124hgf412e9f093d4.fc26.noarch
bash-4.4.12-7.fc26.s390x
freetype-2.7.1-9.fc26.s390x
libSM-1.2.2-5.fc26.s390x
libmpc-1.0.2-6.fc26.s390x
libaio-0.3.110-7.fc26.s390x
libverto-0.2.6-7.fc26.s390x
perl-Scalar-List-Utils-1.48-1.fc26.s390x
iptables-libs-1.6.1-2.fc26.s390x
perl-threads-shared-1.57-1.fc26.s390x
p11-kit-trust-0.23.9-2.fc26.s390x
tcl-8.6.6-2.fc26.s390x
libxshmfence-1.2-4.fc26.s390x
expect-5.45-23.fc26.s390x
perl-Thread-Queue-3.12-1.fc26.noarch
perl-encoding-2.19-6.fc26.s390x
keyutils-1.5.10-1.fc26.s390x
gmp-devel-6.1.2-4.fc26.s390x
enchant-1.6.0-16.fc26.s390x
net-snmp-libs-5.7.3-17.fc26.s390x
python-gobject-base-3.24.1-1.fc26.s390x
python3-distro-1.0.3-1.fc26.noarch
python3-enchant-1.6.10-1.fc26.noarch
python-lockfile-0.11.0-6.fc26.noarch
python2-pyparsing-2.1.10-3.fc26.noarch
python2-lxml-4.1.1-1.fc26.s390x
librados2-10.2.7-2.fc26.s390x
trousers-lib-0.3.13-7.fc26.s390x
libpaper-1.1.24-14.fc26.s390x
libdatrie-0.2.9-4.fc26.s390x
libsoup-2.58.2-1.fc26.s390x
passwd-0.79-9.fc26.s390x
bind99-libs-9.9.10-3.P3.fc26.s390x
python3-rpm-4.13.0.2-1.fc26.s390x
mock-core-configs-27.4-1.fc26.noarch
systemd-233-7.fc26.s390x
virglrenderer-0.6.0-1.20170210git76b3da97b.fc26.s390x
s390utils-ziomon-1.36.1-3.fc26.s390x
s390utils-osasnmpd-1.36.1-3.fc26.s390x
libXrandr-1.5.1-2.fc26.s390x
libglvnd-glx-1.0.0-1.fc26.s390x
texlive-ifxetex-svn19685.0.5-33.fc26.2.noarch
texlive-psnfss-svn33946.9.2a-33.fc26.2.noarch
texlive-dvipdfmx-def-svn40328-33.fc26.2.noarch
texlive-natbib-svn20668.8.31b-33.fc26.2.noarch
texlive-xdvi-bin-svn40750-33.20160520.fc26.2.s390x
texlive-cm-svn32865.0-33.fc26.2.noarch
texlive-beton-svn15878.0-33.fc26.2.noarch
texlive-fpl-svn15878.1.002-33.fc26.2.noarch
texlive-mflogo-svn38628-33.fc26.2.noarch
texlive-texlive-docindex-svn41430-33.fc26.2.noarch
texlive-luaotfload-bin-svn34647.0-33.20160520.fc26.2.noarch
texlive-koma-script-svn41508-33.fc26.2.noarch
texlive-pst-tree-svn24142.1.12-33.fc26.2.noarch
texlive-breqn-svn38099.0.98d-33.fc26.2.noarch
texlive-xetex-svn41438-33.fc26.2.noarch
gstreamer1-plugins-bad-free-1.12.3-1.fc26.s390x
xorg-x11-font-utils-7.5-33.fc26.s390x
ghostscript-fonts-5.50-36.fc26.noarch
libXext-devel-1.3.3-5.fc26.s390x
libusbx-devel-1.0.21-2.fc26.s390x
libglvnd-devel-1.0.0-1.fc26.s390x
emacs-25.3-3.fc26.s390x
alsa-lib-devel-1.1.4.1-1.fc26.s390x
kbd-2.0.4-2.fc26.s390x
dconf-0.26.0-2.fc26.s390x
ccache-3.3.4-1.fc26.s390x
glibc-static-2.25-12.fc26.s390x
mc-4.8.19-5.fc26.s390x
doxygen-1.8.13-9.fc26.s390x
dpkg-1.18.24-1.fc26.s390x
libtdb-1.3.13-1.fc26.s390x
python2-pynacl-1.1.1-1.fc26.s390x
nss-sysinit-3.34.0-1.0.fc26.s390x
kernel-4.13.16-202.fc26.s390x
perl-Filter-1.58-1.fc26.s390x
python2-pip-9.0.1-11.fc26.noarch
dnf-2.7.5-2.fc26.noarch
pcre2-utf16-10.23-11.fc26.s390x
glusterfs-devel-3.10.8-1.fc26.s390x
sssd-common-1.16.0-4.fc26.s390x
python2-sssdconfig-1.16.0-4.fc26.noarch
acpica-tools-20171110-1.fc26.s390x
glibc-debuginfo-2.24-10.fc25.s390x
fedora-repos-26-1.noarch
dejavu-fonts-common-2.35-4.fc26.noarch
bind99-license-9.9.10-3.P3.fc26.noarch
ncurses-libs-6.0-8.20170212.fc26.s390x
libpng-1.6.28-2.fc26.s390x
libICE-1.0.9-9.fc26.s390x
kmod-24-1.fc26.s390x
libseccomp-2.3.2-1.fc26.s390x
perl-Text-ParseWords-3.30-366.fc26.noarch
libtool-ltdl-2.4.6-17.fc26.s390x
perl-threads-2.16-1.fc26.s390x
libselinux-utils-2.6-7.fc26.s390x
userspace-rcu-0.9.3-2.fc26.s390x
libXfont-1.5.2-5.fc26.s390x
perl-Class-Inspector-1.31-3.fc26.noarch
perl-open-1.10-395.fc26.noarch
keyutils-libs-devel-1.5.10-1.fc26.s390x
isl-0.16.1-1.fc26.s390x
libsecret-0.18.5-3.fc26.s390x
compat-openssl10-1.0.2m-1.fc26.s390x
python3-iniparse-0.4-24.fc26.noarch
python3-dateutil-2.6.0-3.fc26.noarch
python3-firewall-0.4.4.5-1.fc26.noarch
python-enum34-1.1.6-1.fc26.noarch
python2-pygments-2.2.0-7.fc26.noarch
python2-dockerfile-parse-0.0.7-1.fc26.noarch
perl-Net-SSLeay-1.81-1.fc26.s390x
hostname-3.18-2.fc26.s390x
libtirpc-1.0.2-0.fc26.s390x
rpm-build-libs-4.13.0.2-1.fc26.s390x
libutempter-1.1.6-9.fc26.s390x
systemd-pam-233-7.fc26.s390x
pcre-utf16-8.41-3.fc26.s390x
libXinerama-1.1.3-7.fc26.s390x
mesa-libGL-17.2.4-2.fc26.s390x
texlive-amsfonts-svn29208.3.04-33.fc26.2.noarch
texlive-caption-svn41409-33.fc26.2.noarch
texlive-enumitem-svn24146.3.5.2-33.fc26.2.noarch
texlive-pdftex-def-svn22653.0.06d-33.fc26.2.noarch
texlive-xdvi-svn40768-33.fc26.2.noarch
texlive-courier-svn35058.0-33.fc26.2.noarch
texlive-charter-svn15878.0-33.fc26.2.noarch
texlive-graphics-def-svn41879-33.fc26.2.noarch
texlive-mfnfss-svn19410.0-33.fc26.2.noarch
texlive-texlive-en-svn41185-33.fc26.2.noarch
texlive-ifplatform-svn21156.0.4-33.fc26.2.noarch
texlive-ms-svn29849.0-33.fc26.2.noarch
texlive-pst-tools-svn34067.0.05-33.fc26.2.noarch
texlive-powerdot-svn38984-33.fc26.2.noarch
texlive-xetexconfig-svn41133-33.fc26.2.noarch
libvdpau-1.1.1-4.fc26.s390x
zlib-devel-1.2.11-2.fc26.s390x
gdk-pixbuf2-devel-2.36.9-1.fc26.s390x
libX11-devel-1.6.5-2.fc26.s390x
libtasn1-devel-4.12-1.fc26.s390x
libglvnd-core-devel-1.0.0-1.fc26.s390x
SDL2-devel-2.0.7-2.fc26.s390x
webkitgtk3-2.4.11-5.fc26.s390x
grubby-8.40-4.fc26.s390x
uboot-tools-2017.05-4.fc26.s390x
cracklib-dicts-2.9.6-5.fc26.s390x
texinfo-6.3-3.fc26.s390x
time-1.7-52.fc26.s390x
python2-deltarpm-3.6-19.fc26.s390x
nss-3.34.0-1.0.fc26.s390x
webkitgtk4-2.18.3-1.fc26.s390x
net-tools-2.0-0.43.20160912git.fc26.s390x
python2-setuptools-37.0.0-1.fc26.noarch
python2-dnf-2.7.5-2.fc26.noarch
pcre2-10.23-11.fc26.s390x
groff-base-1.22.3-10.fc26.s390x
python2-devel-2.7.14-4.fc26.s390x
python2-GitPython-2.1.7-2.fc26.noarch
boost-iostreams-1.63.0-10.fc26.s390x
gpg-pubkey-efe550f5-5220ba41
gpg-pubkey-81b46521-55b3ca9a
filesystem-3.2-40.fc26.s390x
basesystem-11-3.fc26.noarch
js-jquery-3.2.1-1.fc26.noarch
pcre-8.41-3.fc26.s390x
elfutils-libelf-0.169-1.fc26.s390x
libidn-1.33-2.fc26.s390x
libogg-1.3.2-6.fc26.s390x
slang-2.3.1a-2.fc26.s390x
apr-1.6.3-1.fc26.s390x
libxkbcommon-0.7.1-3.fc26.s390x
perl-IO-1.36-395.fc26.s390x
libvorbis-1.3.5-2.fc26.s390x
less-487-3.fc26.s390x
lttng-ust-2.9.0-2.fc26.s390x
OpenEXR-libs-2.2.0-6.fc26.s390x
ipset-libs-6.29-3.fc26.s390x
perl-XML-XPath-1.42-1.fc26.noarch
lua-filesystem-1.6.3-3.fc24.s390x
sqlite-3.20.1-1.fc26.s390x
gstreamer1-1.12.3-1.fc26.s390x
libpwquality-1.3.0-8.fc26.s390x
gettext-libs-0.19.8.1-9.fc26.s390x
python3-chardet-2.3.0-3.fc26.noarch
python3-slip-dbus-0.6.4-6.fc26.noarch
python-chardet-2.3.0-3.fc26.noarch
python2-pyasn1-0.2.3-1.fc26.noarch
python-slip-dbus-0.6.4-6.fc26.noarch
libarchive-3.2.2-4.fc26.s390x
libbabeltrace-1.5.2-2.fc26.s390x
cdparanoia-libs-10.2-22.fc26.s390x
krb5-workstation-1.15.2-4.fc26.s390x
python3-requests-kerberos-0.10.0-4.fc26.noarch
gpgme-1.8.0-12.fc26.s390x
python2-gpg-1.8.0-12.fc26.s390x
shadow-utils-4.3.1-3.fc26.s390x
cryptsetup-libs-1.7.5-1.fc26.s390x
kpartx-0.4.9-88.fc26.s390x
net-snmp-agent-libs-5.7.3-17.fc26.s390x
libXi-1.7.9-2.fc26.s390x
texlive-tetex-svn41059-33.fc26.2.noarch
texlive-tools-svn40934-33.fc26.2.noarch
texlive-bibtex-bin-svn40473-33.20160520.fc26.2.s390x
texlive-mfware-bin-svn40473-33.20160520.fc26.2.s390x
texlive-underscore-svn18261.0-33.fc26.2.noarch
texlive-avantgar-svn31835.0-33.fc26.2.noarch
texlive-anysize-svn15878.0-33.fc26.2.noarch
texlive-lineno-svn21442.4.41-33.fc26.2.noarch
texlive-mathpazo-svn15878.1.003-33.fc26.2.noarch
texlive-soul-svn15878.2.4-33.fc26.2.noarch
texlive-luatexbase-svn38550-33.fc26.2.noarch
texlive-listings-svn37534.1.6-33.fc26.2.noarch
texlive-pstricks-svn41321-33.fc26.2.noarch
texlive-metalogo-svn18611.0.12-33.fc26.2.noarch
texlive-dvipdfmx-svn41149-33.fc26.2.noarch
kbd-legacy-2.0.4-2.fc26.noarch
nspr-devel-4.17.0-1.fc26.s390x
ghostscript-x11-9.20-10.fc26.s390x
libXrender-devel-0.9.10-2.fc26.s390x
libxkbcommon-devel-0.7.1-3.fc26.s390x
mesa-libGL-devel-17.2.4-2.fc26.s390x
sqlite-devel-3.20.1-1.fc26.s390x
usbredir-devel-0.7.1-3.fc26.s390x
libcap-devel-2.25-5.fc26.s390x
brlapi-devel-0.6.6-5.fc26.s390x
fedora-upgrade-27.1-1.fc26.noarch
python3-pygpgme-0.3-22.fc26.s390x
pinentry-0.9.7-3.fc26.s390x
perl-Test-Harness-3.39-1.fc26.noarch
qemu-sanity-check-nodeps-1.1.5-6.fc26.s390x
libldb-1.1.29-5.fc26.s390x
python-libxml2-2.9.4-2.fc26.s390x
nss-util-devel-3.34.0-1.0.fc26.s390x
vim-filesystem-8.0.1360-1.fc26.s390x
webkitgtk4-plugin-process-gtk2-2.18.3-1.fc26.s390x
python2-2.7.14-4.fc26.s390x
libwayland-cursor-1.13.0-3.fc26.s390x
mariadb-config-10.1.29-1.fc26.s390x
gdb-headless-8.0.1-33.fc26.s390x
pulseaudio-libs-devel-11.1-7.fc26.s390x
curl-7.53.1-13.fc26.s390x
json-c-0.12.1-5.fc26.s390x
gpg-pubkey-34ec9cba-54e38751
gpg-pubkey-030d5aed-55b577f0
setup-2.10.5-2.fc26.noarch
lato-fonts-2.015-3.fc26.noarch
web-assets-filesystem-5-5.fc26.noarch
libsepol-2.6-2.fc26.s390x
libcap-2.25-5.fc26.s390x
tcp_wrappers-libs-7.6-85.fc26.s390x
libnl3-3.3.0-1.fc26.s390x
pixman-0.34.0-3.fc26.s390x
lzo-2.08-9.fc26.s390x
perl-5.24.3-395.fc26.s390x
libnl3-cli-3.3.0-1.fc26.s390x
gpm-libs-1.20.7-10.fc26.s390x
libgo-7.2.1-2.fc26.s390x
iso-codes-3.74-2.fc26.noarch
ipset-6.29-3.fc26.s390x
lua-term-0.07-1.fc25.s390x
libdb-utils-5.3.28-24.fc26.s390x
system-python-libs-3.6.3-2.fc26.s390x
dbus-glib-0.108-2.fc26.s390x
pam-1.3.0-2.fc26.s390x
avahi-glib-0.6.32-7.fc26.s390x
python2-dateutil-2.6.0-3.fc26.noarch
python3-asn1crypto-0.23.0-1.fc26.noarch
python3-slip-0.6.4-6.fc26.noarch
python-backports-ssl_match_hostname-3.5.0.1-4.fc26.noarch
python2-pyOpenSSL-16.2.0-6.fc26.noarch
python-slip-0.6.4-6.fc26.noarch
nss-pem-1.0.3-3.fc26.s390x
fipscheck-1.5.0-1.fc26.s390x
elfutils-0.169-1.fc26.s390x
cyrus-sasl-lib-2.1.26-32.fc26.s390x
libkadm5-1.15.2-4.fc26.s390x
python3-kerberos-1.2.5-3.fc26.s390x
rpmconf-1.0.19-1.fc26.noarch
libsemanage-2.6-4.fc26.s390x
device-mapper-libs-1.02.137-6.fc26.s390x
yum-3.4.3-512.fc26.noarch
device-mapper-multipath-0.4.9-88.fc26.s390x
net-snmp-5.7.3-17.fc26.s390x
libXtst-1.2.3-2.fc26.s390x
libXxf86vm-1.1.4-4.fc26.s390x
texlive-amsmath-svn41561-33.fc26.2.noarch
texlive-xkeyval-svn35741.2.7a-33.fc26.2.noarch
texlive-bibtex-svn40768-33.fc26.2.noarch
texlive-mfware-svn40768-33.fc26.2.noarch
texlive-wasy-svn35831.0-33.fc26.2.noarch
texlive-bookman-svn31835.0-33.fc26.2.noarch
texlive-babel-english-svn30264.3.3p-33.fc26.2.noarch
texlive-fix2col-svn38770-33.fc26.2.noarch
texlive-mdwtools-svn15878.1.05.4-33.fc26.2.noarch
texlive-tex-gyre-math-svn41264-33.fc26.2.noarch
texlive-luaotfload-svn40902-33.fc26.2.noarch
texlive-showexpl-svn32737.v0.3l-33.fc26.2.noarch
texlive-pstricks-add-svn40744-33.fc26.2.noarch
texlive-l3experimental-svn41163-33.fc26.2.noarch
texlive-xetex-bin-svn41091-33.20160520.fc26.2.s390x
kbd-misc-2.0.4-2.fc26.noarch
libpng-devel-1.6.28-2.fc26.s390x
ghostscript-core-9.20-10.fc26.s390x
libXfixes-devel-5.0.3-2.fc26.s390x
libverto-devel-0.2.6-7.fc26.s390x
mesa-libEGL-devel-17.2.4-2.fc26.s390x
popt-devel-1.16-12.fc26.s390x
readline-devel-7.0-5.fc26.s390x
cyrus-sasl-devel-2.1.26-32.fc26.s390x
sendmail-8.15.2-19.fc26.s390x
systemd-bootchart-231-3.fc26.s390x
perl-IO-Socket-SSL-2.049-1.fc26.noarch
python2-enchant-1.6.10-1.fc26.noarch
perl-generators-1.10-2.fc26.noarch
createrepo-0.10.3-11.fc26.noarch
webkitgtk4-jsc-2.18.3-1.fc26.s390x
vim-common-8.0.1360-1.fc26.s390x
nss-tools-3.34.0-1.0.fc26.s390x
glusterfs-api-3.10.8-1.fc26.s390x
pulseaudio-libs-glib2-11.1-7.fc26.s390x
mariadb-common-10.1.29-1.fc26.s390x
dhcp-libs-4.3.5-10.fc26.s390x
pcre2-devel-10.23-11.fc26.s390x
libtiff-4.0.9-1.fc26.s390x
kernel-headers-4.14.8-200.fc26.s390x
fontpackages-filesystem-1.44-18.fc26.noarch
vte-profile-0.48.4-1.fc26.s390x
texlive-kpathsea-doc-svn41139-33.fc26.2.noarch
zlib-1.2.11-2.fc26.s390x
readline-7.0-5.fc26.s390x
libattr-2.4.47-18.fc26.s390x
libgomp-7.2.1-2.fc26.s390x
libglvnd-1.0.0-1.fc26.s390x
lz4-libs-1.8.0-1.fc26.s390x
libcrypt-nss-2.25-12.fc26.s390x
jansson-2.10-2.fc26.s390x
perl-File-Path-2.12-367.fc26.noarch
perl-Unicode-EastAsianWidth-1.33-9.fc26.noarch
hunspell-1.5.4-2.fc26.s390x
libasyncns-0.8-11.fc26.s390x
libnetfilter_conntrack-1.0.6-2.fc26.s390x
perl-Storable-2.56-368.fc26.s390x
autoconf-2.69-24.fc26.noarch
device-mapper-persistent-data-0.6.3-5.fc26.s390x
quota-4.03-9.fc26.s390x
crypto-policies-20170606-1.git7c32281.fc26.noarch
glib2-2.52.3-2.fc26.s390x
python2-idna-2.5-1.fc26.noarch
python2-libcomps-0.1.8-3.fc26.s390x
gsettings-desktop-schemas-3.24.1-1.fc26.s390x
javapackages-tools-4.7.0-17.fc26.noarch
libselinux-python3-2.6-7.fc26.s390x
python-backports-1.0-9.fc26.s390x
python2-cryptography-2.0.2-2.fc26.s390x
libselinux-python-2.6-7.fc26.s390x
Lmod-7.5.3-1.fc26.s390x
fipscheck-lib-1.5.0-1.fc26.s390x
elfutils-libs-0.169-1.fc26.s390x
krb5-libs-1.15.2-4.fc26.s390x
libuser-0.62-6.fc26.s390x
python2-requests-kerberos-0.10.0-4.fc26.noarch
npth-1.5-1.fc26.s390x
packagedb-cli-2.14.1-2.fc26.noarch
ustr-1.0.4-22.fc26.s390x
device-mapper-1.02.137-6.fc26.s390x
polkit-pkla-compat-0.1-8.fc26.s390x
fakeroot-1.22-1.fc26.s390x
libXmu-1.1.2-5.fc26.s390x
cairo-gobject-1.14.10-1.fc26.s390x
texlive-booktabs-svn40846-33.fc26.2.noarch
texlive-dvips-bin-svn40987-33.20160520.fc26.2.s390x
texlive-float-svn15878.1.3d-33.fc26.2.noarch
texlive-tex-svn40793-33.fc26.2.noarch
texlive-fancyref-svn15878.0.9c-33.fc26.2.noarch
texlive-manfnt-font-svn35799.0-33.fc26.2.noarch
texlive-cmap-svn41168-33.fc26.2.noarch
texlive-hyph-utf8-svn41189-33.fc26.2.noarch
texlive-paralist-svn39247-33.fc26.2.noarch
texlive-trimspaces-svn15878.1.1-33.fc26.2.noarch
texlive-tipa-svn29349.1.3-33.fc26.2.noarch
texlive-l3packages-svn41246-33.fc26.2.noarch
texlive-pst-pdf-svn31660.1.1v-33.fc26.2.noarch
texlive-tex-gyre-svn18651.2.004-33.fc26.2.noarch
texlive-beamer-svn36461.3.36-33.fc26.2.noarch
gd-2.2.5-1.fc26.s390x
elfutils-libelf-devel-0.169-1.fc26.s390x
gc-devel-7.6.0-2.fc26.s390x
libXft-devel-2.3.2-5.fc26.s390x
krb5-devel-1.15.2-4.fc26.s390x
rpm-devel-4.13.0.2-1.fc26.s390x
pcre-static-8.41-3.fc26.s390x
bluez-libs-devel-5.46-6.fc26.s390x
systemtap-3.2-2.fc26.s390x
trousers-0.3.13-7.fc26.s390x
iproute-tc-4.11.0-1.fc26.s390x
python2-sphinx-1.5.5-1.fc26.noarch
libgnome-keyring-3.12.0-8.fc26.s390x
perl-File-ShareDir-1.102-8.fc26.noarch
python2-paramiko-2.2.1-1.fc26.noarch
python2-openidc-client-0.4.0-1.20171113git54dee6e.fc26.noarch
openssh-server-7.5p1-4.fc26.s390x
pulseaudio-libs-11.1-7.fc26.s390x
python2-bodhi-2.12.2-3.fc26.noarch
lua-libs-5.3.4-7.fc26.s390x
dhcp-common-4.3.5-10.fc26.noarch
python3-pip-9.0.1-11.fc26.noarch
python3-sssdconfig-1.16.0-4.fc26.noarch
gpg-pubkey-95a43f54-5284415a
gpg-pubkey-fdb19c98-56fd6333
gpg-pubkey-64dab85d-57d33e22
tzdata-2017c-1.fc26.noarch
firewalld-filesystem-0.4.4.5-1.fc26.noarch
xkeyboard-config-2.21-3.fc26.noarch
texlive-texlive-common-doc-svn40682-33.fc26.2.noarch
ncurses-base-6.0-8.20170212.fc26.noarch
libselinux-2.6-7.fc26.s390x
bzip2-libs-1.0.6-22.fc26.s390x
libdb-5.3.28-24.fc26.s390x
mpfr-3.1.5-3.fc26.s390x
file-libs-5.30-11.fc26.s390x
libunistring-0.9.7-1.fc26.s390x
libxslt-1.1.29-1.fc26.s390x
libtasn1-4.12-1.fc26.s390x
gdbm-1.13-1.fc26.s390x
libepoxy-1.4.3-1.fc26.s390x
libpsl-0.18.0-1.fc26.s390x
perl-Carp-1.40-366.fc26.noarch
e2fsprogs-libs-1.43.4-2.fc26.s390x
libmnl-1.0.4-2.fc26.s390x
openjpeg2-2.2.0-3.fc26.s390x
perl-PathTools-3.63-367.fc26.s390x
perl-File-Temp-0.230.400-2.fc26.noarch
perl-XML-Parser-2.44-6.fc26.s390x
libss-1.43.4-2.fc26.s390x
ilmbase-2.2.0-8.fc26.s390x
fuse-libs-2.9.7-2.fc26.s390x
libdaemon-0.14-11.fc26.s390x
libbasicobjects-0.1.1-34.fc26.s390x
iptables-1.6.1-2.fc26.s390x
perl-TermReadKey-2.37-2.fc26.s390x
perl-Term-ANSIColor-4.06-2.fc26.noarch
perl-libintl-perl-1.26-2.fc26.s390x
usbredir-0.7.1-3.fc26.s390x
fftw-libs-double-3.3.5-4.fc26.s390x
rsync-3.1.2-5.fc26.s390x
libiscsi-1.15.0-3.fc26.s390x
ttmkfdir-3.0.9-49.fc26.s390x
texlive-base-2016-33.20160520.fc26.1.noarch
python2-six-1.10.0-9.fc26.noarch
atk-2.24.0-1.fc26.s390x
python2-kitchen-1.2.4-6.fc26.noarch
guile-2.0.14-1.fc26.s390x
desktop-file-utils-0.23-3.fc26.s390x
pyxattr-0.5.3-10.fc26.s390x
shared-mime-info-1.8-2.fc26.s390x
libyaml-0.1.7-2.fc26.s390x
python3-PyYAML-3.12-3.fc26.s390x
openssh-7.5p1-4.fc26.s390x
kernel-core-4.13.16-202.fc26.s390x
perl-Git-2.13.6-2.fc26.noarch
python3-dnf-plugins-extras-common-2.0.4-1.fc26.noarch
openssl-1.1.0g-1.fc26.s390x
gawk-4.1.4-6.fc26.s390x
gnutls-3.5.16-4.fc26.s390x
openldap-2.4.45-2.fc26.s390x
bind-license-9.11.1-4.P3.fc26.noarch
python2-gluster-3.10.8-1.fc26.s390x
selinux-policy-3.13.1-260.17.fc26.noarch
linux-firmware-20171215-81.git2451bb22.fc26.noarch
libpkgconf-1.3.12-1.fc26.s390x
NetworkManager-libnm-1.8.2-4.fc26.s390x
gnutls-devel-3.5.16-4.fc26.s390x
mariadb-libs-10.1.29-1.fc26.s390x
python2-urllib3-1.20-2.fc26.noarch
sssd-nfs-idmap-1.16.0-4.fc26.s390x
libsss_sudo-1.16.0-4.fc26.s390x
libgudev-232-1.fc26.s390x
python3-libs-3.6.3-2.fc26.s390x
python3-javapackages-4.7.0-17.fc26.noarch
python3-ply-3.9-3.fc26.noarch
python3-systemd-234-1.fc26.s390x
python3-requests-2.13.0-1.fc26.noarch
blktrace-1.1.0-4.fc26.s390x
python2-asn1crypto-0.23.0-1.fc26.noarch
python2-cffi-1.9.1-2.fc26.s390x
python2-sphinx_rtd_theme-0.2.4-1.fc26.noarch
lua-json-1.3.2-7.fc26.noarch
libcephfs1-10.2.7-2.fc26.s390x
glib-networking-2.50.0-2.fc26.s390x
elfutils-default-yama-scope-0.169-1.fc26.noarch
GeoIP-GeoLite-data-2017.10-1.fc26.noarch
libedit-3.1-17.20160618cvs.fc26.s390x
libverto-libev-0.2.6-7.fc26.s390x
libserf-1.3.9-3.fc26.s390x
createrepo_c-0.10.0-9.fc26.s390x
python2-kerberos-1.2.5-3.fc26.s390x
libsrtp-1.5.4-4.fc26.s390x
lzo-minilzo-2.08-9.fc26.s390x
librepo-1.8.0-1.fc26.s390x
koji-1.14.0-1.fc26.noarch
sg3_utils-1.42-1.fc26.s390x
libobjc-7.2.1-2.fc26.s390x
policycoreutils-2.6-6.fc26.s390x
libdrm-2.4.88-1.fc26.s390x
kernel-core-4.13.13-200.fc26.s390x
systemtap-client-3.2-2.fc26.s390x
lvm2-2.02.168-6.fc26.s390x
device-mapper-multipath-libs-0.4.9-88.fc26.s390x
libfdt-1.4.5-1.fc26.s390x
s390utils-cmsfs-1.36.1-3.fc26.s390x
libXdamage-1.1.4-9.fc26.s390x
libXaw-1.0.13-5.fc26.s390x
brltty-5.5-5.fc26.s390x
librsvg2-2.40.18-1.fc26.s390x
texlive-tetex-bin-svn36770.0-33.20160520.fc26.2.noarch
texlive-etex-pkg-svn39355-33.fc26.2.noarch
texlive-graphics-svn41015-33.fc26.2.noarch
texlive-dvips-svn41149-33.fc26.2.noarch
texlive-zapfding-svn31835.0-33.fc26.2.noarch
texlive-footmisc-svn23330.5.5b-33.fc26.2.noarch
texlive-makeindex-svn40768-33.fc26.2.noarch
texlive-pst-ovl-svn40873-33.fc26.2.noarch
texlive-texlive-scripts-svn41433-33.fc26.2.noarch
texlive-ltabptch-svn17533.1.74d-33.fc26.2.noarch
texlive-euro-svn22191.1.1-33.fc26.2.noarch
texlive-mflogo-font-svn36898.1.002-33.fc26.2.noarch
texlive-zapfchan-svn31835.0-33.fc26.2.noarch
texlive-cmextra-svn32831.0-33.fc26.2.noarch
texlive-finstrut-svn21719.0.5-33.fc26.2.noarch
texlive-hyphen-base-svn41138-33.fc26.2.noarch
texlive-marginnote-svn41382-33.fc26.2.noarch
texlive-parallel-svn15878.0-33.fc26.2.noarch
texlive-sepnum-svn20186.2.0-33.fc26.2.noarch
texlive-environ-svn33821.0.3-33.fc26.2.noarch
texlive-type1cm-svn21820.0-33.fc26.2.noarch
texlive-xunicode-svn30466.0.981-33.fc26.2.noarch
texlive-attachfile-svn38830-33.fc26.2.noarch
texlive-fontspec-svn41262-33.fc26.2.noarch
texlive-fancyvrb-svn18492.2.8-33.fc26.2.noarch
texlive-pst-pdf-bin-svn7838.0-33.20160520.fc26.2.noarch
texlive-xcolor-svn41044-33.fc26.2.noarch
texlive-pdfpages-svn40638-33.fc26.2.noarch
texlive-sansmathaccent-svn30187.0-33.fc26.2.noarch
texlive-ucs-svn35853.2.2-33.fc26.2.noarch
texlive-dvipdfmx-bin-svn40273-33.20160520.fc26.2.s390x
libotf-0.9.13-8.fc26.s390x
go-srpm-macros-2-8.fc26.noarch
pcre-devel-8.41-3.fc26.s390x
mesa-libwayland-egl-devel-17.2.4-2.fc26.s390x
ghostscript-9.20-10.fc26.s390x
libcephfs_jni-devel-10.2.7-2.fc26.s390x
libXdamage-devel-1.1.4-9.fc26.s390x
freetype-devel-2.7.1-9.fc26.s390x
ncurses-devel-6.0-8.20170212.fc26.s390x
fontconfig-devel-2.12.6-4.fc26.s390x
cairo-devel-1.14.10-1.fc26.s390x
libselinux-devel-2.6-7.fc26.s390x
guile-devel-2.0.14-1.fc26.s390x
libcap-ng-devel-0.7.8-3.fc26.s390x
bash-completion-2.6-1.fc26.noarch
libXevie-1.0.3-12.fc26.s390x
kernel-4.13.13-200.fc26.s390x
audit-2.8.1-1.fc26.s390x
gcc-objc-7.2.1-2.fc26.s390x
gcc-go-7.2.1-2.fc26.s390x
python-firewall-0.4.4.5-1.fc26.noarch
python3-html5lib-0.999-13.fc26.noarch
python2-simplejson-3.10.0-3.fc26.s390x
flex-2.6.1-3.fc26.s390x
telnet-0.17-69.fc26.s390x
gpg-pubkey-8e1431d5-53bcbac7
emacs-filesystem-25.3-3.fc26.noarch
fontawesome-fonts-4.7.0-2.fc26.noarch
fontawesome-fonts-web-4.7.0-2.fc26.noarch
tzdata-java-2017c-1.fc26.noarch
rpmconf-base-1.0.19-1.fc26.noarch
glibc-2.25-12.fc26.s390x
info-6.3-3.fc26.s390x
sqlite-libs-3.20.1-1.fc26.s390x
texlive-lib-2016-33.20160520.fc26.1.s390x
sed-4.4-1.fc26.s390x
libicu-57.1-7.fc26.s390x
libcap-ng-0.7.8-3.fc26.s390x
nettle-3.3-2.fc26.s390x
libidn2-2.0.4-1.fc26.s390x
lcms2-2.8-3.fc26.s390x
dbus-libs-1.11.18-1.fc26.s390x
perl-Exporter-5.72-367.fc26.noarch
unzip-6.0-34.fc26.s390x
iproute-4.11.0-1.fc26.s390x
zip-3.0-18.fc26.s390x
perl-constant-1.33-368.fc26.noarch
perl-MIME-Base64-3.15-366.fc26.s390x
lua-posix-33.3.1-4.fc26.s390x
bzip2-1.0.6-22.fc26.s390x
libstdc++-devel-7.2.1-2.fc26.s390x
hyphen-2.8.8-6.fc26.s390x
libdvdread-5.0.3-4.fc26.s390x
libcollection-0.7.0-34.fc26.s390x
libdvdnav-5.0.3-5.fc26.s390x
perl-version-0.99.18-1.fc26.s390x
perl-Encode-2.88-6.fc26.s390x
automake-1.15-9.fc26.noarch
plymouth-core-libs-0.9.3-0.7.20160620git0e65b86c.fc26.s390x
hesiod-3.2.1-7.fc26.s390x
jasper-libs-2.0.14-1.fc26.s390x
mozjs17-17.0.0-18.fc26.s390x
fontconfig-2.12.6-4.fc26.s390x
harfbuzz-1.4.4-1.fc26.s390x
alsa-lib-1.1.4.1-1.fc26.s390x
make-4.2.1-2.fc26.s390x
gobject-introspection-1.52.1-1.fc26.s390x
hicolor-icon-theme-0.15-5.fc26.noarch
gdk-pixbuf2-2.36.9-1.fc26.s390x
libgusb-0.2.11-1.fc26.s390x
libtalloc-2.1.10-2.fc26.s390x
libdhash-0.5.0-34.fc26.s390x
python2-bcrypt-3.1.4-2.fc26.s390x
PyYAML-3.12-3.fc26.s390x
nss-softokn-freebl-3.34.0-1.0.fc26.s390x
kernel-modules-4.13.16-202.fc26.s390x
git-2.13.6-2.fc26.s390x
gnupg2-smime-2.2.3-1.fc26.s390x
openssl-devel-1.1.0g-1.fc26.s390x
python2-dnf-plugins-extras-common-2.0.4-1.fc26.noarch
copy-jdk-configs-3.3-2.fc26.noarch
glusterfs-client-xlators-3.10.8-1.fc26.s390x
libcurl-7.53.1-13.fc26.s390x
bind-libs-lite-9.11.1-4.P3.fc26.s390x
glusterfs-extra-xlators-3.10.8-1.fc26.s390x
python3-setuptools-37.0.0-1.fc26.noarch
kernel-core-4.14.8-200.fc26.s390x
pkgconf-1.3.12-1.fc26.s390x
NetworkManager-1.8.2-4.fc26.s390x
libjpeg-turbo-devel-1.5.3-1.fc26.s390x
lua-5.3.4-7.fc26.s390x
boost-thread-1.63.0-10.fc26.s390x
wget-1.19.2-2.fc26.s390x
libwebp-0.6.1-1.fc26.s390x
kernel-devel-4.14.8-200.fc26.s390x
python3-lxml-4.1.1-1.fc26.s390x
python3-ordered-set-2.0.0-6.fc26.noarch
python3-rpmconf-1.0.19-1.fc26.noarch
python-offtrac-0.1.0-9.fc26.noarch
python2-pycparser-2.14-10.fc26.noarch
python2-sphinx-theme-alabaster-0.7.9-3.fc26.noarch
python2-pysocks-1.6.7-1.fc26.noarch
lua-lpeg-1.0.1-2.fc26.s390x
poppler-0.52.0-10.fc26.s390x
libproxy-0.4.15-2.fc26.s390x
crontabs-1.11-14.20150630git.fc26.noarch
java-1.8.0-openjdk-headless-1.8.0.151-1.b12.fc26.s390x
libev-4.24-2.fc26.s390x
libsigsegv-2.11-1.fc26.s390x
fedora-cert-0.6.0.1-2.fc26.noarch
drpm-0.3.0-6.fc26.s390x
createrepo_c-libs-0.10.0-9.fc26.s390x
python2-cccolutils-1.5-3.fc26.s390x
m17n-lib-1.7.0-6.fc26.s390x
lsscsi-0.28-4.fc26.s390x
python2-koji-1.14.0-1.fc26.noarch
python3-koji-1.14.0-1.fc26.noarch
python3-gpg-1.8.0-12.fc26.s390x
sg3_utils-libs-1.42-1.fc26.s390x
SDL2-2.0.7-2.fc26.s390x
util-linux-2.30.2-1.fc26.s390x
rpcbind-0.2.4-8.rc2.fc26.s390x
s390utils-mon_statd-1.36.1-3.fc26.s390x
GConf2-3.2.6-17.fc26.s390x
systemd-container-233-7.fc26.s390x
usermode-1.111-9.fc26.s390x
pcre-utf32-8.41-3.fc26.s390x
libXt-1.1.5-4.fc26.s390x
libXpm-3.5.12-2.fc26.s390x
at-spi2-core-2.24.1-1.fc26.s390x
cairo-1.14.10-1.fc26.s390x
texlive-kpathsea-bin-svn40473-33.20160520.fc26.2.s390x
texlive-ifluatex-svn41346-33.fc26.2.noarch
texlive-babel-svn40706-33.fc26.2.noarch
texlive-colortbl-svn29803.v1.0a-33.fc26.2.noarch
texlive-marvosym-svn29349.2.2a-33.fc26.2.noarch
texlive-euler-svn17261.2.5-33.fc26.2.noarch
texlive-latexconfig-svn40274-33.fc26.2.noarch
texlive-plain-svn40274-33.fc26.2.noarch
texlive-texconfig-bin-svn29741.0-33.20160520.fc26.2.noarch
giflib-4.1.6-16.fc26.s390x
texlive-microtype-svn41127-33.fc26.2.noarch
texlive-eurosym-svn17265.1.4_subrfix-33.fc26.2.noarch
texlive-symbol-svn31835.0-33.fc26.2.noarch
texlive-chngcntr-svn17157.1.0a-33.fc26.2.noarch
texlive-euenc-svn19795.0.1h-33.fc26.2.noarch
texlive-luatex-svn40963-33.fc26.2.noarch
texlive-knuth-local-svn38627-33.fc26.2.noarch
texlive-mparhack-svn15878.1.4-33.fc26.2.noarch
texlive-rcs-svn15878.0-33.fc26.2.noarch
texlive-texlive-msg-translations-svn41431-33.fc26.2.noarch
texlive-updmap-map-svn41159-33.fc26.2.noarch
texlive-geometry-svn19716.5.6-33.fc26.2.noarch
texlive-memoir-svn41203-33.fc26.2.noarch
texlive-l3kernel-svn41246-33.fc26.2.noarch
texlive-pst-eps-svn15878.1.0-33.fc26.2.noarch
texlive-pst-text-svn15878.1.00-33.fc26.2.noarch
texlive-amscls-svn36804.0-33.fc26.2.noarch
texlive-pst-slpe-svn24391.1.31-33.fc26.2.noarch
texlive-extsizes-svn17263.1.4a-33.fc26.2.noarch
texlive-xetex-def-svn40327-33.fc26.2.noarch
texlive-collection-latex-svn41011-33.20160520.fc26.2.noarch
gstreamer1-plugins-base-1.12.3-1.fc26.s390x
fpc-srpm-macros-1.1-2.fc26.noarch
xorg-x11-proto-devel-7.7-22.fc26.noarch
urw-fonts-2.4-23.fc26.noarch
atk-devel-2.24.0-1.fc26.s390x
ImageMagick-libs-6.9.9.22-1.fc26.s390x
libxcb-devel-1.12-3.fc26.s390x
libXrandr-devel-1.5.1-2.fc26.s390x
libcom_err-devel-1.43.4-2.fc26.s390x
dbus-devel-1.11.18-1.fc26.s390x
libepoxy-devel-1.4.3-1.fc26.s390x
libicu-devel-57.1-7.fc26.s390x
p11-kit-devel-0.23.9-2.fc26.s390x
rpm-build-4.13.0.2-1.fc26.s390x
libssh2-devel-1.8.0-5.fc26.s390x
graphviz-2.40.1-4.fc26.s390x
zlib-static-1.2.11-2.fc26.s390x
mesa-libgbm-devel-17.2.4-2.fc26.s390x
dracut-config-rescue-046-3.1.fc26.s390x
screen-4.6.2-1.fc26.s390x
python-osbs-client-0.39.1-1.fc26.noarch
gcc-gdb-plugin-7.2.1-2.fc26.s390x
pyparsing-2.1.10-3.fc26.noarch
python3-pyasn1-0.2.3-1.fc26.noarch
python2-html5lib-0.999-13.fc26.noarch
teamd-1.27-1.fc26.s390x
hardlink-1.3-1.fc26.s390x
chrpath-0.16-4.fc26.s390x
libgcc-7.2.1-2.fc26.s390x
python-rpm-macros-3-20.fc26.noarch
texlive-pdftex-doc-svn41149-33.fc26.2.noarch
glibc-common-2.25-12.fc26.s390x
libstdc++-7.2.1-2.fc26.s390x
nspr-4.17.0-1.fc26.s390x
grep-3.1-1.fc26.s390x
libgcrypt-1.7.9-1.fc26.s390x
libacl-2.2.52-15.fc26.s390x
cpio-2.12-4.fc26.s390x
libatomic_ops-7.4.4-2.fc26.s390x
p11-kit-0.23.9-2.fc26.s390x
gc-7.6.0-2.fc26.s390x
psmisc-22.21-9.fc26.s390x
systemd-libs-233-7.fc26.s390x
xz-5.2.3-2.fc26.s390x
perl-libs-5.24.3-395.fc26.s390x
kmod-libs-24-1.fc26.s390x
libpcap-1.8.1-3.fc26.s390x
perl-macros-5.24.3-395.fc26.s390x
perl-parent-0.236-2.fc26.noarch
perl-Text-Unidecode-1.30-2.fc26.noarch
newt-0.52.20-1.fc26.s390x
libcomps-0.1.8-3.fc26.s390x
libfontenc-1.1.3-4.fc26.s390x
ipcalc-0.2.0-1.fc26.s390x
libnfnetlink-1.0.1-9.fc26.s390x
libref_array-0.1.5-34.fc26.s390x
perl-Term-Cap-1.17-366.fc26.noarch
perl-Digest-1.17-367.fc26.noarch
perl-SelfLoader-1.23-395.fc26.noarch
perl-Pod-Simple-3.35-2.fc26.noarch
perl-URI-1.71-6.fc26.noarch
cpp-7.2.1-2.fc26.s390x
attr-2.4.47-18.fc26.s390x
gmp-c++-6.1.2-4.fc26.s390x
xapian-core-libs-1.4.4-1.fc26.s390x
system-python-3.6.3-2.fc26.s390x
harfbuzz-icu-1.4.4-1.fc26.s390x
libtevent-0.9.34-1.fc26.s390x
http-parser-2.7.1-5.fc26.s390x
libsodium-1.0.14-1.fc26.s390x
python-gssapi-1.2.0-5.fc26.s390x
nss-softokn-3.34.0-1.0.fc26.s390x
gnupg2-2.2.3-1.fc26.s390x
nss-devel-3.34.0-1.0.fc26.s390x
vim-minimal-8.0.1360-1.fc26.s390x
perl-libnet-3.11-1.fc26.noarch
kernel-devel-4.13.16-202.fc26.s390x
python2-libs-2.7.14-4.fc26.s390x
libwayland-client-1.13.0-3.fc26.s390x
python3-dnf-2.7.5-2.fc26.noarch
glusterfs-fuse-3.10.8-1.fc26.s390x
pcre2-utf32-10.23-11.fc26.s390x
kernel-modules-4.14.8-200.fc26.s390x
pkgconf-pkg-config-1.3.12-1.fc26.s390x
NetworkManager-ppp-1.8.2-4.fc26.s390x
wayland-devel-1.13.0-3.fc26.s390x
kernel-4.14.8-200.fc26.s390x
boost-random-1.63.0-10.fc26.s390x
libmicrohttpd-0.9.58-1.fc26.s390x
mailx-12.5-24.fc26.s390x
NetworkManager-glib-1.8.2-4.fc26.s390x
libcroco-0.6.12-1.fc26.s390x
libssh2-1.8.0-5.fc26.s390x
json-glib-1.2.6-1.fc26.s390x
libevent-2.0.22-3.fc26.s390x
gdk-pixbuf2-modules-2.36.9-1.fc26.s390x
colord-libs-1.3.5-1.fc26.s390x
python3-magic-5.30-11.fc26.noarch
python3-gobject-base-3.24.1-1.fc26.s390x
python3-pyroute2-0.4.13-1.fc26.noarch
python3-pysocks-1.6.7-1.fc26.noarch
python2-click-6.7-3.fc26.noarch
python-munch-2.1.0-2.fc26.noarch
python2-ply-3.9-3.fc26.noarch
python2-snowballstemmer-1.2.1-3.fc26.noarch
python-magic-5.30-11.fc26.noarch
python-beautifulsoup4-4.6.0-1.fc26.noarch
python2-gitdb-2.0.3-1.fc26.noarch
librados-devel-10.2.7-2.fc26.s390x
libcacard-2.5.3-1.fc26.s390x
libmodman-2.0.1-13.fc26.s390x
zziplib-0.13.62-8.fc26.s390x
lksctp-tools-1.0.16-6.fc26.s390x
procmail-3.22-44.fc26.s390x
libthai-0.1.25-2.fc26.s390x
libpipeline-1.4.1-3.fc26.s390x
python2-pycurl-7.43.0-8.fc26.s390x
deltarpm-3.6-19.fc26.s390x
subversion-libs-1.9.7-1.fc26.s390x
python-krbV-1.0.90-13.fc26.s390x
m17n-db-1.7.0-8.fc26.noarch
linux-atm-libs-2.5.1-17.fc26.s390x
python2-rpm-4.13.0.2-1.fc26.s390x
python2-librepo-1.8.0-1.fc26.s390x
python2-dnf-plugins-core-2.1.5-1.fc26.noarch
qrencode-libs-3.4.4-1.fc26.s390x
s390utils-iucvterm-1.36.1-3.fc26.s390x
libsmartcols-2.30.2-1.fc26.s390x
dbus-1.11.18-1.fc26.s390x
systemd-udev-233-7.fc26.s390x
device-mapper-event-1.02.137-6.fc26.s390x
polkit-0.113-8.fc26.s390x
mock-1.4.7-2.fc26.noarch
libwmf-lite-0.2.8.4-53.fc26.s390x
libXcomposite-0.4.4-9.fc26.s390x
libXcursor-1.1.14-8.fc26.s390x
at-spi2-atk-2.24.1-1.fc26.s390x
pango-1.40.12-1.fc26.s390x
texlive-metafont-bin-svn40987-33.20160520.fc26.2.s390x
texlive-url-svn32528.3.4-33.fc26.2.noarch
texlive-fp-svn15878.0-33.fc26.2.noarch
texlive-latex-fonts-svn28888.0-33.fc26.2.noarch
texlive-mptopdf-bin-svn18674.0-33.20160520.fc26.2.noarch
texlive-fancybox-svn18304.1.4-33.fc26.2.noarch
texlive-lua-alt-getopt-svn29349.0.7.0-33.fc26.2.noarch
texlive-tex-bin-svn40987-33.20160520.fc26.2.s390x
texlive-texconfig-svn40768-33.fc26.2.noarch
texlive-wasy2-ps-svn35830.0-33.fc26.2.noarch
texlive-psfrag-svn15878.3.04-33.fc26.2.noarch
texlive-helvetic-svn31835.0-33.fc26.2.noarch
texlive-times-svn35058.0-33.fc26.2.noarch
texlive-cite-svn36428.5.5-33.fc26.2.noarch
texlive-fancyhdr-svn15878.3.1-33.fc26.2.noarch
texlive-luatex-bin-svn41091-33.20160520.fc26.2.s390x
texlive-lm-math-svn36915.1.959-33.fc26.2.noarch
texlive-ntgclass-svn15878.2.1a-33.fc26.2.noarch
texlive-sansmath-svn17997.1.1-33.fc26.2.noarch
texlive-textcase-svn15878.0-33.fc26.2.noarch
texlive-unicode-data-svn39808-33.fc26.2.noarch
texlive-breakurl-svn29901.1.40-33.fc26.2.noarch
texlive-latex-svn40218-33.fc26.2.noarch
texlive-lualatex-math-svn40621-33.fc26.2.noarch
texlive-pst-coil-svn37377.1.07-33.fc26.2.noarch
texlive-pst-plot-svn41242-33.fc26.2.noarch
texlive-unicode-math-svn38462-33.fc26.2.noarch
texlive-pst-blur-svn15878.2.0-33.fc26.2.noarch
texlive-cm-super-svn15878.0-33.fc26.2.noarch
texlive-wasysym-svn15878.2.0-33.fc26.2.noarch
texlive-collection-fontsrecommended-svn35830.0-33.20160520.fc26.2.noarch
libXv-1.0.11-2.fc26.s390x
ghc-srpm-macros-1.4.2-5.fc26.noarch
latex2html-2017.2-2.fc26.noarch
libXau-devel-1.0.8-7.fc26.s390x
libXcursor-devel-1.1.14-8.fc26.s390x
graphite2-devel-1.3.10-1.fc26.s390x
pixman-devel-0.34.0-3.fc26.s390x
wayland-protocols-devel-1.9-1.fc26.noarch
mesa-libGLES-devel-17.2.4-2.fc26.s390x
redhat-rpm-config-63-1.fc26.noarch
vte291-devel-0.48.4-1.fc26.s390x
ceph-devel-compat-10.2.7-2.fc26.s390x
lzo-devel-2.08-9.fc26.s390x
libiscsi-devel-1.15.0-3.fc26.s390x
libfdt-devel-1.4.5-1.fc26.s390x
dnsmasq-2.76-5.fc26.s390x
avahi-autoipd-0.6.32-7.fc26.s390x
rpm-plugin-systemd-inhibit-4.13.0.2-1.fc26.s390x
gcc-c++-7.2.1-2.fc26.s390x
python2-ndg_httpsclient-0.4.0-7.fc26.noarch
gettext-0.19.8.1-9.fc26.s390x
btrfs-progs-4.9.1-2.fc26.s390x
fedora-logos-26.0.1-1.fc26.s390x
dejagnu-1.6-2.fc26.noarch
libaio-devel-0.3.110-7.fc26.s390x
dos2unix-7.3.4-2.fc26.s390x
distribution-gpg-keys-1.15-1.fc26.noarch
python-sphinx-locale-1.5.5-1.fc26.noarch
python2-rpm-macros-3-20.fc26.noarch
libxml2-2.9.4-2.fc26.s390x
popt-1.16-12.fc26.s390x
tar-1.29-5.fc26.s390x
avahi-libs-0.6.32-7.fc26.s390x
m4-1.4.18-3.fc26.s390x
perl-Socket-2.024-2.fc26.s390x
perl-Time-Local-1.250-2.fc26.noarch
libmetalink-0.1.3-2.fc26.s390x
jbigkit-libs-2.1-6.fc26.s390x
netpbm-10.80.00-2.fc26.s390x
perl-Digest-MD5-2.55-3.fc26.s390x
perl-Getopt-Long-2.49.1-2.fc26.noarch
libglvnd-opengl-1.0.0-1.fc26.s390x
libattr-devel-2.4.47-18.fc26.s390x
teckit-2.5.1-16.fc26.s390x
python3-six-1.10.0-9.fc26.noarch
python3-libcomps-0.1.8-3.fc26.s390x
gtk-update-icon-cache-3.22.21-2.fc26.s390x
python3-3.6.3-2.fc26.s390x
python3-pyparsing-2.1.10-3.fc26.noarch
python2-markupsafe-0.23-13.fc26.s390x
python2-mock-2.0.0-4.fc26.noarch
python2-yubico-1.3.2-7.fc26.noarch
python2-smmap-2.0.3-1.fc26.noarch
librbd-devel-10.2.7-2.fc26.s390x
pigz-2.3.4-2.fc26.s390x
gcc-7.2.1-2.fc26.s390x
libnghttp2-1.21.1-1.fc26.s390x
cups-libs-2.2.2-7.fc26.s390x
libnfsidmap-0.27-1.fc26.s390x
ykpers-1.18.0-2.fc26.s390x
python3-librepo-1.8.0-1.fc26.s390x
systemtap-runtime-3.2-2.fc26.s390x
geoclue2-2.4.5-4.fc26.s390x
initscripts-9.72-1.fc26.s390x
plymouth-0.9.3-0.7.20160620git0e65b86c.fc26.s390x
ebtables-2.0.10-22.fc26.s390x
gssproxy-0.7.0-9.fc26.s390x
libXext-1.3.3-5.fc26.s390x
mesa-libEGL-17.2.4-2.fc26.s390x
texlive-texlive.infra-bin-svn40312-33.20160520.fc26.2.s390x
texlive-thumbpdf-svn34621.3.16-33.fc26.2.noarch
texlive-carlisle-svn18258.0-33.fc26.2.noarch
texlive-gsftopk-svn40768-33.fc26.2.noarch
texlive-pdftex-svn41149-33.fc26.2.noarch
texlive-crop-svn15878.1.5-33.fc26.2.noarch
texlive-pxfonts-svn15878.0-33.fc26.2.noarch
texlive-enctex-svn34957.0-33.fc26.2.noarch
texlive-kastrup-svn15878.0-33.fc26.2.noarch
texlive-pspicture-svn15878.0-33.fc26.2.noarch
texlive-varwidth-svn24104.0.92-33.fc26.2.noarch
texlive-currfile-svn40725-33.fc26.2.noarch
texlive-pst-grad-svn15878.1.06-33.fc26.2.noarch
texlive-latex-bin-svn41438-33.fc26.2.noarch
texlive-ltxmisc-svn21927.0-33.fc26.2.noarch
lasi-1.1.2-7.fc26.s390x
adwaita-icon-theme-3.24.0-2.fc26.noarch
xz-devel-5.2.3-2.fc26.s390x
xorg-x11-fonts-Type1-7.5-17.fc26.noarch
libXi-devel-1.7.9-2.fc26.s390x
at-spi2-atk-devel-2.24.1-1.fc26.s390x
pango-devel-1.40.12-1.fc26.s390x
libcacard-devel-2.5.3-1.fc26.s390x
libseccomp-devel-2.3.2-1.fc26.s390x
subversion-1.9.7-1.fc26.s390x
sudo-1.8.21p2-1.fc26.s390x
pykickstart-2.35-2.fc26.noarch
e2fsprogs-1.43.4-2.fc26.s390x
libstdc++-static-7.2.1-2.fc26.s390x
libbsd-0.8.3-3.fc26.s390x
c-ares-1.13.0-1.fc26.s390x
python2-pyxdg-0.25-12.fc26.noarch
nss-softokn-freebl-devel-3.34.0-1.0.fc26.s390x
python2-rpkg-1.51-2.fc26.noarch
strace-4.20-1.fc26.s390x
valgrind-3.13.0-12.fc26.s390x
libsss_idmap-1.16.0-4.fc26.s390x
gnutls-c++-3.5.16-4.fc26.s390x
libwayland-server-1.13.0-3.fc26.s390x
dhcp-client-4.3.5-10.fc26.s390x
bind-libs-9.11.1-4.P3.fc26.s390x
man-pages-4.09-4.fc26.noarch
gpg-pubkey-a29cb19c-53bcbba6
quota-nls-4.03-9.fc26.noarch
qt5-srpm-macros-5.8.0-2.fc26.noarch
xz-libs-5.2.3-2.fc26.s390x
gmp-6.1.2-4.fc26.s390x
audit-libs-2.8.1-1.fc26.s390x
file-5.30-11.fc26.s390x
libusbx-1.0.21-2.fc26.s390x
binutils-2.27-28.fc26.s390x
perl-Errno-1.25-395.fc26.s390x
perl-HTTP-Tiny-0.070-2.fc26.noarch
xml-common-0.6.3-45.fc26.noarch
opus-1.2.1-1.fc26.s390x
kernel-devel-4.13.13-200.fc26.s390x
perl-podlators-4.09-2.fc26.noarch
flac-libs-1.3.2-2.fc26.s390x
libacl-devel-2.2.52-15.fc26.s390x
coreutils-common-8.27-7.fc26.s390x
cracklib-2.9.6-5.fc26.s390x
pyliblzma-0.5.3-17.fc26.s390x
libnotify-0.7.7-2.fc26.s390x
python3-idna-2.5-1.fc26.noarch
python3-pyOpenSSL-16.2.0-6.fc26.noarch
python2-pbr-1.10.0-4.fc26.noarch
pyusb-1.0.0-4.fc26.noarch
python2-fedora-0.9.0-6.fc26.noarch
librbd1-10.2.7-2.fc26.s390x
pcre-cpp-8.41-3.fc26.s390x
glibc-devel-2.25-12.fc26.s390x
libnfs-1.9.8-3.fc26.s390x
libsolv-0.6.30-2.fc26.s390x
python3-pycurl-7.43.0-8.fc26.s390x
libyubikey-1.13-3.fc26.s390x
rpmlint-1.10-5.fc26.noarch
python2-pygpgme-0.3-22.fc26.s390x
s390utils-base-1.36.1-3.fc26.s390x
ppp-2.4.7-11.fc26.s390x
s390utils-cpuplugd-1.36.1-3.fc26.s390x
nfs-utils-2.1.1-6.rc6.fc26.s390x
libXrender-0.9.10-2.fc26.s390x
libglvnd-gles-1.0.0-1.fc26.s390x
texlive-texlive.infra-svn41280-33.fc26.2.noarch
texlive-lm-svn28119.2.004-33.fc26.2.noarch
texlive-babelbib-svn25245.1.31-33.fc26.2.noarch
texlive-index-svn24099.4.1beta-33.fc26.2.noarch
texlive-pdftex-bin-svn40987-33.20160520.fc26.2.s390x
texlive-csquotes-svn39538-33.fc26.2.noarch
texlive-rsfs-svn15878.0-33.fc26.2.noarch
texlive-etex-svn37057.0-33.fc26.2.noarch
texlive-knuth-lib-svn35820.0-33.fc26.2.noarch
texlive-pst-math-svn34786.0.63-33.fc26.2.noarch
texlive-utopia-svn15878.0-33.fc26.2.noarch
texlive-eso-pic-svn37925.2.0g-33.fc26.2.noarch
texlive-pst-fill-svn15878.1.01-33.fc26.2.noarch
texlive-latex-bin-bin-svn14050.0-33.20160520.fc26.2.noarch
texlive-jknapltx-svn19440.0-33.fc26.2.noarch
texlive-collection-latexrecommended-svn35765.0-33.20160520.fc26.2.noarch
adwaita-cursor-theme-3.24.0-2.fc26.noarch
xorg-x11-fonts-ISO8859-1-100dpi-7.5-17.fc26.noarch
libXcomposite-devel-0.4.4-9.fc26.s390x
at-spi2-core-devel-2.24.1-1.fc26.s390x
harfbuzz-devel-1.4.4-1.fc26.s390x
rpmdevtools-8.10-2.fc26.noarch
texi2html-5.0-5.fc26.noarch
libnfs-devel-1.9.8-3.fc26.s390x
firewalld-0.4.4.5-1.fc26.noarch
wpa_supplicant-2.6-12.fc26.s390x
systemtap-sdt-devel-3.2-2.fc26.s390x
newt-python-0.52.20-1.fc26.s390x
perl-Mozilla-CA-20160104-4.fc26.noarch
pth-2.0.7-28.fc26.s390x
python3-pyxdg-0.25-12.fc26.noarch
nss-softokn-devel-3.34.0-1.0.fc26.s390x
fedpkg-1.30-4.fc26.noarch
timedatex-0.4-3.fc26.s390x
libjpeg-turbo-1.5.3-1.fc26.s390x
glusterfs-cli-3.10.8-1.fc26.s390x
libsss_nss_idmap-1.16.0-4.fc26.s390x
gdb-8.0.1-33.fc26.s390x
dnf-yum-2.7.5-2.fc26.noarch
perl-Data-Dumper-2.161-3.fc26.s390x
python-async-0.6.1-9.fc22.s390x
poppler-data-0.4.7-7.fc26.noarch
ocaml-srpm-macros-4-2.fc26.noarch
libuuid-2.30.2-1.fc26.s390x
libgpg-error-1.25-2.fc26.s390x
libassuan-2.4.3-2.fc26.s390x
graphite2-1.3.10-1.fc26.s390x
perl-Text-Tabs+Wrap-2013.0523-366.fc26.noarch
perl-Error-0.17024-8.fc26.noarch
which-2.21-2.fc26.s390x
libXau-1.0.8-7.fc26.s390x
orc-0.4.27-1.fc26.s390x
perl-Pod-Perldoc-3.28-1.fc26.noarch
libsndfile-1.0.28-6.fc26.s390x
patch-2.7.5-4.fc26.s390x
gzip-1.8-2.fc26.s390x
python-ipaddress-1.0.16-4.fc26.noarch
yum-metadata-parser-1.1.4-18.fc26.s390x
python3-dbus-1.2.4-6.fc26.s390x
python3-cryptography-2.0.2-2.fc26.s390x
python3-kickstart-2.35-2.fc26.noarch
python2-imagesize-0.7.1-5.fc26.noarch
python2-jinja2-2.9.6-1.fc26.noarch
libradosstriper-devel-10.2.7-2.fc26.s390x
soundtouch-1.9.2-4.fc26.s390x
glibc-headers-2.25-12.fc26.s390x
libndp-1.6-2.fc26.s390x
rpm-4.13.0.2-1.fc26.s390x
rest-0.8.0-2.fc26.s390x
libvisual-0.4.0-21.fc26.s390x
python2-hawkey-0.11.1-1.fc26.s390x
dnf-plugins-core-2.1.5-1.fc26.noarch
fakeroot-libs-1.22-1.fc26.s390x
device-mapper-event-libs-1.02.137-6.fc26.s390x
cyrus-sasl-2.1.26-32.fc26.s390x
kernel-modules-4.13.13-200.fc26.s390x
cronie-anacron-1.5.1-5.fc26.s390x
libpath_utils-0.2.1-34.fc26.s390x
libX11-common-1.6.5-2.fc26.noarch
libXft-2.3.2-5.fc26.s390x
gtk2-2.24.31-4.fc26.s390x
texlive-etoolbox-svn38031.2.2a-33.fc26.2.noarch
texlive-multido-svn18302.1.42-33.fc26.2.noarch
texlive-glyphlist-svn28576.0-33.fc26.2.noarch
texlive-setspace-svn24881.6.7a-33.fc26.2.noarch
texlive-mathtools-svn38833-33.fc26.2.noarch
texlive-ncntrsbk-svn31835.0-33.fc26.2.noarch
texlive-dvisvgm-def-svn41011-33.fc26.2.noarch
texlive-ifetex-svn24853.1.2-33.fc26.2.noarch
texlive-parskip-svn19963.2.0-33.fc26.2.noarch
texlive-bera-svn20031.0-33.fc26.2.noarch
texlive-pgf-svn40966-33.fc26.2.noarch
texlive-auto-pst-pdf-svn23723.0.6-33.fc26.2.noarch
texlive-ctable-svn38672-33.fc26.2.noarch
texlive-typehtml-svn17134.0-33.fc26.2.noarch
mesa-libGLES-17.2.4-2.fc26.s390x
vte291-0.48.4-1.fc26.s390x
libdrm-devel-2.4.88-1.fc26.s390x
libcephfs_jni1-10.2.7-2.fc26.s390x
bzip2-devel-1.0.6-22.fc26.s390x
expat-devel-2.2.4-1.fc26.s390x
libsepol-devel-2.6-2.fc26.s390x
glib2-static-2.52.3-2.fc26.s390x
virglrenderer-devel-0.6.0-1.20170210git76b3da97b.fc26.s390x
yum-utils-1.1.31-512.fc26.noarch
parted-3.2-24.fc26.s390x
python3-beautifulsoup4-4.6.0-1.fc26.noarch
python-bunch-1.0.1-10.fc26.noarch
perl-Time-HiRes-1.9746-1.fc26.s390x
lz4-1.8.0-1.fc26.s390x
nss-util-3.34.0-1.0.fc26.s390x
openssh-clients-7.5p1-4.fc26.s390x
chrony-3.2-1.fc26.s390x
dnf-conf-2.7.5-2.fc26.noarch
glusterfs-server-3.10.8-1.fc26.s390x
sssd-client-1.16.0-4.fc26.s390x
man-db-2.7.6.1-8.fc26.s390x
bodhi-client-2.12.2-3.fc26.noarch
perl-Module-CoreList-5.20171120-1.fc26.noarch
hawkey-0.6.4-3.fc25.s390x
python-srpm-macros-3-20.fc26.noarch
perl-srpm-macros-1-21.fc26.noarch
expat-2.2.4-1.fc26.s390x
chkconfig-1.10-1.fc26.s390x
findutils-4.6.0-12.fc26.s390x
mesa-libwayland-egl-17.2.4-2.fc26.s390x
procps-ng-3.3.10-13.fc26.s390x
mesa-libglapi-17.2.4-2.fc26.s390x
perl-Unicode-Normalize-1.25-366.fc26.s390x
perl-IO-Socket-IP-0.39-1.fc26.noarch
hunspell-en-US-0.20140811.1-6.fc26.noarch
libxcb-1.12-3.fc26.s390x
libgo-devel-7.2.1-2.fc26.s390x
perl-Pod-Escapes-1.07-366.fc26.noarch
perl-Pod-Usage-1.69-2.fc26.noarch
libtheora-1.1.1-15.fc26.s390x
tcp_wrappers-7.6-85.fc26.s390x
coreutils-8.27-7.fc26.s390x
libmount-2.30.2-1.fc26.s390x
python2-iniparse-0.4-24.fc26.noarch
python2-decorator-4.0.11-2.fc26.noarch
ModemManager-glib-1.6.10-1.fc26.s390x
python3-decorator-4.0.11-2.fc26.noarch
python3-cffi-1.9.1-2.fc26.s390x
python-bugzilla-cli-2.1.0-1.fc26.noarch
python2-funcsigs-1.0.2-5.fc26.noarch
python2-babel-2.3.4-5.fc26.noarch
python-bugzilla-2.1.0-1.fc26.noarch
libradosstriper1-10.2.7-2.fc26.s390x
snappy-1.1.4-3.fc26.s390x
dtc-1.4.5-1.fc26.s390x
libmpcdec-1.2.6-17.fc26.s390x
rpm-libs-4.13.0.2-1.fc26.s390x
python-urlgrabber-3.10.1-11.fc26.noarch
sysfsutils-2.1.0-20.fc26.s390x
python3-hawkey-0.11.1-1.fc26.s390x
python3-dnf-plugins-core-2.1.5-1.fc26.noarch
ethtool-4.13-1.fc26.s390x
iputils-20161105-5.fc26.s390x
plymouth-scripts-0.9.3-0.7.20160620git0e65b86c.fc26.s390x
cronie-1.5.1-5.fc26.s390x
libini_config-1.3.1-34.fc26.s390x
libX11-1.6.5-2.fc26.s390x
libglvnd-egl-1.0.0-1.fc26.s390x
texlive-kpathsea-svn41139-33.fc26.2.noarch
texlive-thumbpdf-bin-svn6898.0-33.20160520.fc26.2.noarch
texlive-subfig-svn15878.1.3-33.fc26.2.noarch
texlive-gsftopk-bin-svn40473-33.20160520.fc26.2.s390x
texlive-tex-ini-files-svn40533-33.fc26.2.noarch
texlive-qstest-svn15878.0-33.fc26.2.noarch
texlive-palatino-svn31835.0-33.fc26.2.noarch
texlive-ec-svn25033.1.0-33.fc26.2.noarch
texlive-iftex-svn29654.0.2-33.fc26.2.noarch
texlive-pslatex-svn16416.0-33.fc26.2.noarch
texlive-algorithms-svn38085.0.1-33.fc26.2.noarch
texlive-filehook-svn24280.0.5d-33.fc26.2.noarch
texlive-pst-node-svn40743-33.fc26.2.noarch
texlive-rotating-svn16832.2.16b-33.fc26.2.noarch
texlive-seminar-svn34011.1.62-33.fc26.2.noarch
gtk3-3.22.21-2.fc26.s390x
libuuid-devel-2.30.2-1.fc26.s390x
java-1.8.0-openjdk-1.8.0.151-1.b12.fc26.s390x
libXinerama-devel-1.1.3-7.fc26.s390x
emacs-common-25.3-3.fc26.s390x
gtk3-devel-3.22.21-2.fc26.s390x
fedora-packager-0.6.0.1-2.fc26.noarch
libxml2-devel-2.9.4-2.fc26.s390x
snappy-devel-1.1.4-3.fc26.s390x
python2-dnf-plugin-migrate-2.1.5-1.fc26.noarch
authconfig-7.0.1-2.fc26.s390x
newt-python3-0.52.20-1.fc26.s390x
python-decoratortools-1.8-13.fc26.noarch
python-systemd-doc-234-1.fc26.s390x
openssl-libs-1.1.0g-1.fc26.s390x
git-core-2.13.6-2.fc26.s390x
python3-dnf-plugin-system-upgrade-2.0.4-1.fc26.noarch
glusterfs-libs-3.10.8-1.fc26.s390x
ca-certificates-2017.2.20-1.0.fc26.noarch
unbound-libs-1.6.7-1.fc26.s390x
libsss_certmap-1.16.0-4.fc26.s390x
glusterfs-api-devel-3.10.8-1.fc26.s390x
selinux-policy-targeted-3.13.1-260.17.fc26.noarch
publicsuffix-list-dafsa-20171028-1.fc26.noarch
gpg-pubkey-a0a7badb-52844296
gpg-pubkey-e372e838-56fd7943
gpg-pubkey-3b921d09-57a87096
google-roboto-slab-fonts-1.100263-0.5.20150923git.fc26.noarch
libreport-filesystem-2.9.1-3.fc26.s390x
glibc-all-langpacks-2.25-12.fc26.s390x
libcom_err-1.43.4-2.fc26.s390x
libffi-3.1-12.fc26.s390x
keyutils-libs-1.5.10-1.fc26.s390x
diffutils-3.5-3.fc26.s390x
apr-util-1.5.4-6.fc26.s390x
bluez-libs-5.46-6.fc26.s390x
libksba-1.3.5-3.fc26.s390x
ncurses-6.0-8.20170212.fc26.s390x
gsm-1.0.17-1.fc26.s390x
libteam-1.27-1.fc26.s390x
perl-Fedora-VSP-0.001-5.fc26.noarch
libusb-0.1.5-8.fc26.s390x
acl-2.2.52-15.fc26.s390x
dwz-0.12-3.fc26.s390x
libblkid-2.30.2-1.fc26.s390x
polkit-libs-0.113-8.fc26.s390x
dbus-python-1.2.4-6.fc26.s390x
gts-0.7.6-30.20121130.fc26.s390x
libfdisk-2.30.2-1.fc26.s390x
python3-pycparser-2.14-10.fc26.noarch
python3-bugzilla-2.1.0-1.fc26.noarch
python2-docutils-0.13.1-4.fc26.noarch
pytz-2016.10-4.fc26.noarch
python2-requests-2.13.0-1.fc26.noarch
libcephfs-devel-10.2.7-2.fc26.s390x
ncurses-c++-libs-6.0-8.20170212.fc26.s390x
GeoIP-1.6.11-1.fc26.s390x
liblockfile-1.09-5.fc26.s390x
rpm-plugin-selinux-4.13.0.2-1.fc26.s390x
systemtap-devel-3.2-2.fc26.s390x
libsysfs-2.1.0-20.fc26.s390x
libdnf-0.11.1-1.fc26.s390x
libgfortran-7.2.1-2.fc26.s390x
mesa-libgbm-17.2.4-2.fc26.s390x
dracut-046-3.1.fc26.s390x
lvm2-libs-2.02.168-6.fc26.s390x
libXfixes-5.0.3-2.fc26.s390x
brlapi-0.6.6-5.fc26.s390x
texlive-metafont-svn40793-33.fc26.2.noarch
texlive-graphics-cfg-svn40269-33.fc26.2.noarch
texlive-mptopdf-svn41282-33.fc26.2.noarch
texlive-makeindex-bin-svn40473-33.20160520.fc26.2.s390x
texlive-texlive-scripts-bin-svn29741.0-33.20160520.fc26.2.noarch
texlive-sauerj-svn15878.0-33.fc26.2.noarch
texlive-txfonts-svn15878.0-33.fc26.2.noarch
texlive-filecontents-svn24250.1.3-33.fc26.2.noarch
texlive-lualibs-svn40370-33.fc26.2.noarch
texlive-section-svn20180.0-33.fc26.2.noarch
texlive-ucharcat-svn38907-33.fc26.2.noarch
texlive-hyperref-svn41396-33.fc26.2.noarch
texlive-pst-3d-svn17257.1.10-33.fc26.2.noarch
texlive-oberdiek-svn41346-33.fc26.2.noarch
texlive-ae-svn15878.1.4-33.fc26.2.noarch
texlive-collection-basic-svn41149-33.20160520.fc26.2.noarch
gnat-srpm-macros-4-2.fc26.noarch
glib2-devel-2.52.3-2.fc26.s390x
netpbm-progs-10.80.00-2.fc26.s390x
libXxf86vm-devel-1.1.4-4.fc26.s390x
nettle-devel-3.3-2.fc26.s390x
cairo-gobject-devel-1.14.10-1.fc26.s390x
fedora-rpm-macros-26-2.fc26.noarch
elfutils-devel-0.169-1.fc26.s390x
libidn-devel-1.33-2.fc26.s390x
s390utils-1.36.1-3.fc26.s390x
gcc-gfortran-7.2.1-2.fc26.s390x
libtool-2.4.6-17.fc26.s390x
python3-cssselect-0.9.2-4.fc26.noarch
python2-cssselect-0.9.2-4.fc26.noarch
bison-3.0.4-6.fc26.s390x
rootfiles-8.1-20.fc26.noarch
git-core-doc-2.13.6-2.fc26.s390x
vim-enhanced-8.0.1360-1.fc26.s390x
glusterfs-3.10.8-1.fc26.s390x
boost-system-1.63.0-10.fc26.s390x
gnutls-dane-3.5.16-4.fc26.s390x
pkgconf-m4-1.3.12-1.fc26.noarch
libcurl-devel-7.53.1-13.fc26.s390x
python3-urllib3-1.20-2.fc26.noarch
libsss_autofs-1.16.0-4.fc26.s390x
=== TEST BEGIN ===
Using CC: /home/fam/bin/cc
Install prefix /var/tmp/patchew-tester-tmp-hek3vjny/src/install
BIOS directory /var/tmp/patchew-tester-tmp-hek3vjny/src/install/share/qemu
firmware path /var/tmp/patchew-tester-tmp-hek3vjny/src/install/share/qemu-firmware
binary directory /var/tmp/patchew-tester-tmp-hek3vjny/src/install/bin
library directory /var/tmp/patchew-tester-tmp-hek3vjny/src/install/lib
module directory /var/tmp/patchew-tester-tmp-hek3vjny/src/install/lib/qemu
libexec directory /var/tmp/patchew-tester-tmp-hek3vjny/src/install/libexec
include directory /var/tmp/patchew-tester-tmp-hek3vjny/src/install/include
config directory /var/tmp/patchew-tester-tmp-hek3vjny/src/install/etc
local state directory /var/tmp/patchew-tester-tmp-hek3vjny/src/install/var
Manual directory /var/tmp/patchew-tester-tmp-hek3vjny/src/install/share/man
ELF interp prefix /usr/gnemul/qemu-%M
Source path /var/tmp/patchew-tester-tmp-hek3vjny/src
GIT binary git
GIT submodules ui/keycodemapdb capstone
C compiler /home/fam/bin/cc
Host C compiler cc
C++ compiler c++
Objective-C compiler /home/fam/bin/cc
ARFLAGS rv
CFLAGS -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -g
QEMU_CFLAGS -I/usr/include/pixman-1 -Werror -DHAS_LIBSSH2_SFTP_FSYNC -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -DNCURSES_WIDECHAR -D_GNU_SOURCE -D_DEFAULT_SOURCE -m64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wexpansion-to-defined -Wendif-labels -Wno-shift-negative-value -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong -I/usr/include/p11-kit-1 -I/usr/include/libpng16 -I/usr/include/libdrm -I$(SRC_PATH)/capstone/include
LDFLAGS -Wl,--warn-common -m64 -g
make make
install install
python python -B
smbd /usr/sbin/smbd
module support no
host CPU s390x
host big endian yes
target list aarch64-softmmu alpha-softmmu arm-softmmu cris-softmmu i386-softmmu lm32-softmmu m68k-softmmu microblazeel-softmmu microblaze-softmmu mips64el-softmmu mips64-softmmu mipsel-softmmu mips-softmmu moxie-softmmu nios2-softmmu or1k-softmmu ppc64-softmmu ppcemb-softmmu ppc-softmmu s390x-softmmu sh4eb-softmmu sh4-softmmu sparc64-softmmu sparc-softmmu tricore-softmmu unicore32-softmmu x86_64-softmmu xtensaeb-softmmu xtensa-softmmu aarch64_be-linux-user aarch64-linux-user alpha-linux-user armeb-linux-user arm-linux-user cris-linux-user hppa-linux-user i386-linux-user m68k-linux-user microblazeel-linux-user microblaze-linux-user mips64el-linux-user mips64-linux-user mipsel-linux-user mips-linux-user mipsn32el-linux-user mipsn32-linux-user nios2-linux-user or1k-linux-user ppc64abi32-linux-user ppc64le-linux-user ppc64-linux-user ppc-linux-user s390x-linux-user sh4eb-linux-user sh4-linux-user sparc32plus-linux-user sparc64-linux-user sparc-linux-user tilegx-linux-user x86_64-linux-user
gprof enabled no
sparse enabled no
strip binaries yes
profiler no
static build no
SDL support yes (2.0.7)
GTK support yes (3.22.21)
GTK GL support yes
VTE support yes (0.48.4)
TLS priority NORMAL
GNUTLS support yes
GNUTLS rnd yes
libgcrypt no
libgcrypt kdf no
nettle yes (3.3)
nettle kdf yes
libtasn1 yes
curses support yes
virgl support yes
curl support yes
mingw32 support no
Audio drivers oss
Block whitelist (rw)
Block whitelist (ro)
VirtFS support yes
Multipath support no
VNC support yes
VNC SASL support yes
VNC JPEG support yes
VNC PNG support yes
xen support no
brlapi support yes
bluez support yes
Documentation yes
PIE no
vde support no
netmap support no
Linux AIO support yes
ATTR/XATTR support yes
Install blobs yes
KVM support yes
HAX support no
HVF support no
TCG support yes
TCG debug enabled no
TCG interpreter no
malloc trim support yes
RDMA support no
fdt support yes
preadv support yes
fdatasync yes
madvise yes
posix_madvise yes
libcap-ng support yes
vhost-net support yes
vhost-scsi support yes
vhost-vsock support yes
vhost-user support yes
Trace backends log
spice support no
rbd support yes
xfsctl support no
smartcard support yes
libusb yes
usb net redir yes
OpenGL support yes
OpenGL dmabufs yes
libiscsi support yes
libnfs support yes
build guest agent yes
QGA VSS support no
QGA w32 disk info no
QGA MSI support no
seccomp support yes
coroutine backend ucontext
coroutine pool yes
debug stack usage no
crypto afalg no
GlusterFS support yes
gcov gcov
gcov enabled no
TPM support yes
libssh2 support yes
TPM passthrough no
TPM emulator yes
QOM debugging yes
Live block migration yes
lzo support yes
snappy support yes
bzip2 support yes
NUMA host support no
libxml2 yes
tcmalloc support no
jemalloc support no
avx2 optimization no
replication support yes
VxHS block device no
capstone git
GEN aarch64-softmmu/config-devices.mak.tmp
GEN alpha-softmmu/config-devices.mak.tmp
GEN arm-softmmu/config-devices.mak.tmp
GEN cris-softmmu/config-devices.mak.tmp
GEN cris-softmmu/config-devices.mak
GEN i386-softmmu/config-devices.mak.tmp
GEN aarch64-softmmu/config-devices.mak
GEN lm32-softmmu/config-devices.mak.tmp
GEN arm-softmmu/config-devices.mak
GEN m68k-softmmu/config-devices.mak.tmp
GEN alpha-softmmu/config-devices.mak
GEN microblazeel-softmmu/config-devices.mak.tmp
GEN lm32-softmmu/config-devices.mak
GEN microblaze-softmmu/config-devices.mak.tmp
GEN microblazeel-softmmu/config-devices.mak
GEN mips64el-softmmu/config-devices.mak.tmp
GEN microblaze-softmmu/config-devices.mak
GEN m68k-softmmu/config-devices.mak
GEN i386-softmmu/config-devices.mak
GEN mips64-softmmu/config-devices.mak.tmp
GEN mipsel-softmmu/config-devices.mak.tmp
GEN mips-softmmu/config-devices.mak.tmp
GEN mips-softmmu/config-devices.mak
GEN mips64el-softmmu/config-devices.mak
GEN moxie-softmmu/config-devices.mak.tmp
GEN nios2-softmmu/config-devices.mak.tmp
GEN mips64-softmmu/config-devices.mak
GEN or1k-softmmu/config-devices.mak.tmp
GEN or1k-softmmu/config-devices.mak
GEN mipsel-softmmu/config-devices.mak
GEN nios2-softmmu/config-devices.mak
GEN ppc64-softmmu/config-devices.mak.tmp
GEN moxie-softmmu/config-devices.mak
GEN ppcemb-softmmu/config-devices.mak.tmp
GEN ppc-softmmu/config-devices.mak.tmp
GEN s390x-softmmu/config-devices.mak.tmp
GEN s390x-softmmu/config-devices.mak
GEN sh4eb-softmmu/config-devices.mak.tmp
GEN ppc-softmmu/config-devices.mak
GEN sh4-softmmu/config-devices.mak.tmp
GEN ppc64-softmmu/config-devices.mak
GEN ppcemb-softmmu/config-devices.mak
GEN sparc64-softmmu/config-devices.mak.tmp
GEN sparc-softmmu/config-devices.mak.tmp
GEN sparc-softmmu/config-devices.mak
GEN tricore-softmmu/config-devices.mak.tmp
GEN tricore-softmmu/config-devices.mak
GEN unicore32-softmmu/config-devices.mak.tmp
GEN sh4-softmmu/config-devices.mak
GEN x86_64-softmmu/config-devices.mak.tmp
GEN unicore32-softmmu/config-devices.mak
GEN sh4eb-softmmu/config-devices.mak
GEN xtensaeb-softmmu/config-devices.mak.tmp
GEN sparc64-softmmu/config-devices.mak
GEN xtensa-softmmu/config-devices.mak.tmp
GEN aarch64_be-linux-user/config-devices.mak.tmp
GEN xtensaeb-softmmu/config-devices.mak
GEN xtensa-softmmu/config-devices.mak
GEN aarch64-linux-user/config-devices.mak.tmp
GEN aarch64_be-linux-user/config-devices.mak
GEN alpha-linux-user/config-devices.mak.tmp
GEN x86_64-softmmu/config-devices.mak
GEN armeb-linux-user/config-devices.mak.tmp
GEN armeb-linux-user/config-devices.mak
GEN arm-linux-user/config-devices.mak.tmp
GEN cris-linux-user/config-devices.mak.tmp
GEN aarch64-linux-user/config-devices.mak
GEN hppa-linux-user/config-devices.mak.tmp
GEN arm-linux-user/config-devices.mak
GEN i386-linux-user/config-devices.mak.tmp
GEN cris-linux-user/config-devices.mak
GEN alpha-linux-user/config-devices.mak
GEN hppa-linux-user/config-devices.mak
GEN m68k-linux-user/config-devices.mak.tmp
GEN microblazeel-linux-user/config-devices.mak.tmp
GEN microblaze-linux-user/config-devices.mak.tmp
GEN i386-linux-user/config-devices.mak
GEN mips64el-linux-user/config-devices.mak.tmp
GEN microblaze-linux-user/config-devices.mak
GEN mips64-linux-user/config-devices.mak.tmp
GEN m68k-linux-user/config-devices.mak
GEN microblazeel-linux-user/config-devices.mak
GEN mips64el-linux-user/config-devices.mak
GEN mipsel-linux-user/config-devices.mak.tmp
GEN mips-linux-user/config-devices.mak.tmp
GEN mipsn32el-linux-user/config-devices.mak.tmp
GEN mipsel-linux-user/config-devices.mak
GEN mipsn32el-linux-user/config-devices.mak
GEN mipsn32-linux-user/config-devices.mak.tmp
GEN mips-linux-user/config-devices.mak
GEN nios2-linux-user/config-devices.mak.tmp
GEN mips64-linux-user/config-devices.mak
GEN mipsn32-linux-user/config-devices.mak
GEN or1k-linux-user/config-devices.mak.tmp
GEN ppc64abi32-linux-user/config-devices.mak.tmp
GEN nios2-linux-user/config-devices.mak
GEN ppc64abi32-linux-user/config-devices.mak
GEN ppc64le-linux-user/config-devices.mak.tmp
GEN or1k-linux-user/config-devices.mak
GEN ppc64-linux-user/config-devices.mak.tmp
GEN ppc64le-linux-user/config-devices.mak
GEN ppc-linux-user/config-devices.mak.tmp
GEN s390x-linux-user/config-devices.mak.tmp
GEN sh4eb-linux-user/config-devices.mak.tmp
GEN s390x-linux-user/config-devices.mak
GEN sh4-linux-user/config-devices.mak.tmp
GEN sh4eb-linux-user/config-devices.mak
GEN ppc64-linux-user/config-devices.mak
GEN ppc-linux-user/config-devices.mak
GEN sparc32plus-linux-user/config-devices.mak.tmp
GEN sparc64-linux-user/config-devices.mak.tmp
GEN sh4-linux-user/config-devices.mak
GEN sparc-linux-user/config-devices.mak.tmp
GEN tilegx-linux-user/config-devices.mak.tmp
GEN tilegx-linux-user/config-devices.mak
GEN x86_64-linux-user/config-devices.mak.tmp
GEN sparc32plus-linux-user/config-devices.mak
GEN sparc-linux-user/config-devices.mak
GEN config-host.h
GEN sparc64-linux-user/config-devices.mak
GIT ui/keycodemapdb capstone
GEN x86_64-linux-user/config-devices.mak
GEN qemu-options.def
GEN qmp-commands.h
GEN qapi-types.h
GEN qapi-visit.h
GEN qapi-event.h
GEN qmp-marshal.c
GEN qapi-types.c
GEN qapi-visit.c
GEN qapi-event.c
GEN qmp-introspect.h
GEN qmp-introspect.c
GEN trace/generated-tcg-tracers.h
GEN trace/generated-helpers-wrappers.h
Submodule 'capstone' (git://git.qemu.org/capstone.git) registered for path 'capstone'
Submodule 'ui/keycodemapdb' (git://git.qemu.org/keycodemapdb.git) registered for path 'ui/keycodemapdb'
GEN trace/generated-helpers.h
GEN trace/generated-helpers.c
Cloning into '/var/tmp/patchew-tester-tmp-hek3vjny/src/capstone'...
GEN module_block.h
GEN tests/test-qapi-types.h
GEN tests/test-qapi-visit.h
GEN tests/test-qmp-commands.h
GEN tests/test-qapi-event.h
GEN tests/test-qmp-introspect.h
GEN trace-root.h
GEN util/trace.h
GEN crypto/trace.h
GEN io/trace.h
GEN migration/trace.h
GEN block/trace.h
GEN chardev/trace.h
GEN hw/block/trace.h
GEN hw/block/dataplane/trace.h
GEN hw/char/trace.h
GEN hw/intc/trace.h
GEN hw/net/trace.h
GEN hw/virtio/trace.h
GEN hw/audio/trace.h
GEN hw/misc/trace.h
GEN hw/usb/trace.h
GEN hw/scsi/trace.h
GEN hw/nvram/trace.h
GEN hw/display/trace.h
GEN hw/input/trace.h
GEN hw/timer/trace.h
GEN hw/dma/trace.h
GEN hw/sparc/trace.h
GEN hw/sparc64/trace.h
GEN hw/sd/trace.h
GEN hw/isa/trace.h
GEN hw/mem/trace.h
GEN hw/i386/trace.h
GEN hw/i386/xen/trace.h
GEN hw/9pfs/trace.h
GEN hw/ppc/trace.h
GEN hw/pci/trace.h
GEN hw/pci-host/trace.h
GEN hw/s390x/trace.h
GEN hw/vfio/trace.h
GEN hw/acpi/trace.h
GEN hw/arm/trace.h
GEN hw/alpha/trace.h
GEN hw/xen/trace.h
GEN hw/ide/trace.h
GEN ui/trace.h
GEN audio/trace.h
GEN net/trace.h
GEN target/arm/trace.h
GEN target/i386/trace.h
GEN target/mips/trace.h
GEN target/sparc/trace.h
GEN target/s390x/trace.h
GEN target/ppc/trace.h
GEN qom/trace.h
GEN linux-user/trace.h
GEN qapi/trace.h
GEN accel/tcg/trace.h
GEN accel/kvm/trace.h
GEN nbd/trace.h
GEN scsi/trace.h
GEN trace-root.c
GEN util/trace.c
GEN crypto/trace.c
GEN io/trace.c
GEN migration/trace.c
GEN block/trace.c
GEN chardev/trace.c
GEN hw/block/trace.c
GEN hw/block/dataplane/trace.c
GEN hw/char/trace.c
GEN hw/intc/trace.c
GEN hw/net/trace.c
GEN hw/virtio/trace.c
GEN hw/audio/trace.c
GEN hw/misc/trace.c
GEN hw/usb/trace.c
GEN hw/scsi/trace.c
GEN hw/nvram/trace.c
GEN hw/display/trace.c
GEN hw/input/trace.c
GEN hw/timer/trace.c
GEN hw/dma/trace.c
GEN hw/sparc/trace.c
GEN hw/sparc64/trace.c
GEN hw/sd/trace.c
GEN hw/isa/trace.c
GEN hw/mem/trace.c
GEN hw/i386/trace.c
GEN hw/i386/xen/trace.c
GEN hw/9pfs/trace.c
GEN hw/ppc/trace.c
GEN hw/pci/trace.c
GEN hw/pci-host/trace.c
GEN hw/s390x/trace.c
GEN hw/vfio/trace.c
GEN hw/acpi/trace.c
GEN hw/arm/trace.c
GEN hw/alpha/trace.c
GEN hw/xen/trace.c
GEN hw/ide/trace.c
GEN ui/trace.c
GEN audio/trace.c
GEN net/trace.c
GEN target/arm/trace.c
GEN target/i386/trace.c
GEN target/mips/trace.c
GEN target/sparc/trace.c
GEN target/s390x/trace.c
GEN target/ppc/trace.c
GEN qom/trace.c
GEN linux-user/trace.c
GEN qapi/trace.c
GEN accel/tcg/trace.c
GEN accel/kvm/trace.c
GEN nbd/trace.c
GEN scsi/trace.c
GEN config-all-devices.mak
Cloning into '/var/tmp/patchew-tester-tmp-hek3vjny/src/ui/keycodemapdb'...
GEN ui/input-keymap-atset1-to-qcode.c
GEN ui/input-keymap-linux-to-qcode.c
GEN ui/input-keymap-qcode-to-atset1.c
GEN ui/input-keymap-qcode-to-atset2.c
GEN ui/input-keymap-qcode-to-atset3.c
CC cs.o
GEN ui/input-keymap-qcode-to-linux.c
GEN ui/input-keymap-qcode-to-qnum.c
CC utils.o
GEN ui/input-keymap-qcode-to-sun.c
GEN ui/input-keymap-qnum-to-qcode.c
GEN ui/input-keymap-usb-to-qcode.c
GEN ui/input-keymap-win32-to-qcode.c
GEN ui/input-keymap-x11-to-qcode.c
GEN ui/input-keymap-xorgevdev-to-qcode.c
GEN ui/input-keymap-xorgkbd-to-qcode.c
GEN ui/input-keymap-xorgxquartz-to-qcode.c
GEN ui/input-keymap-xorgxwin-to-qcode.c
CC SStream.o
CC MCInstrDesc.o
CC MCRegisterInfo.o
CC arch/ARM/ARMDisassembler.o
CC arch/ARM/ARMInstPrinter.o
CC arch/ARM/ARMMapping.o
CC arch/ARM/ARMModule.o
CC arch/AArch64/AArch64BaseInfo.o
CC arch/AArch64/AArch64Disassembler.o
CC arch/AArch64/AArch64InstPrinter.o
CC arch/AArch64/AArch64Mapping.o
CC arch/AArch64/AArch64Module.o
CC arch/Mips/MipsDisassembler.o
CC arch/Mips/MipsInstPrinter.o
CC arch/Mips/MipsMapping.o
CC arch/Mips/MipsModule.o
CC arch/PowerPC/PPCDisassembler.o
CC arch/PowerPC/PPCInstPrinter.o
CC arch/PowerPC/PPCMapping.o
CC arch/PowerPC/PPCModule.o
CC arch/Sparc/SparcDisassembler.o
CC arch/Sparc/SparcInstPrinter.o
CC arch/Sparc/SparcMapping.o
CC arch/Sparc/SparcModule.o
CC arch/SystemZ/SystemZDisassembler.o
CC arch/SystemZ/SystemZInstPrinter.o
CC arch/SystemZ/SystemZMapping.o
CC arch/SystemZ/SystemZModule.o
CC arch/SystemZ/SystemZMCTargetDesc.o
CC arch/X86/X86DisassemblerDecoder.o
CC arch/X86/X86Disassembler.o
CC arch/X86/X86IntelInstPrinter.o
CC arch/X86/X86ATTInstPrinter.o
CC arch/X86/X86Mapping.o
CC arch/X86/X86Module.o
CC arch/XCore/XCoreDisassembler.o
CC arch/XCore/XCoreInstPrinter.o
CC arch/XCore/XCoreMapping.o
CC arch/XCore/XCoreModule.o
CC MCInst.o
AR libcapstone.a
ar: creating /var/tmp/patchew-tester-tmp-hek3vjny/src/build/capstone/libcapstone.a
CC tests/qemu-iotests/socket_scm_helper.o
GEN docs/version.texi
GEN qemu-options.texi
GEN qemu-monitor.texi
GEN qemu-img-cmds.texi
GEN qemu-monitor-info.texi
GEN qemu-img.1
GEN qemu-nbd.8
GEN qemu-ga.8
GEN docs/interop/qemu-qmp-qapi.texi
GEN docs/interop/qemu-ga-qapi.texi
GEN docs/qemu-block-drivers.7
GEN fsdev/virtfs-proxy-helper.1
GEN qga/qapi-generated/qga-qapi-types.h
GEN qga/qapi-generated/qga-qapi-visit.h
GEN qga/qapi-generated/qga-qmp-commands.h
GEN qga/qapi-generated/qga-qapi-types.c
GEN qga/qapi-generated/qga-qapi-visit.c
GEN qga/qapi-generated/qga-qmp-marshal.c
CC qmp-introspect.o
CC qapi-types.o
CC qapi-visit.o
CC qapi-event.o
CC qapi/qapi-visit-core.o
CC qapi/qapi-dealloc-visitor.o
CC qapi/qobject-input-visitor.o
CC qapi/qobject-output-visitor.o
CC qapi/qmp-registry.o
CC qapi/qmp-dispatch.o
CC qapi/string-input-visitor.o
CC qapi/string-output-visitor.o
CC qapi/opts-visitor.o
CC qapi/qapi-clone-visitor.o
CC qapi/qmp-event.o
CC qapi/qapi-util.o
CC qobject/qnull.o
CC qobject/qnum.o
CC qobject/qstring.o
CC qobject/qdict.o
CC qobject/qlist.o
CC qobject/qbool.o
CC qobject/qlit.o
CC qobject/qjson.o
CC qobject/qobject.o
CC qobject/json-lexer.o
CC qobject/json-streamer.o
CC qobject/json-parser.o
CC trace/control.o
CC trace/qmp.o
CC util/osdep.o
CC util/cutils.o
CC util/unicode.o
CC util/qemu-timer-common.o
CC util/bufferiszero.o
CC util/lockcnt.o
CC util/aiocb.o
CC util/async.o
CC util/thread-pool.o
CC util/qemu-timer.o
CC util/main-loop.o
CC util/iohandler.o
CC util/aio-posix.o
CC util/compatfd.o
CC util/event_notifier-posix.o
CC util/mmap-alloc.o
CC util/oslib-posix.o
CC util/qemu-openpty.o
CC util/qemu-thread-posix.o
CC util/memfd.o
CC util/envlist.o
CC util/path.o
CC util/module.o
CC util/host-utils.o
CC util/bitmap.o
CC util/bitops.o
CC util/hbitmap.o
CC util/fifo8.o
CC util/acl.o
CC util/cacheinfo.o
CC util/error.o
CC util/qemu-error.o
CC util/id.o
CC util/iov.o
CC util/qemu-config.o
CC util/qemu-sockets.o
CC util/uri.o
CC util/notify.o
CC util/qemu-option.o
CC util/qemu-progress.o
CC util/keyval.o
CC util/hexdump.o
CC util/crc32c.o
CC util/uuid.o
CC util/throttle.o
CC util/getauxval.o
CC util/readline.o
CC util/rcu.o
CC util/qemu-coroutine.o
CC util/qemu-coroutine-lock.o
CC util/qemu-coroutine-io.o
CC util/qemu-coroutine-sleep.o
CC util/coroutine-ucontext.o
CC util/buffer.o
CC util/timed-average.o
CC util/base64.o
CC util/log.o
CC util/pagesize.o
CC util/qdist.o
CC util/qht.o
CC util/range.o
CC util/stats64.o
CC util/systemd.o
CC trace-root.o
CC util/trace.o
CC crypto/trace.o
CC io/trace.o
CC migration/trace.o
CC block/trace.o
CC chardev/trace.o
CC hw/block/trace.o
CC hw/block/dataplane/trace.o
CC hw/char/trace.o
CC hw/intc/trace.o
CC hw/net/trace.o
CC hw/virtio/trace.o
CC hw/audio/trace.o
CC hw/misc/trace.o
CC hw/usb/trace.o
CC hw/scsi/trace.o
CC hw/nvram/trace.o
CC hw/display/trace.o
CC hw/input/trace.o
CC hw/timer/trace.o
CC hw/dma/trace.o
CC hw/sparc/trace.o
CC hw/sparc64/trace.o
CC hw/sd/trace.o
CC hw/isa/trace.o
CC hw/mem/trace.o
CC hw/i386/trace.o
CC hw/i386/xen/trace.o
CC hw/9pfs/trace.o
CC hw/ppc/trace.o
CC hw/pci/trace.o
CC hw/pci-host/trace.o
CC hw/s390x/trace.o
CC hw/vfio/trace.o
CC hw/acpi/trace.o
CC hw/arm/trace.o
CC hw/alpha/trace.o
CC hw/xen/trace.o
CC hw/ide/trace.o
CC ui/trace.o
CC audio/trace.o
CC net/trace.o
CC target/arm/trace.o
CC target/i386/trace.o
CC target/mips/trace.o
CC target/sparc/trace.o
CC target/s390x/trace.o
CC target/ppc/trace.o
CC qom/trace.o
CC linux-user/trace.o
CC qapi/trace.o
CC accel/tcg/trace.o
CC accel/kvm/trace.o
CC nbd/trace.o
CC scsi/trace.o
CC crypto/pbkdf-stub.o
CC stubs/arch-query-cpu-def.o
CC stubs/arch-query-cpu-model-expansion.o
CC stubs/arch-query-cpu-model-comparison.o
CC stubs/arch-query-cpu-model-baseline.o
CC stubs/bdrv-next-monitor-owned.o
CC stubs/blk-commit-all.o
CC stubs/blockdev-close-all-bdrv-states.o
CC stubs/clock-warp.o
CC stubs/cpu-get-clock.o
CC stubs/cpu-get-icount.o
CC stubs/dump.o
CC stubs/error-printf.o
CC stubs/fdset.o
CC stubs/gdbstub.o
CC stubs/get-vm-name.o
CC stubs/iothread.o
CC stubs/iothread-lock.o
CC stubs/is-daemonized.o
CC stubs/linux-aio.o
CC stubs/machine-init-done.o
CC stubs/migr-blocker.o
CC stubs/change-state-handler.o
CC stubs/monitor.o
CC stubs/notify-event.o
CC stubs/qtest.o
CC stubs/replay.o
CC stubs/runstate-check.o
CC stubs/set-fd-handler.o
CC stubs/slirp.o
CC stubs/sysbus.o
CC stubs/tpm.o
CC stubs/trace-control.o
CC stubs/uuid.o
CC stubs/vm-stop.o
CC stubs/vmstate.o
CC stubs/qmp_pc_dimm.o
CC stubs/target-monitor-defs.o
CC stubs/target-get-monitor-def.o
CC stubs/pc_madt_cpu_entry.o
CC stubs/vmgenid.o
CC stubs/xen-common.o
CC stubs/xen-hvm.o
CC stubs/pci-host-piix.o
CC qemu-keymap.o
CC ui/input-keymap.o
CC contrib/ivshmem-client/ivshmem-client.o
CC contrib/ivshmem-client/main.o
CC contrib/ivshmem-server/ivshmem-server.o
CC contrib/ivshmem-server/main.o
CC qemu-nbd.o
CC block.o
CC blockjob.o
CC qemu-io-cmds.o
CC replication.o
CC block/raw-format.o
CC block/qcow.o
CC block/vdi.o
CC block/vmdk.o
CC block/cloop.o
CC block/bochs.o
CC block/vpc.o
CC block/vvfat.o
CC block/dmg.o
CC block/qcow2.o
CC block/qcow2-refcount.o
CC block/qcow2-cluster.o
CC block/qcow2-snapshot.o
CC block/qcow2-cache.o
CC block/qcow2-bitmap.o
CC block/qed.o
CC block/qed-l2-cache.o
CC block/qed-table.o
CC block/qed-cluster.o
CC block/qed-check.o
CC block/vhdx.o
CC block/vhdx-endian.o
CC block/vhdx-log.o
CC block/quorum.o
CC block/parallels.o
CC block/blkdebug.o
CC block/blkverify.o
CC block/blkreplay.o
CC block/block-backend.o
CC block/snapshot.o
CC block/qapi.o
CC block/file-posix.o
CC block/linux-aio.o
CC block/null.o
CC block/mirror.o
CC block/commit.o
CC block/io.o
CC block/throttle-groups.o
CC block/nbd.o
CC block/nbd-client.o
CC block/sheepdog.o
CC block/iscsi-opts.o
CC block/accounting.o
CC block/dirty-bitmap.o
CC block/write-threshold.o
CC block/backup.o
CC block/replication.o
CC block/throttle.o
CC block/crypto.o
CC nbd/server.o
CC nbd/client.o
CC nbd/common.o
CC scsi/utils.o
CC scsi/pr-manager.o
CC scsi/pr-manager-helper.o
CC block/iscsi.o
CC block/nfs.o
CC block/curl.o
CC block/rbd.o
CC block/gluster.o
CC block/ssh.o
CC block/dmg-bz2.o
CC crypto/init.o
CC crypto/hash.o
CC crypto/hash-nettle.o
CC crypto/hmac.o
CC crypto/hmac-nettle.o
CC crypto/aes.o
CC crypto/desrfb.o
CC crypto/cipher.o
CC crypto/tlscreds.o
CC crypto/tlscredsanon.o
CC crypto/tlscredsx509.o
CC crypto/tlssession.o
CC crypto/secret.o
CC crypto/random-gnutls.o
CC crypto/pbkdf.o
CC crypto/pbkdf-nettle.o
CC crypto/ivgen.o
CC crypto/ivgen-essiv.o
CC crypto/ivgen-plain.o
CC crypto/ivgen-plain64.o
CC crypto/afsplit.o
CC crypto/xts.o
CC crypto/block.o
CC crypto/block-qcow.o
CC crypto/block-luks.o
CC io/channel.o
CC io/channel-buffer.o
CC io/channel-command.o
CC io/channel-file.o
CC io/channel-socket.o
CC io/channel-tls.o
CC io/channel-watch.o
CC io/channel-websock.o
CC io/channel-util.o
CC io/dns-resolver.o
CC io/net-listener.o
CC io/task.o
CC qom/object.o
CC qom/container.o
CC qom/qom-qobject.o
CC qom/object_interfaces.o
GEN qemu-img-cmds.h
CC fsdev/virtfs-proxy-helper.o
CC qemu-io.o
CC fsdev/9p-marshal.o
CC fsdev/9p-iov-marshal.o
CC scsi/qemu-pr-helper.o
CC qemu-bridge-helper.o
CC blockdev.o
CC blockdev-nbd.o
CC bootdevice.o
CC iothread.o
CC qdev-monitor.o
CC device-hotplug.o
CC os-posix.o
CC bt-host.o
CC bt-vhci.o
CC dma-helpers.o
CC vl.o
CC tpm.o
CC qemu-seccomp.o
CC device_tree.o
CC qmp-marshal.o
CC qmp.o
CC hmp.o
CC cpus-common.o
CC audio/audio.o
CC audio/noaudio.o
CC audio/wavaudio.o
CC audio/mixeng.o
CC audio/sdlaudio.o
CC audio/ossaudio.o
CC audio/wavcapture.o
CC backends/rng.o
CC backends/rng-egd.o
CC backends/rng-random.o
CC backends/hostmem.o
CC backends/tpm.o
CC backends/hostmem-ram.o
CC backends/hostmem-file.o
CC backends/cryptodev.o
CC backends/cryptodev-builtin.o
CC block/stream.o
CC chardev/msmouse.o
CC chardev/wctablet.o
CC chardev/testdev.o
CC chardev/baum.o
CC disas/alpha.o
CC disas/arm.o
CXX disas/arm-a64.o
CC disas/cris.o
CC disas/hppa.o
CC disas/i386.o
CC disas/m68k.o
CC disas/microblaze.o
CC disas/mips.o
CC disas/nios2.o
CC disas/moxie.o
CC disas/ppc.o
CC disas/s390.o
CC disas/sh4.o
CC disas/sparc.o
CC disas/lm32.o
CC disas/xtensa.o
CXX disas/libvixl/vixl/utils.o
CXX disas/libvixl/vixl/compiler-intrinsics.o
CXX disas/libvixl/vixl/a64/instructions-a64.o
CXX disas/libvixl/vixl/a64/decoder-a64.o
CXX disas/libvixl/vixl/a64/disasm-a64.o
CC fsdev/qemu-fsdev.o
CC fsdev/qemu-fsdev-opts.o
CC fsdev/qemu-fsdev-throttle.o
CC fsdev/qemu-fsdev-dummy.o
CC hw/9pfs/9p.o
CC hw/9pfs/9p-util.o
CC hw/9pfs/9p-local.o
CC hw/9pfs/9p-xattr.o
CC hw/9pfs/9p-xattr-user.o
CC hw/9pfs/9p-posix-acl.o
CC hw/9pfs/coth.o
CC hw/9pfs/cofs.o
CC hw/9pfs/codir.o
CC hw/9pfs/cofile.o
CC hw/9pfs/coxattr.o
CC hw/9pfs/9p-synth.o
CC hw/9pfs/9p-handle.o
CC hw/9pfs/9p-proxy.o
CC hw/acpi/core.o
CC hw/acpi/piix4.o
CC hw/acpi/pcihp.o
CC hw/acpi/ich9.o
CC hw/acpi/tco.o
CC hw/acpi/cpu_hotplug.o
CC hw/acpi/memory_hotplug.o
CC hw/acpi/cpu.o
CC hw/acpi/nvdimm.o
CC hw/acpi/vmgenid.o
CC hw/acpi/acpi_interface.o
CC hw/acpi/bios-linker-loader.o
CC hw/acpi/aml-build.o
CC hw/acpi/ipmi.o
CC hw/acpi/acpi-stub.o
CC hw/acpi/ipmi-stub.o
CC hw/audio/sb16.o
CC hw/audio/es1370.o
CC hw/audio/ac97.o
CC hw/audio/fmopl.o
CC hw/audio/adlib.o
CC hw/audio/gus.o
CC hw/audio/gusemu_hal.o
CC hw/audio/gusemu_mixer.o
CC hw/audio/cs4231a.o
CC hw/audio/intel-hda.o
CC hw/audio/hda-codec.o
CC hw/audio/pcspk.o
CC hw/audio/wm8750.o
CC hw/audio/pl041.o
CC hw/audio/lm4549.o
CC hw/audio/cs4231.o
CC hw/audio/marvell_88w8618.o
CC hw/audio/milkymist-ac97.o
CC hw/audio/soundhw.o
CC hw/block/block.o
CC hw/block/cdrom.o
CC hw/block/hd-geometry.o
CC hw/block/fdc.o
CC hw/block/m25p80.o
CC hw/block/nand.o
CC hw/block/pflash_cfi01.o
CC hw/block/pflash_cfi02.o
CC hw/block/ecc.o
CC hw/block/onenand.o
CC hw/block/nvme.o
CC hw/bt/core.o
CC hw/bt/l2cap.o
CC hw/bt/sdp.o
CC hw/bt/hci.o
CC hw/bt/hid.o
CC hw/bt/hci-csr.o
CC hw/char/ipoctal232.o
CC hw/char/escc.o
CC hw/char/parallel.o
CC hw/char/pl011.o
CC hw/char/serial.o
CC hw/char/serial-isa.o
CC hw/char/serial-pci.o
CC hw/char/virtio-console.o
CC hw/char/xilinx_uartlite.o
CC hw/char/cadence_uart.o
CC hw/char/cmsdk-apb-uart.o
CC hw/char/etraxfs_ser.o
CC hw/char/debugcon.o
CC hw/char/grlib_apbuart.o
CC hw/char/imx_serial.o
CC hw/char/lm32_juart.o
CC hw/char/lm32_uart.o
CC hw/char/milkymist-uart.o
CC hw/char/sclpconsole.o
CC hw/char/sclpconsole-lm.o
CC hw/core/qdev.o
CC hw/core/qdev-properties.o
CC hw/core/bus.o
CC hw/core/reset.o
CC hw/core/qdev-fw.o
CC hw/core/fw-path-provider.o
CC hw/core/irq.o
CC hw/core/hotplug.o
CC hw/core/nmi.o
CC hw/core/empty_slot.o
CC hw/core/stream.o
CC hw/core/ptimer.o
CC hw/core/sysbus.o
CC hw/core/machine.o
CC hw/core/loader.o
CC hw/core/loader-fit.o
CC hw/core/qdev-properties-system.o
CC hw/core/register.o
CC hw/core/or-irq.o
CC hw/core/platform-bus.o
CC hw/cpu/core.o
CC hw/display/ads7846.o
CC hw/display/cirrus_vga.o
CC hw/display/g364fb.o
CC hw/display/jazz_led.o
CC hw/display/pl110.o
CC hw/display/ssd0303.o
CC hw/display/ssd0323.o
CC hw/display/vga-pci.o
CC hw/display/vga-isa.o
CC hw/display/vga-isa-mm.o
CC hw/display/vmware_vga.o
CC hw/display/blizzard.o
CC hw/display/exynos4210_fimd.o
CC hw/display/framebuffer.o
CC hw/display/milkymist-vgafb.o
CC hw/display/tc6393xb.o
CC hw/display/milkymist-tmu2.o
CC hw/dma/puv3_dma.o
CC hw/dma/rc4030.o
CC hw/dma/pl080.o
CC hw/dma/pl330.o
CC hw/dma/i82374.o
CC hw/dma/i8257.o
CC hw/dma/xilinx_axidma.o
CC hw/dma/xlnx-zynq-devcfg.o
CC hw/dma/etraxfs_dma.o
CC hw/dma/sparc32_dma.o
CC hw/gpio/max7310.o
CC hw/gpio/pl061.o
CC hw/gpio/puv3_gpio.o
CC hw/gpio/zaurus.o
CC hw/gpio/mpc8xxx.o
CC hw/gpio/gpio_key.o
CC hw/i2c/core.o
CC hw/i2c/smbus.o
CC hw/i2c/smbus_eeprom.o
CC hw/i2c/i2c-ddc.o
CC hw/i2c/versatile_i2c.o
CC hw/i2c/smbus_ich9.o
CC hw/i2c/pm_smbus.o
CC hw/i2c/bitbang_i2c.o
CC hw/i2c/exynos4210_i2c.o
CC hw/i2c/imx_i2c.o
CC hw/i2c/aspeed_i2c.o
CC hw/ide/core.o
CC hw/ide/atapi.o
CC hw/ide/qdev.o
CC hw/ide/pci.o
CC hw/ide/isa.o
CC hw/ide/piix.o
CC hw/ide/cmd646.o
CC hw/ide/macio.o
CC hw/ide/mmio.o
CC hw/ide/via.o
CC hw/ide/microdrive.o
CC hw/ide/ahci.o
CC hw/ide/ich.o
CC hw/ide/ahci-allwinner.o
CC hw/ide/sii3112.o
CC hw/input/adb.o
CC hw/input/adb-mouse.o
CC hw/input/adb-kbd.o
CC hw/input/hid.o
CC hw/input/lm832x.o
CC hw/input/pckbd.o
CC hw/input/pl050.o
CC hw/input/ps2.o
CC hw/input/stellaris_input.o
CC hw/input/tsc2005.o
CC hw/input/virtio-input.o
CC hw/input/virtio-input-hid.o
CC hw/input/virtio-input-host.o
CC hw/intc/heathrow_pic.o
CC hw/intc/i8259_common.o
CC hw/intc/i8259.o
CC hw/intc/pl190.o
CC hw/intc/puv3_intc.o
CC hw/intc/xilinx_intc.o
CC hw/intc/xlnx-pmu-iomod-intc.o
CC hw/intc/xlnx-zynqmp-ipi.o
CC hw/intc/etraxfs_pic.o
CC hw/intc/imx_avic.o
CC hw/intc/lm32_pic.o
CC hw/intc/realview_gic.o
CC hw/intc/slavio_intctl.o
CC hw/intc/ioapic_common.o
CC hw/intc/arm_gic_common.o
CC hw/intc/arm_gic.o
CC hw/intc/arm_gicv2m.o
CC hw/intc/arm_gicv3_common.o
CC hw/intc/arm_gicv3.o
CC hw/intc/arm_gicv3_dist.o
CC hw/intc/arm_gicv3_redist.o
CC hw/intc/arm_gicv3_its_common.o
CC hw/intc/openpic.o
CC hw/intc/intc.o
CC hw/ipack/ipack.o
CC hw/ipack/tpci200.o
CC hw/ipmi/ipmi.o
CC hw/ipmi/ipmi_bmc_sim.o
CC hw/ipmi/ipmi_bmc_extern.o
CC hw/ipmi/isa_ipmi_kcs.o
CC hw/ipmi/isa_ipmi_bt.o
CC hw/isa/isa-bus.o
CC hw/isa/apm.o
CC hw/isa/i82378.o
CC hw/isa/pc87312.o
CC hw/isa/piix4.o
CC hw/isa/vt82c686.o
CC hw/mem/pc-dimm.o
CC hw/mem/nvdimm.o
CC hw/misc/applesmc.o
CC hw/misc/max111x.o
CC hw/misc/tmp105.o
CC hw/misc/tmp421.o
CC hw/misc/debugexit.o
CC hw/misc/sga.o
CC hw/misc/pc-testdev.o
CC hw/misc/pci-testdev.o
CC hw/misc/edu.o
CC hw/misc/unimp.o
CC hw/misc/vmcoreinfo.o
CC hw/misc/arm_l2x0.o
CC hw/misc/arm_integrator_debug.o
CC hw/misc/a9scu.o
CC hw/misc/arm11scu.o
CC hw/misc/puv3_pm.o
CC hw/misc/macio/macio.o
CC hw/misc/macio/cuda.o
CC hw/misc/macio/mac_dbdma.o
CC hw/net/dp8393x.o
CC hw/net/ne2000.o
CC hw/net/eepro100.o
CC hw/net/pcnet-pci.o
CC hw/net/pcnet.o
CC hw/net/e1000.o
CC hw/net/e1000x_common.o
CC hw/net/net_tx_pkt.o
CC hw/net/net_rx_pkt.o
CC hw/net/e1000e.o
CC hw/net/e1000e_core.o
CC hw/net/rtl8139.o
CC hw/net/vmxnet3.o
CC hw/net/smc91c111.o
CC hw/net/lan9118.o
CC hw/net/ne2000-isa.o
CC hw/net/opencores_eth.o
CC hw/net/xgmac.o
CC hw/net/mipsnet.o
CC hw/net/xilinx_axienet.o
CC hw/net/allwinner_emac.o
CC hw/net/imx_fec.o
CC hw/net/cadence_gem.o
CC hw/net/stellaris_enet.o
CC hw/net/lance.o
CC hw/net/sunhme.o
CC hw/net/ftgmac100.o
CC hw/net/sungem.o
CC hw/net/rocker/rocker.o
CC hw/net/rocker/rocker_fp.o
CC hw/net/rocker/rocker_desc.o
CC hw/net/rocker/rocker_world.o
CC hw/net/rocker/rocker_of_dpa.o
CC hw/nvram/ds1225y.o
CC hw/nvram/eeprom93xx.o
CC hw/nvram/eeprom_at24c.o
CC hw/nvram/fw_cfg.o
CC hw/nvram/chrp_nvram.o
CC hw/nvram/mac_nvram.o
CC hw/pci-bridge/pci_bridge_dev.o
CC hw/pci-bridge/pcie_root_port.o
CC hw/pci-bridge/gen_pcie_root_port.o
CC hw/pci-bridge/pcie_pci_bridge.o
CC hw/pci-bridge/pci_expander_bridge.o
CC hw/pci-bridge/xio3130_upstream.o
CC hw/pci-bridge/xio3130_downstream.o
CC hw/pci-bridge/ioh3420.o
CC hw/pci-bridge/i82801b11.o
CC hw/pci-bridge/dec.o
CC hw/pci-bridge/simba.o
CC hw/pci-host/pam.o
CC hw/pci-host/prep.o
CC hw/pci-host/grackle.o
CC hw/pci-host/uninorth.o
CC hw/pci-host/ppce500.o
CC hw/pci-host/versatile.o
CC hw/pci-host/sabre.o
CC hw/pci-host/bonito.o
CC hw/pci-host/piix.o
CC hw/pci-host/q35.o
CC hw/pci-host/gpex.o
CC hw/pci-host/xilinx-pcie.o
CC hw/pci/pci.o
CC hw/pci/pci_bridge.o
CC hw/pci/msix.o
CC hw/pci/msi.o
CC hw/pci/shpc.o
CC hw/pci/slotid_cap.o
CC hw/pci/pci_host.o
CC hw/pci/pcie_host.o
CC hw/pci/pcie.o
CC hw/pci/pcie_aer.o
CC hw/pci/pcie_port.o
CC hw/pci/pci-stub.o
CC hw/pcmcia/pcmcia.o
CC hw/scsi/scsi-disk.o
CC hw/scsi/scsi-generic.o
CC hw/scsi/scsi-bus.o
CC hw/scsi/lsi53c895a.o
CC hw/scsi/mptsas.o
CC hw/scsi/mptconfig.o
CC hw/scsi/mptendian.o
CC hw/scsi/megasas.o
CC hw/scsi/vmw_pvscsi.o
CC hw/scsi/esp.o
CC hw/scsi/esp-pci.o
CC hw/sd/pl181.o
CC hw/sd/ssi-sd.o
CC hw/sd/sd.o
CC hw/sd/core.o
CC hw/sd/sdhci.o
CC hw/smbios/smbios.o
CC hw/smbios/smbios_type_38.o
CC hw/smbios/smbios-stub.o
CC hw/smbios/smbios_type_38-stub.o
CC hw/ssi/pl022.o
CC hw/ssi/ssi.o
CC hw/ssi/xilinx_spi.o
CC hw/ssi/xilinx_spips.o
CC hw/ssi/aspeed_smc.o
CC hw/ssi/stm32f2xx_spi.o
CC hw/ssi/mss-spi.o
CC hw/timer/arm_timer.o
CC hw/timer/arm_mptimer.o
CC hw/timer/armv7m_systick.o
CC hw/timer/a9gtimer.o
CC hw/timer/cadence_ttc.o
CC hw/timer/ds1338.o
CC hw/timer/hpet.o
CC hw/timer/i8254_common.o
CC hw/timer/i8254.o
CC hw/timer/m48t59.o
CC hw/timer/m48t59-isa.o
CC hw/timer/pl031.o
CC hw/timer/puv3_ost.o
CC hw/timer/twl92230.o
CC hw/timer/xilinx_timer.o
CC hw/timer/slavio_timer.o
CC hw/timer/etraxfs_timer.o
CC hw/timer/grlib_gptimer.o
CC hw/timer/imx_epit.o
CC hw/timer/imx_gpt.o
CC hw/timer/lm32_timer.o
CC hw/timer/milkymist-sysctl.o
CC hw/timer/stm32f2xx_timer.o
CC hw/timer/aspeed_timer.o
CC hw/timer/sun4v-rtc.o
CC hw/timer/cmsdk-apb-timer.o
CC hw/timer/mss-timer.o
CC hw/tpm/tpm_util.o
CC hw/tpm/tpm_tis.o
CC hw/tpm/tpm_emulator.o
CC hw/usb/core.o
CC hw/usb/combined-packet.o
CC hw/usb/bus.o
CC hw/usb/libhw.o
CC hw/usb/desc.o
CC hw/usb/desc-msos.o
CC hw/usb/hcd-uhci.o
CC hw/usb/hcd-ohci.o
CC hw/usb/hcd-ehci.o
CC hw/usb/hcd-ehci-pci.o
CC hw/usb/hcd-ehci-sysbus.o
CC hw/usb/hcd-xhci.o
CC hw/usb/hcd-xhci-nec.o
CC hw/usb/hcd-musb.o
CC hw/usb/dev-hub.o
CC hw/usb/dev-hid.o
CC hw/usb/dev-wacom.o
CC hw/usb/dev-storage.o
CC hw/usb/dev-uas.o
CC hw/usb/dev-audio.o
CC hw/usb/dev-serial.o
CC hw/usb/dev-network.o
CC hw/usb/dev-bluetooth.o
CC hw/usb/dev-smartcard-reader.o
CC hw/usb/ccid-card-passthru.o
CC hw/usb/ccid-card-emulated.o
CC hw/usb/dev-mtp.o
CC hw/usb/redirect.o
CC hw/usb/quirks.o
CC hw/usb/host-libusb.o
CC hw/usb/host-stub.o
CC hw/virtio/virtio-rng.o
CC hw/virtio/virtio-pci.o
CC hw/virtio/virtio-bus.o
CC hw/virtio/virtio-mmio.o
CC hw/virtio/vhost-stub.o
CC hw/watchdog/watchdog.o
CC hw/watchdog/wdt_ib700.o
CC hw/watchdog/wdt_i6300esb.o
CC hw/watchdog/wdt_diag288.o
CC hw/watchdog/wdt_aspeed.o
CC migration/migration.o
CC migration/socket.o
CC migration/fd.o
CC migration/exec.o
CC migration/tls.o
CC migration/channel.o
CC migration/savevm.o
CC migration/colo-comm.o
CC migration/colo.o
CC migration/colo-failover.o
CC migration/vmstate.o
CC migration/vmstate-types.o
CC migration/page_cache.o
CC migration/qemu-file.o
CC migration/global_state.o
CC migration/qemu-file-channel.o
CC migration/xbzrle.o
CC migration/postcopy-ram.o
CC migration/qjson.o
CC migration/block.o
CC net/net.o
CC net/queue.o
CC net/checksum.o
CC net/util.o
CC net/hub.o
CC net/socket.o
CC net/dump.o
CC net/eth.o
CC net/l2tpv3.o
CC net/vhost-user.o
CC net/slirp.o
CC net/filter.o
CC net/filter-buffer.o
CC net/filter-mirror.o
CC net/colo-compare.o
CC net/colo.o
CC net/filter-rewriter.o
CC net/filter-replay.o
CC net/tap.o
CC net/tap-linux.o
CC qom/cpu.o
CC replay/replay.o
CC replay/replay-internal.o
CC replay/replay-events.o
CC replay/replay-time.o
CC replay/replay-input.o
CC replay/replay-char.o
CC replay/replay-snapshot.o
CC replay/replay-net.o
CC replay/replay-audio.o
CC slirp/cksum.o
CC slirp/if.o
CC slirp/ip_icmp.o
CC slirp/ip6_icmp.o
CC slirp/ip6_input.o
CC slirp/ip6_output.o
CC slirp/ip_input.o
CC slirp/ip_output.o
CC slirp/dnssearch.o
CC slirp/dhcpv6.o
CC slirp/slirp.o
CC slirp/mbuf.o
CC slirp/misc.o
CC slirp/sbuf.o
CC slirp/socket.o
CC slirp/tcp_input.o
CC slirp/tcp_output.o
CC slirp/tcp_subr.o
CC slirp/tcp_timer.o
CC slirp/udp.o
CC slirp/udp6.o
CC slirp/bootp.o
CC slirp/tftp.o
CC slirp/arp_table.o
CC slirp/ndp_table.o
CC slirp/ncsi.o
CC ui/keymaps.o
CC ui/console.o
CC ui/cursor.o
CC ui/qemu-pixman.o
CC ui/input.o
CC ui/input-legacy.o
CC ui/input-linux.o
CC ui/sdl2.o
CC ui/sdl2-input.o
CC ui/sdl2-2d.o
CC ui/sdl2-gl.o
CC ui/curses.o
CC ui/vnc.o
CC ui/vnc-enc-zlib.o
CC ui/vnc-enc-hextile.o
CC ui/vnc-enc-tight.o
CC ui/vnc-palette.o
CC ui/vnc-enc-zrle.o
CC ui/vnc-auth-vencrypt.o
CC ui/vnc-auth-sasl.o
CC ui/vnc-ws.o
CC ui/vnc-jobs.o
CC ui/gtk.o
CC ui/x_keymap.o
VERT ui/shader/texture-blit-vert.h
VERT ui/shader/texture-blit-flip-vert.h
FRAG ui/shader/texture-blit-frag.h
CC ui/console-gl.o
CC ui/egl-helpers.o
CC ui/egl-context.o
CC ui/egl-headless.o
CC ui/gtk-gl-area.o
CC chardev/char.o
CC chardev/char-fd.o
CC chardev/char-fe.o
CC chardev/char-file.o
CC chardev/char-io.o
CC chardev/char-mux.o
CC chardev/char-null.o
CC chardev/char-parallel.o
CC chardev/char-pipe.o
CC chardev/char-pty.o
CC chardev/char-ringbuf.o
CC chardev/char-serial.o
CC chardev/char-socket.o
CC chardev/char-stdio.o
CC chardev/char-udp.o
LINK tests/qemu-iotests/socket_scm_helper
CCAS s390-ccw/start.o
GEN qemu-doc.html
GEN qemu-doc.txt
CC s390-ccw/main.o
GEN qemu.1
CC s390-ccw/bootmap.o
CC s390-ccw/sclp.o
GEN docs/interop/qemu-qmp-ref.html
CC s390-ccw/virtio.o
CC s390-ccw/virtio-scsi.o
GEN docs/interop/qemu-qmp-ref.txt
CC s390-ccw/virtio-blkdev.o
s390-netboot.img not built since roms/SLOF/ is not available.
BUILD s390-ccw/s390-ccw.elf
STRIP s390-ccw/s390-ccw.img
GEN docs/interop/qemu-qmp-ref.7
GEN docs/interop/qemu-ga-ref.html
GEN docs/interop/qemu-ga-ref.txt
GEN docs/interop/qemu-ga-ref.7
CC qga/commands.o
CC qga/guest-agent-command-state.o
CC qga/main.o
CC qga/commands-posix.o
CC qga/channel-posix.o
CC qga/qapi-generated/qga-qapi-types.o
CC qga/qapi-generated/qga-qapi-visit.o
CC qga/qapi-generated/qga-qmp-marshal.o
AR libqemuutil.a
CC qemu-img.o
LINK qemu-io
LINK fsdev/virtfs-proxy-helper
LINK scsi/qemu-pr-helper
LINK qemu-bridge-helper
CC ui/shader.o
LINK qemu-ga
LINK qemu-keymap
LINK ivshmem-client
LINK ivshmem-server
LINK qemu-nbd
GEN aarch64-softmmu/hmp-commands.h
GEN alpha-softmmu/hmp-commands.h
GEN alpha-softmmu/hmp-commands-info.h
GEN alpha-softmmu/config-target.h
GEN aarch64-softmmu/hmp-commands-info.h
GEN aarch64-softmmu/config-target.h
CC aarch64-softmmu/exec.o
GEN cris-softmmu/hmp-commands.h
GEN cris-softmmu/hmp-commands-info.h
CC alpha-softmmu/exec.o
GEN arm-softmmu/hmp-commands.h
GEN cris-softmmu/config-target.h
GEN arm-softmmu/hmp-commands-info.h
GEN arm-softmmu/config-target.h
CC cris-softmmu/exec.o
CC arm-softmmu/exec.o
CC aarch64-softmmu/tcg/tcg.o
CC alpha-softmmu/tcg/tcg.o
CC cris-softmmu/tcg/tcg.o
CC arm-softmmu/tcg/tcg.o
CC alpha-softmmu/tcg/tcg-op.o
CC aarch64-softmmu/tcg/tcg-op.o
CC cris-softmmu/tcg/tcg-op.o
CC arm-softmmu/tcg/tcg-op.o
CC aarch64-softmmu/tcg/optimize.o
CC alpha-softmmu/tcg/optimize.o
CC cris-softmmu/tcg/optimize.o
CC aarch64-softmmu/tcg/tcg-common.o
CC arm-softmmu/tcg/optimize.o
CC alpha-softmmu/tcg/tcg-common.o
CC aarch64-softmmu/fpu/softfloat.o
CC cris-softmmu/tcg/tcg-common.o
CC alpha-softmmu/fpu/softfloat.o
CC arm-softmmu/tcg/tcg-common.o
CC cris-softmmu/fpu/softfloat.o
CC arm-softmmu/fpu/softfloat.o
CC cris-softmmu/disas.o
CC aarch64-softmmu/disas.o
CC arm-softmmu/disas.o
CC cris-softmmu/arch_init.o
CC alpha-softmmu/disas.o
GEN aarch64-softmmu/gdbstub-xml.c
CC cris-softmmu/cpus.o
GEN arm-softmmu/gdbstub-xml.c
CC arm-softmmu/arch_init.o
CC alpha-softmmu/arch_init.o
CC aarch64-softmmu/arch_init.o
CC arm-softmmu/cpus.o
CC alpha-softmmu/cpus.o
CC aarch64-softmmu/cpus.o
CC cris-softmmu/monitor.o
CC alpha-softmmu/monitor.o
CC arm-softmmu/monitor.o
CC aarch64-softmmu/monitor.o
CC alpha-softmmu/gdbstub.o
CC cris-softmmu/gdbstub.o
CC arm-softmmu/gdbstub.o
CC alpha-softmmu/balloon.o
CC cris-softmmu/balloon.o
CC aarch64-softmmu/gdbstub.o
CC cris-softmmu/ioport.o
CC arm-softmmu/balloon.o
CC alpha-softmmu/ioport.o
CC cris-softmmu/numa.o
CC alpha-softmmu/numa.o
CC arm-softmmu/ioport.o
CC aarch64-softmmu/balloon.o
CC cris-softmmu/qtest.o
CC arm-softmmu/numa.o
CC aarch64-softmmu/ioport.o
CC arm-softmmu/qtest.o
CC alpha-softmmu/qtest.o
CC cris-softmmu/memory.o
CC aarch64-softmmu/numa.o
CC arm-softmmu/memory.o
CC alpha-softmmu/memory.o
CC aarch64-softmmu/qtest.o
CC cris-softmmu/memory_mapping.o
CC aarch64-softmmu/memory.o
CC cris-softmmu/dump.o
CC alpha-softmmu/memory_mapping.o
CC arm-softmmu/memory_mapping.o
CC alpha-softmmu/dump.o
CC aarch64-softmmu/memory_mapping.o
CC aarch64-softmmu/dump.o
CC cris-softmmu/migration/ram.o
CC arm-softmmu/dump.o
CC alpha-softmmu/migration/ram.o
CC aarch64-softmmu/migration/ram.o
CC arm-softmmu/migration/ram.o
CC cris-softmmu/accel/accel.o
CC aarch64-softmmu/accel/accel.o
CC cris-softmmu/accel/stubs/hax-stub.o
CC alpha-softmmu/accel/accel.o
CC cris-softmmu/accel/stubs/hvf-stub.o
CC aarch64-softmmu/accel/stubs/hax-stub.o
CC alpha-softmmu/accel/stubs/hax-stub.o
CC arm-softmmu/accel/accel.o
CC aarch64-softmmu/accel/stubs/hvf-stub.o
CC alpha-softmmu/accel/stubs/hvf-stub.o
CC cris-softmmu/accel/stubs/kvm-stub.o
CC arm-softmmu/accel/stubs/hax-stub.o
CC aarch64-softmmu/accel/stubs/kvm-stub.o
CC cris-softmmu/accel/tcg/tcg-all.o
CC alpha-softmmu/accel/stubs/kvm-stub.o
CC arm-softmmu/accel/stubs/hvf-stub.o
CC alpha-softmmu/accel/tcg/tcg-all.o
CC cris-softmmu/accel/tcg/cputlb.o
CC aarch64-softmmu/accel/tcg/tcg-all.o
CC alpha-softmmu/accel/tcg/cputlb.o
CC arm-softmmu/accel/stubs/kvm-stub.o
CC aarch64-softmmu/accel/tcg/cputlb.o
CC arm-softmmu/accel/tcg/tcg-all.o
CC arm-softmmu/accel/tcg/cputlb.o
CC cris-softmmu/accel/tcg/tcg-runtime.o
CC alpha-softmmu/accel/tcg/tcg-runtime.o
CC cris-softmmu/accel/tcg/cpu-exec.o
CC aarch64-softmmu/accel/tcg/tcg-runtime.o
CC alpha-softmmu/accel/tcg/cpu-exec.o
CC aarch64-softmmu/accel/tcg/cpu-exec.o
CC alpha-softmmu/accel/tcg/cpu-exec-common.o
CC cris-softmmu/accel/tcg/cpu-exec-common.o
CC cris-softmmu/accel/tcg/translate-all.o
CC arm-softmmu/accel/tcg/tcg-runtime.o
CC alpha-softmmu/accel/tcg/translate-all.o
CC aarch64-softmmu/accel/tcg/cpu-exec-common.o
CC arm-softmmu/accel/tcg/cpu-exec.o
CC alpha-softmmu/accel/tcg/translator.o
CC cris-softmmu/accel/tcg/translator.o
CC aarch64-softmmu/accel/tcg/translate-all.o
CC cris-softmmu/hw/core/generic-loader.o
CC arm-softmmu/accel/tcg/cpu-exec-common.o
CC alpha-softmmu/hw/9pfs/virtio-9p-device.o
CC aarch64-softmmu/accel/tcg/translator.o
CC cris-softmmu/hw/core/null-machine.o
CC alpha-softmmu/hw/block/virtio-blk.o
CC arm-softmmu/accel/tcg/translate-all.o
CC cris-softmmu/hw/misc/mmio_interface.o
CC aarch64-softmmu/hw/9pfs/virtio-9p-device.o
CC aarch64-softmmu/hw/adc/stm32f2xx_adc.o
CC cris-softmmu/hw/net/etraxfs_eth.o
CC alpha-softmmu/hw/block/vhost-user-blk.o
CC arm-softmmu/accel/tcg/translator.o
CC aarch64-softmmu/hw/block/virtio-blk.o
CC alpha-softmmu/hw/block/dataplane/virtio-blk.o
CC cris-softmmu/hw/net/vhost_net.o
CC alpha-softmmu/hw/char/virtio-serial-bus.o
CC arm-softmmu/hw/9pfs/virtio-9p-device.o
CC aarch64-softmmu/hw/block/vhost-user-blk.o
CC cris-softmmu/hw/net/rocker/qmp-norocker.o
CC aarch64-softmmu/hw/block/dataplane/virtio-blk.o
CC arm-softmmu/hw/adc/stm32f2xx_adc.o
CC cris-softmmu/hw/vfio/common.o
CC alpha-softmmu/hw/core/generic-loader.o
CC aarch64-softmmu/hw/char/exynos4210_uart.o
CC arm-softmmu/hw/block/virtio-blk.o
CC alpha-softmmu/hw/core/null-machine.o
CC aarch64-softmmu/hw/char/omap_uart.o
CC cris-softmmu/hw/vfio/platform.o
CC aarch64-softmmu/hw/char/digic-uart.o
CC alpha-softmmu/hw/display/vga.o
CC arm-softmmu/hw/block/vhost-user-blk.o
CC cris-softmmu/hw/vfio/spapr.o
CC aarch64-softmmu/hw/char/stm32f2xx_usart.o
CC arm-softmmu/hw/block/dataplane/virtio-blk.o
CC cris-softmmu/hw/cris/boot.o
CC cris-softmmu/hw/cris/axis_dev88.o
CC aarch64-softmmu/hw/char/bcm2835_aux.o
CC arm-softmmu/hw/char/exynos4210_uart.o
CC aarch64-softmmu/hw/char/virtio-serial-bus.o
CC cris-softmmu/target/cris/translate.o
CC alpha-softmmu/hw/display/virtio-gpu.o
CC arm-softmmu/hw/char/omap_uart.o
CC arm-softmmu/hw/char/digic-uart.o
CC aarch64-softmmu/hw/core/generic-loader.o
CC arm-softmmu/hw/char/stm32f2xx_usart.o
CC aarch64-softmmu/hw/core/null-machine.o
CC alpha-softmmu/hw/display/virtio-gpu-3d.o
CC arm-softmmu/hw/char/bcm2835_aux.o
CC aarch64-softmmu/hw/cpu/arm11mpcore.o
CC arm-softmmu/hw/char/virtio-serial-bus.o
CC alpha-softmmu/hw/display/virtio-gpu-pci.o
CC aarch64-softmmu/hw/cpu/realview_mpcore.o
CC cris-softmmu/target/cris/op_helper.o
CC aarch64-softmmu/hw/cpu/a9mpcore.o
CC arm-softmmu/hw/core/generic-loader.o
CC aarch64-softmmu/hw/cpu/a15mpcore.o
CC alpha-softmmu/hw/misc/ivshmem.o
CC aarch64-softmmu/hw/display/omap_dss.o
CC arm-softmmu/hw/core/null-machine.o
CC cris-softmmu/target/cris/helper.o
CC aarch64-softmmu/hw/display/omap_lcdc.o
CC arm-softmmu/hw/cpu/arm11mpcore.o
CC alpha-softmmu/hw/misc/mmio_interface.o
CC cris-softmmu/target/cris/cpu.o
CC arm-softmmu/hw/cpu/realview_mpcore.o
CC aarch64-softmmu/hw/display/pxa2xx_lcd.o
CC cris-softmmu/target/cris/gdbstub.o
CC alpha-softmmu/hw/net/virtio-net.o
CC arm-softmmu/hw/cpu/a9mpcore.o
CC cris-softmmu/target/cris/mmu.o
CC arm-softmmu/hw/cpu/a15mpcore.o
CC alpha-softmmu/hw/net/vhost_net.o
CC alpha-softmmu/hw/scsi/virtio-scsi.o
CC arm-softmmu/hw/display/omap_dss.o
CC cris-softmmu/target/cris/machine.o
CC alpha-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC arm-softmmu/hw/display/omap_lcdc.o
CC aarch64-softmmu/hw/display/bcm2835_fb.o
GEN trace/generated-helpers.c
CC cris-softmmu/trace/control-target.o
CC alpha-softmmu/hw/scsi/vhost-scsi-common.o
CC arm-softmmu/hw/display/pxa2xx_lcd.o
CC aarch64-softmmu/hw/display/vga.o
CC alpha-softmmu/hw/scsi/vhost-scsi.o
CC cris-softmmu/trace/generated-helpers.o
CC alpha-softmmu/hw/scsi/vhost-user-scsi.o
LINK cris-softmmu/qemu-system-cris
CC alpha-softmmu/hw/timer/mc146818rtc.o
CC arm-softmmu/hw/display/bcm2835_fb.o
CC aarch64-softmmu/hw/display/virtio-gpu.o
CC arm-softmmu/hw/display/vga.o
CC alpha-softmmu/hw/vfio/common.o
CC aarch64-softmmu/hw/display/virtio-gpu-3d.o
CC aarch64-softmmu/hw/display/virtio-gpu-pci.o
CC aarch64-softmmu/hw/display/dpcd.o
CC aarch64-softmmu/hw/display/xlnx_dp.o
CC aarch64-softmmu/hw/dma/xlnx_dpdma.o
CC arm-softmmu/hw/display/virtio-gpu.o
CC alpha-softmmu/hw/vfio/pci.o
CC arm-softmmu/hw/display/virtio-gpu-3d.o
CC aarch64-softmmu/hw/dma/omap_dma.o
CC arm-softmmu/hw/display/virtio-gpu-pci.o
CC arm-softmmu/hw/dma/omap_dma.o
GEN i386-softmmu/hmp-commands.h
GEN i386-softmmu/hmp-commands-info.h
GEN i386-softmmu/config-target.h
CC i386-softmmu/exec.o
CC i386-softmmu/tcg/tcg.o
CC i386-softmmu/tcg/tcg-op.o
CC i386-softmmu/tcg/optimize.o
CC i386-softmmu/tcg/tcg-common.o
CC i386-softmmu/fpu/softfloat.o
CC i386-softmmu/disas.o
GEN i386-softmmu/gdbstub-xml.c
CC i386-softmmu/arch_init.o
CC i386-softmmu/cpus.o
CC i386-softmmu/monitor.o
CC i386-softmmu/gdbstub.o
CC i386-softmmu/balloon.o
CC i386-softmmu/ioport.o
CC i386-softmmu/numa.o
CC i386-softmmu/qtest.o
CC i386-softmmu/memory.o
CC i386-softmmu/memory_mapping.o
CC i386-softmmu/dump.o
CC i386-softmmu/migration/ram.o
CC i386-softmmu/accel/accel.o
CC i386-softmmu/accel/stubs/hax-stub.o
CC i386-softmmu/accel/stubs/hvf-stub.o
CC i386-softmmu/accel/stubs/kvm-stub.o
CC i386-softmmu/accel/tcg/tcg-all.o
CC i386-softmmu/accel/tcg/cputlb.o
CC i386-softmmu/accel/tcg/tcg-runtime.o
CC i386-softmmu/accel/tcg/cpu-exec.o
CC i386-softmmu/accel/tcg/cpu-exec-common.o
CC i386-softmmu/accel/tcg/translate-all.o
CC i386-softmmu/accel/tcg/translator.o
CC i386-softmmu/hw/9pfs/virtio-9p-device.o
CC i386-softmmu/hw/block/virtio-blk.o
CC i386-softmmu/hw/block/vhost-user-blk.o
CC i386-softmmu/hw/block/dataplane/virtio-blk.o
CC i386-softmmu/hw/char/virtio-serial-bus.o
CC i386-softmmu/hw/core/generic-loader.o
CC i386-softmmu/hw/core/null-machine.o
CC i386-softmmu/hw/display/vga.o
CC i386-softmmu/hw/display/virtio-gpu.o
CC i386-softmmu/hw/display/virtio-gpu-3d.o
CC i386-softmmu/hw/display/virtio-gpu-pci.o
CC i386-softmmu/hw/display/virtio-vga.o
CC i386-softmmu/hw/intc/apic.o
CC i386-softmmu/hw/intc/apic_common.o
CC i386-softmmu/hw/intc/ioapic.o
CC i386-softmmu/hw/isa/lpc_ich9.o
CC i386-softmmu/hw/misc/ivshmem.o
CC i386-softmmu/hw/misc/pvpanic.o
CC i386-softmmu/hw/misc/mmio_interface.o
CC i386-softmmu/hw/net/virtio-net.o
CC i386-softmmu/hw/net/vhost_net.o
CC i386-softmmu/hw/scsi/virtio-scsi.o
CC i386-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC i386-softmmu/hw/scsi/vhost-scsi-common.o
CC i386-softmmu/hw/scsi/vhost-scsi.o
CC i386-softmmu/hw/scsi/vhost-user-scsi.o
CC i386-softmmu/hw/timer/mc146818rtc.o
CC i386-softmmu/hw/vfio/common.o
CC i386-softmmu/hw/vfio/pci.o
CC i386-softmmu/hw/vfio/pci-quirks.o
CC i386-softmmu/hw/vfio/platform.o
CC i386-softmmu/hw/vfio/spapr.o
CC i386-softmmu/hw/virtio/virtio.o
CC i386-softmmu/hw/virtio/virtio-balloon.o
CC i386-softmmu/hw/virtio/vhost.o
CC i386-softmmu/hw/virtio/vhost-backend.o
CC i386-softmmu/hw/virtio/vhost-user.o
CC i386-softmmu/hw/virtio/vhost-vsock.o
CC i386-softmmu/hw/virtio/virtio-crypto.o
CC i386-softmmu/hw/virtio/virtio-crypto-pci.o
CC i386-softmmu/hw/i386/multiboot.o
CC i386-softmmu/hw/i386/pc.o
CC i386-softmmu/hw/i386/pc_piix.o
CC i386-softmmu/hw/i386/pc_q35.o
CC i386-softmmu/hw/i386/pc_sysfw.o
CC i386-softmmu/hw/i386/x86-iommu.o
CC i386-softmmu/hw/i386/intel_iommu.o
CC i386-softmmu/hw/i386/amd_iommu.o
CC i386-softmmu/hw/i386/vmport.o
CC i386-softmmu/hw/i386/vmmouse.o
CC i386-softmmu/hw/i386/kvmvapic.o
CC i386-softmmu/hw/i386/acpi-build.o
CC i386-softmmu/target/i386/helper.o
CC i386-softmmu/target/i386/cpu.o
CC i386-softmmu/target/i386/gdbstub.o
CC i386-softmmu/target/i386/xsave_helper.o
CC i386-softmmu/target/i386/translate.o
CC i386-softmmu/target/i386/bpt_helper.o
CC i386-softmmu/target/i386/cc_helper.o
CC i386-softmmu/target/i386/excp_helper.o
CC i386-softmmu/target/i386/fpu_helper.o
CC i386-softmmu/target/i386/int_helper.o
CC i386-softmmu/target/i386/mem_helper.o
CC i386-softmmu/target/i386/misc_helper.o
CC i386-softmmu/target/i386/mpx_helper.o
CC i386-softmmu/target/i386/seg_helper.o
CC i386-softmmu/target/i386/smm_helper.o
CC i386-softmmu/target/i386/svm_helper.o
CC i386-softmmu/target/i386/machine.o
CC i386-softmmu/target/i386/arch_memory_mapping.o
CC i386-softmmu/target/i386/arch_dump.o
CC i386-softmmu/target/i386/monitor.o
CC i386-softmmu/target/i386/kvm-stub.o
GEN trace/generated-helpers.c
CC i386-softmmu/trace/control-target.o
CC i386-softmmu/gdbstub-xml.o
CC i386-softmmu/trace/generated-helpers.o
LINK i386-softmmu/qemu-system-i386
target/i386/helper.o: In function `get_me_mask':
/var/tmp/patchew-tester-tmp-hek3vjny/src/target/i386/helper.c:735: undefined reference to `kvm_arch_get_supported_cpuid'
target/i386/monitor.o: In function `get_me_mask':
/var/tmp/patchew-tester-tmp-hek3vjny/src/target/i386/monitor.c:71: undefined reference to `kvm_arch_get_supported_cpuid'
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:193: qemu-system-i386] Error 1
make: *** [Makefile:403: subdir-i386-softmmu] Error 2
make: *** Waiting for unfinished jobs....
CC arm-softmmu/hw/dma/soc_dma.o
CC aarch64-softmmu/hw/dma/soc_dma.o
CC alpha-softmmu/hw/vfio/pci-quirks.o
CC arm-softmmu/hw/dma/pxa2xx_dma.o
CC aarch64-softmmu/hw/dma/pxa2xx_dma.o
CC aarch64-softmmu/hw/dma/bcm2835_dma.o
CC arm-softmmu/hw/dma/bcm2835_dma.o
CC alpha-softmmu/hw/vfio/platform.o
CC arm-softmmu/hw/gpio/omap_gpio.o
CC alpha-softmmu/hw/vfio/spapr.o
CC alpha-softmmu/hw/virtio/virtio.o
CC arm-softmmu/hw/gpio/imx_gpio.o
CC alpha-softmmu/hw/virtio/virtio-balloon.o
CC arm-softmmu/hw/gpio/bcm2835_gpio.o
CC alpha-softmmu/hw/virtio/vhost.o
CC arm-softmmu/hw/i2c/omap_i2c.o
CC alpha-softmmu/hw/virtio/vhost-backend.o
CC alpha-softmmu/hw/virtio/vhost-user.o
CC arm-softmmu/hw/input/pxa2xx_keypad.o
CC arm-softmmu/hw/input/tsc210x.o
CC alpha-softmmu/hw/virtio/vhost-vsock.o
CC arm-softmmu/hw/intc/armv7m_nvic.o
CC aarch64-softmmu/hw/gpio/omap_gpio.o
CC alpha-softmmu/hw/virtio/virtio-crypto.o
CC arm-softmmu/hw/intc/exynos4210_gic.o
CC arm-softmmu/hw/intc/exynos4210_combiner.o
CC aarch64-softmmu/hw/gpio/imx_gpio.o
CC alpha-softmmu/hw/virtio/virtio-crypto-pci.o
CC aarch64-softmmu/hw/gpio/bcm2835_gpio.o
CC alpha-softmmu/hw/alpha/dp264.o
CC arm-softmmu/hw/intc/omap_intc.o
CC aarch64-softmmu/hw/i2c/omap_i2c.o
CC alpha-softmmu/hw/alpha/pci.o
CC arm-softmmu/hw/intc/bcm2835_ic.o
CC aarch64-softmmu/hw/input/pxa2xx_keypad.o
CC arm-softmmu/hw/intc/bcm2836_control.o
CC aarch64-softmmu/hw/input/tsc210x.o
CC arm-softmmu/hw/intc/allwinner-a10-pic.o
CC alpha-softmmu/hw/alpha/typhoon.o
CC arm-softmmu/hw/intc/aspeed_vic.o
CC aarch64-softmmu/hw/intc/armv7m_nvic.o
CC aarch64-softmmu/hw/intc/exynos4210_gic.o
CC alpha-softmmu/target/alpha/machine.o
CC aarch64-softmmu/hw/intc/exynos4210_combiner.o
CC aarch64-softmmu/hw/intc/omap_intc.o
CC alpha-softmmu/target/alpha/translate.o
CC aarch64-softmmu/hw/intc/bcm2835_ic.o
CC aarch64-softmmu/hw/intc/bcm2836_control.o
CC aarch64-softmmu/hw/intc/allwinner-a10-pic.o
CC aarch64-softmmu/hw/intc/aspeed_vic.o
CC aarch64-softmmu/hw/intc/arm_gicv3_cpuif.o
CC aarch64-softmmu/hw/misc/ivshmem.o
CC alpha-softmmu/target/alpha/helper.o
CC aarch64-softmmu/hw/misc/arm_sysctl.o
CC alpha-softmmu/target/alpha/cpu.o
CC aarch64-softmmu/hw/misc/cbus.o
CC aarch64-softmmu/hw/misc/exynos4210_pmu.o
CC alpha-softmmu/target/alpha/int_helper.o
CC aarch64-softmmu/hw/misc/exynos4210_clk.o
CC aarch64-softmmu/hw/misc/exynos4210_rng.o
CC alpha-softmmu/target/alpha/fpu_helper.o
CC aarch64-softmmu/hw/misc/imx_ccm.o
CC aarch64-softmmu/hw/misc/imx31_ccm.o
CC alpha-softmmu/target/alpha/vax_helper.o
CC aarch64-softmmu/hw/misc/imx25_ccm.o
CC aarch64-softmmu/hw/misc/imx6_ccm.o
CC aarch64-softmmu/hw/misc/imx6_src.o
CC alpha-softmmu/target/alpha/sys_helper.o
CC aarch64-softmmu/hw/misc/mst_fpga.o
CC aarch64-softmmu/hw/misc/omap_clk.o
CC alpha-softmmu/target/alpha/mem_helper.o
CC arm-softmmu/hw/intc/arm_gicv3_cpuif.o
CC aarch64-softmmu/hw/misc/omap_gpmc.o
CC aarch64-softmmu/hw/misc/omap_l4.o
CC alpha-softmmu/target/alpha/gdbstub.o
CC aarch64-softmmu/hw/misc/omap_sdrc.o
CC aarch64-softmmu/hw/misc/omap_tap.o
GEN trace/generated-helpers.c
CC alpha-softmmu/trace/control-target.o
CC arm-softmmu/hw/misc/ivshmem.o
CC aarch64-softmmu/hw/misc/bcm2835_mbox.o
CC alpha-softmmu/trace/generated-helpers.o
CC arm-softmmu/hw/misc/arm_sysctl.o
CC arm-softmmu/hw/misc/cbus.o
LINK alpha-softmmu/qemu-system-alpha
CC arm-softmmu/hw/misc/exynos4210_pmu.o
CC arm-softmmu/hw/misc/exynos4210_clk.o
CC arm-softmmu/hw/misc/exynos4210_rng.o
CC arm-softmmu/hw/misc/imx_ccm.o
CC arm-softmmu/hw/misc/imx31_ccm.o
CC arm-softmmu/hw/misc/imx25_ccm.o
CC aarch64-softmmu/hw/misc/bcm2835_property.o
CC arm-softmmu/hw/misc/imx6_ccm.o
CC arm-softmmu/hw/misc/imx6_src.o
CC aarch64-softmmu/hw/misc/bcm2835_rng.o
CC arm-softmmu/hw/misc/mst_fpga.o
CC aarch64-softmmu/hw/misc/zynq_slcr.o
CC arm-softmmu/hw/misc/omap_clk.o
CC aarch64-softmmu/hw/misc/zynq-xadc.o
CC aarch64-softmmu/hw/misc/stm32f2xx_syscfg.o
CC aarch64-softmmu/hw/misc/mps2-scc.o
CC aarch64-softmmu/hw/misc/auxbus.o
CC aarch64-softmmu/hw/misc/aspeed_scu.o
CC aarch64-softmmu/hw/misc/aspeed_sdmc.o
CC aarch64-softmmu/hw/misc/mmio_interface.o
CC arm-softmmu/hw/misc/omap_gpmc.o
CC arm-softmmu/hw/misc/omap_l4.o
CC aarch64-softmmu/hw/misc/msf2-sysreg.o
CC aarch64-softmmu/hw/net/virtio-net.o
CC arm-softmmu/hw/misc/omap_sdrc.o
CC aarch64-softmmu/hw/net/vhost_net.o
CC arm-softmmu/hw/misc/omap_tap.o
CC aarch64-softmmu/hw/pcmcia/pxa2xx.o
CC arm-softmmu/hw/misc/bcm2835_mbox.o
CC arm-softmmu/hw/misc/bcm2835_property.o
CC arm-softmmu/hw/misc/bcm2835_rng.o
CC arm-softmmu/hw/misc/zynq_slcr.o
CC arm-softmmu/hw/misc/zynq-xadc.o
CC arm-softmmu/hw/misc/stm32f2xx_syscfg.o
CC aarch64-softmmu/hw/scsi/virtio-scsi.o
CC arm-softmmu/hw/misc/mps2-scc.o
CC aarch64-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC arm-softmmu/hw/misc/aspeed_scu.o
CC arm-softmmu/hw/misc/aspeed_sdmc.o
CC aarch64-softmmu/hw/scsi/vhost-scsi-common.o
CC arm-softmmu/hw/misc/mmio_interface.o
CC aarch64-softmmu/hw/scsi/vhost-scsi.o
CC arm-softmmu/hw/misc/msf2-sysreg.o
CC aarch64-softmmu/hw/scsi/vhost-user-scsi.o
CC arm-softmmu/hw/net/virtio-net.o
CC arm-softmmu/hw/net/vhost_net.o
CC aarch64-softmmu/hw/sd/omap_mmc.o
CC aarch64-softmmu/hw/sd/pxa2xx_mmci.o
CC arm-softmmu/hw/pcmcia/pxa2xx.o
CC arm-softmmu/hw/scsi/virtio-scsi.o
CC arm-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC arm-softmmu/hw/scsi/vhost-scsi-common.o
CC arm-softmmu/hw/scsi/vhost-scsi.o
CC arm-softmmu/hw/scsi/vhost-user-scsi.o
CC aarch64-softmmu/hw/sd/bcm2835_sdhost.o
CC aarch64-softmmu/hw/ssi/omap_spi.o
CC aarch64-softmmu/hw/ssi/imx_spi.o
CC aarch64-softmmu/hw/timer/exynos4210_mct.o
CC aarch64-softmmu/hw/timer/exynos4210_pwm.o
CC aarch64-softmmu/hw/timer/exynos4210_rtc.o
CC aarch64-softmmu/hw/timer/omap_gptimer.o
CC aarch64-softmmu/hw/timer/omap_synctimer.o
CC aarch64-softmmu/hw/timer/pxa2xx_timer.o
CC aarch64-softmmu/hw/timer/digic-timer.o
CC aarch64-softmmu/hw/timer/allwinner-a10-pit.o
CC aarch64-softmmu/hw/usb/tusb6010.o
CC aarch64-softmmu/hw/vfio/common.o
CC aarch64-softmmu/hw/vfio/pci.o
CC aarch64-softmmu/hw/vfio/pci-quirks.o
CC aarch64-softmmu/hw/vfio/platform.o
CC aarch64-softmmu/hw/vfio/calxeda-xgmac.o
CC aarch64-softmmu/hw/vfio/amd-xgbe.o
CC aarch64-softmmu/hw/vfio/spapr.o
CC aarch64-softmmu/hw/virtio/virtio.o
CC aarch64-softmmu/hw/virtio/virtio-balloon.o
CC aarch64-softmmu/hw/virtio/vhost.o
CC aarch64-softmmu/hw/virtio/vhost-backend.o
CC aarch64-softmmu/hw/virtio/vhost-user.o
CC aarch64-softmmu/hw/virtio/vhost-vsock.o
CC aarch64-softmmu/hw/virtio/virtio-crypto.o
CC aarch64-softmmu/hw/virtio/virtio-crypto-pci.o
CC aarch64-softmmu/hw/arm/boot.o
CC aarch64-softmmu/hw/arm/collie.o
CC aarch64-softmmu/hw/arm/exynos4_boards.o
CC aarch64-softmmu/hw/arm/gumstix.o
CC aarch64-softmmu/hw/arm/highbank.o
CC aarch64-softmmu/hw/arm/digic_boards.o
CC aarch64-softmmu/hw/arm/integratorcp.o
CC aarch64-softmmu/hw/arm/mainstone.o
CC aarch64-softmmu/hw/arm/musicpal.o
CC aarch64-softmmu/hw/arm/nseries.o
CC aarch64-softmmu/hw/arm/omap_sx1.o
CC aarch64-softmmu/hw/arm/palm.o
CC aarch64-softmmu/hw/arm/realview.o
CC aarch64-softmmu/hw/arm/spitz.o
CC aarch64-softmmu/hw/arm/stellaris.o
CC aarch64-softmmu/hw/arm/tosa.o
CC aarch64-softmmu/hw/arm/versatilepb.o
CC aarch64-softmmu/hw/arm/vexpress.o
CC aarch64-softmmu/hw/arm/virt.o
CC aarch64-softmmu/hw/arm/xilinx_zynq.o
CC aarch64-softmmu/hw/arm/z2.o
CC aarch64-softmmu/hw/arm/virt-acpi-build.o
CC aarch64-softmmu/hw/arm/netduino2.o
CC aarch64-softmmu/hw/arm/sysbus-fdt.o
CC aarch64-softmmu/hw/arm/armv7m.o
CC aarch64-softmmu/hw/arm/exynos4210.o
CC aarch64-softmmu/hw/arm/pxa2xx.o
CC aarch64-softmmu/hw/arm/pxa2xx_gpio.o
CC aarch64-softmmu/hw/arm/pxa2xx_pic.o
CC aarch64-softmmu/hw/arm/digic.o
CC aarch64-softmmu/hw/arm/omap1.o
CC aarch64-softmmu/hw/arm/omap2.o
CC aarch64-softmmu/hw/arm/strongarm.o
CC aarch64-softmmu/hw/arm/allwinner-a10.o
CC aarch64-softmmu/hw/arm/cubieboard.o
CC aarch64-softmmu/hw/arm/bcm2835_peripherals.o
CC aarch64-softmmu/hw/arm/bcm2836.o
CC aarch64-softmmu/hw/arm/raspi.o
CC aarch64-softmmu/hw/arm/stm32f205_soc.o
CC aarch64-softmmu/hw/arm/xlnx-zynqmp.o
CC aarch64-softmmu/hw/arm/xlnx-zcu102.o
CC aarch64-softmmu/hw/arm/fsl-imx25.o
CC aarch64-softmmu/hw/arm/imx25_pdk.o
CC aarch64-softmmu/hw/arm/fsl-imx31.o
CC aarch64-softmmu/hw/arm/kzm.o
CC aarch64-softmmu/hw/arm/fsl-imx6.o
CC aarch64-softmmu/hw/arm/sabrelite.o
CC aarch64-softmmu/hw/arm/aspeed_soc.o
CC aarch64-softmmu/hw/arm/aspeed.o
CC aarch64-softmmu/hw/arm/mps2.o
CC aarch64-softmmu/hw/arm/msf2-soc.o
CC aarch64-softmmu/hw/arm/msf2-som.o
CC aarch64-softmmu/target/arm/arm-semi.o
CC aarch64-softmmu/target/arm/machine.o
CC aarch64-softmmu/target/arm/psci.o
CC aarch64-softmmu/target/arm/arch_dump.o
CC aarch64-softmmu/target/arm/monitor.o
CC aarch64-softmmu/target/arm/kvm-stub.o
CC aarch64-softmmu/target/arm/translate.o
CC aarch64-softmmu/target/arm/op_helper.o
CC aarch64-softmmu/target/arm/helper.o
CC aarch64-softmmu/target/arm/cpu.o
CC aarch64-softmmu/target/arm/neon_helper.o
CC aarch64-softmmu/target/arm/iwmmxt_helper.o
CC aarch64-softmmu/target/arm/gdbstub.o
CC aarch64-softmmu/target/arm/cpu64.o
CC aarch64-softmmu/target/arm/translate-a64.o
CC aarch64-softmmu/target/arm/helper-a64.o
CC aarch64-softmmu/target/arm/gdbstub64.o
CC aarch64-softmmu/target/arm/crypto_helper.o
CC aarch64-softmmu/target/arm/arm-powerctl.o
CC arm-softmmu/hw/sd/omap_mmc.o
CC arm-softmmu/hw/sd/pxa2xx_mmci.o
GEN trace/generated-helpers.c
CC aarch64-softmmu/trace/control-target.o
CC aarch64-softmmu/gdbstub-xml.o
CC arm-softmmu/hw/sd/bcm2835_sdhost.o
CC aarch64-softmmu/trace/generated-helpers.o
CC arm-softmmu/hw/ssi/omap_spi.o
CC arm-softmmu/hw/ssi/imx_spi.o
CC arm-softmmu/hw/timer/exynos4210_mct.o
CC arm-softmmu/hw/timer/exynos4210_pwm.o
CC arm-softmmu/hw/timer/exynos4210_rtc.o
CC arm-softmmu/hw/timer/omap_gptimer.o
CC arm-softmmu/hw/timer/omap_synctimer.o
CC arm-softmmu/hw/timer/pxa2xx_timer.o
CC arm-softmmu/hw/timer/digic-timer.o
CC arm-softmmu/hw/timer/allwinner-a10-pit.o
CC arm-softmmu/hw/usb/tusb6010.o
CC arm-softmmu/hw/vfio/common.o
CC arm-softmmu/hw/vfio/pci.o
CC arm-softmmu/hw/vfio/pci-quirks.o
CC arm-softmmu/hw/vfio/platform.o
LINK aarch64-softmmu/qemu-system-aarch64
CC arm-softmmu/hw/vfio/calxeda-xgmac.o
CC arm-softmmu/hw/vfio/amd-xgbe.o
CC arm-softmmu/hw/vfio/spapr.o
CC arm-softmmu/hw/virtio/virtio.o
CC arm-softmmu/hw/virtio/virtio-balloon.o
CC arm-softmmu/hw/virtio/vhost.o
CC arm-softmmu/hw/virtio/vhost-backend.o
CC arm-softmmu/hw/virtio/vhost-user.o
CC arm-softmmu/hw/virtio/vhost-vsock.o
CC arm-softmmu/hw/virtio/virtio-crypto.o
CC arm-softmmu/hw/virtio/virtio-crypto-pci.o
CC arm-softmmu/hw/arm/boot.o
CC arm-softmmu/hw/arm/collie.o
CC arm-softmmu/hw/arm/exynos4_boards.o
CC arm-softmmu/hw/arm/gumstix.o
CC arm-softmmu/hw/arm/highbank.o
CC arm-softmmu/hw/arm/digic_boards.o
CC arm-softmmu/hw/arm/integratorcp.o
CC arm-softmmu/hw/arm/mainstone.o
CC arm-softmmu/hw/arm/musicpal.o
CC arm-softmmu/hw/arm/nseries.o
CC arm-softmmu/hw/arm/omap_sx1.o
CC arm-softmmu/hw/arm/palm.o
CC arm-softmmu/hw/arm/realview.o
CC arm-softmmu/hw/arm/spitz.o
CC arm-softmmu/hw/arm/stellaris.o
CC arm-softmmu/hw/arm/tosa.o
CC arm-softmmu/hw/arm/versatilepb.o
CC arm-softmmu/hw/arm/vexpress.o
CC arm-softmmu/hw/arm/virt.o
CC arm-softmmu/hw/arm/xilinx_zynq.o
CC arm-softmmu/hw/arm/z2.o
CC arm-softmmu/hw/arm/virt-acpi-build.o
CC arm-softmmu/hw/arm/netduino2.o
CC arm-softmmu/hw/arm/sysbus-fdt.o
CC arm-softmmu/hw/arm/armv7m.o
CC arm-softmmu/hw/arm/exynos4210.o
CC arm-softmmu/hw/arm/pxa2xx.o
CC arm-softmmu/hw/arm/pxa2xx_gpio.o
CC arm-softmmu/hw/arm/pxa2xx_pic.o
CC arm-softmmu/hw/arm/digic.o
CC arm-softmmu/hw/arm/omap1.o
CC arm-softmmu/hw/arm/omap2.o
CC arm-softmmu/hw/arm/strongarm.o
CC arm-softmmu/hw/arm/allwinner-a10.o
CC arm-softmmu/hw/arm/cubieboard.o
CC arm-softmmu/hw/arm/bcm2835_peripherals.o
CC arm-softmmu/hw/arm/bcm2836.o
CC arm-softmmu/hw/arm/raspi.o
CC arm-softmmu/hw/arm/stm32f205_soc.o
CC arm-softmmu/hw/arm/fsl-imx25.o
CC arm-softmmu/hw/arm/imx25_pdk.o
CC arm-softmmu/hw/arm/fsl-imx31.o
CC arm-softmmu/hw/arm/kzm.o
CC arm-softmmu/hw/arm/fsl-imx6.o
CC arm-softmmu/hw/arm/sabrelite.o
CC arm-softmmu/hw/arm/aspeed_soc.o
CC arm-softmmu/hw/arm/aspeed.o
CC arm-softmmu/hw/arm/mps2.o
CC arm-softmmu/hw/arm/msf2-soc.o
CC arm-softmmu/hw/arm/msf2-som.o
CC arm-softmmu/target/arm/arm-semi.o
CC arm-softmmu/target/arm/machine.o
CC arm-softmmu/target/arm/psci.o
CC arm-softmmu/target/arm/arch_dump.o
CC arm-softmmu/target/arm/monitor.o
CC arm-softmmu/target/arm/kvm-stub.o
CC arm-softmmu/target/arm/translate.o
CC arm-softmmu/target/arm/op_helper.o
CC arm-softmmu/target/arm/helper.o
CC arm-softmmu/target/arm/cpu.o
CC arm-softmmu/target/arm/neon_helper.o
CC arm-softmmu/target/arm/iwmmxt_helper.o
CC arm-softmmu/target/arm/gdbstub.o
CC arm-softmmu/target/arm/crypto_helper.o
CC arm-softmmu/target/arm/arm-powerctl.o
GEN trace/generated-helpers.c
CC arm-softmmu/trace/control-target.o
CC arm-softmmu/gdbstub-xml.o
CC arm-softmmu/trace/generated-helpers.o
LINK arm-softmmu/qemu-system-arm
=== OUTPUT END ===
Test command exited with code: 2
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@freelists.org
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 00/23] x86: Secure Encrypted Virtualization (AMD)
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
@ 2018-01-29 18:19 ` no-reply
-1 siblings, 0 replies; 118+ messages in thread
From: no-reply @ 2018-01-29 18:19 UTC (permalink / raw)
To: brijesh.singh
Cc: famz, qemu-devel, edgar.iglesias, peter.maydell, ehabkost, kvm,
Thomas.Lendacky, stefanha, mst, richard.henderson, dgilbert,
brijesh.singh, pbonzini
Hi,
This series failed docker-mingw@fedora build test. Please find the testing commands and
their output below. If you have Docker installed, you can probably reproduce it
locally.
Type: series
Message-id: 20180129174132.108925-1-brijesh.singh@amd.com
Subject: [Qemu-devel] [PATCH v6 00/23] x86: Secure Encrypted Virtualization (AMD)
=== TEST SCRIPT BEGIN ===
#!/bin/bash
set -e
git submodule update --init dtc
# Let docker tests dump environment info
export SHOW_ENV=1
export J=8
time make docker-test-mingw@fedora
=== TEST SCRIPT END ===
Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
Switched to a new branch 'test'
6efcae2888 sev: add migration blocker
16a9e00946 target/i386: clear C-bit when walking SEV guest page table
3b5e4a5a54 sev: add debug encrypt and decrypt commands
9034d072b3 hw: i386: set ram_debug_ops when memory encryption is enabled
9b48370842 sev: Finalize the SEV guest launch flow
5e126818a5 sev: emit the SEV_MEASUREMENT event
1c9a562916 qapi: add SEV_MEASUREMENT event
b322fca554 target/i386: encrypt bios rom
10da3ed830 sev: add command to encrypt guest memory region
cc979f7ffb sev: add command to create launch memory encryption context
9388e9fbf7 hmp: display memory encryption support in 'info kvm'
8875a9eff3 kvm: introduce memory encryption APIs
c530cf3a0f sev: register the guest memory range which may contain encrypted data
f486eda972 sev: add command to initialize the memory encryption context
cd64908627 accel: add Secure Encrypted Virtulization (SEV) object
08729ca7e4 docs: add AMD Secure Encrypted Virtualization (SEV)
e13044a465 kvm: update kvm.h to include memory encryption ioctls
113e16b66e machine: add -memory-encryption property
f839a7f5d1 target/i386: add memory encryption feature cpuid support
4e159e781f monitor/i386: use debug APIs when accessing guest memory
fbeb706e23 exec: add debug version of physical memory read and write API
11bc1372d7 exec: add ram_debug_ops support
1b02df629e memattrs: add debug attribute
=== OUTPUT BEGIN ===
Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc'
Cloning into '/var/tmp/patchew-tester-tmp-mmhwcwgk/src/dtc'...
Submodule path 'dtc': checked out 'e54388015af1fb4bf04d0bca99caba1074d9cc42'
BUILD fedora
GEN /var/tmp/patchew-tester-tmp-mmhwcwgk/src/docker-src.2018-01-29-13.13.20.27358/qemu.tar
Cloning into '/var/tmp/patchew-tester-tmp-mmhwcwgk/src/docker-src.2018-01-29-13.13.20.27358/qemu.tar.vroot'...
done.
Your branch is up-to-date with 'origin/test'.
Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc'
Cloning into '/var/tmp/patchew-tester-tmp-mmhwcwgk/src/docker-src.2018-01-29-13.13.20.27358/qemu.tar.vroot/dtc'...
Submodule path 'dtc': checked out 'e54388015af1fb4bf04d0bca99caba1074d9cc42'
Submodule 'ui/keycodemapdb' (git://git.qemu.org/keycodemapdb.git) registered for path 'ui/keycodemapdb'
Cloning into '/var/tmp/patchew-tester-tmp-mmhwcwgk/src/docker-src.2018-01-29-13.13.20.27358/qemu.tar.vroot/ui/keycodemapdb'...
Submodule path 'ui/keycodemapdb': checked out '10739aa26051a5d49d88132604539d3ed085e72e'
COPY RUNNER
RUN test-mingw in qemu:fedora
Packages installed:
PyYAML-3.11-13.fc25.x86_64
SDL-devel-1.2.15-21.fc24.x86_64
bc-1.06.95-16.fc24.x86_64
bison-3.0.4-4.fc24.x86_64
bzip2-1.0.6-21.fc25.x86_64
ccache-3.3.4-1.fc25.x86_64
clang-3.9.1-2.fc25.x86_64
findutils-4.6.0-8.fc25.x86_64
flex-2.6.0-3.fc25.x86_64
gcc-6.4.1-1.fc25.x86_64
gcc-c++-6.4.1-1.fc25.x86_64
gettext-0.19.8.1-3.fc25.x86_64
git-2.9.5-3.fc25.x86_64
glib2-devel-2.50.3-1.fc25.x86_64
hostname-3.15-8.fc25.x86_64
libaio-devel-0.3.110-6.fc24.x86_64
libasan-6.4.1-1.fc25.x86_64
libfdt-devel-1.4.2-1.fc25.x86_64
libubsan-6.4.1-1.fc25.x86_64
make-4.1-6.fc25.x86_64
mingw32-SDL-1.2.15-7.fc24.noarch
mingw32-bzip2-1.0.6-7.fc24.noarch
mingw32-curl-7.47.0-1.fc24.noarch
mingw32-glib2-2.50.3-1.fc25.noarch
mingw32-gmp-6.1.1-1.fc25.noarch
mingw32-gnutls-3.5.5-2.fc25.noarch
mingw32-gtk2-2.24.31-2.fc25.noarch
mingw32-gtk3-3.22.17-1.fc25.noarch
mingw32-libjpeg-turbo-1.5.1-1.fc25.noarch
mingw32-libpng-1.6.27-1.fc25.noarch
mingw32-libssh2-1.4.3-5.fc24.noarch
mingw32-libtasn1-4.9-1.fc25.noarch
mingw32-nettle-3.3-1.fc25.noarch
mingw32-pixman-0.34.0-1.fc25.noarch
mingw32-pkg-config-0.28-6.fc24.x86_64
mingw64-SDL-1.2.15-7.fc24.noarch
mingw64-bzip2-1.0.6-7.fc24.noarch
mingw64-curl-7.47.0-1.fc24.noarch
mingw64-glib2-2.50.3-1.fc25.noarch
mingw64-gmp-6.1.1-1.fc25.noarch
mingw64-gnutls-3.5.5-2.fc25.noarch
mingw64-gtk2-2.24.31-2.fc25.noarch
mingw64-gtk3-3.22.17-1.fc25.noarch
mingw64-libjpeg-turbo-1.5.1-1.fc25.noarch
mingw64-libpng-1.6.27-1.fc25.noarch
mingw64-libssh2-1.4.3-5.fc24.noarch
mingw64-libtasn1-4.9-1.fc25.noarch
mingw64-nettle-3.3-1.fc25.noarch
mingw64-pixman-0.34.0-1.fc25.noarch
mingw64-pkg-config-0.28-6.fc24.x86_64
nettle-devel-3.3-1.fc25.x86_64
package python2 is not installed
perl-5.24.3-389.fc25.x86_64
pixman-devel-0.34.0-2.fc24.x86_64
sparse-0.5.0-10.fc25.x86_64
tar-1.29-3.fc25.x86_64
which-2.21-1.fc25.x86_64
zlib-devel-1.2.8-10.fc24.x86_64
Environment variables:
PACKAGES=ccache gettext git tar PyYAML sparse flex bison python2 bzip2 hostname glib2-devel pixman-devel zlib-devel SDL-devel libfdt-devel gcc gcc-c++ clang make perl which bc findutils libaio-devel nettle-devel libasan libubsan mingw32-pixman mingw32-glib2 mingw32-gmp mingw32-SDL mingw32-pkg-config mingw32-gtk2 mingw32-gtk3 mingw32-gnutls mingw32-nettle mingw32-libtasn1 mingw32-libjpeg-turbo mingw32-libpng mingw32-curl mingw32-libssh2 mingw32-bzip2 mingw64-pixman mingw64-glib2 mingw64-gmp mingw64-SDL mingw64-pkg-config mingw64-gtk2 mingw64-gtk3 mingw64-gnutls mingw64-nettle mingw64-libtasn1 mingw64-libjpeg-turbo mingw64-libpng mingw64-curl mingw64-libssh2 mingw64-bzip2
HOSTNAME=b7a3a4e6a3c5
MAKEFLAGS= -j8
J=8
CCACHE_DIR=/var/tmp/ccache
EXTRA_CONFIGURE_OPTS=
V=
SHOW_ENV=1
PATH=/usr/lib/ccache:/usr/lib64/ccache:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/
TARGET_LIST=
FGC=f25
SHLVL=1
HOME=/root
TEST_DIR=/tmp/qemu-test
DISTTAG=f25container
FEATURES=mingw clang pyyaml asan dtc
DEBUG=
_=/usr/bin/env
Configure options:
--enable-werror --target-list=x86_64-softmmu,aarch64-softmmu --prefix=/tmp/qemu-test/install --cross-prefix=x86_64-w64-mingw32- --enable-trace-backends=simple --enable-gnutls --enable-nettle --enable-curl --enable-vnc --enable-bzip2 --enable-guest-agent --with-sdlabi=1.2 --with-gtkabi=2.0
Install prefix /tmp/qemu-test/install
BIOS directory /tmp/qemu-test/install
firmware path /tmp/qemu-test/install/share/qemu-firmware
binary directory /tmp/qemu-test/install
library directory /tmp/qemu-test/install/lib
module directory /tmp/qemu-test/install/lib
libexec directory /tmp/qemu-test/install/libexec
include directory /tmp/qemu-test/install/include
config directory /tmp/qemu-test/install
local state directory queried at runtime
Windows SDK no
Source path /tmp/qemu-test/src
GIT binary git
GIT submodules
C compiler x86_64-w64-mingw32-gcc
Host C compiler cc
C++ compiler x86_64-w64-mingw32-g++
Objective-C compiler clang
ARFLAGS rv
CFLAGS -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -g
QEMU_CFLAGS -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/pixman-1 -I$(SRC_PATH)/dtc/libfdt -Werror -mms-bitfields -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/glib-2.0 -I/usr/x86_64-w64-mingw32/sys-root/mingw/lib/glib-2.0/include -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -m64 -mcx16 -mthreads -D__USE_MINGW_ANSI_STDIO=1 -DWIN32_LEAN_AND_MEAN -DWINVER=0x501 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-shift-negative-value -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/p11-kit-1 -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/libpng16
LDFLAGS -Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase -Wl,--warn-common -m64 -g
make make
install install
python python -B
smbd /usr/sbin/smbd
module support no
host CPU x86_64
host big endian no
target list x86_64-softmmu aarch64-softmmu
gprof enabled no
sparse enabled no
strip binaries yes
profiler no
static build no
SDL support yes (1.2.15)
GTK support yes (2.24.31)
GTK GL support no
VTE support no
TLS priority NORMAL
GNUTLS support yes
GNUTLS rnd yes
libgcrypt no
libgcrypt kdf no
nettle yes (3.3)
nettle kdf yes
libtasn1 yes
curses support no
virgl support no
curl support yes
mingw32 support yes
Audio drivers dsound
Block whitelist (rw)
Block whitelist (ro)
VirtFS support no
Multipath support no
VNC support yes
VNC SASL support no
VNC JPEG support yes
VNC PNG support yes
xen support no
brlapi support no
bluez support no
Documentation no
PIE no
vde support no
netmap support no
Linux AIO support no
ATTR/XATTR support no
Install blobs yes
KVM support no
HAX support yes
HVF support no
TCG support yes
TCG debug enabled no
TCG interpreter no
malloc trim support no
RDMA support no
fdt support yes
preadv support no
fdatasync no
madvise no
posix_madvise no
libcap-ng support no
vhost-net support no
vhost-scsi support no
vhost-vsock support no
vhost-user support no
Trace backends simple
Trace output file trace-<pid>
spice support no
rbd support no
xfsctl support no
smartcard support no
libusb no
usb net redir no
OpenGL support no
OpenGL dmabufs no
libiscsi support no
libnfs support no
build guest agent yes
QGA VSS support no
QGA w32 disk info yes
QGA MSI support no
seccomp support no
coroutine backend win32
coroutine pool yes
debug stack usage no
crypto afalg no
GlusterFS support no
gcov gcov
gcov enabled no
TPM support yes
libssh2 support yes
TPM passthrough no
TPM emulator no
QOM debugging yes
Live block migration yes
lzo support no
snappy support no
bzip2 support yes
NUMA host support no
libxml2 no
tcmalloc support no
jemalloc support no
avx2 optimization yes
replication support yes
VxHS block device no
capstone no
WARNING: Use of GTK 2.0 is deprecated and will be removed in
WARNING: future releases. Please switch to using GTK 3.0
WARNING: Use of SDL 1.2 is deprecated and will be removed in
WARNING: future releases. Please switch to using SDL 2.0
GEN x86_64-softmmu/config-devices.mak.tmp
GEN aarch64-softmmu/config-devices.mak.tmp
GEN config-host.h
GEN qmp-commands.h
GEN qapi-types.h
GEN qapi-visit.h
GEN qemu-options.def
GEN qapi-event.h
GEN x86_64-softmmu/config-devices.mak
GEN aarch64-softmmu/config-devices.mak
GEN qmp-marshal.c
GEN qapi-types.c
GEN qapi-visit.c
GEN qapi-event.c
GEN qmp-introspect.h
GEN qmp-introspect.c
GEN trace/generated-tcg-tracers.h
GEN trace/generated-helpers-wrappers.h
GEN trace/generated-helpers.h
GEN trace/generated-helpers.c
GEN module_block.h
GEN ui/input-keymap-atset1-to-qcode.c
GEN ui/input-keymap-linux-to-qcode.c
GEN ui/input-keymap-qcode-to-atset1.c
GEN ui/input-keymap-qcode-to-atset2.c
GEN ui/input-keymap-qcode-to-atset3.c
GEN ui/input-keymap-qcode-to-linux.c
GEN ui/input-keymap-qcode-to-qnum.c
GEN ui/input-keymap-qcode-to-sun.c
GEN ui/input-keymap-qnum-to-qcode.c
GEN ui/input-keymap-usb-to-qcode.c
GEN ui/input-keymap-win32-to-qcode.c
GEN ui/input-keymap-x11-to-qcode.c
GEN ui/input-keymap-xorgevdev-to-qcode.c
GEN ui/input-keymap-xorgkbd-to-qcode.c
GEN ui/input-keymap-xorgxquartz-to-qcode.c
GEN ui/input-keymap-xorgxwin-to-qcode.c
GEN tests/test-qapi-types.h
GEN tests/test-qapi-visit.h
GEN tests/test-qmp-commands.h
GEN tests/test-qapi-event.h
GEN tests/test-qmp-introspect.h
GEN trace-root.h
GEN util/trace.h
GEN crypto/trace.h
GEN io/trace.h
GEN migration/trace.h
GEN block/trace.h
GEN chardev/trace.h
GEN hw/block/trace.h
GEN hw/block/dataplane/trace.h
GEN hw/char/trace.h
GEN hw/intc/trace.h
GEN hw/net/trace.h
GEN hw/virtio/trace.h
GEN hw/audio/trace.h
GEN hw/misc/trace.h
GEN hw/usb/trace.h
GEN hw/scsi/trace.h
GEN hw/nvram/trace.h
GEN hw/display/trace.h
GEN hw/input/trace.h
GEN hw/timer/trace.h
GEN hw/dma/trace.h
GEN hw/sparc/trace.h
GEN hw/sparc64/trace.h
GEN hw/sd/trace.h
GEN hw/isa/trace.h
GEN hw/mem/trace.h
GEN hw/i386/trace.h
GEN hw/i386/xen/trace.h
GEN hw/9pfs/trace.h
GEN hw/ppc/trace.h
GEN hw/pci/trace.h
GEN hw/pci-host/trace.h
GEN hw/s390x/trace.h
GEN hw/vfio/trace.h
GEN hw/acpi/trace.h
GEN hw/arm/trace.h
GEN hw/alpha/trace.h
GEN hw/xen/trace.h
GEN hw/ide/trace.h
GEN ui/trace.h
GEN audio/trace.h
GEN net/trace.h
GEN target/arm/trace.h
GEN target/i386/trace.h
GEN target/mips/trace.h
GEN target/sparc/trace.h
GEN target/s390x/trace.h
GEN target/ppc/trace.h
GEN qom/trace.h
GEN linux-user/trace.h
GEN qapi/trace.h
GEN accel/tcg/trace.h
GEN accel/kvm/trace.h
GEN nbd/trace.h
GEN trace-root.c
GEN scsi/trace.h
GEN util/trace.c
GEN crypto/trace.c
GEN io/trace.c
GEN migration/trace.c
GEN block/trace.c
GEN chardev/trace.c
GEN hw/block/trace.c
GEN hw/block/dataplane/trace.c
GEN hw/char/trace.c
GEN hw/intc/trace.c
GEN hw/net/trace.c
GEN hw/virtio/trace.c
GEN hw/audio/trace.c
GEN hw/misc/trace.c
GEN hw/usb/trace.c
GEN hw/scsi/trace.c
GEN hw/nvram/trace.c
GEN hw/display/trace.c
GEN hw/input/trace.c
GEN hw/timer/trace.c
GEN hw/dma/trace.c
GEN hw/sparc/trace.c
GEN hw/sparc64/trace.c
GEN hw/sd/trace.c
GEN hw/isa/trace.c
GEN hw/mem/trace.c
GEN hw/i386/trace.c
GEN hw/i386/xen/trace.c
GEN hw/9pfs/trace.c
GEN hw/ppc/trace.c
GEN hw/pci/trace.c
GEN hw/pci-host/trace.c
GEN hw/s390x/trace.c
GEN hw/vfio/trace.c
GEN hw/acpi/trace.c
GEN hw/arm/trace.c
GEN hw/alpha/trace.c
GEN hw/xen/trace.c
GEN hw/ide/trace.c
GEN ui/trace.c
GEN audio/trace.c
GEN net/trace.c
GEN target/arm/trace.c
GEN target/i386/trace.c
GEN target/mips/trace.c
GEN target/sparc/trace.c
GEN target/s390x/trace.c
GEN target/ppc/trace.c
GEN qom/trace.c
GEN linux-user/trace.c
GEN qapi/trace.c
GEN accel/tcg/trace.c
GEN accel/kvm/trace.c
GEN nbd/trace.c
GEN scsi/trace.c
GEN config-all-devices.mak
DEP /tmp/qemu-test/src/dtc/tests/trees.S
DEP /tmp/qemu-test/src/dtc/tests/dumptrees.c
DEP /tmp/qemu-test/src/dtc/tests/testutils.c
DEP /tmp/qemu-test/src/dtc/tests/value-labels.c
DEP /tmp/qemu-test/src/dtc/tests/asm_tree_dump.c
DEP /tmp/qemu-test/src/dtc/tests/truncated_property.c
DEP /tmp/qemu-test/src/dtc/tests/check_path.c
DEP /tmp/qemu-test/src/dtc/tests/overlay_bad_fixup.c
DEP /tmp/qemu-test/src/dtc/tests/overlay.c
DEP /tmp/qemu-test/src/dtc/tests/subnode_iterate.c
DEP /tmp/qemu-test/src/dtc/tests/property_iterate.c
DEP /tmp/qemu-test/src/dtc/tests/integer-expressions.c
DEP /tmp/qemu-test/src/dtc/tests/utilfdt_test.c
DEP /tmp/qemu-test/src/dtc/tests/path_offset_aliases.c
DEP /tmp/qemu-test/src/dtc/tests/add_subnode_with_nops.c
DEP /tmp/qemu-test/src/dtc/tests/dtbs_equal_unordered.c
DEP /tmp/qemu-test/src/dtc/tests/dtb_reverse.c
DEP /tmp/qemu-test/src/dtc/tests/dtbs_equal_ordered.c
DEP /tmp/qemu-test/src/dtc/tests/incbin.c
DEP /tmp/qemu-test/src/dtc/tests/boot-cpuid.c
DEP /tmp/qemu-test/src/dtc/tests/extra-terminating-null.c
DEP /tmp/qemu-test/src/dtc/tests/phandle_format.c
DEP /tmp/qemu-test/src/dtc/tests/path-references.c
DEP /tmp/qemu-test/src/dtc/tests/string_escapes.c
DEP /tmp/qemu-test/src/dtc/tests/propname_escapes.c
DEP /tmp/qemu-test/src/dtc/tests/references.c
DEP /tmp/qemu-test/src/dtc/tests/appendprop2.c
DEP /tmp/qemu-test/src/dtc/tests/appendprop1.c
DEP /tmp/qemu-test/src/dtc/tests/del_node.c
DEP /tmp/qemu-test/src/dtc/tests/del_property.c
DEP /tmp/qemu-test/src/dtc/tests/setprop.c
DEP /tmp/qemu-test/src/dtc/tests/set_name.c
DEP /tmp/qemu-test/src/dtc/tests/rw_tree1.c
DEP /tmp/qemu-test/src/dtc/tests/open_pack.c
DEP /tmp/qemu-test/src/dtc/tests/nopulate.c
DEP /tmp/qemu-test/src/dtc/tests/mangle-layout.c
DEP /tmp/qemu-test/src/dtc/tests/move_and_save.c
DEP /tmp/qemu-test/src/dtc/tests/sw_tree1.c
DEP /tmp/qemu-test/src/dtc/tests/nop_node.c
DEP /tmp/qemu-test/src/dtc/tests/nop_property.c
DEP /tmp/qemu-test/src/dtc/tests/setprop_inplace.c
DEP /tmp/qemu-test/src/dtc/tests/stringlist.c
DEP /tmp/qemu-test/src/dtc/tests/addr_size_cells.c
DEP /tmp/qemu-test/src/dtc/tests/notfound.c
DEP /tmp/qemu-test/src/dtc/tests/sized_cells.c
DEP /tmp/qemu-test/src/dtc/tests/char_literal.c
DEP /tmp/qemu-test/src/dtc/tests/get_alias.c
DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_compatible.c
DEP /tmp/qemu-test/src/dtc/tests/node_check_compatible.c
DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_phandle.c
DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_prop_value.c
DEP /tmp/qemu-test/src/dtc/tests/parent_offset.c
DEP /tmp/qemu-test/src/dtc/tests/supernode_atdepth_offset.c
DEP /tmp/qemu-test/src/dtc/tests/get_path.c
DEP /tmp/qemu-test/src/dtc/tests/get_phandle.c
DEP /tmp/qemu-test/src/dtc/tests/getprop.c
DEP /tmp/qemu-test/src/dtc/tests/get_name.c
DEP /tmp/qemu-test/src/dtc/tests/path_offset.c
DEP /tmp/qemu-test/src/dtc/tests/subnode_offset.c
DEP /tmp/qemu-test/src/dtc/tests/find_property.c
DEP /tmp/qemu-test/src/dtc/tests/root_node.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_overlay.c
DEP /tmp/qemu-test/src/dtc/tests/get_mem_rsv.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_addresses.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_empty_tree.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_strerror.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_rw.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_sw.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_wip.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_ro.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt.c
DEP /tmp/qemu-test/src/dtc/util.c
DEP /tmp/qemu-test/src/dtc/fdtoverlay.c
DEP /tmp/qemu-test/src/dtc/fdtput.c
DEP /tmp/qemu-test/src/dtc/fdtget.c
DEP /tmp/qemu-test/src/dtc/fdtdump.c
LEX convert-dtsv0-lexer.lex.c
DEP /tmp/qemu-test/src/dtc/srcpos.c
BISON dtc-parser.tab.c
DEP /tmp/qemu-test/src/dtc/treesource.c
LEX dtc-lexer.lex.c
DEP /tmp/qemu-test/src/dtc/livetree.c
DEP /tmp/qemu-test/src/dtc/fstree.c
DEP /tmp/qemu-test/src/dtc/flattree.c
DEP /tmp/qemu-test/src/dtc/dtc.c
DEP /tmp/qemu-test/src/dtc/data.c
DEP /tmp/qemu-test/src/dtc/checks.c
DEP convert-dtsv0-lexer.lex.c
DEP dtc-parser.tab.c
DEP dtc-lexer.lex.c
CHK version_gen.h
UPD version_gen.h
DEP /tmp/qemu-test/src/dtc/util.c
CC libfdt/fdt.o
CC libfdt/fdt_ro.o
CC libfdt/fdt_wip.o
CC libfdt/fdt_rw.o
CC libfdt/fdt_strerror.o
CC libfdt/fdt_empty_tree.o
CC libfdt/fdt_sw.o
CC libfdt/fdt_addresses.o
CC libfdt/fdt_overlay.o
AR libfdt/libfdt.a
x86_64-w64-mingw32-ar: creating libfdt/libfdt.a
a - libfdt/fdt.o
a - libfdt/fdt_ro.o
a - libfdt/fdt_wip.o
a - libfdt/fdt_sw.o
a - libfdt/fdt_rw.o
a - libfdt/fdt_strerror.o
a - libfdt/fdt_empty_tree.o
a - libfdt/fdt_addresses.o
a - libfdt/fdt_overlay.o
RC version.o
GEN qga/qapi-generated/qga-qapi-types.h
GEN qga/qapi-generated/qga-qapi-visit.h
GEN qga/qapi-generated/qga-qapi-types.c
GEN qga/qapi-generated/qga-qmp-commands.h
GEN qga/qapi-generated/qga-qmp-marshal.c
CC qmp-introspect.o
CC qapi-types.o
GEN qga/qapi-generated/qga-qapi-visit.c
CC qapi-visit.o
CC qapi-event.o
CC qapi/qapi-dealloc-visitor.o
CC qapi/qapi-visit-core.o
CC qapi/qobject-input-visitor.o
CC qapi/qobject-output-visitor.o
CC qapi/qmp-registry.o
CC qapi/qmp-dispatch.o
CC qapi/string-input-visitor.o
CC qapi/string-output-visitor.o
CC qapi/opts-visitor.o
CC qapi/qapi-clone-visitor.o
CC qapi/qmp-event.o
CC qapi/qapi-util.o
CC qobject/qnull.o
CC qobject/qnum.o
CC qobject/qstring.o
CC qobject/qdict.o
CC qobject/qlist.o
CC qobject/qbool.o
CC qobject/qlit.o
CC qobject/qjson.o
CC qobject/qobject.o
CC qobject/json-lexer.o
CC qobject/json-streamer.o
CC qobject/json-parser.o
CC trace/simple.o
CC trace/control.o
CC trace/qmp.o
CC util/osdep.o
CC util/cutils.o
CC util/unicode.o
CC util/qemu-timer-common.o
CC util/bufferiszero.o
CC util/lockcnt.o
CC util/aiocb.o
CC util/async.o
CC util/thread-pool.o
CC util/qemu-timer.o
CC util/main-loop.o
CC util/iohandler.o
CC util/aio-win32.o
CC util/event_notifier-win32.o
CC util/oslib-win32.o
CC util/qemu-thread-win32.o
CC util/envlist.o
CC util/path.o
CC util/module.o
CC util/host-utils.o
CC util/bitmap.o
CC util/bitops.o
CC util/hbitmap.o
CC util/fifo8.o
CC util/acl.o
CC util/cacheinfo.o
CC util/error.o
CC util/qemu-error.o
CC util/id.o
CC util/iov.o
CC util/qemu-config.o
CC util/qemu-sockets.o
CC util/uri.o
CC util/notify.o
CC util/qemu-option.o
CC util/qemu-progress.o
CC util/keyval.o
CC util/hexdump.o
CC util/crc32c.o
CC util/uuid.o
CC util/throttle.o
CC util/getauxval.o
CC util/readline.o
CC util/rcu.o
CC util/qemu-coroutine.o
CC util/qemu-coroutine-lock.o
CC util/qemu-coroutine-io.o
CC util/qemu-coroutine-sleep.o
CC util/coroutine-win32.o
CC util/buffer.o
CC util/timed-average.o
CC util/base64.o
CC util/log.o
CC util/pagesize.o
CC util/qdist.o
CC util/qht.o
CC util/range.o
CC util/stats64.o
CC util/systemd.o
CC trace-root.o
CC util/trace.o
CC crypto/trace.o
CC io/trace.o
CC migration/trace.o
CC block/trace.o
CC chardev/trace.o
CC hw/block/trace.o
CC hw/block/dataplane/trace.o
CC hw/char/trace.o
CC hw/intc/trace.o
CC hw/net/trace.o
CC hw/virtio/trace.o
CC hw/audio/trace.o
CC hw/misc/trace.o
CC hw/usb/trace.o
CC hw/scsi/trace.o
CC hw/nvram/trace.o
CC hw/display/trace.o
CC hw/input/trace.o
CC hw/timer/trace.o
CC hw/dma/trace.o
CC hw/sparc/trace.o
CC hw/sparc64/trace.o
CC hw/sd/trace.o
CC hw/isa/trace.o
CC hw/mem/trace.o
CC hw/i386/trace.o
CC hw/i386/xen/trace.o
CC hw/9pfs/trace.o
CC hw/ppc/trace.o
CC hw/pci/trace.o
CC hw/pci-host/trace.o
CC hw/s390x/trace.o
CC hw/vfio/trace.o
CC hw/acpi/trace.o
CC hw/arm/trace.o
CC hw/alpha/trace.o
CC hw/xen/trace.o
CC hw/ide/trace.o
CC ui/trace.o
CC audio/trace.o
CC net/trace.o
CC target/arm/trace.o
CC target/i386/trace.o
CC target/mips/trace.o
CC target/sparc/trace.o
CC target/s390x/trace.o
CC target/ppc/trace.o
CC qom/trace.o
CC linux-user/trace.o
CC qapi/trace.o
CC accel/tcg/trace.o
CC accel/kvm/trace.o
CC nbd/trace.o
CC scsi/trace.o
CC crypto/pbkdf-stub.o
CC stubs/arch-query-cpu-def.o
CC stubs/arch-query-cpu-model-expansion.o
CC stubs/arch-query-cpu-model-comparison.o
CC stubs/arch-query-cpu-model-baseline.o
CC stubs/bdrv-next-monitor-owned.o
CC stubs/blk-commit-all.o
CC stubs/blockdev-close-all-bdrv-states.o
CC stubs/clock-warp.o
CC stubs/cpu-get-clock.o
CC stubs/cpu-get-icount.o
CC stubs/dump.o
CC stubs/error-printf.o
CC stubs/fdset.o
CC stubs/gdbstub.o
CC stubs/get-vm-name.o
CC stubs/iothread.o
CC stubs/iothread-lock.o
CC stubs/is-daemonized.o
CC stubs/machine-init-done.o
CC stubs/migr-blocker.o
CC stubs/change-state-handler.o
CC stubs/monitor.o
CC stubs/notify-event.o
CC stubs/qtest.o
CC stubs/replay.o
CC stubs/runstate-check.o
CC stubs/set-fd-handler.o
CC stubs/slirp.o
CC stubs/sysbus.o
CC stubs/tpm.o
CC stubs/trace-control.o
CC stubs/uuid.o
CC stubs/vm-stop.o
CC stubs/vmstate.o
CC stubs/fd-register.o
CC stubs/qmp_pc_dimm.o
CC stubs/target-monitor-defs.o
CC stubs/target-get-monitor-def.o
CC stubs/pc_madt_cpu_entry.o
CC stubs/vmgenid.o
CC stubs/xen-common.o
CC stubs/xen-hvm.o
CC stubs/pci-host-piix.o
GEN qemu-img-cmds.h
CC block.o
CC blockjob.o
CC qemu-io-cmds.o
CC replication.o
CC block/raw-format.o
CC block/qcow.o
CC block/vdi.o
CC block/vmdk.o
CC block/cloop.o
CC block/bochs.o
CC block/vpc.o
CC block/vvfat.o
CC block/dmg.o
CC block/qcow2.o
CC block/qcow2-refcount.o
CC block/qcow2-cluster.o
CC block/qcow2-snapshot.o
CC block/qcow2-cache.o
CC block/qcow2-bitmap.o
CC block/qed.o
CC block/qed-l2-cache.o
CC block/qed-table.o
CC block/qed-cluster.o
CC block/qed-check.o
CC block/vhdx.o
CC block/vhdx-endian.o
CC block/vhdx-log.o
CC block/quorum.o
CC block/parallels.o
CC block/blkdebug.o
CC block/blkverify.o
CC block/blkreplay.o
CC block/block-backend.o
CC block/snapshot.o
CC block/qapi.o
CC block/file-win32.o
CC block/win32-aio.o
CC block/null.o
CC block/mirror.o
CC block/commit.o
CC block/io.o
CC block/throttle-groups.o
CC block/nbd.o
CC block/nbd-client.o
CC block/sheepdog.o
CC block/accounting.o
CC block/dirty-bitmap.o
CC block/write-threshold.o
CC block/backup.o
CC block/replication.o
CC block/throttle.o
CC block/crypto.o
CC nbd/server.o
CC nbd/client.o
CC nbd/common.o
CC scsi/utils.o
CC block/curl.o
CC block/ssh.o
CC block/dmg-bz2.o
CC crypto/init.o
CC crypto/hash.o
CC crypto/hash-nettle.o
CC crypto/hmac.o
CC crypto/hmac-nettle.o
CC crypto/aes.o
CC crypto/desrfb.o
CC crypto/cipher.o
CC crypto/tlscreds.o
CC crypto/tlscredsanon.o
CC crypto/tlscredsx509.o
CC crypto/tlssession.o
CC crypto/secret.o
CC crypto/random-gnutls.o
CC crypto/pbkdf.o
CC crypto/pbkdf-nettle.o
CC crypto/ivgen.o
CC crypto/ivgen-essiv.o
CC crypto/ivgen-plain.o
CC crypto/ivgen-plain64.o
CC crypto/afsplit.o
CC crypto/xts.o
CC crypto/block.o
CC crypto/block-qcow.o
CC crypto/block-luks.o
CC io/channel.o
CC io/channel-buffer.o
CC io/channel-command.o
CC io/channel-file.o
CC io/channel-socket.o
CC io/channel-tls.o
CC io/channel-watch.o
CC io/channel-websock.o
CC io/channel-util.o
CC io/dns-resolver.o
CC io/net-listener.o
CC io/task.o
CC qom/object.o
CC qom/container.o
CC qom/qom-qobject.o
CC qom/object_interfaces.o
CC qemu-io.o
CC blockdev.o
CC blockdev-nbd.o
CC bootdevice.o
CC iothread.o
CC qdev-monitor.o
CC device-hotplug.o
CC os-win32.o
CC bt-host.o
CC bt-vhci.o
CC dma-helpers.o
CC vl.o
CC tpm.o
CC device_tree.o
CC qmp-marshal.o
CC qmp.o
CC hmp.o
CC cpus-common.o
CC audio/audio.o
CC audio/noaudio.o
CC audio/wavaudio.o
CC audio/mixeng.o
CC audio/sdlaudio.o
CC audio/dsoundaudio.o
CC audio/audio_win_int.o
CC audio/wavcapture.o
CC backends/rng.o
CC backends/rng-egd.o
CC backends/tpm.o
CC backends/hostmem.o
CC backends/hostmem-ram.o
CC backends/cryptodev.o
CC backends/cryptodev-builtin.o
CC block/stream.o
CC chardev/msmouse.o
CC chardev/wctablet.o
CC chardev/testdev.o
CC disas/arm.o
CXX disas/arm-a64.o
CC disas/i386.o
CXX disas/libvixl/vixl/utils.o
CXX disas/libvixl/vixl/compiler-intrinsics.o
CXX disas/libvixl/vixl/a64/instructions-a64.o
CXX disas/libvixl/vixl/a64/decoder-a64.o
CXX disas/libvixl/vixl/a64/disasm-a64.o
CC hw/acpi/core.o
CC hw/acpi/piix4.o
CC hw/acpi/pcihp.o
CC hw/acpi/ich9.o
CC hw/acpi/tco.o
CC hw/acpi/cpu_hotplug.o
CC hw/acpi/memory_hotplug.o
CC hw/acpi/cpu.o
CC hw/acpi/nvdimm.o
CC hw/acpi/vmgenid.o
CC hw/acpi/acpi_interface.o
CC hw/acpi/bios-linker-loader.o
CC hw/acpi/aml-build.o
CC hw/acpi/ipmi.o
CC hw/acpi/acpi-stub.o
CC hw/acpi/ipmi-stub.o
CC hw/audio/sb16.o
CC hw/audio/es1370.o
CC hw/audio/ac97.o
CC hw/audio/fmopl.o
CC hw/audio/adlib.o
CC hw/audio/gus.o
CC hw/audio/gusemu_hal.o
CC hw/audio/gusemu_mixer.o
CC hw/audio/intel-hda.o
CC hw/audio/cs4231a.o
CC hw/audio/hda-codec.o
CC hw/audio/pcspk.o
CC hw/audio/wm8750.o
CC hw/audio/pl041.o
CC hw/audio/lm4549.o
CC hw/audio/marvell_88w8618.o
CC hw/audio/soundhw.o
CC hw/block/block.o
CC hw/block/cdrom.o
CC hw/block/hd-geometry.o
CC hw/block/fdc.o
CC hw/block/m25p80.o
CC hw/block/nand.o
CC hw/block/pflash_cfi01.o
CC hw/block/pflash_cfi02.o
CC hw/block/ecc.o
CC hw/block/onenand.o
CC hw/block/nvme.o
CC hw/bt/core.o
CC hw/bt/l2cap.o
CC hw/bt/sdp.o
CC hw/bt/hci.o
CC hw/bt/hid.o
CC hw/bt/hci-csr.o
CC hw/char/ipoctal232.o
CC hw/char/parallel.o
CC hw/char/pl011.o
CC hw/char/serial.o
CC hw/char/serial-isa.o
CC hw/char/serial-pci.o
CC hw/char/virtio-console.o
CC hw/char/cadence_uart.o
CC hw/char/cmsdk-apb-uart.o
CC hw/char/debugcon.o
CC hw/char/imx_serial.o
CC hw/core/qdev.o
CC hw/core/qdev-properties.o
CC hw/core/bus.o
CC hw/core/reset.o
CC hw/core/qdev-fw.o
CC hw/core/fw-path-provider.o
CC hw/core/irq.o
CC hw/core/hotplug.o
CC hw/core/nmi.o
CC hw/core/stream.o
CC hw/core/ptimer.o
CC hw/core/sysbus.o
CC hw/core/machine.o
CC hw/core/loader.o
CC hw/core/qdev-properties-system.o
CC hw/core/register.o
CC hw/core/or-irq.o
CC hw/core/platform-bus.o
CC hw/cpu/core.o
CC hw/display/ads7846.o
CC hw/display/cirrus_vga.o
CC hw/display/pl110.o
CC hw/display/ssd0303.o
CC hw/display/ssd0323.o
CC hw/display/vga-pci.o
CC hw/display/vga-isa.o
CC hw/display/vmware_vga.o
CC hw/display/blizzard.o
CC hw/display/exynos4210_fimd.o
CC hw/display/framebuffer.o
CC hw/display/tc6393xb.o
CC hw/dma/pl080.o
CC hw/dma/pl330.o
CC hw/dma/i8257.o
CC hw/dma/xilinx_axidma.o
CC hw/dma/xlnx-zynq-devcfg.o
CC hw/gpio/max7310.o
CC hw/gpio/pl061.o
CC hw/gpio/zaurus.o
CC hw/gpio/gpio_key.o
CC hw/i2c/core.o
CC hw/i2c/smbus.o
CC hw/i2c/smbus_eeprom.o
CC hw/i2c/i2c-ddc.o
CC hw/i2c/versatile_i2c.o
CC hw/i2c/smbus_ich9.o
CC hw/i2c/pm_smbus.o
CC hw/i2c/bitbang_i2c.o
CC hw/i2c/exynos4210_i2c.o
CC hw/i2c/imx_i2c.o
CC hw/i2c/aspeed_i2c.o
CC hw/ide/core.o
CC hw/ide/atapi.o
CC hw/ide/qdev.o
CC hw/ide/pci.o
CC hw/ide/isa.o
CC hw/ide/piix.o
CC hw/ide/microdrive.o
CC hw/ide/ahci.o
CC hw/ide/ich.o
CC hw/ide/ahci-allwinner.o
CC hw/input/hid.o
CC hw/input/lm832x.o
CC hw/input/pckbd.o
CC hw/input/pl050.o
CC hw/input/ps2.o
CC hw/input/stellaris_input.o
CC hw/input/tsc2005.o
CC hw/input/virtio-input.o
CC hw/input/virtio-input-hid.o
CC hw/intc/i8259_common.o
CC hw/intc/i8259.o
CC hw/intc/pl190.o
CC hw/intc/xlnx-pmu-iomod-intc.o
CC hw/intc/xlnx-zynqmp-ipi.o
CC hw/intc/imx_avic.o
CC hw/intc/realview_gic.o
CC hw/intc/ioapic_common.o
CC hw/intc/arm_gic_common.o
CC hw/intc/arm_gic.o
CC hw/intc/arm_gicv2m.o
CC hw/intc/arm_gicv3_common.o
CC hw/intc/arm_gicv3.o
CC hw/intc/arm_gicv3_dist.o
CC hw/intc/arm_gicv3_redist.o
CC hw/intc/arm_gicv3_its_common.o
CC hw/intc/intc.o
CC hw/ipack/ipack.o
CC hw/ipack/tpci200.o
CC hw/ipmi/ipmi.o
CC hw/ipmi/ipmi_bmc_sim.o
CC hw/ipmi/ipmi_bmc_extern.o
CC hw/ipmi/isa_ipmi_kcs.o
CC hw/ipmi/isa_ipmi_bt.o
CC hw/isa/isa-bus.o
CC hw/isa/apm.o
CC hw/mem/pc-dimm.o
CC hw/mem/nvdimm.o
CC hw/misc/applesmc.o
CC hw/misc/max111x.o
CC hw/misc/tmp105.o
CC hw/misc/tmp421.o
CC hw/misc/debugexit.o
CC hw/misc/sga.o
CC hw/misc/pc-testdev.o
CC hw/misc/pci-testdev.o
CC hw/misc/edu.o
CC hw/misc/unimp.o
CC hw/misc/vmcoreinfo.o
CC hw/misc/arm_l2x0.o
CC hw/misc/arm_integrator_debug.o
CC hw/misc/a9scu.o
CC hw/misc/arm11scu.o
CC hw/net/ne2000.o
CC hw/net/eepro100.o
CC hw/net/pcnet-pci.o
CC hw/net/pcnet.o
CC hw/net/e1000.o
CC hw/net/e1000x_common.o
CC hw/net/net_tx_pkt.o
CC hw/net/net_rx_pkt.o
CC hw/net/e1000e.o
CC hw/net/e1000e_core.o
CC hw/net/rtl8139.o
CC hw/net/vmxnet3.o
CC hw/net/smc91c111.o
CC hw/net/lan9118.o
CC hw/net/ne2000-isa.o
CC hw/net/xgmac.o
CC hw/net/xilinx_axienet.o
CC hw/net/allwinner_emac.o
CC hw/net/cadence_gem.o
CC hw/net/imx_fec.o
CC hw/net/stellaris_enet.o
CC hw/net/ftgmac100.o
CC hw/net/rocker/rocker.o
CC hw/net/rocker/rocker_fp.o
CC hw/net/rocker/rocker_desc.o
CC hw/net/rocker/rocker_world.o
CC hw/net/rocker/rocker_of_dpa.o
CC hw/nvram/eeprom93xx.o
CC hw/nvram/eeprom_at24c.o
CC hw/nvram/fw_cfg.o
CC hw/nvram/chrp_nvram.o
CC hw/pci-bridge/pci_bridge_dev.o
CC hw/pci-bridge/pcie_root_port.o
CC hw/pci-bridge/gen_pcie_root_port.o
CC hw/pci-bridge/pcie_pci_bridge.o
CC hw/pci-bridge/pci_expander_bridge.o
CC hw/pci-bridge/xio3130_upstream.o
CC hw/pci-bridge/xio3130_downstream.o
CC hw/pci-bridge/ioh3420.o
CC hw/pci-bridge/i82801b11.o
CC hw/pci-host/pam.o
CC hw/pci-host/versatile.o
CC hw/pci-host/piix.o
CC hw/pci-host/q35.o
CC hw/pci-host/gpex.o
CC hw/pci/pci.o
CC hw/pci/pci_bridge.o
CC hw/pci/msix.o
CC hw/pci/msi.o
CC hw/pci/shpc.o
CC hw/pci/slotid_cap.o
CC hw/pci/pci_host.o
CC hw/pci/pcie_host.o
CC hw/pci/pcie.o
CC hw/pci/pcie_aer.o
CC hw/pci/pcie_port.o
CC hw/pci/pci-stub.o
CC hw/pcmcia/pcmcia.o
CC hw/scsi/scsi-disk.o
CC hw/scsi/scsi-generic.o
CC hw/scsi/scsi-bus.o
CC hw/scsi/lsi53c895a.o
CC hw/scsi/mptsas.o
CC hw/scsi/mptconfig.o
CC hw/scsi/mptendian.o
CC hw/scsi/megasas.o
CC hw/scsi/vmw_pvscsi.o
CC hw/scsi/esp.o
CC hw/scsi/esp-pci.o
CC hw/sd/pl181.o
CC hw/sd/ssi-sd.o
CC hw/sd/sd.o
CC hw/sd/core.o
CC hw/sd/sdhci.o
CC hw/smbios/smbios.o
CC hw/smbios/smbios_type_38.o
CC hw/smbios/smbios-stub.o
CC hw/smbios/smbios_type_38-stub.o
CC hw/ssi/pl022.o
CC hw/ssi/ssi.o
CC hw/ssi/xilinx_spips.o
CC hw/ssi/aspeed_smc.o
CC hw/ssi/stm32f2xx_spi.o
CC hw/ssi/mss-spi.o
CC hw/timer/arm_timer.o
CC hw/timer/arm_mptimer.o
CC hw/timer/armv7m_systick.o
CC hw/timer/a9gtimer.o
CC hw/timer/cadence_ttc.o
CC hw/timer/ds1338.o
CC hw/timer/hpet.o
CC hw/timer/i8254_common.o
CC hw/timer/i8254.o
CC hw/timer/pl031.o
CC hw/timer/twl92230.o
CC hw/timer/imx_epit.o
CC hw/timer/imx_gpt.o
CC hw/timer/stm32f2xx_timer.o
CC hw/timer/aspeed_timer.o
CC hw/timer/cmsdk-apb-timer.o
CC hw/timer/mss-timer.o
CC hw/tpm/tpm_util.o
CC hw/tpm/tpm_tis.o
CC hw/usb/core.o
CC hw/usb/combined-packet.o
CC hw/usb/bus.o
CC hw/usb/libhw.o
CC hw/usb/desc.o
CC hw/usb/desc-msos.o
CC hw/usb/hcd-uhci.o
CC hw/usb/hcd-ohci.o
CC hw/usb/hcd-ehci.o
CC hw/usb/hcd-ehci-pci.o
CC hw/usb/hcd-ehci-sysbus.o
CC hw/usb/hcd-xhci.o
CC hw/usb/hcd-xhci-nec.o
CC hw/usb/hcd-musb.o
CC hw/usb/dev-hub.o
CC hw/usb/dev-hid.o
CC hw/usb/dev-wacom.o
CC hw/usb/dev-storage.o
CC hw/usb/dev-uas.o
CC hw/usb/dev-audio.o
CC hw/usb/dev-serial.o
CC hw/usb/dev-network.o
CC hw/usb/dev-bluetooth.o
CC hw/usb/dev-smartcard-reader.o
CC hw/usb/host-stub.o
CC hw/virtio/virtio-rng.o
CC hw/virtio/virtio-pci.o
CC hw/virtio/virtio-bus.o
CC hw/virtio/virtio-mmio.o
CC hw/virtio/vhost-stub.o
CC hw/watchdog/watchdog.o
CC hw/watchdog/wdt_i6300esb.o
CC hw/watchdog/wdt_ib700.o
CC hw/watchdog/wdt_aspeed.o
CC migration/migration.o
CC migration/socket.o
CC migration/fd.o
CC migration/exec.o
CC migration/tls.o
CC migration/channel.o
CC migration/savevm.o
CC migration/colo-comm.o
CC migration/colo.o
CC migration/colo-failover.o
CC migration/vmstate.o
CC migration/vmstate-types.o
CC migration/page_cache.o
CC migration/qemu-file.o
CC migration/global_state.o
CC migration/qemu-file-channel.o
CC migration/xbzrle.o
CC migration/postcopy-ram.o
CC migration/qjson.o
CC migration/block.o
CC net/net.o
CC net/queue.o
CC net/checksum.o
CC net/util.o
CC net/hub.o
CC net/socket.o
CC net/dump.o
CC net/eth.o
CC net/slirp.o
CC net/filter.o
CC net/filter-buffer.o
CC net/filter-mirror.o
CC net/colo-compare.o
CC net/colo.o
CC net/filter-rewriter.o
CC net/filter-replay.o
CC net/tap-win32.o
CC qom/cpu.o
CC replay/replay.o
CC replay/replay-internal.o
CC replay/replay-events.o
CC replay/replay-time.o
CC replay/replay-input.o
CC replay/replay-char.o
CC replay/replay-snapshot.o
CC replay/replay-net.o
CC replay/replay-audio.o
CC slirp/cksum.o
CC slirp/if.o
CC slirp/ip_icmp.o
CC slirp/ip6_icmp.o
CC slirp/ip6_input.o
CC slirp/ip6_output.o
CC slirp/ip_input.o
CC slirp/ip_output.o
CC slirp/dnssearch.o
CC slirp/dhcpv6.o
CC slirp/slirp.o
CC slirp/mbuf.o
CC slirp/misc.o
CC slirp/sbuf.o
CC slirp/socket.o
CC slirp/tcp_input.o
CC slirp/tcp_output.o
CC slirp/tcp_subr.o
CC slirp/tcp_timer.o
CC slirp/udp.o
CC slirp/udp6.o
CC slirp/bootp.o
CC slirp/tftp.o
CC slirp/arp_table.o
CC slirp/ndp_table.o
CC slirp/ncsi.o
CC ui/keymaps.o
CC ui/console.o
CC ui/cursor.o
CC ui/qemu-pixman.o
CC ui/input.o
CC ui/input-keymap.o
CC ui/input-legacy.o
CC ui/sdl.o
CC ui/sdl_zoom.o
CC ui/vnc.o
CC ui/vnc-enc-zlib.o
CC ui/vnc-enc-hextile.o
CC ui/vnc-enc-tight.o
CC ui/vnc-palette.o
CC ui/vnc-enc-zrle.o
CC ui/vnc-auth-vencrypt.o
CC ui/vnc-ws.o
CC ui/vnc-jobs.o
CC ui/gtk.o
CC chardev/char.o
CC chardev/char-console.o
CC chardev/char-fe.o
CC chardev/char-file.o
CC chardev/char-io.o
CC chardev/char-mux.o
CC chardev/char-null.o
CC chardev/char-pipe.o
CC chardev/char-ringbuf.o
CC chardev/char-serial.o
CC chardev/char-socket.o
CC chardev/char-stdio.o
CC chardev/char-udp.o
CC chardev/char-win.o
CC chardev/char-win-stdio.o
CC qga/commands.o
AS optionrom/multiboot.o
AS optionrom/linuxboot.o
CC optionrom/linuxboot_dma.o
CC qga/guest-agent-command-state.o
AS optionrom/kvmvapic.o
BUILD optionrom/multiboot.img
BUILD optionrom/linuxboot.img
BUILD optionrom/linuxboot_dma.img
BUILD optionrom/kvmvapic.img
BUILD optionrom/multiboot.raw
BUILD optionrom/linuxboot.raw
BUILD optionrom/linuxboot_dma.raw
BUILD optionrom/kvmvapic.raw
SIGN optionrom/multiboot.bin
SIGN optionrom/linuxboot.bin
SIGN optionrom/linuxboot_dma.bin
SIGN optionrom/kvmvapic.bin
CC qga/main.o
CC qga/commands-win32.o
CC qga/channel-win32.o
CC qga/service-win32.o
CC qga/vss-win32.o
CC qga/qapi-generated/qga-qapi-types.o
CC qga/qapi-generated/qga-qapi-visit.o
CC qga/qapi-generated/qga-qmp-marshal.o
AR libqemuutil.a
CC qemu-img.o
LINK qemu-io.exe
GEN aarch64-softmmu/hmp-commands.h
GEN aarch64-softmmu/hmp-commands-info.h
GEN aarch64-softmmu/config-target.h
GEN x86_64-softmmu/hmp-commands.h
GEN x86_64-softmmu/hmp-commands-info.h
GEN x86_64-softmmu/config-target.h
CC aarch64-softmmu/exec.o
CC aarch64-softmmu/tcg/tcg-op.o
CC aarch64-softmmu/tcg/tcg.o
CC aarch64-softmmu/tcg/optimize.o
CC x86_64-softmmu/exec.o
CC aarch64-softmmu/tcg/tcg-common.o
CC aarch64-softmmu/fpu/softfloat.o
CC aarch64-softmmu/disas.o
GEN aarch64-softmmu/gdbstub-xml.c
LINK qemu-ga.exe
CC aarch64-softmmu/arch_init.o
CC aarch64-softmmu/cpus.o
CC aarch64-softmmu/monitor.o
CC aarch64-softmmu/gdbstub.o
CC aarch64-softmmu/balloon.o
CC aarch64-softmmu/ioport.o
CC aarch64-softmmu/numa.o
CC x86_64-softmmu/tcg/tcg.o
LINK qemu-img.exe
CC aarch64-softmmu/qtest.o
CC aarch64-softmmu/memory.o
CC aarch64-softmmu/memory_mapping.o
CC aarch64-softmmu/dump.o
CC x86_64-softmmu/tcg/tcg-op.o
CC x86_64-softmmu/tcg/optimize.o
CC aarch64-softmmu/migration/ram.o
CC x86_64-softmmu/tcg/tcg-common.o
CC aarch64-softmmu/accel/accel.o
CC aarch64-softmmu/accel/stubs/hax-stub.o
CC x86_64-softmmu/fpu/softfloat.o
CC x86_64-softmmu/disas.o
GEN x86_64-softmmu/gdbstub-xml.c
CC x86_64-softmmu/arch_init.o
CC aarch64-softmmu/accel/stubs/hvf-stub.o
CC x86_64-softmmu/cpus.o
CC aarch64-softmmu/accel/stubs/kvm-stub.o
CC aarch64-softmmu/accel/tcg/tcg-all.o
CC aarch64-softmmu/accel/tcg/cputlb.o
CC x86_64-softmmu/monitor.o
CC x86_64-softmmu/gdbstub.o
CC x86_64-softmmu/balloon.o
CC aarch64-softmmu/accel/tcg/tcg-runtime.o
CC aarch64-softmmu/accel/tcg/cpu-exec.o
CC x86_64-softmmu/ioport.o
CC aarch64-softmmu/accel/tcg/cpu-exec-common.o
CC x86_64-softmmu/numa.o
CC x86_64-softmmu/qtest.o
CC x86_64-softmmu/memory.o
CC aarch64-softmmu/accel/tcg/translate-all.o
CC aarch64-softmmu/accel/tcg/translator.o
CC aarch64-softmmu/hw/adc/stm32f2xx_adc.o
CC x86_64-softmmu/memory_mapping.o
CC x86_64-softmmu/dump.o
CC aarch64-softmmu/hw/block/virtio-blk.o
CC x86_64-softmmu/migration/ram.o
CC aarch64-softmmu/hw/block/dataplane/virtio-blk.o
CC aarch64-softmmu/hw/char/exynos4210_uart.o
CC aarch64-softmmu/hw/char/omap_uart.o
CC x86_64-softmmu/accel/accel.o
CC aarch64-softmmu/hw/char/digic-uart.o
CC x86_64-softmmu/accel/stubs/hvf-stub.o
CC aarch64-softmmu/hw/char/stm32f2xx_usart.o
CC x86_64-softmmu/accel/stubs/kvm-stub.o
CC x86_64-softmmu/accel/tcg/tcg-all.o
CC x86_64-softmmu/accel/tcg/cputlb.o
CC aarch64-softmmu/hw/char/bcm2835_aux.o
CC x86_64-softmmu/accel/tcg/tcg-runtime.o
CC x86_64-softmmu/accel/tcg/cpu-exec.o
CC aarch64-softmmu/hw/char/virtio-serial-bus.o
CC aarch64-softmmu/hw/core/generic-loader.o
CC x86_64-softmmu/accel/tcg/cpu-exec-common.o
CC aarch64-softmmu/hw/core/null-machine.o
CC x86_64-softmmu/accel/tcg/translate-all.o
CC x86_64-softmmu/accel/tcg/translator.o
CC aarch64-softmmu/hw/cpu/arm11mpcore.o
CC aarch64-softmmu/hw/cpu/realview_mpcore.o
CC aarch64-softmmu/hw/cpu/a9mpcore.o
CC x86_64-softmmu/hw/block/virtio-blk.o
CC x86_64-softmmu/hw/block/dataplane/virtio-blk.o
CC x86_64-softmmu/hw/char/virtio-serial-bus.o
CC aarch64-softmmu/hw/cpu/a15mpcore.o
CC aarch64-softmmu/hw/display/omap_dss.o
CC x86_64-softmmu/hw/core/generic-loader.o
CC aarch64-softmmu/hw/display/omap_lcdc.o
CC x86_64-softmmu/hw/core/null-machine.o
CC x86_64-softmmu/hw/display/vga.o
CC x86_64-softmmu/hw/display/virtio-gpu.o
CC aarch64-softmmu/hw/display/pxa2xx_lcd.o
CC aarch64-softmmu/hw/display/bcm2835_fb.o
CC aarch64-softmmu/hw/display/vga.o
CC aarch64-softmmu/hw/display/virtio-gpu.o
CC x86_64-softmmu/hw/display/virtio-gpu-3d.o
CC x86_64-softmmu/hw/display/virtio-gpu-pci.o
CC x86_64-softmmu/hw/display/virtio-vga.o
CC aarch64-softmmu/hw/display/virtio-gpu-3d.o
CC x86_64-softmmu/hw/intc/apic.o
CC x86_64-softmmu/hw/intc/apic_common.o
CC aarch64-softmmu/hw/display/virtio-gpu-pci.o
CC x86_64-softmmu/hw/intc/ioapic.o
CC x86_64-softmmu/hw/isa/lpc_ich9.o
CC x86_64-softmmu/hw/misc/pvpanic.o
CC aarch64-softmmu/hw/display/dpcd.o
CC aarch64-softmmu/hw/display/xlnx_dp.o
CC aarch64-softmmu/hw/dma/xlnx_dpdma.o
CC aarch64-softmmu/hw/dma/omap_dma.o
CC aarch64-softmmu/hw/dma/soc_dma.o
CC x86_64-softmmu/hw/misc/mmio_interface.o
CC x86_64-softmmu/hw/net/virtio-net.o
CC x86_64-softmmu/hw/net/vhost_net.o
CC aarch64-softmmu/hw/dma/pxa2xx_dma.o
CC aarch64-softmmu/hw/dma/bcm2835_dma.o
CC aarch64-softmmu/hw/gpio/omap_gpio.o
CC aarch64-softmmu/hw/gpio/imx_gpio.o
CC x86_64-softmmu/hw/scsi/virtio-scsi.o
CC aarch64-softmmu/hw/gpio/bcm2835_gpio.o
CC aarch64-softmmu/hw/i2c/omap_i2c.o
CC x86_64-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC aarch64-softmmu/hw/input/pxa2xx_keypad.o
CC aarch64-softmmu/hw/input/tsc210x.o
CC x86_64-softmmu/hw/timer/mc146818rtc.o
CC x86_64-softmmu/hw/virtio/virtio.o
CC x86_64-softmmu/hw/virtio/virtio-balloon.o
CC x86_64-softmmu/hw/virtio/virtio-crypto.o
CC x86_64-softmmu/hw/virtio/virtio-crypto-pci.o
CC aarch64-softmmu/hw/intc/armv7m_nvic.o
CC x86_64-softmmu/hw/i386/multiboot.o
CC aarch64-softmmu/hw/intc/exynos4210_gic.o
CC x86_64-softmmu/hw/i386/pc.o
CC aarch64-softmmu/hw/intc/exynos4210_combiner.o
CC x86_64-softmmu/hw/i386/pc_piix.o
CC aarch64-softmmu/hw/intc/omap_intc.o
CC aarch64-softmmu/hw/intc/bcm2835_ic.o
CC x86_64-softmmu/hw/i386/pc_q35.o
CC aarch64-softmmu/hw/intc/bcm2836_control.o
CC aarch64-softmmu/hw/intc/allwinner-a10-pic.o
CC x86_64-softmmu/hw/i386/pc_sysfw.o
CC aarch64-softmmu/hw/intc/aspeed_vic.o
CC aarch64-softmmu/hw/intc/arm_gicv3_cpuif.o
CC x86_64-softmmu/hw/i386/x86-iommu.o
CC x86_64-softmmu/hw/i386/intel_iommu.o
CC aarch64-softmmu/hw/misc/arm_sysctl.o
CC x86_64-softmmu/hw/i386/amd_iommu.o
CC aarch64-softmmu/hw/misc/cbus.o
CC x86_64-softmmu/hw/i386/vmport.o
CC aarch64-softmmu/hw/misc/exynos4210_pmu.o
CC x86_64-softmmu/hw/i386/vmmouse.o
CC aarch64-softmmu/hw/misc/exynos4210_clk.o
CC x86_64-softmmu/hw/i386/kvmvapic.o
CC x86_64-softmmu/hw/i386/acpi-build.o
CC x86_64-softmmu/target/i386/helper.o
CC aarch64-softmmu/hw/misc/exynos4210_rng.o
CC aarch64-softmmu/hw/misc/imx_ccm.o
CC x86_64-softmmu/target/i386/cpu.o
CC x86_64-softmmu/target/i386/gdbstub.o
CC aarch64-softmmu/hw/misc/imx31_ccm.o
CC x86_64-softmmu/target/i386/xsave_helper.o
CC x86_64-softmmu/target/i386/translate.o
CC aarch64-softmmu/hw/misc/imx25_ccm.o
CC x86_64-softmmu/target/i386/bpt_helper.o
CC x86_64-softmmu/target/i386/cc_helper.o
CC aarch64-softmmu/hw/misc/imx6_ccm.o
CC x86_64-softmmu/target/i386/excp_helper.o
CC x86_64-softmmu/target/i386/fpu_helper.o
CC x86_64-softmmu/target/i386/int_helper.o
CC aarch64-softmmu/hw/misc/imx6_src.o
CC x86_64-softmmu/target/i386/mem_helper.o
CC x86_64-softmmu/target/i386/misc_helper.o
CC aarch64-softmmu/hw/misc/mst_fpga.o
CC x86_64-softmmu/target/i386/mpx_helper.o
CC aarch64-softmmu/hw/misc/omap_clk.o
CC x86_64-softmmu/target/i386/seg_helper.o
CC aarch64-softmmu/hw/misc/omap_gpmc.o
CC aarch64-softmmu/hw/misc/omap_l4.o
CC x86_64-softmmu/target/i386/smm_helper.o
CC x86_64-softmmu/target/i386/svm_helper.o
CC aarch64-softmmu/hw/misc/omap_sdrc.o
CC aarch64-softmmu/hw/misc/omap_tap.o
CC aarch64-softmmu/hw/misc/bcm2835_mbox.o
CC x86_64-softmmu/target/i386/machine.o
CC aarch64-softmmu/hw/misc/bcm2835_property.o
CC x86_64-softmmu/target/i386/arch_memory_mapping.o
CC x86_64-softmmu/target/i386/arch_dump.o
CC aarch64-softmmu/hw/misc/bcm2835_rng.o
CC aarch64-softmmu/hw/misc/zynq_slcr.o
CC aarch64-softmmu/hw/misc/zynq-xadc.o
CC x86_64-softmmu/target/i386/monitor.o
CC x86_64-softmmu/target/i386/kvm-stub.o
CC aarch64-softmmu/hw/misc/stm32f2xx_syscfg.o
CC x86_64-softmmu/target/i386/hax-all.o
CC x86_64-softmmu/target/i386/hax-mem.o
CC aarch64-softmmu/hw/misc/mps2-scc.o
CC aarch64-softmmu/hw/misc/auxbus.o
CC x86_64-softmmu/target/i386/hax-windows.o
CC aarch64-softmmu/hw/misc/aspeed_scu.o
CC aarch64-softmmu/hw/misc/aspeed_sdmc.o
GEN trace/generated-helpers.c
CC x86_64-softmmu/trace/control-target.o
CC aarch64-softmmu/hw/misc/mmio_interface.o
CC x86_64-softmmu/gdbstub-xml.o
CC aarch64-softmmu/hw/misc/msf2-sysreg.o
CC x86_64-softmmu/trace/generated-helpers.o
CC aarch64-softmmu/hw/net/virtio-net.o
CC aarch64-softmmu/hw/net/vhost_net.o
CC aarch64-softmmu/hw/pcmcia/pxa2xx.o
CC aarch64-softmmu/hw/scsi/virtio-scsi.o
CC aarch64-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC aarch64-softmmu/hw/sd/omap_mmc.o
CC aarch64-softmmu/hw/sd/pxa2xx_mmci.o
CC aarch64-softmmu/hw/sd/bcm2835_sdhost.o
CC aarch64-softmmu/hw/ssi/omap_spi.o
CC aarch64-softmmu/hw/ssi/imx_spi.o
CC aarch64-softmmu/hw/timer/exynos4210_mct.o
CC aarch64-softmmu/hw/timer/exynos4210_pwm.o
CC aarch64-softmmu/hw/timer/exynos4210_rtc.o
CC aarch64-softmmu/hw/timer/omap_gptimer.o
CC aarch64-softmmu/hw/timer/omap_synctimer.o
CC aarch64-softmmu/hw/timer/pxa2xx_timer.o
CC aarch64-softmmu/hw/timer/digic-timer.o
CC aarch64-softmmu/hw/timer/allwinner-a10-pit.o
CC aarch64-softmmu/hw/usb/tusb6010.o
CC aarch64-softmmu/hw/virtio/virtio.o
CC aarch64-softmmu/hw/virtio/virtio-balloon.o
CC aarch64-softmmu/hw/virtio/virtio-crypto.o
CC aarch64-softmmu/hw/virtio/virtio-crypto-pci.o
LINK x86_64-softmmu/qemu-system-x86_64w.exe
CC aarch64-softmmu/hw/arm/boot.o
CC aarch64-softmmu/hw/arm/collie.o
CC aarch64-softmmu/hw/arm/exynos4_boards.o
CC aarch64-softmmu/hw/arm/gumstix.o
CC aarch64-softmmu/hw/arm/highbank.o
CC aarch64-softmmu/hw/arm/digic_boards.o
target/i386/helper.o: In function `get_me_mask':
/tmp/qemu-test/src/target/i386/helper.c:735: undefined reference to `kvm_arch_get_supported_cpuid'
target/i386/monitor.o: In function `get_me_mask':
/tmp/qemu-test/src/target/i386/monitor.c:71: undefined reference to `kvm_arch_get_supported_cpuid'
collect2: error: ld returned 1 exit status
make[1]: *** [qemu-system-x86_64w.exe] Error 1
Makefile:193: recipe for target 'qemu-system-x86_64w.exe' failed
Makefile:403: recipe for target 'subdir-x86_64-softmmu' failed
make: *** [subdir-x86_64-softmmu] Error 2
make: *** Waiting for unfinished jobs....
CC aarch64-softmmu/hw/arm/integratorcp.o
CC aarch64-softmmu/hw/arm/mainstone.o
CC aarch64-softmmu/hw/arm/musicpal.o
CC aarch64-softmmu/hw/arm/nseries.o
CC aarch64-softmmu/hw/arm/omap_sx1.o
CC aarch64-softmmu/hw/arm/palm.o
CC aarch64-softmmu/hw/arm/realview.o
CC aarch64-softmmu/hw/arm/spitz.o
CC aarch64-softmmu/hw/arm/stellaris.o
CC aarch64-softmmu/hw/arm/tosa.o
CC aarch64-softmmu/hw/arm/versatilepb.o
CC aarch64-softmmu/hw/arm/vexpress.o
CC aarch64-softmmu/hw/arm/virt.o
CC aarch64-softmmu/hw/arm/xilinx_zynq.o
CC aarch64-softmmu/hw/arm/z2.o
CC aarch64-softmmu/hw/arm/virt-acpi-build.o
CC aarch64-softmmu/hw/arm/netduino2.o
CC aarch64-softmmu/hw/arm/sysbus-fdt.o
CC aarch64-softmmu/hw/arm/armv7m.o
CC aarch64-softmmu/hw/arm/exynos4210.o
CC aarch64-softmmu/hw/arm/pxa2xx.o
CC aarch64-softmmu/hw/arm/pxa2xx_gpio.o
CC aarch64-softmmu/hw/arm/pxa2xx_pic.o
CC aarch64-softmmu/hw/arm/digic.o
CC aarch64-softmmu/hw/arm/omap1.o
CC aarch64-softmmu/hw/arm/omap2.o
CC aarch64-softmmu/hw/arm/strongarm.o
CC aarch64-softmmu/hw/arm/allwinner-a10.o
CC aarch64-softmmu/hw/arm/cubieboard.o
CC aarch64-softmmu/hw/arm/bcm2835_peripherals.o
CC aarch64-softmmu/hw/arm/bcm2836.o
CC aarch64-softmmu/hw/arm/raspi.o
CC aarch64-softmmu/hw/arm/stm32f205_soc.o
CC aarch64-softmmu/hw/arm/xlnx-zynqmp.o
CC aarch64-softmmu/hw/arm/xlnx-zcu102.o
CC aarch64-softmmu/hw/arm/fsl-imx25.o
CC aarch64-softmmu/hw/arm/imx25_pdk.o
CC aarch64-softmmu/hw/arm/fsl-imx31.o
CC aarch64-softmmu/hw/arm/kzm.o
CC aarch64-softmmu/hw/arm/fsl-imx6.o
CC aarch64-softmmu/hw/arm/sabrelite.o
CC aarch64-softmmu/hw/arm/aspeed_soc.o
CC aarch64-softmmu/hw/arm/aspeed.o
CC aarch64-softmmu/hw/arm/mps2.o
CC aarch64-softmmu/hw/arm/msf2-soc.o
CC aarch64-softmmu/hw/arm/msf2-som.o
CC aarch64-softmmu/target/arm/arm-semi.o
CC aarch64-softmmu/target/arm/machine.o
CC aarch64-softmmu/target/arm/psci.o
CC aarch64-softmmu/target/arm/arch_dump.o
CC aarch64-softmmu/target/arm/monitor.o
CC aarch64-softmmu/target/arm/kvm-stub.o
CC aarch64-softmmu/target/arm/translate.o
CC aarch64-softmmu/target/arm/op_helper.o
CC aarch64-softmmu/target/arm/helper.o
CC aarch64-softmmu/target/arm/cpu.o
CC aarch64-softmmu/target/arm/neon_helper.o
CC aarch64-softmmu/target/arm/iwmmxt_helper.o
CC aarch64-softmmu/target/arm/gdbstub.o
CC aarch64-softmmu/target/arm/cpu64.o
CC aarch64-softmmu/target/arm/translate-a64.o
CC aarch64-softmmu/target/arm/helper-a64.o
CC aarch64-softmmu/target/arm/gdbstub64.o
CC aarch64-softmmu/target/arm/crypto_helper.o
CC aarch64-softmmu/target/arm/arm-powerctl.o
GEN trace/generated-helpers.c
CC aarch64-softmmu/trace/control-target.o
CC aarch64-softmmu/gdbstub-xml.o
CC aarch64-softmmu/trace/generated-helpers.o
LINK aarch64-softmmu/qemu-system-aarch64w.exe
GEN aarch64-softmmu/qemu-system-aarch64.exe
Traceback (most recent call last):
File "./tests/docker/docker.py", line 407, in <module>
sys.exit(main())
File "./tests/docker/docker.py", line 404, in main
return args.cmdobj.run(args, argv)
File "./tests/docker/docker.py", line 261, in run
return Docker().run(argv, args.keep, quiet=args.quiet)
File "./tests/docker/docker.py", line 229, in run
quiet=quiet)
File "./tests/docker/docker.py", line 147, in _do_check
return subprocess.check_call(self._command + cmd, **kwargs)
File "/usr/lib64/python2.7/subprocess.py", line 186, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['docker', 'run', '--label', 'com.qemu.instance.uuid=1c9fffee052011e8a57452540069c830', '-u', '0', '--security-opt', 'seccomp=unconfined', '--rm', '--net=none', '-e', 'TARGET_LIST=', '-e', 'EXTRA_CONFIGURE_OPTS=', '-e', 'V=', '-e', 'J=8', '-e', 'DEBUG=', '-e', 'SHOW_ENV=1', '-e', 'CCACHE_DIR=/var/tmp/ccache', '-v', '/root/.cache/qemu-docker-ccache:/var/tmp/ccache:z', '-v', '/var/tmp/patchew-tester-tmp-mmhwcwgk/src/docker-src.2018-01-29-13.13.20.27358:/var/tmp/qemu:z,ro', 'qemu:fedora', '/var/tmp/qemu/run', 'test-mingw']' returned non-zero exit status 2
make[1]: *** [tests/docker/Makefile.include:129: docker-run] Error 1
make: *** [tests/docker/Makefile.include:163: docker-run-test-mingw@fedora] Error 2
real 5m55.952s
user 0m4.706s
sys 0m3.431s
=== OUTPUT END ===
Test command exited with code: 2
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@freelists.org
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 00/23] x86: Secure Encrypted Virtualization (AMD)
@ 2018-01-29 18:19 ` no-reply
0 siblings, 0 replies; 118+ messages in thread
From: no-reply @ 2018-01-29 18:19 UTC (permalink / raw)
To: brijesh.singh
Cc: famz, qemu-devel, edgar.iglesias, peter.maydell, ehabkost, kvm,
Thomas.Lendacky, stefanha, mst, richard.henderson, dgilbert,
pbonzini
Hi,
This series failed docker-mingw@fedora build test. Please find the testing commands and
their output below. If you have Docker installed, you can probably reproduce it
locally.
Type: series
Message-id: 20180129174132.108925-1-brijesh.singh@amd.com
Subject: [Qemu-devel] [PATCH v6 00/23] x86: Secure Encrypted Virtualization (AMD)
=== TEST SCRIPT BEGIN ===
#!/bin/bash
set -e
git submodule update --init dtc
# Let docker tests dump environment info
export SHOW_ENV=1
export J=8
time make docker-test-mingw@fedora
=== TEST SCRIPT END ===
Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
Switched to a new branch 'test'
6efcae2888 sev: add migration blocker
16a9e00946 target/i386: clear C-bit when walking SEV guest page table
3b5e4a5a54 sev: add debug encrypt and decrypt commands
9034d072b3 hw: i386: set ram_debug_ops when memory encryption is enabled
9b48370842 sev: Finalize the SEV guest launch flow
5e126818a5 sev: emit the SEV_MEASUREMENT event
1c9a562916 qapi: add SEV_MEASUREMENT event
b322fca554 target/i386: encrypt bios rom
10da3ed830 sev: add command to encrypt guest memory region
cc979f7ffb sev: add command to create launch memory encryption context
9388e9fbf7 hmp: display memory encryption support in 'info kvm'
8875a9eff3 kvm: introduce memory encryption APIs
c530cf3a0f sev: register the guest memory range which may contain encrypted data
f486eda972 sev: add command to initialize the memory encryption context
cd64908627 accel: add Secure Encrypted Virtulization (SEV) object
08729ca7e4 docs: add AMD Secure Encrypted Virtualization (SEV)
e13044a465 kvm: update kvm.h to include memory encryption ioctls
113e16b66e machine: add -memory-encryption property
f839a7f5d1 target/i386: add memory encryption feature cpuid support
4e159e781f monitor/i386: use debug APIs when accessing guest memory
fbeb706e23 exec: add debug version of physical memory read and write API
11bc1372d7 exec: add ram_debug_ops support
1b02df629e memattrs: add debug attribute
=== OUTPUT BEGIN ===
Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc'
Cloning into '/var/tmp/patchew-tester-tmp-mmhwcwgk/src/dtc'...
Submodule path 'dtc': checked out 'e54388015af1fb4bf04d0bca99caba1074d9cc42'
BUILD fedora
GEN /var/tmp/patchew-tester-tmp-mmhwcwgk/src/docker-src.2018-01-29-13.13.20.27358/qemu.tar
Cloning into '/var/tmp/patchew-tester-tmp-mmhwcwgk/src/docker-src.2018-01-29-13.13.20.27358/qemu.tar.vroot'...
done.
Your branch is up-to-date with 'origin/test'.
Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc'
Cloning into '/var/tmp/patchew-tester-tmp-mmhwcwgk/src/docker-src.2018-01-29-13.13.20.27358/qemu.tar.vroot/dtc'...
Submodule path 'dtc': checked out 'e54388015af1fb4bf04d0bca99caba1074d9cc42'
Submodule 'ui/keycodemapdb' (git://git.qemu.org/keycodemapdb.git) registered for path 'ui/keycodemapdb'
Cloning into '/var/tmp/patchew-tester-tmp-mmhwcwgk/src/docker-src.2018-01-29-13.13.20.27358/qemu.tar.vroot/ui/keycodemapdb'...
Submodule path 'ui/keycodemapdb': checked out '10739aa26051a5d49d88132604539d3ed085e72e'
COPY RUNNER
RUN test-mingw in qemu:fedora
Packages installed:
PyYAML-3.11-13.fc25.x86_64
SDL-devel-1.2.15-21.fc24.x86_64
bc-1.06.95-16.fc24.x86_64
bison-3.0.4-4.fc24.x86_64
bzip2-1.0.6-21.fc25.x86_64
ccache-3.3.4-1.fc25.x86_64
clang-3.9.1-2.fc25.x86_64
findutils-4.6.0-8.fc25.x86_64
flex-2.6.0-3.fc25.x86_64
gcc-6.4.1-1.fc25.x86_64
gcc-c++-6.4.1-1.fc25.x86_64
gettext-0.19.8.1-3.fc25.x86_64
git-2.9.5-3.fc25.x86_64
glib2-devel-2.50.3-1.fc25.x86_64
hostname-3.15-8.fc25.x86_64
libaio-devel-0.3.110-6.fc24.x86_64
libasan-6.4.1-1.fc25.x86_64
libfdt-devel-1.4.2-1.fc25.x86_64
libubsan-6.4.1-1.fc25.x86_64
make-4.1-6.fc25.x86_64
mingw32-SDL-1.2.15-7.fc24.noarch
mingw32-bzip2-1.0.6-7.fc24.noarch
mingw32-curl-7.47.0-1.fc24.noarch
mingw32-glib2-2.50.3-1.fc25.noarch
mingw32-gmp-6.1.1-1.fc25.noarch
mingw32-gnutls-3.5.5-2.fc25.noarch
mingw32-gtk2-2.24.31-2.fc25.noarch
mingw32-gtk3-3.22.17-1.fc25.noarch
mingw32-libjpeg-turbo-1.5.1-1.fc25.noarch
mingw32-libpng-1.6.27-1.fc25.noarch
mingw32-libssh2-1.4.3-5.fc24.noarch
mingw32-libtasn1-4.9-1.fc25.noarch
mingw32-nettle-3.3-1.fc25.noarch
mingw32-pixman-0.34.0-1.fc25.noarch
mingw32-pkg-config-0.28-6.fc24.x86_64
mingw64-SDL-1.2.15-7.fc24.noarch
mingw64-bzip2-1.0.6-7.fc24.noarch
mingw64-curl-7.47.0-1.fc24.noarch
mingw64-glib2-2.50.3-1.fc25.noarch
mingw64-gmp-6.1.1-1.fc25.noarch
mingw64-gnutls-3.5.5-2.fc25.noarch
mingw64-gtk2-2.24.31-2.fc25.noarch
mingw64-gtk3-3.22.17-1.fc25.noarch
mingw64-libjpeg-turbo-1.5.1-1.fc25.noarch
mingw64-libpng-1.6.27-1.fc25.noarch
mingw64-libssh2-1.4.3-5.fc24.noarch
mingw64-libtasn1-4.9-1.fc25.noarch
mingw64-nettle-3.3-1.fc25.noarch
mingw64-pixman-0.34.0-1.fc25.noarch
mingw64-pkg-config-0.28-6.fc24.x86_64
nettle-devel-3.3-1.fc25.x86_64
package python2 is not installed
perl-5.24.3-389.fc25.x86_64
pixman-devel-0.34.0-2.fc24.x86_64
sparse-0.5.0-10.fc25.x86_64
tar-1.29-3.fc25.x86_64
which-2.21-1.fc25.x86_64
zlib-devel-1.2.8-10.fc24.x86_64
Environment variables:
PACKAGES=ccache gettext git tar PyYAML sparse flex bison python2 bzip2 hostname glib2-devel pixman-devel zlib-devel SDL-devel libfdt-devel gcc gcc-c++ clang make perl which bc findutils libaio-devel nettle-devel libasan libubsan mingw32-pixman mingw32-glib2 mingw32-gmp mingw32-SDL mingw32-pkg-config mingw32-gtk2 mingw32-gtk3 mingw32-gnutls mingw32-nettle mingw32-libtasn1 mingw32-libjpeg-turbo mingw32-libpng mingw32-curl mingw32-libssh2 mingw32-bzip2 mingw64-pixman mingw64-glib2 mingw64-gmp mingw64-SDL mingw64-pkg-config mingw64-gtk2 mingw64-gtk3 mingw64-gnutls mingw64-nettle mingw64-libtasn1 mingw64-libjpeg-turbo mingw64-libpng mingw64-curl mingw64-libssh2 mingw64-bzip2
HOSTNAME=b7a3a4e6a3c5
MAKEFLAGS= -j8
J=8
CCACHE_DIR=/var/tmp/ccache
EXTRA_CONFIGURE_OPTS=
V=
SHOW_ENV=1
PATH=/usr/lib/ccache:/usr/lib64/ccache:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/
TARGET_LIST=
FGC=f25
SHLVL=1
HOME=/root
TEST_DIR=/tmp/qemu-test
DISTTAG=f25container
FEATURES=mingw clang pyyaml asan dtc
DEBUG=
_=/usr/bin/env
Configure options:
--enable-werror --target-list=x86_64-softmmu,aarch64-softmmu --prefix=/tmp/qemu-test/install --cross-prefix=x86_64-w64-mingw32- --enable-trace-backends=simple --enable-gnutls --enable-nettle --enable-curl --enable-vnc --enable-bzip2 --enable-guest-agent --with-sdlabi=1.2 --with-gtkabi=2.0
Install prefix /tmp/qemu-test/install
BIOS directory /tmp/qemu-test/install
firmware path /tmp/qemu-test/install/share/qemu-firmware
binary directory /tmp/qemu-test/install
library directory /tmp/qemu-test/install/lib
module directory /tmp/qemu-test/install/lib
libexec directory /tmp/qemu-test/install/libexec
include directory /tmp/qemu-test/install/include
config directory /tmp/qemu-test/install
local state directory queried at runtime
Windows SDK no
Source path /tmp/qemu-test/src
GIT binary git
GIT submodules
C compiler x86_64-w64-mingw32-gcc
Host C compiler cc
C++ compiler x86_64-w64-mingw32-g++
Objective-C compiler clang
ARFLAGS rv
CFLAGS -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -g
QEMU_CFLAGS -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/pixman-1 -I$(SRC_PATH)/dtc/libfdt -Werror -mms-bitfields -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/glib-2.0 -I/usr/x86_64-w64-mingw32/sys-root/mingw/lib/glib-2.0/include -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -m64 -mcx16 -mthreads -D__USE_MINGW_ANSI_STDIO=1 -DWIN32_LEAN_AND_MEAN -DWINVER=0x501 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-shift-negative-value -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/p11-kit-1 -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/libpng16
LDFLAGS -Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase -Wl,--warn-common -m64 -g
make make
install install
python python -B
smbd /usr/sbin/smbd
module support no
host CPU x86_64
host big endian no
target list x86_64-softmmu aarch64-softmmu
gprof enabled no
sparse enabled no
strip binaries yes
profiler no
static build no
SDL support yes (1.2.15)
GTK support yes (2.24.31)
GTK GL support no
VTE support no
TLS priority NORMAL
GNUTLS support yes
GNUTLS rnd yes
libgcrypt no
libgcrypt kdf no
nettle yes (3.3)
nettle kdf yes
libtasn1 yes
curses support no
virgl support no
curl support yes
mingw32 support yes
Audio drivers dsound
Block whitelist (rw)
Block whitelist (ro)
VirtFS support no
Multipath support no
VNC support yes
VNC SASL support no
VNC JPEG support yes
VNC PNG support yes
xen support no
brlapi support no
bluez support no
Documentation no
PIE no
vde support no
netmap support no
Linux AIO support no
ATTR/XATTR support no
Install blobs yes
KVM support no
HAX support yes
HVF support no
TCG support yes
TCG debug enabled no
TCG interpreter no
malloc trim support no
RDMA support no
fdt support yes
preadv support no
fdatasync no
madvise no
posix_madvise no
libcap-ng support no
vhost-net support no
vhost-scsi support no
vhost-vsock support no
vhost-user support no
Trace backends simple
Trace output file trace-<pid>
spice support no
rbd support no
xfsctl support no
smartcard support no
libusb no
usb net redir no
OpenGL support no
OpenGL dmabufs no
libiscsi support no
libnfs support no
build guest agent yes
QGA VSS support no
QGA w32 disk info yes
QGA MSI support no
seccomp support no
coroutine backend win32
coroutine pool yes
debug stack usage no
crypto afalg no
GlusterFS support no
gcov gcov
gcov enabled no
TPM support yes
libssh2 support yes
TPM passthrough no
TPM emulator no
QOM debugging yes
Live block migration yes
lzo support no
snappy support no
bzip2 support yes
NUMA host support no
libxml2 no
tcmalloc support no
jemalloc support no
avx2 optimization yes
replication support yes
VxHS block device no
capstone no
WARNING: Use of GTK 2.0 is deprecated and will be removed in
WARNING: future releases. Please switch to using GTK 3.0
WARNING: Use of SDL 1.2 is deprecated and will be removed in
WARNING: future releases. Please switch to using SDL 2.0
GEN x86_64-softmmu/config-devices.mak.tmp
GEN aarch64-softmmu/config-devices.mak.tmp
GEN config-host.h
GEN qmp-commands.h
GEN qapi-types.h
GEN qapi-visit.h
GEN qemu-options.def
GEN qapi-event.h
GEN x86_64-softmmu/config-devices.mak
GEN aarch64-softmmu/config-devices.mak
GEN qmp-marshal.c
GEN qapi-types.c
GEN qapi-visit.c
GEN qapi-event.c
GEN qmp-introspect.h
GEN qmp-introspect.c
GEN trace/generated-tcg-tracers.h
GEN trace/generated-helpers-wrappers.h
GEN trace/generated-helpers.h
GEN trace/generated-helpers.c
GEN module_block.h
GEN ui/input-keymap-atset1-to-qcode.c
GEN ui/input-keymap-linux-to-qcode.c
GEN ui/input-keymap-qcode-to-atset1.c
GEN ui/input-keymap-qcode-to-atset2.c
GEN ui/input-keymap-qcode-to-atset3.c
GEN ui/input-keymap-qcode-to-linux.c
GEN ui/input-keymap-qcode-to-qnum.c
GEN ui/input-keymap-qcode-to-sun.c
GEN ui/input-keymap-qnum-to-qcode.c
GEN ui/input-keymap-usb-to-qcode.c
GEN ui/input-keymap-win32-to-qcode.c
GEN ui/input-keymap-x11-to-qcode.c
GEN ui/input-keymap-xorgevdev-to-qcode.c
GEN ui/input-keymap-xorgkbd-to-qcode.c
GEN ui/input-keymap-xorgxquartz-to-qcode.c
GEN ui/input-keymap-xorgxwin-to-qcode.c
GEN tests/test-qapi-types.h
GEN tests/test-qapi-visit.h
GEN tests/test-qmp-commands.h
GEN tests/test-qapi-event.h
GEN tests/test-qmp-introspect.h
GEN trace-root.h
GEN util/trace.h
GEN crypto/trace.h
GEN io/trace.h
GEN migration/trace.h
GEN block/trace.h
GEN chardev/trace.h
GEN hw/block/trace.h
GEN hw/block/dataplane/trace.h
GEN hw/char/trace.h
GEN hw/intc/trace.h
GEN hw/net/trace.h
GEN hw/virtio/trace.h
GEN hw/audio/trace.h
GEN hw/misc/trace.h
GEN hw/usb/trace.h
GEN hw/scsi/trace.h
GEN hw/nvram/trace.h
GEN hw/display/trace.h
GEN hw/input/trace.h
GEN hw/timer/trace.h
GEN hw/dma/trace.h
GEN hw/sparc/trace.h
GEN hw/sparc64/trace.h
GEN hw/sd/trace.h
GEN hw/isa/trace.h
GEN hw/mem/trace.h
GEN hw/i386/trace.h
GEN hw/i386/xen/trace.h
GEN hw/9pfs/trace.h
GEN hw/ppc/trace.h
GEN hw/pci/trace.h
GEN hw/pci-host/trace.h
GEN hw/s390x/trace.h
GEN hw/vfio/trace.h
GEN hw/acpi/trace.h
GEN hw/arm/trace.h
GEN hw/alpha/trace.h
GEN hw/xen/trace.h
GEN hw/ide/trace.h
GEN ui/trace.h
GEN audio/trace.h
GEN net/trace.h
GEN target/arm/trace.h
GEN target/i386/trace.h
GEN target/mips/trace.h
GEN target/sparc/trace.h
GEN target/s390x/trace.h
GEN target/ppc/trace.h
GEN qom/trace.h
GEN linux-user/trace.h
GEN qapi/trace.h
GEN accel/tcg/trace.h
GEN accel/kvm/trace.h
GEN nbd/trace.h
GEN trace-root.c
GEN scsi/trace.h
GEN util/trace.c
GEN crypto/trace.c
GEN io/trace.c
GEN migration/trace.c
GEN block/trace.c
GEN chardev/trace.c
GEN hw/block/trace.c
GEN hw/block/dataplane/trace.c
GEN hw/char/trace.c
GEN hw/intc/trace.c
GEN hw/net/trace.c
GEN hw/virtio/trace.c
GEN hw/audio/trace.c
GEN hw/misc/trace.c
GEN hw/usb/trace.c
GEN hw/scsi/trace.c
GEN hw/nvram/trace.c
GEN hw/display/trace.c
GEN hw/input/trace.c
GEN hw/timer/trace.c
GEN hw/dma/trace.c
GEN hw/sparc/trace.c
GEN hw/sparc64/trace.c
GEN hw/sd/trace.c
GEN hw/isa/trace.c
GEN hw/mem/trace.c
GEN hw/i386/trace.c
GEN hw/i386/xen/trace.c
GEN hw/9pfs/trace.c
GEN hw/ppc/trace.c
GEN hw/pci/trace.c
GEN hw/pci-host/trace.c
GEN hw/s390x/trace.c
GEN hw/vfio/trace.c
GEN hw/acpi/trace.c
GEN hw/arm/trace.c
GEN hw/alpha/trace.c
GEN hw/xen/trace.c
GEN hw/ide/trace.c
GEN ui/trace.c
GEN audio/trace.c
GEN net/trace.c
GEN target/arm/trace.c
GEN target/i386/trace.c
GEN target/mips/trace.c
GEN target/sparc/trace.c
GEN target/s390x/trace.c
GEN target/ppc/trace.c
GEN qom/trace.c
GEN linux-user/trace.c
GEN qapi/trace.c
GEN accel/tcg/trace.c
GEN accel/kvm/trace.c
GEN nbd/trace.c
GEN scsi/trace.c
GEN config-all-devices.mak
DEP /tmp/qemu-test/src/dtc/tests/trees.S
DEP /tmp/qemu-test/src/dtc/tests/dumptrees.c
DEP /tmp/qemu-test/src/dtc/tests/testutils.c
DEP /tmp/qemu-test/src/dtc/tests/value-labels.c
DEP /tmp/qemu-test/src/dtc/tests/asm_tree_dump.c
DEP /tmp/qemu-test/src/dtc/tests/truncated_property.c
DEP /tmp/qemu-test/src/dtc/tests/check_path.c
DEP /tmp/qemu-test/src/dtc/tests/overlay_bad_fixup.c
DEP /tmp/qemu-test/src/dtc/tests/overlay.c
DEP /tmp/qemu-test/src/dtc/tests/subnode_iterate.c
DEP /tmp/qemu-test/src/dtc/tests/property_iterate.c
DEP /tmp/qemu-test/src/dtc/tests/integer-expressions.c
DEP /tmp/qemu-test/src/dtc/tests/utilfdt_test.c
DEP /tmp/qemu-test/src/dtc/tests/path_offset_aliases.c
DEP /tmp/qemu-test/src/dtc/tests/add_subnode_with_nops.c
DEP /tmp/qemu-test/src/dtc/tests/dtbs_equal_unordered.c
DEP /tmp/qemu-test/src/dtc/tests/dtb_reverse.c
DEP /tmp/qemu-test/src/dtc/tests/dtbs_equal_ordered.c
DEP /tmp/qemu-test/src/dtc/tests/incbin.c
DEP /tmp/qemu-test/src/dtc/tests/boot-cpuid.c
DEP /tmp/qemu-test/src/dtc/tests/extra-terminating-null.c
DEP /tmp/qemu-test/src/dtc/tests/phandle_format.c
DEP /tmp/qemu-test/src/dtc/tests/path-references.c
DEP /tmp/qemu-test/src/dtc/tests/string_escapes.c
DEP /tmp/qemu-test/src/dtc/tests/propname_escapes.c
DEP /tmp/qemu-test/src/dtc/tests/references.c
DEP /tmp/qemu-test/src/dtc/tests/appendprop2.c
DEP /tmp/qemu-test/src/dtc/tests/appendprop1.c
DEP /tmp/qemu-test/src/dtc/tests/del_node.c
DEP /tmp/qemu-test/src/dtc/tests/del_property.c
DEP /tmp/qemu-test/src/dtc/tests/setprop.c
DEP /tmp/qemu-test/src/dtc/tests/set_name.c
DEP /tmp/qemu-test/src/dtc/tests/rw_tree1.c
DEP /tmp/qemu-test/src/dtc/tests/open_pack.c
DEP /tmp/qemu-test/src/dtc/tests/nopulate.c
DEP /tmp/qemu-test/src/dtc/tests/mangle-layout.c
DEP /tmp/qemu-test/src/dtc/tests/move_and_save.c
DEP /tmp/qemu-test/src/dtc/tests/sw_tree1.c
DEP /tmp/qemu-test/src/dtc/tests/nop_node.c
DEP /tmp/qemu-test/src/dtc/tests/nop_property.c
DEP /tmp/qemu-test/src/dtc/tests/setprop_inplace.c
DEP /tmp/qemu-test/src/dtc/tests/stringlist.c
DEP /tmp/qemu-test/src/dtc/tests/addr_size_cells.c
DEP /tmp/qemu-test/src/dtc/tests/notfound.c
DEP /tmp/qemu-test/src/dtc/tests/sized_cells.c
DEP /tmp/qemu-test/src/dtc/tests/char_literal.c
DEP /tmp/qemu-test/src/dtc/tests/get_alias.c
DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_compatible.c
DEP /tmp/qemu-test/src/dtc/tests/node_check_compatible.c
DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_phandle.c
DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_prop_value.c
DEP /tmp/qemu-test/src/dtc/tests/parent_offset.c
DEP /tmp/qemu-test/src/dtc/tests/supernode_atdepth_offset.c
DEP /tmp/qemu-test/src/dtc/tests/get_path.c
DEP /tmp/qemu-test/src/dtc/tests/get_phandle.c
DEP /tmp/qemu-test/src/dtc/tests/getprop.c
DEP /tmp/qemu-test/src/dtc/tests/get_name.c
DEP /tmp/qemu-test/src/dtc/tests/path_offset.c
DEP /tmp/qemu-test/src/dtc/tests/subnode_offset.c
DEP /tmp/qemu-test/src/dtc/tests/find_property.c
DEP /tmp/qemu-test/src/dtc/tests/root_node.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_overlay.c
DEP /tmp/qemu-test/src/dtc/tests/get_mem_rsv.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_addresses.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_empty_tree.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_strerror.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_rw.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_sw.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_wip.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_ro.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt.c
DEP /tmp/qemu-test/src/dtc/util.c
DEP /tmp/qemu-test/src/dtc/fdtoverlay.c
DEP /tmp/qemu-test/src/dtc/fdtput.c
DEP /tmp/qemu-test/src/dtc/fdtget.c
DEP /tmp/qemu-test/src/dtc/fdtdump.c
LEX convert-dtsv0-lexer.lex.c
DEP /tmp/qemu-test/src/dtc/srcpos.c
BISON dtc-parser.tab.c
DEP /tmp/qemu-test/src/dtc/treesource.c
LEX dtc-lexer.lex.c
DEP /tmp/qemu-test/src/dtc/livetree.c
DEP /tmp/qemu-test/src/dtc/fstree.c
DEP /tmp/qemu-test/src/dtc/flattree.c
DEP /tmp/qemu-test/src/dtc/dtc.c
DEP /tmp/qemu-test/src/dtc/data.c
DEP /tmp/qemu-test/src/dtc/checks.c
DEP convert-dtsv0-lexer.lex.c
DEP dtc-parser.tab.c
DEP dtc-lexer.lex.c
CHK version_gen.h
UPD version_gen.h
DEP /tmp/qemu-test/src/dtc/util.c
CC libfdt/fdt.o
CC libfdt/fdt_ro.o
CC libfdt/fdt_wip.o
CC libfdt/fdt_rw.o
CC libfdt/fdt_strerror.o
CC libfdt/fdt_empty_tree.o
CC libfdt/fdt_sw.o
CC libfdt/fdt_addresses.o
CC libfdt/fdt_overlay.o
AR libfdt/libfdt.a
x86_64-w64-mingw32-ar: creating libfdt/libfdt.a
a - libfdt/fdt.o
a - libfdt/fdt_ro.o
a - libfdt/fdt_wip.o
a - libfdt/fdt_sw.o
a - libfdt/fdt_rw.o
a - libfdt/fdt_strerror.o
a - libfdt/fdt_empty_tree.o
a - libfdt/fdt_addresses.o
a - libfdt/fdt_overlay.o
RC version.o
GEN qga/qapi-generated/qga-qapi-types.h
GEN qga/qapi-generated/qga-qapi-visit.h
GEN qga/qapi-generated/qga-qapi-types.c
GEN qga/qapi-generated/qga-qmp-commands.h
GEN qga/qapi-generated/qga-qmp-marshal.c
CC qmp-introspect.o
CC qapi-types.o
GEN qga/qapi-generated/qga-qapi-visit.c
CC qapi-visit.o
CC qapi-event.o
CC qapi/qapi-dealloc-visitor.o
CC qapi/qapi-visit-core.o
CC qapi/qobject-input-visitor.o
CC qapi/qobject-output-visitor.o
CC qapi/qmp-registry.o
CC qapi/qmp-dispatch.o
CC qapi/string-input-visitor.o
CC qapi/string-output-visitor.o
CC qapi/opts-visitor.o
CC qapi/qapi-clone-visitor.o
CC qapi/qmp-event.o
CC qapi/qapi-util.o
CC qobject/qnull.o
CC qobject/qnum.o
CC qobject/qstring.o
CC qobject/qdict.o
CC qobject/qlist.o
CC qobject/qbool.o
CC qobject/qlit.o
CC qobject/qjson.o
CC qobject/qobject.o
CC qobject/json-lexer.o
CC qobject/json-streamer.o
CC qobject/json-parser.o
CC trace/simple.o
CC trace/control.o
CC trace/qmp.o
CC util/osdep.o
CC util/cutils.o
CC util/unicode.o
CC util/qemu-timer-common.o
CC util/bufferiszero.o
CC util/lockcnt.o
CC util/aiocb.o
CC util/async.o
CC util/thread-pool.o
CC util/qemu-timer.o
CC util/main-loop.o
CC util/iohandler.o
CC util/aio-win32.o
CC util/event_notifier-win32.o
CC util/oslib-win32.o
CC util/qemu-thread-win32.o
CC util/envlist.o
CC util/path.o
CC util/module.o
CC util/host-utils.o
CC util/bitmap.o
CC util/bitops.o
CC util/hbitmap.o
CC util/fifo8.o
CC util/acl.o
CC util/cacheinfo.o
CC util/error.o
CC util/qemu-error.o
CC util/id.o
CC util/iov.o
CC util/qemu-config.o
CC util/qemu-sockets.o
CC util/uri.o
CC util/notify.o
CC util/qemu-option.o
CC util/qemu-progress.o
CC util/keyval.o
CC util/hexdump.o
CC util/crc32c.o
CC util/uuid.o
CC util/throttle.o
CC util/getauxval.o
CC util/readline.o
CC util/rcu.o
CC util/qemu-coroutine.o
CC util/qemu-coroutine-lock.o
CC util/qemu-coroutine-io.o
CC util/qemu-coroutine-sleep.o
CC util/coroutine-win32.o
CC util/buffer.o
CC util/timed-average.o
CC util/base64.o
CC util/log.o
CC util/pagesize.o
CC util/qdist.o
CC util/qht.o
CC util/range.o
CC util/stats64.o
CC util/systemd.o
CC trace-root.o
CC util/trace.o
CC crypto/trace.o
CC io/trace.o
CC migration/trace.o
CC block/trace.o
CC chardev/trace.o
CC hw/block/trace.o
CC hw/block/dataplane/trace.o
CC hw/char/trace.o
CC hw/intc/trace.o
CC hw/net/trace.o
CC hw/virtio/trace.o
CC hw/audio/trace.o
CC hw/misc/trace.o
CC hw/usb/trace.o
CC hw/scsi/trace.o
CC hw/nvram/trace.o
CC hw/display/trace.o
CC hw/input/trace.o
CC hw/timer/trace.o
CC hw/dma/trace.o
CC hw/sparc/trace.o
CC hw/sparc64/trace.o
CC hw/sd/trace.o
CC hw/isa/trace.o
CC hw/mem/trace.o
CC hw/i386/trace.o
CC hw/i386/xen/trace.o
CC hw/9pfs/trace.o
CC hw/ppc/trace.o
CC hw/pci/trace.o
CC hw/pci-host/trace.o
CC hw/s390x/trace.o
CC hw/vfio/trace.o
CC hw/acpi/trace.o
CC hw/arm/trace.o
CC hw/alpha/trace.o
CC hw/xen/trace.o
CC hw/ide/trace.o
CC ui/trace.o
CC audio/trace.o
CC net/trace.o
CC target/arm/trace.o
CC target/i386/trace.o
CC target/mips/trace.o
CC target/sparc/trace.o
CC target/s390x/trace.o
CC target/ppc/trace.o
CC qom/trace.o
CC linux-user/trace.o
CC qapi/trace.o
CC accel/tcg/trace.o
CC accel/kvm/trace.o
CC nbd/trace.o
CC scsi/trace.o
CC crypto/pbkdf-stub.o
CC stubs/arch-query-cpu-def.o
CC stubs/arch-query-cpu-model-expansion.o
CC stubs/arch-query-cpu-model-comparison.o
CC stubs/arch-query-cpu-model-baseline.o
CC stubs/bdrv-next-monitor-owned.o
CC stubs/blk-commit-all.o
CC stubs/blockdev-close-all-bdrv-states.o
CC stubs/clock-warp.o
CC stubs/cpu-get-clock.o
CC stubs/cpu-get-icount.o
CC stubs/dump.o
CC stubs/error-printf.o
CC stubs/fdset.o
CC stubs/gdbstub.o
CC stubs/get-vm-name.o
CC stubs/iothread.o
CC stubs/iothread-lock.o
CC stubs/is-daemonized.o
CC stubs/machine-init-done.o
CC stubs/migr-blocker.o
CC stubs/change-state-handler.o
CC stubs/monitor.o
CC stubs/notify-event.o
CC stubs/qtest.o
CC stubs/replay.o
CC stubs/runstate-check.o
CC stubs/set-fd-handler.o
CC stubs/slirp.o
CC stubs/sysbus.o
CC stubs/tpm.o
CC stubs/trace-control.o
CC stubs/uuid.o
CC stubs/vm-stop.o
CC stubs/vmstate.o
CC stubs/fd-register.o
CC stubs/qmp_pc_dimm.o
CC stubs/target-monitor-defs.o
CC stubs/target-get-monitor-def.o
CC stubs/pc_madt_cpu_entry.o
CC stubs/vmgenid.o
CC stubs/xen-common.o
CC stubs/xen-hvm.o
CC stubs/pci-host-piix.o
GEN qemu-img-cmds.h
CC block.o
CC blockjob.o
CC qemu-io-cmds.o
CC replication.o
CC block/raw-format.o
CC block/qcow.o
CC block/vdi.o
CC block/vmdk.o
CC block/cloop.o
CC block/bochs.o
CC block/vpc.o
CC block/vvfat.o
CC block/dmg.o
CC block/qcow2.o
CC block/qcow2-refcount.o
CC block/qcow2-cluster.o
CC block/qcow2-snapshot.o
CC block/qcow2-cache.o
CC block/qcow2-bitmap.o
CC block/qed.o
CC block/qed-l2-cache.o
CC block/qed-table.o
CC block/qed-cluster.o
CC block/qed-check.o
CC block/vhdx.o
CC block/vhdx-endian.o
CC block/vhdx-log.o
CC block/quorum.o
CC block/parallels.o
CC block/blkdebug.o
CC block/blkverify.o
CC block/blkreplay.o
CC block/block-backend.o
CC block/snapshot.o
CC block/qapi.o
CC block/file-win32.o
CC block/win32-aio.o
CC block/null.o
CC block/mirror.o
CC block/commit.o
CC block/io.o
CC block/throttle-groups.o
CC block/nbd.o
CC block/nbd-client.o
CC block/sheepdog.o
CC block/accounting.o
CC block/dirty-bitmap.o
CC block/write-threshold.o
CC block/backup.o
CC block/replication.o
CC block/throttle.o
CC block/crypto.o
CC nbd/server.o
CC nbd/client.o
CC nbd/common.o
CC scsi/utils.o
CC block/curl.o
CC block/ssh.o
CC block/dmg-bz2.o
CC crypto/init.o
CC crypto/hash.o
CC crypto/hash-nettle.o
CC crypto/hmac.o
CC crypto/hmac-nettle.o
CC crypto/aes.o
CC crypto/desrfb.o
CC crypto/cipher.o
CC crypto/tlscreds.o
CC crypto/tlscredsanon.o
CC crypto/tlscredsx509.o
CC crypto/tlssession.o
CC crypto/secret.o
CC crypto/random-gnutls.o
CC crypto/pbkdf.o
CC crypto/pbkdf-nettle.o
CC crypto/ivgen.o
CC crypto/ivgen-essiv.o
CC crypto/ivgen-plain.o
CC crypto/ivgen-plain64.o
CC crypto/afsplit.o
CC crypto/xts.o
CC crypto/block.o
CC crypto/block-qcow.o
CC crypto/block-luks.o
CC io/channel.o
CC io/channel-buffer.o
CC io/channel-command.o
CC io/channel-file.o
CC io/channel-socket.o
CC io/channel-tls.o
CC io/channel-watch.o
CC io/channel-websock.o
CC io/channel-util.o
CC io/dns-resolver.o
CC io/net-listener.o
CC io/task.o
CC qom/object.o
CC qom/container.o
CC qom/qom-qobject.o
CC qom/object_interfaces.o
CC qemu-io.o
CC blockdev.o
CC blockdev-nbd.o
CC bootdevice.o
CC iothread.o
CC qdev-monitor.o
CC device-hotplug.o
CC os-win32.o
CC bt-host.o
CC bt-vhci.o
CC dma-helpers.o
CC vl.o
CC tpm.o
CC device_tree.o
CC qmp-marshal.o
CC qmp.o
CC hmp.o
CC cpus-common.o
CC audio/audio.o
CC audio/noaudio.o
CC audio/wavaudio.o
CC audio/mixeng.o
CC audio/sdlaudio.o
CC audio/dsoundaudio.o
CC audio/audio_win_int.o
CC audio/wavcapture.o
CC backends/rng.o
CC backends/rng-egd.o
CC backends/tpm.o
CC backends/hostmem.o
CC backends/hostmem-ram.o
CC backends/cryptodev.o
CC backends/cryptodev-builtin.o
CC block/stream.o
CC chardev/msmouse.o
CC chardev/wctablet.o
CC chardev/testdev.o
CC disas/arm.o
CXX disas/arm-a64.o
CC disas/i386.o
CXX disas/libvixl/vixl/utils.o
CXX disas/libvixl/vixl/compiler-intrinsics.o
CXX disas/libvixl/vixl/a64/instructions-a64.o
CXX disas/libvixl/vixl/a64/decoder-a64.o
CXX disas/libvixl/vixl/a64/disasm-a64.o
CC hw/acpi/core.o
CC hw/acpi/piix4.o
CC hw/acpi/pcihp.o
CC hw/acpi/ich9.o
CC hw/acpi/tco.o
CC hw/acpi/cpu_hotplug.o
CC hw/acpi/memory_hotplug.o
CC hw/acpi/cpu.o
CC hw/acpi/nvdimm.o
CC hw/acpi/vmgenid.o
CC hw/acpi/acpi_interface.o
CC hw/acpi/bios-linker-loader.o
CC hw/acpi/aml-build.o
CC hw/acpi/ipmi.o
CC hw/acpi/acpi-stub.o
CC hw/acpi/ipmi-stub.o
CC hw/audio/sb16.o
CC hw/audio/es1370.o
CC hw/audio/ac97.o
CC hw/audio/fmopl.o
CC hw/audio/adlib.o
CC hw/audio/gus.o
CC hw/audio/gusemu_hal.o
CC hw/audio/gusemu_mixer.o
CC hw/audio/intel-hda.o
CC hw/audio/cs4231a.o
CC hw/audio/hda-codec.o
CC hw/audio/pcspk.o
CC hw/audio/wm8750.o
CC hw/audio/pl041.o
CC hw/audio/lm4549.o
CC hw/audio/marvell_88w8618.o
CC hw/audio/soundhw.o
CC hw/block/block.o
CC hw/block/cdrom.o
CC hw/block/hd-geometry.o
CC hw/block/fdc.o
CC hw/block/m25p80.o
CC hw/block/nand.o
CC hw/block/pflash_cfi01.o
CC hw/block/pflash_cfi02.o
CC hw/block/ecc.o
CC hw/block/onenand.o
CC hw/block/nvme.o
CC hw/bt/core.o
CC hw/bt/l2cap.o
CC hw/bt/sdp.o
CC hw/bt/hci.o
CC hw/bt/hid.o
CC hw/bt/hci-csr.o
CC hw/char/ipoctal232.o
CC hw/char/parallel.o
CC hw/char/pl011.o
CC hw/char/serial.o
CC hw/char/serial-isa.o
CC hw/char/serial-pci.o
CC hw/char/virtio-console.o
CC hw/char/cadence_uart.o
CC hw/char/cmsdk-apb-uart.o
CC hw/char/debugcon.o
CC hw/char/imx_serial.o
CC hw/core/qdev.o
CC hw/core/qdev-properties.o
CC hw/core/bus.o
CC hw/core/reset.o
CC hw/core/qdev-fw.o
CC hw/core/fw-path-provider.o
CC hw/core/irq.o
CC hw/core/hotplug.o
CC hw/core/nmi.o
CC hw/core/stream.o
CC hw/core/ptimer.o
CC hw/core/sysbus.o
CC hw/core/machine.o
CC hw/core/loader.o
CC hw/core/qdev-properties-system.o
CC hw/core/register.o
CC hw/core/or-irq.o
CC hw/core/platform-bus.o
CC hw/cpu/core.o
CC hw/display/ads7846.o
CC hw/display/cirrus_vga.o
CC hw/display/pl110.o
CC hw/display/ssd0303.o
CC hw/display/ssd0323.o
CC hw/display/vga-pci.o
CC hw/display/vga-isa.o
CC hw/display/vmware_vga.o
CC hw/display/blizzard.o
CC hw/display/exynos4210_fimd.o
CC hw/display/framebuffer.o
CC hw/display/tc6393xb.o
CC hw/dma/pl080.o
CC hw/dma/pl330.o
CC hw/dma/i8257.o
CC hw/dma/xilinx_axidma.o
CC hw/dma/xlnx-zynq-devcfg.o
CC hw/gpio/max7310.o
CC hw/gpio/pl061.o
CC hw/gpio/zaurus.o
CC hw/gpio/gpio_key.o
CC hw/i2c/core.o
CC hw/i2c/smbus.o
CC hw/i2c/smbus_eeprom.o
CC hw/i2c/i2c-ddc.o
CC hw/i2c/versatile_i2c.o
CC hw/i2c/smbus_ich9.o
CC hw/i2c/pm_smbus.o
CC hw/i2c/bitbang_i2c.o
CC hw/i2c/exynos4210_i2c.o
CC hw/i2c/imx_i2c.o
CC hw/i2c/aspeed_i2c.o
CC hw/ide/core.o
CC hw/ide/atapi.o
CC hw/ide/qdev.o
CC hw/ide/pci.o
CC hw/ide/isa.o
CC hw/ide/piix.o
CC hw/ide/microdrive.o
CC hw/ide/ahci.o
CC hw/ide/ich.o
CC hw/ide/ahci-allwinner.o
CC hw/input/hid.o
CC hw/input/lm832x.o
CC hw/input/pckbd.o
CC hw/input/pl050.o
CC hw/input/ps2.o
CC hw/input/stellaris_input.o
CC hw/input/tsc2005.o
CC hw/input/virtio-input.o
CC hw/input/virtio-input-hid.o
CC hw/intc/i8259_common.o
CC hw/intc/i8259.o
CC hw/intc/pl190.o
CC hw/intc/xlnx-pmu-iomod-intc.o
CC hw/intc/xlnx-zynqmp-ipi.o
CC hw/intc/imx_avic.o
CC hw/intc/realview_gic.o
CC hw/intc/ioapic_common.o
CC hw/intc/arm_gic_common.o
CC hw/intc/arm_gic.o
CC hw/intc/arm_gicv2m.o
CC hw/intc/arm_gicv3_common.o
CC hw/intc/arm_gicv3.o
CC hw/intc/arm_gicv3_dist.o
CC hw/intc/arm_gicv3_redist.o
CC hw/intc/arm_gicv3_its_common.o
CC hw/intc/intc.o
CC hw/ipack/ipack.o
CC hw/ipack/tpci200.o
CC hw/ipmi/ipmi.o
CC hw/ipmi/ipmi_bmc_sim.o
CC hw/ipmi/ipmi_bmc_extern.o
CC hw/ipmi/isa_ipmi_kcs.o
CC hw/ipmi/isa_ipmi_bt.o
CC hw/isa/isa-bus.o
CC hw/isa/apm.o
CC hw/mem/pc-dimm.o
CC hw/mem/nvdimm.o
CC hw/misc/applesmc.o
CC hw/misc/max111x.o
CC hw/misc/tmp105.o
CC hw/misc/tmp421.o
CC hw/misc/debugexit.o
CC hw/misc/sga.o
CC hw/misc/pc-testdev.o
CC hw/misc/pci-testdev.o
CC hw/misc/edu.o
CC hw/misc/unimp.o
CC hw/misc/vmcoreinfo.o
CC hw/misc/arm_l2x0.o
CC hw/misc/arm_integrator_debug.o
CC hw/misc/a9scu.o
CC hw/misc/arm11scu.o
CC hw/net/ne2000.o
CC hw/net/eepro100.o
CC hw/net/pcnet-pci.o
CC hw/net/pcnet.o
CC hw/net/e1000.o
CC hw/net/e1000x_common.o
CC hw/net/net_tx_pkt.o
CC hw/net/net_rx_pkt.o
CC hw/net/e1000e.o
CC hw/net/e1000e_core.o
CC hw/net/rtl8139.o
CC hw/net/vmxnet3.o
CC hw/net/smc91c111.o
CC hw/net/lan9118.o
CC hw/net/ne2000-isa.o
CC hw/net/xgmac.o
CC hw/net/xilinx_axienet.o
CC hw/net/allwinner_emac.o
CC hw/net/cadence_gem.o
CC hw/net/imx_fec.o
CC hw/net/stellaris_enet.o
CC hw/net/ftgmac100.o
CC hw/net/rocker/rocker.o
CC hw/net/rocker/rocker_fp.o
CC hw/net/rocker/rocker_desc.o
CC hw/net/rocker/rocker_world.o
CC hw/net/rocker/rocker_of_dpa.o
CC hw/nvram/eeprom93xx.o
CC hw/nvram/eeprom_at24c.o
CC hw/nvram/fw_cfg.o
CC hw/nvram/chrp_nvram.o
CC hw/pci-bridge/pci_bridge_dev.o
CC hw/pci-bridge/pcie_root_port.o
CC hw/pci-bridge/gen_pcie_root_port.o
CC hw/pci-bridge/pcie_pci_bridge.o
CC hw/pci-bridge/pci_expander_bridge.o
CC hw/pci-bridge/xio3130_upstream.o
CC hw/pci-bridge/xio3130_downstream.o
CC hw/pci-bridge/ioh3420.o
CC hw/pci-bridge/i82801b11.o
CC hw/pci-host/pam.o
CC hw/pci-host/versatile.o
CC hw/pci-host/piix.o
CC hw/pci-host/q35.o
CC hw/pci-host/gpex.o
CC hw/pci/pci.o
CC hw/pci/pci_bridge.o
CC hw/pci/msix.o
CC hw/pci/msi.o
CC hw/pci/shpc.o
CC hw/pci/slotid_cap.o
CC hw/pci/pci_host.o
CC hw/pci/pcie_host.o
CC hw/pci/pcie.o
CC hw/pci/pcie_aer.o
CC hw/pci/pcie_port.o
CC hw/pci/pci-stub.o
CC hw/pcmcia/pcmcia.o
CC hw/scsi/scsi-disk.o
CC hw/scsi/scsi-generic.o
CC hw/scsi/scsi-bus.o
CC hw/scsi/lsi53c895a.o
CC hw/scsi/mptsas.o
CC hw/scsi/mptconfig.o
CC hw/scsi/mptendian.o
CC hw/scsi/megasas.o
CC hw/scsi/vmw_pvscsi.o
CC hw/scsi/esp.o
CC hw/scsi/esp-pci.o
CC hw/sd/pl181.o
CC hw/sd/ssi-sd.o
CC hw/sd/sd.o
CC hw/sd/core.o
CC hw/sd/sdhci.o
CC hw/smbios/smbios.o
CC hw/smbios/smbios_type_38.o
CC hw/smbios/smbios-stub.o
CC hw/smbios/smbios_type_38-stub.o
CC hw/ssi/pl022.o
CC hw/ssi/ssi.o
CC hw/ssi/xilinx_spips.o
CC hw/ssi/aspeed_smc.o
CC hw/ssi/stm32f2xx_spi.o
CC hw/ssi/mss-spi.o
CC hw/timer/arm_timer.o
CC hw/timer/arm_mptimer.o
CC hw/timer/armv7m_systick.o
CC hw/timer/a9gtimer.o
CC hw/timer/cadence_ttc.o
CC hw/timer/ds1338.o
CC hw/timer/hpet.o
CC hw/timer/i8254_common.o
CC hw/timer/i8254.o
CC hw/timer/pl031.o
CC hw/timer/twl92230.o
CC hw/timer/imx_epit.o
CC hw/timer/imx_gpt.o
CC hw/timer/stm32f2xx_timer.o
CC hw/timer/aspeed_timer.o
CC hw/timer/cmsdk-apb-timer.o
CC hw/timer/mss-timer.o
CC hw/tpm/tpm_util.o
CC hw/tpm/tpm_tis.o
CC hw/usb/core.o
CC hw/usb/combined-packet.o
CC hw/usb/bus.o
CC hw/usb/libhw.o
CC hw/usb/desc.o
CC hw/usb/desc-msos.o
CC hw/usb/hcd-uhci.o
CC hw/usb/hcd-ohci.o
CC hw/usb/hcd-ehci.o
CC hw/usb/hcd-ehci-pci.o
CC hw/usb/hcd-ehci-sysbus.o
CC hw/usb/hcd-xhci.o
CC hw/usb/hcd-xhci-nec.o
CC hw/usb/hcd-musb.o
CC hw/usb/dev-hub.o
CC hw/usb/dev-hid.o
CC hw/usb/dev-wacom.o
CC hw/usb/dev-storage.o
CC hw/usb/dev-uas.o
CC hw/usb/dev-audio.o
CC hw/usb/dev-serial.o
CC hw/usb/dev-network.o
CC hw/usb/dev-bluetooth.o
CC hw/usb/dev-smartcard-reader.o
CC hw/usb/host-stub.o
CC hw/virtio/virtio-rng.o
CC hw/virtio/virtio-pci.o
CC hw/virtio/virtio-bus.o
CC hw/virtio/virtio-mmio.o
CC hw/virtio/vhost-stub.o
CC hw/watchdog/watchdog.o
CC hw/watchdog/wdt_i6300esb.o
CC hw/watchdog/wdt_ib700.o
CC hw/watchdog/wdt_aspeed.o
CC migration/migration.o
CC migration/socket.o
CC migration/fd.o
CC migration/exec.o
CC migration/tls.o
CC migration/channel.o
CC migration/savevm.o
CC migration/colo-comm.o
CC migration/colo.o
CC migration/colo-failover.o
CC migration/vmstate.o
CC migration/vmstate-types.o
CC migration/page_cache.o
CC migration/qemu-file.o
CC migration/global_state.o
CC migration/qemu-file-channel.o
CC migration/xbzrle.o
CC migration/postcopy-ram.o
CC migration/qjson.o
CC migration/block.o
CC net/net.o
CC net/queue.o
CC net/checksum.o
CC net/util.o
CC net/hub.o
CC net/socket.o
CC net/dump.o
CC net/eth.o
CC net/slirp.o
CC net/filter.o
CC net/filter-buffer.o
CC net/filter-mirror.o
CC net/colo-compare.o
CC net/colo.o
CC net/filter-rewriter.o
CC net/filter-replay.o
CC net/tap-win32.o
CC qom/cpu.o
CC replay/replay.o
CC replay/replay-internal.o
CC replay/replay-events.o
CC replay/replay-time.o
CC replay/replay-input.o
CC replay/replay-char.o
CC replay/replay-snapshot.o
CC replay/replay-net.o
CC replay/replay-audio.o
CC slirp/cksum.o
CC slirp/if.o
CC slirp/ip_icmp.o
CC slirp/ip6_icmp.o
CC slirp/ip6_input.o
CC slirp/ip6_output.o
CC slirp/ip_input.o
CC slirp/ip_output.o
CC slirp/dnssearch.o
CC slirp/dhcpv6.o
CC slirp/slirp.o
CC slirp/mbuf.o
CC slirp/misc.o
CC slirp/sbuf.o
CC slirp/socket.o
CC slirp/tcp_input.o
CC slirp/tcp_output.o
CC slirp/tcp_subr.o
CC slirp/tcp_timer.o
CC slirp/udp.o
CC slirp/udp6.o
CC slirp/bootp.o
CC slirp/tftp.o
CC slirp/arp_table.o
CC slirp/ndp_table.o
CC slirp/ncsi.o
CC ui/keymaps.o
CC ui/console.o
CC ui/cursor.o
CC ui/qemu-pixman.o
CC ui/input.o
CC ui/input-keymap.o
CC ui/input-legacy.o
CC ui/sdl.o
CC ui/sdl_zoom.o
CC ui/vnc.o
CC ui/vnc-enc-zlib.o
CC ui/vnc-enc-hextile.o
CC ui/vnc-enc-tight.o
CC ui/vnc-palette.o
CC ui/vnc-enc-zrle.o
CC ui/vnc-auth-vencrypt.o
CC ui/vnc-ws.o
CC ui/vnc-jobs.o
CC ui/gtk.o
CC chardev/char.o
CC chardev/char-console.o
CC chardev/char-fe.o
CC chardev/char-file.o
CC chardev/char-io.o
CC chardev/char-mux.o
CC chardev/char-null.o
CC chardev/char-pipe.o
CC chardev/char-ringbuf.o
CC chardev/char-serial.o
CC chardev/char-socket.o
CC chardev/char-stdio.o
CC chardev/char-udp.o
CC chardev/char-win.o
CC chardev/char-win-stdio.o
CC qga/commands.o
AS optionrom/multiboot.o
AS optionrom/linuxboot.o
CC optionrom/linuxboot_dma.o
CC qga/guest-agent-command-state.o
AS optionrom/kvmvapic.o
BUILD optionrom/multiboot.img
BUILD optionrom/linuxboot.img
BUILD optionrom/linuxboot_dma.img
BUILD optionrom/kvmvapic.img
BUILD optionrom/multiboot.raw
BUILD optionrom/linuxboot.raw
BUILD optionrom/linuxboot_dma.raw
BUILD optionrom/kvmvapic.raw
SIGN optionrom/multiboot.bin
SIGN optionrom/linuxboot.bin
SIGN optionrom/linuxboot_dma.bin
SIGN optionrom/kvmvapic.bin
CC qga/main.o
CC qga/commands-win32.o
CC qga/channel-win32.o
CC qga/service-win32.o
CC qga/vss-win32.o
CC qga/qapi-generated/qga-qapi-types.o
CC qga/qapi-generated/qga-qapi-visit.o
CC qga/qapi-generated/qga-qmp-marshal.o
AR libqemuutil.a
CC qemu-img.o
LINK qemu-io.exe
GEN aarch64-softmmu/hmp-commands.h
GEN aarch64-softmmu/hmp-commands-info.h
GEN aarch64-softmmu/config-target.h
GEN x86_64-softmmu/hmp-commands.h
GEN x86_64-softmmu/hmp-commands-info.h
GEN x86_64-softmmu/config-target.h
CC aarch64-softmmu/exec.o
CC aarch64-softmmu/tcg/tcg-op.o
CC aarch64-softmmu/tcg/tcg.o
CC aarch64-softmmu/tcg/optimize.o
CC x86_64-softmmu/exec.o
CC aarch64-softmmu/tcg/tcg-common.o
CC aarch64-softmmu/fpu/softfloat.o
CC aarch64-softmmu/disas.o
GEN aarch64-softmmu/gdbstub-xml.c
LINK qemu-ga.exe
CC aarch64-softmmu/arch_init.o
CC aarch64-softmmu/cpus.o
CC aarch64-softmmu/monitor.o
CC aarch64-softmmu/gdbstub.o
CC aarch64-softmmu/balloon.o
CC aarch64-softmmu/ioport.o
CC aarch64-softmmu/numa.o
CC x86_64-softmmu/tcg/tcg.o
LINK qemu-img.exe
CC aarch64-softmmu/qtest.o
CC aarch64-softmmu/memory.o
CC aarch64-softmmu/memory_mapping.o
CC aarch64-softmmu/dump.o
CC x86_64-softmmu/tcg/tcg-op.o
CC x86_64-softmmu/tcg/optimize.o
CC aarch64-softmmu/migration/ram.o
CC x86_64-softmmu/tcg/tcg-common.o
CC aarch64-softmmu/accel/accel.o
CC aarch64-softmmu/accel/stubs/hax-stub.o
CC x86_64-softmmu/fpu/softfloat.o
CC x86_64-softmmu/disas.o
GEN x86_64-softmmu/gdbstub-xml.c
CC x86_64-softmmu/arch_init.o
CC aarch64-softmmu/accel/stubs/hvf-stub.o
CC x86_64-softmmu/cpus.o
CC aarch64-softmmu/accel/stubs/kvm-stub.o
CC aarch64-softmmu/accel/tcg/tcg-all.o
CC aarch64-softmmu/accel/tcg/cputlb.o
CC x86_64-softmmu/monitor.o
CC x86_64-softmmu/gdbstub.o
CC x86_64-softmmu/balloon.o
CC aarch64-softmmu/accel/tcg/tcg-runtime.o
CC aarch64-softmmu/accel/tcg/cpu-exec.o
CC x86_64-softmmu/ioport.o
CC aarch64-softmmu/accel/tcg/cpu-exec-common.o
CC x86_64-softmmu/numa.o
CC x86_64-softmmu/qtest.o
CC x86_64-softmmu/memory.o
CC aarch64-softmmu/accel/tcg/translate-all.o
CC aarch64-softmmu/accel/tcg/translator.o
CC aarch64-softmmu/hw/adc/stm32f2xx_adc.o
CC x86_64-softmmu/memory_mapping.o
CC x86_64-softmmu/dump.o
CC aarch64-softmmu/hw/block/virtio-blk.o
CC x86_64-softmmu/migration/ram.o
CC aarch64-softmmu/hw/block/dataplane/virtio-blk.o
CC aarch64-softmmu/hw/char/exynos4210_uart.o
CC aarch64-softmmu/hw/char/omap_uart.o
CC x86_64-softmmu/accel/accel.o
CC aarch64-softmmu/hw/char/digic-uart.o
CC x86_64-softmmu/accel/stubs/hvf-stub.o
CC aarch64-softmmu/hw/char/stm32f2xx_usart.o
CC x86_64-softmmu/accel/stubs/kvm-stub.o
CC x86_64-softmmu/accel/tcg/tcg-all.o
CC x86_64-softmmu/accel/tcg/cputlb.o
CC aarch64-softmmu/hw/char/bcm2835_aux.o
CC x86_64-softmmu/accel/tcg/tcg-runtime.o
CC x86_64-softmmu/accel/tcg/cpu-exec.o
CC aarch64-softmmu/hw/char/virtio-serial-bus.o
CC aarch64-softmmu/hw/core/generic-loader.o
CC x86_64-softmmu/accel/tcg/cpu-exec-common.o
CC aarch64-softmmu/hw/core/null-machine.o
CC x86_64-softmmu/accel/tcg/translate-all.o
CC x86_64-softmmu/accel/tcg/translator.o
CC aarch64-softmmu/hw/cpu/arm11mpcore.o
CC aarch64-softmmu/hw/cpu/realview_mpcore.o
CC aarch64-softmmu/hw/cpu/a9mpcore.o
CC x86_64-softmmu/hw/block/virtio-blk.o
CC x86_64-softmmu/hw/block/dataplane/virtio-blk.o
CC x86_64-softmmu/hw/char/virtio-serial-bus.o
CC aarch64-softmmu/hw/cpu/a15mpcore.o
CC aarch64-softmmu/hw/display/omap_dss.o
CC x86_64-softmmu/hw/core/generic-loader.o
CC aarch64-softmmu/hw/display/omap_lcdc.o
CC x86_64-softmmu/hw/core/null-machine.o
CC x86_64-softmmu/hw/display/vga.o
CC x86_64-softmmu/hw/display/virtio-gpu.o
CC aarch64-softmmu/hw/display/pxa2xx_lcd.o
CC aarch64-softmmu/hw/display/bcm2835_fb.o
CC aarch64-softmmu/hw/display/vga.o
CC aarch64-softmmu/hw/display/virtio-gpu.o
CC x86_64-softmmu/hw/display/virtio-gpu-3d.o
CC x86_64-softmmu/hw/display/virtio-gpu-pci.o
CC x86_64-softmmu/hw/display/virtio-vga.o
CC aarch64-softmmu/hw/display/virtio-gpu-3d.o
CC x86_64-softmmu/hw/intc/apic.o
CC x86_64-softmmu/hw/intc/apic_common.o
CC aarch64-softmmu/hw/display/virtio-gpu-pci.o
CC x86_64-softmmu/hw/intc/ioapic.o
CC x86_64-softmmu/hw/isa/lpc_ich9.o
CC x86_64-softmmu/hw/misc/pvpanic.o
CC aarch64-softmmu/hw/display/dpcd.o
CC aarch64-softmmu/hw/display/xlnx_dp.o
CC aarch64-softmmu/hw/dma/xlnx_dpdma.o
CC aarch64-softmmu/hw/dma/omap_dma.o
CC aarch64-softmmu/hw/dma/soc_dma.o
CC x86_64-softmmu/hw/misc/mmio_interface.o
CC x86_64-softmmu/hw/net/virtio-net.o
CC x86_64-softmmu/hw/net/vhost_net.o
CC aarch64-softmmu/hw/dma/pxa2xx_dma.o
CC aarch64-softmmu/hw/dma/bcm2835_dma.o
CC aarch64-softmmu/hw/gpio/omap_gpio.o
CC aarch64-softmmu/hw/gpio/imx_gpio.o
CC x86_64-softmmu/hw/scsi/virtio-scsi.o
CC aarch64-softmmu/hw/gpio/bcm2835_gpio.o
CC aarch64-softmmu/hw/i2c/omap_i2c.o
CC x86_64-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC aarch64-softmmu/hw/input/pxa2xx_keypad.o
CC aarch64-softmmu/hw/input/tsc210x.o
CC x86_64-softmmu/hw/timer/mc146818rtc.o
CC x86_64-softmmu/hw/virtio/virtio.o
CC x86_64-softmmu/hw/virtio/virtio-balloon.o
CC x86_64-softmmu/hw/virtio/virtio-crypto.o
CC x86_64-softmmu/hw/virtio/virtio-crypto-pci.o
CC aarch64-softmmu/hw/intc/armv7m_nvic.o
CC x86_64-softmmu/hw/i386/multiboot.o
CC aarch64-softmmu/hw/intc/exynos4210_gic.o
CC x86_64-softmmu/hw/i386/pc.o
CC aarch64-softmmu/hw/intc/exynos4210_combiner.o
CC x86_64-softmmu/hw/i386/pc_piix.o
CC aarch64-softmmu/hw/intc/omap_intc.o
CC aarch64-softmmu/hw/intc/bcm2835_ic.o
CC x86_64-softmmu/hw/i386/pc_q35.o
CC aarch64-softmmu/hw/intc/bcm2836_control.o
CC aarch64-softmmu/hw/intc/allwinner-a10-pic.o
CC x86_64-softmmu/hw/i386/pc_sysfw.o
CC aarch64-softmmu/hw/intc/aspeed_vic.o
CC aarch64-softmmu/hw/intc/arm_gicv3_cpuif.o
CC x86_64-softmmu/hw/i386/x86-iommu.o
CC x86_64-softmmu/hw/i386/intel_iommu.o
CC aarch64-softmmu/hw/misc/arm_sysctl.o
CC x86_64-softmmu/hw/i386/amd_iommu.o
CC aarch64-softmmu/hw/misc/cbus.o
CC x86_64-softmmu/hw/i386/vmport.o
CC aarch64-softmmu/hw/misc/exynos4210_pmu.o
CC x86_64-softmmu/hw/i386/vmmouse.o
CC aarch64-softmmu/hw/misc/exynos4210_clk.o
CC x86_64-softmmu/hw/i386/kvmvapic.o
CC x86_64-softmmu/hw/i386/acpi-build.o
CC x86_64-softmmu/target/i386/helper.o
CC aarch64-softmmu/hw/misc/exynos4210_rng.o
CC aarch64-softmmu/hw/misc/imx_ccm.o
CC x86_64-softmmu/target/i386/cpu.o
CC x86_64-softmmu/target/i386/gdbstub.o
CC aarch64-softmmu/hw/misc/imx31_ccm.o
CC x86_64-softmmu/target/i386/xsave_helper.o
CC x86_64-softmmu/target/i386/translate.o
CC aarch64-softmmu/hw/misc/imx25_ccm.o
CC x86_64-softmmu/target/i386/bpt_helper.o
CC x86_64-softmmu/target/i386/cc_helper.o
CC aarch64-softmmu/hw/misc/imx6_ccm.o
CC x86_64-softmmu/target/i386/excp_helper.o
CC x86_64-softmmu/target/i386/fpu_helper.o
CC x86_64-softmmu/target/i386/int_helper.o
CC aarch64-softmmu/hw/misc/imx6_src.o
CC x86_64-softmmu/target/i386/mem_helper.o
CC x86_64-softmmu/target/i386/misc_helper.o
CC aarch64-softmmu/hw/misc/mst_fpga.o
CC x86_64-softmmu/target/i386/mpx_helper.o
CC aarch64-softmmu/hw/misc/omap_clk.o
CC x86_64-softmmu/target/i386/seg_helper.o
CC aarch64-softmmu/hw/misc/omap_gpmc.o
CC aarch64-softmmu/hw/misc/omap_l4.o
CC x86_64-softmmu/target/i386/smm_helper.o
CC x86_64-softmmu/target/i386/svm_helper.o
CC aarch64-softmmu/hw/misc/omap_sdrc.o
CC aarch64-softmmu/hw/misc/omap_tap.o
CC aarch64-softmmu/hw/misc/bcm2835_mbox.o
CC x86_64-softmmu/target/i386/machine.o
CC aarch64-softmmu/hw/misc/bcm2835_property.o
CC x86_64-softmmu/target/i386/arch_memory_mapping.o
CC x86_64-softmmu/target/i386/arch_dump.o
CC aarch64-softmmu/hw/misc/bcm2835_rng.o
CC aarch64-softmmu/hw/misc/zynq_slcr.o
CC aarch64-softmmu/hw/misc/zynq-xadc.o
CC x86_64-softmmu/target/i386/monitor.o
CC x86_64-softmmu/target/i386/kvm-stub.o
CC aarch64-softmmu/hw/misc/stm32f2xx_syscfg.o
CC x86_64-softmmu/target/i386/hax-all.o
CC x86_64-softmmu/target/i386/hax-mem.o
CC aarch64-softmmu/hw/misc/mps2-scc.o
CC aarch64-softmmu/hw/misc/auxbus.o
CC x86_64-softmmu/target/i386/hax-windows.o
CC aarch64-softmmu/hw/misc/aspeed_scu.o
CC aarch64-softmmu/hw/misc/aspeed_sdmc.o
GEN trace/generated-helpers.c
CC x86_64-softmmu/trace/control-target.o
CC aarch64-softmmu/hw/misc/mmio_interface.o
CC x86_64-softmmu/gdbstub-xml.o
CC aarch64-softmmu/hw/misc/msf2-sysreg.o
CC x86_64-softmmu/trace/generated-helpers.o
CC aarch64-softmmu/hw/net/virtio-net.o
CC aarch64-softmmu/hw/net/vhost_net.o
CC aarch64-softmmu/hw/pcmcia/pxa2xx.o
CC aarch64-softmmu/hw/scsi/virtio-scsi.o
CC aarch64-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC aarch64-softmmu/hw/sd/omap_mmc.o
CC aarch64-softmmu/hw/sd/pxa2xx_mmci.o
CC aarch64-softmmu/hw/sd/bcm2835_sdhost.o
CC aarch64-softmmu/hw/ssi/omap_spi.o
CC aarch64-softmmu/hw/ssi/imx_spi.o
CC aarch64-softmmu/hw/timer/exynos4210_mct.o
CC aarch64-softmmu/hw/timer/exynos4210_pwm.o
CC aarch64-softmmu/hw/timer/exynos4210_rtc.o
CC aarch64-softmmu/hw/timer/omap_gptimer.o
CC aarch64-softmmu/hw/timer/omap_synctimer.o
CC aarch64-softmmu/hw/timer/pxa2xx_timer.o
CC aarch64-softmmu/hw/timer/digic-timer.o
CC aarch64-softmmu/hw/timer/allwinner-a10-pit.o
CC aarch64-softmmu/hw/usb/tusb6010.o
CC aarch64-softmmu/hw/virtio/virtio.o
CC aarch64-softmmu/hw/virtio/virtio-balloon.o
CC aarch64-softmmu/hw/virtio/virtio-crypto.o
CC aarch64-softmmu/hw/virtio/virtio-crypto-pci.o
LINK x86_64-softmmu/qemu-system-x86_64w.exe
CC aarch64-softmmu/hw/arm/boot.o
CC aarch64-softmmu/hw/arm/collie.o
CC aarch64-softmmu/hw/arm/exynos4_boards.o
CC aarch64-softmmu/hw/arm/gumstix.o
CC aarch64-softmmu/hw/arm/highbank.o
CC aarch64-softmmu/hw/arm/digic_boards.o
target/i386/helper.o: In function `get_me_mask':
/tmp/qemu-test/src/target/i386/helper.c:735: undefined reference to `kvm_arch_get_supported_cpuid'
target/i386/monitor.o: In function `get_me_mask':
/tmp/qemu-test/src/target/i386/monitor.c:71: undefined reference to `kvm_arch_get_supported_cpuid'
collect2: error: ld returned 1 exit status
make[1]: *** [qemu-system-x86_64w.exe] Error 1
Makefile:193: recipe for target 'qemu-system-x86_64w.exe' failed
Makefile:403: recipe for target 'subdir-x86_64-softmmu' failed
make: *** [subdir-x86_64-softmmu] Error 2
make: *** Waiting for unfinished jobs....
CC aarch64-softmmu/hw/arm/integratorcp.o
CC aarch64-softmmu/hw/arm/mainstone.o
CC aarch64-softmmu/hw/arm/musicpal.o
CC aarch64-softmmu/hw/arm/nseries.o
CC aarch64-softmmu/hw/arm/omap_sx1.o
CC aarch64-softmmu/hw/arm/palm.o
CC aarch64-softmmu/hw/arm/realview.o
CC aarch64-softmmu/hw/arm/spitz.o
CC aarch64-softmmu/hw/arm/stellaris.o
CC aarch64-softmmu/hw/arm/tosa.o
CC aarch64-softmmu/hw/arm/versatilepb.o
CC aarch64-softmmu/hw/arm/vexpress.o
CC aarch64-softmmu/hw/arm/virt.o
CC aarch64-softmmu/hw/arm/xilinx_zynq.o
CC aarch64-softmmu/hw/arm/z2.o
CC aarch64-softmmu/hw/arm/virt-acpi-build.o
CC aarch64-softmmu/hw/arm/netduino2.o
CC aarch64-softmmu/hw/arm/sysbus-fdt.o
CC aarch64-softmmu/hw/arm/armv7m.o
CC aarch64-softmmu/hw/arm/exynos4210.o
CC aarch64-softmmu/hw/arm/pxa2xx.o
CC aarch64-softmmu/hw/arm/pxa2xx_gpio.o
CC aarch64-softmmu/hw/arm/pxa2xx_pic.o
CC aarch64-softmmu/hw/arm/digic.o
CC aarch64-softmmu/hw/arm/omap1.o
CC aarch64-softmmu/hw/arm/omap2.o
CC aarch64-softmmu/hw/arm/strongarm.o
CC aarch64-softmmu/hw/arm/allwinner-a10.o
CC aarch64-softmmu/hw/arm/cubieboard.o
CC aarch64-softmmu/hw/arm/bcm2835_peripherals.o
CC aarch64-softmmu/hw/arm/bcm2836.o
CC aarch64-softmmu/hw/arm/raspi.o
CC aarch64-softmmu/hw/arm/stm32f205_soc.o
CC aarch64-softmmu/hw/arm/xlnx-zynqmp.o
CC aarch64-softmmu/hw/arm/xlnx-zcu102.o
CC aarch64-softmmu/hw/arm/fsl-imx25.o
CC aarch64-softmmu/hw/arm/imx25_pdk.o
CC aarch64-softmmu/hw/arm/fsl-imx31.o
CC aarch64-softmmu/hw/arm/kzm.o
CC aarch64-softmmu/hw/arm/fsl-imx6.o
CC aarch64-softmmu/hw/arm/sabrelite.o
CC aarch64-softmmu/hw/arm/aspeed_soc.o
CC aarch64-softmmu/hw/arm/aspeed.o
CC aarch64-softmmu/hw/arm/mps2.o
CC aarch64-softmmu/hw/arm/msf2-soc.o
CC aarch64-softmmu/hw/arm/msf2-som.o
CC aarch64-softmmu/target/arm/arm-semi.o
CC aarch64-softmmu/target/arm/machine.o
CC aarch64-softmmu/target/arm/psci.o
CC aarch64-softmmu/target/arm/arch_dump.o
CC aarch64-softmmu/target/arm/monitor.o
CC aarch64-softmmu/target/arm/kvm-stub.o
CC aarch64-softmmu/target/arm/translate.o
CC aarch64-softmmu/target/arm/op_helper.o
CC aarch64-softmmu/target/arm/helper.o
CC aarch64-softmmu/target/arm/cpu.o
CC aarch64-softmmu/target/arm/neon_helper.o
CC aarch64-softmmu/target/arm/iwmmxt_helper.o
CC aarch64-softmmu/target/arm/gdbstub.o
CC aarch64-softmmu/target/arm/cpu64.o
CC aarch64-softmmu/target/arm/translate-a64.o
CC aarch64-softmmu/target/arm/helper-a64.o
CC aarch64-softmmu/target/arm/gdbstub64.o
CC aarch64-softmmu/target/arm/crypto_helper.o
CC aarch64-softmmu/target/arm/arm-powerctl.o
GEN trace/generated-helpers.c
CC aarch64-softmmu/trace/control-target.o
CC aarch64-softmmu/gdbstub-xml.o
CC aarch64-softmmu/trace/generated-helpers.o
LINK aarch64-softmmu/qemu-system-aarch64w.exe
GEN aarch64-softmmu/qemu-system-aarch64.exe
Traceback (most recent call last):
File "./tests/docker/docker.py", line 407, in <module>
sys.exit(main())
File "./tests/docker/docker.py", line 404, in main
return args.cmdobj.run(args, argv)
File "./tests/docker/docker.py", line 261, in run
return Docker().run(argv, args.keep, quiet=args.quiet)
File "./tests/docker/docker.py", line 229, in run
quiet=quiet)
File "./tests/docker/docker.py", line 147, in _do_check
return subprocess.check_call(self._command + cmd, **kwargs)
File "/usr/lib64/python2.7/subprocess.py", line 186, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['docker', 'run', '--label', 'com.qemu.instance.uuid=1c9fffee052011e8a57452540069c830', '-u', '0', '--security-opt', 'seccomp=unconfined', '--rm', '--net=none', '-e', 'TARGET_LIST=', '-e', 'EXTRA_CONFIGURE_OPTS=', '-e', 'V=', '-e', 'J=8', '-e', 'DEBUG=', '-e', 'SHOW_ENV=1', '-e', 'CCACHE_DIR=/var/tmp/ccache', '-v', '/root/.cache/qemu-docker-ccache:/var/tmp/ccache:z', '-v', '/var/tmp/patchew-tester-tmp-mmhwcwgk/src/docker-src.2018-01-29-13.13.20.27358:/var/tmp/qemu:z,ro', 'qemu:fedora', '/var/tmp/qemu/run', 'test-mingw']' returned non-zero exit status 2
make[1]: *** [tests/docker/Makefile.include:129: docker-run] Error 1
make: *** [tests/docker/Makefile.include:163: docker-run-test-mingw@fedora] Error 2
real 5m55.952s
user 0m4.706s
sys 0m3.431s
=== OUTPUT END ===
Test command exited with code: 2
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@freelists.org
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [PATCH v6 00/23] x86: Secure Encrypted Virtualization (AMD)
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
@ 2018-01-29 18:31 ` no-reply
-1 siblings, 0 replies; 118+ messages in thread
From: no-reply @ 2018-01-29 18:31 UTC (permalink / raw)
To: brijesh.singh
Cc: edgar.iglesias, peter.maydell, famz, ehabkost, kvm,
Thomas.Lendacky, stefanha, mst, richard.henderson, qemu-devel,
dgilbert, pbonzini, brijesh.singh
Hi,
This series failed build test on ppc host. Please find the details below.
Subject: [Qemu-devel] [PATCH v6 00/23] x86: Secure Encrypted Virtualization (AMD)
Type: series
Message-id: 20180129174132.108925-1-brijesh.singh@amd.com
=== TEST SCRIPT BEGIN ===
#!/bin/bash
# Testing script will be invoked under the git checkout with
# HEAD pointing to a commit that has the patches applied on top of "base"
# branch
set -e
echo "=== ENV ==="
env
echo "=== PACKAGES ==="
rpm -qa
echo "=== TEST BEGIN ==="
INSTALL=$PWD/install
BUILD=$PWD/build
mkdir -p $BUILD $INSTALL
SRC=$PWD
cd $BUILD
$SRC/configure --prefix=$INSTALL
make -j100
# XXX: we need reliable clean up
# make check -j100 V=1
make install
=== TEST SCRIPT END ===
Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
- [tag update] patchew/1517235657-22547-1-git-send-email-ghammer@redhat.com -> patchew/1517235657-22547-1-git-send-email-ghammer@redhat.com
- [tag update] patchew/20180123035349.24538-1-richard.henderson@linaro.org -> patchew/20180123035349.24538-1-richard.henderson@linaro.org
* [new tag] patchew/20180129174132.108925-1-brijesh.singh@amd.com -> patchew/20180129174132.108925-1-brijesh.singh@amd.com
Submodule 'capstone' (git://git.qemu.org/capstone.git) registered for path 'capstone'
Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc'
Submodule 'roms/QemuMacDrivers' (git://git.qemu.org/QemuMacDrivers.git) registered for path 'roms/QemuMacDrivers'
Submodule 'roms/SLOF' (git://git.qemu-project.org/SLOF.git) registered for path 'roms/SLOF'
Submodule 'roms/ipxe' (git://git.qemu-project.org/ipxe.git) registered for path 'roms/ipxe'
Submodule 'roms/openbios' (git://git.qemu-project.org/openbios.git) registered for path 'roms/openbios'
Submodule 'roms/openhackware' (git://git.qemu-project.org/openhackware.git) registered for path 'roms/openhackware'
Submodule 'roms/qemu-palcode' (git://github.com/rth7680/qemu-palcode.git) registered for path 'roms/qemu-palcode'
Submodule 'roms/seabios' (git://git.qemu-project.org/seabios.git/) registered for path 'roms/seabios'
Submodule 'roms/sgabios' (git://git.qemu-project.org/sgabios.git) registered for path 'roms/sgabios'
Submodule 'roms/skiboot' (git://git.qemu.org/skiboot.git) registered for path 'roms/skiboot'
Submodule 'roms/u-boot' (git://git.qemu-project.org/u-boot.git) registered for path 'roms/u-boot'
Submodule 'roms/vgabios' (git://git.qemu-project.org/vgabios.git/) registered for path 'roms/vgabios'
Submodule 'ui/keycodemapdb' (git://git.qemu.org/keycodemapdb.git) registered for path 'ui/keycodemapdb'
Cloning into 'capstone'...
Submodule path 'capstone': checked out '22ead3e0bfdb87516656453336160e0a37b066bf'
Cloning into 'dtc'...
Submodule path 'dtc': checked out 'e54388015af1fb4bf04d0bca99caba1074d9cc42'
Cloning into 'roms/QemuMacDrivers'...
Submodule path 'roms/QemuMacDrivers': checked out 'd4e7d7ac663fcb55f1b93575445fcbca372f17a7'
Cloning into 'roms/SLOF'...
Submodule path 'roms/SLOF': checked out 'fa981320a1e0968d6fc1b8de319723ff8212b337'
Cloning into 'roms/ipxe'...
Submodule path 'roms/ipxe': checked out '0600d3ae94f93efd10fc6b3c7420a9557a3a1670'
Cloning into 'roms/openbios'...
Submodule path 'roms/openbios': checked out 'b5c93acd14b7b3886c2c81d84cd18e666984a4c8'
Cloning into 'roms/openhackware'...
Submodule path 'roms/openhackware': checked out 'c559da7c8eec5e45ef1f67978827af6f0b9546f5'
Cloning into 'roms/qemu-palcode'...
Submodule path 'roms/qemu-palcode': checked out 'f3c7e44c70254975df2a00af39701eafbac4d471'
Cloning into 'roms/seabios'...
Submodule path 'roms/seabios': checked out '63451fca13c75870e1703eb3e20584d91179aebc'
Cloning into 'roms/sgabios'...
Submodule path 'roms/sgabios': checked out 'cbaee52287e5f32373181cff50a00b6c4ac9015a'
Cloning into 'roms/skiboot'...
Submodule path 'roms/skiboot': checked out 'e0ee24c27a172bcf482f6f2bc905e6211c134bcc'
Cloning into 'roms/u-boot'...
Submodule path 'roms/u-boot': checked out 'd85ca029f257b53a96da6c2fb421e78a003a9943'
Cloning into 'roms/vgabios'...
Submodule path 'roms/vgabios': checked out '19ea12c230ded95928ecaef0db47a82231c2e485'
Cloning into 'ui/keycodemapdb'...
Submodule path 'ui/keycodemapdb': checked out '10739aa26051a5d49d88132604539d3ed085e72e'
Switched to a new branch 'test'
6efcae2 sev: add migration blocker
16a9e00 target/i386: clear C-bit when walking SEV guest page table
3b5e4a5 sev: add debug encrypt and decrypt commands
9034d07 hw: i386: set ram_debug_ops when memory encryption is enabled
9b48370 sev: Finalize the SEV guest launch flow
5e12681 sev: emit the SEV_MEASUREMENT event
1c9a562 qapi: add SEV_MEASUREMENT event
b322fca target/i386: encrypt bios rom
10da3ed sev: add command to encrypt guest memory region
cc979f7 sev: add command to create launch memory encryption context
9388e9f hmp: display memory encryption support in 'info kvm'
8875a9e kvm: introduce memory encryption APIs
c530cf3 sev: register the guest memory range which may contain encrypted data
f486eda sev: add command to initialize the memory encryption context
cd64908 accel: add Secure Encrypted Virtulization (SEV) object
08729ca docs: add AMD Secure Encrypted Virtualization (SEV)
e13044a kvm: update kvm.h to include memory encryption ioctls
113e16b machine: add -memory-encryption property
f839a7f target/i386: add memory encryption feature cpuid support
4e159e7 monitor/i386: use debug APIs when accessing guest memory
fbeb706 exec: add debug version of physical memory read and write API
11bc137 exec: add ram_debug_ops support
1b02df6 memattrs: add debug attribute
=== OUTPUT BEGIN ===
=== ENV ===
XDG_SESSION_ID=161645
SHELL=/bin/sh
USER=patchew
PATCHEW=/home/patchew/patchew/patchew-cli -s http://patchew.org --nodebug
PATH=/usr/bin:/bin
PWD=/var/tmp/patchew-tester-tmp-r4540qbd/src
LANG=en_US.UTF-8
HOME=/home/patchew
SHLVL=2
LOGNAME=patchew
XDG_RUNTIME_DIR=/run/user/1000
_=/usr/bin/env
=== PACKAGES ===
plymouth-core-libs-0.8.9-0.28.20140113.el7.centos.ppc64le
vim-common-7.4.160-2.el7.ppc64le
perl-Test-Simple-0.98-243.el7.noarch
hplip-common-3.15.9-3.el7.ppc64le
valgrind-3.12.0-8.el7.ppc64le
gamin-0.1.10-16.el7.ppc64le
libpeas-loader-python-1.20.0-1.el7.ppc64le
telepathy-filesystem-0.0.2-6.el7.noarch
colord-libs-1.3.4-1.el7.ppc64le
kbd-legacy-1.15.5-13.el7.noarch
perl-CPAN-Meta-YAML-0.008-14.el7.noarch
libvirt-daemon-driver-nwfilter-3.2.0-14.el7.ppc64le
ntsysv-1.7.4-1.el7.ppc64le
kernel-bootwrapper-3.10.0-693.el7.ppc64le
telepathy-farstream-0.6.0-5.el7.ppc64le
kdenetwork-common-4.10.5-8.el7_0.noarch
elfutils-devel-0.168-8.el7.ppc64le
pm-utils-1.4.1-27.el7.ppc64le
perl-Error-0.17020-2.el7.noarch
usbmuxd-1.1.0-1.el7.ppc64le
bzip2-devel-1.0.6-13.el7.ppc64le
blktrace-1.0.5-8.el7.ppc64le
gnome-keyring-pam-3.20.0-3.el7.ppc64le
tzdata-java-2017b-1.el7.noarch
perl-devel-5.16.3-292.el7.ppc64le
gnome-getting-started-docs-3.22.0-1.el7.noarch
perl-Log-Message-Simple-0.10-2.el7.noarch
totem-pl-parser-3.10.7-1.el7.ppc64le
lohit-oriya-fonts-2.5.4.1-3.el7.noarch
python-coverage-3.6-0.5.b3.el7.ppc64le
java-1.7.0-openjdk-1.7.0.141-2.6.10.5.el7.ppc64le
mailcap-2.1.41-2.el7.noarch
perl-CPANPLUS-0.91.38-4.el7.noarch
fprintd-pam-0.5.0-4.0.el7_0.ppc64le
less-458-9.el7.ppc64le
gupnp-igd-0.2.4-1.el7.ppc64le
thai-scalable-waree-fonts-0.5.0-7.el7.noarch
python-di-0.3-2.el7.noarch
yelp-libs-3.22.0-1.el7.ppc64le
vte-profile-0.46.2-1.el7.ppc64le
gpm-libs-1.20.7-5.el7.ppc64le
gnome-clocks-3.22.1-1.el7.ppc64le
p11-kit-trust-0.23.5-3.el7.ppc64le
gssproxy-0.7.0-4.el7.ppc64le
gnu-free-mono-fonts-20120503-8.el7.noarch
python-dateutil-1.5-7.el7.noarch
gucharmap-libs-3.18.2-1.el7.ppc64le
glibc-common-2.17-196.el7.ppc64le
libreport-plugin-mantisbt-2.1.11-38.el7.centos.ppc64le
motif-devel-2.3.4-8.1.el7_3.ppc64le
celt051-0.5.1.3-8.el7.ppc64le
radvd-1.9.2-9.el7.ppc64le
lohit-tamil-fonts-2.5.3-2.el7.noarch
python-ipaddress-1.0.16-2.el7.noarch
anaconda-widgets-21.48.22.121-1.el7.centos.ppc64le
zlib-1.2.7-17.el7.ppc64le
system-config-printer-1.4.1-19.el7.ppc64le
mozjs24-24.2.0-7.el7.ppc64le
device-mapper-multipath-libs-0.4.9-111.el7.ppc64le
wqy-microhei-fonts-0.2.0-0.12.beta.el7.noarch
python-schedutils-0.4-6.el7.ppc64le
gnome-bluetooth-3.20.1-1.el7.ppc64le
nss-util-3.28.4-3.el7.ppc64le
dotconf-1.3-8.el7.ppc64le
ibus-rawcode-1.3.2-3.el7.ppc64le
abattis-cantarell-fonts-0.0.25-1.el7.noarch
sssd-common-1.15.2-50.el7.ppc64le
sil-padauk-fonts-2.8-5.el7.noarch
bind-utils-9.9.4-50.el7.ppc64le
sox-14.4.1-6.el7.ppc64le
libSM-1.2.2-2.el7.ppc64le
libtiff-devel-4.0.3-27.el7_3.ppc64le
plymouth-system-theme-0.8.9-0.28.20140113.el7.centos.ppc64le
python-libs-2.7.5-58.el7.ppc64le
sssd-1.15.2-50.el7.ppc64le
rfkill-0.4-9.el7.ppc64le
cyrus-sasl-md5-2.1.26-21.el7.ppc64le
libXtst-devel-1.2.3-1.el7.ppc64le
avahi-libs-0.6.31-17.el7.ppc64le
ruby-2.0.0.648-30.el7.ppc64le
seahorse-3.20.0-1.el7.ppc64le
python-six-1.9.0-2.el7.noarch
gpgme-1.3.2-5.el7.ppc64le
iwl7260-firmware-22.0.7.0-56.el7.noarch
libsss_certmap-1.15.2-50.el7.ppc64le
xorg-x11-drv-wacom-0.34.2-2.el7.ppc64le
libXau-1.0.8-2.1.el7.ppc64le
shadow-utils-4.1.5.1-24.el7.ppc64le
evolution-ews-3.22.6-6.el7.ppc64le
libsecret-0.18.5-2.el7.ppc64le
perl-Module-Signature-0.73-2.el7.noarch
rootfiles-8.1-11.el7.noarch
trace-cmd-2.6.0-8.el7.ppc64le
hamcrest-1.3-6.el7.noarch
gawk-4.0.2-4.el7_3.1.ppc64le
usermode-1.111-5.el7.ppc64le
gnome-terminal-nautilus-3.22.1-2.el7.ppc64le
gvfs-client-1.30.4-3.el7.ppc64le
yum-utils-1.1.31-42.el7.noarch
iwl3945-firmware-15.32.2.9-56.el7.noarch
perl-Archive-Zip-1.30-11.el7.noarch
spice-glib-0.33-6.el7.ppc64le
augeas-libs-1.4.0-2.el7.ppc64le
openlmi-providers-0.5.0-4.el7.ppc64le
gnome-color-manager-3.22.2-1.el7.ppc64le
imsettings-libs-1.6.3-9.el7.ppc64le
nss-softokn-devel-3.28.3-6.el7.ppc64le
python34-3.4.5-4.el7.ppc64le
perl-DBI-1.627-4.el7.ppc64le
plymouth-plugin-label-0.8.9-0.28.20140113.el7.centos.ppc64le
binutils-2.25.1-31.base.el7.ppc64le
libsss_nss_idmap-1.15.2-50.el7.ppc64le
gvfs-smb-1.30.4-3.el7.ppc64le
freetype-devel-2.4.11-15.el7.ppc64le
libXi-1.7.9-1.el7.ppc64le
libitm-4.8.5-16.el7_4.1.ppc64le
perl-Text-Diff-1.41-5.el7.noarch
gcr-devel-3.20.0-1.el7.ppc64le
numactl-libs-2.0.9-6.el7_2.ppc64le
hardlink-1.0-19.el7.ppc64le
gnome-disk-utility-3.22.1-1.el7.ppc64le
mariadb-libs-5.5.56-2.el7.ppc64le
libnotify-0.7.7-1.el7.ppc64le
perl-TimeDate-2.30-2.el7.noarch
soprano-devel-2.9.2-3.el7.ppc64le
pixman-0.34.0-1.el7.ppc64le
kmod-20-15.el7.ppc64le
qt3-PostgreSQL-3.3.8b-51.el7.ppc64le
python2-pyasn1-0.1.9-7.el7.noarch
libXt-1.1.5-3.el7.ppc64le
perl-Font-AFM-1.20-13.el7.noarch
ibus-1.5.3-13.el7.ppc64le
findutils-4.5.11-5.el7.ppc64le
ibus-libs-1.5.3-13.el7.ppc64le
iprutils-2.4.14.1-1.el7.ppc64le
libpwquality-1.2.3-4.el7.ppc64le
libXrender-devel-0.9.10-1.el7.ppc64le
perl-IO-stringy-2.110-22.el7.noarch
kdelibs-4.14.8-6.el7_3.ppc64le
flac-libs-1.3.0-5.el7_1.ppc64le
device-mapper-event-libs-1.02.140-8.el7.ppc64le
gnutls-devel-3.3.26-9.el7.ppc64le
libXau-devel-1.0.8-2.1.el7.ppc64le
gstreamer1-plugins-base-1.10.4-1.el7.ppc64le
perl-HTML-Tree-5.03-2.el7.noarch
kdenetwork-kopete-4.10.5-8.el7_0.ppc64le
libepoxy-1.3.1-1.el7.ppc64le
mesa-libGLES-17.0.1-6.20170307.el7.ppc64le
qt-postgresql-4.8.5-13.el7.ppc64le
fontconfig-devel-2.10.95-11.el7.ppc64le
java-1.8.0-openjdk-headless-1.8.0.131-11.b12.el7.ppc64le
libXfont-1.5.2-1.el7.ppc64le
libkexiv2-4.10.5-3.el7.ppc64le
openjpeg-libs-1.5.1-17.el7.ppc64le
iscsi-initiator-utils-6.2.0.874-4.el7.ppc64le
NetworkManager-adsl-1.8.0-9.el7.ppc64le
libgtop2-2.34.2-1.el7.ppc64le
libXdamage-devel-1.1.4-4.1.el7.ppc64le
ipset-libs-6.29-1.el7.ppc64le
kde-runtime-drkonqi-4.10.5-8.el7.ppc64le
e2fsprogs-libs-1.42.9-10.el7.ppc64le
dhclient-4.2.5-58.el7.centos.ppc64le
usbutils-007-5.el7.ppc64le
python-ethtool-0.8-5.el7.ppc64le
gstreamer1-plugins-bad-free-1.10.4-2.el7.ppc64le
fftw-libs-double-3.3.3-8.el7.ppc64le
kdenetwork-krdc-4.10.5-8.el7_0.ppc64le
fuse-libs-2.9.2-8.el7.ppc64le
pciutils-3.5.1-2.el7.ppc64le
at-3.1.13-22.el7.ppc64le
python-IPy-0.75-6.el7.noarch
libXp-1.0.2-2.1.el7.ppc64le
vim-minimal-7.4.160-2.el7.ppc64le
kdesdk-kmtrace-4.10.5-6.el7.ppc64le
libraw1394-2.1.0-2.el7.ppc64le
libdrm-devel-2.4.74-1.el7.ppc64le
irqbalance-1.0.7-10.el7.ppc64le
fipscheck-lib-1.4.1-6.el7.ppc64le
gvfs-1.30.4-3.el7.ppc64le
libiscsi-1.9.0-7.el7.ppc64le
motif-2.3.4-8.1.el7_3.ppc64le
keyutils-1.5.8-3.el7.ppc64le
NetworkManager-ppp-1.8.0-9.el7.ppc64le
systemtap-3.1-3.el7.ppc64le
boost-serialization-1.53.0-27.el7.ppc64le
grilo-0.3.3-1.el7.ppc64le
rpm-4.11.3-25.el7.ppc64le
kdegraphics-libs-4.10.5-3.el7.noarch
libfontenc-1.1.3-3.el7.ppc64le
perl-Git-1.8.3.1-11.el7.noarch
rubygem-abrt-0.3.0-1.el7.noarch
tcl-8.5.13-8.el7.ppc64le
gtksourceview3-3.22.2-1.el7.ppc64le
cmake-2.8.12.2-2.el7.ppc64le
pulseaudio-utils-10.0-3.el7.ppc64le
libusal-1.1.11-23.el7.ppc64le
grub2-ppc64le-2.02-0.64.el7.centos.ppc64le
libreport-plugin-mailx-2.1.11-38.el7.centos.ppc64le
libvisual-0.4.0-16.el7.ppc64le
metacity-2.34.13-7.el7.ppc64le
redland-virtuoso-1.0.16-6.el7.ppc64le
nautilus-3.22.3-3.el7.ppc64le
pciutils-libs-3.5.1-2.el7.ppc64le
soprano-2.9.2-3.el7.ppc64le
mariadb-devel-5.5.56-2.el7.ppc64le
libxkbcommon-x11-0.7.1-1.el7.ppc64le
farstream02-0.2.3-3.el7.ppc64le
redhat-rpm-config-9.1.0-76.el7.centos.noarch
skkdic-20130104-6.T1435.el7.noarch
perl-HTTP-Tiny-0.033-3.el7.noarch
lvm2-libs-2.02.171-8.el7.ppc64le
perl-XML-Grove-0.46alpha-52.el7.noarch
boost-devel-1.53.0-27.el7.ppc64le
pycairo-1.8.10-8.el7.ppc64le
popt-devel-1.13-16.el7.ppc64le
gnome-settings-daemon-3.22.2-5.el7.ppc64le
perl-Socket-2.010-4.el7.ppc64le
numad-0.5-17.20150602git.el7.ppc64le
e2fsprogs-devel-1.42.9-10.el7.ppc64le
libsecret-devel-0.18.5-2.el7.ppc64le
libXv-devel-1.0.11-1.el7.ppc64le
libchewing-0.3.4-6.el7.ppc64le
gnome-shell-extension-places-menu-3.22.2-10.el7.noarch
perl-Time-HiRes-1.9725-3.el7.ppc64le
openchange-2.3-2.el7.ppc64le
audit-libs-devel-2.7.6-3.el7.ppc64le
python-dmidecode-3.12.2-1.el7.ppc64le
libmediaart-1.9.1-1.el7.ppc64le
elfutils-default-yama-scope-0.168-8.el7.noarch
quota-4.01-14.el7.ppc64le
perl-threads-1.87-4.el7.ppc64le
realmd-0.16.1-9.el7.ppc64le
nautilus-sendto-3.8.4-1.el7.ppc64le
gstreamer-0.10.36-7.el7.ppc64le
cairo-gobject-devel-1.14.8-2.el7.ppc64le
abrt-libs-2.1.11-48.el7.centos.ppc64le
libvirt-daemon-driver-storage-iscsi-3.2.0-14.el7.ppc64le
perl-Pod-Parser-1.61-2.el7.noarch
python-devel-2.7.5-58.el7.ppc64le
mpfr-devel-3.1.1-4.el7.ppc64le
kernel-headers-3.10.0-693.el7.ppc64le
powerpc-utils-python-1.2.1-9.el7.noarch
linux-firmware-20170606-56.gitc990aae.el7.noarch
libqmi-1.16.0-1.el7.ppc64le
libvirt-libs-3.2.0-14.el7.ppc64le
perl-Digest-1.17-245.el7.noarch
libgcab1-0.7-3.el7.ppc64le
flex-2.5.37-3.el7.ppc64le
tzdata-2017b-1.el7.noarch
phonon-4.6.0-10.el7.ppc64le
anaconda-tui-21.48.22.121-1.el7.centos.ppc64le
libmbim-utils-1.14.0-2.el7.ppc64le
gnutls-utils-3.3.26-9.el7.ppc64le
perl-Parse-CPAN-Meta-1.4404-5.el7.noarch
flite-1.3-22.el7.ppc64le
nfs4-acl-tools-0.3.3-15.el7.ppc64le
poppler-data-0.4.6-3.el7.noarch
gvfs-fuse-1.30.4-3.el7.ppc64le
gnome-software-3.22.7-1.el7.ppc64le
perl-ExtUtils-ParseXS-3.18-3.el7.noarch
libvirt-python-3.2.0-3.el7.ppc64le
perl-Module-Load-Conditional-0.54-3.el7.noarch
python-netifaces-0.10.4-3.el7.ppc64le
swig-2.0.10-5.el7.ppc64le
ipa-client-common-4.5.0-20.el7.centos.noarch
cheese-libs-3.22.1-1.el7.ppc64le
gnome-tweak-tool-3.22.0-1.el7.noarch
perl-ExtUtils-CBuilder-0.28.2.6-292.el7.noarch
libsoup-devel-2.56.0-3.el7.ppc64le
perl-IO-Zlib-1.10-292.el7.noarch
fros-1.0-2.el7.noarch
lohit-devanagari-fonts-2.5.3-4.el7.noarch
grub2-ppc64le-modules-2.02-0.64.el7.centos.noarch
libgdata-0.17.8-1.el7.ppc64le
evince-nautilus-3.22.1-5.el7.ppc64le
perl-ExtUtils-Embed-1.30-292.el7.noarch
dleyna-connector-dbus-0.2.0-2.el7.ppc64le
libiec61883-1.2.0-10.el7.ppc64le
python-lxml-3.2.1-4.el7.ppc64le
liberation-serif-fonts-1.07.2-15.el7.noarch
tigervnc-license-1.8.0-1.el7.noarch
gnome-packagekit-3.22.1-2.el7.ppc64le
hpijs-3.15.9-3.el7.ppc64le
libmodman-2.0.1-8.el7.ppc64le
ntp-4.2.6p5-25.el7.centos.2.ppc64le
gmp-devel-6.0.0-15.el7.ppc64le
pyxattr-0.5.1-5.el7.ppc64le
sil-abyssinica-fonts-1.200-6.el7.noarch
ncurses-libs-5.9-13.20130511.el7.ppc64le
gnome-dictionary-libs-3.20.0-1.el7.ppc64le
kdesdk-devel-4.10.5-6.el7.ppc64le
libreport-rhel-anaconda-bugzilla-2.1.11-38.el7.centos.ppc64le
libvirt-daemon-config-network-3.2.0-14.el7.ppc64le
boost-iostreams-1.53.0-27.el7.ppc64le
python-ply-3.4-11.el7.noarch
ucs-miscfixed-fonts-0.3-11.el7.noarch
info-5.1-4.el7.ppc64le
libXxf86misc-devel-1.0.3-7.1.el7.ppc64le
ibus-qt-1.3.2-4.el7.ppc64le
gnome-video-effects-0.4.3-1.el7.noarch
bridge-utils-1.5-9.el7.ppc64le
make-3.82-23.el7.ppc64le
pywbem-0.7.0-25.20130827svn625.el7.noarch
pnm2ppa-1.04-28.el7.ppc64le
chkconfig-1.7.4-1.el7.ppc64le
at-spi2-atk-devel-2.22.0-2.el7.ppc64le
freeglut-devel-2.8.1-3.el7.ppc64le
jbigkit-libs-2.0-11.el7.ppc64le
sssd-ipa-1.15.2-50.el7.ppc64le
openssl-libs-1.0.2k-8.el7.ppc64le
ldns-1.6.16-10.el7.ppc64le
rdate-1.4-25.el7.ppc64le
libdb-5.3.21-20.el7.ppc64le
evince-libs-3.22.1-5.el7.ppc64le
empathy-3.12.12-4.el7.ppc64le
rubygem-json-1.7.7-30.el7.ppc64le
dmraid-1.0.0.rc16-28.el7.ppc64le
libblkid-2.23.2-43.el7.ppc64le
logrotate-3.8.6-14.el7.ppc64le
iwl105-firmware-18.168.6.1-56.el7.noarch
grep-2.20-3.el7.ppc64le
xorg-x11-drv-synaptics-1.9.0-1.el7.ppc64le
iowatcher-1.0-6.el7.ppc64le
rubygem-net-http-persistent-2.8-5.el7.noarch
setroubleshoot-plugins-3.0.65-1.el7.noarch
atk-2.22.0-3.el7.ppc64le
libcacard-2.5.2-2.el7.ppc64le
iwl6050-firmware-41.28.5.1-56.el7.noarch
lcms2-2.6-3.el7.ppc64le
tigervnc-server-minimal-1.8.0-1.el7.ppc64le
gvfs-goa-1.30.4-3.el7.ppc64le
authconfig-6.2.8-30.el7.ppc64le
yum-plugin-fastestmirror-1.1.31-42.el7.noarch
dbus-python-1.1.1-9.el7.ppc64le
perl-Archive-Tar-1.92-2.el7.noarch
iwl5000-firmware-8.83.5.1_1-56.el7.noarch
libacl-2.2.51-12.el7.ppc64le
farstream-0.1.2-8.el7.ppc64le
ppc64-utils-0.14-16.el7.ppc64le
servicelog-1.1.14-3.el7.ppc64le
python2-ipaclient-4.5.0-20.el7.centos.noarch
libpeas-1.20.0-1.el7.ppc64le
perl-TermReadKey-2.30-20.el7.ppc64le
hdparm-9.43-5.el7.ppc64le
libicu-50.1.2-15.el7.ppc64le
polkit-qt-0.103.0-10.el7_0.ppc64le
gnome-weather-3.20.2-1.el7.noarch
libmspack-0.5-0.5.alpha.el7.ppc64le
libkkc-data-0.3.1-9.el7.ppc64le
hicolor-icon-theme-0.12-7.el7.noarch
perl-Newt-1.08-36.el7.ppc64le
libstdc++-devel-4.8.5-16.el7_4.1.ppc64le
libexif-0.6.21-6.el7.ppc64le
gtk3-devel-3.22.10-4.el7.ppc64le
gvfs-mtp-1.30.4-3.el7.ppc64le
ncompress-4.2.4.4-3.el7.ppc64le
libXcomposite-0.4.4-4.1.el7.ppc64le
python-decorator-3.4.0-3.el7.noarch
perl-Business-ISBN-Data-20120719.001-2.el7.noarch
gcc-gfortran-4.8.5-16.el7_4.1.ppc64le
cpio-2.11-24.el7.ppc64le
mesa-libGLU-9.0.0-4.el7.ppc64le
baobab-3.22.1-1.el7.ppc64le
device-mapper-libs-1.02.140-8.el7.ppc64le
libXtst-1.2.3-1.el7.ppc64le
ModemManager-glib-1.6.0-2.el7.ppc64le
perl-HTML-Parser-3.71-4.el7.ppc64le
libical-1.0.1-1.el7.ppc64le
xorg-x11-xinit-1.3.4-1.el7.ppc64le
gstreamer1-plugins-base-devel-1.10.4-1.el7.ppc64le
libdrm-2.4.74-1.el7.ppc64le
libXfixes-devel-5.0.3-1.el7.ppc64le
python-gssapi-1.2.0-3.el7.ppc64le
perl-Text-Unidecode-0.04-20.el7.noarch
hunspell-1.3.2-15.el7.ppc64le
kde-settings-19-23.5.el7.centos.noarch
perl-App-cpanminus-1.6922-2.el7.noarch
parted-3.1-28.el7.ppc64le
mesa-libGL-17.0.1-6.20170307.el7.ppc64le
elfutils-libelf-devel-0.168-8.el7.ppc64le
perl-Net-LibIDN-0.12-15.el7.ppc64le
apr-1.4.8-3.el7.ppc64le
kdepimlibs-4.10.5-4.el7.ppc64le
virt-top-1.0.8-23.el7.ppc64le
samba-client-libs-4.6.2-8.el7.ppc64le
gstreamer-plugins-base-0.10.36-10.el7.ppc64le
json-glib-devel-1.2.6-1.el7.ppc64le
perl-autodie-2.16-2.el7.noarch
tar-1.26-32.el7.ppc64le
ksysguard-libs-4.11.19-8.el7.ppc64le
rdma-core-devel-13-7.el7.ppc64le
accountsservice-0.6.45-2.el7.ppc64le
libxklavier-5.4-7.el7.ppc64le
libxml2-devel-2.9.1-6.el7_2.3.ppc64le
ghostscript-fonts-5.50-32.el7.noarch
libassuan-2.1.0-3.el7.ppc64le
libkipi-devel-4.10.5-3.el7.ppc64le
python-smbc-1.0.13-7.el7.ppc64le
initscripts-9.49.39-1.el7.ppc64le
qt3-3.3.8b-51.el7.ppc64le
yum-metadata-parser-1.1.4-10.el7.ppc64le
device-mapper-persistent-data-0.7.0-0.1.rc6.el7.ppc64le
adwaita-icon-theme-3.22.0-1.el7.noarch
kdepim-4.10.5-6.el7.ppc64le
postfix-2.10.1-6.el7.ppc64le
abrt-addon-pstoreoops-2.1.11-48.el7.centos.ppc64le
freerdp-libs-1.0.2-10.el7.ppc64le
langtable-python-0.0.31-3.el7.noarch
tcp_wrappers-7.6-77.el7.ppc64le
lm_sensors-libs-3.4.0-4.20160601gitf9185e5.el7.ppc64le
kde-style-oxygen-4.11.19-8.el7.ppc64le
powertop-2.3-12.el7.ppc64le
wpa_supplicant-2.6-5.el7.ppc64le
gtk3-3.22.10-4.el7.ppc64le
boost-python-1.53.0-27.el7.ppc64le
keyutils-libs-devel-1.5.8-3.el7.ppc64le
libdvdread-5.0.3-3.el7.ppc64le
im-chooser-common-1.6.4-4.el7.ppc64le
aic94xx-firmware-30-6.el7.noarch
media-player-info-17-4.el7.noarch
compat-gnome-desktop314-3.14.2-1.el7.ppc64le
harfbuzz-1.3.2-1.el7.ppc64le
libgcrypt-devel-1.5.3-14.el7.ppc64le
groff-base-1.22.2-8.el7.ppc64le
sane-backends-1.0.24-9.el7.ppc64le
setuptool-1.19.11-8.el7.ppc64le
ebtables-2.0.10-15.el7.ppc64le
libchamplain-0.12.15-1.el7.ppc64le
boost-math-1.53.0-27.el7.ppc64le
libuser-0.60-7.el7_1.ppc64le
boost-date-time-1.53.0-27.el7.ppc64le
espeak-1.47.11-4.el7.ppc64le
tbb-devel-4.1-9.20130314.el7.ppc64le
grub2-tools-minimal-2.02-0.64.el7.centos.ppc64le
gjs-1.46.0-1.el7.ppc64le
libsss_autofs-1.15.2-50.el7.ppc64le
deltarpm-3.6-3.el7.ppc64le
libnl-1.1.4-3.el7.ppc64le
libgpod-0.8.2-12.el7.ppc64le
postgresql-devel-9.2.21-1.el7.ppc64le
libibcm-13-7.el7.ppc64le
abrt-gui-libs-2.1.11-48.el7.centos.ppc64le
libxkbcommon-0.7.1-1.el7.ppc64le
passwd-0.79-4.el7.ppc64le
lsvpd-1.7.8-1.el7.ppc64le
fprintd-0.5.0-4.0.el7_0.ppc64le
hunspell-en-0.20121024-6.el7.noarch
qca-ossl-2.0.0-0.19.beta3.el7.ppc64le
libdmapsharing-2.9.37-1.el7.ppc64le
ortp-0.20.0-10.el7.ppc64le
python-pycurl-7.19.0-19.el7.ppc64le
perl-Pod-Escapes-1.04-292.el7.noarch
pcp-3.11.8-7.el7.ppc64le
libblkid-devel-2.23.2-43.el7.ppc64le
dracut-network-033-502.el7.ppc64le
pyatspi-2.20.3-1.el7.noarch
systemtap-sdt-devel-3.1-3.el7.ppc64le
check-0.9.9-5.el7.ppc64le
perl-threads-shared-1.43-6.el7.ppc64le
gnome-shell-extension-common-3.22.2-10.el7.noarch
gnome-icon-theme-symbolic-3.12.0-2.el7.noarch
abrt-cli-2.1.11-48.el7.centos.ppc64le
festival-speechtools-libs-1.2.96-28.el7.ppc64le
python-slip-dbus-0.4.0-2.el7.noarch
mesa-private-llvm-3.9.1-3.el7.ppc64le
perl-Time-Local-1.2300-2.el7.noarch
yelp-3.22.0-1.el7.ppc64le
fuse-devel-2.9.2-8.el7.ppc64le
dnsmasq-2.76-2.el7.ppc64le
festvox-slt-arctic-hts-0.20061229-28.el7.noarch
libtasn1-devel-4.10-1.el7.ppc64le
libgudev1-219-42.el7.ppc64le
perl-version-0.99.07-2.el7.ppc64le
libvirt-daemon-driver-qemu-3.2.0-14.el7.ppc64le
ps_mem-3.1-7.el7.noarch
rtkit-0.11-10.el7.ppc64le
abrt-gui-2.1.11-48.el7.centos.ppc64le
nettle-devel-2.7.1-8.el7.ppc64le
perl-ExtUtils-Manifest-1.61-244.el7.noarch
libreswan-3.20-3.el7.ppc64le
python-pyudev-0.15-9.el7.noarch
appstream-data-7-20170301.el7.noarch
powerpc-utils-1.3.3-4.el7.ppc64le
setup-2.8.71-7.el7.noarch
enscript-1.6.6-6.el7.ppc64le
libgexiv2-0.10.4-2.el7.ppc64le
perl-Digest-SHA-5.85-4.el7.ppc64le
upower-0.99.4-2.el7.ppc64le
dhcp-libs-4.2.5-58.el7.centos.ppc64le
kbd-1.15.5-13.el7.ppc64le
phonon-backend-gstreamer-4.6.3-3.el7.ppc64le
dejavu-fonts-common-2.33-6.el7.noarch
libaio-devel-0.3.109-13.el7.ppc64le
grubby-8.28-23.el7.ppc64le
perl-CPAN-Meta-2.120921-5.el7.noarch
libmusicbrainz5-5.0.1-9.el7.ppc64le
liberation-mono-fonts-1.07.2-15.el7.noarch
fcoe-utils-1.0.32-1.el7.ppc64le
gvfs-afc-1.30.4-3.el7.ppc64le
m17n-db-1.6.4-3.el7.noarch
time-1.7-45.el7.ppc64le
python-configobj-4.7.2-7.el7.noarch
perl-Log-Message-0.08-3.el7.noarch
glib-networking-2.50.0-1.el7.ppc64le
gnome-classic-session-3.22.2-10.el7.noarch
libglade2-2.6.4-11.el7.ppc64le
langtable-data-0.0.31-3.el7.noarch
dejavu-serif-fonts-2.33-6.el7.noarch
python-requests-2.6.0-1.el7_1.noarch
perl-HTML-Tagset-3.20-15.el7.noarch
gssdp-1.0.1-1.el7.ppc64le
perl-CPANPLUS-Dist-Build-0.70-3.el7.noarch
brasero-nautilus-3.12.1-2.el7.ppc64le
evolution-data-server-3.22.7-6.el7.ppc64le
khmeros-fonts-common-5.0-17.el7.noarch
dejavu-sans-fonts-2.33-6.el7.noarch
python-kmod-0.9-4.el7.ppc64le
lzop-1.03-10.el7.ppc64le
telepathy-salut-0.8.1-6.el7.ppc64le
tbb-4.1-9.20130314.el7.ppc64le
kdegraphics-devel-4.10.5-3.el7.noarch
libcryptui-3.12.2-1.el7.ppc64le
ncurses-base-5.9-13.20130511.el7.noarch
lohit-nepali-fonts-2.5.3-2.el7.noarch
python-configshell-1.1.fb23-3.el7.noarch
acl-2.2.51-12.el7.ppc64le
python-rtslib-2.1.fb63-2.el7.noarch
libreport-plugin-rhtsupport-2.1.11-38.el7.centos.ppc64le
imsettings-qt-1.6.3-9.el7.ppc64le
webkitgtk3-2.4.11-2.el7.ppc64le
libsepol-2.5-6.el7.ppc64le
smc-meera-fonts-6.0-7.el7.noarch
python-mako-0.8.1-2.el7.noarch
pinentry-0.8.1-17.el7.ppc64le
alsa-tools-firmware-1.1.0-1.el7.ppc64le
libgdither-0.6-8.el7.ppc64le
ibus-libpinyin-1.6.91-4.el7.ppc64le
libXp-devel-1.0.2-2.1.el7.ppc64le
nspr-4.13.1-1.0.el7_3.ppc64le
cscope-15.8-10.el7.ppc64le
m2crypto-0.21.1-17.el7.ppc64le
libatomic-4.8.5-16.el7.ppc64le
opencc-0.4.3-3.el7.ppc64le
sbc-1.0-5.el7.ppc64le
SDL-devel-1.2.15-14.el7.ppc64le
vorbis-tools-1.4.0-12.el7.ppc64le
bzip2-libs-1.0.6-13.el7.ppc64le
google-crosextra-carlito-fonts-1.103-0.2.20130920.el7.noarch
nmap-ncat-6.40-7.el7.ppc64le
krb5-libs-1.15.1-8.el7.ppc64le
sssd-krb5-1.15.2-50.el7.ppc64le
cups-filters-libs-1.0.35-22.el7.ppc64le
virt-manager-1.4.1-7.el7.noarch
evince-3.22.1-5.el7.ppc64le
readline-6.2-10.el7.ppc64le
ctags-5.8-13.el7.ppc64le
sound-theme-freedesktop-0.8-3.el7.noarch
ruby-libs-2.0.0.648-30.el7.ppc64le
pth-2.0.7-23.el7.ppc64le
rubygems-2.0.14.1-30.el7.noarch
gnome-dictionary-3.20.0-1.el7.ppc64le
xorg-x11-drv-evdev-2.10.5-2.1.el7.ppc64le
audit-libs-2.7.6-3.el7.ppc64le
iwl135-firmware-18.168.6.1-56.el7.noarch
python-nss-0.16.0-3.el7.ppc64le
json-glib-1.2.6-1.el7.ppc64le
flatpak-libs-0.8.7-1.el7.ppc64le
libutempter-1.1.6-4.el7.ppc64le
ekiga-4.0.1-7.el7.ppc64le
easymock2-2.5.2-12.el7.noarch
keyutils-libs-1.5.8-3.el7.ppc64le
iwl1000-firmware-39.31.5.1-56.el7.noarch
teamd-1.25-5.el7.ppc64le
telepathy-glib-0.24.0-1.el7.ppc64le
PackageKit-yum-1.1.5-1.el7.centos.ppc64le
virt-what-1.13-10.el7.ppc64le
ppc64-diag-2.7.3-3.el7.ppc64le
libpurple-2.10.11-5.el7.ppc64le
libffi-3.0.13-18.el7.ppc64le
iwl2000-firmware-18.168.6.1-56.el7.noarch
perl-YAML-0.84-5.el7.noarch
libxml2-python-2.9.1-6.el7_2.3.ppc64le
lsscsi-0.27-6.el7.ppc64le
systemtap-client-3.1-3.el7.ppc64le
virt-viewer-5.0-7.el7.ppc64le
dbusmenu-qt-0.9.2-7.el7.ppc64le
libtar-1.2.11-29.el7.ppc64le
ccache-3.3.4-1.el7.ppc64le
perl-DBD-SQLite-1.39-3.el7.ppc64le
gnome-icon-theme-3.12.0-1.el7.noarch
gdk-pixbuf2-2.36.5-1.el7.ppc64le
libpath_utils-0.2.1-27.el7.ppc64le
gvfs-archive-1.30.4-3.el7.ppc64le
gnome-online-accounts-devel-3.22.5-1.el7.ppc64le
yajl-2.0.4-4.el7.ppc64le
gcc-4.8.5-16.el7_4.1.ppc64le
perl-Pod-Coverage-0.23-3.el7.noarch
libselinux-python-2.5-11.el7.ppc64le
libX11-devel-1.6.5-1.el7.ppc64le
qrencode-libs-3.4.1-3.el7.ppc64le
gnome-system-log-3.9.90-3.el7.ppc64le
mesa-libGLU-devel-9.0.0-4.el7.ppc64le
boost-system-1.53.0-27.el7.ppc64le
perl-HTTP-Message-6.06-6.el7.noarch
cracklib-2.9.0-11.el7.ppc64le
libXcursor-1.1.14-8.el7.ppc64le
dbus-1.6.12-17.el7.ppc64le
libnotify-devel-0.7.7-1.el7.ppc64le
ibus-gtk3-1.5.3-13.el7.ppc64le
libv4l-0.9.5-4.el7.ppc64le
perl-Time-Piece-1.20.1-292.el7.ppc64le
cracklib-dicts-2.9.0-11.el7.ppc64le
startup-notification-0.12-8.el7.ppc64le
dconf-0.26.0-2.el7.ppc64le
net-snmp-devel-5.7.2-28.el7.ppc64le
kate-part-4.10.5-4.el7.ppc64le
orc-0.4.26-1.el7.ppc64le
kernel-devel-3.10.0-693.el7.ppc64le
avahi-gobject-0.6.31-17.el7.ppc64le
cairo-gobject-1.14.8-2.el7.ppc64le
httpd-2.4.6-67.el7.centos.ppc64le
subversion-1.7.14-10.el7.ppc64le
kdepimlibs-akonadi-4.10.5-4.el7.ppc64le
gdbm-1.10-8.el7.ppc64le
perl-File-CheckTree-4.42-3.el7.noarch
atk-devel-2.22.0-3.el7.ppc64le
java-1.8.0-openjdk-devel-1.8.0.131-11.b12.el7.ppc64le
abrt-dbus-2.1.11-48.el7.centos.ppc64le
qt-mysql-4.8.5-13.el7.ppc64le
libkdcraw-4.10.5-4.el7.ppc64le
libaio-0.3.109-13.el7.ppc64le
urw-fonts-2.4-16.el7.noarch
libgee06-0.6.8-3.el7.ppc64le
libXrandr-devel-1.5.1-2.el7.ppc64le
cronie-anacron-1.4.11-17.el7.ppc64le
mlocate-0.26-6.el7.ppc64le
kdesdk-okteta-devel-4.10.5-6.el7.ppc64le
iso-codes-3.46-2.el7.noarch
e2fsprogs-1.42.9-10.el7.ppc64le
at-spi2-atk-2.22.0-2.el7.ppc64le
libstoragemgmt-python-clibs-1.4.0-3.el7.ppc64le
PackageKit-command-not-found-1.1.5-1.el7.centos.ppc64le
kdenetwork-kopete-devel-4.10.5-8.el7_0.ppc64le
libmnl-1.0.3-7.el7.ppc64le
tcp_wrappers-devel-7.6-77.el7.ppc64le
python-dns-1.12.0-4.20150617git465785f.el7.noarch
libXinerama-devel-1.1.3-2.1.el7.ppc64le
libibverbs-13-7.el7.ppc64le
net-tools-2.0-0.22.20131004git.el7.ppc64le
kde-workspace-libs-4.11.19-8.el7.ppc64le
libwebp-0.3.0-7.el7.ppc64le
libattr-devel-2.4.46-12.el7.ppc64le
libkadm5-1.15.1-8.el7.ppc64le
gcr-3.20.0-1.el7.ppc64le
colord-1.3.4-1.el7.ppc64le
rsyslog-8.24.0-12.el7.ppc64le
im-chooser-1.6.4-4.el7.ppc64le
boost-filesystem-1.53.0-27.el7.ppc64le
libgpg-error-devel-1.12-3.el7.ppc64le
harfbuzz-icu-1.3.2-1.el7.ppc64le
libpeas-gtk-1.20.0-1.el7.ppc64le
abrt-addon-python-2.1.11-48.el7.centos.ppc64le
selinux-policy-targeted-3.13.1-166.el7.noarch
libksane-4.10.5-4.el7.ppc64le
m4-1.4.16-10.el7.ppc64le
xmlrpc-c-client-1.32.5-1905.svn2451.el7.ppc64le
sysvinit-tools-2.88-14.dsf.el7.ppc64le
libnma-1.8.0-3.el7.ppc64le
os-prober-1.58-9.el7.ppc64le
libproxy-mozjs-0.4.11-10.el7.ppc64le
speech-dispatcher-0.7.1-15.el7.ppc64le
boost-signals-1.53.0-27.el7.ppc64le
python-ldap-2.4.15-2.el7.ppc64le
libvpx-1.3.0-5.el7_0.ppc64le
nm-connection-editor-1.8.0-3.el7.ppc64le
NetworkManager-team-1.8.0-9.el7.ppc64le
perf-3.10.0-693.el7.ppc64le
libgsf-1.14.26-7.el7.ppc64le
libpfm-4.7.0-4.el7.ppc64le
postgresql-9.2.21-1.el7.ppc64le
ethtool-4.8-1.el7.ppc64le
xorg-x11-server-utils-7.7-20.el7.ppc64le
attica-0.4.2-1.el7.ppc64le
xfsdump-3.1.4-1.el7.ppc64le
firewalld-filesystem-0.4.4.4-6.el7.noarch
libXfont2-2.0.1-2.el7.ppc64le
net-snmp-agent-libs-5.7.2-28.el7.ppc64le
tcl-devel-8.5.13-8.el7.ppc64le
libgxps-0.2.5-1.el7.ppc64le
cyrus-sasl-devel-2.1.26-21.el7.ppc64le
hmaccalc-0.9.13-4.el7.ppc64le
libwacom-data-0.24-1.el7.noarch
perl-Pod-Usage-1.63-3.el7.noarch
python-yubico-1.2.3-1.el7.noarch
libXxf86vm-devel-1.1.4-1.el7.ppc64le
abrt-tui-2.1.11-48.el7.centos.ppc64le
pinfo-0.6.10-9.el7.ppc64le
gnome-shell-extension-user-theme-3.22.2-10.el7.noarch
perl-File-Path-2.09-2.el7.noarch
xorg-x11-fonts-Type1-7.5-9.el7.noarch
python-firewall-0.4.4.4-6.el7.noarch
libXres-1.0.7-2.1.el7.ppc64le
libcgroup-tools-0.41-13.el7.ppc64le
libnl-devel-1.1.4-3.el7.ppc64le
gnome-user-docs-3.22.0-1.el7.noarch
perl-Pod-Simple-3.28-4.el7.noarch
systemd-libs-219-42.el7.ppc64le
ncurses-devel-5.9-13.20130511.el7.ppc64le
mesa-libEGL-devel-17.0.1-6.20170307.el7.ppc64le
audit-2.7.6-3.el7.ppc64le
iotop-0.6-2.el7.noarch
libvirt-daemon-driver-storage-logical-3.2.0-14.el7.ppc64le
perl-Module-CoreList-2.76.02-292.el7.noarch
libmbim-1.14.0-2.el7.ppc64le
xdg-desktop-portal-0.5-2.el7.ppc64le
perl-Module-Load-0.24-3.el7.noarch
caribou-gtk3-module-0.4.21-1.el7.ppc64le
sqlite-devel-3.7.17-8.el7.ppc64le
centos-indexhtml-7-9.el7.centos.noarch
elfutils-0.168-8.el7.ppc64le
centos-release-7-4.1708.el7.centos.ppc64le
trousers-0.3.14-2.el7.ppc64le
perl-Thread-Queue-3.02-2.el7.noarch
python-meh-gui-0.25.2-1.el7.noarch
gom-0.3.2-1.el7.ppc64le
lldpad-1.0.1-3.git036e314.el7.ppc64le
libgusb-0.2.9-1.el7.ppc64le
liberation-fonts-common-1.07.2-15.el7.noarch
libimobiledevice-1.2.0-1.el7.ppc64le
perl-Module-Pluggable-4.8-3.el7.noarch
ghostscript-cups-9.07-28.el7.ppc64le
osinfo-db-tools-1.1.0-1.el7.ppc64le
kbd-misc-1.15.5-13.el7.noarch
dhcp-common-4.2.5-58.el7.centos.ppc64le
control-center-filesystem-3.22.2-5.el7.ppc64le
libvirt-glib-1.0.0-1.el7.ppc64le
perl-CPAN-Meta-Requirements-2.122-7.el7.noarch
PyQt4-4.10.1-13.el7.ppc64le
btrfs-progs-4.9.1-1.el7.ppc64le
anaconda-gui-21.48.22.121-1.el7.centos.ppc64le
libatasmart-0.19-6.el7.ppc64le
shared-desktop-ontologies-0.11.0-2.el7.noarch
libvirt-daemon-config-nwfilter-3.2.0-14.el7.ppc64le
autoconf-2.69-11.el7.noarch
gnome-terminal-3.22.1-2.el7.ppc64le
python-cups-1.9.63-6.el7.ppc64le
intltool-0.50.2-7.el7.noarch
glibc-headers-2.17-196.el7.ppc64le
kdesdk-common-4.10.5-6.el7.noarch
libvirt-daemon-driver-secret-3.2.0-14.el7.ppc64le
perl-Locale-Maketext-Simple-0.21-292.el7.noarch
gnome-keyring-3.20.0-3.el7.ppc64le
python-sss-murmur-1.15.2-50.el7.ppc64le
vim-enhanced-7.4.160-2.el7.ppc64le
perl-ExtUtils-MakeMaker-6.68-3.el7.noarch
emacs-filesystem-24.3-19.el7_3.noarch
libvncserver-0.9.9-9.el7_0.1.ppc64le
perl-Object-Accessor-0.42-292.el7.noarch
gnome-desktop3-3.22.2-2.el7.ppc64le
python-backports-1.0-8.el7.ppc64le
evolution-help-3.22.6-10.el7.noarch
systemtap-devel-3.1-3.el7.ppc64le
langtable-0.0.31-3.el7.noarch
geocode-glib-3.20.1-1.el7.ppc64le
perl-Compress-Raw-Bzip2-2.061-3.el7.ppc64le
pygtk2-libglade-2.24.0-9.el7.ppc64le
python-urllib3-1.10.2-3.el7.noarch
orca-3.6.3-4.el7.ppc64le
perl-File-Fetch-0.42-2.el7.noarch
latencytop-common-0.5-13.el7.ppc64le
geoclue2-libs-2.4.5-1.el7.ppc64le
perl-Module-Loaded-0.08-292.el7.noarch
webkitgtk4-2.14.7-2.el7.ppc64le
python-paste-1.7.5.1-9.20111221hg1498.el7.noarch
totem-nautilus-3.22.1-1.el7.ppc64le
libtool-2.4.2-22.el7_3.ppc64le
smc-fonts-common-6.0-7.el7.noarch
libnice-0.1.3-4.el7.ppc64le
libdvdnav-5.0.3-1.el7.ppc64le
folks-0.11.3-1.el7.ppc64le
python-ipaddr-2.1.11-1.el7.noarch
xorg-x11-utils-7.5-22.el7.ppc64le
oxygen-icon-theme-4.10.5-2.el7.noarch
libkkc-common-0.3.1-9.el7.noarch
libgovirt-0.3.3-5.el7.ppc64le
boost-timer-1.53.0-27.el7.ppc64le
gnome-packagekit-common-3.22.1-2.el7.ppc64le
javapackages-tools-3.4.1-11.el7.noarch
sane-backends-devel-1.0.24-9.el7.ppc64le
konkretcmpi-0.9.1-5.el7.ppc64le
perl-srpm-macros-1-8.el7.noarch
chrony-3.1-2.el7.centos.ppc64le
fuse-2.9.2-8.el7.ppc64le
evolution-3.22.6-10.el7.ppc64le
python-urwid-1.1.1-3.el7.ppc64le
shotwell-0.24.5-1.el7.ppc64le
libreport-web-2.1.11-38.el7.centos.ppc64le
glibc-2.17-196.el7.ppc64le
usb_modeswitch-data-20160612-2.el7.noarch
patch-2.7.1-8.el7.ppc64le
file-roller-3.22.3-1.el7.ppc64le
python-netaddr-0.7.5-7.el7.noarch
ibus-table-chinese-1.4.6-3.el7.noarch
libreport-plugin-reportuploader-2.1.11-38.el7.centos.ppc64le
pcre-8.32-17.el7.ppc64le
libvirt-daemon-driver-network-3.2.0-14.el7.ppc64le
cyrus-sasl-plain-2.1.26-21.el7.ppc64le
glade-libs-3.20.0-1.el7.ppc64le
python-markupsafe-0.11-10.el7.ppc64le
kdenetwork-devel-4.10.5-8.el7_0.noarch
libreport-plugin-ureport-2.1.11-38.el7.centos.ppc64le
dbus-libs-1.6.12-17.el7.ppc64le
alsa-firmware-1.0.28-2.el7.noarch
mozjs17-17.0.0-19.el7.ppc64le
avahi-ui-gtk3-0.6.31-17.el7.ppc64le
python-cffi-1.6.0-5.el7.ppc64le
xdg-user-dirs-gtk-0.10-4.el7.ppc64le
gavl-1.4.0-4.el7.ppc64le
libjpeg-turbo-1.2.90-5.el7.ppc64le
device-mapper-multipath-0.4.9-111.el7.ppc64le
libcdio-0.92-1.el7.ppc64le
pulseaudio-module-bluetooth-10.0-3.el7.ppc64le
pytalloc-2.1.9-1.el7.ppc64le
ibus-sayura-1.3.2-3.el7.ppc64le
checkpolicy-2.5-4.el7.ppc64le
libICE-1.0.9-9.el7.ppc64le
libvirt-daemon-driver-interface-3.2.0-14.el7.ppc64le
libunistring-0.9.3-9.el7.ppc64le
libXScrnSaver-devel-1.2.2-6.1.el7.ppc64le
openlmi-python-base-0.5.0-4.el7.noarch
PyQt4-devel-4.10.1-13.el7.ppc64le
libndp-1.2-7.el7.ppc64le
libxml2-2.9.1-6.el7_2.3.ppc64le
sssd-krb5-common-1.15.2-50.el7.ppc64le
ncurses-5.9-13.20130511.el7.ppc64le
icedax-1.1.11-23.el7.ppc64le
libmsn-4.2.1-7.el7.ppc64le
evolution-data-server-devel-3.22.7-6.el7.ppc64le
poppler-0.26.5-16.el7.ppc64le
sed-4.2.2-5.el7.ppc64le
sssd-ldap-1.15.2-50.el7.ppc64le
fontconfig-2.10.95-11.el7.ppc64le
pinentry-qt-0.8.1-17.el7.ppc64le
cyrus-sasl-scram-2.1.26-21.el7.ppc64le
paps-0.6.8-28.el7.1.ppc64le
libyaml-0.1.4-11.el7_0.ppc64le
libgpg-error-1.12-3.el7.ppc64le
sgpio-1.2.0.10-13.el7.ppc64le
alsa-lib-1.1.3-3.el7.ppc64le
gutenprint-5.2.9-18.el7.ppc64le
openslp-2.0.0-6.el7.ppc64le
ruby-irb-2.0.0.648-30.el7.noarch
libgcrypt-1.5.3-14.el7.ppc64le
python-blivet-0.61.15.65-1.el7.noarch
gzip-1.5-9.el7.ppc64le
xorg-x11-drv-void-1.4.1-2.el7.ppc64le
nss-pem-1.0.3-4.el7.ppc64le
rubygem-rdoc-4.0.0-30.el7.noarch
libcap-ng-0.7.5-4.el7.ppc64le
rpm-build-libs-4.11.3-25.el7.ppc64le
shared-mime-info-1.8-3.el7.ppc64le
xorg-x11-drv-v4l-0.2.0-47.el7.ppc64le
nss-tools-3.28.4-8.el7.ppc64le
libsemanage-2.5-8.el7.ppc64le
libxcb-1.12-1.el7.ppc64le
flatpak-0.8.7-1.el7.ppc64le
gstreamer1-1.10.4-2.el7.ppc64le
xorg-x11-drv-nouveau-1.0.13-3.el7.ppc64le
sgml-common-0.6.3-39.el7.noarch
util-linux-2.23.2-43.el7.ppc64le
libtdb-1.3.12-2.el7.ppc64le
rpm-devel-4.11.3-25.el7.ppc64le
gobject-introspection-1.50.0-1.el7.ppc64le
qdox-1.12.1-10.el7.noarch
libteam-1.25-5.el7.ppc64le
openssh-clients-7.4p1-11.el7.ppc64le
libattr-2.4.46-12.el7.ppc64le
python-meh-0.25.2-1.el7.noarch
avahi-glib-0.6.31-17.el7.ppc64le
rhino-1.7R5-1.el7.noarch
perl-Pod-Checker-1.60-2.el7.noarch
rarian-0.8.1-11.el7.ppc64le
gmp-6.0.0-15.el7.ppc64le
createrepo-0.9.9-28.el7.noarch
python-gobject-base-3.22.0-1.el7.ppc64le
telepathy-haze-0.8.0-1.el7.ppc64le
perl-Version-Requirements-0.101022-244.el7.noarch
tog-pegasus-2.14.1-5.el7.ppc64le
lua-5.1.4-15.el7.ppc64le
libburn-1.2.8-4.el7.ppc64le
openssl-1.0.2k-8.el7.ppc64le
dleyna-server-0.5.0-1.el7.ppc64le
perl-IO-HTML-1.00-2.el7.noarch
libsemanage-python-2.5-8.el7.ppc64le
libidn-1.28-4.el7.ppc64le
nss-devel-3.28.4-8.el7.ppc64le
net-snmp-libs-5.7.2-28.el7.ppc64le
paps-libs-0.6.8-28.el7.1.ppc64le
perl-DBIx-Simple-1.35-7.el7.noarch
lzo-minilzo-2.06-8.el7.ppc64le
libref_array-0.1.5-27.el7.ppc64le
libX11-1.6.5-1.el7.ppc64le
xdg-utils-1.1.0-0.17.20120809git.el7.noarch
harfbuzz-devel-1.3.2-1.el7.ppc64le
perl-CGI-3.63-4.el7.noarch
libini_config-1.3.0-27.el7.ppc64le
xmlrpc-c-1.32.5-1905.svn2451.el7.ppc64le
libXfixes-5.0.3-1.el7.ppc64le
glibmm24-2.50.0-1.el7.ppc64le
webkitgtk4-devel-2.14.7-2.el7.ppc64le
perl-Devel-Symdump-2.10-2.el7.noarch
libpipeline-1.2.3-3.el7.ppc64le
mpfr-3.1.1-4.el7.ppc64le
libXrandr-1.5.1-2.el7.ppc64le
cyrus-sasl-gssapi-2.1.26-21.el7.ppc64le
gtk2-devel-2.24.31-1.el7.ppc64le
perl-URI-1.60-9.el7.noarch
kpartx-0.4.9-111.el7.ppc64le
file-libs-5.11-33.el7.ppc64le
libXext-devel-1.3.3-3.el7.ppc64le
libSM-devel-1.2.2-2.el7.ppc64le
qt-devel-4.8.5-13.el7.ppc64le
perl-HTTP-Date-6.02-8.el7.noarch
dracut-033-502.el7.ppc64le
libtool-ltdl-2.4.2-22.el7_3.ppc64le
libcanberra-0.30-5.el7.ppc64le
python-enum34-1.0.4-1.el7.noarch
libxkbfile-devel-1.0.9-3.el7.ppc64le
perl-HTTP-Cookies-6.01-5.el7.noarch
polkit-0.112-12.el7_3.ppc64le
libtheora-1.1.1-8.el7.ppc64le
libXpm-3.5.12-1.el7.ppc64le
libevent-2.0.21-4.el7.ppc64le
ibus-gtk2-1.5.3-13.el7.ppc64le
kdelibs-common-4.14.8-6.el7_3.ppc64le
systemd-sysv-219-42.el7.ppc64le
diffutils-3.3-4.el7.ppc64le
libXv-1.0.11-1.el7.ppc64le
pam-1.1.8-18.el7.ppc64le
imsettings-gsettings-1.6.3-9.el7.ppc64le
perl-YAML-Tiny-1.51-6.el7.noarch
GConf2-3.2.6-8.el7.ppc64le
libtasn1-4.10-1.el7.ppc64le
libxkbfile-1.0.9-3.el7.ppc64le
gettext-libs-0.19.8.1-2.el7.ppc64le
kdelibs-ktexteditor-4.14.8-6.el7_3.ppc64le
perl-Env-1.04-2.el7.noarch
libpciaccess-0.13.4-3.el7_3.ppc64le
nss-softokn-3.28.3-6.el7.ppc64le
pango-1.40.4-1.el7.ppc64le
telepathy-logger-0.8.0-5.el7.ppc64le
nepomuk-core-4.10.5-5.el7.ppc64le
perl-Net-HTTP-6.06-2.el7.noarch
samba-common-4.6.2-8.el7.noarch
libsigc++20-2.10.0-1.el7.ppc64le
cogl-1.22.2-1.el7.ppc64le
pcre-devel-8.32-17.el7.ppc64le
kdenetwork-kopete-libs-4.10.5-8.el7_0.ppc64le
icoutils-0.31.3-1.el7_3.ppc64le
pyparted-3.9-13.el7.ppc64le
apr-util-1.5.2-6.el7.ppc64le
giflib-4.1.6-9.el7.ppc64le
expat-devel-2.1.0-10.el7_3.ppc64le
kdesdk-okteta-4.10.5-6.el7.ppc64le
papi-5.2.0-23.el7.ppc64le
abrt-python-2.1.11-48.el7.centos.ppc64le
lzo-2.06-8.el7.ppc64le
java-1.8.0-openjdk-1.8.0.131-11.b12.el7.ppc64le
libffi-devel-3.0.13-18.el7.ppc64le
kwin-libs-4.11.19-8.el7.ppc64le
xorg-x11-font-utils-7.5-20.el7.ppc64le
iscsi-initiator-utils-iscsiuio-6.2.0.874-4.el7.ppc64le
file-5.11-33.el7.ppc64le
libXft-devel-2.3.2-2.el7.ppc64le
libipa_hbac-1.15.2-50.el7.ppc64le
kwin-gles-libs-4.11.19-8.el7.ppc64le
libsamplerate-0.1.8-6.el7.ppc64le
cronie-1.4.11-17.el7.ppc64le
xml-common-0.6.3-39.el7.noarch
ghostscript-9.07-28.el7.ppc64le
libpinyin-data-0.9.93-4.el7.ppc64le
kde-runtime-libs-4.10.5-8.el7.ppc64le
ipset-6.29-1.el7.ppc64le
plymouth-0.8.9-0.28.20140113.el7.centos.ppc64le
taglib-1.8-7.20130218git.el7.ppc64le
at-spi2-core-2.22.0-1.el7.ppc64le
xfsprogs-4.5.0-12.el7.ppc64le
kdepim-runtime-4.10.5-3.el7.ppc64le
libusbmuxd-1.0.10-5.el7.ppc64le
libstoragemgmt-python-1.4.0-3.el7.noarch
libseccomp-2.3.1-3.el7.ppc64le
gstreamer1-plugins-good-1.10.4-2.el7.ppc64le
pyusb-1.0.0-0.11.b1.el7.noarch
nepomuk-core-devel-4.10.5-5.el7.ppc64le
libofa-0.9.3-24.el7.ppc64le
device-mapper-event-1.02.140-8.el7.ppc64le
librtas-2.0.1-1.el7.ppc64le
libXcomposite-devel-0.4.4-4.1.el7.ppc64le
audit-libs-python-2.7.6-3.el7.ppc64le
okular-libs-4.10.5-4.el7.ppc64le
gdisk-0.8.6-5.el7.ppc64le
libibumad-13-7.el7.ppc64le
libsndfile-1.0.25-10.el7.ppc64le
libXxf86misc-1.0.3-7.1.el7.ppc64le
pyparsing-1.5.6-9.el7.noarch
kdesdk-kmtrace-libs-4.10.5-6.el7.ppc64le
attr-2.4.46-12.el7.ppc64le
rpcbind-0.2.0-42.el7.ppc64le
slang-2.2.4-11.el7.ppc64le
gtk2-2.24.31-1.el7.ppc64le
libssh2-1.4.3-10.el7_2.1.ppc64le
kdesdk-kompare-4.10.5-6.el7.ppc64le
openssl-devel-1.0.2k-8.el7.ppc64le
bluez-5.44-2.el7.ppc64le
boost-thread-1.53.0-27.el7.ppc64le
clutter-gtk-1.8.2-1.el7.ppc64le
soundtouch-1.4.0-9.el7.ppc64le
ibus-table-1.5.0-5.el7.noarch
setools-libs-3.3.8-1.1.el7.ppc64le
ppp-2.4.5-33.el7.ppc64le
libvpd-2.2.5-1.el7.ppc64le
clutter-gst3-3.0.22-1.el7.ppc64le
boost-test-1.53.0-27.el7.ppc64le
libgphoto2-2.5.2-5.el7.ppc64le
libcurl-7.29.0-42.el7.ppc64le
libmtp-1.1.6-5.el7.ppc64le
unzip-6.0-16.el7.ppc64le
vte291-0.46.2-1.el7.ppc64le
boost-random-1.53.0-27.el7.ppc64le
hplip-libs-3.15.9-3.el7.ppc64le
openldap-2.4.44-5.el7.ppc64le
rsync-3.0.9-18.el7.ppc64le
psmisc-22.20-15.el7.ppc64le
compat-cheese314-3.14.2-1.el7.ppc64le
dosfstools-3.0.20-9.el7.ppc64le
sane-backends-drivers-cameras-1.0.24-9.el7.ppc64le
kde-filesystem-4-47.el7.ppc64le
cryptsetup-1.7.4-3.el7.ppc64le
boost-program-options-1.53.0-27.el7.ppc64le
libgnomekbd-3.22.0.1-1.el7.ppc64le
libsrtp-1.4.4-10.20101004cvs.el7.ppc64le
speech-dispatcher-python-0.7.1-15.el7.ppc64le
raptor2-2.0.9-3.el7.ppc64le
grub2-tools-2.02-0.64.el7.centos.ppc64le
libiodbc-3.52.7-7.el7.ppc64le
gtk-vnc2-0.7.0-2.el7.ppc64le
libdv-1.0.0-17.el7.ppc64le
libXxf86dga-1.1.4-2.1.el7.ppc64le
python-deltarpm-3.6-3.el7.ppc64le
ibacm-13-7.el7.ppc64le
opus-1.0.2-6.el7.ppc64le
system-config-printer-libs-1.4.1-19.el7.noarch
libthai-0.1.14-9.el7.ppc64le
tracker-1.10.5-4.el7.ppc64le
shared-desktop-ontologies-devel-0.11.0-2.el7.noarch
qt-4.8.5-13.el7.ppc64le
pcre2-10.23-2.el7.ppc64le
gtkspell3-3.0.3-4.el7.ppc64le
libevdev-1.5.6-1.el7.ppc64le
totem-3.22.1-1.el7.ppc64le
virtuoso-opensource-6.1.6-6.el7.ppc64le
strigi-libs-0.7.7-12.20120626.el7.ppc64le
boost-wave-1.53.0-27.el7.ppc64le
libXmu-devel-1.1.2-2.el7.ppc64le
iproute-3.10.0-87.el7.ppc64le
firewalld-0.4.4.4-6.el7.noarch
color-filesystem-1-13.el7.noarch
automoc-1.0-0.20.rc3.el7.ppc64le
perl-Pod-Perldoc-3.20-4.el7.noarch
poppler-utils-0.26.5-16.el7.ppc64le
boost-1.53.0-27.el7.ppc64le
pcp-libs-3.11.8-7.el7.ppc64le
pykickstart-1.99.66.12-1.el7.noarch
openldap-devel-2.4.44-5.el7.ppc64le
perl-Encode-2.51-7.el7.ppc64le
python-gobject-3.22.0-1.el7.ppc64le
krb5-workstation-1.15.1-8.el7.ppc64le
libwacom-0.24-1.el7.ppc64le
isomd5sum-1.0.10-5.el7.ppc64le
abrt-addon-vmcore-2.1.11-48.el7.centos.ppc64le
perl-constant-1.27-2.el7.noarch
compat-libcogl12-1.14.0-3.el7.ppc64le
python-libipa_hbac-1.15.2-50.el7.ppc64le
gdm-3.22.3-11.el7.ppc64le
gstreamer1-devel-1.10.4-2.el7.ppc64le
abrt-retrace-client-2.1.11-48.el7.centos.ppc64le
perl-Exporter-5.68-3.el7.noarch
libXpm-devel-3.5.12-1.el7.ppc64le
python2-pyasn1-modules-0.1.9-7.el7.noarch
gnome-shell-extension-alternate-tab-3.22.2-10.el7.noarch
ttmkfdir-3.0.9-42.el7.ppc64le
samba-libs-4.6.2-8.el7.ppc64le
perl-File-Temp-0.23.01-3.el7.noarch
brltty-4.5-15.el7.ppc64le
sos-3.4-6.el7.centos.noarch
gnome-shell-extension-window-list-3.22.2-10.el7.noarch
clucene-core-2.3.3.4-11.el7.ppc64le
osinfo-db-20170423-2.el7.noarch
perl-macros-5.16.3-292.el7.ppc64le
python-brlapi-0.6.0-15.el7.ppc64le
libselinux-devel-2.5-11.el7.ppc64le
quota-nls-4.01-14.el7.noarch
elfutils-libs-0.168-8.el7.ppc64le
oddjob-mkhomedir-0.31.5-4.el7.ppc64le
perl-5.16.3-292.el7.ppc64le
opal-3.10.10-4.el7.ppc64le
gstreamer-tools-0.10.36-7.el7.ppc64le
libvirt-daemon-driver-storage-scsi-3.2.0-14.el7.ppc64le
satyr-0.13-14.el7.ppc64le
polkit-docs-0.112-12.el7_3.noarch
perl-Compress-Raw-Zlib-2.061-4.el7.ppc64le
compat-libcogl-pango12-1.14.0-3.el7.ppc64le
alsa-lib-devel-1.1.3-3.el7.ppc64le
libvirt-daemon-driver-storage-mpath-3.2.0-14.el7.ppc64le
NetworkManager-libnm-1.8.0-9.el7.ppc64le
tcsh-6.18.01-15.el7.ppc64le
perl-XML-Dumper-0.81-17.el7.noarch
libpfm-devel-4.7.0-4.el7.ppc64le
unixODBC-devel-2.3.1-11.el7.ppc64le
rcs-5.9.0-5.el7.ppc64le
ltrace-0.7.91-14.el7.ppc64le
ed-1.9-4.el7.ppc64le
wqy-zenhei-fonts-0.9.46-11.el7.noarch
lohit-bengali-fonts-2.5.3-4.el7.noarch
paratype-pt-sans-fonts-20101909-3.el7.noarch
paktype-naskh-basic-fonts-4.1-3.el7.noarch
lklug-fonts-0.6-10.20090803cvs.el7.noarch
lohit-kannada-fonts-2.5.3-3.el7.noarch
cjkuni-uming-fonts-0.2.20080216.1-53.el7.noarch
vlgothic-fonts-20130607-2.el7.noarch
lohit-telugu-fonts-2.5.3-3.el7.noarch
gnu-free-serif-fonts-20120503-8.el7.noarch
jomolhari-fonts-0.003-17.el7.noarch
scl-utils-20130529-17.el7_1.ppc64le
diffstat-1.57-4.el7.ppc64le
xorg-x11-drivers-7.7-6.el7.ppc64le
setserial-2.17-33.el7.ppc64le
vinagre-3.22.0-8.el7.ppc64le
man-pages-overrides-7.4.3-1.el7.ppc64le
gedit-3.22.0-3.el7.ppc64le
iwl5150-firmware-8.24.2.2-56.el7.noarch
gnome-contacts-3.22.1-1.el7.ppc64le
words-3.0-22.el7.noarch
setroubleshoot-3.2.28-3.el7.ppc64le
iwl7265-firmware-22.0.7.0-56.el7.noarch
gnome-system-monitor-3.22.2-2.el7.ppc64le
man-pages-3.53-5.el7.noarch
librsvg2-devel-2.40.16-1.el7.ppc64le
gpg-pubkey-f4a80eb5-53a7ff4b
system-config-printer-udev-1.4.1-19.el7.ppc64le
gnome-calculator-3.22.3-1.el7.ppc64le
libgcc-4.8.5-16.el7_4.1.ppc64le
gvfs-afp-1.30.4-3.el7.ppc64le
cpp-4.8.5-16.el7_4.1.ppc64le
latencytop-0.5-13.el7.ppc64le
gcc-c++-4.8.5-16.el7_4.1.ppc64le
gtk3-immodule-xim-3.22.10-4.el7.ppc64le
mousetweaks-3.12.0-1.el7.ppc64le
qt3-MySQL-3.3.8b-51.el7.ppc64le
xvattr-1.3-27.el7.ppc64le
yum-langpacks-0.4.2-7.el7.noarch
rpm-build-4.11.3-25.el7.ppc64le
virt-install-1.4.1-7.el7.noarch
samba-client-4.6.2-8.el7.ppc64le
qt-odbc-4.8.5-13.el7.ppc64le
NetworkManager-tui-1.8.0-9.el7.ppc64le
avahi-0.6.31-17.el7.ppc64le
httpd-manual-2.4.6-67.el7.centos.noarch
PackageKit-gstreamer-plugin-1.1.5-1.el7.centos.ppc64le
tuned-2.8.0-5.el7.noarch
qemu-guest-agent-2.8.0-2.el7.ppc64le
smartmontools-6.2-8.el7.ppc64le
openssh-server-7.4p1-11.el7.ppc64le
dracut-config-rescue-033-502.el7.ppc64le
openlmi-providers-devel-0.5.0-4.el7.ppc64le
oprofile-0.9.9-22.el7.ppc64le
perl-homedir-1.008010-4.el7.noarch
libgudev1-devel-219-42.el7.ppc64le
sudo-1.8.19p2-10.el7.ppc64le
libacl-devel-2.2.51-12.el7.ppc64le
perl-XML-Twig-3.44-2.el7.noarch
crash-trace-command-2.0-12.el7.ppc64le
crash-gcore-command-1.3.1-0.el7.ppc64le
libgnome-keyring-devel-3.12.0-1.el7.ppc64le
binutils-devel-2.25.1-31.base.el7.ppc64le
libcap-ng-devel-0.7.5-4.el7.ppc64le
bash-completion-2.1-6.el7.noarch
dstat-0.7.2-12.el7.noarch
wget-1.14-15.el7.ppc64le
gpg-pubkey-352c64e5-52ae6884
certmonger-0.78.4-3.el7.ppc64le
libatomic-static-4.8.5-16.el7.ppc64le
libicu-devel-50.1.2-15.el7.ppc64le
caribou-0.4.21-1.el7.ppc64le
grub2-common-2.02-0.64.el7.centos.noarch
plymouth-graphics-libs-0.8.9-0.28.20140113.el7.centos.ppc64le
kernel-3.10.0-693.el7.ppc64le
perl-Perl-OSType-1.003-3.el7.noarch
libvirt-daemon-3.2.0-14.el7.ppc64le
ledmon-0.80-2.el7.ppc64le
gupnp-av-0.12.10-1.el7.ppc64le
cups-1.6.3-29.el7.ppc64le
mozilla-filesystem-1.9-11.el7.ppc64le
libqmi-utils-1.16.0-1.el7.ppc64le
anaconda-core-21.48.22.121-1.el7.centos.ppc64le
perl-JSON-PP-2.27202-2.el7.noarch
libvirt-client-3.2.0-14.el7.ppc64le
numactl-devel-2.0.9-6.el7_2.ppc64le
cups-client-1.6.3-29.el7.ppc64le
mutter-3.22.3-11.el7.ppc64le
ipa-common-4.5.0-20.el7.centos.noarch
glibc-devel-2.17-196.el7.ppc64le
firefox-52.2.0-2.el7.centos.ppc64le
perl-Params-Check-0.38-2.el7.noarch
virt-manager-common-1.4.1-7.el7.noarch
indent-2.2.11-13.el7.ppc64le
python-linux-procfs-0.4.9-3.el7.noarch
gnome-session-3.22.3-4.el7.ppc64le
adwaita-cursor-theme-3.22.0-1.el7.noarch
perl-Archive-Extract-0.68-3.el7.noarch
gnome-initial-setup-3.22.1-4.el7.ppc64le
perl-IO-Compress-2.061-2.el7.noarch
geoclue2-2.4.5-1.el7.ppc64le
khmeros-base-fonts-5.0-17.el7.noarch
python-tempita-0.5.1-6.el7.noarch
gnome-online-accounts-3.22.5-1.el7.ppc64le
nhn-nanum-fonts-common-3.020-9.el7.noarch
gobject-introspection-devel-1.50.0-1.el7.ppc64le
rhythmbox-3.4.1-1.el7.ppc64le
libavc1394-0.5.3-14.el7.ppc64le
telepathy-gabble-0.18.1-4.el7.ppc64le
stix-fonts-1.1.0-5.el7.noarch
python-javapackages-3.4.1-11.el7.noarch
gnome-packagekit-installer-3.22.1-2.el7.ppc64le
mesa-filesystem-17.0.1-6.20170307.el7.ppc64le
konkretcmpi-python-0.9.1-5.el7.ppc64le
libsane-hpaio-3.15.9-3.el7.ppc64le
copy-jdk-configs-2.2-3.el7.noarch
usb_modeswitch-2.4.0-5.el7.ppc64le
nhn-nanum-gothic-fonts-3.020-9.el7.noarch
pytz-2016.10-2.el7.noarch
librsvg2-tools-2.40.16-1.el7.ppc64le
bash-4.2.46-28.el7.ppc64le
libreport-plugin-bugzilla-2.1.11-38.el7.centos.ppc64le
kde-workspace-devel-4.11.19-8.el7.ppc64le
libdb-devel-5.3.21-20.el7.ppc64le
fxload-2002_04_11-16.el7.ppc64le
google-crosextra-caladea-fonts-1.002-0.4.20130214.el7.noarch
python-pycparser-2.14-1.el7.noarch
libtimezonemap-0.4.4-1.el7.ppc64le
libcom_err-1.42.9-10.el7.ppc64le
frei0r-plugins-1.3-13.el7.ppc64le
ibus-m17n-1.3.4-13.el7.ppc64le
libcdio-paranoia-10.2+0.90-11.el7.ppc64le
netcf-libs-0.2.8-4.el7.ppc64le
lohit-punjabi-fonts-2.5.3-2.el7.noarch
cmpi-bindings-pywbem-0.9.5-6.el7.ppc64le
at-spi2-core-devel-2.22.0-1.el7.ppc64le
xz-libs-5.2.2-1.el7.ppc64le
libasyncns-0.8-7.el7.ppc64le
libcanberra-devel-0.30-5.el7.ppc64le
coreutils-8.22-18.el7.ppc64le
sssd-ad-1.15.2-50.el7.ppc64le
doxygen-1.8.5-3.el7.ppc64le
httpd-tools-2.4.6-67.el7.centos.ppc64le
libspectre-0.2.8-1.el7.ppc64le
cyrus-sasl-lib-2.1.26-21.el7.ppc64le
rubygem-bigdecimal-1.2.0-30.el7.ppc64le
icedtea-web-1.6.2-4.el7.ppc64le
libarchive-3.1.2-10.el7_2.ppc64le
python-pyblock-0.53-6.el7.ppc64le
byacc-1.9.20130304-3.el7.ppc64le
wodim-1.1.11-23.el7.ppc64le
xorg-x11-drv-qxl-0.1.5-3.el7.ppc64le
elfutils-libelf-0.168-8.el7.ppc64le
rubygem-thor-0.19.1-1.el7.noarch
file-roller-nautilus-3.22.3-1.el7.ppc64le
pkgconfig-0.27.1-4.el7.ppc64le
setroubleshoot-server-3.2.28-3.el7.ppc64le
iwl2030-firmware-18.168.6.1-56.el7.noarch
mailx-12.5-16.el7.ppc64le
xorg-x11-drv-fbdev-0.4.3-25.el7.ppc64le
libtevent-0.9.31-1.el7.ppc64le
policycoreutils-2.5-17.1.el7.ppc64le
java-1.7.0-openjdk-devel-1.7.0.141-2.6.10.5.el7.ppc64le
gsettings-desktop-schemas-3.22.0-1.el7.ppc64le
yum-3.4.3-154.el7.centos.noarch
iwl6000g2a-firmware-17.168.5.3-56.el7.noarch
perl-B-Lint-1.17-3.el7.noarch
gstreamer-plugins-bad-free-0.10.23-23.el7.ppc64le
libvorbis-1.3.3-8.el7.ppc64le
rarian-compat-0.8.1-11.el7.ppc64le
abrt-desktop-2.1.11-48.el7.centos.ppc64le
desktop-file-utils-0.23-1.el7.ppc64le
libiptcdata-1.0.4-11.el7.ppc64le
gpg-pubkey-f533f4fa-56585169
perl-DB_File-1.830-6.el7.ppc64le
compat-poppler022-qt-0.22.5-4.el7.ppc64le
libldb-1.1.29-1.el7.ppc64le
http-parser-2.7.1-1.el7.ppc64le
NetworkManager-libreswan-gnome-1.2.4-2.el7.ppc64le
centos-logos-70.0.6-3.el7.centos.noarch
libX11-common-1.6.5-1.el7.noarch
libstdc++-4.8.5-16.el7_4.1.ppc64le
perl-FCGI-0.74-8.el7.ppc64le
pango-devel-1.40.4-1.el7.ppc64le
libbasicobjects-0.1.1-27.el7.ppc64le
gtk2-immodule-xim-2.24.31-1.el7.ppc64le
libgnome-keyring-3.12.0-1.el7.ppc64le
libXrender-0.9.10-1.el7.ppc64le
libitm-devel-4.8.5-16.el7_4.1.ppc64le
perl-Business-ISBN-2.06-2.el7.noarch
freeglut-2.8.1-3.el7.ppc64le
device-mapper-1.02.140-8.el7.ppc64le
xdg-desktop-portal-gtk-0.5-1.el7.ppc64le
libudisks2-2.1.2-6.el7.ppc64le
pulseaudio-libs-10.0-3.el7.ppc64le
perl-HTTP-Daemon-6.01-5.el7.noarch
xorg-x11-xauth-1.0.9-1.el7.ppc64le
nettle-2.7.1-8.el7.ppc64le
polkit-pkla-compat-0.1-4.el7.ppc64le
startup-notification-devel-0.12-8.el7.ppc64le
genisoimage-1.1.11-23.el7.ppc64le
dbus-x11-1.6.12-17.el7.ppc64le
perl-Text-Soundex-3.04-4.el7.ppc64le
xdg-user-dirs-0.15-4.el7.ppc64le
jansson-2.10-1.el7.ppc64le
NetworkManager-glib-1.8.0-9.el7.ppc64le
rpm-sign-4.11.3-25.el7.ppc64le
gettext-0.19.8.1-2.el7.ppc64le
cairo-1.14.8-2.el7.ppc64le
perl-IO-Socket-SSL-1.94-6.el7.noarch
kdepimlibs-kxmlrpcclient-4.10.5-4.el7.ppc64le
libplist-1.12-3.el7.ppc64le
libwbclient-4.6.2-8.el7.ppc64le
cgdcbxd-1.0.2-7.el7.ppc64le
glib2-devel-2.50.3-3.el7.ppc64le
gdk-pixbuf2-devel-2.36.5-1.el7.ppc64le
theora-tools-1.1.1-8.el7.ppc64le
libkipi-4.10.5-3.el7.ppc64le
libmng-1.0.10-14.el7.ppc64le
abrt-addon-kerneloops-2.1.11-48.el7.centos.ppc64le
grub2-2.02-0.64.el7.centos.ppc64le
xz-devel-5.2.2-1.el7.ppc64le
xorg-x11-xkb-utils-7.7-12.el7.ppc64le
libverto-tevent-0.2.5-4.el7.ppc64le
libkdcraw-devel-4.10.5-4.el7.ppc64le
bzip2-1.0.6-13.el7.ppc64le
iputils-20160308-10.el7.ppc64le
cifs-utils-6.2-10.el7.ppc64le
libpinyin-0.9.93-4.el7.ppc64le
libao-1.1.0-8.el7.ppc64le
gdbm-devel-1.10-8.el7.ppc64le
kdepim-libs-4.10.5-6.el7.ppc64le
libxshmfence-1.2-1.el7.ppc64le
libstoragemgmt-1.4.0-3.el7.ppc64le
psacct-6.6.1-13.el7.ppc64le
pyliblzma-0.5.3-11.el7.ppc64le
libXcursor-devel-1.1.14-8.el7.ppc64le
hesiod-3.2.1-3.el7.ppc64le
okular-devel-4.10.5-4.el7.ppc64le
gsm-1.0.13-11.el7.ppc64le
telepathy-mission-control-5.16.3-3.el7.ppc64le
rng-tools-5-11.el7.ppc64le
python-chardet-2.2.1-1.el7_1.noarch
libcanberra-gtk3-0.30-5.el7.ppc64le
krb5-devel-1.15.1-8.el7.ppc64le
kdesdk-kompare-devel-4.10.5-6.el7.ppc64le
unixODBC-2.3.1-11.el7.ppc64le
dbus-devel-1.6.12-17.el7.ppc64le
kpatch-0.4.0-1.el7.noarch
graphite2-1.3.6-1.el7_2.ppc64le
nautilus-extensions-3.22.3-3.el7.ppc64le
libdb-utils-5.3.21-20.el7.ppc64le
sane-backends-libs-1.0.24-9.el7.ppc64le
zip-3.0-11.el7.ppc64le
mdadm-4.0-5.el7.ppc64le
memstomp-0.1.4-11.el7.ppc64le
libconfig-1.4.9-5.el7.ppc64le
clutter-gst2-2.0.18-1.el7.ppc64le
postgresql-libs-9.2.21-1.el7.ppc64le
gsound-1.0.2-2.el7.ppc64le
ilmbase-1.0.3-7.el7.ppc64le
udisks2-2.1.2-6.el7.ppc64le
perl-core-5.16.3-292.el7.ppc64le
pcsc-lite-libs-1.8.8-6.el7.ppc64le
gvnc-0.7.0-2.el7.ppc64le
qemu-img-1.5.3-141.el7.ppc64le
libappstream-glib-0.6.10-1.el7.ppc64le
sg3_utils-libs-1.37-12.el7.ppc64le
librdmacm-13-7.el7.ppc64le
adcli-0.8.1-3.el7.ppc64le
libnfnetlink-1.0.1-4.el7.ppc64le
colord-gtk-0.1.25-4.el7.ppc64le
libuser-python-0.60-7.el7_1.ppc64le
libfprint-0.5.0-4.el7.ppc64le
OpenEXR-libs-1.7.1-7.el7.ppc64le
attica-devel-0.4.2-1.el7.ppc64le
papi-devel-5.2.0-23.el7.ppc64le
m17n-lib-1.6.4-14.el7.ppc64le
qimageblitz-0.0.6-7.el7.ppc64le
python-urlgrabber-3.10-8.el7.noarch
pcp-selinux-3.11.8-7.el7.ppc64le
perl-Text-ParseWords-3.29-4.el7.noarch
apr-util-devel-1.5.2-6.el7.ppc64le
readline-devel-6.2-10.el7.ppc64le
python-kitchen-1.1.1-5.el7.noarch
gnome-abrt-0.3.4-8.el7.ppc64le
check-devel-0.9.9-5.el7.ppc64le
pulseaudio-gdm-hooks-10.0-3.el7.ppc64le
perl-Scalar-List-Utils-1.27-248.el7.ppc64le
abrt-addon-ccpp-2.1.11-48.el7.centos.ppc64le
gnome-icon-theme-extras-3.12.0-1.el7.noarch
python-slip-0.4.0-2.el7.noarch
brlapi-0.6.0-15.el7.ppc64le
qpdf-libs-5.0.1-3.el7.ppc64le
yelp-xsl-3.20.1-1.el7.noarch
perl-Storable-2.45-3.el7.ppc64le
libosinfo-1.0.0-1.el7.ppc64le
libcap-devel-2.22-9.el7.ppc64le
libepoxy-devel-1.3.1-1.el7.ppc64le
festival-1.96-28.el7.ppc64le
libusbx-1.0.20-1.el7.ppc64le
libvirt-daemon-driver-storage-disk-3.2.0-14.el7.ppc64le
perl-Test-Harness-3.28-3.el7.noarch
polkit-devel-0.112-12.el7_3.ppc64le
perl-Crypt-SSLeay-0.64-5.el7.ppc64le
libverto-devel-0.2.5-4.el7.ppc64le
caribou-gtk2-module-0.4.21-1.el7.ppc64le
vim-filesystem-7.4.160-2.el7.ppc64le
procps-ng-3.3.10-16.el7.ppc64le
NetworkManager-libreswan-1.2.4-2.el7.ppc64le
perl-Module-Metadata-1.000018-2.el7.noarch
pixman-devel-0.34.0-1.el7.ppc64le
patchutils-0.3.3-4.el7.ppc64le
filesystem-3.2-21.el7.ppc64le
cups-filesystem-1.6.3-29.el7.noarch
gettext-devel-0.19.8.1-2.el7.ppc64le
usbredir-0.7.1-2.el7.ppc64le
neon-0.30.0-3.el7.ppc64le
perl-LWP-MediaTypes-6.02-2.el7.noarch
python-qrcode-core-5.0.1-1.el7.noarch
hyphen-en-2.8.6-5.el7.noarch
gnu-free-fonts-common-20120503-8.el7.noarch
gtkmm30-3.22.0-1.el7.ppc64le
initial-setup-gui-0.3.9.40-1.el7.centos.ppc64le
libhugetlbfs-2.16-12.el7.ppc64le
subversion-libs-1.7.14-10.el7.ppc64le
perl-Encode-Locale-1.03-5.el7.noarch
python-inotify-0.9.4-4.el7.noarch
nano-2.3.1-10.el7.ppc64le
mobile-broadband-provider-info-1.20170310-1.el7.noarch
adwaita-gtk2-theme-3.22.2-1.el7.ppc64le
ipa-client-4.5.0-20.el7.centos.ppc64le
perl-IPC-Cmd-0.80-4.el7.noarch
libsoup-2.56.0-3.el7.ppc64le
perl-Term-UI-0.36-2.el7.noarch
python-setuptools-0.9.8-7.el7.noarch
dejavu-sans-mono-fonts-2.33-6.el7.noarch
bind-license-9.9.4-50.el7.noarch
webkitgtk4-jsc-2.14.7-2.el7.ppc64le
firewall-config-0.4.4.4-6.el7.noarch
perl-CPAN-1.9800-292.el7.noarch
gupnp-1.0.1-1.el7.ppc64le
boost-graph-1.53.0-27.el7.ppc64le
python-perf-3.10.0-693.el7.ppc64le
overpass-fonts-2.1-1.el7.noarch
thai-scalable-fonts-common-0.5.0-7.el7.noarch
webkitgtk4-jsc-devel-2.14.7-2.el7.ppc64le
pulseaudio-module-x11-10.0-3.el7.ppc64le
marisa-0.2.4-4.el7.ppc64le
gnutls-c++-3.3.26-9.el7.ppc64le
ca-certificates-2017.2.14-71.el7.noarch
python-idna-2.4-1.el7.noarch
strace-4.12-4.el7.ppc64le
nss-softokn-freebl-3.28.3-6.el7.ppc64le
vino-3.22.0-3.el7.ppc64le
libXaw-devel-1.0.13-4.el7.ppc64le
libreport-centos-2.1.11-38.el7.centos.ppc64le
alsa-utils-1.1.3-2.el7.ppc64le
libnl3-cli-3.2.28-4.el7.ppc64le
python-iniparse-0.4-9.el7.noarch
traceroute-2.0.22-2.el7.ppc64le
libselinux-2.5-11.el7.ppc64le
keybinder3-0.3.0-1.el7.ppc64le
kdepim-devel-4.10.5-6.el7.ppc64le
pakchois-0.4-10.el7.ppc64le
cryptsetup-python-1.7.4-3.el7.ppc64le
libjpeg-turbo-devel-1.2.90-5.el7.ppc64le
python-jwcrypto-0.2.1-1.el7.noarch
lohit-malayalam-fonts-2.5.3-2.el7.noarch
libpng-1.5.13-7.el7_2.ppc64le
freerdp-plugins-1.0.2-10.el7.ppc64le
ibus-chewing-1.4.4-14.el7.ppc64le
libfastjson-0.99.4-2.el7.ppc64le
libsss_sudo-1.15.2-50.el7.ppc64le
redhat-menus-12.0.2-8.el7.noarch
bind-libs-9.9.4-50.el7.ppc64le
gnu-free-sans-fonts-20120503-8.el7.noarch
libuuid-2.23.2-43.el7.ppc64le
festival-freebsoft-utils-0.10-7.el7.noarch
unique3-devel-3.0.2-8.el7.ppc64le
compat-poppler022-0.22.5-4.el7.ppc64le
sssd-proxy-1.15.2-50.el7.ppc64le
python-2.7.5-58.el7.ppc64le
libwvstreams-4.6.1-11.el7.ppc64le
lrzsz-0.12.20-36.el7.ppc64le
sqlite-3.7.17-8.el7.ppc64le
xorg-x11-server-common-1.19.3-11.el7.ppc64le
sushi-3.21.91-1.el7.ppc64le
rubygem-psych-2.0.0-30.el7.ppc64le
gnupg2-2.0.22-4.el7.ppc64le
libmount-2.23.2-43.el7.ppc64le
nss-3.28.4-8.el7.ppc64le
iwl3160-firmware-22.0.7.0-56.el7.noarch
libnl3-3.2.28-4.el7.ppc64le
xorg-x11-drv-ati-7.7.1-3.20160928git3fc839ff.el7.ppc64le
evolution-mapi-3.22.6-1.el7.ppc64le
libservicelog-1.1.17-2.el7.ppc64le
perl-PAR-Dist-0.49-2.el7.noarch
dbus-glib-0.100-7.el7.ppc64le
docbook-style-xsl-1.78.1-3.el7.noarch
iwl100-firmware-39.31.5.1-56.el7.noarch
libxslt-1.1.28-5.el7.ppc64le
junit-4.11-8.el7.noarch
gnome-session-xsession-3.22.3-4.el7.ppc64le
selinux-policy-3.13.1-166.el7.noarch
PackageKit-1.1.5-1.el7.centos.ppc64le
zlib-devel-1.2.7-17.el7.ppc64le
perl-libxml-perl-0.08-19.el7.noarch
iwl4965-firmware-228.61.2.24-56.el7.noarch
p11-kit-0.23.5-3.el7.ppc64le
spice-gtk3-0.33-6.el7.ppc64le
pygobject3-devel-3.22.0-1.el7.ppc64le
systemtap-runtime-3.1-3.el7.ppc64le
nss-softokn-freebl-devel-3.28.3-6.el7.ppc64le
libgee-0.18.1-1.el7.ppc64le
perl-PlRPC-0.2020-14.el7.noarch
python34-libs-3.4.5-4.el7.ppc64le
json-c-0.11-4.el7_0.ppc64le
plymouth-plugin-two-step-0.8.9-0.28.20140113.el7.centos.ppc64le
gnome-font-viewer-3.22.0-1.el7.ppc64le
sssd-client-1.15.2-50.el7.ppc64le
libXext-1.3.3-3.el7.ppc64le
nspr-devel-4.13.1-1.0.el7_3.ppc64le
perl-Algorithm-Diff-1.1902-17.el7.noarch
libgomp-4.8.5-16.el7_4.1.ppc64le
tcp_wrappers-libs-7.6-77.el7.ppc64le
libgdata-devel-0.17.8-1.el7.ppc64le
gnome-screenshot-3.22.0-1.el7.ppc64le
mtdev-1.1.5-5.el7.ppc64le
mesa-libEGL-17.0.1-6.20170307.el7.ppc64le
libpng-devel-1.5.13-7.el7_2.ppc64le
perl-Digest-SHA1-2.13-9.el7.ppc64le
libdhash-0.4.3-27.el7.ppc64le
phonon-devel-4.6.0-10.el7.ppc64le
qt3-ODBC-3.3.8b-51.el7.ppc64le
systemd-219-42.el7.ppc64le
libXinerama-1.1.3-2.1.el7.ppc64le
gdb-7.6.1-100.el7.ppc64le
perl-File-Listing-6.04-7.el7.noarch
jasper-libs-1.900.1-31.el7.ppc64le
ibus-setup-1.5.3-13.el7.noarch
spice-vdagent-0.14.0-14.el7.ppc64le
PackageKit-glib-1.1.5-1.el7.centos.ppc64le
libXmu-1.1.2-2.el7.ppc64le
atkmm-2.24.2-1.el7.ppc64le
perl-Sys-Syslog-0.33-3.el7.ppc64le
libXdmcp-1.1.2-6.el7.ppc64le
kdelibs-devel-4.14.8-6.el7_3.ppc64le
targetcli-2.1.fb46-1.el7.noarch
libcgroup-0.41-13.el7.ppc64le
qt-x11-4.8.5-13.el7.ppc64le
libxcb-devel-1.12-1.el7.ppc64le
perl-HTML-Format-2.10-7.el7.noarch
libsss_idmap-1.15.2-50.el7.ppc64le
kactivities-4.10.5-3.el7.ppc64le
httpd-devel-2.4.6-67.el7.centos.ppc64le
abrt-2.1.11-48.el7.centos.ppc64le
java-1.7.0-openjdk-headless-1.7.0.141-2.6.10.5.el7.ppc64le
apr-devel-1.4.8-3.el7.ppc64le
cdparanoia-10.2-17.el7.ppc64le
libpcap-1.5.3-9.el7.ppc64le
libkworkspace-4.11.19-8.el7.ppc64le
dbus-glib-devel-0.100-7.el7.ppc64le
crontabs-1.11-6.20121102git.el7.noarch
libXi-devel-1.7.9-1.el7.ppc64le
gnome-menus-3.13.3-3.el7.ppc64le
libieee1284-devel-0.2.11-15.el7.ppc64le
kmod-libs-20-15.el7.ppc64le
kde-runtime-4.10.5-8.el7.ppc64le
mod_ssl-2.4.6-67.el7.centos.ppc64le
cyrus-sasl-2.1.26-21.el7.ppc64le
libXScrnSaver-1.2.2-6.1.el7.ppc64le
python-augeas-0.5.0-2.el7.noarch
LibRaw-0.14.8-5.el7.20120830git98d925.ppc64le
hyphen-2.8.6-5.el7.ppc64le
kdenetwork-krdc-libs-4.10.5-8.el7_0.ppc64le
opal-prd-5.5.0-1.el7.ppc64le
rdma-core-13-7.el7.ppc64le
pulseaudio-10.0-3.el7.ppc64le
python-sssdconfig-1.15.2-50.el7.noarch
libisofs-1.2.8-4.el7.ppc64le
libverto-0.2.5-4.el7.ppc64le
kdesdk-kmtrace-devel-4.10.5-6.el7.ppc64le
systemd-devel-219-42.el7.ppc64le
mesa-dri-drivers-17.0.1-6.20170307.el7.ppc64le
clutter-1.26.0-1.el7.ppc64le
fipscheck-1.4.1-6.el7.ppc64le
dwz-0.11-3.el7.ppc64le
boost-regex-1.53.0-27.el7.ppc64le
libXaw-1.0.13-4.el7.ppc64le
systemd-python-219-42.el7.ppc64le
zenity-3.22.0-1.el7.ppc64le
boost-atomic-1.53.0-27.el7.ppc64le
rpm-libs-4.11.3-25.el7.ppc64le
GeoIP-1.5.0-11.el7.ppc64le
libksane-devel-4.10.5-4.el7.ppc64le
rubygem-bundler-1.7.8-3.el7.noarch
git-1.8.3.1-11.el7.ppc64le
brasero-libs-3.12.1-2.el7.ppc64le
c-ares-1.10.0-3.el7.ppc64le
libnfsidmap-0.25-17.el7.ppc64le
cdparanoia-libs-10.2-17.el7.ppc64le
tk-8.5.13-6.el7.ppc64le
libhugetlbfs-devel-2.16-12.el7.ppc64le
NetworkManager-wifi-1.8.0-9.el7.ppc64le
libcanberra-gtk2-0.30-5.el7.ppc64le
hostname-3.13-3.el7.ppc64le
redland-1.0.16-6.el7.ppc64le
libdaemon-0.14-7.el7.ppc64le
brasero-3.12.1-2.el7.ppc64le
cups-devel-1.6.3-29.el7.ppc64le
qca2-2.0.3-7.el7.ppc64le
pangomm-2.40.1-1.el7.ppc64le
libnetfilter_conntrack-1.0.6-1.el7_3.ppc64le
sip-devel-4.14.6-4.el7.ppc64le
perl-parent-0.225-244.el7.noarch
libkkc-0.3.1-9.el7.ppc64le
crypto-utils-2.4.1-42.el7.ppc64le
lvm2-2.02.171-8.el7.ppc64le
poppler-glib-0.26.5-16.el7.ppc64le
crash-7.1.9-2.el7.ppc64le
libbluray-0.2.3-5.el7.ppc64le
perl-Filter-1.49-3.el7.ppc64le
control-center-3.22.2-5.el7.ppc64le
c-ares-devel-1.10.0-3.el7.ppc64le
sysstat-10.1.5-12.el7.ppc64le
mesa-libGL-devel-17.0.1-6.20170307.el7.ppc64le
python-pwquality-1.2.3-4.el7.ppc64le
liblouis-python-2.5.2-10.el7.noarch
perl-PathTools-3.40-5.el7.ppc64le
gnome-shell-extension-apps-menu-3.22.2-10.el7.noarch
hunspell-devel-1.3.2-15.el7.ppc64le
policycoreutils-python-2.5-17.1.el7.ppc64le
libwnck3-3.20.1-1.el7.ppc64le
gsettings-desktop-schemas-devel-3.22.0-1.el7.ppc64le
lsof-4.87-4.el7.ppc64le
perl-Getopt-Long-2.40-2.el7.noarch
nfs-utils-1.3.0-0.48.el7.ppc64le
mtr-0.85-7.el7.ppc64le
autofs-5.0.7-69.el7.ppc64le
cairo-devel-1.14.8-2.el7.ppc64le
xorg-x11-xbitmaps-1.1.1-6.el7.noarch
libreport-2.1.11-38.el7.centos.ppc64le
perl-XML-Parser-2.41-10.el7.ppc64le
libvirt-daemon-driver-storage-3.2.0-14.el7.ppc64le
python2-caribou-0.4.21-1.el7.noarch
fontpackages-filesystem-1.44-8.el7.noarch
perl-Test-Pod-1.48-3.el7.noarch
libuuid-devel-2.23.2-43.el7.ppc64le
perl-Package-Constants-0.02-292.el7.noarch
gnutls-3.3.26-9.el7.ppc64le
libreport-cli-2.1.11-38.el7.centos.ppc64le
gettext-common-devel-0.19.8.1-2.el7.noarch
cups-filters-1.0.35-22.el7.ppc64le
xkeyboard-config-2.20-1.el7.noarch
bison-3.0.4-1.el7.ppc64le
compat-libcolord1-1.0.4-1.el7.ppc64le
perl-Digest-MD5-2.52-3.el7.ppc64le
gnutls-dane-3.3.26-9.el7.ppc64le
libusbx-devel-1.0.20-1.el7.ppc64le
initial-setup-0.3.9.40-1.el7.centos.ppc64le
libchamplain-gtk-0.12.15-1.el7.ppc64le
libreport-filesystem-2.1.11-38.el7.centos.ppc64le
m17n-contrib-1.1.14-3.el7.noarch
newt-python-0.52.15-4.el7.ppc64le
perl-Locale-Maketext-1.23-3.el7.noarch
libvirt-daemon-driver-nodedev-3.2.0-14.el7.ppc64le
perl-ExtUtils-Install-1.58-292.el7.noarch
libvirt-3.2.0-14.el7.ppc64le
gnome-themes-standard-3.22.2-1.el7.ppc64le
gl-manpages-1.1-7.20130122.el7.noarch
lohit-gujarati-fonts-2.5.3-2.el7.noarch
python-backports-ssl_match_hostname-3.4.0.2-4.el7.noarch
perl-local-lib-1.008010-4.el7.noarch
rest-0.8.0-1.el7.ppc64le
perl-Module-Build-0.40.05-2.el7.noarch
ibus-kkc-1.5.18-7.el7.ppc64le
webkitgtk4-plugin-process-gtk2-2.14.7-2.el7.ppc64le
basesystem-10.0-7.el7.centos.noarch
madan-fonts-2.000-11.el7.noarch
python-beaker-1.5.4-10.el7.noarch
boost-locale-1.53.0-27.el7.ppc64le
dleyna-core-0.5.0-1.el7.ppc64le
liberation-sans-fonts-1.07.2-15.el7.noarch
tk-devel-8.5.13-6.el7.ppc64le
gnome-packagekit-updater-3.22.1-2.el7.ppc64le
cim-schema-2.33.0-6.el7.noarch
lohit-assamese-fonts-2.5.3-2.el7.noarch
tagsoup-1.2.1-8.el7.noarch
libshout-2.2.2-11.el7.ppc64le
ntpdate-4.2.6p5-25.el7.centos.2.ppc64le
libproxy-0.4.11-10.el7.ppc64le
gvfs-gphoto2-1.30.4-3.el7.ppc64le
gspell-1.2.3-1.el7.ppc64le
sil-nuosu-fonts-2.1.1-5.el7.noarch
python-ntplib-0.3.2-1.el7.noarch
bc-1.06.95-13.el7.ppc64le
libvirt-daemon-driver-lxc-3.2.0-14.el7.ppc64le
libreport-anaconda-2.1.11-38.el7.centos.ppc64le
kdepimlibs-devel-4.10.5-4.el7.ppc64le
unique3-3.0.2-8.el7.ppc64le
freetype-2.4.11-15.el7.ppc64le
lohit-marathi-fonts-2.5.3-2.el7.noarch
python2-cryptography-1.7.2-1.el7.ppc64le
libss-1.42.9-10.el7.ppc64le
kernel-tools-libs-3.10.0-693.el7.ppc64le
libsysfs-2.1.0-16.el7.ppc64le
ibus-hangul-1.4.2-10.el7.ppc64le
freerdp-1.0.2-10.el7.ppc64le
popt-1.13-16.el7.ppc64le
open-sans-fonts-1.10-1.el7.noarch
bind-libs-lite-9.9.4-50.el7.ppc64le
lksctp-tools-1.0.17-2.el7.ppc64le
sssd-common-pac-1.15.2-50.el7.ppc64le
libtiff-4.0.3-27.el7_3.ppc64le
gnome-desktop3-devel-3.22.2-2.el7.ppc64le
cdrdao-1.2.3-20.el7.ppc64le
expat-2.1.0-10.el7_3.ppc64le
latrace-0.5.11-6.1.el7.ppc64le
perl-Net-SSLeay-1.55-6.el7.ppc64le
cups-libs-1.6.3-29.el7.ppc64le
dmraid-events-1.0.0.rc16-28.el7.ppc64le
rubygem-io-console-0.4.2-30.el7.ppc64le
gutenprint-cups-5.2.9-18.el7.ppc64le
xorg-x11-server-Xorg-1.19.3-11.el7.ppc64le
libtalloc-2.1.9-1.el7.ppc64le
iwl6000g2b-firmware-17.168.5.2-56.el7.noarch
nss-sysinit-3.28.4-8.el7.ppc64le
glib2-2.50.3-3.el7.ppc64le
rpm-python-4.11.3-25.el7.ppc64le
ustr-1.0.4-16.el7.ppc64le
gucharmap-3.18.2-1.el7.ppc64le
xorg-x11-drv-dummy-0.3.7-1.el7.ppc64le
libogg-1.3.0-7.el7.ppc64le
iwl6000-firmware-9.221.4.1-56.el7.noarch
docbook-dtds-1.0-60.el7.noarch
xorg-x11-proto-devel-7.7-20.el7.noarch
pygpgme-0.3-9.el7.ppc64le
openssh-7.4p1-11.el7.ppc64le
cheese-3.22.1-1.el7.ppc64le
jline-1.0-8.el7.noarch
libcap-2.22-9.el7.ppc64le
ivtv-firmware-20080701-26.el7.noarch
perl-Pod-LaTeX-0.61-2.el7.noarch
enchant-1.6.0-8.el7.ppc64le
python2-ipalib-4.5.0-20.el7.centos.noarch
tog-pegasus-libs-2.14.1-5.el7.ppc64le
firstboot-19.12-1.el7.ppc64le
gupnp-dlna-0.10.5-1.el7.ppc64le
which-2.20-7.el7.ppc64le
epel-release-7-9.noarch
perl-Net-Daemon-0.48-5.el7.noarch
libcroco-0.6.11-1.el7.ppc64le
liboauth-devel-0.9.7-4.el7.ppc64le
libhangul-0.1.0-8.el7.ppc64le
eog-3.20.5-2.el7.ppc64le
plymouth-theme-charge-0.8.9-0.28.20140113.el7.centos.ppc64le
libcollection-0.6.2-27.el7.ppc64le
libgfortran-4.8.5-16.el7_4.1.ppc64le
perl-Locale-Codes-3.26-2.el7.noarch
pygobject2-2.28.6-11.el7.ppc64le
libXdamage-1.1.4-4.1.el7.ppc64le
libestr-0.1.9-2.el7.ppc64le
PackageKit-gtk3-module-1.1.5-1.el7.centos.ppc64le
libgweather-devel-3.20.4-1.el7.ppc64le
xz-5.2.2-1.el7.ppc64le
perl-WWW-RobotRules-6.02-5.el7.noarch
libICE-devel-1.0.9-9.el7.ppc64le
libXft-2.3.2-2.el7.ppc64le
cryptsetup-libs-1.7.4-3.el7.ppc64le
alsa-plugins-pulseaudio-1.1.1-1.el7.ppc64le
glx-utils-8.2.0-3.el7.ppc64le
speex-1.2-0.19.rc1.el7.ppc64le
perl-HTTP-Negotiate-6.01-5.el7.noarch
libtirpc-0.2.4-0.10.el7.ppc64le
pulseaudio-libs-glib2-10.0-3.el7.ppc64le
mesa-libgbm-17.0.1-6.20170307.el7.ppc64le
pulseaudio-libs-devel-10.0-3.el7.ppc64le
imsettings-1.6.3-9.el7.ppc64le
hunspell-en-US-0.20121024-6.el7.noarch
perl-IO-Socket-IP-0.21-4.el7.noarch
nss-util-devel-3.28.4-3.el7.ppc64le
libXxf86vm-1.1.4-1.el7.ppc64le
hwdata-0.252-8.6.el7.ppc64le
kernel-tools-3.10.0-693.el7.ppc64le
nepomuk-core-libs-4.10.5-5.el7.ppc64le
exiv2-libs-0.23-6.el7.ppc64le
perl-libwww-perl-6.05-2.el7.noarch
p11-kit-devel-0.23.5-3.el7.ppc64le
librsvg2-2.40.16-1.el7.ppc64le
libsmbclient-4.6.2-8.el7.ppc64le
abrt-console-notification-2.1.11-48.el7.centos.ppc64le
kdesdk-okteta-libs-4.10.5-6.el7.ppc64le
boost-chrono-1.53.0-27.el7.ppc64le
iw-4.3-1.el7.ppc64le
libcom_err-devel-1.42.9-10.el7.ppc64le
akonadi-1.9.2-4.el7.ppc64le
accountsservice-libs-0.6.45-2.el7.ppc64le
wvdial-1.61-9.el7.ppc64le
libkexiv2-devel-4.10.5-3.el7.ppc64le
libmpc-1.0.1-3.el7.ppc64le
lm_sensors-devel-3.4.0-4.20160601gitf9185e5.el7.ppc64le
meanwhile-1.1.0-12.el7.ppc64le
libXt-devel-1.1.5-3.el7.ppc64le
plymouth-scripts-0.8.9-0.28.20140113.el7.centos.ppc64le
mod_fcgid-2.3.9-4.el7.ppc64le
kdepim-runtime-libs-4.10.5-3.el7.ppc64le
mesa-libglapi-17.0.1-6.20170307.el7.ppc64le
hunspell-en-GB-0.20121024-6.el7.noarch
sip-4.14.6-4.el7.ppc64le
cairomm-1.12.0-1.el7.ppc64le
abrt-addon-xorg-2.1.11-48.el7.centos.ppc64le
ModemManager-1.6.0-2.el7.ppc64le
kdenetwork-krdc-devel-4.10.5-8.el7_0.ppc64le
libieee1284-0.2.11-15.el7.ppc64le
highlight-3.13-3.el7.ppc64le
pyOpenSSL-0.13.1-3.el7.ppc64le
gtk-update-icon-cache-3.22.10-4.el7.ppc64le
NetworkManager-1.8.0-9.el7.ppc64le
crda-3.13_2016.02.08-1.el7.ppc64le
kdesdk-kompare-libs-4.10.5-6.el7.ppc64le
newt-0.52.15-4.el7.ppc64le
xcb-util-0.4.0-2.el7.ppc64le
automake-1.13.4-3.el7.noarch
libgweather-3.20.4-1.el7.ppc64le
lockdev-1.0.4-0.13.20111007git.el7.ppc64le
man-db-2.6.3-9.el7.ppc64le
gd-2.0.35-26.el7.ppc64le
exempi-2.2.0-8.el7.ppc64le
curl-7.29.0-42.el7.ppc64le
snappy-1.1.0-3.el7.ppc64le
libreport-gtk-2.1.11-38.el7.centos.ppc64le
unbound-libs-1.4.20-34.el7.ppc64le
tcpdump-4.9.0-5.el7.ppc64le
sane-backends-drivers-scanners-1.0.24-9.el7.ppc64le
libedit-3.0-12.20121213cvs.el7.ppc64le
liboauth-0.9.7-4.el7.ppc64le
libmpcdec-1.2.6-12.el7.ppc64le
libnm-gtk-1.8.0-3.el7.ppc64le
grub2-tools-extra-2.02-0.64.el7.centos.ppc64le
libdmx-1.1.3-3.el7.ppc64le
wavpack-4.60.1-9.el7.ppc64le
rasqal-0.9.30-4.el7.ppc64le
autogen-libopts-5.18-5.el7.ppc64le
gnome-bluetooth-libs-3.20.1-1.el7.ppc64le
qt-settings-19-23.5.el7.centos.noarch
libxslt-devel-1.1.28-5.el7.ppc64le
grilo-plugins-0.3.4-1.el7.ppc64le
SDL-1.2.15-14.el7.ppc64le
sip-macros-4.14.6-4.el7.ppc64le
iptables-1.4.21-18.0.1.el7.centos.ppc64le
gstreamer-plugins-good-0.10.31-13.el7.ppc64le
qjson-0.8.1-4.el7.ppc64le
perl-Test-Pod-Coverage-1.08-21.el7.noarch
pcp-conf-3.11.8-7.el7.ppc64le
perl-podlators-2.5.1-3.el7.noarch
libcurl-devel-7.29.0-42.el7.ppc64le
graphite2-devel-1.3.6-1.el7_2.ppc64le
pygtk2-2.24.0-9.el7.ppc64le
kexec-tools-2.0.14-17.el7.ppc64le
iptables-devel-1.4.21-18.0.1.el7.centos.ppc64le
gnome-shell-3.22.3-17.el7.ppc64le
perl-Carp-1.26-244.el7.noarch
liblouis-2.5.2-10.el7.ppc64le
dvd+rw-tools-7.1-15.el7.ppc64le
ptlib-2.10.10-6.el7.ppc64le
samba-common-libs-4.6.2-8.el7.ppc64le
gvfs-devel-1.30.4-3.el7.ppc64le
gnome-shell-extension-launch-new-instance-3.22.2-10.el7.noarch
perl-libs-5.16.3-292.el7.ppc64le
libselinux-utils-2.5-11.el7.ppc64le
libsepol-devel-2.5-6.el7.ppc64le
festival-lib-1.96-28.el7.ppc64le
oddjob-0.31.5-4.el7.ppc64le
latencytop-tui-0.5-13.el7.ppc64le
libvirt-daemon-driver-storage-core-3.2.0-14.el7.ppc64le
perl-Data-Dumper-2.145-3.el7.ppc64le
libreport-python-2.1.11-38.el7.centos.ppc64le
libical-devel-1.0.1-1.el7.ppc64le
libmx-1.4.7-10.el7.ppc64le
cups-pk-helper-0.2.6-2.el7.ppc64le
=== TEST BEGIN ===
Install prefix /var/tmp/patchew-tester-tmp-r4540qbd/src/install
BIOS directory /var/tmp/patchew-tester-tmp-r4540qbd/src/install/share/qemu
firmware path /var/tmp/patchew-tester-tmp-r4540qbd/src/install/share/qemu-firmware
binary directory /var/tmp/patchew-tester-tmp-r4540qbd/src/install/bin
library directory /var/tmp/patchew-tester-tmp-r4540qbd/src/install/lib
module directory /var/tmp/patchew-tester-tmp-r4540qbd/src/install/lib/qemu
libexec directory /var/tmp/patchew-tester-tmp-r4540qbd/src/install/libexec
include directory /var/tmp/patchew-tester-tmp-r4540qbd/src/install/include
config directory /var/tmp/patchew-tester-tmp-r4540qbd/src/install/etc
local state directory /var/tmp/patchew-tester-tmp-r4540qbd/src/install/var
Manual directory /var/tmp/patchew-tester-tmp-r4540qbd/src/install/share/man
ELF interp prefix /usr/gnemul/qemu-%M
Source path /var/tmp/patchew-tester-tmp-r4540qbd/src
GIT binary git
GIT submodules ui/keycodemapdb dtc capstone
C compiler cc
Host C compiler cc
C++ compiler c++
Objective-C compiler cc
ARFLAGS rv
CFLAGS -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -g
QEMU_CFLAGS -I/usr/include/pixman-1 -I$(SRC_PATH)/dtc/libfdt -Werror -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -DNCURSES_WIDECHAR -m64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong -Wno-missing-braces -I/usr/include/p11-kit-1 -I/usr/include/libpng15 -I$(SRC_PATH)/capstone/include
LDFLAGS -Wl,--warn-common -m64 -g
make make
install install
python python -B
smbd /usr/sbin/smbd
module support no
host CPU ppc64
host big endian no
target list aarch64-softmmu alpha-softmmu arm-softmmu cris-softmmu i386-softmmu lm32-softmmu m68k-softmmu microblazeel-softmmu microblaze-softmmu mips64el-softmmu mips64-softmmu mipsel-softmmu mips-softmmu moxie-softmmu nios2-softmmu or1k-softmmu ppc64-softmmu ppcemb-softmmu ppc-softmmu s390x-softmmu sh4eb-softmmu sh4-softmmu sparc64-softmmu sparc-softmmu tricore-softmmu unicore32-softmmu x86_64-softmmu xtensaeb-softmmu xtensa-softmmu aarch64_be-linux-user aarch64-linux-user alpha-linux-user armeb-linux-user arm-linux-user cris-linux-user hppa-linux-user i386-linux-user m68k-linux-user microblazeel-linux-user microblaze-linux-user mips64el-linux-user mips64-linux-user mipsel-linux-user mips-linux-user mipsn32el-linux-user mipsn32-linux-user nios2-linux-user or1k-linux-user ppc64abi32-linux-user ppc64le-linux-user ppc64-linux-user ppc-linux-user s390x-linux-user sh4eb-linux-user sh4-linux-user sparc32plus-linux-user sparc64-linux-user sparc-linux-user tilegx-linux-user x86_64-linux-user
gprof enabled no
sparse enabled no
strip binaries yes
profiler no
static build no
SDL support yes (1.2.15)
GTK support yes (3.22.10)
GTK GL support no
VTE support no
TLS priority NORMAL
GNUTLS support yes
GNUTLS rnd yes
libgcrypt no
libgcrypt kdf no
nettle yes (2.7.1)
nettle kdf yes
libtasn1 yes
curses support yes
virgl support no
curl support yes
mingw32 support no
Audio drivers oss
Block whitelist (rw)
Block whitelist (ro)
VirtFS support yes
Multipath support no
VNC support yes
VNC SASL support yes
VNC JPEG support yes
VNC PNG support yes
xen support no
brlapi support no
bluez support no
Documentation no
PIE no
vde support no
netmap support no
Linux AIO support yes
ATTR/XATTR support yes
Install blobs yes
KVM support yes
HAX support no
HVF support no
TCG support yes
TCG debug enabled no
TCG interpreter no
malloc trim support yes
RDMA support yes
fdt support yes
preadv support yes
fdatasync yes
madvise yes
posix_madvise yes
libcap-ng support yes
vhost-net support yes
vhost-scsi support yes
vhost-vsock support yes
vhost-user support yes
Trace backends log
spice support no
rbd support no
xfsctl support no
smartcard support no
libusb yes
usb net redir no
OpenGL support no
OpenGL dmabufs no
libiscsi support no
libnfs support no
build guest agent yes
QGA VSS support no
QGA w32 disk info no
QGA MSI support no
seccomp support no
coroutine backend ucontext
coroutine pool yes
debug stack usage no
crypto afalg no
GlusterFS support no
gcov gcov
gcov enabled no
TPM support yes
libssh2 support no
TPM passthrough no
TPM emulator yes
QOM debugging yes
Live block migration yes
lzo support no
snappy support no
bzip2 support yes
NUMA host support yes
libxml2 yes
tcmalloc support no
jemalloc support no
avx2 optimization no
replication support yes
VxHS block device no
capstone git
WARNING: Use of SDL 1.2 is deprecated and will be removed in
WARNING: future releases. Please switch to using SDL 2.0
GEN aarch64-softmmu/config-devices.mak.tmp
GEN alpha-softmmu/config-devices.mak.tmp
GEN arm-softmmu/config-devices.mak.tmp
GEN i386-softmmu/config-devices.mak.tmp
GEN lm32-softmmu/config-devices.mak.tmp
GEN cris-softmmu/config-devices.mak.tmp
GEN m68k-softmmu/config-devices.mak.tmp
GEN microblazeel-softmmu/config-devices.mak.tmp
GEN microblaze-softmmu/config-devices.mak.tmp
GEN mips64-softmmu/config-devices.mak.tmp
GEN mipsel-softmmu/config-devices.mak.tmp
GEN mips64el-softmmu/config-devices.mak.tmp
GEN mips-softmmu/config-devices.mak.tmp
GEN moxie-softmmu/config-devices.mak.tmp
GEN nios2-softmmu/config-devices.mak.tmp
GEN cris-softmmu/config-devices.mak
GEN ppcemb-softmmu/config-devices.mak.tmp
GEN ppc64-softmmu/config-devices.mak.tmp
GEN ppc-softmmu/config-devices.mak.tmp
GEN or1k-softmmu/config-devices.mak.tmp
GEN lm32-softmmu/config-devices.mak
GEN s390x-softmmu/config-devices.mak.tmp
GEN m68k-softmmu/config-devices.mak
GEN sh4-softmmu/config-devices.mak.tmp
GEN sh4eb-softmmu/config-devices.mak.tmp
GEN sparc64-softmmu/config-devices.mak.tmp
GEN microblaze-softmmu/config-devices.mak
GEN unicore32-softmmu/config-devices.mak.tmp
GEN tricore-softmmu/config-devices.mak.tmp
GEN sparc-softmmu/config-devices.mak.tmp
GEN microblazeel-softmmu/config-devices.mak
GEN aarch64-softmmu/config-devices.mak
GEN xtensaeb-softmmu/config-devices.mak.tmp
GEN moxie-softmmu/config-devices.mak
GEN or1k-softmmu/config-devices.mak
GEN x86_64-softmmu/config-devices.mak.tmp
GEN i386-softmmu/config-devices.mak
GEN alpha-softmmu/config-devices.mak
GEN s390x-softmmu/config-devices.mak
GEN aarch64_be-linux-user/config-devices.mak.tmp
GEN xtensa-softmmu/config-devices.mak.tmp
GEN arm-linux-user/config-devices.mak.tmp
GEN aarch64-linux-user/config-devices.mak.tmp
GEN cris-linux-user/config-devices.mak.tmp
GEN i386-linux-user/config-devices.mak.tmp
GEN hppa-linux-user/config-devices.mak.tmp
GEN m68k-linux-user/config-devices.mak.tmp
GEN microblaze-linux-user/config-devices.mak.tmp
GEN armeb-linux-user/config-devices.mak.tmp
GEN microblazeel-linux-user/config-devices.mak.tmp
GEN mips64-linux-user/config-devices.mak.tmp
GEN mips64el-linux-user/config-devices.mak.tmp
GEN mipsel-linux-user/config-devices.mak.tmp
GEN nios2-linux-user/config-devices.mak.tmp
GEN ppc64abi32-linux-user/config-devices.mak.tmp
GEN ppc64le-linux-user/config-devices.mak.tmp
GEN ppc64-linux-user/config-devices.mak.tmp
GEN arm-softmmu/config-devices.mak
GEN s390x-linux-user/config-devices.mak.tmp
GEN alpha-linux-user/config-devices.mak.tmp
GEN ppc-linux-user/config-devices.mak.tmp
GEN sh4eb-linux-user/config-devices.mak.tmp
GEN sparc32plus-linux-user/config-devices.mak.tmp
GEN sparc-linux-user/config-devices.mak.tmp
GEN unicore32-softmmu/config-devices.mak
GEN sparc64-linux-user/config-devices.mak.tmp
GEN x86_64-linux-user/config-devices.mak.tmp
GEN mips-linux-user/config-devices.mak.tmp
GEN config-host.h
GEN qmp-commands.h
GEN mipsn32el-linux-user/config-devices.mak.tmp
GEN tilegx-linux-user/config-devices.mak.tmp
GEN or1k-linux-user/config-devices.mak.tmp
GEN tricore-softmmu/config-devices.mak
GEN ppc64le-linux-user/config-devices.mak
GEN qapi-types.h
GEN qapi-visit.h
GEN sh4-linux-user/config-devices.mak.tmp
GEN microblaze-linux-user/config-devices.mak
GEN s390x-linux-user/config-devices.mak
GEN i386-linux-user/config-devices.mak
GEN sparc-softmmu/config-devices.mak
GEN qmp-marshal.c
GEN qapi-types.c
GEN qmp-introspect.h
GEN qapi-event.c
GEN nios2-softmmu/config-devices.mak
GEN mipsn32-linux-user/config-devices.mak.tmp
GEN ppc64-softmmu/config-devices.mak
GEN qapi-event.h
GIT ui/keycodemapdb dtc capstone
GEN mips64el-softmmu/config-devices.mak
GEN mipsel-softmmu/config-devices.mak
GEN mips64-softmmu/config-devices.mak
GEN sh4eb-softmmu/config-devices.mak
GEN x86_64-softmmu/config-devices.mak
GEN xtensaeb-softmmu/config-devices.mak
GEN qemu-options.def
GEN alpha-linux-user/config-devices.mak
GEN armeb-linux-user/config-devices.mak
GEN arm-linux-user/config-devices.mak
GEN mips64-linux-user/config-devices.mak
GEN mipsel-linux-user/config-devices.mak
GEN xtensa-softmmu/config-devices.mak
GEN aarch64-linux-user/config-devices.mak
GEN ppc-softmmu/config-devices.mak
GEN hppa-linux-user/config-devices.mak
GEN mips-linux-user/config-devices.mak
GEN qapi-visit.c
GEN ppc64abi32-linux-user/config-devices.mak
GEN ppc64-linux-user/config-devices.mak
GEN sh4-softmmu/config-devices.mak
GEN ppc-linux-user/config-devices.mak
GEN sh4-linux-user/config-devices.mak
GEN ppcemb-softmmu/config-devices.mak
GEN sparc32plus-linux-user/config-devices.mak
GEN sh4eb-linux-user/config-devices.mak
GEN sparc-linux-user/config-devices.mak
GEN microblazeel-linux-user/config-devices.mak
GEN qmp-introspect.c
GEN trace/generated-tcg-tracers.h
GEN sparc64-linux-user/config-devices.mak
GEN x86_64-linux-user/config-devices.mak
GEN tilegx-linux-user/config-devices.mak
GEN trace/generated-helpers-wrappers.h
GEN mips-softmmu/config-devices.mak
GEN mipsn32el-linux-user/config-devices.mak
GEN trace/generated-helpers.h
GEN m68k-linux-user/config-devices.mak
GEN aarch64_be-linux-user/config-devices.mak
GEN sparc64-softmmu/config-devices.mak
GEN trace/generated-helpers.c
GEN mipsn32-linux-user/config-devices.mak
GEN nios2-linux-user/config-devices.mak
GEN mips64el-linux-user/config-devices.mak
GEN cris-linux-user/config-devices.mak
GEN module_block.h
GEN or1k-linux-user/config-devices.mak
GEN tests/test-qapi-types.h
GEN tests/test-qapi-visit.h
GEN tests/test-qmp-commands.h
GEN tests/test-qapi-event.h
GEN tests/test-qmp-introspect.h
GEN trace-root.h
GEN util/trace.h
GEN crypto/trace.h
GEN io/trace.h
GEN migration/trace.h
GEN block/trace.h
GEN chardev/trace.h
GEN hw/block/trace.h
GEN hw/block/dataplane/trace.h
GEN hw/char/trace.h
GEN hw/intc/trace.h
GEN hw/net/trace.h
GEN hw/virtio/trace.h
GEN hw/audio/trace.h
GEN hw/misc/trace.h
GEN hw/usb/trace.h
GEN hw/scsi/trace.h
GEN hw/nvram/trace.h
GEN hw/display/trace.h
GEN hw/input/trace.h
GEN hw/timer/trace.h
GEN hw/dma/trace.h
GEN hw/sparc/trace.h
GEN hw/sparc64/trace.h
GEN hw/sd/trace.h
GEN hw/isa/trace.h
GEN hw/mem/trace.h
GEN hw/i386/trace.h
GEN hw/i386/xen/trace.h
GEN hw/9pfs/trace.h
GEN hw/ppc/trace.h
GEN hw/pci/trace.h
GEN hw/pci-host/trace.h
GEN hw/s390x/trace.h
GEN hw/vfio/trace.h
GEN hw/acpi/trace.h
GEN hw/arm/trace.h
GEN hw/alpha/trace.h
GEN hw/xen/trace.h
GEN hw/ide/trace.h
GEN ui/trace.h
GEN audio/trace.h
GEN net/trace.h
GEN target/arm/trace.h
GEN target/i386/trace.h
GEN target/mips/trace.h
GEN target/sparc/trace.h
GEN target/s390x/trace.h
GEN target/ppc/trace.h
GEN qom/trace.h
GEN linux-user/trace.h
GEN qapi/trace.h
GEN accel/tcg/trace.h
GEN accel/kvm/trace.h
GEN nbd/trace.h
GEN scsi/trace.h
GEN trace-root.c
GEN util/trace.c
GEN crypto/trace.c
GEN io/trace.c
GEN migration/trace.c
GEN block/trace.c
GEN chardev/trace.c
GEN hw/block/trace.c
GEN hw/block/dataplane/trace.c
GEN hw/char/trace.c
GEN hw/intc/trace.c
GEN hw/net/trace.c
GEN hw/virtio/trace.c
GEN hw/audio/trace.c
GEN hw/misc/trace.c
GEN hw/usb/trace.c
GEN hw/scsi/trace.c
GEN hw/nvram/trace.c
GEN hw/display/trace.c
GEN hw/input/trace.c
GEN hw/timer/trace.c
GEN hw/dma/trace.c
GEN hw/sparc/trace.c
GEN hw/sparc64/trace.c
GEN hw/sd/trace.c
GEN hw/isa/trace.c
GEN hw/mem/trace.c
GEN hw/i386/trace.c
GEN hw/i386/xen/trace.c
GEN hw/9pfs/trace.c
GEN hw/ppc/trace.c
GEN hw/pci/trace.c
GEN hw/pci-host/trace.c
GEN hw/s390x/trace.c
GEN hw/vfio/trace.c
GEN hw/acpi/trace.c
GEN hw/arm/trace.c
GEN hw/alpha/trace.c
GEN hw/xen/trace.c
GEN hw/ide/trace.c
GEN ui/trace.c
GEN audio/trace.c
GEN net/trace.c
GEN target/arm/trace.c
GEN target/i386/trace.c
GEN target/mips/trace.c
GEN target/sparc/trace.c
GEN target/s390x/trace.c
GEN target/ppc/trace.c
GEN qom/trace.c
GEN linux-user/trace.c
GEN qapi/trace.c
GEN accel/tcg/trace.c
GEN accel/kvm/trace.c
GEN nbd/trace.c
GEN scsi/trace.c
GEN config-all-devices.mak
GEN ui/input-keymap-atset1-to-qcode.c
GEN ui/input-keymap-linux-to-qcode.c
GEN ui/input-keymap-qcode-to-atset1.c
GEN ui/input-keymap-qcode-to-atset2.c
GEN ui/input-keymap-qcode-to-atset3.c
GEN ui/input-keymap-qcode-to-linux.c
GEN ui/input-keymap-qcode-to-qnum.c
GEN ui/input-keymap-qnum-to-qcode.c
GEN ui/input-keymap-usb-to-qcode.c
GEN ui/input-keymap-win32-to-qcode.c
GEN ui/input-keymap-x11-to-qcode.c
GEN ui/input-keymap-qcode-to-sun.c
GEN ui/input-keymap-xorgkbd-to-qcode.c
GEN ui/input-keymap-xorgxquartz-to-qcode.c
GEN ui/input-keymap-xorgxwin-to-qcode.c
GEN ui/input-keymap-xorgevdev-to-qcode.c
CC cs.o
CC utils.o
CC SStream.o
CC MCInstrDesc.o
CC MCRegisterInfo.o
CC arch/ARM/ARMDisassembler.o
CC arch/ARM/ARMInstPrinter.o
CC arch/ARM/ARMMapping.o
CC arch/ARM/ARMModule.o
CC arch/AArch64/AArch64Disassembler.o
CC arch/AArch64/AArch64BaseInfo.o
CC arch/AArch64/AArch64InstPrinter.o
CC arch/AArch64/AArch64Mapping.o
CC arch/AArch64/AArch64Module.o
CC arch/Mips/MipsDisassembler.o
CC arch/Mips/MipsInstPrinter.o
CC arch/Mips/MipsModule.o
CC arch/Mips/MipsMapping.o
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/dumptrees.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/trees.S
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/testutils.c
CC arch/PowerPC/PPCDisassembler.o
CC arch/PowerPC/PPCInstPrinter.o
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/value-labels.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/asm_tree_dump.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/truncated_property.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/check_path.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/overlay_bad_fixup.c
CC arch/PowerPC/PPCMapping.o
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/overlay.c
CC arch/PowerPC/PPCModule.o
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/subnode_iterate.c
CC arch/Sparc/SparcDisassembler.o
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/property_iterate.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/integer-expressions.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/utilfdt_test.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/path_offset_aliases.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/add_subnode_with_nops.c
CC arch/Sparc/SparcInstPrinter.o
CC arch/Sparc/SparcMapping.o
CC arch/Sparc/SparcModule.o
CC arch/SystemZ/SystemZDisassembler.o
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/dtbs_equal_unordered.c
CC arch/SystemZ/SystemZInstPrinter.o
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/dtb_reverse.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/dtbs_equal_ordered.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/extra-terminating-null.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/incbin.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/boot-cpuid.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/phandle_format.c
CC arch/SystemZ/SystemZMapping.o
CC arch/SystemZ/SystemZModule.o
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/path-references.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/references.c
CC arch/SystemZ/SystemZMCTargetDesc.o
CC arch/X86/X86DisassemblerDecoder.o
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/string_escapes.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/propname_escapes.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/appendprop2.c
CC arch/X86/X86Disassembler.o
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/appendprop1.c
CC arch/X86/X86IntelInstPrinter.o
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/del_node.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/del_property.c
CC arch/X86/X86ATTInstPrinter.o
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/setprop.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/set_name.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/rw_tree1.c
CC arch/X86/X86Mapping.o
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/nopulate.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/open_pack.c
CC arch/X86/X86Module.o
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/mangle-layout.c
CC arch/XCore/XCoreDisassembler.o
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/move_and_save.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/sw_tree1.c
CC arch/XCore/XCoreInstPrinter.o
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/nop_node.c
CC arch/XCore/XCoreMapping.o
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/nop_property.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/setprop_inplace.c
CC arch/XCore/XCoreModule.o
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/stringlist.c
CC MCInst.o
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/addr_size_cells.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/notfound.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/sized_cells.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/char_literal.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/node_offset_by_compatible.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/get_alias.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/node_check_compatible.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/node_offset_by_phandle.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/parent_offset.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/supernode_atdepth_offset.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/get_path.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/node_offset_by_prop_value.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/get_phandle.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/subnode_offset.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/find_property.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/root_node.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/get_mem_rsv.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/getprop.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/get_name.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/libfdt/fdt_addresses.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/libfdt/fdt_overlay.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/path_offset.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/libfdt/fdt_empty_tree.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/libfdt/fdt_strerror.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/libfdt/fdt_rw.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/libfdt/fdt_sw.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/libfdt/fdt_wip.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/libfdt/fdt_ro.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/util.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/fdtoverlay.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/libfdt/fdt.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/fdtput.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/fdtget.c
BISON dtc-parser.tab.c
LEX convert-dtsv0-lexer.lex.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/srcpos.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/fdtdump.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/treesource.c
LEX dtc-lexer.lex.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/livetree.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/fstree.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/flattree.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/data.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/dtc.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/checks.c
DEP convert-dtsv0-lexer.lex.c
DEP dtc-parser.tab.c
DEP dtc-lexer.lex.c
CHK version_gen.h
UPD version_gen.h
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/util.c
CC libfdt/fdt.o
CC libfdt/fdt_ro.o
CC libfdt/fdt_wip.o
CC libfdt/fdt_sw.o
CC libfdt/fdt_rw.o
CC libfdt/fdt_strerror.o
CC libfdt/fdt_empty_tree.o
CC libfdt/fdt_addresses.o
CC libfdt/fdt_overlay.o
AR libfdt/libfdt.a
ar: creating libfdt/libfdt.a
a - libfdt/fdt.o
a - libfdt/fdt_ro.o
a - libfdt/fdt_wip.o
a - libfdt/fdt_sw.o
a - libfdt/fdt_rw.o
a - libfdt/fdt_strerror.o
a - libfdt/fdt_empty_tree.o
a - libfdt/fdt_addresses.o
a - libfdt/fdt_overlay.o
AR libcapstone.a
ar: creating /var/tmp/patchew-tester-tmp-r4540qbd/src/build/capstone/libcapstone.a
CC tests/qemu-iotests/socket_scm_helper.o
GEN qga/qapi-generated/qga-qapi-types.h
GEN qga/qapi-generated/qga-qapi-visit.h
GEN qga/qapi-generated/qga-qmp-commands.h
GEN qga/qapi-generated/qga-qapi-types.c
GEN qga/qapi-generated/qga-qapi-visit.c
GEN qga/qapi-generated/qga-qmp-marshal.c
CC qapi-types.o
CC qmp-introspect.o
CC qapi-visit.o
CC qapi/qapi-visit-core.o
CC qapi/qapi-dealloc-visitor.o
CC qapi/qobject-input-visitor.o
CC qapi-event.o
CC qapi/qmp-registry.o
CC qapi/qobject-output-visitor.o
CC qapi/qmp-dispatch.o
CC qapi/string-input-visitor.o
CC qapi/string-output-visitor.o
CC qapi/opts-visitor.o
CC qapi/qapi-clone-visitor.o
CC qapi/qmp-event.o
CC qapi/qapi-util.o
CC qobject/qnull.o
CC qobject/qstring.o
CC qobject/qnum.o
CC qobject/qdict.o
CC qobject/qlist.o
CC qobject/qbool.o
CC qobject/qlit.o
CC qobject/qobject.o
CC qobject/qjson.o
CC qobject/json-lexer.o
CC qobject/json-streamer.o
CC qobject/json-parser.o
CC trace/control.o
CC trace/qmp.o
CC util/unicode.o
CC util/qemu-timer-common.o
CC util/bufferiszero.o
CC util/lockcnt.o
CC util/aiocb.o
CC util/osdep.o
CC util/cutils.o
CC util/thread-pool.o
CC util/async.o
CC util/oslib-posix.o
CC util/aio-posix.o
CC util/mmap-alloc.o
CC util/main-loop.o
CC util/compatfd.o
CC util/iohandler.o
CC util/qemu-openpty.o
CC util/qemu-timer.o
CC util/qemu-thread-posix.o
CC util/memfd.o
CC util/event_notifier-posix.o
CC util/path.o
CC util/module.o
CC util/host-utils.o
CC util/envlist.o
CC util/bitmap.o
CC util/bitops.o
CC util/fifo8.o
CC util/acl.o
CC util/hbitmap.o
CC util/cacheinfo.o
CC util/error.o
CC util/qemu-error.o
CC util/id.o
CC util/iov.o
CC util/qemu-config.o
CC util/qemu-sockets.o
CC util/uri.o
CC util/notify.o
CC util/qemu-option.o
CC util/keyval.o
CC util/hexdump.o
CC util/qemu-progress.o
CC util/crc32c.o
CC util/getauxval.o
CC util/throttle.o
CC util/uuid.o
CC util/readline.o
CC util/rcu.o
CC util/qemu-coroutine.o
CC util/qemu-coroutine-lock.o
CC util/qemu-coroutine-io.o
CC util/qemu-coroutine-sleep.o
CC util/coroutine-ucontext.o
CC util/timed-average.o
CC util/buffer.o
CC util/base64.o
CC util/log.o
CC util/pagesize.o
CC util/qdist.o
CC util/qht.o
CC util/range.o
CC util/stats64.o
CC util/systemd.o
CC trace-root.o
CC util/trace.o
CC crypto/trace.o
CC io/trace.o
CC migration/trace.o
CC block/trace.o
CC chardev/trace.o
CC hw/block/trace.o
CC hw/block/dataplane/trace.o
CC hw/char/trace.o
CC hw/intc/trace.o
CC hw/net/trace.o
CC hw/virtio/trace.o
CC hw/audio/trace.o
CC hw/misc/trace.o
CC hw/usb/trace.o
CC hw/scsi/trace.o
CC hw/nvram/trace.o
CC hw/display/trace.o
CC hw/input/trace.o
CC hw/timer/trace.o
CC hw/dma/trace.o
CC hw/sparc/trace.o
CC hw/sparc64/trace.o
CC hw/sd/trace.o
CC hw/isa/trace.o
CC hw/mem/trace.o
CC hw/i386/trace.o
CC hw/i386/xen/trace.o
CC hw/9pfs/trace.o
CC hw/ppc/trace.o
CC hw/pci/trace.o
CC hw/pci-host/trace.o
CC hw/s390x/trace.o
CC hw/vfio/trace.o
CC hw/acpi/trace.o
CC hw/arm/trace.o
CC hw/alpha/trace.o
CC hw/xen/trace.o
CC hw/ide/trace.o
CC ui/trace.o
CC target/arm/trace.o
CC audio/trace.o
CC net/trace.o
CC target/mips/trace.o
CC target/i386/trace.o
CC target/sparc/trace.o
CC target/s390x/trace.o
CC target/ppc/trace.o
CC qom/trace.o
CC linux-user/trace.o
CC qapi/trace.o
CC accel/tcg/trace.o
CC accel/kvm/trace.o
CC nbd/trace.o
CC scsi/trace.o
CC crypto/pbkdf-stub.o
CC stubs/arch-query-cpu-def.o
CC stubs/arch-query-cpu-model-expansion.o
CC stubs/arch-query-cpu-model-comparison.o
CC stubs/arch-query-cpu-model-baseline.o
CC stubs/bdrv-next-monitor-owned.o
CC stubs/blk-commit-all.o
CC stubs/blockdev-close-all-bdrv-states.o
CC stubs/clock-warp.o
CC stubs/cpu-get-clock.o
CC stubs/cpu-get-icount.o
CC stubs/dump.o
CC stubs/error-printf.o
CC stubs/get-vm-name.o
CC stubs/fdset.o
CC stubs/gdbstub.o
CC stubs/iothread.o
CC stubs/is-daemonized.o
CC stubs/iothread-lock.o
CC stubs/linux-aio.o
CC stubs/machine-init-done.o
CC stubs/migr-blocker.o
CC stubs/change-state-handler.o
CC stubs/monitor.o
CC stubs/notify-event.o
CC stubs/qtest.o
CC stubs/replay.o
CC stubs/runstate-check.o
CC stubs/set-fd-handler.o
CC stubs/sysbus.o
CC stubs/tpm.o
CC stubs/slirp.o
CC stubs/trace-control.o
CC stubs/uuid.o
CC stubs/vm-stop.o
CC stubs/vmstate.o
CC stubs/qmp_pc_dimm.o
CC stubs/target-monitor-defs.o
CC stubs/target-get-monitor-def.o
CC stubs/pc_madt_cpu_entry.o
CC stubs/vmgenid.o
CC stubs/xen-common.o
CC stubs/xen-hvm.o
CC stubs/pci-host-piix.o
CC contrib/ivshmem-client/ivshmem-client.o
CC contrib/ivshmem-client/main.o
CC contrib/ivshmem-server/ivshmem-server.o
CC contrib/ivshmem-server/main.o
CC qemu-nbd.o
CC block.o
CC blockjob.o
CC qemu-io-cmds.o
CC replication.o
CC block/raw-format.o
CC block/qcow.o
CC block/vdi.o
CC block/vmdk.o
CC block/cloop.o
CC block/bochs.o
CC block/vpc.o
CC block/vvfat.o
CC block/dmg.o
CC block/qcow2.o
CC block/qcow2-refcount.o
CC block/qcow2-snapshot.o
CC block/qcow2-cluster.o
CC block/qcow2-bitmap.o
CC block/qcow2-cache.o
CC block/qed.o
CC block/qed-l2-cache.o
CC block/qed-cluster.o
CC block/qed-check.o
CC block/qed-table.o
CC block/vhdx.o
CC block/vhdx-endian.o
CC block/vhdx-log.o
CC block/quorum.o
CC block/parallels.o
CC block/blkdebug.o
CC block/blkverify.o
CC block/blkreplay.o
CC block/block-backend.o
CC block/snapshot.o
CC block/qapi.o
CC block/file-posix.o
CC block/linux-aio.o
CC block/null.o
CC block/mirror.o
CC block/commit.o
CC block/io.o
CC block/throttle-groups.o
CC block/nbd.o
CC block/nbd-client.o
CC block/sheepdog.o
CC block/accounting.o
CC block/dirty-bitmap.o
CC block/write-threshold.o
CC block/backup.o
CC block/replication.o
CC block/throttle.o
CC block/crypto.o
CC nbd/server.o
CC nbd/client.o
CC nbd/common.o
CC scsi/utils.o
CC scsi/pr-manager.o
CC scsi/pr-manager-helper.o
CC block/curl.o
CC block/dmg-bz2.o
CC crypto/init.o
CC crypto/hash.o
CC crypto/hash-nettle.o
CC crypto/hmac.o
CC crypto/hmac-nettle.o
CC crypto/aes.o
CC crypto/desrfb.o
CC crypto/cipher.o
CC crypto/tlscreds.o
CC crypto/tlscredsanon.o
CC crypto/tlscredsx509.o
CC crypto/tlssession.o
CC crypto/secret.o
CC crypto/random-gnutls.o
CC crypto/pbkdf.o
CC crypto/pbkdf-nettle.o
CC crypto/ivgen.o
CC crypto/ivgen-plain.o
CC crypto/ivgen-essiv.o
CC crypto/ivgen-plain64.o
CC crypto/afsplit.o
CC crypto/xts.o
CC crypto/block.o
CC crypto/block-qcow.o
CC crypto/block-luks.o
CC io/channel.o
CC io/channel-buffer.o
CC io/channel-command.o
CC io/channel-file.o
CC io/channel-socket.o
CC io/channel-tls.o
CC io/channel-watch.o
CC io/channel-websock.o
CC io/channel-util.o
CC io/dns-resolver.o
CC io/net-listener.o
CC io/task.o
CC qom/object.o
CC qom/container.o
CC qom/qom-qobject.o
CC qom/object_interfaces.o
GEN qemu-img-cmds.h
CC qemu-io.o
CC fsdev/virtfs-proxy-helper.o
CC fsdev/9p-marshal.o
CC fsdev/9p-iov-marshal.o
CC scsi/qemu-pr-helper.o
CC qemu-bridge-helper.o
CC blockdev.o
CC bootdevice.o
CC blockdev-nbd.o
CC iothread.o
CC qdev-monitor.o
CC os-posix.o
CC device-hotplug.o
CC bt-host.o
CC bt-vhci.o
CC dma-helpers.o
CC vl.o
CC tpm.o
CC device_tree.o
CC qmp-marshal.o
CC hmp.o
CC qmp.o
CC cpus-common.o
CC audio/audio.o
CC audio/noaudio.o
CC audio/wavaudio.o
CC audio/mixeng.o
CC audio/sdlaudio.o
CC audio/ossaudio.o
CC audio/wavcapture.o
CC backends/rng.o
CC backends/rng-egd.o
CC backends/rng-random.o
CC backends/tpm.o
CC backends/hostmem.o
CC backends/hostmem-file.o
CC backends/hostmem-ram.o
CC backends/cryptodev.o
CC backends/cryptodev-builtin.o
CC chardev/msmouse.o
CC block/stream.o
CC chardev/wctablet.o
CC chardev/testdev.o
CC disas/alpha.o
CC disas/arm.o
CXX disas/arm-a64.o
CC disas/cris.o
CC disas/hppa.o
CC disas/i386.o
CC disas/m68k.o
CC disas/mips.o
CC disas/microblaze.o
CC disas/nios2.o
CC disas/moxie.o
CC disas/ppc.o
CC disas/s390.o
CC disas/sh4.o
CC disas/sparc.o
CC disas/lm32.o
CC disas/xtensa.o
CXX disas/libvixl/vixl/utils.o
CXX disas/libvixl/vixl/compiler-intrinsics.o
CXX disas/libvixl/vixl/a64/instructions-a64.o
CXX disas/libvixl/vixl/a64/disasm-a64.o
CXX disas/libvixl/vixl/a64/decoder-a64.o
CC fsdev/qemu-fsdev.o
CC fsdev/qemu-fsdev-opts.o
CC fsdev/qemu-fsdev-throttle.o
CC fsdev/qemu-fsdev-dummy.o
CC hw/9pfs/9p.o
CC hw/9pfs/9p-local.o
CC hw/9pfs/9p-util.o
CC hw/9pfs/9p-xattr.o
CC hw/9pfs/9p-xattr-user.o
CC hw/9pfs/9p-posix-acl.o
CC hw/9pfs/coth.o
CC hw/9pfs/cofs.o
CC hw/9pfs/codir.o
CC hw/9pfs/coxattr.o
CC hw/9pfs/cofile.o
CC hw/9pfs/9p-synth.o
CC hw/9pfs/9p-handle.o
CC hw/9pfs/9p-proxy.o
CC hw/acpi/core.o
CC hw/acpi/piix4.o
CC hw/acpi/pcihp.o
CC hw/acpi/ich9.o
CC hw/acpi/tco.o
CC hw/acpi/cpu_hotplug.o
CC hw/acpi/memory_hotplug.o
CC hw/acpi/cpu.o
CC hw/acpi/nvdimm.o
CC hw/acpi/vmgenid.o
CC hw/acpi/acpi_interface.o
CC hw/acpi/bios-linker-loader.o
CC hw/acpi/aml-build.o
CC hw/acpi/ipmi.o
CC hw/acpi/acpi-stub.o
CC hw/acpi/ipmi-stub.o
CC hw/audio/sb16.o
CC hw/audio/es1370.o
CC hw/audio/ac97.o
CC hw/audio/fmopl.o
CC hw/audio/adlib.o
CC hw/audio/gus.o
CC hw/audio/gusemu_mixer.o
CC hw/audio/gusemu_hal.o
CC hw/audio/cs4231a.o
CC hw/audio/intel-hda.o
CC hw/audio/hda-codec.o
CC hw/audio/pcspk.o
CC hw/audio/wm8750.o
CC hw/audio/pl041.o
CC hw/audio/cs4231.o
CC hw/audio/lm4549.o
CC hw/audio/marvell_88w8618.o
CC hw/audio/milkymist-ac97.o
CC hw/audio/soundhw.o
CC hw/block/block.o
CC hw/block/cdrom.o
CC hw/block/fdc.o
CC hw/block/hd-geometry.o
CC hw/block/m25p80.o
CC hw/block/nand.o
CC hw/block/pflash_cfi01.o
CC hw/block/pflash_cfi02.o
CC hw/block/ecc.o
CC hw/block/onenand.o
CC hw/block/nvme.o
CC hw/bt/core.o
CC hw/bt/l2cap.o
CC hw/bt/sdp.o
CC hw/bt/hci.o
CC hw/bt/hid.o
CC hw/bt/hci-csr.o
CC hw/char/ipoctal232.o
CC hw/char/escc.o
CC hw/char/parallel.o
CC hw/char/pl011.o
CC hw/char/serial.o
CC hw/char/serial-isa.o
CC hw/char/serial-pci.o
CC hw/char/virtio-console.o
CC hw/char/xilinx_uartlite.o
CC hw/char/cmsdk-apb-uart.o
CC hw/char/cadence_uart.o
CC hw/char/etraxfs_ser.o
CC hw/char/debugcon.o
CC hw/char/grlib_apbuart.o
CC hw/char/imx_serial.o
CC hw/char/lm32_juart.o
CC hw/char/lm32_uart.o
CC hw/char/milkymist-uart.o
CC hw/char/sclpconsole.o
CC hw/char/sclpconsole-lm.o
CC hw/core/qdev.o
CC hw/core/qdev-properties.o
CC hw/core/bus.o
CC hw/core/qdev-fw.o
CC hw/core/reset.o
CC hw/core/fw-path-provider.o
CC hw/core/irq.o
CC hw/core/hotplug.o
CC hw/core/nmi.o
CC hw/core/empty_slot.o
CC hw/core/stream.o
CC hw/core/ptimer.o
CC hw/core/sysbus.o
CC hw/core/machine.o
CC hw/core/loader.o
CC hw/core/loader-fit.o
CC hw/core/qdev-properties-system.o
CC hw/core/register.o
CC hw/core/or-irq.o
CC hw/core/platform-bus.o
CC hw/cpu/core.o
CC hw/display/ads7846.o
CC hw/display/cirrus_vga.o
CC hw/display/g364fb.o
CC hw/display/jazz_led.o
CC hw/display/pl110.o
CC hw/display/ssd0303.o
CC hw/display/ssd0323.o
CC hw/display/vga-pci.o
CC hw/display/vga-isa.o
CC hw/display/vga-isa-mm.o
CC hw/display/vmware_vga.o
CC hw/display/blizzard.o
CC hw/display/exynos4210_fimd.o
CC hw/display/framebuffer.o
CC hw/display/milkymist-vgafb.o
CC hw/display/tc6393xb.o
CC hw/dma/puv3_dma.o
CC hw/dma/rc4030.o
CC hw/dma/pl080.o
CC hw/dma/pl330.o
CC hw/dma/i82374.o
CC hw/dma/i8257.o
CC hw/dma/xilinx_axidma.o
CC hw/dma/xlnx-zynq-devcfg.o
CC hw/dma/sparc32_dma.o
CC hw/dma/etraxfs_dma.o
CC hw/gpio/max7310.o
CC hw/gpio/pl061.o
CC hw/gpio/puv3_gpio.o
CC hw/gpio/zaurus.o
CC hw/gpio/mpc8xxx.o
CC hw/gpio/gpio_key.o
CC hw/i2c/core.o
CC hw/i2c/smbus.o
CC hw/i2c/smbus_eeprom.o
CC hw/i2c/i2c-ddc.o
CC hw/i2c/versatile_i2c.o
CC hw/i2c/smbus_ich9.o
CC hw/i2c/pm_smbus.o
CC hw/i2c/bitbang_i2c.o
CC hw/i2c/exynos4210_i2c.o
CC hw/i2c/aspeed_i2c.o
CC hw/i2c/imx_i2c.o
CC hw/ide/core.o
CC hw/ide/atapi.o
CC hw/ide/qdev.o
CC hw/ide/pci.o
CC hw/ide/isa.o
CC hw/ide/piix.o
CC hw/ide/cmd646.o
CC hw/ide/macio.o
CC hw/ide/mmio.o
CC hw/ide/via.o
CC hw/ide/microdrive.o
CC hw/ide/ahci.o
CC hw/ide/ich.o
CC hw/ide/ahci-allwinner.o
CC hw/ide/sii3112.o
CC hw/input/adb.o
CC hw/input/adb-mouse.o
CC hw/input/adb-kbd.o
CC hw/input/hid.o
CC hw/input/lm832x.o
CC hw/input/pckbd.o
CC hw/input/pl050.o
CC hw/input/ps2.o
CC hw/input/stellaris_input.o
CC hw/input/tsc2005.o
CC hw/input/virtio-input.o
CC hw/input/virtio-input-host.o
CC hw/input/virtio-input-hid.o
CC hw/intc/heathrow_pic.o
CC hw/intc/i8259_common.o
CC hw/intc/i8259.o
CC hw/intc/pl190.o
CC hw/intc/puv3_intc.o
CC hw/intc/xilinx_intc.o
CC hw/intc/xlnx-pmu-iomod-intc.o
CC hw/intc/xlnx-zynqmp-ipi.o
CC hw/intc/etraxfs_pic.o
CC hw/intc/imx_avic.o
CC hw/intc/lm32_pic.o
CC hw/intc/realview_gic.o
CC hw/intc/slavio_intctl.o
CC hw/intc/ioapic_common.o
CC hw/intc/arm_gic_common.o
CC hw/intc/arm_gic.o
CC hw/intc/arm_gicv2m.o
CC hw/intc/arm_gicv3_common.o
CC hw/intc/arm_gicv3.o
CC hw/intc/arm_gicv3_dist.o
CC hw/intc/arm_gicv3_redist.o
CC hw/intc/arm_gicv3_its_common.o
CC hw/intc/openpic.o
CC hw/intc/intc.o
CC hw/ipack/ipack.o
CC hw/ipack/tpci200.o
CC hw/ipmi/ipmi.o
CC hw/ipmi/ipmi_bmc_sim.o
CC hw/ipmi/ipmi_bmc_extern.o
CC hw/ipmi/isa_ipmi_kcs.o
CC hw/ipmi/isa_ipmi_bt.o
CC hw/isa/isa-bus.o
CC hw/isa/i82378.o
CC hw/isa/apm.o
CC hw/isa/pc87312.o
CC hw/isa/piix4.o
CC hw/isa/vt82c686.o
CC hw/mem/pc-dimm.o
CC hw/mem/nvdimm.o
CC hw/misc/applesmc.o
CC hw/misc/max111x.o
CC hw/misc/tmp105.o
CC hw/misc/tmp421.o
CC hw/misc/debugexit.o
CC hw/misc/sga.o
CC hw/misc/pc-testdev.o
CC hw/misc/pci-testdev.o
CC hw/misc/edu.o
CC hw/misc/unimp.o
CC hw/misc/vmcoreinfo.o
CC hw/misc/arm_l2x0.o
CC hw/misc/arm_integrator_debug.o
CC hw/misc/a9scu.o
CC hw/misc/arm11scu.o
CC hw/misc/puv3_pm.o
CC hw/misc/macio/macio.o
CC hw/misc/macio/mac_dbdma.o
CC hw/misc/macio/cuda.o
CC hw/net/dp8393x.o
CC hw/net/ne2000.o
CC hw/net/eepro100.o
CC hw/net/pcnet-pci.o
CC hw/net/pcnet.o
CC hw/net/e1000.o
CC hw/net/e1000x_common.o
CC hw/net/net_tx_pkt.o
CC hw/net/net_rx_pkt.o
CC hw/net/e1000e.o
CC hw/net/e1000e_core.o
CC hw/net/rtl8139.o
CC hw/net/vmxnet3.o
CC hw/net/smc91c111.o
CC hw/net/lan9118.o
CC hw/net/ne2000-isa.o
CC hw/net/opencores_eth.o
CC hw/net/xgmac.o
CC hw/net/mipsnet.o
CC hw/net/xilinx_axienet.o
CC hw/net/allwinner_emac.o
CC hw/net/imx_fec.o
CC hw/net/stellaris_enet.o
CC hw/net/cadence_gem.o
CC hw/net/lance.o
CC hw/net/sunhme.o
CC hw/net/sungem.o
CC hw/net/rocker/rocker.o
CC hw/net/ftgmac100.o
CC hw/net/rocker/rocker_fp.o
CC hw/net/rocker/rocker_desc.o
CC hw/net/rocker/rocker_world.o
CC hw/net/rocker/rocker_of_dpa.o
CC hw/nvram/eeprom93xx.o
CC hw/nvram/eeprom_at24c.o
CC hw/nvram/ds1225y.o
CC hw/nvram/fw_cfg.o
CC hw/nvram/chrp_nvram.o
CC hw/nvram/mac_nvram.o
CC hw/pci-bridge/pci_bridge_dev.o
CC hw/pci-bridge/pcie_root_port.o
CC hw/pci-bridge/gen_pcie_root_port.o
CC hw/pci-bridge/pcie_pci_bridge.o
CC hw/pci-bridge/pci_expander_bridge.o
CC hw/pci-bridge/xio3130_upstream.o
CC hw/pci-bridge/xio3130_downstream.o
CC hw/pci-bridge/ioh3420.o
CC hw/pci-bridge/i82801b11.o
CC hw/pci-bridge/dec.o
CC hw/pci-bridge/simba.o
CC hw/pci-host/pam.o
CC hw/pci-host/prep.o
CC hw/pci-host/grackle.o
CC hw/pci-host/uninorth.o
CC hw/pci-host/ppce500.o
CC hw/pci-host/versatile.o
CC hw/pci-host/sabre.o
CC hw/pci-host/bonito.o
CC hw/pci-host/piix.o
CC hw/pci-host/q35.o
CC hw/pci-host/gpex.o
CC hw/pci-host/xilinx-pcie.o
CC hw/pci/pci.o
CC hw/pci/pci_bridge.o
CC hw/pci/msix.o
CC hw/pci/msi.o
CC hw/pci/shpc.o
CC hw/pci/slotid_cap.o
CC hw/pci/pci_host.o
CC hw/pci/pcie_host.o
CC hw/pci/pcie.o
CC hw/pci/pcie_aer.o
CC hw/pci/pcie_port.o
CC hw/pci/pci-stub.o
CC hw/pcmcia/pcmcia.o
CC hw/scsi/scsi-disk.o
CC hw/scsi/scsi-generic.o
CC hw/scsi/scsi-bus.o
CC hw/scsi/lsi53c895a.o
CC hw/scsi/mptsas.o
CC hw/scsi/mptconfig.o
CC hw/scsi/mptendian.o
CC hw/scsi/megasas.o
CC hw/scsi/vmw_pvscsi.o
CC hw/scsi/esp.o
CC hw/scsi/esp-pci.o
CC hw/sd/pl181.o
CC hw/sd/ssi-sd.o
CC hw/sd/sd.o
CC hw/sd/core.o
CC hw/sd/sdhci.o
CC hw/smbios/smbios.o
CC hw/smbios/smbios_type_38.o
CC hw/smbios/smbios-stub.o
CC hw/smbios/smbios_type_38-stub.o
CC hw/ssi/pl022.o
CC hw/ssi/ssi.o
CC hw/ssi/xilinx_spi.o
CC hw/ssi/xilinx_spips.o
CC hw/ssi/aspeed_smc.o
CC hw/ssi/stm32f2xx_spi.o
CC hw/ssi/mss-spi.o
CC hw/timer/arm_timer.o
CC hw/timer/arm_mptimer.o
CC hw/timer/armv7m_systick.o
CC hw/timer/a9gtimer.o
CC hw/timer/cadence_ttc.o
CC hw/timer/ds1338.o
CC hw/timer/hpet.o
CC hw/timer/i8254_common.o
CC hw/timer/i8254.o
CC hw/timer/m48t59.o
CC hw/timer/m48t59-isa.o
CC hw/timer/pl031.o
CC hw/timer/puv3_ost.o
CC hw/timer/twl92230.o
CC hw/timer/xilinx_timer.o
CC hw/timer/slavio_timer.o
CC hw/timer/etraxfs_timer.o
CC hw/timer/grlib_gptimer.o
CC hw/timer/imx_epit.o
CC hw/timer/imx_gpt.o
CC hw/timer/lm32_timer.o
CC hw/timer/milkymist-sysctl.o
CC hw/timer/aspeed_timer.o
CC hw/timer/stm32f2xx_timer.o
CC hw/timer/sun4v-rtc.o
CC hw/timer/cmsdk-apb-timer.o
CC hw/timer/mss-timer.o
CC hw/tpm/tpm_util.o
CC hw/tpm/tpm_tis.o
CC hw/tpm/tpm_emulator.o
CC hw/usb/core.o
CC hw/usb/combined-packet.o
CC hw/usb/bus.o
CC hw/usb/libhw.o
CC hw/usb/desc.o
CC hw/usb/desc-msos.o
CC hw/usb/hcd-uhci.o
CC hw/usb/hcd-ohci.o
CC hw/usb/hcd-ehci.o
CC hw/usb/hcd-ehci-pci.o
CC hw/usb/hcd-ehci-sysbus.o
CC hw/usb/hcd-xhci.o
CC hw/usb/hcd-xhci-nec.o
CC hw/usb/hcd-musb.o
CC hw/usb/dev-hub.o
CC hw/usb/dev-hid.o
CC hw/usb/dev-wacom.o
CC hw/usb/dev-storage.o
CC hw/usb/dev-uas.o
CC hw/usb/dev-audio.o
CC hw/usb/dev-serial.o
CC hw/usb/dev-network.o
CC hw/usb/dev-bluetooth.o
CC hw/usb/dev-smartcard-reader.o
CC hw/usb/dev-mtp.o
CC hw/usb/host-libusb.o
CC hw/usb/host-stub.o
CC hw/virtio/virtio-rng.o
CC hw/virtio/virtio-pci.o
CC hw/virtio/virtio-bus.o
CC hw/virtio/virtio-mmio.o
CC hw/virtio/vhost-stub.o
CC hw/watchdog/watchdog.o
CC hw/watchdog/wdt_i6300esb.o
CC hw/watchdog/wdt_diag288.o
CC hw/watchdog/wdt_ib700.o
CC hw/watchdog/wdt_aspeed.o
CC migration/migration.o
CC migration/socket.o
CC migration/fd.o
CC migration/exec.o
CC migration/tls.o
CC migration/channel.o
CC migration/savevm.o
CC migration/colo-comm.o
CC migration/colo-failover.o
CC migration/colo.o
CC migration/vmstate.o
CC migration/vmstate-types.o
CC migration/page_cache.o
CC migration/qemu-file.o
CC migration/qemu-file-channel.o
CC migration/global_state.o
CC migration/xbzrle.o
CC migration/postcopy-ram.o
CC migration/qjson.o
CC migration/rdma.o
CC migration/block.o
CC net/net.o
CC net/queue.o
CC net/checksum.o
CC net/util.o
CC net/hub.o
CC net/socket.o
CC net/dump.o
CC net/l2tpv3.o
CC net/eth.o
CC net/vhost-user.o
CC net/slirp.o
CC net/filter.o
CC net/filter-buffer.o
CC net/filter-mirror.o
CC net/colo-compare.o
CC net/colo.o
CC net/filter-rewriter.o
CC net/filter-replay.o
CC net/tap.o
CC net/tap-linux.o
CC qom/cpu.o
CC replay/replay.o
CC replay/replay-internal.o
CC replay/replay-events.o
CC replay/replay-time.o
CC replay/replay-input.o
CC replay/replay-char.o
CC replay/replay-snapshot.o
CC replay/replay-net.o
CC replay/replay-audio.o
CC slirp/cksum.o
CC slirp/if.o
CC slirp/ip_icmp.o
CC slirp/ip6_icmp.o
CC slirp/ip6_input.o
CC slirp/ip6_output.o
CC slirp/ip_input.o
CC slirp/ip_output.o
CC slirp/dhcpv6.o
CC slirp/dnssearch.o
CC slirp/slirp.o
CC slirp/mbuf.o
CC slirp/misc.o
CC slirp/sbuf.o
CC slirp/tcp_input.o
CC slirp/socket.o
CC slirp/tcp_output.o
CC slirp/tcp_subr.o
CC slirp/tcp_timer.o
CC slirp/udp.o
CC slirp/udp6.o
CC slirp/bootp.o
CC slirp/tftp.o
CC slirp/arp_table.o
CC slirp/ndp_table.o
CC slirp/ncsi.o
CC ui/keymaps.o
CC ui/console.o
CC ui/cursor.o
CC ui/qemu-pixman.o
CC ui/input.o
CC ui/input-keymap.o
CC ui/input-legacy.o
CC ui/input-linux.o
CC ui/sdl.o
CC ui/sdl_zoom.o
CC ui/vnc.o
CC ui/curses.o
CC ui/vnc-enc-zlib.o
CC ui/vnc-enc-hextile.o
CC ui/vnc-enc-tight.o
CC ui/vnc-palette.o
CC ui/vnc-enc-zrle.o
CC ui/vnc-ws.o
CC ui/vnc-auth-sasl.o
CC ui/vnc-jobs.o
CC ui/vnc-auth-vencrypt.o
CC ui/gtk.o
CC ui/x_keymap.o
CC chardev/char.o
CC chardev/char-fe.o
CC chardev/char-io.o
CC chardev/char-mux.o
CC chardev/char-fd.o
CC chardev/char-file.o
CC chardev/char-null.o
CC chardev/char-parallel.o
CC chardev/char-pipe.o
CC chardev/char-pty.o
CC chardev/char-ringbuf.o
CC chardev/char-serial.o
CC chardev/char-socket.o
CC chardev/char-stdio.o
CC chardev/char-udp.o
LINK tests/qemu-iotests/socket_scm_helper
CCAS spapr-rtas/spapr-rtas.o
CC qga/commands.o
CC qga/guest-agent-command-state.o
CC qga/main.o
Building spapr-rtas/spapr-rtas.img
Building spapr-rtas/spapr-rtas.bin
CC qga/commands-posix.o
CC qga/channel-posix.o
CC qga/qapi-generated/qga-qapi-types.o
CC qga/qapi-generated/qga-qapi-visit.o
CC qga/qapi-generated/qga-qmp-marshal.o
CC qemu-img.o
AR libqemuutil.a
LINK qemu-ga
LINK ivshmem-client
LINK ivshmem-server
LINK qemu-nbd
LINK qemu-img
LINK qemu-io
LINK fsdev/virtfs-proxy-helper
LINK scsi/qemu-pr-helper
LINK qemu-bridge-helper
GEN aarch64-linux-user/config-target.h
CC aarch64-linux-user/exec.o
CC aarch64-linux-user/tcg/tcg.o
CC aarch64-linux-user/tcg/tcg-op.o
CC aarch64-linux-user/tcg/optimize.o
CC aarch64-linux-user/tcg/tcg-common.o
GEN or1k-linux-user/config-target.h
CC aarch64-linux-user/fpu/softfloat.o
CC aarch64-linux-user/disas.o
GEN aarch64-linux-user/gdbstub-xml.c
CC aarch64-linux-user/thunk.o
CC aarch64-linux-user/gdbstub.o
CC aarch64-linux-user/accel/stubs/hax-stub.o
GEN microblazeel-linux-user/config-target.h
GEN alpha-linux-user/config-target.h
CC or1k-linux-user/exec.o
CC or1k-linux-user/tcg/tcg.o
CC or1k-linux-user/tcg/tcg-op.o
GEN ppc-linux-user/config-target.h
CC aarch64-linux-user/accel/stubs/hvf-stub.o
GEN mipsel-linux-user/config-target.h
GEN mips64-linux-user/config-target.h
CC aarch64-linux-user/accel/stubs/kvm-stub.o
CC aarch64-linux-user/accel/tcg/cpu-exec.o
CC aarch64-linux-user/accel/tcg/tcg-runtime.o
GEN sparc64-linux-user/config-target.h
CC aarch64-linux-user/accel/tcg/cpu-exec-common.o
CC or1k-linux-user/fpu/softfloat.o
CC or1k-linux-user/tcg/optimize.o
CC aarch64-linux-user/accel/tcg/translate-all.o
CC or1k-linux-user/disas.o
CC aarch64-linux-user/accel/tcg/translator.o
CC or1k-linux-user/tcg/tcg-common.o
CC aarch64-linux-user/accel/tcg/user-exec.o
GEN hppa-linux-user/config-target.h
CC aarch64-linux-user/accel/tcg/user-exec-stub.o
CC or1k-linux-user/gdbstub.o
CC or1k-linux-user/thunk.o
CC alpha-linux-user/exec.o
CC aarch64-linux-user/linux-user/main.o
CC mipsel-linux-user/exec.o
CC aarch64-linux-user/linux-user/strace.o
CC microblazeel-linux-user/tcg/tcg.o
CC aarch64-linux-user/linux-user/syscall.o
CC or1k-linux-user/accel/stubs/hax-stub.o
CC microblazeel-linux-user/exec.o
CC or1k-linux-user/accel/stubs/kvm-stub.o
CC mipsel-linux-user/tcg/optimize.o
CC mipsel-linux-user/tcg/tcg.o
CC mipsel-linux-user/tcg/tcg-common.o
CC sparc64-linux-user/exec.o
CC alpha-linux-user/tcg/tcg.o
GEN armeb-linux-user/config-target.h
CC or1k-linux-user/accel/stubs/hvf-stub.o
GEN i386-linux-user/config-target.h
CC sparc64-linux-user/tcg/tcg.o
GEN sparc-linux-user/config-target.h
GEN mips64el-linux-user/config-target.h
CC mipsel-linux-user/tcg/tcg-op.o
GEN mipsn32el-linux-user/config-target.h
GEN x86_64-linux-user/config-target.h
GEN aarch64_be-linux-user/config-target.h
GEN ppc64le-linux-user/config-target.h
GEN m68k-linux-user/config-target.h
GEN sh4-linux-user/config-target.h
GEN cris-linux-user/config-target.h
GEN sparc32plus-linux-user/config-target.h
GEN ppc64-linux-user/config-target.h
GEN nios2-linux-user/config-target.h
GEN arm-linux-user/config-target.h
CC ppc-linux-user/exec.o
CC hppa-linux-user/exec.o
CC i386-linux-user/exec.o
CC ppc64le-linux-user/exec.o
CC armeb-linux-user/exec.o
CC mipsn32el-linux-user/exec.o
CC sparc-linux-user/exec.o
CC x86_64-linux-user/exec.o
CC s390x-linux-user/gen-features
CC mips64-linux-user/exec.o
GEN mips-linux-user/config-target.h
GEN microblaze-linux-user/config-target.h
CC sh4-linux-user/exec.o
GEN tilegx-linux-user/config-target.h
CC mips64el-linux-user/exec.o
CC sparc32plus-linux-user/exec.o
CC aarch64_be-linux-user/exec.o
CC nios2-linux-user/exec.o
CC m68k-linux-user/exec.o
GEN mipsn32-linux-user/config-target.h
CC ppc64-linux-user/exec.o
CC cris-linux-user/exec.o
GEN ppc64abi32-linux-user/config-target.h
CC arm-linux-user/exec.o
GEN sh4eb-linux-user/config-target.h
CC mips-linux-user/exec.o
CC tilegx-linux-user/exec.o
CC microblaze-linux-user/exec.o
CC ppc64abi32-linux-user/exec.o
CC mipsn32-linux-user/exec.o
GEN or1k-softmmu/hmp-commands.h
CC sh4eb-linux-user/exec.o
CC sh4eb-linux-user/tcg/tcg.o
GEN s390x-linux-user/config-target.h
GEN or1k-softmmu/hmp-commands-info.h
GEN s390x-linux-user/gen-features.h
CC or1k-linux-user/accel/tcg/tcg-runtime.o
CC hppa-linux-user/tcg/tcg.o
GEN cris-softmmu/hmp-commands.h
CC cris-linux-user/tcg/tcg.o
CC microblaze-linux-user/tcg/tcg.o
CC hppa-linux-user/tcg/tcg-op.o
CC alpha-linux-user/tcg/tcg-op.o
CC s390x-linux-user/exec.o
CC hppa-linux-user/tcg/optimize.o
CC hppa-linux-user/tcg/tcg-common.o
GEN microblaze-softmmu/hmp-commands.h
CC m68k-linux-user/tcg/tcg.o
CC armeb-linux-user/tcg/tcg.o
GEN or1k-softmmu/config-target.h
GEN moxie-softmmu/hmp-commands.h
GEN cris-softmmu/hmp-commands-info.h
GEN m68k-softmmu/hmp-commands.h
CC cris-linux-user/tcg/tcg-op.o
CC or1k-softmmu/exec.o
GEN cris-softmmu/config-target.h
CC cris-linux-user/tcg/optimize.o
CC cris-softmmu/exec.o
CC s390x-linux-user/tcg/tcg.o
GEN microblaze-softmmu/hmp-commands-info.h
CC sparc32plus-linux-user/tcg/tcg.o
GEN m68k-softmmu/hmp-commands-info.h
GEN nios2-softmmu/hmp-commands.h
GEN moxie-softmmu/hmp-commands-info.h
GEN tricore-softmmu/hmp-commands.h
CC armeb-linux-user/tcg/tcg-op.o
GEN xtensaeb-softmmu/hmp-commands.h
GEN alpha-softmmu/hmp-commands.h
GEN microblaze-softmmu/config-target.h
GEN unicore32-softmmu/hmp-commands.h
GEN xtensaeb-softmmu/hmp-commands-info.h
GEN m68k-softmmu/config-target.h
CC microblaze-softmmu/exec.o
CC mips64-linux-user/tcg/tcg.o
CC ppc64le-linux-user/tcg/tcg.o
CC m68k-softmmu/exec.o
GEN moxie-softmmu/config-target.h
CC moxie-softmmu/exec.o
GEN tricore-softmmu/hmp-commands-info.h
CC i386-linux-user/tcg/tcg.o
GEN nios2-softmmu/hmp-commands-info.h
CC tilegx-linux-user/tcg/tcg.o
CC mipsn32el-linux-user/tcg/tcg.o
GEN unicore32-softmmu/hmp-commands-info.h
CC ppc64abi32-linux-user/tcg/tcg.o
CC i386-linux-user/tcg/tcg-op.o
GEN lm32-softmmu/hmp-commands.h
GEN alpha-softmmu/hmp-commands-info.h
CC mipsn32el-linux-user/tcg/tcg-op.o
GEN microblazeel-softmmu/hmp-commands.h
GEN tricore-softmmu/config-target.h
CC sh4eb-linux-user/tcg/tcg-op.o
CC sh4eb-linux-user/tcg/optimize.o
CC tilegx-linux-user/tcg/tcg-op.o
GEN sh4eb-softmmu/hmp-commands.h
GEN xtensaeb-softmmu/config-target.h
CC aarch64_be-linux-user/tcg/tcg.o
CC tricore-softmmu/exec.o
CC aarch64_be-linux-user/tcg/tcg-op.o
GEN nios2-softmmu/config-target.h
CC mipsel-linux-user/fpu/softfloat.o
CC sparc64-linux-user/tcg/tcg-op.o
CC ppc64abi32-linux-user/tcg/tcg-op.o
GEN unicore32-softmmu/config-target.h
CC xtensaeb-softmmu/exec.o
CC xtensaeb-softmmu/tcg/tcg.o
CC nios2-softmmu/exec.o
CC mips-linux-user/tcg/tcg.o
GEN sparc-softmmu/hmp-commands.h
CC sh4-linux-user/tcg/tcg.o
GEN ppc-softmmu/hmp-commands.h
CC cris-softmmu/tcg/tcg.o
CC mipsn32el-linux-user/tcg/optimize.o
CC unicore32-softmmu/exec.o
CC mips64el-linux-user/tcg/tcg.o
CC x86_64-linux-user/tcg/tcg.o
CC alpha-linux-user/tcg/optimize.o
GEN lm32-softmmu/hmp-commands-info.h
GEN alpha-softmmu/config-target.h
GEN microblazeel-softmmu/hmp-commands-info.h
CC alpha-linux-user/tcg/tcg-common.o
CC mipsel-linux-user/disas.o
GEN sh4eb-softmmu/hmp-commands-info.h
CC alpha-softmmu/exec.o
GEN arm-softmmu/hmp-commands.h
CC nios2-linux-user/tcg/tcg.o
CC ppc64-linux-user/tcg/tcg.o
GEN lm32-softmmu/config-target.h
CC arm-linux-user/tcg/tcg.o
GEN s390x-softmmu/hmp-commands.h
GEN sparc-softmmu/hmp-commands-info.h
CC arm-linux-user/tcg/tcg-op.o
GEN mips-softmmu/hmp-commands.h
GEN mips-softmmu/hmp-commands-info.h
CC lm32-softmmu/exec.o
GEN microblazeel-softmmu/config-target.h
GEN i386-softmmu/hmp-commands.h
CC mipsn32-linux-user/tcg/tcg.o
GEN sparc-softmmu/config-target.h
GEN ppc-softmmu/hmp-commands-info.h
GEN xtensa-softmmu/hmp-commands.h
CC microblazeel-softmmu/exec.o
CC sparc-softmmu/exec.o
GEN sh4eb-softmmu/config-target.h
GEN ppc64-softmmu/hmp-commands.h
CC sparc-linux-user/tcg/tcg.o
CC sparc-softmmu/tcg/tcg.o
GEN sparc64-softmmu/hmp-commands.h
CC sh4eb-softmmu/exec.o
CC sparc-softmmu/tcg/tcg-op.o
GEN ppc-softmmu/config-target.h
CC mipsn32el-linux-user/tcg/tcg-common.o
GEN ppcemb-softmmu/hmp-commands.h
GEN sh4-softmmu/hmp-commands.h
CC ppc-softmmu/exec.o
CC mipsn32el-linux-user/fpu/softfloat.o
GEN arm-softmmu/hmp-commands-info.h
GEN mips64-softmmu/hmp-commands.h
GEN s390x-softmmu/hmp-commands-info.h
CC ppc-linux-user/tcg/tcg.o
GEN mips-softmmu/config-target.h
GEN i386-softmmu/hmp-commands-info.h
GEN aarch64-softmmu/hmp-commands.h
CC mips-softmmu/exec.o
GEN arm-softmmu/config-target.h
GEN i386-softmmu/config-target.h
CC arm-softmmu/exec.o
GEN ppcemb-softmmu/hmp-commands-info.h
GEN xtensa-softmmu/hmp-commands-info.h
CC s390x-softmmu/gen-features
GEN ppcemb-softmmu/config-target.h
GEN ppc64-softmmu/hmp-commands-info.h
CC cris-softmmu/tcg/tcg-op.o
CC arm-softmmu/tcg/tcg.o
CC ppc64abi32-linux-user/tcg/optimize.o
GEN mips64el-softmmu/hmp-commands.h
CC i386-softmmu/exec.o
GEN mipsel-softmmu/hmp-commands.h
GEN xtensa-softmmu/config-target.h
GEN x86_64-softmmu/hmp-commands.h
GEN sparc64-softmmu/hmp-commands-info.h
CC ppcemb-softmmu/exec.o
GEN sh4-softmmu/hmp-commands-info.h
GEN mips64-softmmu/hmp-commands-info.h
CC xtensa-softmmu/exec.o
CC m68k-linux-user/tcg/tcg-op.o
GEN aarch64-softmmu/hmp-commands-info.h
GEN ppc64-softmmu/config-target.h
GEN sparc64-softmmu/config-target.h
GEN mipsel-softmmu/hmp-commands-info.h
GEN s390x-softmmu/config-target.h
CC ppc64-softmmu/exec.o
GEN sh4-softmmu/config-target.h
GEN aarch64-softmmu/config-target.h
CC sparc64-softmmu/exec.o
GEN s390x-softmmu/gen-features.h
CC ppc64-softmmu/tcg/tcg.o
CC aarch64-softmmu/exec.o
CC sh4-softmmu/exec.o
GEN x86_64-softmmu/hmp-commands-info.h
GEN mips64-softmmu/config-target.h
CC s390x-softmmu/exec.o
GEN mips64el-softmmu/hmp-commands-info.h
GEN mipsel-softmmu/config-target.h
CC mips64-softmmu/exec.o
CC sh4-linux-user/tcg/tcg-op.o
CC mipsel-softmmu/exec.o
GEN x86_64-softmmu/config-target.h
CC m68k-linux-user/tcg/optimize.o
CC armeb-linux-user/tcg/optimize.o
CC x86_64-softmmu/exec.o
GEN mips64el-softmmu/config-target.h
CC mips64el-softmmu/exec.o
CC or1k-linux-user/accel/tcg/cpu-exec.o
CC arm-linux-user/tcg/optimize.o
CC ppc-softmmu/tcg/tcg.o
CC x86_64-linux-user/tcg/tcg-op.o
CC moxie-softmmu/tcg/tcg.o
CC s390x-linux-user/tcg/tcg-op.o
CC sh4eb-softmmu/tcg/tcg.o
CC xtensaeb-softmmu/tcg/tcg-op.o
CC microblazeel-linux-user/tcg/tcg-op.o
CC aarch64_be-linux-user/tcg/optimize.o
CC xtensa-softmmu/tcg/tcg.o
CC ppc-softmmu/tcg/tcg-op.o
CC nios2-softmmu/tcg/tcg.o
CC mipsn32-linux-user/tcg/tcg-op.o
CC nios2-linux-user/tcg/tcg-op.o
CC i386-linux-user/tcg/optimize.o
CC microblaze-linux-user/tcg/tcg-op.o
CC sh4-linux-user/tcg/optimize.o
CC microblaze-linux-user/tcg/optimize.o
CC mips64-softmmu/tcg/tcg.o
CC mips64-softmmu/tcg/tcg-op.o
CC tilegx-linux-user/tcg/optimize.o
CC sh4eb-softmmu/tcg/tcg-op.o
CC ppc64abi32-linux-user/tcg/tcg-common.o
CC sparc32plus-linux-user/tcg/tcg-op.o
CC mips64-linux-user/tcg/tcg-op.o
CC tilegx-linux-user/tcg/tcg-common.o
CC x86_64-softmmu/tcg/tcg.o
CC microblazeel-softmmu/tcg/tcg.o
CC alpha-linux-user/fpu/softfloat.o
CC sparc64-softmmu/tcg/tcg.o
CC alpha-softmmu/tcg/tcg.o
CC aarch64-softmmu/tcg/tcg.o
CC ppc64abi32-linux-user/fpu/softfloat.o
CC x86_64-linux-user/tcg/optimize.o
CC x86_64-linux-user/tcg/tcg-common.o
CC sparc-linux-user/tcg/tcg-op.o
CC microblaze-linux-user/tcg/tcg-common.o
CC arm-linux-user/tcg/tcg-common.o
CC sh4eb-linux-user/tcg/tcg-common.o
CC x86_64-linux-user/fpu/softfloat.o
CC sparc32plus-linux-user/tcg/optimize.o
CC alpha-linux-user/disas.o
CC hppa-linux-user/fpu/softfloat.o
CC arm-linux-user/fpu/softfloat.o
CC aarch64_be-linux-user/tcg/tcg-common.o
CC arm-linux-user/disas.o
CC sparc-linux-user/tcg/optimize.o
CC ppcemb-softmmu/tcg/tcg.o
CC sh4eb-linux-user/fpu/softfloat.o
CC sh4eb-linux-user/disas.o
CC or1k-softmmu/tcg/tcg.o
CC or1k-softmmu/tcg/tcg-op.o
CC armeb-linux-user/tcg/tcg-common.o
CC alpha-softmmu/tcg/tcg-op.o
CC ppc64abi32-linux-user/disas.o
CC cris-linux-user/tcg/tcg-common.o
CC or1k-linux-user/accel/tcg/cpu-exec-common.o
CC nios2-softmmu/tcg/tcg-op.o
CC sparc64-linux-user/tcg/optimize.o
CC nios2-softmmu/tcg/optimize.o
CC aarch64_be-linux-user/fpu/softfloat.o
CC i386-linux-user/tcg/tcg-common.o
CC microblaze-softmmu/tcg/tcg.o
CC i386-linux-user/fpu/softfloat.o
CC tilegx-linux-user/fpu/softfloat.o
CC cris-linux-user/fpu/softfloat.o
CC sparc64-linux-user/tcg/tcg-common.o
CC sh4-linux-user/tcg/tcg-common.o
CC sparc64-softmmu/tcg/tcg-op.o
CC i386-linux-user/disas.o
CC m68k-linux-user/tcg/tcg-common.o
CC armeb-linux-user/fpu/softfloat.o
CC or1k-linux-user/accel/tcg/translate-all.o
CC ppc64le-linux-user/tcg/tcg-op.o
CC aarch64_be-linux-user/disas.o
CC mips-softmmu/tcg/tcg.o
CC xtensa-softmmu/tcg/tcg-op.o
CC sparc64-softmmu/tcg/optimize.o
CC lm32-softmmu/tcg/tcg.o
CC m68k-softmmu/tcg/tcg.o
CC sparc64-softmmu/tcg/tcg-common.o
CC mips64-softmmu/tcg/optimize.o
CC or1k-linux-user/accel/tcg/translator.o
CC moxie-softmmu/tcg/tcg-op.o
CC moxie-softmmu/tcg/optimize.o
CC m68k-linux-user/fpu/softfloat.o
CC mips64el-linux-user/tcg/tcg-op.o
CC sh4-linux-user/fpu/softfloat.o
CC mips-linux-user/tcg/tcg-op.o
CC m68k-linux-user/disas.o
CC mipsel-softmmu/tcg/tcg.o
GEN m68k-linux-user/gdbstub-xml.c
CC cris-softmmu/tcg/optimize.o
CC ppc64-linux-user/tcg/tcg-op.o
CC ppc64-linux-user/tcg/optimize.o
CC mips64el-linux-user/tcg/optimize.o
CC ppc-softmmu/tcg/optimize.o
GEN ppc64abi32-linux-user/gdbstub-xml.c
CC mips64-softmmu/tcg/tcg-common.o
CC hppa-linux-user/disas.o
CC s390x-softmmu/tcg/tcg.o
CC tricore-softmmu/tcg/tcg.o
CC sparc32plus-linux-user/tcg/tcg-common.o
CC nios2-linux-user/tcg/optimize.o
CC hppa-linux-user/gdbstub.o
CC microblazeel-linux-user/tcg/optimize.o
CC m68k-linux-user/gdbstub.o
CC s390x-linux-user/tcg/optimize.o
CC unicore32-softmmu/tcg/tcg.o
CC i386-softmmu/tcg/tcg.o
CC s390x-linux-user/tcg/tcg-common.o
GEN arm-linux-user/gdbstub-xml.c
CC sparc-softmmu/tcg/optimize.o
CC sh4-softmmu/tcg/tcg.o
CC mips-linux-user/tcg/optimize.o
CC mips64el-softmmu/tcg/tcg.o
CC sparc64-softmmu/fpu/softfloat.o
CC aarch64-softmmu/tcg/tcg-op.o
CC mipsel-linux-user/gdbstub.o
CC mipsel-linux-user/thunk.o
CC or1k-linux-user/accel/tcg/user-exec.o
CC mipsel-softmmu/tcg/tcg-op.o
CC armeb-linux-user/disas.o
CC xtensa-softmmu/tcg/optimize.o
CC ppc64abi32-linux-user/gdbstub.o
CC aarch64-linux-user/linux-user/mmap.o
CC sparc-softmmu/tcg/tcg-common.o
CC ppcemb-softmmu/tcg/tcg-op.o
CC ppc-linux-user/tcg/tcg-op.o
CC ppc64-softmmu/tcg/tcg-op.o
CC xtensaeb-softmmu/tcg/optimize.o
GEN armeb-linux-user/gdbstub-xml.c
CC nios2-softmmu/tcg/tcg-common.o
CC ppc-linux-user/tcg/optimize.o
CC mipsel-softmmu/tcg/optimize.o
CC tilegx-linux-user/disas.o
CC ppc64-softmmu/tcg/optimize.o
CC mips64el-softmmu/tcg/tcg-op.o
CC ppc-linux-user/tcg/tcg-common.o
CC ppc-linux-user/fpu/softfloat.o
CC cris-linux-user/disas.o
CC aarch64-softmmu/tcg/optimize.o
CC arm-softmmu/tcg/tcg-op.o
CC cris-softmmu/tcg/tcg-common.o
GEN aarch64_be-linux-user/gdbstub-xml.c
CC s390x-linux-user/fpu/softfloat.o
CC sh4eb-softmmu/tcg/optimize.o
CC microblazeel-linux-user/tcg/tcg-common.o
CC x86_64-linux-user/disas.o
CC tricore-softmmu/tcg/tcg-op.o
CC sparc64-softmmu/disas.o
CC sparc64-linux-user/fpu/softfloat.o
CC ppc-linux-user/disas.o
CC sh4eb-softmmu/tcg/tcg-common.o
CC sh4-linux-user/disas.o
CC xtensa-softmmu/tcg/tcg-common.o
CC mips64el-softmmu/tcg/optimize.o
GEN x86_64-linux-user/gdbstub-xml.c
CC microblazeel-linux-user/fpu/softfloat.o
CC xtensaeb-softmmu/tcg/tcg-common.o
CC cris-softmmu/fpu/softfloat.o
CC m68k-linux-user/thunk.o
CC aarch64_be-linux-user/gdbstub.o
CC mipsel-linux-user/accel/stubs/hax-stub.o
CC lm32-softmmu/tcg/tcg-op.o
CC s390x-softmmu/tcg/tcg-op.o
CC mipsn32el-linux-user/disas.o
CC x86_64-softmmu/tcg/tcg-op.o
CC mipsn32-linux-user/tcg/optimize.o
CC cris-softmmu/disas.o
CC sh4-linux-user/gdbstub.o
CC mips-softmmu/tcg/tcg-op.o
CC microblaze-linux-user/fpu/softfloat.o
CC nios2-linux-user/tcg/tcg-common.o
CC s390x-linux-user/disas.o
CC unicore32-softmmu/tcg/tcg-op.o
CC microblaze-softmmu/tcg/tcg-op.o
CC mipsn32-linux-user/tcg/tcg-common.o
CC mipsel-linux-user/accel/stubs/hvf-stub.o
CC mips64-softmmu/fpu/softfloat.o
CC ppcemb-softmmu/tcg/optimize.o
CC s390x-softmmu/tcg/optimize.o
CC sparc64-linux-user/disas.o
CC armeb-linux-user/gdbstub.o
CC or1k-softmmu/tcg/optimize.o
CC microblazeel-softmmu/tcg/tcg-op.o
CC moxie-softmmu/tcg/tcg-common.o
CC mipsn32-linux-user/fpu/softfloat.o
CC sh4eb-linux-user/gdbstub.o
CC nios2-linux-user/fpu/softfloat.o
CC sparc-softmmu/fpu/softfloat.o
CC mipsn32el-linux-user/gdbstub.o
CC sparc-softmmu/disas.o
CC or1k-linux-user/accel/tcg/user-exec-stub.o
GEN s390x-linux-user/gdbstub-xml.c
CC microblazeel-softmmu/tcg/optimize.o
CC ppc-softmmu/tcg/tcg-common.o
CC mipsel-linux-user/accel/stubs/kvm-stub.o
CC ppc64-linux-user/tcg/tcg-common.o
CC nios2-softmmu/fpu/softfloat.o
CC nios2-softmmu/disas.o
CC or1k-linux-user/linux-user/main.o
CC sparc64-softmmu/arch_init.o
CC ppc-softmmu/fpu/softfloat.o
CC sparc-linux-user/tcg/tcg-common.o
CC sh4eb-softmmu/fpu/softfloat.o
CC sparc-linux-user/fpu/softfloat.o
CC sparc64-linux-user/gdbstub.o
CC ppc-softmmu/disas.o
CC mipsel-linux-user/accel/tcg/tcg-runtime.o
CC cris-softmmu/arch_init.o
CC sparc32plus-linux-user/fpu/softfloat.o
CC mips64-softmmu/disas.o
CC sh4eb-linux-user/thunk.o
CC hppa-linux-user/thunk.o
CC sh4eb-linux-user/accel/stubs/hax-stub.o
CC hppa-linux-user/accel/stubs/hax-stub.o
CC mips64el-softmmu/tcg/tcg-common.o
CC or1k-linux-user/linux-user/syscall.o
CC xtensaeb-softmmu/fpu/softfloat.o
CC xtensa-softmmu/fpu/softfloat.o
CC mips64-linux-user/tcg/optimize.o
CC arm-softmmu/tcg/optimize.o
CC i386-softmmu/tcg/tcg-op.o
CC alpha-linux-user/gdbstub.o
CC mipsn32-linux-user/disas.o
CC or1k-linux-user/linux-user/strace.o
CC cris-softmmu/cpus.o
GEN ppc-softmmu/gdbstub-xml.c
CC microblazeel-linux-user/disas.o
CC mipsel-linux-user/accel/tcg/cpu-exec.o
CC mipsn32el-linux-user/thunk.o
CC unicore32-softmmu/tcg/optimize.o
CC tilegx-linux-user/gdbstub.o
CC tilegx-linux-user/thunk.o
CC arm-softmmu/tcg/tcg-common.o
CC microblazeel-linux-user/gdbstub.o
CC microblazeel-linux-user/thunk.o
CC microblazeel-linux-user/accel/stubs/hax-stub.o
CC or1k-linux-user/linux-user/mmap.o
CC or1k-linux-user/linux-user/signal.o
CC ppc64le-linux-user/tcg/optimize.o
CC ppc64abi32-linux-user/thunk.o
CC ppc64-linux-user/fpu/softfloat.o
CC ppc64-linux-user/disas.o
CC sparc32plus-linux-user/disas.o
GEN i386-linux-user/gdbstub-xml.c
CC alpha-linux-user/thunk.o
CC unicore32-softmmu/tcg/tcg-common.o
CC sh4-linux-user/thunk.o
CC microblazeel-linux-user/accel/stubs/hvf-stub.o
CC mipsel-linux-user/accel/tcg/cpu-exec-common.o
CC mips64el-linux-user/tcg/tcg-common.o
CC sparc-linux-user/disas.o
CC mips64-softmmu/arch_init.o
CC ppc64-softmmu/tcg/tcg-common.o
CC xtensa-softmmu/disas.o
CC aarch64-linux-user/linux-user/signal.o
CC mipsn32el-linux-user/accel/stubs/hax-stub.o
CC mipsel-linux-user/accel/tcg/translate-all.o
CC alpha-softmmu/tcg/optimize.o
CC mipsn32el-linux-user/accel/stubs/hvf-stub.o
GEN ppc-linux-user/gdbstub-xml.c
CC mipsel-softmmu/tcg/tcg-common.o
CC mipsn32el-linux-user/accel/stubs/kvm-stub.o
CC sparc-softmmu/arch_init.o
CC i386-linux-user/gdbstub.o
CC mipsel-softmmu/fpu/softfloat.o
CC moxie-softmmu/fpu/softfloat.o
CC mips64-softmmu/cpus.o
CC m68k-softmmu/tcg/tcg-op.o
CC s390x-linux-user/gdbstub.o
CC i386-softmmu/tcg/optimize.o
CC hppa-linux-user/accel/stubs/hvf-stub.o
CC ppc64abi32-linux-user/accel/stubs/hax-stub.o
CC sparc64-linux-user/thunk.o
CC mipsn32el-linux-user/accel/tcg/tcg-runtime.o
CC or1k-linux-user/linux-user/elfload.o
CC sh4eb-linux-user/accel/stubs/hvf-stub.o
CC alpha-linux-user/accel/stubs/hax-stub.o
CC alpha-linux-user/accel/stubs/hvf-stub.o
CC armeb-linux-user/thunk.o
CC x86_64-softmmu/tcg/optimize.o
CC arm-softmmu/fpu/softfloat.o
CC microblazeel-linux-user/accel/stubs/kvm-stub.o
CC mips-linux-user/tcg/tcg-common.o
CC nios2-linux-user/disas.o
CC sh4eb-softmmu/disas.o
CC or1k-softmmu/tcg/tcg-common.o
CC aarch64-linux-user/linux-user/elfload.o
CC arm-linux-user/gdbstub.o
CC sparc-linux-user/gdbstub.o
CC sparc-linux-user/thunk.o
CC hppa-linux-user/accel/stubs/kvm-stub.o
CC alpha-linux-user/accel/stubs/kvm-stub.o
CC sparc-linux-user/accel/stubs/hax-stub.o
CC sparc-linux-user/accel/stubs/hvf-stub.o
CC ppc64abi32-linux-user/accel/stubs/hvf-stub.o
CC m68k-softmmu/tcg/optimize.o
CC mips64el-linux-user/fpu/softfloat.o
CC alpha-linux-user/accel/tcg/tcg-runtime.o
CC sh4-softmmu/tcg/tcg-op.o
CC hppa-linux-user/accel/tcg/tcg-runtime.o
CC mips-linux-user/fpu/softfloat.o
CC hppa-linux-user/accel/tcg/cpu-exec.o
CC mips64-softmmu/monitor.o
CC mips64-linux-user/tcg/tcg-common.o
CC mips64-linux-user/fpu/softfloat.o
CC or1k-softmmu/fpu/softfloat.o
CC mipsn32-linux-user/gdbstub.o
CC mips64el-softmmu/fpu/softfloat.o
CC or1k-softmmu/disas.o
CC nios2-linux-user/gdbstub.o
CC mipsn32el-linux-user/accel/tcg/cpu-exec.o
CC sh4eb-linux-user/accel/stubs/kvm-stub.o
CC x86_64-linux-user/gdbstub.o
CC ppc-softmmu/arch_init.o
CC ppc64abi32-linux-user/accel/stubs/kvm-stub.o
CC ppc-softmmu/cpus.o
CC aarch64-softmmu/tcg/tcg-common.o
CC nios2-linux-user/thunk.o
CC ppcemb-softmmu/tcg/tcg-common.o
CC ppcemb-softmmu/fpu/softfloat.o
CC m68k-linux-user/accel/stubs/hax-stub.o
CC ppc-softmmu/monitor.o
CC alpha-linux-user/accel/tcg/cpu-exec.o
CC m68k-linux-user/accel/stubs/hvf-stub.o
CC ppc64le-linux-user/tcg/tcg-common.o
CC mips64-softmmu/gdbstub.o
CC sparc32plus-linux-user/gdbstub.o
CC sparc32plus-linux-user/thunk.o
CC s390x-linux-user/thunk.o
CC ppc-linux-user/gdbstub.o
CC arm-softmmu/disas.o
CC mipsel-linux-user/accel/tcg/translator.o
CC or1k-linux-user/linux-user/linuxload.o
CC xtensa-softmmu/arch_init.o
GEN arm-softmmu/gdbstub-xml.c
CC x86_64-linux-user/thunk.o
CC moxie-softmmu/disas.o
CC xtensaeb-softmmu/disas.o
CC aarch64_be-linux-user/thunk.o
CC ppc64abi32-linux-user/accel/tcg/tcg-runtime.o
CC ppc64-softmmu/fpu/softfloat.o
CC mipsn32-linux-user/thunk.o
CC aarch64-linux-user/linux-user/linuxload.o
CC ppc64le-linux-user/fpu/softfloat.o
CC mips64el-linux-user/disas.o
CC microblaze-softmmu/tcg/optimize.o
CC s390x-softmmu/tcg/tcg-common.o
CC microblazeel-softmmu/tcg/tcg-common.o
CC microblazeel-softmmu/fpu/softfloat.o
CC hppa-linux-user/accel/tcg/cpu-exec-common.o
CC hppa-linux-user/accel/tcg/translate-all.o
CC armeb-linux-user/accel/stubs/hax-stub.o
CC ppc-softmmu/gdbstub.o
CC sparc64-softmmu/cpus.o
CC alpha-softmmu/tcg/tcg-common.o
CC mips-linux-user/disas.o
CC mipsn32el-linux-user/accel/tcg/cpu-exec-common.o
CC aarch64-softmmu/fpu/softfloat.o
CC sparc64-linux-user/accel/stubs/hax-stub.o
CC tilegx-linux-user/accel/stubs/hax-stub.o
CC unicore32-softmmu/fpu/softfloat.o
CC alpha-linux-user/accel/tcg/cpu-exec-common.o
CC alpha-linux-user/accel/tcg/translate-all.o
CC mips64el-softmmu/disas.o
CC ppc64-softmmu/disas.o
CC tilegx-linux-user/accel/stubs/hvf-stub.o
CC mipsn32el-linux-user/accel/tcg/translate-all.o
CC armeb-linux-user/accel/stubs/hvf-stub.o
CC s390x-softmmu/fpu/softfloat.o
CC moxie-softmmu/arch_init.o
CC mips64el-linux-user/gdbstub.o
CC m68k-softmmu/tcg/tcg-common.o
CC mips64el-linux-user/thunk.o
CC hppa-linux-user/accel/tcg/translator.o
CC i386-linux-user/thunk.o
CC microblazeel-softmmu/disas.o
CC microblaze-softmmu/tcg/tcg-common.o
CC alpha-softmmu/fpu/softfloat.o
CC ppc64abi32-linux-user/accel/tcg/cpu-exec.o
CC tricore-softmmu/tcg/optimize.o
CC lm32-softmmu/tcg/optimize.o
CC nios2-linux-user/accel/stubs/hax-stub.o
CC sparc64-softmmu/monitor.o
CC i386-linux-user/accel/stubs/hax-stub.o
CC s390x-softmmu/disas.o
CC mips-linux-user/gdbstub.o
CC sparc64-softmmu/gdbstub.o
CC aarch64_be-linux-user/accel/stubs/hax-stub.o
CC sparc64-softmmu/balloon.o
CC armeb-linux-user/accel/stubs/kvm-stub.o
CC aarch64-linux-user/linux-user/uaccess.o
CC aarch64-linux-user/linux-user/uname.o
CC mips64-linux-user/disas.o
CC or1k-softmmu/arch_init.o
CC sh4-linux-user/accel/stubs/hax-stub.o
CC mipsn32-linux-user/accel/stubs/hax-stub.o
CC i386-linux-user/accel/stubs/hvf-stub.o
CC armeb-linux-user/accel/tcg/tcg-runtime.o
CC mipsn32el-linux-user/accel/tcg/translator.o
CC mipsel-linux-user/accel/tcg/user-exec.o
CC sh4eb-linux-user/accel/tcg/tcg-runtime.o
CC mips-linux-user/thunk.o
CC nios2-linux-user/accel/stubs/hvf-stub.o
CC arm-linux-user/thunk.o
CC aarch64_be-linux-user/accel/stubs/hvf-stub.o
CC arm-linux-user/accel/stubs/hax-stub.o
CC ppcemb-softmmu/disas.o
CC hppa-linux-user/accel/tcg/user-exec.o
CC x86_64-softmmu/tcg/tcg-common.o
CC nios2-linux-user/accel/stubs/kvm-stub.o
CC sh4-linux-user/accel/stubs/hvf-stub.o
CC ppc64abi32-linux-user/accel/tcg/cpu-exec-common.o
CC moxie-softmmu/cpus.o
CC sparc64-linux-user/accel/stubs/hvf-stub.o
CC moxie-softmmu/monitor.o
CCAS aarch64-linux-user/linux-user/safe-syscall.o
CC alpha-softmmu/disas.o
CC lm32-softmmu/tcg/tcg-common.o
GEN ppc64-softmmu/gdbstub-xml.c
CC ppc64-softmmu/arch_init.o
CC aarch64-linux-user/linux-user/flatload.o
CC x86_64-linux-user/accel/stubs/hax-stub.o
CC sparc32plus-linux-user/accel/stubs/hax-stub.o
CC xtensa-softmmu/cpus.o
CC tilegx-linux-user/accel/stubs/kvm-stub.o
CC xtensa-softmmu/monitor.o
CC aarch64_be-linux-user/accel/stubs/kvm-stub.o
CC x86_64-softmmu/fpu/softfloat.o
CC xtensa-softmmu/gdbstub.o
CC m68k-linux-user/accel/stubs/kvm-stub.o
CC hppa-linux-user/accel/tcg/user-exec-stub.o
CC mips-linux-user/accel/stubs/hax-stub.o
CC armeb-linux-user/accel/tcg/cpu-exec.o
CC mips64el-linux-user/accel/stubs/hax-stub.o
CC m68k-linux-user/accel/tcg/tcg-runtime.o
CC microblaze-linux-user/disas.o
CC sparc-linux-user/accel/stubs/kvm-stub.o
CC mips-linux-user/accel/stubs/hvf-stub.o
CC lm32-softmmu/fpu/softfloat.o
CC microblaze-softmmu/fpu/softfloat.o
CC i386-linux-user/accel/stubs/kvm-stub.o
CC ppc64abi32-linux-user/accel/tcg/translate-all.o
CC cris-softmmu/monitor.o
CC mips-linux-user/accel/stubs/kvm-stub.o
CC mips-linux-user/accel/tcg/tcg-runtime.o
CC ppc-linux-user/thunk.o
CC sh4eb-linux-user/accel/tcg/cpu-exec.o
CC xtensa-softmmu/balloon.o
CC sparc64-linux-user/accel/stubs/kvm-stub.o
GEN ppcemb-softmmu/gdbstub-xml.c
CC sparc-linux-user/accel/tcg/tcg-runtime.o
CC aarch64-linux-user/target/arm/arm-semi.o
CC i386-softmmu/tcg/tcg-common.o
CC x86_64-linux-user/accel/stubs/hvf-stub.o
CC cris-linux-user/gdbstub.o
CC mips64-linux-user/gdbstub.o
CC unicore32-softmmu/disas.o
CC sparc-softmmu/cpus.o
CC unicore32-softmmu/arch_init.o
GEN ppc64-linux-user/gdbstub-xml.c
CC mipsn32-linux-user/accel/stubs/hvf-stub.o
CC arm-linux-user/accel/stubs/hvf-stub.o
CC mips-linux-user/accel/tcg/cpu-exec.o
CC armeb-linux-user/accel/tcg/cpu-exec-common.o
CC mips64el-softmmu/arch_init.o
CC i386-linux-user/accel/tcg/tcg-runtime.o
CC tilegx-linux-user/accel/tcg/tcg-runtime.o
CC xtensa-softmmu/ioport.o
CC sh4-softmmu/tcg/optimize.o
CC microblazeel-softmmu/arch_init.o
CC mips64-linux-user/thunk.o
CC xtensa-softmmu/numa.o
CC mipsel-linux-user/accel/tcg/user-exec-stub.o
CC ppc64-linux-user/gdbstub.o
CC microblazeel-linux-user/accel/tcg/tcg-runtime.o
CC aarch64_be-linux-user/accel/tcg/tcg-runtime.o
CC ppc64-linux-user/thunk.o
CC alpha-linux-user/accel/tcg/translator.o
CC sparc64-linux-user/accel/tcg/tcg-runtime.o
CC ppc64-linux-user/accel/stubs/hax-stub.o
CC mips-linux-user/accel/tcg/cpu-exec-common.o
CC mipsel-softmmu/disas.o
CC xtensa-softmmu/qtest.o
CC microblaze-linux-user/gdbstub.o
CC unicore32-softmmu/cpus.o
CC s390x-linux-user/accel/stubs/hax-stub.o
CC m68k-linux-user/accel/tcg/cpu-exec.o
CC tricore-softmmu/tcg/tcg-common.o
CC mips64-linux-user/accel/stubs/hax-stub.o
CC x86_64-linux-user/accel/stubs/kvm-stub.o
CC sh4-softmmu/tcg/tcg-common.o
CC arm-linux-user/accel/stubs/kvm-stub.o
CC m68k-softmmu/fpu/softfloat.o
CC microblaze-linux-user/thunk.o
CC or1k-softmmu/cpus.o
CC nios2-linux-user/accel/tcg/tcg-runtime.o
CC tricore-softmmu/fpu/softfloat.o
CC arm-linux-user/accel/tcg/tcg-runtime.o
CC alpha-softmmu/arch_init.o
CC x86_64-linux-user/accel/tcg/tcg-runtime.o
CC s390x-linux-user/accel/stubs/hvf-stub.o
GEN s390x-softmmu/gdbstub-xml.c
CC or1k-softmmu/monitor.o
CC i386-linux-user/accel/tcg/cpu-exec.o
CC mipsel-linux-user/linux-user/main.o
CC mipsn32el-linux-user/accel/tcg/user-exec.o
CC ppc-linux-user/accel/stubs/hax-stub.o
CC mipsel-softmmu/arch_init.o
CC nios2-softmmu/arch_init.o
CC lm32-softmmu/disas.o
CC armeb-linux-user/accel/tcg/translate-all.o
CC microblazeel-linux-user/accel/tcg/cpu-exec.o
CC microblazeel-linux-user/accel/tcg/cpu-exec-common.o
CC aarch64_be-linux-user/accel/tcg/cpu-exec.o
CC microblazeel-linux-user/accel/tcg/translate-all.o
CC cris-linux-user/thunk.o
CC armeb-linux-user/accel/tcg/translator.o
CC tilegx-linux-user/accel/tcg/cpu-exec.o
CC sparc64-linux-user/accel/tcg/cpu-exec.o
CC m68k-linux-user/accel/tcg/cpu-exec-common.o
CC sparc-softmmu/monitor.o
CC unicore32-softmmu/monitor.o
CC sparc64-softmmu/ioport.o
CC sh4eb-linux-user/accel/tcg/cpu-exec-common.o
CC alpha-linux-user/accel/tcg/user-exec.o
CC alpha-linux-user/accel/tcg/user-exec-stub.o
CC mips-softmmu/tcg/optimize.o
CC m68k-linux-user/accel/tcg/translate-all.o
CC mipsel-linux-user/linux-user/syscall.o
CC x86_64-linux-user/accel/tcg/cpu-exec.o
CC sh4-linux-user/accel/stubs/kvm-stub.o
CC sparc64-softmmu/numa.o
CC s390x-linux-user/accel/stubs/kvm-stub.o
CC microblaze-softmmu/disas.o
CC arm-linux-user/accel/tcg/cpu-exec.o
CC x86_64-softmmu/disas.o
CC ppc-linux-user/accel/stubs/hvf-stub.o
CC mipsn32el-linux-user/accel/tcg/user-exec-stub.o
CC arm-softmmu/arch_init.o
CC ppc64abi32-linux-user/accel/tcg/translator.o
CC mips64el-softmmu/cpus.o
CC sparc64-linux-user/accel/tcg/cpu-exec-common.o
CC mips64-softmmu/balloon.o
CC sparc64-softmmu/qtest.o
CC cris-linux-user/accel/stubs/hax-stub.o
CC microblaze-softmmu/arch_init.o
CC alpha-softmmu/cpus.o
CC ppc64-linux-user/accel/stubs/hvf-stub.o
CC mipsn32el-linux-user/linux-user/main.o
CC sh4eb-linux-user/accel/tcg/translate-all.o
CC mips64el-linux-user/accel/stubs/hvf-stub.o
CC i386-softmmu/fpu/softfloat.o
CC mips-softmmu/tcg/tcg-common.o
CC hppa-linux-user/linux-user/main.o
CC sh4eb-softmmu/arch_init.o
CC mips64-softmmu/ioport.o
CC xtensa-softmmu/memory.o
CC tricore-softmmu/disas.o
CC microblazeel-softmmu/cpus.o
CC ppc-linux-user/accel/stubs/kvm-stub.o
CC nios2-softmmu/cpus.o
CC sh4-linux-user/accel/tcg/tcg-runtime.o
CC aarch64-linux-user/target/arm/kvm-stub.o
CC xtensa-softmmu/memory_mapping.o
CC s390x-linux-user/accel/tcg/tcg-runtime.o
CC tricore-softmmu/arch_init.o
CC microblaze-linux-user/accel/stubs/hax-stub.o
CC s390x-softmmu/arch_init.o
CC i386-softmmu/disas.o
CC nios2-linux-user/accel/tcg/cpu-exec.o
CC sparc64-linux-user/accel/tcg/translate-all.o
CC sh4-linux-user/accel/tcg/cpu-exec.o
CC mips-softmmu/fpu/softfloat.o
CC aarch64-softmmu/disas.o
CC sh4eb-softmmu/cpus.o
CC mips-softmmu/disas.o
CC cris-linux-user/accel/stubs/hvf-stub.o
CC x86_64-linux-user/accel/tcg/cpu-exec-common.o
CC ppcemb-softmmu/arch_init.o
CC microblaze-linux-user/accel/stubs/hvf-stub.o
CC tilegx-linux-user/accel/tcg/cpu-exec-common.o
CC i386-linux-user/accel/tcg/cpu-exec-common.o
CC aarch64-linux-user/target/arm/translate.o
CC microblazeel-linux-user/accel/tcg/translator.o
CC mipsn32el-linux-user/linux-user/syscall.o
CC sh4-linux-user/accel/tcg/cpu-exec-common.o
CC aarch64_be-linux-user/accel/tcg/cpu-exec-common.o
CC aarch64_be-linux-user/accel/tcg/translate-all.o
CC arm-linux-user/accel/tcg/cpu-exec-common.o
CC x86_64-linux-user/accel/tcg/translate-all.o
CC microblaze-linux-user/accel/stubs/kvm-stub.o
CC x86_64-linux-user/accel/tcg/translator.o
CC alpha-softmmu/monitor.o
CC ppc-linux-user/accel/tcg/tcg-runtime.o
CC m68k-softmmu/disas.o
CC or1k-softmmu/gdbstub.o
CC mipsn32-linux-user/accel/stubs/kvm-stub.o
CC cris-linux-user/accel/stubs/kvm-stub.o
CC mipsel-softmmu/cpus.o
CC cris-linux-user/accel/tcg/tcg-runtime.o
CC mipsel-softmmu/monitor.o
CC ppc-softmmu/balloon.o
CC ppc-softmmu/ioport.o
CC microblazeel-linux-user/accel/tcg/user-exec.o
CC mipsel-softmmu/gdbstub.o
CC mipsn32el-linux-user/linux-user/strace.o
CC tilegx-linux-user/accel/tcg/translate-all.o
CC xtensa-softmmu/dump.o
CC moxie-softmmu/gdbstub.o
CC s390x-softmmu/cpus.o
CC arm-linux-user/accel/tcg/translate-all.o
CC mipsel-linux-user/linux-user/strace.o
CC sh4-linux-user/accel/tcg/translate-all.o
CC ppc64abi32-linux-user/accel/tcg/user-exec.o
CC s390x-linux-user/accel/tcg/cpu-exec.o
CC armeb-linux-user/accel/tcg/user-exec.o
CC mips-linux-user/accel/tcg/translate-all.o
CC or1k-linux-user/linux-user/uaccess.o
CC i386-linux-user/accel/tcg/translate-all.o
CC sh4eb-linux-user/accel/tcg/translator.o
CC microblaze-linux-user/accel/tcg/tcg-runtime.o
CC aarch64_be-linux-user/accel/tcg/translator.o
CC m68k-linux-user/accel/tcg/translator.o
CC unicore32-softmmu/gdbstub.o
CC ppc-softmmu/numa.o
CC sh4eb-softmmu/monitor.o
CC alpha-linux-user/linux-user/main.o
CC sh4-softmmu/fpu/softfloat.o
CC sh4-softmmu/disas.o
CC or1k-linux-user/linux-user/uname.o
CC ppc64abi32-linux-user/accel/tcg/user-exec-stub.o
CC sh4-linux-user/accel/tcg/translator.o
CC xtensaeb-softmmu/arch_init.o
CC xtensaeb-softmmu/cpus.o
CC sparc-linux-user/accel/tcg/cpu-exec.o
CC mips64-softmmu/numa.o
CC microblaze-linux-user/accel/tcg/cpu-exec.o
CC hppa-linux-user/linux-user/syscall.o
CC sparc64-softmmu/memory.o
CC mipsn32-linux-user/accel/tcg/tcg-runtime.o
CC mipsel-softmmu/balloon.o
CC sh4eb-softmmu/gdbstub.o
CC unicore32-softmmu/balloon.o
CC cris-linux-user/accel/tcg/cpu-exec.o
CC ppc-linux-user/accel/tcg/cpu-exec.o
CC armeb-linux-user/accel/tcg/user-exec-stub.o
CC mips64el-linux-user/accel/stubs/kvm-stub.o
CC cris-softmmu/gdbstub.o
CC mipsn32-linux-user/accel/tcg/cpu-exec.o
CC mips64-linux-user/accel/stubs/hvf-stub.o
GEN i386-softmmu/gdbstub-xml.c
CC mipsel-linux-user/linux-user/mmap.o
CC mipsel-softmmu/ioport.o
CC m68k-linux-user/accel/tcg/user-exec.o
CC m68k-linux-user/accel/tcg/user-exec-stub.o
CC sh4eb-linux-user/accel/tcg/user-exec.o
CC ppc64-softmmu/cpus.o
CC xtensa-softmmu/migration/ram.o
CC mipsn32el-linux-user/linux-user/mmap.o
CC ppc-softmmu/qtest.o
CC armeb-linux-user/linux-user/main.o
CC s390x-linux-user/accel/tcg/cpu-exec-common.o
CC sparc-softmmu/gdbstub.o
CC sparc64-linux-user/accel/tcg/translator.o
CC microblazeel-softmmu/monitor.o
CC ppc-softmmu/memory.o
CC nios2-linux-user/accel/tcg/cpu-exec-common.o
CC ppc64abi32-linux-user/linux-user/main.o
CC i386-softmmu/arch_init.o
CC ppcemb-softmmu/cpus.o
CC ppcemb-softmmu/monitor.o
CC arm-linux-user/accel/tcg/translator.o
CC ppc64le-linux-user/disas.o
CC alpha-softmmu/gdbstub.o
CC microblazeel-linux-user/accel/tcg/user-exec-stub.o
CC aarch64_be-linux-user/accel/tcg/user-exec.o
CC sh4eb-softmmu/balloon.o
CC arm-linux-user/accel/tcg/user-exec.o
CC aarch64-linux-user/target/arm/op_helper.o
CC s390x-softmmu/monitor.o
CC sh4eb-softmmu/ioport.o
CC sparc-linux-user/accel/tcg/cpu-exec-common.o
CC microblaze-linux-user/accel/tcg/cpu-exec-common.o
CC alpha-linux-user/linux-user/syscall.o
CC x86_64-linux-user/accel/tcg/user-exec.o
CC ppc-linux-user/accel/tcg/cpu-exec-common.o
CC sparc32plus-linux-user/accel/stubs/hvf-stub.o
CC s390x-linux-user/accel/tcg/translate-all.o
CC microblaze-linux-user/accel/tcg/translate-all.o
CC ppc-linux-user/accel/tcg/translate-all.o
CC moxie-softmmu/balloon.o
CC nios2-linux-user/accel/tcg/translate-all.o
CC mips64-softmmu/qtest.o
CC tricore-softmmu/cpus.o
CC cris-linux-user/accel/tcg/cpu-exec-common.o
CC microblazeel-linux-user/linux-user/main.o
CC cris-linux-user/accel/tcg/translate-all.o
CC sparc32plus-linux-user/accel/stubs/kvm-stub.o
CC sparc-softmmu/balloon.o
CC nios2-softmmu/monitor.o
CC mips-linux-user/accel/tcg/translator.o
CC sh4-linux-user/accel/tcg/user-exec.o
CC mipsel-linux-user/linux-user/signal.o
CC alpha-softmmu/balloon.o
CC xtensa-softmmu/accel/accel.o
CC xtensa-softmmu/accel/stubs/hax-stub.o
CC sparc-linux-user/accel/tcg/translate-all.o
CC alpha-linux-user/linux-user/strace.o
CC tilegx-linux-user/accel/tcg/translator.o
CC mipsn32-linux-user/accel/tcg/cpu-exec-common.o
CC xtensaeb-softmmu/monitor.o
CC arm-softmmu/cpus.o
CC mips64el-softmmu/monitor.o
CC armeb-linux-user/linux-user/syscall.o
CC ppc-softmmu/memory_mapping.o
CC sh4eb-linux-user/accel/tcg/user-exec-stub.o
CC mipsn32-linux-user/accel/tcg/translate-all.o
CC sparc64-linux-user/accel/tcg/user-exec.o
CC sparc-linux-user/accel/tcg/translator.o
CC ppcemb-softmmu/gdbstub.o
CC sparc64-linux-user/accel/tcg/user-exec-stub.o
CC i386-linux-user/accel/tcg/translator.o
CC hppa-linux-user/linux-user/strace.o
CC arm-softmmu/monitor.o
CC sparc32plus-linux-user/accel/tcg/tcg-runtime.o
CC ppc64-linux-user/accel/stubs/kvm-stub.o
CC sh4eb-linux-user/linux-user/main.o
CC ppc64abi32-linux-user/linux-user/syscall.o
CC mips64-softmmu/memory.o
CC cris-linux-user/accel/tcg/translator.o
GEN ppc64le-linux-user/gdbstub-xml.c
CC sparc-linux-user/accel/tcg/user-exec.o
CC hppa-linux-user/linux-user/mmap.o
CC s390x-softmmu/gdbstub.o
CC arm-linux-user/accel/tcg/user-exec-stub.o
CC sh4eb-softmmu/numa.o
CC sparc32plus-linux-user/accel/tcg/cpu-exec.o
CC mipsel-softmmu/numa.o
CC arm-linux-user/linux-user/main.o
CC nios2-linux-user/accel/tcg/translator.o
CC microblaze-linux-user/accel/tcg/translator.o
CC alpha-linux-user/linux-user/mmap.o
CC armeb-linux-user/linux-user/strace.o
CC mipsel-linux-user/linux-user/elfload.o
CC ppc64le-linux-user/gdbstub.o
CC mips64-softmmu/memory_mapping.o
CC cris-softmmu/balloon.o
CC ppc64-linux-user/accel/tcg/tcg-runtime.o
CC tilegx-linux-user/accel/tcg/user-exec.o
CC m68k-linux-user/linux-user/main.o
CC i386-linux-user/accel/tcg/user-exec.o
CC mipsel-softmmu/qtest.o
CC mips-linux-user/accel/tcg/user-exec.o
CC microblazeel-linux-user/linux-user/syscall.o
CC mips64el-softmmu/gdbstub.o
CC sparc-linux-user/accel/tcg/user-exec-stub.o
CC alpha-linux-user/linux-user/signal.o
CC mips64-softmmu/dump.o
CC sparc64-softmmu/memory_mapping.o
CC moxie-softmmu/ioport.o
CC microblazeel-linux-user/linux-user/strace.o
CC aarch64_be-linux-user/accel/tcg/user-exec-stub.o
CC s390x-linux-user/accel/tcg/translator.o
CC armeb-linux-user/linux-user/mmap.o
CC arm-softmmu/gdbstub.o
CC ppc64abi32-linux-user/linux-user/strace.o
CC cris-linux-user/accel/tcg/user-exec.o
CC tilegx-linux-user/accel/tcg/user-exec-stub.o
CC nios2-softmmu/gdbstub.o
CC mips64-softmmu/migration/ram.o
CC mips-linux-user/accel/tcg/user-exec-stub.o
CC tricore-softmmu/monitor.o
CC microblaze-linux-user/accel/tcg/user-exec.o
CC sparc64-softmmu/dump.o
CC sh4-linux-user/accel/tcg/user-exec-stub.o
CC sparc32plus-linux-user/accel/tcg/cpu-exec-common.o
CC sparc32plus-linux-user/accel/tcg/translate-all.o
CC aarch64-linux-user/target/arm/helper.o
CC sparc-softmmu/ioport.o
CC ppc-linux-user/accel/tcg/translator.o
CC cris-softmmu/ioport.o
CC tricore-softmmu/gdbstub.o
CC mipsn32-linux-user/accel/tcg/translator.o
CC i386-softmmu/cpus.o
CC i386-softmmu/monitor.o
CC sh4eb-linux-user/linux-user/syscall.o
CC nios2-linux-user/accel/tcg/user-exec.o
CC aarch64_be-linux-user/linux-user/main.o
CC nios2-linux-user/accel/tcg/user-exec-stub.o
CC x86_64-linux-user/accel/tcg/user-exec-stub.o
CC ppc64le-linux-user/thunk.o
CC mips64el-linux-user/accel/tcg/tcg-runtime.o
CC ppc64le-linux-user/accel/stubs/hax-stub.o
CC m68k-linux-user/linux-user/syscall.o
CC nios2-linux-user/linux-user/main.o
CC sh4-linux-user/linux-user/main.o
CC sh4-softmmu/arch_init.o
CC s390x-linux-user/accel/tcg/user-exec.o
CC or1k-softmmu/balloon.o
CC tricore-softmmu/balloon.o
CC m68k-linux-user/linux-user/strace.o
CC moxie-softmmu/numa.o
CC aarch64_be-linux-user/linux-user/syscall.o
CC ppc64-linux-user/accel/tcg/cpu-exec.o
GEN m68k-softmmu/gdbstub-xml.c
CC arm-linux-user/linux-user/syscall.o
CC alpha-softmmu/ioport.o
CC aarch64-linux-user/target/arm/cpu.o
CC cris-softmmu/numa.o
CC microblaze-linux-user/accel/tcg/user-exec-stub.o
CC arm-linux-user/linux-user/strace.o
CC sparc64-linux-user/linux-user/main.o
CC ppc64-softmmu/monitor.o
CC s390x-softmmu/balloon.o
CC mips64el-linux-user/accel/tcg/cpu-exec.o
CC aarch64-linux-user/target/arm/neon_helper.o
CC ppcemb-softmmu/balloon.o
CC ppcemb-softmmu/ioport.o
CC unicore32-softmmu/ioport.o
CC i386-softmmu/gdbstub.o
CC x86_64-linux-user/linux-user/main.o
CC aarch64-linux-user/target/arm/iwmmxt_helper.o
CC cris-linux-user/accel/tcg/user-exec-stub.o
CC xtensa-softmmu/accel/stubs/hvf-stub.o
GEN aarch64-softmmu/gdbstub-xml.c
CC sparc32plus-linux-user/accel/tcg/translator.o
CC sparc64-linux-user/linux-user/syscall.o
CC sparc64-linux-user/linux-user/strace.o
CC mips-linux-user/linux-user/main.o
CCAS or1k-linux-user/linux-user/safe-syscall.o
CC sh4-linux-user/linux-user/syscall.o
CC sh4-linux-user/linux-user/strace.o
CC or1k-softmmu/ioport.o
CC sh4eb-softmmu/qtest.o
CC aarch64-softmmu/arch_init.o
CC cris-linux-user/linux-user/main.o
CC xtensa-softmmu/accel/stubs/kvm-stub.o
CC ppc64-linux-user/accel/tcg/cpu-exec-common.o
CC ppc64abi32-linux-user/linux-user/mmap.o
CC mipsn32-linux-user/accel/tcg/user-exec.o
CC moxie-softmmu/qtest.o
CC moxie-softmmu/memory.o
CC ppc64-linux-user/accel/tcg/translate-all.o
CC mips64el-linux-user/accel/tcg/cpu-exec-common.o
CC sparc-softmmu/numa.o
CC sparc-linux-user/linux-user/main.o
CC cris-softmmu/qtest.o
CC sparc64-softmmu/migration/ram.o
CC sparc64-softmmu/accel/accel.o
CC hppa-linux-user/linux-user/signal.o
CC ppc64-linux-user/accel/tcg/translator.o
CC ppc64-linux-user/accel/tcg/user-exec.o
CC mips64-linux-user/accel/stubs/kvm-stub.o
CC tilegx-linux-user/linux-user/main.o
CC cris-softmmu/memory.o
CC mips-linux-user/linux-user/syscall.o
CC ppc-linux-user/accel/tcg/user-exec.o
CC mipsn32-linux-user/accel/tcg/user-exec-stub.o
CC mipsn32el-linux-user/linux-user/signal.o
CC xtensa-softmmu/accel/tcg/tcg-all.o
CC ppc64abi32-linux-user/linux-user/signal.o
GEN x86_64-softmmu/gdbstub-xml.c
CC x86_64-softmmu/arch_init.o
CC sparc64-softmmu/accel/stubs/hax-stub.o
CC mips-linux-user/linux-user/strace.o
CC mipsn32-linux-user/linux-user/main.o
CC i386-linux-user/accel/tcg/user-exec-stub.o
CC lm32-softmmu/arch_init.o
CC ppc64-linux-user/accel/tcg/user-exec-stub.o
CC ppc64le-linux-user/accel/stubs/hvf-stub.o
CC s390x-softmmu/ioport.o
CC aarch64-softmmu/cpus.o
CC mips64-linux-user/accel/tcg/tcg-runtime.o
CC mips64-softmmu/accel/accel.o
CC sparc-softmmu/qtest.o
CC mips64-softmmu/accel/stubs/hax-stub.o
CC sparc32plus-linux-user/accel/tcg/user-exec.o
CC unicore32-softmmu/numa.o
CC cris-linux-user/linux-user/syscall.o
CC ppc-softmmu/dump.o
CC aarch64_be-linux-user/linux-user/strace.o
CC mips64el-linux-user/accel/tcg/translate-all.o
CC tilegx-linux-user/linux-user/syscall.o
CC x86_64-linux-user/linux-user/syscall.o
CC or1k-softmmu/numa.o
CC mipsel-softmmu/memory.o
CC x86_64-softmmu/cpus.o
CC alpha-softmmu/numa.o
CC m68k-softmmu/arch_init.o
CC i386-softmmu/balloon.o
CC ppcemb-softmmu/numa.o
CC ppcemb-softmmu/qtest.o
CC microblaze-linux-user/linux-user/main.o
CC xtensa-softmmu/accel/tcg/cputlb.o
CC x86_64-softmmu/monitor.o
CC x86_64-linux-user/linux-user/strace.o
CC i386-linux-user/linux-user/main.o
CC nios2-linux-user/linux-user/syscall.o
CC microblazeel-linux-user/linux-user/mmap.o
CC x86_64-linux-user/linux-user/mmap.o
CC moxie-softmmu/memory_mapping.o
CC microblazeel-softmmu/gdbstub.o
CC i386-softmmu/ioport.o
CC sh4eb-softmmu/memory.o
CC sparc-softmmu/memory.o
CC m68k-softmmu/cpus.o
CC ppc64abi32-linux-user/linux-user/elfload.o
CC microblaze-linux-user/linux-user/syscall.o
CC x86_64-linux-user/linux-user/signal.o
CC ppc64le-linux-user/accel/stubs/kvm-stub.o
CC s390x-linux-user/accel/tcg/user-exec-stub.o
CC nios2-softmmu/balloon.o
CC m68k-softmmu/monitor.o
CC sparc64-softmmu/accel/stubs/hvf-stub.o
CC m68k-softmmu/gdbstub.o
CC s390x-softmmu/numa.o
CC mipsel-softmmu/memory_mapping.o
CC sh4eb-linux-user/linux-user/strace.o
CC mipsel-linux-user/linux-user/linuxload.o
CC sparc-linux-user/linux-user/syscall.o
CC sparc-linux-user/linux-user/strace.o
CC aarch64-linux-user/target/arm/gdbstub.o
CC mips64-linux-user/accel/tcg/cpu-exec.o
CC alpha-linux-user/linux-user/elfload.o
CC lm32-softmmu/cpus.o
CC mipsn32-linux-user/linux-user/syscall.o
CC ppc64le-linux-user/accel/tcg/tcg-runtime.o
CC or1k-linux-user/target/openrisc/cpu.o
CC armeb-linux-user/linux-user/signal.o
CC ppc64abi32-linux-user/linux-user/linuxload.o
CC microblaze-linux-user/linux-user/strace.o
CC alpha-softmmu/qtest.o
CC or1k-softmmu/qtest.o
CC ppc64le-linux-user/accel/tcg/cpu-exec.o
CC i386-linux-user/linux-user/syscall.o
CC s390x-softmmu/qtest.o
CC xtensaeb-softmmu/gdbstub.o
CC sh4-softmmu/cpus.o
CC s390x-linux-user/linux-user/main.o
CC sh4eb-softmmu/memory_mapping.o
CC arm-linux-user/linux-user/mmap.o
CC ppc64-linux-user/linux-user/main.o
CC microblazeel-softmmu/balloon.o
CC microblaze-softmmu/cpus.o
CC i386-linux-user/linux-user/strace.o
CC mips64-softmmu/accel/stubs/hvf-stub.o
CC tricore-softmmu/ioport.o
CC unicore32-softmmu/qtest.o
CC mips64-softmmu/accel/stubs/kvm-stub.o
CC mips64el-linux-user/accel/tcg/translator.o
CC or1k-linux-user/target/openrisc/exception.o
CC aarch64_be-linux-user/linux-user/mmap.o
CC mips64-linux-user/accel/tcg/cpu-exec-common.o
CC mips64-linux-user/accel/tcg/translate-all.o
CC ppcemb-softmmu/memory.o
CC mips-softmmu/arch_init.o
CC sparc32plus-linux-user/accel/tcg/user-exec-stub.o
CC sh4-softmmu/monitor.o
CC nios2-softmmu/ioport.o
CC i386-linux-user/linux-user/mmap.o
CC i386-linux-user/linux-user/signal.o
CC mips64-linux-user/accel/tcg/translator.o
CC mips-linux-user/linux-user/mmap.o
CC mips64-linux-user/accel/tcg/user-exec.o
CC hppa-linux-user/linux-user/elfload.o
CC xtensa-softmmu/accel/tcg/tcg-runtime.o
CC alpha-softmmu/memory.o
CC microblaze-softmmu/monitor.o
CC ppc-linux-user/accel/tcg/user-exec-stub.o
CC or1k-linux-user/target/openrisc/interrupt.o
CC microblaze-linux-user/linux-user/mmap.o
CC sparc64-softmmu/accel/stubs/kvm-stub.o
CC x86_64-softmmu/gdbstub.o
CC nios2-softmmu/numa.o
CC or1k-softmmu/memory.o
CC ppcemb-softmmu/memory_mapping.o
CC ppcemb-softmmu/dump.o
CC nios2-softmmu/qtest.o
CC mips64el-linux-user/accel/tcg/user-exec.o
CC ppc-linux-user/linux-user/main.o
CC mips64el-softmmu/balloon.o
CC ppc64-linux-user/linux-user/syscall.o
CC aarch64_be-linux-user/linux-user/signal.o
CC s390x-softmmu/memory.o
CC mips64el-linux-user/accel/tcg/user-exec-stub.o
CC ppc64le-linux-user/accel/tcg/cpu-exec-common.o
CC lm32-softmmu/monitor.o
CC ppc-softmmu/migration/ram.o
CC mips64-softmmu/accel/tcg/tcg-all.o
CC mips-softmmu/cpus.o
CC aarch64-softmmu/monitor.o
CC aarch64-softmmu/gdbstub.o
CC alpha-softmmu/memory_mapping.o
CC sparc-softmmu/memory_mapping.o
CC sparc32plus-linux-user/linux-user/main.o
CC sparc32plus-linux-user/linux-user/syscall.o
CC or1k-linux-user/target/openrisc/mmu.o
CC microblazeel-linux-user/linux-user/signal.o
CC microblazeel-linux-user/linux-user/elfload.o
CC arm-softmmu/balloon.o
CC ppc64-linux-user/linux-user/strace.o
CC mips64el-linux-user/linux-user/main.o
CC ppc64abi32-linux-user/linux-user/uaccess.o
CC ppc64le-linux-user/accel/tcg/translate-all.o
CC sparc64-softmmu/accel/tcg/tcg-all.o
CC sparc64-softmmu/accel/tcg/cputlb.o
CC mips64el-softmmu/ioport.o
CC sh4-linux-user/linux-user/mmap.o
CC x86_64-softmmu/balloon.o
CC ppc64-linux-user/linux-user/mmap.o
CC unicore32-softmmu/memory.o
CC s390x-linux-user/linux-user/syscall.o
CC tricore-softmmu/numa.o
CC unicore32-softmmu/memory_mapping.o
CC sparc-softmmu/dump.o
CC ppcemb-softmmu/migration/ram.o
CC mips64-softmmu/accel/tcg/cputlb.o
CC or1k-linux-user/target/openrisc/translate.o
CC unicore32-softmmu/dump.o
CC aarch64-softmmu/balloon.o
CC hppa-linux-user/linux-user/linuxload.o
CC cris-softmmu/memory_mapping.o
CC m68k-softmmu/balloon.o
CC nios2-linux-user/linux-user/strace.o
CC m68k-softmmu/ioport.o
CC sh4eb-linux-user/linux-user/mmap.o
CC alpha-softmmu/dump.o
CC m68k-softmmu/numa.o
CC sparc32plus-linux-user/linux-user/strace.o
CC m68k-softmmu/qtest.o
CC mips-softmmu/monitor.o
CC mipsel-softmmu/dump.o
CC i386-softmmu/numa.o
CC microblazeel-softmmu/ioport.o
CC i386-softmmu/qtest.o
CC ppc64-softmmu/gdbstub.o
CC arm-softmmu/ioport.o
CC sparc64-linux-user/linux-user/mmap.o
CC xtensaeb-softmmu/balloon.o
CC tricore-softmmu/qtest.o
CC cris-linux-user/linux-user/strace.o
CC arm-softmmu/numa.o
CC or1k-linux-user/target/openrisc/exception_helper.o
CC m68k-softmmu/memory.o
CC xtensaeb-softmmu/ioport.o
CC x86_64-softmmu/ioport.o
CC mipsel-softmmu/migration/ram.o
CC arm-linux-user/linux-user/signal.o
CC xtensaeb-softmmu/numa.o
CC ppc64le-linux-user/accel/tcg/translator.o
CC tilegx-linux-user/linux-user/strace.o
CC xtensaeb-softmmu/qtest.o
CC mips64-linux-user/accel/tcg/user-exec-stub.o
CC ppc-linux-user/linux-user/syscall.o
CC mips64el-softmmu/numa.o
CC ppc-linux-user/linux-user/strace.o
CC microblazeel-softmmu/numa.o
CC or1k-softmmu/memory_mapping.o
CC ppc64-softmmu/balloon.o
CC ppc64-softmmu/ioport.o
CC sh4eb-softmmu/dump.o
CC nios2-softmmu/memory.o
CC nios2-softmmu/memory_mapping.o
CC moxie-softmmu/dump.o
CC sparc64-softmmu/accel/tcg/tcg-runtime.o
CC ppc64le-linux-user/accel/tcg/user-exec.o
CC mips-linux-user/linux-user/signal.o
CC alpha-softmmu/migration/ram.o
CC arm-linux-user/linux-user/elfload.o
CC mips64-linux-user/linux-user/main.o
CC tricore-softmmu/memory.o
CC m68k-linux-user/linux-user/mmap.o
CC unicore32-softmmu/migration/ram.o
CC microblaze-linux-user/linux-user/signal.o
CC ppc64abi32-linux-user/linux-user/uname.o
CC nios2-linux-user/linux-user/mmap.o
CC ppc64-softmmu/numa.o
CC s390x-linux-user/linux-user/strace.o
CC mipsn32el-linux-user/linux-user/elfload.o
CC unicore32-softmmu/accel/accel.o
CC sh4-softmmu/gdbstub.o
CC ppcemb-softmmu/accel/accel.o
CC tilegx-linux-user/linux-user/mmap.o
CC i386-linux-user/linux-user/elfload.o
CC mips64el-linux-user/linux-user/syscall.o
CC x86_64-linux-user/linux-user/elfload.o
CC ppcemb-softmmu/accel/kvm/kvm-all.o
CC nios2-linux-user/linux-user/signal.o
CC sh4eb-softmmu/migration/ram.o
CC xtensa-softmmu/accel/tcg/cpu-exec.o
CC mips64el-linux-user/linux-user/strace.o
CC cris-linux-user/linux-user/mmap.o
CC arm-softmmu/qtest.o
CC i386-softmmu/memory.o
CC microblaze-linux-user/linux-user/elfload.o
CC sh4eb-linux-user/linux-user/signal.o
CC mipsn32-linux-user/linux-user/strace.o
CC mips64el-softmmu/qtest.o
CC microblaze-linux-user/linux-user/linuxload.o
CC microblazeel-softmmu/qtest.o
CC arm-linux-user/linux-user/linuxload.o
CC microblaze-softmmu/gdbstub.o
CC mips64el-softmmu/memory.o
CC microblaze-linux-user/linux-user/uaccess.o
CC sparc-softmmu/migration/ram.o
CC aarch64_be-linux-user/linux-user/elfload.o
CC arm-linux-user/linux-user/uaccess.o
CC i386-softmmu/memory_mapping.o
CC armeb-linux-user/linux-user/elfload.o
CC mips-softmmu/gdbstub.o
CC cris-softmmu/dump.o
CC ppc64-softmmu/qtest.o
CC s390x-softmmu/memory_mapping.o
CC mipsel-linux-user/linux-user/uaccess.o
CC mipsel-linux-user/linux-user/uname.o
CC sh4-softmmu/balloon.o
CC mips64el-softmmu/memory_mapping.o
CC sparc-linux-user/linux-user/mmap.o
CC xtensaeb-softmmu/memory.o
CC ppc-softmmu/accel/accel.o
CC ppcemb-softmmu/accel/kvm/sev.o
CC nios2-linux-user/linux-user/elfload.o
CC sparc32plus-linux-user/linux-user/mmap.o
CC sparc32plus-linux-user/linux-user/signal.o
CC microblazeel-linux-user/linux-user/linuxload.o
CC s390x-softmmu/dump.o
CC microblazeel-softmmu/memory.o
CC mipsel-softmmu/accel/accel.o
CC ppcemb-softmmu/accel/stubs/hax-stub.o
CC s390x-linux-user/linux-user/mmap.o
CC ppc-softmmu/accel/kvm/kvm-all.o
CC armeb-linux-user/linux-user/linuxload.o
CC x86_64-softmmu/numa.o
CC sparc64-linux-user/linux-user/signal.o
CC mips64-linux-user/linux-user/syscall.o
CC sparc64-linux-user/linux-user/elfload.o
/var/tmp/patchew-tester-tmp-r4540qbd/src/accel/kvm/sev.c: In function ‘sev_dbg_enc_dec’:
/var/tmp/patchew-tester-tmp-r4540qbd/src/accel/kvm/sev.c:540:22: error: format ‘%llx’ expects argument of type ‘long long unsigned int’, but argument 4 has type ‘__u64’ [-Werror=format=]
fw_error_to_str(error));
^
/var/tmp/patchew-tester-tmp-r4540qbd/src/accel/kvm/sev.c:540:22: error: format ‘%llx’ expects argument of type ‘long long unsigned int’, but argument 5 has type ‘__u64’ [-Werror=format=]
CC hppa-linux-user/linux-user/uaccess.o
CC x86_64-softmmu/qtest.o
CC ppc64le-linux-user/accel/tcg/user-exec-stub.o
CC mipsn32el-linux-user/linux-user/linuxload.o
cc1: all warnings being treated as errors
make[1]: *** [accel/kvm/sev.o] Error 1
make[1]: *** Waiting for unfinished jobs....
CC tricore-softmmu/memory_mapping.o
CC microblaze-softmmu/balloon.o
CC xtensa-softmmu/accel/tcg/cpu-exec-common.o
CC ppc-softmmu/accel/kvm/sev.o
CC sparc64-linux-user/linux-user/linuxload.o
CC sh4-linux-user/linux-user/signal.o
CC cris-softmmu/migration/ram.o
CC sparc32plus-linux-user/linux-user/elfload.o
CCAS mipsel-linux-user/linux-user/safe-syscall.o
CC sparc32plus-linux-user/linux-user/linuxload.o
CC mips64el-softmmu/dump.o
CC microblazeel-softmmu/memory_mapping.o
CC mipsel-softmmu/accel/stubs/hax-stub.o
CC mipsel-linux-user/target/mips/translate.o
CC aarch64-softmmu/ioport.o
CC sparc64-linux-user/linux-user/uaccess.o
CC sparc64-softmmu/accel/tcg/cpu-exec.o
CC arm-softmmu/memory.o
CC ppc64-softmmu/memory.o
CC moxie-softmmu/migration/ram.o
CC ppc64le-linux-user/linux-user/main.o
CC ppc64-softmmu/memory_mapping.o
CC lm32-softmmu/gdbstub.o
CC sh4-softmmu/ioport.o
CC or1k-linux-user/target/openrisc/fpu_helper.o
CC xtensaeb-softmmu/memory_mapping.o
CC microblaze-linux-user/linux-user/uname.o
CC sparc64-softmmu/accel/tcg/cpu-exec-common.o
CC aarch64-linux-user/target/arm/cpu64.o
CC microblazeel-softmmu/dump.o
CC sh4eb-softmmu/accel/accel.o
CC i386-linux-user/linux-user/linuxload.o
CC s390x-softmmu/migration/ram.o
/var/tmp/patchew-tester-tmp-r4540qbd/src/accel/kvm/sev.c: In function ‘sev_dbg_enc_dec’:
/var/tmp/patchew-tester-tmp-r4540qbd/src/accel/kvm/sev.c:540:22: error: format ‘%llx’ expects argument of type ‘long long unsigned int’, but argument 4 has type ‘__u64’ [-Werror=format=]
fw_error_to_str(error));
^
/var/tmp/patchew-tester-tmp-r4540qbd/src/accel/kvm/sev.c:540:22: error: format ‘%llx’ expects argument of type ‘long long unsigned int’, but argument 5 has type ‘__u64’ [-Werror=format=]
CC mips-linux-user/linux-user/elfload.o
CC mips64-softmmu/accel/tcg/tcg-runtime.o
cc1: all warnings being treated as errors
make[1]: *** [accel/kvm/sev.o] Error 1
make[1]: *** Waiting for unfinished jobs....
CC mips64-softmmu/accel/tcg/cpu-exec.o
CC ppc-linux-user/linux-user/mmap.o
CC sh4eb-softmmu/accel/stubs/hax-stub.o
CC sh4-linux-user/linux-user/elfload.o
CC xtensa-softmmu/accel/tcg/translate-all.o
make: *** [subdir-ppcemb-softmmu] Error 2
make: *** Waiting for unfinished jobs....
CC x86_64-linux-user/linux-user/linuxload.o
CC arm-softmmu/memory_mapping.o
CC m68k-linux-user/linux-user/signal.o
CC mipsel-linux-user/target/mips/dsp_helper.o
CC mipsel-linux-user/target/mips/op_helper.o
CC tilegx-linux-user/linux-user/signal.o
CC sparc-softmmu/accel/accel.o
CC alpha-softmmu/accel/accel.o
CC s390x-linux-user/linux-user/signal.o
CC or1k-softmmu/dump.o
CC or1k-linux-user/target/openrisc/interrupt_helper.o
CC m68k-linux-user/linux-user/elfload.o
CC microblaze-softmmu/ioport.o
CC cris-linux-user/linux-user/signal.o
CC mipsel-softmmu/accel/stubs/hvf-stub.o
CC sparc64-softmmu/accel/tcg/translate-all.o
CC s390x-softmmu/accel/accel.o
CC x86_64-linux-user/linux-user/uaccess.o
CC aarch64-softmmu/numa.o
CC mips64-linux-user/linux-user/strace.o
CC ppc64-softmmu/dump.o
CC mips64-softmmu/accel/tcg/cpu-exec-common.o
CC unicore32-softmmu/accel/stubs/hax-stub.o
CC x86_64-linux-user/linux-user/uname.o
CC m68k-softmmu/memory_mapping.o
CC s390x-softmmu/accel/stubs/hax-stub.o
CC microblazeel-linux-user/linux-user/uaccess.o
CC sh4-softmmu/numa.o
CC sparc-softmmu/accel/stubs/hax-stub.o
CC xtensa-softmmu/accel/tcg/translator.o
CC alpha-softmmu/accel/stubs/hax-stub.o
CC mips64-softmmu/accel/tcg/translate-all.o
CC sparc64-linux-user/linux-user/uname.o
CC sparc-softmmu/accel/stubs/hvf-stub.o
CC m68k-softmmu/dump.o
CC i386-softmmu/dump.o
CC x86_64-softmmu/memory.o
CC ppc64le-linux-user/linux-user/syscall.o
CC mipsel-softmmu/accel/stubs/kvm-stub.o
CC ppc64le-linux-user/linux-user/strace.o
CC alpha-linux-user/linux-user/linuxload.o
CC sh4eb-linux-user/linux-user/elfload.o
CC unicore32-softmmu/accel/stubs/hvf-stub.o
CC sparc-softmmu/accel/stubs/kvm-stub.o
CC m68k-softmmu/migration/ram.o
CC x86_64-softmmu/memory_mapping.o
CC microblaze-softmmu/numa.o
CC ppc64le-linux-user/linux-user/mmap.o
CC cris-softmmu/accel/accel.o
CC unicore32-softmmu/accel/stubs/kvm-stub.o
CC mips-linux-user/linux-user/linuxload.o
CC cris-linux-user/linux-user/elfload.o
CC mipsn32-linux-user/linux-user/mmap.o
CC mips-softmmu/balloon.o
CCAS microblaze-linux-user/linux-user/safe-syscall.o
CC sparc-softmmu/accel/tcg/tcg-all.o
CC tricore-softmmu/dump.o
CC mipsel-softmmu/accel/tcg/tcg-all.o
CC aarch64-softmmu/qtest.o
CC sh4eb-softmmu/accel/stubs/hvf-stub.o
CC arm-linux-user/linux-user/uname.o
CC mips64el-linux-user/linux-user/mmap.o
CC alpha-softmmu/accel/stubs/hvf-stub.o
CCAS ppc64abi32-linux-user/linux-user/safe-syscall.o
CC mipsn32-linux-user/linux-user/signal.o
CC aarch64-softmmu/memory.o
CC i386-softmmu/migration/ram.o
CC ppc64le-linux-user/linux-user/signal.o
CC unicore32-softmmu/accel/tcg/tcg-all.o
CC xtensa-softmmu/hw/core/generic-loader.o
CC ppc64-softmmu/migration/ram.o
CC hppa-linux-user/linux-user/uname.o
CC ppc64le-linux-user/linux-user/elfload.o
CC lm32-softmmu/balloon.o
CC mipsel-softmmu/accel/tcg/cputlb.o
CC mipsel-softmmu/accel/tcg/tcg-runtime.o
CC nios2-softmmu/dump.o
CC mips64-softmmu/accel/tcg/translator.o
CC or1k-linux-user/target/openrisc/mmu_helper.o
CC sparc64-softmmu/accel/tcg/translator.o
CC unicore32-softmmu/accel/tcg/cputlb.o
CC mips-linux-user/linux-user/uaccess.o
CC sh4eb-softmmu/accel/stubs/kvm-stub.o
CC sh4eb-linux-user/linux-user/linuxload.o
CC sparc-softmmu/accel/tcg/cputlb.o
CC unicore32-softmmu/accel/tcg/tcg-runtime.o
CC alpha-softmmu/accel/tcg/tcg-all.o
CC alpha-softmmu/accel/stubs/kvm-stub.o
CC sh4-softmmu/qtest.o
CC i386-linux-user/linux-user/uaccess.o
CC mips-softmmu/ioport.o
CC sh4eb-linux-user/linux-user/uaccess.o
CCAS arm-linux-user/linux-user/safe-syscall.o
CC sh4-softmmu/memory.o
CC i386-softmmu/accel/accel.o
CC i386-linux-user/linux-user/uname.o
CCAS i386-linux-user/linux-user/safe-syscall.o
CC ppc64-softmmu/accel/accel.o
CCAS hppa-linux-user/linux-user/safe-syscall.o
CC hppa-linux-user/target/hppa/translate.o
CC ppc64-linux-user/linux-user/signal.o
CC microblazeel-softmmu/migration/ram.o
CC lm32-softmmu/ioport.o
CC microblazeel-linux-user/linux-user/uname.o
CC sh4eb-linux-user/linux-user/uname.o
CC x86_64-softmmu/dump.o
CC cris-linux-user/linux-user/linuxload.o
CC xtensa-softmmu/hw/core/null-machine.o
CC microblaze-softmmu/qtest.o
CC alpha-softmmu/accel/tcg/cputlb.o
CC mipsel-softmmu/accel/tcg/cpu-exec.o
CC sh4-linux-user/linux-user/linuxload.o
CC cris-linux-user/linux-user/uaccess.o
CC m68k-softmmu/accel/accel.o
CC ppc64le-linux-user/linux-user/linuxload.o
CC sh4eb-softmmu/accel/tcg/tcg-all.o
make: *** [subdir-ppc-softmmu] Error 2
CC sh4-softmmu/memory_mapping.o
CC mips-softmmu/numa.o
CC or1k-linux-user/target/openrisc/sys_helper.o
CC ppc64-softmmu/accel/kvm/kvm-all.o
CC microblazeel-softmmu/accel/accel.o
CCAS sparc64-linux-user/linux-user/safe-syscall.o
CC mips-softmmu/qtest.o
CC tilegx-linux-user/linux-user/elfload.o
CC ppc64abi32-linux-user/target/ppc/cpu-models.o
CC armeb-linux-user/linux-user/uaccess.o
CC m68k-softmmu/accel/stubs/hax-stub.o
CC sparc32plus-linux-user/linux-user/uaccess.o
CC hppa-linux-user/target/hppa/helper.o
CCAS x86_64-linux-user/linux-user/safe-syscall.o
CC nios2-linux-user/linux-user/linuxload.o
CC sparc32plus-linux-user/linux-user/uname.o
CC mips64el-softmmu/migration/ram.o
CC cris-softmmu/accel/stubs/hax-stub.o
CCAS microblazeel-linux-user/linux-user/safe-syscall.o
CC mipsn32-linux-user/linux-user/elfload.o
CC moxie-softmmu/accel/accel.o
CC sh4eb-softmmu/accel/tcg/cputlb.o
CC sh4-softmmu/dump.o
CC sh4-softmmu/migration/ram.o
CC or1k-linux-user/target/openrisc/gdbstub.o
CC xtensa-softmmu/hw/misc/mmio_interface.o
CC s390x-softmmu/accel/stubs/hvf-stub.o
CC sparc64-softmmu/hw/9pfs/virtio-9p-device.o
CC hppa-linux-user/target/hppa/cpu.o
CC sparc-linux-user/linux-user/signal.o
CC sparc-softmmu/accel/tcg/tcg-runtime.o
CC mipsn32el-linux-user/linux-user/uaccess.o
CC mipsn32-linux-user/linux-user/linuxload.o
CC mipsel-softmmu/accel/tcg/cpu-exec-common.o
CC ppc-linux-user/linux-user/signal.o
CC i386-linux-user/linux-user/vm86.o
CC alpha-softmmu/accel/tcg/tcg-runtime.o
CC s390x-linux-user/linux-user/elfload.o
CC lm32-softmmu/numa.o
CC lm32-softmmu/qtest.o
CC cris-softmmu/accel/stubs/hvf-stub.o
CC or1k-softmmu/migration/ram.o
CC cris-softmmu/accel/stubs/kvm-stub.o
CC microblazeel-linux-user/linux-user/flatload.o
CC unicore32-softmmu/accel/tcg/cpu-exec.o
CC s390x-linux-user/linux-user/linuxload.o
CC microblaze-softmmu/memory.o
CC xtensa-softmmu/hw/net/vhost_net.o
CC aarch64_be-linux-user/linux-user/linuxload.o
CC cris-softmmu/accel/tcg/tcg-all.o
CC aarch64_be-linux-user/linux-user/uaccess.o
CC ppc64le-linux-user/linux-user/uaccess.o
CC microblazeel-softmmu/accel/stubs/hax-stub.o
CC nios2-softmmu/migration/ram.o
CC s390x-softmmu/accel/stubs/kvm-stub.o
CC m68k-softmmu/accel/stubs/hvf-stub.o
CC arm-linux-user/linux-user/flatload.o
CC mips64-softmmu/hw/9pfs/virtio-9p-device.o
CCAS sparc32plus-linux-user/linux-user/safe-syscall.o
CC arm-linux-user/linux-user/arm/nwfpe/fpa11.o
CC aarch64_be-linux-user/linux-user/uname.o
CC arm-softmmu/dump.o
GEN trace/generated-helpers.c
CC arm-softmmu/migration/ram.o
CC mipsn32el-linux-user/linux-user/uname.o
CC tricore-softmmu/migration/ram.o
CC or1k-linux-user/trace/control-target.o
CC tricore-softmmu/accel/accel.o
CC hppa-linux-user/target/hppa/op_helper.o
CC mips64el-linux-user/linux-user/signal.o
CCAS aarch64_be-linux-user/linux-user/safe-syscall.o
CC or1k-softmmu/accel/accel.o
CC microblaze-linux-user/linux-user/flatload.o
CC moxie-softmmu/accel/stubs/hax-stub.o
CC xtensaeb-softmmu/dump.o
CC i386-softmmu/accel/stubs/hax-stub.o
CC or1k-softmmu/accel/stubs/hax-stub.o
CC mips64el-linux-user/linux-user/elfload.o
CC sparc64-softmmu/hw/block/virtio-blk.o
CC xtensa-softmmu/hw/net/rocker/qmp-norocker.o
CC tricore-softmmu/accel/stubs/hax-stub.o
CC ppc64le-linux-user/linux-user/uname.o
CC mips64el-linux-user/linux-user/linuxload.o
CC sparc32plus-linux-user/target/sparc/translate.o
CC nios2-softmmu/accel/accel.o
CC arm-softmmu/accel/accel.o
CC mips-linux-user/linux-user/uname.o
CC microblazeel-softmmu/accel/stubs/hvf-stub.o
CC cris-softmmu/accel/tcg/cputlb.o
CC aarch64-linux-user/target/arm/translate-a64.o
CC cris-softmmu/accel/tcg/tcg-runtime.o
CC armeb-linux-user/linux-user/uname.o
CC sh4-linux-user/linux-user/uaccess.o
CC m68k-softmmu/accel/stubs/kvm-stub.o
CCAS mipsn32el-linux-user/linux-user/safe-syscall.o
CC sparc-softmmu/accel/tcg/cpu-exec.o
CC sparc-softmmu/accel/tcg/cpu-exec-common.o
CC i386-softmmu/accel/stubs/hvf-stub.o
CC alpha-softmmu/accel/tcg/cpu-exec.o
CC mipsn32el-linux-user/target/mips/translate.o
CC nios2-linux-user/linux-user/uaccess.o
CC s390x-softmmu/accel/tcg/tcg-all.o
CC moxie-softmmu/accel/stubs/hvf-stub.o
CC ppc64-linux-user/linux-user/elfload.o
CC sparc32plus-linux-user/target/sparc/helper.o
CC cris-linux-user/linux-user/uname.o
CC or1k-linux-user/trace/generated-helpers.o
CC xtensa-softmmu/hw/vfio/common.o
CC mipsn32-linux-user/linux-user/uaccess.o
CC sparc64-softmmu/hw/block/vhost-user-blk.o
CC microblaze-linux-user/target/microblaze/translate.o
CC mips64-softmmu/hw/block/virtio-blk.o
CC mips64-softmmu/hw/block/vhost-user-blk.o
CC mips-softmmu/memory.o
CCAS ppc64le-linux-user/linux-user/safe-syscall.o
CC aarch64-softmmu/memory_mapping.o
CC sparc-linux-user/linux-user/elfload.o
CC s390x-linux-user/linux-user/uaccess.o
CC ppc64abi32-linux-user/target/ppc/cpu.o
CC nios2-softmmu/accel/stubs/hax-stub.o
CC sparc64-softmmu/hw/block/dataplane/virtio-blk.o
CC aarch64-softmmu/dump.o
CC mipsn32el-linux-user/target/mips/dsp_helper.o
CC x86_64-softmmu/migration/ram.o
CC mipsn32el-linux-user/target/mips/op_helper.o
CC sparc-softmmu/accel/tcg/translate-all.o
CC sparc64-softmmu/hw/char/virtio-serial-bus.o
CC m68k-linux-user/linux-user/linuxload.o
CC tricore-softmmu/accel/stubs/hvf-stub.o
CC m68k-softmmu/accel/tcg/tcg-all.o
CC s390x-softmmu/accel/tcg/cputlb.o
CC s390x-linux-user/linux-user/uname.o
CC i386-softmmu/accel/stubs/kvm-stub.o
CC aarch64-softmmu/migration/ram.o
CC moxie-softmmu/accel/stubs/kvm-stub.o
CC alpha-softmmu/accel/tcg/cpu-exec-common.o
CC lm32-softmmu/memory.o
CCAS armeb-linux-user/linux-user/safe-syscall.o
CC alpha-softmmu/accel/tcg/translate-all.o
LINK or1k-linux-user/qemu-or1k
CC aarch64_be-linux-user/linux-user/flatload.o
CC aarch64-linux-user/target/arm/helper-a64.o
CCAS sh4eb-linux-user/linux-user/safe-syscall.o
CC mipsel-linux-user/target/mips/lmi_helper.o
CC xtensaeb-softmmu/migration/ram.o
CC sparc64-linux-user/target/sparc/translate.o
CC xtensaeb-softmmu/accel/accel.o
CC sh4-linux-user/linux-user/uname.o
CC microblaze-softmmu/memory_mapping.o
CC microblazeel-linux-user/target/microblaze/translate.o
CC moxie-softmmu/accel/tcg/tcg-all.o
CC alpha-linux-user/linux-user/uaccess.o
CCAS mips-linux-user/linux-user/safe-syscall.o
CC i386-softmmu/accel/tcg/tcg-all.o
CC i386-softmmu/accel/tcg/cputlb.o
CC m68k-softmmu/accel/tcg/cputlb.o
CC xtensa-softmmu/hw/vfio/platform.o
CC mips64el-softmmu/accel/accel.o
CC mipsel-softmmu/accel/tcg/translate-all.o
CCAS cris-linux-user/linux-user/safe-syscall.o
CC aarch64_be-linux-user/target/arm/arm-semi.o
CC sparc64-linux-user/target/sparc/helper.o
CC mipsn32-linux-user/linux-user/uname.o
CC alpha-linux-user/linux-user/uname.o
CC ppc64-linux-user/linux-user/linuxload.o
CC ppc64le-linux-user/target/ppc/cpu-models.o
CC moxie-softmmu/accel/tcg/cputlb.o
CC mips64-linux-user/linux-user/mmap.o
CC hppa-linux-user/target/hppa/gdbstub.o
CC aarch64-linux-user/target/arm/gdbstub64.o
CC tilegx-linux-user/linux-user/linuxload.o
CC xtensa-softmmu/hw/vfio/spapr.o
CC arm-softmmu/accel/stubs/hax-stub.o
CC mipsel-softmmu/accel/tcg/translator.o
CC lm32-softmmu/memory_mapping.o
CC mipsel-softmmu/hw/9pfs/virtio-9p-device.o
CC microblazeel-softmmu/accel/stubs/kvm-stub.o
CC microblazeel-softmmu/accel/tcg/tcg-all.o
CC mipsn32el-linux-user/target/mips/lmi_helper.o
CC mips64-linux-user/linux-user/signal.o
CC armeb-linux-user/linux-user/flatload.o
CC tilegx-linux-user/linux-user/uaccess.o
CC xtensa-softmmu/hw/xtensa/pic_cpu.o
CC sh4eb-softmmu/accel/tcg/tcg-runtime.o
CC ppc64abi32-linux-user/target/ppc/translate.o
CC x86_64-linux-user/target/i386/helper.o
CC mips64-softmmu/hw/block/dataplane/virtio-blk.o
CC armeb-linux-user/linux-user/arm/nwfpe/fpa11.o
GEN trace/generated-helpers.c
CC ppc64le-linux-user/target/ppc/cpu.o
CC moxie-softmmu/accel/tcg/tcg-runtime.o
CC mips64el-linux-user/linux-user/uaccess.o
CC sparc-linux-user/linux-user/linuxload.o
CC mipsn32el-linux-user/target/mips/helper.o
CC nios2-softmmu/accel/stubs/hvf-stub.o
CC m68k-linux-user/linux-user/uaccess.o
CC or1k-softmmu/accel/stubs/hvf-stub.o
CC mips64el-softmmu/accel/stubs/hax-stub.o
CC ppc64-softmmu/accel/kvm/sev.o
CC sparc64-softmmu/hw/core/generic-loader.o
CC sparc32plus-linux-user/target/sparc/cpu.o
CCAS alpha-linux-user/linux-user/safe-syscall.o
CC sparc32plus-linux-user/target/sparc/fop_helper.o
CC alpha-linux-user/target/alpha/translate.o
CC microblazeel-softmmu/accel/tcg/cputlb.o
CC x86_64-linux-user/target/i386/cpu.o
CCAS sh4-linux-user/linux-user/safe-syscall.o
CC nios2-linux-user/linux-user/uname.o
CC xtensaeb-softmmu/accel/stubs/hax-stub.o
CC nios2-softmmu/accel/stubs/kvm-stub.o
CC mips-softmmu/memory_mapping.o
CCAS s390x-linux-user/linux-user/safe-syscall.o
CC microblaze-linux-user/target/microblaze/op_helper.o
CC tricore-softmmu/accel/stubs/kvm-stub.o
CC alpha-linux-user/target/alpha/helper.o
CC mips64el-softmmu/accel/stubs/hvf-stub.o
CC mipsel-linux-user/target/mips/helper.o
CC sparc64-linux-user/target/sparc/cpu.o
CC xtensaeb-softmmu/accel/stubs/hvf-stub.o
CC arm-softmmu/accel/stubs/hvf-stub.o
/var/tmp/patchew-tester-tmp-r4540qbd/src/accel/kvm/sev.c: In function ‘sev_dbg_enc_dec’:
/var/tmp/patchew-tester-tmp-r4540qbd/src/accel/kvm/sev.c:540:22: error: format ‘%llx’ expects argument of type ‘long long unsigned int’, but argument 4 has type ‘__u64’ [-Werror=format=]
fw_error_to_str(error));
^
/var/tmp/patchew-tester-tmp-r4540qbd/src/accel/kvm/sev.c:540:22: error: format ‘%llx’ expects argument of type ‘long long unsigned int’, but argument 5 has type ‘__u64’ [-Werror=format=]
cc1: all warnings being treated as errors
make[1]: *** [accel/kvm/sev.o] Error 1
CC or1k-softmmu/accel/stubs/kvm-stub.o
CC armeb-linux-user/linux-user/arm/nwfpe/fpa11_cpdo.o
make: *** [subdir-ppc64-softmmu] Error 2
CC ppc64abi32-linux-user/target/ppc/kvm-stub.o
CC mips64el-linux-user/linux-user/uname.o
CC microblazeel-linux-user/target/microblaze/op_helper.o
CC mips64-softmmu/hw/char/virtio-serial-bus.o
CC mips64-softmmu/hw/core/generic-loader.o
CC s390x-softmmu/accel/tcg/tcg-runtime.o
CC sh4-softmmu/accel/accel.o
CC i386-linux-user/target/i386/helper.o
CC mips64-linux-user/linux-user/elfload.o
CC tricore-softmmu/accel/tcg/tcg-all.o
CC xtensa-softmmu/hw/xtensa/sim.o
CC sparc64-linux-user/target/sparc/fop_helper.o
CC x86_64-softmmu/accel/accel.o
CC aarch64_be-linux-user/target/arm/kvm-stub.o
CC mips64-softmmu/hw/core/null-machine.o
CC ppc-linux-user/linux-user/elfload.o
CC sh4-softmmu/accel/stubs/hax-stub.o
CC lm32-softmmu/dump.o
CC aarch64_be-linux-user/target/arm/translate.o
CC moxie-softmmu/accel/tcg/cpu-exec.o
CC mips64el-softmmu/accel/stubs/kvm-stub.o
CC sparc64-softmmu/hw/core/null-machine.o
CC x86_64-linux-user/target/i386/gdbstub.o
CC ppc64le-linux-user/target/ppc/translate.o
CC sparc-softmmu/accel/tcg/translator.o
CC mipsel-softmmu/hw/block/virtio-blk.o
CC sparc-linux-user/linux-user/uaccess.o
CC or1k-softmmu/accel/tcg/tcg-all.o
CC hppa-linux-user/trace/control-target.o
CC i386-softmmu/accel/tcg/tcg-runtime.o
CC alpha-softmmu/accel/tcg/translator.o
CC cris-softmmu/accel/tcg/cpu-exec.o
CC aarch64-linux-user/target/arm/crypto_helper.o
CC x86_64-softmmu/accel/stubs/hax-stub.o
CC s390x-linux-user/target/s390x/cpu.o
CC nios2-softmmu/accel/tcg/tcg-all.o
CC ppc64-linux-user/linux-user/uaccess.o
CC alpha-linux-user/target/alpha/cpu.o
CC mips64el-softmmu/accel/tcg/tcg-all.o
CC tricore-softmmu/accel/tcg/cputlb.o
CC sh4eb-linux-user/linux-user/flatload.o
CC sh4eb-softmmu/accel/tcg/cpu-exec.o
CC s390x-linux-user/target/s390x/cpu_models.o
CC m68k-softmmu/accel/tcg/tcg-runtime.o
CC xtensa-softmmu/hw/xtensa/xtensa_memory.o
CC armeb-linux-user/linux-user/arm/nwfpe/fpa11_cpdt.o
CC armeb-linux-user/linux-user/arm/nwfpe/fpa11_cprt.o
CC arm-softmmu/accel/stubs/kvm-stub.o
CCAS mipsn32-linux-user/linux-user/safe-syscall.o
CC sh4eb-linux-user/target/sh4/translate.o
CC s390x-linux-user/target/s390x/cpu_features.o
CC armeb-linux-user/linux-user/arm/nwfpe/fpopcode.o
CC aarch64-softmmu/accel/accel.o
CC mipsn32el-linux-user/target/mips/cpu.o
CC i386-softmmu/accel/tcg/cpu-exec.o
CC or1k-softmmu/accel/tcg/cputlb.o
CC sh4-softmmu/accel/stubs/hvf-stub.o
CC microblazeel-softmmu/accel/tcg/tcg-runtime.o
CC xtensa-softmmu/hw/xtensa/xtfpga.o
CC nios2-softmmu/accel/tcg/cputlb.o
CC nios2-softmmu/accel/tcg/tcg-runtime.o
CC nios2-softmmu/accel/tcg/cpu-exec.o
CC sparc64-softmmu/hw/display/vga.o
CC i386-linux-user/target/i386/cpu.o
CC mips64-linux-user/linux-user/linuxload.o
CC i386-softmmu/accel/tcg/cpu-exec-common.o
CC hppa-linux-user/trace/generated-helpers.o
CC s390x-linux-user/target/s390x/gdbstub.o
CC m68k-linux-user/linux-user/uname.o
CC microblaze-linux-user/target/microblaze/helper.o
CC nios2-softmmu/accel/tcg/cpu-exec-common.o
CC mips64el-softmmu/accel/tcg/cputlb.o
CC i386-softmmu/accel/tcg/translate-all.o
CC cris-softmmu/accel/tcg/cpu-exec-common.o
CC s390x-linux-user/target/s390x/interrupt.o
CC arm-softmmu/accel/tcg/tcg-all.o
CC aarch64-softmmu/accel/stubs/hax-stub.o
GEN trace/generated-helpers.c
CC sh4-linux-user/linux-user/flatload.o
CC sh4eb-linux-user/target/sh4/op_helper.o
CC mipsel-softmmu/hw/block/vhost-user-blk.o
CC microblazeel-softmmu/accel/tcg/cpu-exec.o
CC microblazeel-linux-user/target/microblaze/helper.o
CC s390x-linux-user/target/s390x/helper.o
CC sparc-softmmu/hw/core/generic-loader.o
CC sh4-softmmu/accel/stubs/kvm-stub.o
CC sh4-softmmu/accel/tcg/tcg-all.o
CC alpha-linux-user/target/alpha/int_helper.o
CC tilegx-linux-user/linux-user/uname.o
CC cris-softmmu/accel/tcg/translate-all.o
CC microblazeel-linux-user/target/microblaze/cpu.o
CC s390x-softmmu/accel/tcg/cpu-exec.o
CC aarch64-softmmu/accel/stubs/hvf-stub.o
CC mips64-linux-user/linux-user/uaccess.o
CC xtensa-softmmu/target/xtensa/xtensa-semi.o
CC x86_64-softmmu/accel/stubs/hvf-stub.o
CC microblaze-softmmu/dump.o
CCAS m68k-linux-user/linux-user/safe-syscall.o
CC lm32-softmmu/migration/ram.o
CCAS tilegx-linux-user/linux-user/safe-syscall.o
CC ppc-linux-user/linux-user/linuxload.o
CC ppc64-linux-user/linux-user/uname.o
CC unicore32-softmmu/accel/tcg/cpu-exec-common.o
CC cris-linux-user/target/cris/translate.o
CC armeb-linux-user/linux-user/arm/nwfpe/single_cpdo.o
CC alpha-softmmu/hw/9pfs/virtio-9p-device.o
CC armeb-linux-user/linux-user/arm/nwfpe/double_cpdo.o
CC xtensaeb-softmmu/accel/stubs/kvm-stub.o
CC aarch64_be-linux-user/target/arm/op_helper.o
CC xtensa-softmmu/target/xtensa/core-dc232b.o
CC cris-linux-user/target/cris/op_helper.o
CC aarch64-softmmu/accel/stubs/kvm-stub.o
CC cris-linux-user/target/cris/helper.o
LINK hppa-linux-user/qemu-hppa
CC sh4eb-softmmu/accel/tcg/cpu-exec-common.o
CC sh4eb-softmmu/accel/tcg/translate-all.o
CC ppc64le-linux-user/target/ppc/kvm-stub.o
CC mipsn32el-linux-user/target/mips/gdbstub.o
CC aarch64-linux-user/trace/control-target.o
CC aarch64-softmmu/accel/tcg/tcg-all.o
CC sparc-softmmu/hw/core/null-machine.o
CC alpha-linux-user/target/alpha/fpu_helper.o
CC mips-linux-user/target/mips/translate.o
CC mips64-softmmu/hw/display/vga.o
CC sh4-softmmu/accel/tcg/cputlb.o
CC sh4-softmmu/accel/tcg/tcg-runtime.o
CC mips-softmmu/dump.o
CC aarch64-softmmu/accel/tcg/cputlb.o
CC mips64el-softmmu/accel/tcg/tcg-runtime.o
CC m68k-linux-user/linux-user/flatload.o
CC tilegx-linux-user/target/tilegx/cpu.o
CC mipsn32-linux-user/target/mips/translate.o
CC arm-softmmu/accel/tcg/cputlb.o
CC tricore-softmmu/accel/tcg/tcg-runtime.o
CCAS nios2-linux-user/linux-user/safe-syscall.o
CC alpha-linux-user/target/alpha/vax_helper.o
CC x86_64-softmmu/accel/stubs/kvm-stub.o
CC aarch64-softmmu/accel/tcg/tcg-runtime.o
CC sparc-linux-user/linux-user/uname.o
CC alpha-softmmu/hw/block/virtio-blk.o
CC sh4-linux-user/target/sh4/translate.o
CCAS ppc64-linux-user/linux-user/safe-syscall.o
CC mipsel-softmmu/hw/block/dataplane/virtio-blk.o
CC mips64el-softmmu/accel/tcg/cpu-exec.o
CC armeb-linux-user/linux-user/arm/nwfpe/extended_cpdo.o
CC x86_64-linux-user/target/i386/xsave_helper.o
CC unicore32-softmmu/accel/tcg/translate-all.o
CC mipsel-linux-user/target/mips/cpu.o
CC tricore-softmmu/accel/tcg/cpu-exec.o
CC arm-linux-user/linux-user/arm/nwfpe/fpa11_cpdo.o
CC sh4eb-linux-user/target/sh4/helper.o
CC cris-linux-user/target/cris/cpu.o
CC aarch64-softmmu/accel/tcg/cpu-exec.o
CC arm-linux-user/linux-user/arm/nwfpe/fpa11_cpdt.o
CC xtensaeb-softmmu/accel/tcg/tcg-all.o
CC mips-softmmu/migration/ram.o
CC ppc64abi32-linux-user/target/ppc/dfp_helper.o
CC microblaze-softmmu/migration/ram.o
CC x86_64-softmmu/accel/tcg/tcg-all.o
CC xtensa-softmmu/target/xtensa/core-dc233c.o
CC tilegx-linux-user/target/tilegx/translate.o
CC mips64-softmmu/hw/display/virtio-gpu.o
CC sparc-softmmu/hw/display/tcx.o
CC aarch64_be-linux-user/target/arm/helper.o
CC aarch64_be-linux-user/target/arm/cpu.o
CC unicore32-softmmu/accel/tcg/translator.o
CC x86_64-linux-user/target/i386/translate.o
CC x86_64-linux-user/target/i386/bpt_helper.o
CCAS sparc-linux-user/linux-user/safe-syscall.o
CC armeb-linux-user/target/arm/arm-semi.o
CC microblazeel-linux-user/target/microblaze/gdbstub.o
CC microblaze-linux-user/target/microblaze/cpu.o
CC sparc32plus-linux-user/target/sparc/cc_helper.o
CC sparc32plus-linux-user/target/sparc/win_helper.o
CC mipsel-linux-user/target/mips/gdbstub.o
CC mips64el-softmmu/accel/tcg/cpu-exec-common.o
CC cris-softmmu/accel/tcg/translator.o
CC xtensaeb-softmmu/accel/tcg/cputlb.o
CC sparc-softmmu/hw/display/cg3.o
CC nios2-linux-user/target/nios2/translate.o
CC x86_64-softmmu/accel/tcg/cputlb.o
CC x86_64-softmmu/accel/tcg/tcg-runtime.o
CC mipsel-softmmu/hw/char/virtio-serial-bus.o
CC mipsel-softmmu/hw/core/generic-loader.o
CC mips-softmmu/accel/accel.o
CC mips64-linux-user/linux-user/uname.o
CC i386-linux-user/target/i386/gdbstub.o
CC aarch64_be-linux-user/target/arm/neon_helper.o
CC mips-softmmu/accel/stubs/hax-stub.o
CC sh4eb-softmmu/accel/tcg/translator.o
CC arm-linux-user/linux-user/arm/nwfpe/fpa11_cprt.o
CC or1k-softmmu/accel/tcg/tcg-runtime.o
CC nios2-softmmu/accel/tcg/translate-all.o
CC sh4eb-linux-user/target/sh4/cpu.o
CC mipsel-linux-user/target/mips/msa_helper.o
CC nios2-softmmu/accel/tcg/translator.o
CC nios2-softmmu/hw/core/generic-loader.o
CC mipsn32el-linux-user/target/mips/msa_helper.o
CC sparc64-softmmu/hw/display/virtio-gpu.o
CC sparc-linux-user/target/sparc/translate.o
CC aarch64-linux-user/gdbstub-xml.o
CC sparc64-softmmu/hw/display/virtio-gpu-3d.o
CC unicore32-softmmu/hw/core/generic-loader.o
CC s390x-softmmu/accel/tcg/cpu-exec-common.o
CC mips-softmmu/accel/stubs/hvf-stub.o
CC m68k-linux-user/linux-user/m68k-sim.o
CC sh4eb-softmmu/hw/9pfs/virtio-9p-device.o
CC mips-linux-user/target/mips/dsp_helper.o
CC aarch64-softmmu/accel/tcg/cpu-exec-common.o
CC moxie-softmmu/accel/tcg/cpu-exec-common.o
CC mipsel-softmmu/hw/core/null-machine.o
CC sh4-softmmu/accel/tcg/cpu-exec.o
CC arm-softmmu/accel/tcg/tcg-runtime.o
CC sparc64-softmmu/hw/display/virtio-gpu-pci.o
CC or1k-softmmu/accel/tcg/cpu-exec.o
CC cris-softmmu/hw/core/generic-loader.o
CC s390x-softmmu/accel/tcg/translate-all.o
CC arm-linux-user/linux-user/arm/nwfpe/fpopcode.o
CC microblaze-linux-user/target/microblaze/gdbstub.o
CC mipsel-softmmu/hw/display/vga.o
CC moxie-softmmu/accel/tcg/translate-all.o
CC tricore-softmmu/accel/tcg/cpu-exec-common.o
CC i386-linux-user/target/i386/xsave_helper.o
CC moxie-softmmu/accel/tcg/translator.o
CC mips-linux-user/target/mips/op_helper.o
CC mipsn32-linux-user/target/mips/dsp_helper.o
CCAS mips64el-linux-user/linux-user/safe-syscall.o
CC ppc64abi32-linux-user/target/ppc/excp_helper.o
CC sparc64-softmmu/hw/misc/ivshmem.o
CC sparc-softmmu/hw/intc/grlib_irqmp.o
CC mipsn32-linux-user/target/mips/op_helper.o
CC cris-softmmu/hw/core/null-machine.o
CC tilegx-linux-user/target/tilegx/helper.o
CC mips64el-linux-user/target/mips/translate.o
CC sh4-linux-user/target/sh4/op_helper.o
CC armeb-linux-user/target/arm/kvm-stub.o
CC s390x-softmmu/accel/tcg/translator.o
CC unicore32-softmmu/hw/core/null-machine.o
CC microblazeel-softmmu/accel/tcg/cpu-exec-common.o
CC alpha-softmmu/hw/block/vhost-user-blk.o
GEN trace/generated-helpers.c
CC sparc64-softmmu/hw/misc/mmio_interface.o
CC ppc64le-linux-user/target/ppc/dfp_helper.o
CC sparc32plus-linux-user/target/sparc/mmu_helper.o
CC sparc-linux-user/target/sparc/helper.o
CC sparc64-softmmu/hw/net/virtio-net.o
CC ppc64-linux-user/target/ppc/cpu-models.o
CC armeb-linux-user/target/arm/translate.o
CC ppc64abi32-linux-user/target/ppc/fpu_helper.o
CC mips64el-linux-user/target/mips/dsp_helper.o
CC m68k-linux-user/target/m68k/m68k-semi.o
CC lm32-softmmu/accel/accel.o
CC microblaze-linux-user/trace/control-target.o
CC lm32-softmmu/accel/stubs/hax-stub.o
CC moxie-softmmu/hw/core/generic-loader.o
CC moxie-softmmu/hw/core/null-machine.o
CC sparc-softmmu/hw/misc/eccmemctl.o
CC mips64el-linux-user/target/mips/op_helper.o
CC sparc-softmmu/hw/misc/slavio_misc.o
CC arm-linux-user/linux-user/arm/nwfpe/single_cpdo.o
CC unicore32-softmmu/hw/misc/mmio_interface.o
CC cris-softmmu/hw/misc/mmio_interface.o
CC alpha-softmmu/hw/block/dataplane/virtio-blk.o
CC sh4eb-softmmu/hw/block/tc58128.o
CC ppc-linux-user/linux-user/uaccess.o
CC ppc64le-linux-user/target/ppc/excp_helper.o
CC x86_64-softmmu/accel/tcg/cpu-exec.o
CC i386-linux-user/target/i386/translate.o
GEN trace/generated-helpers.c
CC ppc64le-linux-user/target/ppc/fpu_helper.o
CC i386-linux-user/target/i386/bpt_helper.o
CC arm-linux-user/linux-user/arm/nwfpe/double_cpdo.o
CC ppc64abi32-linux-user/target/ppc/int_helper.o
CC sparc32plus-linux-user/target/sparc/ldst_helper.o
CC xtensa-softmmu/target/xtensa/core-de212.o
CCAS mips64-linux-user/linux-user/safe-syscall.o
CC cris-softmmu/hw/net/etraxfs_eth.o
CC mips-linux-user/target/mips/lmi_helper.o
CC ppc-linux-user/linux-user/uname.o
CC s390x-linux-user/target/s390x/translate.o
CC mipsn32-linux-user/target/mips/lmi_helper.o
CC x86_64-linux-user/target/i386/cc_helper.o
CC ppc64le-linux-user/target/ppc/int_helper.o
CC x86_64-linux-user/target/i386/excp_helper.o
CC lm32-softmmu/accel/stubs/hvf-stub.o
CC xtensa-softmmu/target/xtensa/core-fsf.o
CC sh4-linux-user/target/sh4/helper.o
CC mips64-softmmu/hw/display/virtio-gpu-3d.o
CC microblazeel-linux-user/trace/control-target.o
CC microblaze-softmmu/accel/accel.o
CC unicore32-softmmu/hw/net/vhost_net.o
CC armeb-linux-user/target/arm/op_helper.o
CC nios2-softmmu/hw/core/null-machine.o
CC microblaze-linux-user/trace/generated-helpers.o
CC sh4eb-softmmu/hw/block/virtio-blk.o
CC sparc32plus-linux-user/target/sparc/int64_helper.o
CC arm-linux-user/linux-user/arm/nwfpe/extended_cpdo.o
CC microblazeel-softmmu/accel/tcg/translate-all.o
CC microblazeel-softmmu/accel/tcg/translator.o
CC x86_64-softmmu/accel/tcg/cpu-exec-common.o
CC sh4-softmmu/accel/tcg/cpu-exec-common.o
CC mips-softmmu/accel/stubs/kvm-stub.o
CC lm32-softmmu/accel/stubs/kvm-stub.o
CC m68k-linux-user/target/m68k/translate.o
CC lm32-softmmu/accel/tcg/tcg-all.o
CC s390x-softmmu/hw/9pfs/virtio-9p-device.o
CC tricore-softmmu/accel/tcg/translate-all.o
CC nios2-linux-user/target/nios2/op_helper.o
CC alpha-softmmu/hw/char/virtio-serial-bus.o
CC ppc64-linux-user/target/ppc/cpu.o
CC xtensaeb-softmmu/accel/tcg/tcg-runtime.o
CC unicore32-softmmu/hw/net/rocker/qmp-norocker.o
CC mips64-softmmu/hw/display/virtio-gpu-pci.o
CC m68k-softmmu/accel/tcg/cpu-exec.o
CC i386-softmmu/accel/tcg/translator.o
CC xtensa-softmmu/target/xtensa/core-sample_controller.o
CC cris-softmmu/hw/net/vhost_net.o
CC s390x-softmmu/hw/block/virtio-blk.o
CC sparc-softmmu/hw/misc/mmio_interface.o
CC alpha-linux-user/target/alpha/sys_helper.o
CC sh4eb-linux-user/target/sh4/gdbstub.o
CC nios2-softmmu/hw/intc/nios2_iic.o
CC s390x-softmmu/hw/block/vhost-user-blk.o
CC tilegx-linux-user/target/tilegx/simd_helper.o
CC i386-linux-user/target/i386/cc_helper.o
CC microblazeel-linux-user/trace/generated-helpers.o
CC or1k-softmmu/accel/tcg/cpu-exec-common.o
CC or1k-softmmu/accel/tcg/translate-all.o
CC arm-linux-user/target/arm/arm-semi.o
CC m68k-softmmu/accel/tcg/cpu-exec-common.o
CC or1k-softmmu/accel/tcg/translator.o
CC mips64el-softmmu/accel/tcg/translate-all.o
CC i386-linux-user/target/i386/excp_helper.o
CC lm32-softmmu/accel/tcg/cputlb.o
CC moxie-softmmu/hw/display/vga.o
CC sh4-softmmu/accel/tcg/translate-all.o
CC unicore32-softmmu/hw/vfio/common.o
LINK microblaze-linux-user/qemu-microblaze
CC sh4-softmmu/accel/tcg/translator.o
CC i386-softmmu/hw/9pfs/virtio-9p-device.o
CC sparc-softmmu/hw/net/vhost_net.o
CC microblaze-softmmu/accel/stubs/hax-stub.o
CC mipsn32-linux-user/target/mips/helper.o
CC sh4-softmmu/hw/9pfs/virtio-9p-device.o
CC mips64-softmmu/hw/intc/mips_gic.o
CC mips-softmmu/accel/tcg/tcg-all.o
CC alpha-linux-user/target/alpha/mem_helper.o
CC arm-softmmu/accel/tcg/cpu-exec.o
CC nios2-linux-user/target/nios2/helper.o
CC unicore32-softmmu/hw/vfio/platform.o
CC sh4-linux-user/target/sh4/cpu.o
CC mips64el-softmmu/accel/tcg/translator.o
CC mips64el-softmmu/hw/9pfs/virtio-9p-device.o
CC cris-softmmu/hw/net/rocker/qmp-norocker.o
CC i386-linux-user/target/i386/fpu_helper.o
CC xtensaeb-softmmu/accel/tcg/cpu-exec.o
GEN trace/generated-helpers.c
CC m68k-linux-user/target/m68k/op_helper.o
CC microblaze-softmmu/accel/stubs/hvf-stub.o
CC sparc32plus-linux-user/target/sparc/vis_helper.o
CC tilegx-linux-user/trace/control-target.o
LINK microblazeel-linux-user/qemu-microblazeel
CC s390x-linux-user/target/s390x/cc_helper.o
CC s390x-linux-user/target/s390x/excp_helper.o
CC microblazeel-softmmu/hw/core/generic-loader.o
CC mips-linux-user/target/mips/helper.o
CC mips-softmmu/accel/tcg/cputlb.o
CC sparc-softmmu/hw/net/rocker/qmp-norocker.o
CC sparc-softmmu/hw/vfio/common.o
CC s390x-linux-user/target/s390x/fpu_helper.o
CC nios2-linux-user/target/nios2/cpu.o
CC s390x-linux-user/target/s390x/int_helper.o
CC mipsel-linux-user/target/mips/mips-semi.o
CC ppc64le-linux-user/target/ppc/timebase_helper.o
CC alpha-linux-user/target/alpha/gdbstub.o
CC mips64-softmmu/hw/misc/ivshmem.o
CC m68k-linux-user/target/m68k/helper.o
CC microblaze-softmmu/accel/stubs/kvm-stub.o
CC cris-softmmu/hw/vfio/common.o
CC i386-softmmu/hw/block/virtio-blk.o
CC nios2-softmmu/hw/misc/mmio_interface.o
CC mips64el-softmmu/hw/block/virtio-blk.o
CC cris-linux-user/target/cris/gdbstub.o
GEN trace/generated-helpers.c
CC x86_64-softmmu/accel/tcg/translate-all.o
CC ppc64abi32-linux-user/target/ppc/timebase_helper.o
CC xtensaeb-softmmu/accel/tcg/cpu-exec-common.o
CC sh4eb-softmmu/hw/block/vhost-user-blk.o
CC sh4eb-linux-user/trace/control-target.o
CC sh4eb-softmmu/hw/block/dataplane/virtio-blk.o
CC nios2-linux-user/target/nios2/mmu.o
CC sparc64-softmmu/hw/net/vhost_net.o
CC cris-softmmu/hw/vfio/platform.o
CC alpha-softmmu/hw/core/generic-loader.o
CC microblazeel-softmmu/hw/core/null-machine.o
GEN trace/generated-helpers.c
CC lm32-softmmu/accel/tcg/tcg-runtime.o
CC mipsel-softmmu/hw/display/virtio-gpu.o
CC mipsel-softmmu/hw/display/virtio-gpu-3d.o
CC arm-linux-user/target/arm/kvm-stub.o
CC mipsn32-linux-user/target/mips/cpu.o
CC tilegx-linux-user/trace/generated-helpers.o
CC alpha-linux-user/trace/control-target.o
CC nios2-softmmu/hw/net/vhost_net.o
CC mips64el-linux-user/target/mips/lmi_helper.o
CC mipsn32-linux-user/target/mips/gdbstub.o
CC mips-softmmu/accel/tcg/tcg-runtime.o
CC i386-softmmu/hw/block/vhost-user-blk.o
CC i386-softmmu/hw/block/dataplane/virtio-blk.o
CC m68k-softmmu/accel/tcg/translate-all.o
CC microblaze-softmmu/accel/tcg/tcg-all.o
CC s390x-softmmu/hw/block/dataplane/virtio-blk.o
GEN trace/generated-helpers.c
CC cris-softmmu/hw/vfio/spapr.o
CCAS ppc-linux-user/linux-user/safe-syscall.o
CC ppc64-linux-user/target/ppc/translate.o
CC microblazeel-softmmu/hw/dma/xlnx_dpdma.o
CC microblazeel-softmmu/hw/misc/mmio_interface.o
CC m68k-softmmu/accel/tcg/translator.o
CC cris-softmmu/hw/cris/boot.o
CC microblazeel-softmmu/hw/net/xilinx_ethlite.o
CC mips64-linux-user/target/mips/translate.o
CC sparc-softmmu/hw/vfio/platform.o
CC arm-linux-user/target/arm/translate.o
CC nios2-linux-user/trace/control-target.o
CC sparc64-softmmu/hw/scsi/virtio-scsi.o
CC or1k-softmmu/hw/core/generic-loader.o
CC mips64-softmmu/hw/misc/mips_cmgcr.o
CC m68k-linux-user/target/m68k/cpu.o
CC nios2-softmmu/hw/net/rocker/qmp-norocker.o
CC sh4-softmmu/hw/block/tc58128.o
CC sh4eb-linux-user/trace/generated-helpers.o
CC alpha-softmmu/hw/core/null-machine.o
CC x86_64-softmmu/accel/tcg/translator.o
CC tricore-softmmu/accel/tcg/translator.o
CC x86_64-softmmu/hw/9pfs/virtio-9p-device.o
CC s390x-softmmu/hw/char/virtio-serial-bus.o
CC aarch64-softmmu/accel/tcg/translate-all.o
CC xtensa-softmmu/target/xtensa/monitor.o
CC x86_64-linux-user/target/i386/fpu_helper.o
CC mips64-linux-user/target/mips/dsp_helper.o
CC arm-softmmu/accel/tcg/cpu-exec-common.o
CC mips64-linux-user/target/mips/op_helper.o
CC alpha-linux-user/trace/generated-helpers.o
CC aarch64-linux-user/trace/generated-helpers.o
CC sparc-linux-user/target/sparc/cpu.o
GEN trace/generated-helpers.c
CC ppc64le-linux-user/target/ppc/misc_helper.o
CC ppc64le-linux-user/target/ppc/mem_helper.o
CC sh4eb-softmmu/hw/char/sh_serial.o
CC sparc64-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC aarch64-softmmu/accel/tcg/translator.o
CC mips64-linux-user/target/mips/lmi_helper.o
LINK tilegx-linux-user/qemu-tilegx
CC microblaze-softmmu/accel/tcg/cputlb.o
CC mips64-linux-user/target/mips/helper.o
CC arm-linux-user/target/arm/op_helper.o
CC nios2-softmmu/hw/timer/altera_timer.o
CC or1k-softmmu/hw/core/null-machine.o
CC ppc64-linux-user/target/ppc/kvm-stub.o
CC i386-linux-user/target/i386/int_helper.o
CC xtensaeb-softmmu/accel/tcg/translate-all.o
CC ppc-linux-user/target/ppc/cpu-models.o
CC aarch64-softmmu/hw/9pfs/virtio-9p-device.o
CC sh4-softmmu/hw/block/virtio-blk.o
CC sparc-softmmu/hw/vfio/spapr.o
CC alpha-softmmu/hw/display/vga.o
CC arm-softmmu/accel/tcg/translate-all.o
CC sh4-softmmu/hw/block/vhost-user-blk.o
CC nios2-linux-user/trace/generated-helpers.o
CC microblazeel-softmmu/hw/net/vhost_net.o
CC i386-softmmu/hw/char/virtio-serial-bus.o
CC sh4-softmmu/hw/block/dataplane/virtio-blk.o
CC ppc64-linux-user/target/ppc/dfp_helper.o
CC mipsel-softmmu/hw/display/virtio-gpu-pci.o
CC sh4eb-softmmu/hw/char/virtio-serial-bus.o
LINK sh4eb-linux-user/qemu-sh4eb
CC mips64-softmmu/hw/misc/mips_cpc.o
CC ppc-linux-user/target/ppc/cpu.o
CC unicore32-softmmu/hw/vfio/spapr.o
CC or1k-softmmu/hw/intc/ompic.o
CC sparc-softmmu/hw/sparc/sun4m_iommu.o
CC mipsn32el-linux-user/target/mips/mips-semi.o
GEN trace/generated-helpers.c
CC s390x-linux-user/target/s390x/mem_helper.o
CC sh4eb-softmmu/hw/core/generic-loader.o
CC cris-linux-user/trace/control-target.o
CC mips64el-softmmu/hw/block/vhost-user-blk.o
LINK alpha-linux-user/qemu-alpha
CC mipsn32-linux-user/target/mips/msa_helper.o
CC ppc64-linux-user/target/ppc/excp_helper.o
CC tricore-softmmu/hw/core/generic-loader.o
CC m68k-softmmu/hw/char/mcf_uart.o
CC m68k-softmmu/hw/core/generic-loader.o
CC tricore-softmmu/hw/misc/mmio_interface.o
CC tricore-softmmu/hw/core/null-machine.o
CC m68k-softmmu/hw/core/null-machine.o
CC m68k-softmmu/hw/misc/mmio_interface.o
CC nios2-softmmu/hw/vfio/common.o
CC nios2-softmmu/hw/vfio/platform.o
CC ppc64-linux-user/target/ppc/fpu_helper.o
GEN trace/generated-helpers.c
CC sh4-linux-user/target/sh4/gdbstub.o
CC microblazeel-softmmu/hw/net/rocker/qmp-norocker.o
CC sparc64-softmmu/hw/scsi/vhost-scsi-common.o
CC sparc-softmmu/hw/sparc/sun4m.o
CC m68k-softmmu/hw/net/mcf_fec.o
CC m68k-softmmu/hw/net/vhost_net.o
GEN trace/generated-helpers.c
LINK nios2-linux-user/qemu-nios2
CC ppc64le-linux-user/target/ppc/user_only_helper.o
CC x86_64-softmmu/hw/block/virtio-blk.o
CC or1k-softmmu/hw/misc/mmio_interface.o
CC nios2-softmmu/hw/vfio/spapr.o
CC sparc-linux-user/target/sparc/fop_helper.o
CC ppc64-linux-user/target/ppc/int_helper.o
CC mipsn32el-linux-user/trace/control-target.o
CC mipsel-softmmu/hw/intc/mips_gic.o
CC sparc32plus-linux-user/target/sparc/gdbstub.o
CC cris-softmmu/hw/cris/axis_dev88.o
CC mipsel-linux-user/trace/control-target.o
CC arm-softmmu/accel/tcg/translator.o
CC lm32-softmmu/accel/tcg/cpu-exec.o
CC mips64-softmmu/hw/misc/mips_itu.o
CC arm-linux-user/target/arm/helper.o
CC sh4eb-softmmu/hw/core/null-machine.o
CC mips64el-softmmu/hw/block/dataplane/virtio-blk.o
CC aarch64-softmmu/hw/adc/stm32f2xx_adc.o
CC sparc-softmmu/hw/sparc/leon3.o
CC x86_64-linux-user/target/i386/int_helper.o
CC cris-linux-user/trace/generated-helpers.o
CC armeb-linux-user/target/arm/helper.o
CC tricore-softmmu/hw/net/vhost_net.o
CC unicore32-softmmu/hw/unicore32/puv3.o
CC microblazeel-softmmu/hw/vfio/common.o
CC microblazeel-softmmu/hw/vfio/platform.o
CC ppc64abi32-linux-user/target/ppc/misc_helper.o
CC i386-softmmu/hw/core/generic-loader.o
CC aarch64_be-linux-user/target/arm/iwmmxt_helper.o
CC aarch64_be-linux-user/target/arm/gdbstub.o
CC sh4-linux-user/trace/control-target.o
CC aarch64_be-linux-user/target/arm/cpu64.o
CC mipsel-softmmu/hw/misc/ivshmem.o
CC or1k-softmmu/hw/net/vhost_net.o
CC sparc-linux-user/target/sparc/cc_helper.o
CC s390x-softmmu/hw/char/terminal3270.o
CC sparc-linux-user/target/sparc/win_helper.o
CC sparc64-softmmu/hw/scsi/vhost-scsi.o
CC mipsn32-linux-user/target/mips/mips-semi.o
CC nios2-softmmu/hw/nios2/boot.o
CC or1k-softmmu/hw/net/rocker/qmp-norocker.o
CC ppc64abi32-linux-user/target/ppc/mem_helper.o
GEN trace/generated-helpers.c
CC mips-linux-user/target/mips/cpu.o
CC sparc-softmmu/target/sparc/machine.o
CC moxie-softmmu/hw/misc/mmio_interface.o
CC sh4eb-softmmu/hw/display/sm501.o
CC sparc64-softmmu/hw/scsi/vhost-user-scsi.o
CC mips64el-linux-user/target/mips/helper.o
CC m68k-softmmu/hw/net/rocker/qmp-norocker.o
CC m68k-linux-user/target/m68k/fpu_helper.o
CC sparc32plus-linux-user/trace/control-target.o
CC sh4-softmmu/hw/char/sh_serial.o
CC arm-softmmu/hw/9pfs/virtio-9p-device.o
CC armeb-linux-user/target/arm/cpu.o
CC tricore-softmmu/hw/net/rocker/qmp-norocker.o
CC xtensaeb-softmmu/accel/tcg/translator.o
CC sparc-linux-user/target/sparc/mmu_helper.o
CC mips64-softmmu/hw/misc/mmio_interface.o
CC microblazeel-softmmu/hw/vfio/spapr.o
LINK cris-linux-user/qemu-cris
CC aarch64-softmmu/hw/block/virtio-blk.o
CC ppc64le-linux-user/target/ppc/gdbstub.o
CC arm-softmmu/hw/adc/stm32f2xx_adc.o
CC sh4-linux-user/trace/generated-helpers.o
CC x86_64-softmmu/hw/block/vhost-user-blk.o
CC mips64el-softmmu/hw/char/virtio-serial-bus.o
CC or1k-softmmu/hw/vfio/common.o
CC unicore32-softmmu/target/unicore32/translate.o
CC microblaze-softmmu/accel/tcg/tcg-runtime.o
CC ppc64-linux-user/target/ppc/timebase_helper.o
CC microblaze-softmmu/accel/tcg/cpu-exec.o
CC sparc64-linux-user/target/sparc/cc_helper.o
CC sparc64-softmmu/hw/timer/mc146818rtc.o
CC xtensa-softmmu/target/xtensa/xtensa-isa.o
CC arm-softmmu/hw/block/virtio-blk.o
CC unicore32-softmmu/target/unicore32/op_helper.o
CC mips-softmmu/accel/tcg/cpu-exec.o
CC microblazeel-softmmu/hw/microblaze/petalogix_s3adsp1800_mmu.o
CC cris-softmmu/target/cris/translate.o
CC m68k-softmmu/hw/vfio/common.o
CC lm32-softmmu/accel/tcg/cpu-exec-common.o
CC s390x-softmmu/hw/core/generic-loader.o
CC moxie-softmmu/hw/net/vhost_net.o
CC armeb-linux-user/target/arm/neon_helper.o
CC xtensa-softmmu/target/xtensa/translate.o
CC mipsn32el-linux-user/trace/generated-helpers.o
CC tricore-softmmu/hw/vfio/common.o
CC xtensa-softmmu/target/xtensa/op_helper.o
CC i386-softmmu/hw/core/null-machine.o
CC mips64el-linux-user/target/mips/cpu.o
CC sparc-linux-user/target/sparc/ldst_helper.o
CC sparc-softmmu/target/sparc/monitor.o
CC mips64el-linux-user/target/mips/gdbstub.o
CC mips64el-softmmu/hw/core/generic-loader.o
GEN trace/generated-helpers.c
CC cris-softmmu/target/cris/op_helper.o
CC sparc32plus-linux-user/trace/generated-helpers.o
CC xtensa-softmmu/target/xtensa/helper.o
CC i386-softmmu/hw/display/vga.o
CC sh4-softmmu/hw/char/virtio-serial-bus.o
CC nios2-softmmu/hw/nios2/cpu_pic.o
CC mips64-softmmu/hw/net/virtio-net.o
CC m68k-linux-user/target/m68k/gdbstub.o
CC unicore32-softmmu/target/unicore32/helper.o
CC unicore32-softmmu/target/unicore32/cpu.o
CC s390x-softmmu/hw/core/null-machine.o
CC aarch64-softmmu/hw/block/vhost-user-blk.o
CC x86_64-softmmu/hw/block/dataplane/virtio-blk.o
CC s390x-linux-user/target/s390x/misc_helper.o
CC xtensaeb-softmmu/hw/core/generic-loader.o
CC s390x-softmmu/hw/display/virtio-gpu.o
CC moxie-softmmu/hw/net/rocker/qmp-norocker.o
CC sh4-softmmu/hw/core/generic-loader.o
CC ppc-linux-user/target/ppc/translate.o
CC sparc-linux-user/target/sparc/int32_helper.o
CC sparc-softmmu/target/sparc/translate.o
CC nios2-softmmu/hw/nios2/10m50_devboard.o
CC xtensaeb-softmmu/hw/core/null-machine.o
CC tricore-softmmu/hw/vfio/platform.o
CC mipsel-softmmu/hw/misc/mips_cmgcr.o
CC ppc64-linux-user/target/ppc/misc_helper.o
CC sparc-linux-user/target/sparc/gdbstub.o
CC aarch64-softmmu/hw/block/dataplane/virtio-blk.o
CC unicore32-softmmu/target/unicore32/ucf64_helper.o
CC mips64el-linux-user/target/mips/msa_helper.o
CC xtensaeb-softmmu/hw/misc/mmio_interface.o
LINK sh4-linux-user/qemu-sh4
CC i386-softmmu/hw/display/virtio-gpu.o
CC m68k-softmmu/hw/vfio/platform.o
CC lm32-softmmu/accel/tcg/translate-all.o
CC sparc64-linux-user/target/sparc/win_helper.o
CC aarch64-softmmu/hw/char/exynos4210_uart.o
CC arm-linux-user/target/arm/cpu.o
CC moxie-softmmu/hw/timer/mc146818rtc.o
CC m68k-softmmu/hw/vfio/spapr.o
CC mips64el-linux-user/target/mips/mips-semi.o
CC sh4-softmmu/hw/core/null-machine.o
CC lm32-softmmu/accel/tcg/translator.o
CC arm-softmmu/hw/block/vhost-user-blk.o
LINK sparc32plus-linux-user/qemu-sparc32plus
CC arm-softmmu/hw/block/dataplane/virtio-blk.o
GEN trace/generated-helpers.c
CC i386-softmmu/hw/display/virtio-gpu-3d.o
CC xtensa-softmmu/target/xtensa/cpu.o
GEN trace/generated-helpers.c
CC nios2-softmmu/target/nios2/translate.o
CC ppc64abi32-linux-user/target/ppc/user_only_helper.o
CC cris-softmmu/target/cris/helper.o
CC sh4eb-softmmu/hw/display/vga.o
CC mipsel-softmmu/hw/misc/mips_cpc.o
CC x86_64-softmmu/hw/char/virtio-serial-bus.o
CC xtensaeb-softmmu/hw/net/vhost_net.o
CC sparc-linux-user/trace/control-target.o
CC mipsel-softmmu/hw/misc/mips_itu.o
CC mips64el-softmmu/hw/core/null-machine.o
CC ppc-linux-user/target/ppc/kvm-stub.o
CC ppc64abi32-linux-user/target/ppc/gdbstub.o
CC sparc64-softmmu/hw/vfio/common.o
CC ppc64abi32-linux-user/target/ppc/../../libdecnumber/decContext.o
CC mips-softmmu/accel/tcg/cpu-exec-common.o
CC sh4-softmmu/hw/display/sm501.o
CC alpha-softmmu/hw/display/virtio-gpu.o
CC mipsel-linux-user/trace/generated-helpers.o
CC aarch64-softmmu/hw/char/omap_uart.o
CC or1k-softmmu/hw/vfio/platform.o
CC mips64-softmmu/hw/net/vhost_net.o
CC armeb-linux-user/target/arm/iwmmxt_helper.o
CC xtensa-softmmu/target/xtensa/gdbstub.o
CC s390x-softmmu/hw/display/virtio-gpu-3d.o
CC mips64-softmmu/hw/scsi/virtio-scsi.o
CC aarch64-softmmu/hw/char/digic-uart.o
CC microblaze-softmmu/accel/tcg/cpu-exec-common.o
CC unicore32-softmmu/target/unicore32/softmmu.o
CC x86_64-softmmu/hw/core/generic-loader.o
CC i386-linux-user/target/i386/mem_helper.o
CC aarch64_be-linux-user/target/arm/translate-a64.o
CC armeb-linux-user/target/arm/gdbstub.o
CC xtensaeb-softmmu/hw/net/rocker/qmp-norocker.o
CC i386-linux-user/target/i386/misc_helper.o
CC moxie-softmmu/hw/vfio/common.o
CC sparc64-softmmu/hw/vfio/pci.o
CC mips64-linux-user/target/mips/cpu.o
CC or1k-softmmu/hw/vfio/spapr.o
CC mips-softmmu/accel/tcg/translate-all.o
CC sparc64-linux-user/target/sparc/mmu_helper.o
CC mipsel-softmmu/hw/misc/mmio_interface.o
CC sparc64-linux-user/target/sparc/ldst_helper.o
CC mips64el-softmmu/hw/display/vga.o
CC aarch64_be-linux-user/target/arm/helper-a64.o
CC ppc64-linux-user/target/ppc/mem_helper.o
CC microblazeel-softmmu/hw/microblaze/petalogix_ml605_mmu.o
CC mipsel-softmmu/hw/net/virtio-net.o
CC i386-linux-user/target/i386/mpx_helper.o
CC sparc-linux-user/trace/generated-helpers.o
CC microblazeel-softmmu/hw/microblaze/xlnx-zynqmp-pmu.o
CC arm-softmmu/hw/char/exynos4210_uart.o
CC mips64el-softmmu/hw/display/virtio-gpu.o
CC mips64el-softmmu/hw/display/virtio-gpu-3d.o
CC ppc64-linux-user/target/ppc/user_only_helper.o
CC aarch64_be-linux-user/target/arm/gdbstub64.o
CC tricore-softmmu/hw/vfio/spapr.o
CC i386-softmmu/hw/display/virtio-gpu-pci.o
CC lm32-softmmu/hw/core/generic-loader.o
CC aarch64-softmmu/hw/char/stm32f2xx_usart.o
CC x86_64-linux-user/target/i386/mem_helper.o
CC aarch64-softmmu/hw/char/bcm2835_aux.o
CC m68k-softmmu/hw/m68k/an5206.o
CC m68k-softmmu/hw/m68k/mcf5208.o
GEN trace/generated-helpers.c
CC x86_64-softmmu/hw/core/null-machine.o
CC sparc-softmmu/target/sparc/helper.o
CC xtensaeb-softmmu/hw/vfio/common.o
CC s390x-softmmu/hw/display/virtio-gpu-pci.o
CC i386-linux-user/target/i386/seg_helper.o
CC arm-softmmu/hw/char/omap_uart.o
CC microblaze-softmmu/accel/tcg/translate-all.o
CC sh4-softmmu/hw/display/vga.o
CC arm-softmmu/hw/char/digic-uart.o
CC arm-softmmu/hw/char/stm32f2xx_usart.o
CC xtensaeb-softmmu/hw/vfio/platform.o
CC sparc-softmmu/target/sparc/cpu.o
CC moxie-softmmu/hw/vfio/platform.o
CC sparc64-linux-user/target/sparc/int64_helper.o
CC moxie-softmmu/hw/vfio/spapr.o
CC sh4-softmmu/hw/display/virtio-gpu.o
CC sparc64-linux-user/target/sparc/vis_helper.o
CC mipsel-softmmu/hw/net/vhost_net.o
CC alpha-softmmu/hw/display/virtio-gpu-3d.o
CC mips64-linux-user/target/mips/gdbstub.o
CC sh4eb-softmmu/hw/display/virtio-gpu.o
CC arm-softmmu/hw/char/bcm2835_aux.o
GEN trace/generated-helpers.c
CC sh4eb-softmmu/hw/display/virtio-gpu-3d.o
CC aarch64-softmmu/hw/char/virtio-serial-bus.o
CC x86_64-softmmu/hw/display/vga.o
CC aarch64-softmmu/hw/core/generic-loader.o
CC alpha-softmmu/hw/display/virtio-gpu-pci.o
CC unicore32-softmmu/trace/control-target.o
CC or1k-softmmu/hw/openrisc/pic_cpu.o
CC sparc64-linux-user/target/sparc/gdbstub.o
CC m68k-softmmu/hw/m68k/mcf5206.o
CC ppc64le-linux-user/target/ppc/../../libdecnumber/decContext.o
CC tricore-softmmu/hw/tricore/tricore_testboard.o
CC tricore-softmmu/target/tricore/translate.o
LINK sparc-linux-user/qemu-sparc
CC i386-softmmu/hw/display/virtio-vga.o
CC microblazeel-softmmu/hw/microblaze/boot.o
CC microblazeel-softmmu/target/microblaze/translate.o
CC mipsel-softmmu/hw/scsi/virtio-scsi.o
CC ppc64-linux-user/target/ppc/gdbstub.o
CC sh4eb-softmmu/hw/display/virtio-gpu-pci.o
CC m68k-softmmu/hw/m68k/mcf_intc.o
CC mips64el-softmmu/hw/display/virtio-gpu-pci.o
CC lm32-softmmu/hw/core/null-machine.o
CC mips-softmmu/accel/tcg/translator.o
CC ppc64abi32-linux-user/target/ppc/../../libdecnumber/decNumber.o
CC ppc64-linux-user/target/ppc/../../libdecnumber/decContext.o
CC s390x-softmmu/hw/intc/s390_flic.o
GEN trace/generated-helpers.c
CC sh4-softmmu/hw/display/virtio-gpu-3d.o
CC arm-softmmu/hw/char/virtio-serial-bus.o
CC sh4eb-softmmu/hw/intc/sh_intc.o
CC ppc64-linux-user/target/ppc/../../libdecnumber/decNumber.o
CC alpha-softmmu/hw/misc/ivshmem.o
CC sparc-softmmu/target/sparc/fop_helper.o
CC s390x-linux-user/target/s390x/crypto_helper.o
CC m68k-softmmu/target/m68k/m68k-semi.o
CC s390x-softmmu/hw/misc/mmio_interface.o
CC alpha-softmmu/hw/misc/mmio_interface.o
CC or1k-softmmu/hw/openrisc/cputimer.o
CC m68k-softmmu/target/m68k/translate.o
CC lm32-softmmu/hw/input/milkymist-softusb.o
CC x86_64-softmmu/hw/display/virtio-gpu.o
CC xtensaeb-softmmu/hw/vfio/spapr.o
CC mips64el-linux-user/trace/control-target.o
CC mipsn32-linux-user/trace/control-target.o
CC mips-softmmu/hw/9pfs/virtio-9p-device.o
CC tricore-softmmu/target/tricore/helper.o
CC armeb-linux-user/target/arm/crypto_helper.o
CC sparc64-softmmu/hw/vfio/pci-quirks.o
CC cris-softmmu/target/cris/cpu.o
CC cris-softmmu/target/cris/gdbstub.o
CC microblazeel-softmmu/target/microblaze/op_helper.o
CC aarch64-softmmu/hw/core/null-machine.o
GEN trace/generated-helpers.c
CC alpha-softmmu/hw/net/virtio-net.o
CC mips64-linux-user/target/mips/msa_helper.o
CC lm32-softmmu/hw/misc/milkymist-hpdmc.o
CC sparc64-linux-user/trace/control-target.o
CC arm-softmmu/hw/core/generic-loader.o
CC mips64-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC mips64-softmmu/hw/scsi/vhost-scsi-common.o
CC moxie-softmmu/hw/moxie/moxiesim.o
CC or1k-softmmu/hw/openrisc/openrisc_sim.o
CC mips64-linux-user/target/mips/mips-semi.o
CC i386-softmmu/hw/intc/apic.o
CC i386-softmmu/hw/intc/apic_common.o
GEN trace/generated-helpers.c
CC x86_64-linux-user/target/i386/misc_helper.o
CC microblazeel-softmmu/target/microblaze/helper.o
CC microblazeel-softmmu/target/microblaze/cpu.o
CC mips-softmmu/hw/block/virtio-blk.o
CC cris-softmmu/target/cris/mmu.o
CC lm32-softmmu/hw/misc/milkymist-pfpu.o
CC arm-linux-user/target/arm/neon_helper.o
CC tricore-softmmu/target/tricore/cpu.o
CC s390x-softmmu/hw/net/virtio-net.o
CC i386-softmmu/hw/intc/ioapic.o
CC nios2-softmmu/target/nios2/op_helper.o
CC microblaze-softmmu/accel/tcg/translator.o
CC nios2-softmmu/target/nios2/helper.o
CC m68k-linux-user/trace/control-target.o
CC sh4eb-softmmu/hw/misc/ivshmem.o
CC s390x-softmmu/hw/net/vhost_net.o
CC or1k-softmmu/target/openrisc/machine.o
CC tricore-softmmu/target/tricore/op_helper.o
CC sh4eb-softmmu/hw/misc/mmio_interface.o
CC aarch64_be-linux-user/target/arm/crypto_helper.o
CC sparc64-linux-user/trace/generated-helpers.o
CC mips64-softmmu/hw/scsi/vhost-scsi.o
CC ppc64-linux-user/target/ppc/../../libdecnumber/dpd/decimal32.o
CC mips-softmmu/hw/block/vhost-user-blk.o
CC x86_64-softmmu/hw/display/virtio-gpu-3d.o
CC ppc64-linux-user/target/ppc/../../libdecnumber/dpd/decimal64.o
CC mipsel-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC aarch64-softmmu/hw/cpu/arm11mpcore.o
CC arm-linux-user/target/arm/iwmmxt_helper.o
CC xtensaeb-softmmu/hw/xtensa/pic_cpu.o
GEN trace/generated-helpers.c
CC xtensaeb-softmmu/hw/xtensa/sim.o
CC cris-softmmu/target/cris/machine.o
CC moxie-softmmu/target/moxie/translate.o
CC mips64el-linux-user/trace/generated-helpers.o
CC s390x-linux-user/target/s390x/kvm-stub.o
CC sparc-softmmu/target/sparc/cc_helper.o
CC sparc-softmmu/target/sparc/win_helper.o
CC m68k-softmmu/target/m68k/op_helper.o
CC s390x-softmmu/hw/net/rocker/qmp-norocker.o
CC ppc-linux-user/target/ppc/dfp_helper.o
CC aarch64-softmmu/hw/cpu/realview_mpcore.o
CC xtensaeb-softmmu/hw/xtensa/xtensa_memory.o
CC sparc-softmmu/target/sparc/mmu_helper.o
CC aarch64-softmmu/hw/cpu/a9mpcore.o
CC lm32-softmmu/hw/misc/mmio_interface.o
GEN trace/generated-helpers.c
CC i386-softmmu/hw/isa/lpc_ich9.o
CC sparc-softmmu/target/sparc/ldst_helper.o
CC aarch64_be-linux-user/trace/control-target.o
CC s390x-softmmu/hw/scsi/virtio-scsi.o
CC microblaze-softmmu/hw/core/generic-loader.o
CC sparc-softmmu/target/sparc/int32_helper.o
CC sparc64-softmmu/hw/vfio/platform.o
CC i386-linux-user/target/i386/smm_helper.o
CC aarch64_be-linux-user/gdbstub-xml.o
CC armeb-linux-user/trace/control-target.o
CC m68k-linux-user/gdbstub-xml.o
CC ppc64le-linux-user/target/ppc/../../libdecnumber/decNumber.o
GEN trace/generated-helpers.c
CC i386-softmmu/hw/misc/ivshmem.o
CC or1k-softmmu/target/openrisc/cpu.o
CC nios2-softmmu/target/nios2/cpu.o
CC sparc-softmmu/target/sparc/gdbstub.o
CC mips64el-softmmu/hw/intc/mips_gic.o
LINK sparc64-linux-user/qemu-sparc64
CC s390x-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC x86_64-softmmu/hw/display/virtio-gpu-pci.o
CC ppc64abi32-linux-user/target/ppc/../../libdecnumber/dpd/decimal32.o
CC aarch64-softmmu/hw/cpu/a15mpcore.o
CC mipsn32-linux-user/trace/generated-helpers.o
GEN trace/generated-helpers.c
CC s390x-softmmu/hw/scsi/vhost-scsi-common.o
GEN trace/generated-helpers.c
CC x86_64-linux-user/target/i386/mpx_helper.o
CC ppc64abi32-linux-user/target/ppc/../../libdecnumber/dpd/decimal64.o
CC ppc64le-linux-user/target/ppc/../../libdecnumber/dpd/decimal32.o
CC i386-softmmu/hw/misc/pvpanic.o
CC aarch64-softmmu/hw/display/omap_dss.o
CC mips64-softmmu/hw/scsi/vhost-user-scsi.o
CC mips-softmmu/hw/block/dataplane/virtio-blk.o
CC or1k-softmmu/target/openrisc/exception.o
CC aarch64-softmmu/hw/display/omap_lcdc.o
CC moxie-softmmu/target/moxie/helper.o
CC i386-softmmu/hw/misc/mmio_interface.o
CC nios2-softmmu/target/nios2/mmu.o
CC mipsel-softmmu/hw/scsi/vhost-scsi-common.o
CC sh4eb-softmmu/hw/net/virtio-net.o
CC nios2-softmmu/target/nios2/monitor.o
CC sh4-softmmu/hw/display/virtio-gpu-pci.o
CC s390x-softmmu/hw/scsi/vhost-scsi.o
CC xtensaeb-softmmu/hw/xtensa/xtfpga.o
CC sh4-softmmu/hw/intc/sh_intc.o
CC sh4-softmmu/hw/misc/ivshmem.o
CC sh4-softmmu/hw/misc/mmio_interface.o
CC xtensaeb-softmmu/target/xtensa/xtensa-semi.o
CC sh4-softmmu/hw/net/virtio-net.o
CC lm32-softmmu/hw/net/milkymist-minimac2.o
CC ppc64abi32-linux-user/target/ppc/../../libdecnumber/dpd/decimal128.o
CC arm-softmmu/hw/core/null-machine.o
CC m68k-softmmu/target/m68k/helper.o
CC xtensaeb-softmmu/target/xtensa/core-dc232b.o
CC unicore32-softmmu/trace/generated-helpers.o
CC s390x-softmmu/hw/scsi/vhost-user-scsi.o
CC sparc64-softmmu/hw/vfio/spapr.o
CC s390x-softmmu/hw/vfio/common.o
CC ppc-linux-user/target/ppc/excp_helper.o
GEN trace/generated-helpers.c
CC microblaze-softmmu/hw/core/null-machine.o
CC microblaze-softmmu/hw/dma/xlnx_dpdma.o
CC mips64el-softmmu/hw/misc/ivshmem.o
CC or1k-softmmu/target/openrisc/interrupt.o
CC mips64-softmmu/hw/timer/mips_gictimer.o
CC mipsel-softmmu/hw/scsi/vhost-scsi.o
CC xtensa-softmmu/trace/control-target.o
CC or1k-softmmu/target/openrisc/mmu.o
CC or1k-softmmu/target/openrisc/translate.o
CC m68k-linux-user/trace/generated-helpers.o
GEN trace/generated-helpers.c
CC mips64-softmmu/hw/timer/mc146818rtc.o
CC sh4eb-softmmu/hw/net/vhost_net.o
CC ppc64le-linux-user/target/ppc/../../libdecnumber/dpd/decimal64.o
CC sh4-softmmu/hw/net/vhost_net.o
CC nios2-softmmu/trace/control-target.o
CC mips64-softmmu/hw/vfio/common.o
CC sh4eb-softmmu/hw/scsi/virtio-scsi.o
CC arm-softmmu/hw/cpu/arm11mpcore.o
CC ppc64le-linux-user/target/ppc/../../libdecnumber/dpd/decimal128.o
CC ppc64-linux-user/target/ppc/../../libdecnumber/dpd/decimal128.o
CC or1k-softmmu/target/openrisc/exception_helper.o
CC mipsel-softmmu/hw/scsi/vhost-user-scsi.o
CC microblaze-softmmu/hw/misc/mmio_interface.o
CC arm-softmmu/hw/cpu/realview_mpcore.o
CC mips64-softmmu/hw/vfio/pci.o
CC cris-softmmu/trace/control-target.o
CC or1k-softmmu/target/openrisc/fpu_helper.o
CC tricore-softmmu/target/tricore/fpu_helper.o
CC sh4-softmmu/hw/scsi/virtio-scsi.o
CC sh4eb-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC mipsel-softmmu/hw/timer/mips_gictimer.o
GEN trace/generated-helpers.c
CC alpha-softmmu/hw/net/vhost_net.o
CC sh4-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC lm32-softmmu/hw/net/vhost_net.o
LINK unicore32-softmmu/qemu-system-unicore32
CC i386-softmmu/hw/net/virtio-net.o
CC mips-softmmu/hw/char/virtio-serial-bus.o
CC sparc64-softmmu/hw/virtio/virtio.o
CC mips64-linux-user/trace/control-target.o
CC aarch64_be-linux-user/trace/generated-helpers.o
CC microblazeel-softmmu/target/microblaze/gdbstub.o
CC arm-linux-user/target/arm/gdbstub.o
CC arm-linux-user/target/arm/crypto_helper.o
CC or1k-softmmu/target/openrisc/interrupt_helper.o
CC ppc-linux-user/target/ppc/fpu_helper.o
CC m68k-softmmu/target/m68k/cpu.o
CC arm-softmmu/hw/cpu/a9mpcore.o
CC mips64el-softmmu/hw/misc/mips_cmgcr.o
LINK aarch64-linux-user/qemu-aarch64
CC ppc-linux-user/target/ppc/int_helper.o
CC mipsel-softmmu/hw/timer/mc146818rtc.o
CC xtensaeb-softmmu/target/xtensa/core-dc233c.o
CC x86_64-softmmu/hw/display/virtio-vga.o
CC xtensaeb-softmmu/target/xtensa/core-de212.o
CC aarch64-softmmu/hw/display/pxa2xx_lcd.o
CC mips64-softmmu/hw/vfio/pci-quirks.o
CC s390x-softmmu/hw/vfio/pci.o
CC nios2-softmmu/trace/generated-helpers.o
CC lm32-softmmu/hw/net/rocker/qmp-norocker.o
CC x86_64-softmmu/hw/intc/apic.o
CC sparc64-softmmu/hw/virtio/virtio-balloon.o
GEN trace/generated-helpers.c
CC moxie-softmmu/target/moxie/machine.o
LINK m68k-linux-user/qemu-m68k
CC mips64-softmmu/hw/vfio/platform.o
CC mips64el-softmmu/hw/misc/mips_cpc.o
CC mips64-softmmu/hw/vfio/spapr.o
CC ppc64le-linux-user/trace/control-target.o
CC mips64-softmmu/hw/virtio/virtio.o
CC sh4eb-softmmu/hw/scsi/vhost-scsi-common.o
CC xtensaeb-softmmu/target/xtensa/core-fsf.o
CC mips-softmmu/hw/core/generic-loader.o
CC armeb-linux-user/gdbstub-xml.o
CC s390x-softmmu/hw/vfio/pci-quirks.o
CC microblaze-softmmu/hw/net/xilinx_ethlite.o
CC s390x-softmmu/hw/vfio/ccw.o
CC alpha-softmmu/hw/scsi/virtio-scsi.o
CC x86_64-softmmu/hw/intc/apic_common.o
CC ppc-linux-user/target/ppc/timebase_helper.o
CC or1k-softmmu/target/openrisc/mmu_helper.o
CC arm-softmmu/hw/cpu/a15mpcore.o
CC sh4-softmmu/hw/scsi/vhost-scsi-common.o
CC sh4eb-softmmu/hw/scsi/vhost-scsi.o
CC mipsel-softmmu/hw/vfio/common.o
CC lm32-softmmu/hw/sd/milkymist-memcard.o
CC lm32-softmmu/hw/vfio/common.o
CC sh4eb-softmmu/hw/scsi/vhost-user-scsi.o
CC sh4eb-softmmu/hw/timer/sh_timer.o
CC ppc64abi32-linux-user/trace/control-target.o
CC ppc64-linux-user/trace/control-target.o
LINK nios2-softmmu/qemu-system-nios2
CC s390x-linux-user/trace/control-target.o
CC s390x-softmmu/hw/vfio/platform.o
CC x86_64-linux-user/target/i386/seg_helper.o
CC moxie-softmmu/target/moxie/cpu.o
CC lm32-softmmu/hw/vfio/platform.o
CC sh4-softmmu/hw/scsi/vhost-scsi.o
CC armeb-linux-user/trace/generated-helpers.o
CC sparc-softmmu/trace/control-target.o
CC mips64el-softmmu/hw/misc/mips_itu.o
CC microblaze-softmmu/hw/net/vhost_net.o
CC microblaze-softmmu/hw/net/rocker/qmp-norocker.o
CC xtensa-softmmu/trace/generated-helpers.o
CC arm-softmmu/hw/display/omap_dss.o
CC x86_64-softmmu/hw/intc/ioapic.o
CC aarch64-softmmu/hw/display/bcm2835_fb.o
GEN trace/generated-helpers.c
CC microblaze-softmmu/hw/vfio/common.o
CC sh4eb-softmmu/hw/timer/mc146818rtc.o
CC sh4-softmmu/hw/scsi/vhost-user-scsi.o
CC i386-softmmu/hw/net/vhost_net.o
CC mips64-softmmu/hw/virtio/virtio-balloon.o
CC alpha-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC x86_64-softmmu/hw/isa/lpc_ich9.o
CC s390x-softmmu/hw/vfio/spapr.o
CC moxie-softmmu/target/moxie/mmu.o
GEN trace/generated-helpers.c
CC moxie-softmmu/trace/control-target.o
CC arm-softmmu/hw/display/omap_lcdc.o
CC i386-linux-user/target/i386/svm_helper.o
CC ppc-linux-user/target/ppc/misc_helper.o
CC ppc-linux-user/target/ppc/mem_helper.o
CC ppc-linux-user/target/ppc/user_only_helper.o
CC m68k-softmmu/target/m68k/fpu_helper.o
CC i386-linux-user/target/i386/kvm-stub.o
CC alpha-softmmu/hw/scsi/vhost-scsi-common.o
CC ppc-linux-user/target/ppc/gdbstub.o
CC alpha-softmmu/hw/scsi/vhost-scsi.o
CC sh4eb-softmmu/hw/vfio/common.o
CC aarch64-softmmu/hw/display/vga.o
CC sparc64-softmmu/hw/virtio/vhost.o
CC s390x-linux-user/gdbstub-xml.o
CC sh4eb-softmmu/hw/vfio/pci.o
CC sh4eb-softmmu/hw/vfio/pci-quirks.o
LINK xtensa-softmmu/qemu-system-xtensa
CC alpha-softmmu/hw/scsi/vhost-user-scsi.o
CC arm-softmmu/hw/display/pxa2xx_lcd.o
CC sh4eb-softmmu/hw/vfio/platform.o
CC ppc64abi32-linux-user/gdbstub-xml.o
CC sparc-softmmu/trace/generated-helpers.o
CC s390x-softmmu/hw/virtio/virtio.o
CC or1k-softmmu/target/openrisc/sys_helper.o
CC xtensaeb-softmmu/target/xtensa/core-sample_controller.o
CC mips64el-softmmu/hw/misc/mmio_interface.o
CC s390x-softmmu/hw/virtio/virtio-balloon.o
CC cris-softmmu/trace/generated-helpers.o
CC sparc64-softmmu/hw/virtio/vhost-backend.o
CC sh4eb-softmmu/hw/vfio/spapr.o
CC ppc64-linux-user/gdbstub-xml.o
CC x86_64-softmmu/hw/misc/ivshmem.o
CC mipsel-softmmu/hw/vfio/pci.o
CC ppc64le-linux-user/gdbstub-xml.o
CC arm-linux-user/trace/control-target.o
CC alpha-softmmu/hw/timer/mc146818rtc.o
CC moxie-softmmu/trace/generated-helpers.o
CC sh4-softmmu/hw/timer/sh_timer.o
CC mips64-softmmu/hw/virtio/vhost.o
GEN trace/generated-helpers.c
CC sh4-softmmu/hw/timer/mc146818rtc.o
CC mipsel-softmmu/hw/vfio/pci-quirks.o
GEN trace/generated-helpers.c
CC i386-softmmu/hw/scsi/virtio-scsi.o
CC microblazeel-softmmu/target/microblaze/mmu.o
CC tricore-softmmu/trace/control-target.o
CC s390x-softmmu/hw/virtio/vhost.o
CC xtensaeb-softmmu/target/xtensa/monitor.o
CC x86_64-softmmu/hw/misc/pvpanic.o
CC mips-softmmu/hw/core/null-machine.o
CC m68k-softmmu/target/m68k/gdbstub.o
CC s390x-softmmu/hw/virtio/vhost-backend.o
CC m68k-softmmu/target/m68k/monitor.o
CC xtensaeb-softmmu/target/xtensa/xtensa-isa.o
CC ppc-linux-user/target/ppc/../../libdecnumber/decContext.o
CC s390x-linux-user/trace/generated-helpers.o
CC i386-linux-user/trace/control-target.o
CC i386-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC sh4-softmmu/hw/vfio/common.o
CC ppc64-linux-user/trace/generated-helpers.o
CC sh4eb-softmmu/hw/virtio/virtio.o
CC s390x-softmmu/hw/virtio/vhost-user.o
CC lm32-softmmu/hw/vfio/spapr.o
CC sparc64-softmmu/hw/virtio/vhost-user.o
CC x86_64-softmmu/hw/misc/mmio_interface.o
CC aarch64-softmmu/hw/display/virtio-gpu.o
LINK sparc-softmmu/qemu-system-sparc
CC microblaze-softmmu/hw/vfio/platform.o
CC mips64el-softmmu/hw/net/virtio-net.o
CC x86_64-linux-user/target/i386/smm_helper.o
CC xtensaeb-softmmu/target/xtensa/translate.o
CC lm32-softmmu/hw/lm32/lm32_boards.o
GEN trace/generated-helpers.c
LINK cris-softmmu/qemu-system-cris
CC mipsel-softmmu/hw/vfio/platform.o
GEN trace/generated-helpers.c
CC or1k-softmmu/target/openrisc/gdbstub.o
CC sh4eb-softmmu/hw/virtio/virtio-balloon.o
CC mips-linux-user/target/mips/gdbstub.o
CC mips64-linux-user/trace/generated-helpers.o
CC mips64el-softmmu/hw/net/vhost_net.o
CC xtensaeb-softmmu/target/xtensa/op_helper.o
LINK moxie-softmmu/qemu-system-moxie
CC mips-softmmu/hw/display/vga.o
CC x86_64-softmmu/hw/net/virtio-net.o
CC ppc-linux-user/target/ppc/../../libdecnumber/decNumber.o
CC ppc64abi32-linux-user/trace/generated-helpers.o
CC mips64-softmmu/hw/virtio/vhost-backend.o
CC mipsel-softmmu/hw/vfio/spapr.o
CC arm-linux-user/gdbstub-xml.o
CC x86_64-linux-user/target/i386/svm_helper.o
CC sh4eb-softmmu/hw/virtio/vhost.o
CC i386-softmmu/hw/scsi/vhost-scsi-common.o
CC x86_64-linux-user/target/i386/kvm-stub.o
CC xtensaeb-softmmu/target/xtensa/helper.o
CC i386-linux-user/gdbstub-xml.o
CC mipsel-softmmu/hw/virtio/virtio.o
CC arm-softmmu/hw/display/bcm2835_fb.o
CC microblazeel-softmmu/trace/control-target.o
CC alpha-softmmu/hw/vfio/common.o
CC sh4eb-softmmu/hw/virtio/vhost-backend.o
CC alpha-softmmu/hw/vfio/pci.o
CC ppc-linux-user/target/ppc/../../libdecnumber/dpd/decimal32.o
CC s390x-softmmu/hw/virtio/vhost-vsock.o
GEN trace/generated-helpers.c
CC i386-softmmu/hw/scsi/vhost-scsi.o
CC i386-softmmu/hw/scsi/vhost-user-scsi.o
GEN trace/generated-helpers.c
CC aarch64-softmmu/hw/display/virtio-gpu-3d.o
CC x86_64-softmmu/hw/net/vhost_net.o
CC mipsel-softmmu/hw/virtio/virtio-balloon.o
CC ppc-linux-user/target/ppc/../../libdecnumber/dpd/decimal64.o
CC arm-softmmu/hw/display/vga.o
CC alpha-softmmu/hw/vfio/pci-quirks.o
CC sh4eb-softmmu/hw/virtio/vhost-user.o
CC or1k-softmmu/trace/control-target.o
CC microblaze-softmmu/hw/vfio/spapr.o
CC sparc64-softmmu/hw/virtio/vhost-vsock.o
CC mipsel-softmmu/hw/virtio/vhost.o
CC i386-softmmu/hw/timer/mc146818rtc.o
CC sh4eb-softmmu/hw/virtio/vhost-vsock.o
CC microblaze-softmmu/hw/microblaze/petalogix_s3adsp1800_mmu.o
CC ppc-linux-user/target/ppc/../../libdecnumber/dpd/decimal128.o
CC mips-softmmu/hw/display/virtio-gpu.o
CC xtensaeb-softmmu/target/xtensa/cpu.o
CC mips-linux-user/target/mips/msa_helper.o
CC or1k-softmmu/trace/generated-helpers.o
CC aarch64-softmmu/hw/display/virtio-gpu-pci.o
CC mipsel-softmmu/hw/virtio/vhost-backend.o
CC mips-linux-user/target/mips/mips-semi.o
CC microblazeel-softmmu/trace/generated-helpers.o
CC lm32-softmmu/hw/lm32/milkymist.o
CC s390x-softmmu/hw/virtio/virtio-crypto.o
CC arm-softmmu/hw/display/virtio-gpu.o
CC mips64el-softmmu/hw/scsi/virtio-scsi.o
CC sh4-softmmu/hw/vfio/pci.o
CC s390x-softmmu/hw/virtio/virtio-crypto-pci.o
CC mips64-softmmu/hw/virtio/vhost-user.o
CC x86_64-softmmu/hw/scsi/virtio-scsi.o
CC ppc64le-linux-user/trace/generated-helpers.o
CC microblaze-softmmu/hw/microblaze/petalogix_ml605_mmu.o
LINK s390x-linux-user/qemu-s390x
CC mips64el-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC alpha-softmmu/hw/vfio/platform.o
CC m68k-softmmu/trace/control-target.o
CC tricore-softmmu/trace/generated-helpers.o
CC arm-softmmu/hw/display/virtio-gpu-3d.o
CC microblaze-softmmu/hw/microblaze/xlnx-zynqmp-pmu.o
GEN trace/generated-helpers.c
CC sh4eb-softmmu/hw/virtio/virtio-crypto.o
CC sparc64-softmmu/hw/virtio/virtio-crypto.o
CC mips-linux-user/trace/control-target.o
CC aarch64-softmmu/hw/display/dpcd.o
CC lm32-softmmu/target/lm32/translate.o
GEN trace/generated-helpers.c
CC alpha-softmmu/hw/vfio/spapr.o
CC x86_64-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC sparc64-softmmu/hw/virtio/virtio-crypto-pci.o
CC x86_64-linux-user/trace/control-target.o
CC sparc64-softmmu/hw/sparc64/sparc64.o
CC microblaze-softmmu/hw/microblaze/boot.o
CC x86_64-softmmu/hw/scsi/vhost-scsi-common.o
CC lm32-softmmu/target/lm32/op_helper.o
CC microblaze-softmmu/target/microblaze/translate.o
CC lm32-softmmu/target/lm32/helper.o
CC alpha-softmmu/hw/virtio/virtio.o
CC sparc64-softmmu/hw/sparc64/sun4u_iommu.o
CC mipsel-softmmu/hw/virtio/vhost-user.o
CC mipsel-softmmu/hw/virtio/vhost-vsock.o
CC mips64el-softmmu/hw/scsi/vhost-scsi-common.o
CC mips64el-softmmu/hw/scsi/vhost-scsi.o
CC sh4eb-softmmu/hw/virtio/virtio-crypto-pci.o
CC aarch64-softmmu/hw/display/xlnx_dp.o
LINK or1k-softmmu/qemu-system-or1k
LINK microblazeel-softmmu/qemu-system-microblazeel
CC xtensaeb-softmmu/target/xtensa/gdbstub.o
CC alpha-softmmu/hw/virtio/virtio-balloon.o
CC mipsel-softmmu/hw/virtio/virtio-crypto.o
CC mips64-softmmu/hw/virtio/vhost-vsock.o
CC mips64-softmmu/hw/virtio/virtio-crypto.o
CC arm-softmmu/hw/display/virtio-gpu-pci.o
CC arm-linux-user/trace/generated-helpers.o
CC mipsel-softmmu/hw/virtio/virtio-crypto-pci.o
CC lm32-softmmu/target/lm32/cpu.o
CC s390x-softmmu/hw/s390x/s390-virtio-hcall.o
CC x86_64-softmmu/hw/scsi/vhost-scsi.o
CC i386-softmmu/hw/vfio/common.o
CC mips64el-softmmu/hw/scsi/vhost-user-scsi.o
CC ppc-linux-user/trace/control-target.o
CC i386-linux-user/trace/generated-helpers.o
CC sh4eb-softmmu/hw/sh4/shix.o
CC mips64el-softmmu/hw/timer/mips_gictimer.o
CC microblaze-softmmu/target/microblaze/op_helper.o
CC aarch64-softmmu/hw/dma/xlnx_dpdma.o
CC aarch64-softmmu/hw/dma/omap_dma.o
GEN trace/generated-helpers.c
CC arm-softmmu/hw/dma/omap_dma.o
CC aarch64-softmmu/hw/dma/soc_dma.o
CC mips-linux-user/trace/generated-helpers.o
CC mips64el-softmmu/hw/timer/mc146818rtc.o
CC microblaze-softmmu/target/microblaze/helper.o
CC xtensaeb-softmmu/trace/control-target.o
CC microblaze-softmmu/target/microblaze/cpu.o
CC lm32-softmmu/target/lm32/gdbstub.o
CC lm32-softmmu/target/lm32/lm32-semi.o
CC sparc64-softmmu/hw/sparc64/sun4u.o
CC aarch64-softmmu/hw/dma/pxa2xx_dma.o
CC sh4eb-softmmu/hw/sh4/r2d.o
CC x86_64-softmmu/hw/scsi/vhost-user-scsi.o
CC arm-softmmu/hw/dma/soc_dma.o
CC sh4eb-softmmu/hw/sh4/sh7750.o
CC sh4-softmmu/hw/vfio/pci-quirks.o
CC x86_64-linux-user/gdbstub-xml.o
CC sh4-softmmu/hw/vfio/platform.o
CC sh4-softmmu/hw/vfio/spapr.o
CC sh4eb-softmmu/hw/sh4/sh7750_regnames.o
CC alpha-softmmu/hw/virtio/vhost.o
CC arm-softmmu/hw/dma/pxa2xx_dma.o
CC m68k-softmmu/gdbstub-xml.o
CC microblaze-softmmu/target/microblaze/gdbstub.o
CC mips-softmmu/hw/display/virtio-gpu-3d.o
CC x86_64-softmmu/hw/timer/mc146818rtc.o
CC s390x-softmmu/hw/s390x/sclp.o
CC microblaze-softmmu/target/microblaze/mmu.o
CC mips-softmmu/hw/display/virtio-gpu-pci.o
CC s390x-softmmu/hw/s390x/event-facility.o
CC arm-softmmu/hw/dma/bcm2835_dma.o
CC x86_64-softmmu/hw/vfio/common.o
CC sparc64-softmmu/hw/sparc64/niagara.o
CC sh4eb-softmmu/hw/sh4/sh_pci.o
CC mipsel-softmmu/hw/mips/mips_r4k.o
CC arm-softmmu/hw/gpio/omap_gpio.o
CC sparc64-softmmu/target/sparc/machine.o
CC mips-softmmu/hw/intc/mips_gic.o
CC x86_64-linux-user/trace/generated-helpers.o
GEN trace/generated-helpers.c
CC x86_64-softmmu/hw/vfio/pci.o
CC sparc64-softmmu/target/sparc/monitor.o
CC s390x-softmmu/hw/s390x/sclpquiesce.o
CC s390x-softmmu/hw/s390x/sclpcpu.o
CC sh4-softmmu/hw/virtio/virtio.o
CC sparc64-softmmu/target/sparc/translate.o
CC xtensaeb-softmmu/trace/generated-helpers.o
CC sh4-softmmu/hw/virtio/virtio-balloon.o
CC sh4eb-softmmu/target/sh4/translate.o
CC sh4-softmmu/hw/virtio/vhost.o
CC mips64-softmmu/hw/virtio/virtio-crypto-pci.o
CC mips-softmmu/hw/misc/ivshmem.o
CC s390x-softmmu/hw/s390x/ipl.o
CC sh4eb-softmmu/target/sh4/op_helper.o
CC lm32-softmmu/target/lm32/machine.o
CC sh4eb-softmmu/target/sh4/helper.o
GEN trace/generated-helpers.c
CC mips64el-softmmu/hw/vfio/common.o
CC sh4-softmmu/hw/virtio/vhost-backend.o
CC lm32-softmmu/trace/control-target.o
CC x86_64-softmmu/hw/vfio/pci-quirks.o
CC aarch64-softmmu/hw/dma/bcm2835_dma.o
CC ppc-linux-user/gdbstub-xml.o
CC microblaze-softmmu/trace/control-target.o
CC s390x-softmmu/hw/s390x/css.o
CC mipsel-softmmu/hw/mips/mips_malta.o
CC s390x-softmmu/hw/s390x/s390-virtio-ccw.o
CC mips-softmmu/hw/misc/mips_cmgcr.o
CC mips64-softmmu/hw/mips/mips_r4k.o
CC s390x-softmmu/hw/s390x/3270-ccw.o
CC mips-softmmu/hw/misc/mips_cpc.o
CC arm-softmmu/hw/gpio/imx_gpio.o
CC arm-softmmu/hw/gpio/bcm2835_gpio.o
CC i386-softmmu/hw/vfio/pci.o
CC mips-softmmu/hw/misc/mips_itu.o
CC mipsel-softmmu/hw/mips/mips_mipssim.o
CC lm32-softmmu/trace/generated-helpers.o
CC s390x-softmmu/hw/s390x/virtio-ccw.o
CC arm-softmmu/hw/i2c/omap_i2c.o
CC sh4eb-softmmu/target/sh4/cpu.o
CC mips64-softmmu/hw/mips/mips_malta.o
CC arm-softmmu/hw/input/pxa2xx_keypad.o
CC mips64-softmmu/hw/mips/mips_mipssim.o
CC mips64-softmmu/hw/mips/addr.o
CC sparc64-softmmu/target/sparc/helper.o
CC sh4-softmmu/hw/virtio/vhost-user.o
CC mips64el-softmmu/hw/vfio/pci.o
CC i386-softmmu/hw/vfio/pci-quirks.o
CC s390x-softmmu/hw/s390x/css-bridge.o
CC mips64el-softmmu/hw/vfio/pci-quirks.o
CC sh4eb-softmmu/target/sh4/monitor.o
CC mipsel-softmmu/hw/mips/addr.o
CC x86_64-softmmu/hw/vfio/platform.o
CC arm-softmmu/hw/input/tsc210x.o
CC alpha-softmmu/hw/virtio/vhost-backend.o
CC ppc-linux-user/trace/generated-helpers.o
CC sh4eb-softmmu/target/sh4/gdbstub.o
CC sh4-softmmu/hw/virtio/vhost-vsock.o
CC x86_64-softmmu/hw/vfio/spapr.o
CC mips64el-softmmu/hw/vfio/platform.o
GEN trace/generated-helpers.c
CC s390x-softmmu/hw/s390x/ccw-device.o
CC mipsel-softmmu/hw/mips/mips_int.o
CC arm-softmmu/hw/intc/armv7m_nvic.o
CC mips-softmmu/hw/misc/mmio_interface.o
CC alpha-softmmu/hw/virtio/vhost-user.o
CC sh4-softmmu/hw/virtio/virtio-crypto.o
CC s390x-softmmu/hw/s390x/s390-pci-bus.o
CC sparc64-softmmu/target/sparc/cpu.o
CC sparc64-softmmu/target/sparc/fop_helper.o
CC arm-softmmu/hw/intc/exynos4210_gic.o
CC sh4eb-softmmu/trace/control-target.o
CC sparc64-softmmu/target/sparc/cc_helper.o
CC i386-softmmu/hw/vfio/platform.o
CC mipsel-softmmu/hw/mips/gt64xxx_pci.o
CC sparc64-softmmu/target/sparc/win_helper.o
CC aarch64-softmmu/hw/gpio/omap_gpio.o
CC i386-softmmu/hw/vfio/spapr.o
CC i386-softmmu/hw/virtio/virtio.o
CC mips64-softmmu/hw/mips/mips_int.o
CC arm-softmmu/hw/intc/exynos4210_combiner.o
CC aarch64-softmmu/hw/gpio/imx_gpio.o
CC mips64-softmmu/hw/mips/mips_jazz.o
CC mips64el-softmmu/hw/vfio/spapr.o
CC mipsel-softmmu/hw/mips/cps.o
CC sparc64-softmmu/target/sparc/mmu_helper.o
CC sparc64-softmmu/target/sparc/ldst_helper.o
CC mips64el-softmmu/hw/virtio/virtio.o
CC mips64el-softmmu/hw/virtio/virtio-balloon.o
CC i386-softmmu/hw/virtio/virtio-balloon.o
CC x86_64-softmmu/hw/virtio/virtio.o
CC mips64-softmmu/hw/mips/gt64xxx_pci.o
CC aarch64-softmmu/hw/gpio/bcm2835_gpio.o
CC x86_64-softmmu/hw/virtio/virtio-balloon.o
CC arm-softmmu/hw/intc/omap_intc.o
CC aarch64-softmmu/hw/i2c/omap_i2c.o
CC i386-softmmu/hw/virtio/vhost.o
CC s390x-softmmu/hw/s390x/s390-pci-inst.o
CC arm-softmmu/hw/intc/bcm2835_ic.o
CC m68k-softmmu/trace/generated-helpers.o
LINK lm32-softmmu/qemu-system-lm32
CC mipsel-softmmu/target/mips/translate.o
CC mips64el-softmmu/hw/virtio/vhost.o
CC sh4-softmmu/hw/virtio/virtio-crypto-pci.o
CC sh4eb-softmmu/trace/generated-helpers.o
CC alpha-softmmu/hw/virtio/vhost-vsock.o
CC sparc64-softmmu/target/sparc/int64_helper.o
CC x86_64-softmmu/hw/virtio/vhost.o
CC i386-softmmu/hw/virtio/vhost-backend.o
CC aarch64-softmmu/hw/input/pxa2xx_keypad.o
CC s390x-softmmu/hw/s390x/s390-skeys.o
CC alpha-softmmu/hw/virtio/virtio-crypto.o
CC mips-softmmu/hw/net/virtio-net.o
CC arm-softmmu/hw/intc/bcm2836_control.o
CC arm-softmmu/hw/intc/allwinner-a10-pic.o
CC mips-softmmu/hw/net/vhost_net.o
LINK xtensaeb-softmmu/qemu-system-xtensaeb
CC sh4-softmmu/hw/sh4/shix.o
CC x86_64-softmmu/hw/virtio/vhost-backend.o
CC sh4-softmmu/hw/sh4/r2d.o
CC mipsel-softmmu/target/mips/dsp_helper.o
CC arm-softmmu/hw/intc/aspeed_vic.o
CC sparc64-softmmu/target/sparc/vis_helper.o
CC sh4-softmmu/hw/sh4/sh7750.o
CC sh4-softmmu/hw/sh4/sh7750_regnames.o
CC x86_64-softmmu/hw/virtio/vhost-user.o
CC s390x-softmmu/hw/s390x/s390-stattrib.o
CC sparc64-softmmu/target/sparc/gdbstub.o
CC mips64el-softmmu/hw/virtio/vhost-backend.o
CC s390x-softmmu/hw/s390x/s390-ccw.o
CC mips64-softmmu/hw/mips/cps.o
CC alpha-softmmu/hw/virtio/virtio-crypto-pci.o
CC mips-softmmu/hw/scsi/virtio-scsi.o
CC mips64el-softmmu/hw/virtio/vhost-user.o
CC aarch64-softmmu/hw/input/tsc210x.o
CC mipsel-softmmu/target/mips/op_helper.o
CC arm-softmmu/hw/intc/arm_gicv3_cpuif.o
CC x86_64-softmmu/hw/virtio/vhost-vsock.o
CC mips64-softmmu/target/mips/translate.o
CC mips64-softmmu/target/mips/dsp_helper.o
CC mips64-softmmu/target/mips/op_helper.o
CC mips64el-softmmu/hw/virtio/vhost-vsock.o
CC aarch64-softmmu/hw/intc/armv7m_nvic.o
CC mips64-softmmu/target/mips/lmi_helper.o
GEN trace/generated-helpers.c
CC arm-softmmu/hw/misc/ivshmem.o
CC alpha-softmmu/hw/alpha/dp264.o
CC sh4-softmmu/hw/sh4/sh_pci.o
CC i386-softmmu/hw/virtio/vhost-user.o
CC sparc64-softmmu/trace/control-target.o
CC aarch64-softmmu/hw/intc/exynos4210_gic.o
CC sh4-softmmu/target/sh4/translate.o
CC mips64-softmmu/target/mips/helper.o
CC i386-softmmu/hw/virtio/vhost-vsock.o
CC sh4-softmmu/target/sh4/op_helper.o
CC sh4-softmmu/target/sh4/helper.o
CC microblaze-softmmu/trace/generated-helpers.o
CC i386-softmmu/hw/virtio/virtio-crypto.o
CC alpha-softmmu/hw/alpha/pci.o
CC sh4-softmmu/target/sh4/cpu.o
CC alpha-softmmu/hw/alpha/typhoon.o
CC arm-softmmu/hw/misc/arm_sysctl.o
CC aarch64-softmmu/hw/intc/exynos4210_combiner.o
CC aarch64-softmmu/hw/intc/omap_intc.o
CC aarch64-softmmu/hw/intc/bcm2835_ic.o
CC mips64-softmmu/target/mips/cpu.o
CC sh4-softmmu/target/sh4/monitor.o
CC sh4-softmmu/target/sh4/gdbstub.o
CC arm-softmmu/hw/misc/cbus.o
CC mips64-softmmu/target/mips/gdbstub.o
CC x86_64-softmmu/hw/virtio/virtio-crypto.o
CC i386-softmmu/hw/virtio/virtio-crypto-pci.o
GEN trace/generated-helpers.c
CC mips64el-softmmu/hw/virtio/virtio-crypto.o
CC x86_64-softmmu/hw/virtio/virtio-crypto-pci.o
CC arm-softmmu/hw/misc/exynos4210_pmu.o
CC x86_64-softmmu/hw/i386/multiboot.o
CC i386-softmmu/hw/i386/multiboot.o
CC mips64-softmmu/target/mips/msa_helper.o
CC sh4-softmmu/trace/control-target.o
CC mips64el-softmmu/hw/virtio/virtio-crypto-pci.o
CC arm-softmmu/hw/misc/exynos4210_clk.o
CC arm-softmmu/hw/misc/exynos4210_rng.o
CC mips64el-softmmu/hw/mips/mips_r4k.o
CC alpha-softmmu/target/alpha/machine.o
CC alpha-softmmu/target/alpha/translate.o
CC s390x-softmmu/target/s390x/cpu.o
CC s390x-softmmu/target/s390x/cpu_models.o
CC arm-softmmu/hw/misc/imx_ccm.o
CC arm-softmmu/hw/misc/imx31_ccm.o
CC arm-softmmu/hw/misc/imx25_ccm.o
CC mips-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC mips-softmmu/hw/scsi/vhost-scsi-common.o
CC sparc64-softmmu/trace/generated-helpers.o
CC mips64el-softmmu/hw/mips/mips_malta.o
CC mips64-softmmu/target/mips/mips-semi.o
CC mipsel-softmmu/target/mips/lmi_helper.o
CC arm-softmmu/hw/misc/imx6_ccm.o
CC s390x-softmmu/target/s390x/cpu_features.o
CC x86_64-softmmu/hw/i386/pc.o
CC x86_64-softmmu/hw/i386/pc_piix.o
CC aarch64-softmmu/hw/intc/bcm2836_control.o
LINK microblaze-softmmu/qemu-system-microblaze
CC alpha-softmmu/target/alpha/helper.o
CC alpha-softmmu/target/alpha/cpu.o
CC mips64-softmmu/target/mips/machine.o
CC sh4-softmmu/trace/generated-helpers.o
CC alpha-softmmu/target/alpha/int_helper.o
CC arm-softmmu/hw/misc/imx6_src.o
CC mips64el-softmmu/hw/mips/mips_mipssim.o
CC aarch64-softmmu/hw/intc/allwinner-a10-pic.o
CC alpha-softmmu/target/alpha/fpu_helper.o
CC arm-softmmu/hw/misc/mst_fpga.o
CC arm-softmmu/hw/misc/omap_clk.o
CC arm-softmmu/hw/misc/omap_gpmc.o
CC x86_64-softmmu/hw/i386/pc_q35.o
CC alpha-softmmu/target/alpha/vax_helper.o
CC mips64-softmmu/target/mips/cp0_timer.o
CC s390x-softmmu/target/s390x/gdbstub.o
CC mips64el-softmmu/hw/mips/addr.o
CC aarch64-softmmu/hw/intc/aspeed_vic.o
CC x86_64-softmmu/hw/i386/pc_sysfw.o
CC arm-softmmu/hw/misc/omap_l4.o
CC x86_64-softmmu/hw/i386/x86-iommu.o
CC i386-softmmu/hw/i386/pc.o
CC alpha-softmmu/target/alpha/sys_helper.o
CC mips-softmmu/hw/scsi/vhost-scsi.o
CC alpha-softmmu/target/alpha/mem_helper.o
CC s390x-softmmu/target/s390x/interrupt.o
CC mips-softmmu/hw/scsi/vhost-user-scsi.o
CC i386-softmmu/hw/i386/pc_piix.o
CC mips-softmmu/hw/timer/mips_gictimer.o
CC s390x-softmmu/target/s390x/helper.o
CC alpha-softmmu/target/alpha/gdbstub.o
CC aarch64-softmmu/hw/intc/arm_gicv3_cpuif.o
CC x86_64-softmmu/hw/i386/intel_iommu.o
CC mips-softmmu/hw/timer/mc146818rtc.o
GEN trace/generated-helpers.c
CC s390x-softmmu/target/s390x/translate.o
CC mipsel-softmmu/target/mips/helper.o
CC mipsel-softmmu/target/mips/cpu.o
GEN trace/generated-helpers.c
CC mipsel-softmmu/target/mips/gdbstub.o
CC alpha-softmmu/trace/control-target.o
CC arm-softmmu/hw/misc/omap_sdrc.o
CC s390x-softmmu/target/s390x/cc_helper.o
CC aarch64-softmmu/hw/misc/ivshmem.o
CC mips-softmmu/hw/vfio/common.o
CC mips-softmmu/hw/vfio/pci.o
CC mips64el-softmmu/hw/mips/mips_int.o
CC aarch64-softmmu/hw/misc/arm_sysctl.o
CC mips-softmmu/hw/vfio/pci-quirks.o
CC s390x-softmmu/target/s390x/excp_helper.o
CC mips64el-softmmu/hw/mips/mips_jazz.o
CC aarch64-softmmu/hw/misc/cbus.o
CC arm-softmmu/hw/misc/omap_tap.o
CC s390x-softmmu/target/s390x/fpu_helper.o
CC x86_64-softmmu/hw/i386/amd_iommu.o
CC alpha-softmmu/trace/generated-helpers.o
CC arm-softmmu/hw/misc/bcm2835_mbox.o
CC i386-softmmu/hw/i386/pc_q35.o
CC mips64el-softmmu/hw/mips/mips_fulong2e.o
CC s390x-softmmu/target/s390x/int_helper.o
CC arm-softmmu/hw/misc/bcm2835_property.o
CC s390x-softmmu/target/s390x/mem_helper.o
CC mips64-softmmu/trace/control-target.o
CC mips64el-softmmu/hw/mips/gt64xxx_pci.o
CC mipsel-softmmu/target/mips/msa_helper.o
CC i386-softmmu/hw/i386/pc_sysfw.o
CC aarch64-softmmu/hw/misc/exynos4210_pmu.o
CC mips64el-softmmu/hw/mips/cps.o
CC mips64-softmmu/trace/generated-helpers.o
CC s390x-softmmu/target/s390x/misc_helper.o
CC i386-softmmu/hw/i386/x86-iommu.o
CC arm-softmmu/hw/misc/bcm2835_rng.o
CC mips64el-softmmu/hw/mips/boston.o
CC s390x-softmmu/target/s390x/crypto_helper.o
CC i386-softmmu/hw/i386/intel_iommu.o
CC arm-softmmu/hw/misc/zynq_slcr.o
CC s390x-softmmu/target/s390x/machine.o
CC mips-softmmu/hw/vfio/platform.o
CC i386-softmmu/hw/i386/amd_iommu.o
CC s390x-softmmu/target/s390x/ioinst.o
CC mips64el-softmmu/target/mips/translate.o
CC aarch64-softmmu/hw/misc/exynos4210_clk.o
CC aarch64-softmmu/hw/misc/exynos4210_rng.o
CC mips-softmmu/hw/vfio/spapr.o
CC i386-softmmu/hw/i386/vmport.o
CC mipsel-softmmu/target/mips/mips-semi.o
CC mips-softmmu/hw/virtio/virtio.o
CC mipsel-softmmu/target/mips/machine.o
CC x86_64-softmmu/hw/i386/vmport.o
CC mips64el-softmmu/target/mips/dsp_helper.o
CC aarch64-softmmu/hw/misc/imx_ccm.o
CC arm-softmmu/hw/misc/zynq-xadc.o
CC s390x-softmmu/target/s390x/arch_dump.o
CC x86_64-softmmu/hw/i386/vmmouse.o
LINK mipsel-linux-user/qemu-mipsel
CC mipsel-softmmu/target/mips/cp0_timer.o
CC aarch64-softmmu/hw/misc/imx31_ccm.o
CC i386-softmmu/hw/i386/vmmouse.o
CC aarch64-softmmu/hw/misc/imx25_ccm.o
CC aarch64-softmmu/hw/misc/imx6_ccm.o
CC x86_64-softmmu/hw/i386/kvmvapic.o
CC s390x-softmmu/target/s390x/mmu_helper.o
CC mips64el-softmmu/target/mips/op_helper.o
CC mips64el-softmmu/target/mips/lmi_helper.o
CC aarch64-softmmu/hw/misc/imx6_src.o
GEN trace/generated-helpers.c
CC mipsel-softmmu/trace/control-target.o
CC x86_64-softmmu/hw/i386/acpi-build.o
CC s390x-softmmu/target/s390x/diag.o
CC mips-softmmu/hw/virtio/virtio-balloon.o
CC x86_64-softmmu/target/i386/helper.o
CC aarch64-softmmu/hw/misc/mst_fpga.o
CC x86_64-softmmu/target/i386/cpu.o
CC s390x-softmmu/target/s390x/sigp.o
CC mips-softmmu/hw/virtio/vhost.o
CC arm-softmmu/hw/misc/stm32f2xx_syscfg.o
CC x86_64-softmmu/target/i386/gdbstub.o
CC s390x-softmmu/target/s390x/kvm-stub.o
CC x86_64-softmmu/target/i386/xsave_helper.o
CC aarch64-softmmu/hw/misc/omap_clk.o
CC mips64el-softmmu/target/mips/helper.o
GEN trace/generated-helpers.c
CC i386-softmmu/hw/i386/kvmvapic.o
CC s390x-softmmu/trace/control-target.o
CC i386-softmmu/hw/i386/acpi-build.o
CC i386-softmmu/target/i386/helper.o
CC mipsel-softmmu/trace/generated-helpers.o
CC mips64el-softmmu/target/mips/cpu.o
CC s390x-softmmu/gdbstub-xml.o
CC aarch64-softmmu/hw/misc/omap_gpmc.o
CC mips64el-softmmu/target/mips/gdbstub.o
CC mips-softmmu/hw/virtio/vhost-backend.o
CC mips64el-softmmu/target/mips/msa_helper.o
CC i386-softmmu/target/i386/cpu.o
CC x86_64-softmmu/target/i386/translate.o
CC mips64el-softmmu/target/mips/mips-semi.o
CC aarch64-softmmu/hw/misc/omap_l4.o
CC i386-softmmu/target/i386/gdbstub.o
CC arm-softmmu/hw/misc/mps2-scc.o
CC mips64el-softmmu/target/mips/machine.o
CC arm-softmmu/hw/misc/aspeed_scu.o
CC mips-softmmu/hw/virtio/vhost-user.o
CC mips-softmmu/hw/virtio/vhost-vsock.o
CC aarch64-softmmu/hw/misc/omap_sdrc.o
CC mips64el-softmmu/target/mips/cp0_timer.o
CC i386-softmmu/target/i386/xsave_helper.o
CC x86_64-softmmu/target/i386/cc_helper.o
CC s390x-softmmu/trace/generated-helpers.o
CC x86_64-softmmu/target/i386/bpt_helper.o
CC i386-softmmu/target/i386/translate.o
CC x86_64-softmmu/target/i386/excp_helper.o
CC mips-softmmu/hw/virtio/virtio-crypto.o
CC aarch64-softmmu/hw/misc/omap_tap.o
LINK sh4eb-softmmu/qemu-system-sh4eb
CC arm-softmmu/hw/misc/aspeed_sdmc.o
GEN trace/generated-helpers.c
CC x86_64-softmmu/target/i386/fpu_helper.o
CC aarch64-softmmu/hw/misc/bcm2835_mbox.o
CC mips64el-softmmu/trace/control-target.o
CC i386-softmmu/target/i386/bpt_helper.o
CC x86_64-softmmu/target/i386/int_helper.o
CC aarch64-softmmu/hw/misc/bcm2835_property.o
CC i386-softmmu/target/i386/cc_helper.o
CC x86_64-softmmu/target/i386/mem_helper.o
CC arm-softmmu/hw/misc/mmio_interface.o
CC x86_64-softmmu/target/i386/misc_helper.o
CC i386-softmmu/target/i386/excp_helper.o
CC x86_64-softmmu/target/i386/mpx_helper.o
CC mips-softmmu/hw/virtio/virtio-crypto-pci.o
CC mips64el-softmmu/trace/generated-helpers.o
CC x86_64-softmmu/target/i386/seg_helper.o
CC mips-softmmu/hw/mips/mips_r4k.o
CC i386-softmmu/target/i386/fpu_helper.o
CC aarch64-softmmu/hw/misc/bcm2835_rng.o
CC mips-softmmu/hw/mips/mips_malta.o
CC i386-softmmu/target/i386/int_helper.o
CC aarch64-softmmu/hw/misc/zynq_slcr.o
CC arm-softmmu/hw/misc/msf2-sysreg.o
CC mips-softmmu/hw/mips/mips_mipssim.o
CC x86_64-softmmu/target/i386/smm_helper.o
CC i386-softmmu/target/i386/mem_helper.o
CC x86_64-softmmu/target/i386/svm_helper.o
CC mips-softmmu/hw/mips/addr.o
CC mips-softmmu/hw/mips/mips_int.o
CC aarch64-softmmu/hw/misc/zynq-xadc.o
CC arm-softmmu/hw/net/virtio-net.o
CC mips-softmmu/hw/mips/gt64xxx_pci.o
CC x86_64-softmmu/target/i386/machine.o
CC mips-softmmu/hw/mips/cps.o
CC mips-softmmu/target/mips/translate.o
CC i386-softmmu/target/i386/misc_helper.o
CC arm-softmmu/hw/net/vhost_net.o
CC mips-softmmu/target/mips/dsp_helper.o
CC arm-softmmu/hw/pcmcia/pxa2xx.o
CC aarch64-softmmu/hw/misc/stm32f2xx_syscfg.o
CC arm-softmmu/hw/scsi/virtio-scsi.o
CC mips-softmmu/target/mips/op_helper.o
CC mips-softmmu/target/mips/lmi_helper.o
CC aarch64-softmmu/hw/misc/mps2-scc.o
CC i386-softmmu/target/i386/mpx_helper.o
CC x86_64-softmmu/target/i386/arch_memory_mapping.o
CC mips-softmmu/target/mips/helper.o
CC aarch64-softmmu/hw/misc/auxbus.o
CC i386-softmmu/target/i386/seg_helper.o
CC arm-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC i386-softmmu/target/i386/smm_helper.o
CC aarch64-softmmu/hw/misc/aspeed_scu.o
CC aarch64-softmmu/hw/misc/aspeed_sdmc.o
CC i386-softmmu/target/i386/svm_helper.o
CC aarch64-softmmu/hw/misc/mmio_interface.o
CC aarch64-softmmu/hw/misc/msf2-sysreg.o
CC i386-softmmu/target/i386/machine.o
CC x86_64-softmmu/target/i386/arch_dump.o
CC mips-softmmu/target/mips/cpu.o
CC mips-softmmu/target/mips/gdbstub.o
CC arm-softmmu/hw/scsi/vhost-scsi-common.o
CC arm-softmmu/hw/scsi/vhost-scsi.o
CC x86_64-softmmu/target/i386/monitor.o
CC arm-softmmu/hw/scsi/vhost-user-scsi.o
CC x86_64-softmmu/target/i386/kvm-stub.o
CC arm-softmmu/hw/sd/omap_mmc.o
CC aarch64-softmmu/hw/net/virtio-net.o
CC mips-softmmu/target/mips/msa_helper.o
CC mips-softmmu/target/mips/mips-semi.o
CC i386-softmmu/target/i386/arch_memory_mapping.o
CC aarch64-softmmu/hw/net/vhost_net.o
CC arm-softmmu/hw/sd/pxa2xx_mmci.o
CC aarch64-softmmu/hw/pcmcia/pxa2xx.o
CC i386-softmmu/target/i386/arch_dump.o
GEN trace/generated-helpers.c
CC i386-softmmu/target/i386/monitor.o
CC x86_64-softmmu/trace/control-target.o
CC i386-softmmu/target/i386/kvm-stub.o
CC mips-softmmu/target/mips/machine.o
CC aarch64-softmmu/hw/scsi/virtio-scsi.o
CC arm-softmmu/hw/sd/bcm2835_sdhost.o
CC x86_64-softmmu/gdbstub-xml.o
CC aarch64-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC mips-softmmu/target/mips/cp0_timer.o
CC arm-softmmu/hw/ssi/omap_spi.o
CC arm-softmmu/hw/ssi/imx_spi.o
CC aarch64-softmmu/hw/scsi/vhost-scsi-common.o
CC aarch64-softmmu/hw/scsi/vhost-scsi.o
CC arm-softmmu/hw/timer/exynos4210_mct.o
GEN trace/generated-helpers.c
GEN trace/generated-helpers.c
CC i386-softmmu/trace/control-target.o
CC aarch64-softmmu/hw/scsi/vhost-user-scsi.o
CC mips-softmmu/trace/control-target.o
CC x86_64-softmmu/trace/generated-helpers.o
CC arm-softmmu/hw/timer/exynos4210_pwm.o
CC mips-softmmu/trace/generated-helpers.o
CC aarch64-softmmu/hw/sd/omap_mmc.o
CC aarch64-softmmu/hw/sd/pxa2xx_mmci.o
CC i386-softmmu/gdbstub-xml.o
CC arm-softmmu/hw/timer/exynos4210_rtc.o
CC aarch64-softmmu/hw/sd/bcm2835_sdhost.o
CC arm-softmmu/hw/timer/omap_gptimer.o
CC i386-softmmu/trace/generated-helpers.o
CC arm-softmmu/hw/timer/omap_synctimer.o
CC aarch64-softmmu/hw/ssi/omap_spi.o
CC aarch64-softmmu/hw/ssi/imx_spi.o
CC arm-softmmu/hw/timer/pxa2xx_timer.o
CC arm-softmmu/hw/timer/digic-timer.o
CC arm-softmmu/hw/timer/allwinner-a10-pit.o
CC arm-softmmu/hw/usb/tusb6010.o
CC aarch64-softmmu/hw/timer/exynos4210_mct.o
CC aarch64-softmmu/hw/timer/exynos4210_pwm.o
CC arm-softmmu/hw/vfio/common.o
CC aarch64-softmmu/hw/timer/exynos4210_rtc.o
CC aarch64-softmmu/hw/timer/omap_gptimer.o
CC arm-softmmu/hw/vfio/pci.o
CC aarch64-softmmu/hw/timer/omap_synctimer.o
CC aarch64-softmmu/hw/timer/pxa2xx_timer.o
CC aarch64-softmmu/hw/timer/digic-timer.o
CC aarch64-softmmu/hw/timer/allwinner-a10-pit.o
CC arm-softmmu/hw/vfio/pci-quirks.o
CC arm-softmmu/hw/vfio/platform.o
CC aarch64-softmmu/hw/usb/tusb6010.o
CC aarch64-softmmu/hw/vfio/common.o
CC arm-softmmu/hw/vfio/calxeda-xgmac.o
CC aarch64-softmmu/hw/vfio/pci.o
CC aarch64-softmmu/hw/vfio/pci-quirks.o
CC arm-softmmu/hw/vfio/amd-xgbe.o
CC aarch64-softmmu/hw/vfio/platform.o
CC arm-softmmu/hw/vfio/spapr.o
CC aarch64-softmmu/hw/vfio/calxeda-xgmac.o
CC arm-softmmu/hw/virtio/virtio.o
CC aarch64-softmmu/hw/vfio/amd-xgbe.o
CC aarch64-softmmu/hw/vfio/spapr.o
CC aarch64-softmmu/hw/virtio/virtio.o
CC aarch64-softmmu/hw/virtio/virtio-balloon.o
CC arm-softmmu/hw/virtio/virtio-balloon.o
CC aarch64-softmmu/hw/virtio/vhost.o
CC arm-softmmu/hw/virtio/vhost.o
CC arm-softmmu/hw/virtio/vhost-backend.o
CC aarch64-softmmu/hw/virtio/vhost-backend.o
LINK m68k-softmmu/qemu-system-m68k
CC arm-softmmu/hw/virtio/vhost-user.o
CC aarch64-softmmu/hw/virtio/vhost-user.o
CC aarch64-softmmu/hw/virtio/vhost-vsock.o
CC aarch64-softmmu/hw/virtio/virtio-crypto.o
CC arm-softmmu/hw/virtio/vhost-vsock.o
CC arm-softmmu/hw/virtio/virtio-crypto.o
CC arm-softmmu/hw/virtio/virtio-crypto-pci.o
CC aarch64-softmmu/hw/virtio/virtio-crypto-pci.o
CC aarch64-softmmu/hw/arm/boot.o
CC arm-softmmu/hw/arm/boot.o
CC arm-softmmu/hw/arm/collie.o
LINK tricore-softmmu/qemu-system-tricore
CC aarch64-softmmu/hw/arm/exynos4_boards.o
CC aarch64-softmmu/hw/arm/collie.o
CC aarch64-softmmu/hw/arm/gumstix.o
CC aarch64-softmmu/hw/arm/highbank.o
CC aarch64-softmmu/hw/arm/digic_boards.o
CC aarch64-softmmu/hw/arm/integratorcp.o
CC arm-softmmu/hw/arm/gumstix.o
CC aarch64-softmmu/hw/arm/mainstone.o
CC arm-softmmu/hw/arm/exynos4_boards.o
CC arm-softmmu/hw/arm/highbank.o
CC arm-softmmu/hw/arm/digic_boards.o
CC arm-softmmu/hw/arm/integratorcp.o
CC aarch64-softmmu/hw/arm/musicpal.o
CC arm-softmmu/hw/arm/mainstone.o
CC aarch64-softmmu/hw/arm/nseries.o
CC aarch64-softmmu/hw/arm/omap_sx1.o
CC arm-softmmu/hw/arm/musicpal.o
CC arm-softmmu/hw/arm/nseries.o
CC aarch64-softmmu/hw/arm/palm.o
CC arm-softmmu/hw/arm/omap_sx1.o
CC aarch64-softmmu/hw/arm/realview.o
CC aarch64-softmmu/hw/arm/spitz.o
CC arm-softmmu/hw/arm/palm.o
CC aarch64-softmmu/hw/arm/stellaris.o
CC arm-softmmu/hw/arm/realview.o
CC aarch64-softmmu/hw/arm/tosa.o
CC aarch64-softmmu/hw/arm/versatilepb.o
CC arm-softmmu/hw/arm/spitz.o
CC aarch64-softmmu/hw/arm/vexpress.o
CC arm-softmmu/hw/arm/stellaris.o
CC aarch64-softmmu/hw/arm/virt.o
CC aarch64-softmmu/hw/arm/xilinx_zynq.o
CC arm-softmmu/hw/arm/tosa.o
CC aarch64-softmmu/hw/arm/z2.o
CC arm-softmmu/hw/arm/versatilepb.o
CC arm-softmmu/hw/arm/vexpress.o
CC aarch64-softmmu/hw/arm/virt-acpi-build.o
CC arm-softmmu/hw/arm/virt.o
CC aarch64-softmmu/hw/arm/netduino2.o
CC aarch64-softmmu/hw/arm/sysbus-fdt.o
CC arm-softmmu/hw/arm/xilinx_zynq.o
CC aarch64-softmmu/hw/arm/armv7m.o
CC arm-softmmu/hw/arm/z2.o
CC aarch64-softmmu/hw/arm/exynos4210.o
CC aarch64-softmmu/hw/arm/pxa2xx.o
CC aarch64-softmmu/hw/arm/pxa2xx_gpio.o
CC arm-softmmu/hw/arm/virt-acpi-build.o
CC arm-softmmu/hw/arm/netduino2.o
CC arm-softmmu/hw/arm/sysbus-fdt.o
CC arm-softmmu/hw/arm/armv7m.o
CC aarch64-softmmu/hw/arm/pxa2xx_pic.o
CC aarch64-softmmu/hw/arm/digic.o
CC arm-softmmu/hw/arm/exynos4210.o
CC arm-softmmu/hw/arm/pxa2xx.o
CC aarch64-softmmu/hw/arm/omap1.o
CC aarch64-softmmu/hw/arm/omap2.o
CC aarch64-softmmu/hw/arm/strongarm.o
CC arm-softmmu/hw/arm/pxa2xx_gpio.o
CC aarch64-softmmu/hw/arm/allwinner-a10.o
CC arm-softmmu/hw/arm/pxa2xx_pic.o
CC aarch64-softmmu/hw/arm/cubieboard.o
CC aarch64-softmmu/hw/arm/bcm2835_peripherals.o
CC arm-softmmu/hw/arm/omap1.o
CC arm-softmmu/hw/arm/digic.o
CC aarch64-softmmu/hw/arm/bcm2836.o
CC aarch64-softmmu/hw/arm/raspi.o
CC aarch64-softmmu/hw/arm/stm32f205_soc.o
CC arm-softmmu/hw/arm/omap2.o
CC aarch64-softmmu/hw/arm/xlnx-zynqmp.o
CC aarch64-softmmu/hw/arm/xlnx-zcu102.o
CC arm-softmmu/hw/arm/strongarm.o
LINK i386-linux-user/qemu-i386
CC aarch64-softmmu/hw/arm/fsl-imx25.o
CC aarch64-softmmu/hw/arm/imx25_pdk.o
CC arm-softmmu/hw/arm/allwinner-a10.o
CC aarch64-softmmu/hw/arm/fsl-imx31.o
CC arm-softmmu/hw/arm/cubieboard.o
CC aarch64-softmmu/hw/arm/kzm.o
CC aarch64-softmmu/hw/arm/fsl-imx6.o
CC arm-softmmu/hw/arm/bcm2835_peripherals.o
CC aarch64-softmmu/hw/arm/sabrelite.o
CC arm-softmmu/hw/arm/bcm2836.o
CC aarch64-softmmu/hw/arm/aspeed_soc.o
CC aarch64-softmmu/hw/arm/aspeed.o
CC aarch64-softmmu/hw/arm/mps2.o
CC arm-softmmu/hw/arm/raspi.o
CC aarch64-softmmu/hw/arm/msf2-soc.o
CC arm-softmmu/hw/arm/stm32f205_soc.o
CC aarch64-softmmu/hw/arm/msf2-som.o
CC arm-softmmu/hw/arm/fsl-imx25.o
CC aarch64-softmmu/target/arm/arm-semi.o
CC arm-softmmu/hw/arm/imx25_pdk.o
CC arm-softmmu/hw/arm/fsl-imx31.o
CC arm-softmmu/hw/arm/fsl-imx6.o
CC arm-softmmu/hw/arm/kzm.o
CC aarch64-softmmu/target/arm/machine.o
CC arm-softmmu/hw/arm/sabrelite.o
CC aarch64-softmmu/target/arm/psci.o
CC aarch64-softmmu/target/arm/arch_dump.o
CC arm-softmmu/hw/arm/aspeed_soc.o
CC aarch64-softmmu/target/arm/monitor.o
CC arm-softmmu/hw/arm/aspeed.o
CC aarch64-softmmu/target/arm/kvm-stub.o
CC arm-softmmu/hw/arm/mps2.o
LINK sh4-softmmu/qemu-system-sh4
CC arm-softmmu/hw/arm/msf2-soc.o
CC arm-softmmu/hw/arm/msf2-som.o
CC aarch64-softmmu/target/arm/translate.o
LINK alpha-softmmu/qemu-system-alpha
CC aarch64-softmmu/target/arm/op_helper.o
CC arm-softmmu/target/arm/arm-semi.o
CC aarch64-softmmu/target/arm/helper.o
CC arm-softmmu/target/arm/machine.o
CC aarch64-softmmu/target/arm/cpu.o
LINK sparc64-softmmu/qemu-system-sparc64
CC aarch64-softmmu/target/arm/neon_helper.o
CC arm-softmmu/target/arm/psci.o
CC arm-softmmu/target/arm/arch_dump.o
CC arm-softmmu/target/arm/monitor.o
CC arm-softmmu/target/arm/kvm-stub.o
CC aarch64-softmmu/target/arm/iwmmxt_helper.o
CC aarch64-softmmu/target/arm/gdbstub.o
CC aarch64-softmmu/target/arm/cpu64.o
CC aarch64-softmmu/target/arm/translate-a64.o
CC aarch64-softmmu/target/arm/helper-a64.o
CC arm-softmmu/target/arm/translate.o
CC arm-softmmu/target/arm/op_helper.o
CC aarch64-softmmu/target/arm/gdbstub64.o
LINK aarch64_be-linux-user/qemu-aarch64_be
CC aarch64-softmmu/target/arm/crypto_helper.o
CC aarch64-softmmu/target/arm/arm-powerctl.o
CC arm-softmmu/target/arm/helper.o
CC arm-softmmu/target/arm/cpu.o
LINK x86_64-linux-user/qemu-x86_64
CC arm-softmmu/target/arm/neon_helper.o
CC arm-softmmu/target/arm/iwmmxt_helper.o
GEN trace/generated-helpers.c
CC arm-softmmu/target/arm/gdbstub.o
CC aarch64-softmmu/trace/control-target.o
CC arm-softmmu/target/arm/crypto_helper.o
CC arm-softmmu/target/arm/arm-powerctl.o
CC aarch64-softmmu/gdbstub-xml.o
GEN trace/generated-helpers.c
CC arm-softmmu/trace/control-target.o
CC aarch64-softmmu/trace/generated-helpers.o
CC arm-softmmu/gdbstub-xml.o
CC arm-softmmu/trace/generated-helpers.o
LINK armeb-linux-user/qemu-armeb
LINK arm-linux-user/qemu-arm
LINK mips-linux-user/qemu-mips
LINK mipsn32el-linux-user/qemu-mipsn32el
LINK s390x-softmmu/qemu-system-s390x
LINK mipsn32-linux-user/qemu-mipsn32
LINK mips64-linux-user/qemu-mips64
LINK mips64el-linux-user/qemu-mips64el
LINK x86_64-softmmu/qemu-system-x86_64
LINK i386-softmmu/qemu-system-i386
LINK ppc64abi32-linux-user/qemu-ppc64abi32
target/i386/helper.o: In function `get_me_mask':
/var/tmp/patchew-tester-tmp-r4540qbd/src/target/i386/helper.c:735: undefined reference to `kvm_arch_get_supported_cpuid'
target/i386/monitor.o: In function `get_me_mask':
/var/tmp/patchew-tester-tmp-r4540qbd/src/target/i386/monitor.c:71: undefined reference to `kvm_arch_get_supported_cpuid'
collect2: error: ld returned 1 exit status
make[1]: *** [qemu-system-x86_64] Error 1
make: *** [subdir-x86_64-softmmu] Error 2
LINK ppc-linux-user/qemu-ppc
LINK aarch64-softmmu/qemu-system-aarch64
LINK arm-softmmu/qemu-system-arm
LINK ppc64le-linux-user/qemu-ppc64le
target/i386/helper.o: In function `get_me_mask':
/var/tmp/patchew-tester-tmp-r4540qbd/src/target/i386/helper.c:735: undefined reference to `kvm_arch_get_supported_cpuid'
target/i386/monitor.o: In function `get_me_mask':
/var/tmp/patchew-tester-tmp-r4540qbd/src/target/i386/monitor.c:71: undefined reference to `kvm_arch_get_supported_cpuid'
collect2: error: ld returned 1 exit status
make[1]: *** [qemu-system-i386] Error 1
make: *** [subdir-i386-softmmu] Error 2
LINK mips-softmmu/qemu-system-mips
LINK mipsel-softmmu/qemu-system-mipsel
LINK ppc64-linux-user/qemu-ppc64
LINK mips64el-softmmu/qemu-system-mips64el
LINK mips64-softmmu/qemu-system-mips64
=== OUTPUT END ===
Test command exited with code: 2
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@freelists.org
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 00/23] x86: Secure Encrypted Virtualization (AMD)
@ 2018-01-29 18:31 ` no-reply
0 siblings, 0 replies; 118+ messages in thread
From: no-reply @ 2018-01-29 18:31 UTC (permalink / raw)
To: brijesh.singh
Cc: famz, qemu-devel, edgar.iglesias, peter.maydell, ehabkost, kvm,
Thomas.Lendacky, stefanha, mst, richard.henderson, dgilbert,
pbonzini
Hi,
This series failed build test on ppc host. Please find the details below.
Subject: [Qemu-devel] [PATCH v6 00/23] x86: Secure Encrypted Virtualization (AMD)
Type: series
Message-id: 20180129174132.108925-1-brijesh.singh@amd.com
=== TEST SCRIPT BEGIN ===
#!/bin/bash
# Testing script will be invoked under the git checkout with
# HEAD pointing to a commit that has the patches applied on top of "base"
# branch
set -e
echo "=== ENV ==="
env
echo "=== PACKAGES ==="
rpm -qa
echo "=== TEST BEGIN ==="
INSTALL=$PWD/install
BUILD=$PWD/build
mkdir -p $BUILD $INSTALL
SRC=$PWD
cd $BUILD
$SRC/configure --prefix=$INSTALL
make -j100
# XXX: we need reliable clean up
# make check -j100 V=1
make install
=== TEST SCRIPT END ===
Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
- [tag update] patchew/1517235657-22547-1-git-send-email-ghammer@redhat.com -> patchew/1517235657-22547-1-git-send-email-ghammer@redhat.com
- [tag update] patchew/20180123035349.24538-1-richard.henderson@linaro.org -> patchew/20180123035349.24538-1-richard.henderson@linaro.org
* [new tag] patchew/20180129174132.108925-1-brijesh.singh@amd.com -> patchew/20180129174132.108925-1-brijesh.singh@amd.com
Submodule 'capstone' (git://git.qemu.org/capstone.git) registered for path 'capstone'
Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc'
Submodule 'roms/QemuMacDrivers' (git://git.qemu.org/QemuMacDrivers.git) registered for path 'roms/QemuMacDrivers'
Submodule 'roms/SLOF' (git://git.qemu-project.org/SLOF.git) registered for path 'roms/SLOF'
Submodule 'roms/ipxe' (git://git.qemu-project.org/ipxe.git) registered for path 'roms/ipxe'
Submodule 'roms/openbios' (git://git.qemu-project.org/openbios.git) registered for path 'roms/openbios'
Submodule 'roms/openhackware' (git://git.qemu-project.org/openhackware.git) registered for path 'roms/openhackware'
Submodule 'roms/qemu-palcode' (git://github.com/rth7680/qemu-palcode.git) registered for path 'roms/qemu-palcode'
Submodule 'roms/seabios' (git://git.qemu-project.org/seabios.git/) registered for path 'roms/seabios'
Submodule 'roms/sgabios' (git://git.qemu-project.org/sgabios.git) registered for path 'roms/sgabios'
Submodule 'roms/skiboot' (git://git.qemu.org/skiboot.git) registered for path 'roms/skiboot'
Submodule 'roms/u-boot' (git://git.qemu-project.org/u-boot.git) registered for path 'roms/u-boot'
Submodule 'roms/vgabios' (git://git.qemu-project.org/vgabios.git/) registered for path 'roms/vgabios'
Submodule 'ui/keycodemapdb' (git://git.qemu.org/keycodemapdb.git) registered for path 'ui/keycodemapdb'
Cloning into 'capstone'...
Submodule path 'capstone': checked out '22ead3e0bfdb87516656453336160e0a37b066bf'
Cloning into 'dtc'...
Submodule path 'dtc': checked out 'e54388015af1fb4bf04d0bca99caba1074d9cc42'
Cloning into 'roms/QemuMacDrivers'...
Submodule path 'roms/QemuMacDrivers': checked out 'd4e7d7ac663fcb55f1b93575445fcbca372f17a7'
Cloning into 'roms/SLOF'...
Submodule path 'roms/SLOF': checked out 'fa981320a1e0968d6fc1b8de319723ff8212b337'
Cloning into 'roms/ipxe'...
Submodule path 'roms/ipxe': checked out '0600d3ae94f93efd10fc6b3c7420a9557a3a1670'
Cloning into 'roms/openbios'...
Submodule path 'roms/openbios': checked out 'b5c93acd14b7b3886c2c81d84cd18e666984a4c8'
Cloning into 'roms/openhackware'...
Submodule path 'roms/openhackware': checked out 'c559da7c8eec5e45ef1f67978827af6f0b9546f5'
Cloning into 'roms/qemu-palcode'...
Submodule path 'roms/qemu-palcode': checked out 'f3c7e44c70254975df2a00af39701eafbac4d471'
Cloning into 'roms/seabios'...
Submodule path 'roms/seabios': checked out '63451fca13c75870e1703eb3e20584d91179aebc'
Cloning into 'roms/sgabios'...
Submodule path 'roms/sgabios': checked out 'cbaee52287e5f32373181cff50a00b6c4ac9015a'
Cloning into 'roms/skiboot'...
Submodule path 'roms/skiboot': checked out 'e0ee24c27a172bcf482f6f2bc905e6211c134bcc'
Cloning into 'roms/u-boot'...
Submodule path 'roms/u-boot': checked out 'd85ca029f257b53a96da6c2fb421e78a003a9943'
Cloning into 'roms/vgabios'...
Submodule path 'roms/vgabios': checked out '19ea12c230ded95928ecaef0db47a82231c2e485'
Cloning into 'ui/keycodemapdb'...
Submodule path 'ui/keycodemapdb': checked out '10739aa26051a5d49d88132604539d3ed085e72e'
Switched to a new branch 'test'
6efcae2 sev: add migration blocker
16a9e00 target/i386: clear C-bit when walking SEV guest page table
3b5e4a5 sev: add debug encrypt and decrypt commands
9034d07 hw: i386: set ram_debug_ops when memory encryption is enabled
9b48370 sev: Finalize the SEV guest launch flow
5e12681 sev: emit the SEV_MEASUREMENT event
1c9a562 qapi: add SEV_MEASUREMENT event
b322fca target/i386: encrypt bios rom
10da3ed sev: add command to encrypt guest memory region
cc979f7 sev: add command to create launch memory encryption context
9388e9f hmp: display memory encryption support in 'info kvm'
8875a9e kvm: introduce memory encryption APIs
c530cf3 sev: register the guest memory range which may contain encrypted data
f486eda sev: add command to initialize the memory encryption context
cd64908 accel: add Secure Encrypted Virtulization (SEV) object
08729ca docs: add AMD Secure Encrypted Virtualization (SEV)
e13044a kvm: update kvm.h to include memory encryption ioctls
113e16b machine: add -memory-encryption property
f839a7f target/i386: add memory encryption feature cpuid support
4e159e7 monitor/i386: use debug APIs when accessing guest memory
fbeb706 exec: add debug version of physical memory read and write API
11bc137 exec: add ram_debug_ops support
1b02df6 memattrs: add debug attribute
=== OUTPUT BEGIN ===
=== ENV ===
XDG_SESSION_ID=161645
SHELL=/bin/sh
USER=patchew
PATCHEW=/home/patchew/patchew/patchew-cli -s http://patchew.org --nodebug
PATH=/usr/bin:/bin
PWD=/var/tmp/patchew-tester-tmp-r4540qbd/src
LANG=en_US.UTF-8
HOME=/home/patchew
SHLVL=2
LOGNAME=patchew
XDG_RUNTIME_DIR=/run/user/1000
_=/usr/bin/env
=== PACKAGES ===
plymouth-core-libs-0.8.9-0.28.20140113.el7.centos.ppc64le
vim-common-7.4.160-2.el7.ppc64le
perl-Test-Simple-0.98-243.el7.noarch
hplip-common-3.15.9-3.el7.ppc64le
valgrind-3.12.0-8.el7.ppc64le
gamin-0.1.10-16.el7.ppc64le
libpeas-loader-python-1.20.0-1.el7.ppc64le
telepathy-filesystem-0.0.2-6.el7.noarch
colord-libs-1.3.4-1.el7.ppc64le
kbd-legacy-1.15.5-13.el7.noarch
perl-CPAN-Meta-YAML-0.008-14.el7.noarch
libvirt-daemon-driver-nwfilter-3.2.0-14.el7.ppc64le
ntsysv-1.7.4-1.el7.ppc64le
kernel-bootwrapper-3.10.0-693.el7.ppc64le
telepathy-farstream-0.6.0-5.el7.ppc64le
kdenetwork-common-4.10.5-8.el7_0.noarch
elfutils-devel-0.168-8.el7.ppc64le
pm-utils-1.4.1-27.el7.ppc64le
perl-Error-0.17020-2.el7.noarch
usbmuxd-1.1.0-1.el7.ppc64le
bzip2-devel-1.0.6-13.el7.ppc64le
blktrace-1.0.5-8.el7.ppc64le
gnome-keyring-pam-3.20.0-3.el7.ppc64le
tzdata-java-2017b-1.el7.noarch
perl-devel-5.16.3-292.el7.ppc64le
gnome-getting-started-docs-3.22.0-1.el7.noarch
perl-Log-Message-Simple-0.10-2.el7.noarch
totem-pl-parser-3.10.7-1.el7.ppc64le
lohit-oriya-fonts-2.5.4.1-3.el7.noarch
python-coverage-3.6-0.5.b3.el7.ppc64le
java-1.7.0-openjdk-1.7.0.141-2.6.10.5.el7.ppc64le
mailcap-2.1.41-2.el7.noarch
perl-CPANPLUS-0.91.38-4.el7.noarch
fprintd-pam-0.5.0-4.0.el7_0.ppc64le
less-458-9.el7.ppc64le
gupnp-igd-0.2.4-1.el7.ppc64le
thai-scalable-waree-fonts-0.5.0-7.el7.noarch
python-di-0.3-2.el7.noarch
yelp-libs-3.22.0-1.el7.ppc64le
vte-profile-0.46.2-1.el7.ppc64le
gpm-libs-1.20.7-5.el7.ppc64le
gnome-clocks-3.22.1-1.el7.ppc64le
p11-kit-trust-0.23.5-3.el7.ppc64le
gssproxy-0.7.0-4.el7.ppc64le
gnu-free-mono-fonts-20120503-8.el7.noarch
python-dateutil-1.5-7.el7.noarch
gucharmap-libs-3.18.2-1.el7.ppc64le
glibc-common-2.17-196.el7.ppc64le
libreport-plugin-mantisbt-2.1.11-38.el7.centos.ppc64le
motif-devel-2.3.4-8.1.el7_3.ppc64le
celt051-0.5.1.3-8.el7.ppc64le
radvd-1.9.2-9.el7.ppc64le
lohit-tamil-fonts-2.5.3-2.el7.noarch
python-ipaddress-1.0.16-2.el7.noarch
anaconda-widgets-21.48.22.121-1.el7.centos.ppc64le
zlib-1.2.7-17.el7.ppc64le
system-config-printer-1.4.1-19.el7.ppc64le
mozjs24-24.2.0-7.el7.ppc64le
device-mapper-multipath-libs-0.4.9-111.el7.ppc64le
wqy-microhei-fonts-0.2.0-0.12.beta.el7.noarch
python-schedutils-0.4-6.el7.ppc64le
gnome-bluetooth-3.20.1-1.el7.ppc64le
nss-util-3.28.4-3.el7.ppc64le
dotconf-1.3-8.el7.ppc64le
ibus-rawcode-1.3.2-3.el7.ppc64le
abattis-cantarell-fonts-0.0.25-1.el7.noarch
sssd-common-1.15.2-50.el7.ppc64le
sil-padauk-fonts-2.8-5.el7.noarch
bind-utils-9.9.4-50.el7.ppc64le
sox-14.4.1-6.el7.ppc64le
libSM-1.2.2-2.el7.ppc64le
libtiff-devel-4.0.3-27.el7_3.ppc64le
plymouth-system-theme-0.8.9-0.28.20140113.el7.centos.ppc64le
python-libs-2.7.5-58.el7.ppc64le
sssd-1.15.2-50.el7.ppc64le
rfkill-0.4-9.el7.ppc64le
cyrus-sasl-md5-2.1.26-21.el7.ppc64le
libXtst-devel-1.2.3-1.el7.ppc64le
avahi-libs-0.6.31-17.el7.ppc64le
ruby-2.0.0.648-30.el7.ppc64le
seahorse-3.20.0-1.el7.ppc64le
python-six-1.9.0-2.el7.noarch
gpgme-1.3.2-5.el7.ppc64le
iwl7260-firmware-22.0.7.0-56.el7.noarch
libsss_certmap-1.15.2-50.el7.ppc64le
xorg-x11-drv-wacom-0.34.2-2.el7.ppc64le
libXau-1.0.8-2.1.el7.ppc64le
shadow-utils-4.1.5.1-24.el7.ppc64le
evolution-ews-3.22.6-6.el7.ppc64le
libsecret-0.18.5-2.el7.ppc64le
perl-Module-Signature-0.73-2.el7.noarch
rootfiles-8.1-11.el7.noarch
trace-cmd-2.6.0-8.el7.ppc64le
hamcrest-1.3-6.el7.noarch
gawk-4.0.2-4.el7_3.1.ppc64le
usermode-1.111-5.el7.ppc64le
gnome-terminal-nautilus-3.22.1-2.el7.ppc64le
gvfs-client-1.30.4-3.el7.ppc64le
yum-utils-1.1.31-42.el7.noarch
iwl3945-firmware-15.32.2.9-56.el7.noarch
perl-Archive-Zip-1.30-11.el7.noarch
spice-glib-0.33-6.el7.ppc64le
augeas-libs-1.4.0-2.el7.ppc64le
openlmi-providers-0.5.0-4.el7.ppc64le
gnome-color-manager-3.22.2-1.el7.ppc64le
imsettings-libs-1.6.3-9.el7.ppc64le
nss-softokn-devel-3.28.3-6.el7.ppc64le
python34-3.4.5-4.el7.ppc64le
perl-DBI-1.627-4.el7.ppc64le
plymouth-plugin-label-0.8.9-0.28.20140113.el7.centos.ppc64le
binutils-2.25.1-31.base.el7.ppc64le
libsss_nss_idmap-1.15.2-50.el7.ppc64le
gvfs-smb-1.30.4-3.el7.ppc64le
freetype-devel-2.4.11-15.el7.ppc64le
libXi-1.7.9-1.el7.ppc64le
libitm-4.8.5-16.el7_4.1.ppc64le
perl-Text-Diff-1.41-5.el7.noarch
gcr-devel-3.20.0-1.el7.ppc64le
numactl-libs-2.0.9-6.el7_2.ppc64le
hardlink-1.0-19.el7.ppc64le
gnome-disk-utility-3.22.1-1.el7.ppc64le
mariadb-libs-5.5.56-2.el7.ppc64le
libnotify-0.7.7-1.el7.ppc64le
perl-TimeDate-2.30-2.el7.noarch
soprano-devel-2.9.2-3.el7.ppc64le
pixman-0.34.0-1.el7.ppc64le
kmod-20-15.el7.ppc64le
qt3-PostgreSQL-3.3.8b-51.el7.ppc64le
python2-pyasn1-0.1.9-7.el7.noarch
libXt-1.1.5-3.el7.ppc64le
perl-Font-AFM-1.20-13.el7.noarch
ibus-1.5.3-13.el7.ppc64le
findutils-4.5.11-5.el7.ppc64le
ibus-libs-1.5.3-13.el7.ppc64le
iprutils-2.4.14.1-1.el7.ppc64le
libpwquality-1.2.3-4.el7.ppc64le
libXrender-devel-0.9.10-1.el7.ppc64le
perl-IO-stringy-2.110-22.el7.noarch
kdelibs-4.14.8-6.el7_3.ppc64le
flac-libs-1.3.0-5.el7_1.ppc64le
device-mapper-event-libs-1.02.140-8.el7.ppc64le
gnutls-devel-3.3.26-9.el7.ppc64le
libXau-devel-1.0.8-2.1.el7.ppc64le
gstreamer1-plugins-base-1.10.4-1.el7.ppc64le
perl-HTML-Tree-5.03-2.el7.noarch
kdenetwork-kopete-4.10.5-8.el7_0.ppc64le
libepoxy-1.3.1-1.el7.ppc64le
mesa-libGLES-17.0.1-6.20170307.el7.ppc64le
qt-postgresql-4.8.5-13.el7.ppc64le
fontconfig-devel-2.10.95-11.el7.ppc64le
java-1.8.0-openjdk-headless-1.8.0.131-11.b12.el7.ppc64le
libXfont-1.5.2-1.el7.ppc64le
libkexiv2-4.10.5-3.el7.ppc64le
openjpeg-libs-1.5.1-17.el7.ppc64le
iscsi-initiator-utils-6.2.0.874-4.el7.ppc64le
NetworkManager-adsl-1.8.0-9.el7.ppc64le
libgtop2-2.34.2-1.el7.ppc64le
libXdamage-devel-1.1.4-4.1.el7.ppc64le
ipset-libs-6.29-1.el7.ppc64le
kde-runtime-drkonqi-4.10.5-8.el7.ppc64le
e2fsprogs-libs-1.42.9-10.el7.ppc64le
dhclient-4.2.5-58.el7.centos.ppc64le
usbutils-007-5.el7.ppc64le
python-ethtool-0.8-5.el7.ppc64le
gstreamer1-plugins-bad-free-1.10.4-2.el7.ppc64le
fftw-libs-double-3.3.3-8.el7.ppc64le
kdenetwork-krdc-4.10.5-8.el7_0.ppc64le
fuse-libs-2.9.2-8.el7.ppc64le
pciutils-3.5.1-2.el7.ppc64le
at-3.1.13-22.el7.ppc64le
python-IPy-0.75-6.el7.noarch
libXp-1.0.2-2.1.el7.ppc64le
vim-minimal-7.4.160-2.el7.ppc64le
kdesdk-kmtrace-4.10.5-6.el7.ppc64le
libraw1394-2.1.0-2.el7.ppc64le
libdrm-devel-2.4.74-1.el7.ppc64le
irqbalance-1.0.7-10.el7.ppc64le
fipscheck-lib-1.4.1-6.el7.ppc64le
gvfs-1.30.4-3.el7.ppc64le
libiscsi-1.9.0-7.el7.ppc64le
motif-2.3.4-8.1.el7_3.ppc64le
keyutils-1.5.8-3.el7.ppc64le
NetworkManager-ppp-1.8.0-9.el7.ppc64le
systemtap-3.1-3.el7.ppc64le
boost-serialization-1.53.0-27.el7.ppc64le
grilo-0.3.3-1.el7.ppc64le
rpm-4.11.3-25.el7.ppc64le
kdegraphics-libs-4.10.5-3.el7.noarch
libfontenc-1.1.3-3.el7.ppc64le
perl-Git-1.8.3.1-11.el7.noarch
rubygem-abrt-0.3.0-1.el7.noarch
tcl-8.5.13-8.el7.ppc64le
gtksourceview3-3.22.2-1.el7.ppc64le
cmake-2.8.12.2-2.el7.ppc64le
pulseaudio-utils-10.0-3.el7.ppc64le
libusal-1.1.11-23.el7.ppc64le
grub2-ppc64le-2.02-0.64.el7.centos.ppc64le
libreport-plugin-mailx-2.1.11-38.el7.centos.ppc64le
libvisual-0.4.0-16.el7.ppc64le
metacity-2.34.13-7.el7.ppc64le
redland-virtuoso-1.0.16-6.el7.ppc64le
nautilus-3.22.3-3.el7.ppc64le
pciutils-libs-3.5.1-2.el7.ppc64le
soprano-2.9.2-3.el7.ppc64le
mariadb-devel-5.5.56-2.el7.ppc64le
libxkbcommon-x11-0.7.1-1.el7.ppc64le
farstream02-0.2.3-3.el7.ppc64le
redhat-rpm-config-9.1.0-76.el7.centos.noarch
skkdic-20130104-6.T1435.el7.noarch
perl-HTTP-Tiny-0.033-3.el7.noarch
lvm2-libs-2.02.171-8.el7.ppc64le
perl-XML-Grove-0.46alpha-52.el7.noarch
boost-devel-1.53.0-27.el7.ppc64le
pycairo-1.8.10-8.el7.ppc64le
popt-devel-1.13-16.el7.ppc64le
gnome-settings-daemon-3.22.2-5.el7.ppc64le
perl-Socket-2.010-4.el7.ppc64le
numad-0.5-17.20150602git.el7.ppc64le
e2fsprogs-devel-1.42.9-10.el7.ppc64le
libsecret-devel-0.18.5-2.el7.ppc64le
libXv-devel-1.0.11-1.el7.ppc64le
libchewing-0.3.4-6.el7.ppc64le
gnome-shell-extension-places-menu-3.22.2-10.el7.noarch
perl-Time-HiRes-1.9725-3.el7.ppc64le
openchange-2.3-2.el7.ppc64le
audit-libs-devel-2.7.6-3.el7.ppc64le
python-dmidecode-3.12.2-1.el7.ppc64le
libmediaart-1.9.1-1.el7.ppc64le
elfutils-default-yama-scope-0.168-8.el7.noarch
quota-4.01-14.el7.ppc64le
perl-threads-1.87-4.el7.ppc64le
realmd-0.16.1-9.el7.ppc64le
nautilus-sendto-3.8.4-1.el7.ppc64le
gstreamer-0.10.36-7.el7.ppc64le
cairo-gobject-devel-1.14.8-2.el7.ppc64le
abrt-libs-2.1.11-48.el7.centos.ppc64le
libvirt-daemon-driver-storage-iscsi-3.2.0-14.el7.ppc64le
perl-Pod-Parser-1.61-2.el7.noarch
python-devel-2.7.5-58.el7.ppc64le
mpfr-devel-3.1.1-4.el7.ppc64le
kernel-headers-3.10.0-693.el7.ppc64le
powerpc-utils-python-1.2.1-9.el7.noarch
linux-firmware-20170606-56.gitc990aae.el7.noarch
libqmi-1.16.0-1.el7.ppc64le
libvirt-libs-3.2.0-14.el7.ppc64le
perl-Digest-1.17-245.el7.noarch
libgcab1-0.7-3.el7.ppc64le
flex-2.5.37-3.el7.ppc64le
tzdata-2017b-1.el7.noarch
phonon-4.6.0-10.el7.ppc64le
anaconda-tui-21.48.22.121-1.el7.centos.ppc64le
libmbim-utils-1.14.0-2.el7.ppc64le
gnutls-utils-3.3.26-9.el7.ppc64le
perl-Parse-CPAN-Meta-1.4404-5.el7.noarch
flite-1.3-22.el7.ppc64le
nfs4-acl-tools-0.3.3-15.el7.ppc64le
poppler-data-0.4.6-3.el7.noarch
gvfs-fuse-1.30.4-3.el7.ppc64le
gnome-software-3.22.7-1.el7.ppc64le
perl-ExtUtils-ParseXS-3.18-3.el7.noarch
libvirt-python-3.2.0-3.el7.ppc64le
perl-Module-Load-Conditional-0.54-3.el7.noarch
python-netifaces-0.10.4-3.el7.ppc64le
swig-2.0.10-5.el7.ppc64le
ipa-client-common-4.5.0-20.el7.centos.noarch
cheese-libs-3.22.1-1.el7.ppc64le
gnome-tweak-tool-3.22.0-1.el7.noarch
perl-ExtUtils-CBuilder-0.28.2.6-292.el7.noarch
libsoup-devel-2.56.0-3.el7.ppc64le
perl-IO-Zlib-1.10-292.el7.noarch
fros-1.0-2.el7.noarch
lohit-devanagari-fonts-2.5.3-4.el7.noarch
grub2-ppc64le-modules-2.02-0.64.el7.centos.noarch
libgdata-0.17.8-1.el7.ppc64le
evince-nautilus-3.22.1-5.el7.ppc64le
perl-ExtUtils-Embed-1.30-292.el7.noarch
dleyna-connector-dbus-0.2.0-2.el7.ppc64le
libiec61883-1.2.0-10.el7.ppc64le
python-lxml-3.2.1-4.el7.ppc64le
liberation-serif-fonts-1.07.2-15.el7.noarch
tigervnc-license-1.8.0-1.el7.noarch
gnome-packagekit-3.22.1-2.el7.ppc64le
hpijs-3.15.9-3.el7.ppc64le
libmodman-2.0.1-8.el7.ppc64le
ntp-4.2.6p5-25.el7.centos.2.ppc64le
gmp-devel-6.0.0-15.el7.ppc64le
pyxattr-0.5.1-5.el7.ppc64le
sil-abyssinica-fonts-1.200-6.el7.noarch
ncurses-libs-5.9-13.20130511.el7.ppc64le
gnome-dictionary-libs-3.20.0-1.el7.ppc64le
kdesdk-devel-4.10.5-6.el7.ppc64le
libreport-rhel-anaconda-bugzilla-2.1.11-38.el7.centos.ppc64le
libvirt-daemon-config-network-3.2.0-14.el7.ppc64le
boost-iostreams-1.53.0-27.el7.ppc64le
python-ply-3.4-11.el7.noarch
ucs-miscfixed-fonts-0.3-11.el7.noarch
info-5.1-4.el7.ppc64le
libXxf86misc-devel-1.0.3-7.1.el7.ppc64le
ibus-qt-1.3.2-4.el7.ppc64le
gnome-video-effects-0.4.3-1.el7.noarch
bridge-utils-1.5-9.el7.ppc64le
make-3.82-23.el7.ppc64le
pywbem-0.7.0-25.20130827svn625.el7.noarch
pnm2ppa-1.04-28.el7.ppc64le
chkconfig-1.7.4-1.el7.ppc64le
at-spi2-atk-devel-2.22.0-2.el7.ppc64le
freeglut-devel-2.8.1-3.el7.ppc64le
jbigkit-libs-2.0-11.el7.ppc64le
sssd-ipa-1.15.2-50.el7.ppc64le
openssl-libs-1.0.2k-8.el7.ppc64le
ldns-1.6.16-10.el7.ppc64le
rdate-1.4-25.el7.ppc64le
libdb-5.3.21-20.el7.ppc64le
evince-libs-3.22.1-5.el7.ppc64le
empathy-3.12.12-4.el7.ppc64le
rubygem-json-1.7.7-30.el7.ppc64le
dmraid-1.0.0.rc16-28.el7.ppc64le
libblkid-2.23.2-43.el7.ppc64le
logrotate-3.8.6-14.el7.ppc64le
iwl105-firmware-18.168.6.1-56.el7.noarch
grep-2.20-3.el7.ppc64le
xorg-x11-drv-synaptics-1.9.0-1.el7.ppc64le
iowatcher-1.0-6.el7.ppc64le
rubygem-net-http-persistent-2.8-5.el7.noarch
setroubleshoot-plugins-3.0.65-1.el7.noarch
atk-2.22.0-3.el7.ppc64le
libcacard-2.5.2-2.el7.ppc64le
iwl6050-firmware-41.28.5.1-56.el7.noarch
lcms2-2.6-3.el7.ppc64le
tigervnc-server-minimal-1.8.0-1.el7.ppc64le
gvfs-goa-1.30.4-3.el7.ppc64le
authconfig-6.2.8-30.el7.ppc64le
yum-plugin-fastestmirror-1.1.31-42.el7.noarch
dbus-python-1.1.1-9.el7.ppc64le
perl-Archive-Tar-1.92-2.el7.noarch
iwl5000-firmware-8.83.5.1_1-56.el7.noarch
libacl-2.2.51-12.el7.ppc64le
farstream-0.1.2-8.el7.ppc64le
ppc64-utils-0.14-16.el7.ppc64le
servicelog-1.1.14-3.el7.ppc64le
python2-ipaclient-4.5.0-20.el7.centos.noarch
libpeas-1.20.0-1.el7.ppc64le
perl-TermReadKey-2.30-20.el7.ppc64le
hdparm-9.43-5.el7.ppc64le
libicu-50.1.2-15.el7.ppc64le
polkit-qt-0.103.0-10.el7_0.ppc64le
gnome-weather-3.20.2-1.el7.noarch
libmspack-0.5-0.5.alpha.el7.ppc64le
libkkc-data-0.3.1-9.el7.ppc64le
hicolor-icon-theme-0.12-7.el7.noarch
perl-Newt-1.08-36.el7.ppc64le
libstdc++-devel-4.8.5-16.el7_4.1.ppc64le
libexif-0.6.21-6.el7.ppc64le
gtk3-devel-3.22.10-4.el7.ppc64le
gvfs-mtp-1.30.4-3.el7.ppc64le
ncompress-4.2.4.4-3.el7.ppc64le
libXcomposite-0.4.4-4.1.el7.ppc64le
python-decorator-3.4.0-3.el7.noarch
perl-Business-ISBN-Data-20120719.001-2.el7.noarch
gcc-gfortran-4.8.5-16.el7_4.1.ppc64le
cpio-2.11-24.el7.ppc64le
mesa-libGLU-9.0.0-4.el7.ppc64le
baobab-3.22.1-1.el7.ppc64le
device-mapper-libs-1.02.140-8.el7.ppc64le
libXtst-1.2.3-1.el7.ppc64le
ModemManager-glib-1.6.0-2.el7.ppc64le
perl-HTML-Parser-3.71-4.el7.ppc64le
libical-1.0.1-1.el7.ppc64le
xorg-x11-xinit-1.3.4-1.el7.ppc64le
gstreamer1-plugins-base-devel-1.10.4-1.el7.ppc64le
libdrm-2.4.74-1.el7.ppc64le
libXfixes-devel-5.0.3-1.el7.ppc64le
python-gssapi-1.2.0-3.el7.ppc64le
perl-Text-Unidecode-0.04-20.el7.noarch
hunspell-1.3.2-15.el7.ppc64le
kde-settings-19-23.5.el7.centos.noarch
perl-App-cpanminus-1.6922-2.el7.noarch
parted-3.1-28.el7.ppc64le
mesa-libGL-17.0.1-6.20170307.el7.ppc64le
elfutils-libelf-devel-0.168-8.el7.ppc64le
perl-Net-LibIDN-0.12-15.el7.ppc64le
apr-1.4.8-3.el7.ppc64le
kdepimlibs-4.10.5-4.el7.ppc64le
virt-top-1.0.8-23.el7.ppc64le
samba-client-libs-4.6.2-8.el7.ppc64le
gstreamer-plugins-base-0.10.36-10.el7.ppc64le
json-glib-devel-1.2.6-1.el7.ppc64le
perl-autodie-2.16-2.el7.noarch
tar-1.26-32.el7.ppc64le
ksysguard-libs-4.11.19-8.el7.ppc64le
rdma-core-devel-13-7.el7.ppc64le
accountsservice-0.6.45-2.el7.ppc64le
libxklavier-5.4-7.el7.ppc64le
libxml2-devel-2.9.1-6.el7_2.3.ppc64le
ghostscript-fonts-5.50-32.el7.noarch
libassuan-2.1.0-3.el7.ppc64le
libkipi-devel-4.10.5-3.el7.ppc64le
python-smbc-1.0.13-7.el7.ppc64le
initscripts-9.49.39-1.el7.ppc64le
qt3-3.3.8b-51.el7.ppc64le
yum-metadata-parser-1.1.4-10.el7.ppc64le
device-mapper-persistent-data-0.7.0-0.1.rc6.el7.ppc64le
adwaita-icon-theme-3.22.0-1.el7.noarch
kdepim-4.10.5-6.el7.ppc64le
postfix-2.10.1-6.el7.ppc64le
abrt-addon-pstoreoops-2.1.11-48.el7.centos.ppc64le
freerdp-libs-1.0.2-10.el7.ppc64le
langtable-python-0.0.31-3.el7.noarch
tcp_wrappers-7.6-77.el7.ppc64le
lm_sensors-libs-3.4.0-4.20160601gitf9185e5.el7.ppc64le
kde-style-oxygen-4.11.19-8.el7.ppc64le
powertop-2.3-12.el7.ppc64le
wpa_supplicant-2.6-5.el7.ppc64le
gtk3-3.22.10-4.el7.ppc64le
boost-python-1.53.0-27.el7.ppc64le
keyutils-libs-devel-1.5.8-3.el7.ppc64le
libdvdread-5.0.3-3.el7.ppc64le
im-chooser-common-1.6.4-4.el7.ppc64le
aic94xx-firmware-30-6.el7.noarch
media-player-info-17-4.el7.noarch
compat-gnome-desktop314-3.14.2-1.el7.ppc64le
harfbuzz-1.3.2-1.el7.ppc64le
libgcrypt-devel-1.5.3-14.el7.ppc64le
groff-base-1.22.2-8.el7.ppc64le
sane-backends-1.0.24-9.el7.ppc64le
setuptool-1.19.11-8.el7.ppc64le
ebtables-2.0.10-15.el7.ppc64le
libchamplain-0.12.15-1.el7.ppc64le
boost-math-1.53.0-27.el7.ppc64le
libuser-0.60-7.el7_1.ppc64le
boost-date-time-1.53.0-27.el7.ppc64le
espeak-1.47.11-4.el7.ppc64le
tbb-devel-4.1-9.20130314.el7.ppc64le
grub2-tools-minimal-2.02-0.64.el7.centos.ppc64le
gjs-1.46.0-1.el7.ppc64le
libsss_autofs-1.15.2-50.el7.ppc64le
deltarpm-3.6-3.el7.ppc64le
libnl-1.1.4-3.el7.ppc64le
libgpod-0.8.2-12.el7.ppc64le
postgresql-devel-9.2.21-1.el7.ppc64le
libibcm-13-7.el7.ppc64le
abrt-gui-libs-2.1.11-48.el7.centos.ppc64le
libxkbcommon-0.7.1-1.el7.ppc64le
passwd-0.79-4.el7.ppc64le
lsvpd-1.7.8-1.el7.ppc64le
fprintd-0.5.0-4.0.el7_0.ppc64le
hunspell-en-0.20121024-6.el7.noarch
qca-ossl-2.0.0-0.19.beta3.el7.ppc64le
libdmapsharing-2.9.37-1.el7.ppc64le
ortp-0.20.0-10.el7.ppc64le
python-pycurl-7.19.0-19.el7.ppc64le
perl-Pod-Escapes-1.04-292.el7.noarch
pcp-3.11.8-7.el7.ppc64le
libblkid-devel-2.23.2-43.el7.ppc64le
dracut-network-033-502.el7.ppc64le
pyatspi-2.20.3-1.el7.noarch
systemtap-sdt-devel-3.1-3.el7.ppc64le
check-0.9.9-5.el7.ppc64le
perl-threads-shared-1.43-6.el7.ppc64le
gnome-shell-extension-common-3.22.2-10.el7.noarch
gnome-icon-theme-symbolic-3.12.0-2.el7.noarch
abrt-cli-2.1.11-48.el7.centos.ppc64le
festival-speechtools-libs-1.2.96-28.el7.ppc64le
python-slip-dbus-0.4.0-2.el7.noarch
mesa-private-llvm-3.9.1-3.el7.ppc64le
perl-Time-Local-1.2300-2.el7.noarch
yelp-3.22.0-1.el7.ppc64le
fuse-devel-2.9.2-8.el7.ppc64le
dnsmasq-2.76-2.el7.ppc64le
festvox-slt-arctic-hts-0.20061229-28.el7.noarch
libtasn1-devel-4.10-1.el7.ppc64le
libgudev1-219-42.el7.ppc64le
perl-version-0.99.07-2.el7.ppc64le
libvirt-daemon-driver-qemu-3.2.0-14.el7.ppc64le
ps_mem-3.1-7.el7.noarch
rtkit-0.11-10.el7.ppc64le
abrt-gui-2.1.11-48.el7.centos.ppc64le
nettle-devel-2.7.1-8.el7.ppc64le
perl-ExtUtils-Manifest-1.61-244.el7.noarch
libreswan-3.20-3.el7.ppc64le
python-pyudev-0.15-9.el7.noarch
appstream-data-7-20170301.el7.noarch
powerpc-utils-1.3.3-4.el7.ppc64le
setup-2.8.71-7.el7.noarch
enscript-1.6.6-6.el7.ppc64le
libgexiv2-0.10.4-2.el7.ppc64le
perl-Digest-SHA-5.85-4.el7.ppc64le
upower-0.99.4-2.el7.ppc64le
dhcp-libs-4.2.5-58.el7.centos.ppc64le
kbd-1.15.5-13.el7.ppc64le
phonon-backend-gstreamer-4.6.3-3.el7.ppc64le
dejavu-fonts-common-2.33-6.el7.noarch
libaio-devel-0.3.109-13.el7.ppc64le
grubby-8.28-23.el7.ppc64le
perl-CPAN-Meta-2.120921-5.el7.noarch
libmusicbrainz5-5.0.1-9.el7.ppc64le
liberation-mono-fonts-1.07.2-15.el7.noarch
fcoe-utils-1.0.32-1.el7.ppc64le
gvfs-afc-1.30.4-3.el7.ppc64le
m17n-db-1.6.4-3.el7.noarch
time-1.7-45.el7.ppc64le
python-configobj-4.7.2-7.el7.noarch
perl-Log-Message-0.08-3.el7.noarch
glib-networking-2.50.0-1.el7.ppc64le
gnome-classic-session-3.22.2-10.el7.noarch
libglade2-2.6.4-11.el7.ppc64le
langtable-data-0.0.31-3.el7.noarch
dejavu-serif-fonts-2.33-6.el7.noarch
python-requests-2.6.0-1.el7_1.noarch
perl-HTML-Tagset-3.20-15.el7.noarch
gssdp-1.0.1-1.el7.ppc64le
perl-CPANPLUS-Dist-Build-0.70-3.el7.noarch
brasero-nautilus-3.12.1-2.el7.ppc64le
evolution-data-server-3.22.7-6.el7.ppc64le
khmeros-fonts-common-5.0-17.el7.noarch
dejavu-sans-fonts-2.33-6.el7.noarch
python-kmod-0.9-4.el7.ppc64le
lzop-1.03-10.el7.ppc64le
telepathy-salut-0.8.1-6.el7.ppc64le
tbb-4.1-9.20130314.el7.ppc64le
kdegraphics-devel-4.10.5-3.el7.noarch
libcryptui-3.12.2-1.el7.ppc64le
ncurses-base-5.9-13.20130511.el7.noarch
lohit-nepali-fonts-2.5.3-2.el7.noarch
python-configshell-1.1.fb23-3.el7.noarch
acl-2.2.51-12.el7.ppc64le
python-rtslib-2.1.fb63-2.el7.noarch
libreport-plugin-rhtsupport-2.1.11-38.el7.centos.ppc64le
imsettings-qt-1.6.3-9.el7.ppc64le
webkitgtk3-2.4.11-2.el7.ppc64le
libsepol-2.5-6.el7.ppc64le
smc-meera-fonts-6.0-7.el7.noarch
python-mako-0.8.1-2.el7.noarch
pinentry-0.8.1-17.el7.ppc64le
alsa-tools-firmware-1.1.0-1.el7.ppc64le
libgdither-0.6-8.el7.ppc64le
ibus-libpinyin-1.6.91-4.el7.ppc64le
libXp-devel-1.0.2-2.1.el7.ppc64le
nspr-4.13.1-1.0.el7_3.ppc64le
cscope-15.8-10.el7.ppc64le
m2crypto-0.21.1-17.el7.ppc64le
libatomic-4.8.5-16.el7.ppc64le
opencc-0.4.3-3.el7.ppc64le
sbc-1.0-5.el7.ppc64le
SDL-devel-1.2.15-14.el7.ppc64le
vorbis-tools-1.4.0-12.el7.ppc64le
bzip2-libs-1.0.6-13.el7.ppc64le
google-crosextra-carlito-fonts-1.103-0.2.20130920.el7.noarch
nmap-ncat-6.40-7.el7.ppc64le
krb5-libs-1.15.1-8.el7.ppc64le
sssd-krb5-1.15.2-50.el7.ppc64le
cups-filters-libs-1.0.35-22.el7.ppc64le
virt-manager-1.4.1-7.el7.noarch
evince-3.22.1-5.el7.ppc64le
readline-6.2-10.el7.ppc64le
ctags-5.8-13.el7.ppc64le
sound-theme-freedesktop-0.8-3.el7.noarch
ruby-libs-2.0.0.648-30.el7.ppc64le
pth-2.0.7-23.el7.ppc64le
rubygems-2.0.14.1-30.el7.noarch
gnome-dictionary-3.20.0-1.el7.ppc64le
xorg-x11-drv-evdev-2.10.5-2.1.el7.ppc64le
audit-libs-2.7.6-3.el7.ppc64le
iwl135-firmware-18.168.6.1-56.el7.noarch
python-nss-0.16.0-3.el7.ppc64le
json-glib-1.2.6-1.el7.ppc64le
flatpak-libs-0.8.7-1.el7.ppc64le
libutempter-1.1.6-4.el7.ppc64le
ekiga-4.0.1-7.el7.ppc64le
easymock2-2.5.2-12.el7.noarch
keyutils-libs-1.5.8-3.el7.ppc64le
iwl1000-firmware-39.31.5.1-56.el7.noarch
teamd-1.25-5.el7.ppc64le
telepathy-glib-0.24.0-1.el7.ppc64le
PackageKit-yum-1.1.5-1.el7.centos.ppc64le
virt-what-1.13-10.el7.ppc64le
ppc64-diag-2.7.3-3.el7.ppc64le
libpurple-2.10.11-5.el7.ppc64le
libffi-3.0.13-18.el7.ppc64le
iwl2000-firmware-18.168.6.1-56.el7.noarch
perl-YAML-0.84-5.el7.noarch
libxml2-python-2.9.1-6.el7_2.3.ppc64le
lsscsi-0.27-6.el7.ppc64le
systemtap-client-3.1-3.el7.ppc64le
virt-viewer-5.0-7.el7.ppc64le
dbusmenu-qt-0.9.2-7.el7.ppc64le
libtar-1.2.11-29.el7.ppc64le
ccache-3.3.4-1.el7.ppc64le
perl-DBD-SQLite-1.39-3.el7.ppc64le
gnome-icon-theme-3.12.0-1.el7.noarch
gdk-pixbuf2-2.36.5-1.el7.ppc64le
libpath_utils-0.2.1-27.el7.ppc64le
gvfs-archive-1.30.4-3.el7.ppc64le
gnome-online-accounts-devel-3.22.5-1.el7.ppc64le
yajl-2.0.4-4.el7.ppc64le
gcc-4.8.5-16.el7_4.1.ppc64le
perl-Pod-Coverage-0.23-3.el7.noarch
libselinux-python-2.5-11.el7.ppc64le
libX11-devel-1.6.5-1.el7.ppc64le
qrencode-libs-3.4.1-3.el7.ppc64le
gnome-system-log-3.9.90-3.el7.ppc64le
mesa-libGLU-devel-9.0.0-4.el7.ppc64le
boost-system-1.53.0-27.el7.ppc64le
perl-HTTP-Message-6.06-6.el7.noarch
cracklib-2.9.0-11.el7.ppc64le
libXcursor-1.1.14-8.el7.ppc64le
dbus-1.6.12-17.el7.ppc64le
libnotify-devel-0.7.7-1.el7.ppc64le
ibus-gtk3-1.5.3-13.el7.ppc64le
libv4l-0.9.5-4.el7.ppc64le
perl-Time-Piece-1.20.1-292.el7.ppc64le
cracklib-dicts-2.9.0-11.el7.ppc64le
startup-notification-0.12-8.el7.ppc64le
dconf-0.26.0-2.el7.ppc64le
net-snmp-devel-5.7.2-28.el7.ppc64le
kate-part-4.10.5-4.el7.ppc64le
orc-0.4.26-1.el7.ppc64le
kernel-devel-3.10.0-693.el7.ppc64le
avahi-gobject-0.6.31-17.el7.ppc64le
cairo-gobject-1.14.8-2.el7.ppc64le
httpd-2.4.6-67.el7.centos.ppc64le
subversion-1.7.14-10.el7.ppc64le
kdepimlibs-akonadi-4.10.5-4.el7.ppc64le
gdbm-1.10-8.el7.ppc64le
perl-File-CheckTree-4.42-3.el7.noarch
atk-devel-2.22.0-3.el7.ppc64le
java-1.8.0-openjdk-devel-1.8.0.131-11.b12.el7.ppc64le
abrt-dbus-2.1.11-48.el7.centos.ppc64le
qt-mysql-4.8.5-13.el7.ppc64le
libkdcraw-4.10.5-4.el7.ppc64le
libaio-0.3.109-13.el7.ppc64le
urw-fonts-2.4-16.el7.noarch
libgee06-0.6.8-3.el7.ppc64le
libXrandr-devel-1.5.1-2.el7.ppc64le
cronie-anacron-1.4.11-17.el7.ppc64le
mlocate-0.26-6.el7.ppc64le
kdesdk-okteta-devel-4.10.5-6.el7.ppc64le
iso-codes-3.46-2.el7.noarch
e2fsprogs-1.42.9-10.el7.ppc64le
at-spi2-atk-2.22.0-2.el7.ppc64le
libstoragemgmt-python-clibs-1.4.0-3.el7.ppc64le
PackageKit-command-not-found-1.1.5-1.el7.centos.ppc64le
kdenetwork-kopete-devel-4.10.5-8.el7_0.ppc64le
libmnl-1.0.3-7.el7.ppc64le
tcp_wrappers-devel-7.6-77.el7.ppc64le
python-dns-1.12.0-4.20150617git465785f.el7.noarch
libXinerama-devel-1.1.3-2.1.el7.ppc64le
libibverbs-13-7.el7.ppc64le
net-tools-2.0-0.22.20131004git.el7.ppc64le
kde-workspace-libs-4.11.19-8.el7.ppc64le
libwebp-0.3.0-7.el7.ppc64le
libattr-devel-2.4.46-12.el7.ppc64le
libkadm5-1.15.1-8.el7.ppc64le
gcr-3.20.0-1.el7.ppc64le
colord-1.3.4-1.el7.ppc64le
rsyslog-8.24.0-12.el7.ppc64le
im-chooser-1.6.4-4.el7.ppc64le
boost-filesystem-1.53.0-27.el7.ppc64le
libgpg-error-devel-1.12-3.el7.ppc64le
harfbuzz-icu-1.3.2-1.el7.ppc64le
libpeas-gtk-1.20.0-1.el7.ppc64le
abrt-addon-python-2.1.11-48.el7.centos.ppc64le
selinux-policy-targeted-3.13.1-166.el7.noarch
libksane-4.10.5-4.el7.ppc64le
m4-1.4.16-10.el7.ppc64le
xmlrpc-c-client-1.32.5-1905.svn2451.el7.ppc64le
sysvinit-tools-2.88-14.dsf.el7.ppc64le
libnma-1.8.0-3.el7.ppc64le
os-prober-1.58-9.el7.ppc64le
libproxy-mozjs-0.4.11-10.el7.ppc64le
speech-dispatcher-0.7.1-15.el7.ppc64le
boost-signals-1.53.0-27.el7.ppc64le
python-ldap-2.4.15-2.el7.ppc64le
libvpx-1.3.0-5.el7_0.ppc64le
nm-connection-editor-1.8.0-3.el7.ppc64le
NetworkManager-team-1.8.0-9.el7.ppc64le
perf-3.10.0-693.el7.ppc64le
libgsf-1.14.26-7.el7.ppc64le
libpfm-4.7.0-4.el7.ppc64le
postgresql-9.2.21-1.el7.ppc64le
ethtool-4.8-1.el7.ppc64le
xorg-x11-server-utils-7.7-20.el7.ppc64le
attica-0.4.2-1.el7.ppc64le
xfsdump-3.1.4-1.el7.ppc64le
firewalld-filesystem-0.4.4.4-6.el7.noarch
libXfont2-2.0.1-2.el7.ppc64le
net-snmp-agent-libs-5.7.2-28.el7.ppc64le
tcl-devel-8.5.13-8.el7.ppc64le
libgxps-0.2.5-1.el7.ppc64le
cyrus-sasl-devel-2.1.26-21.el7.ppc64le
hmaccalc-0.9.13-4.el7.ppc64le
libwacom-data-0.24-1.el7.noarch
perl-Pod-Usage-1.63-3.el7.noarch
python-yubico-1.2.3-1.el7.noarch
libXxf86vm-devel-1.1.4-1.el7.ppc64le
abrt-tui-2.1.11-48.el7.centos.ppc64le
pinfo-0.6.10-9.el7.ppc64le
gnome-shell-extension-user-theme-3.22.2-10.el7.noarch
perl-File-Path-2.09-2.el7.noarch
xorg-x11-fonts-Type1-7.5-9.el7.noarch
python-firewall-0.4.4.4-6.el7.noarch
libXres-1.0.7-2.1.el7.ppc64le
libcgroup-tools-0.41-13.el7.ppc64le
libnl-devel-1.1.4-3.el7.ppc64le
gnome-user-docs-3.22.0-1.el7.noarch
perl-Pod-Simple-3.28-4.el7.noarch
systemd-libs-219-42.el7.ppc64le
ncurses-devel-5.9-13.20130511.el7.ppc64le
mesa-libEGL-devel-17.0.1-6.20170307.el7.ppc64le
audit-2.7.6-3.el7.ppc64le
iotop-0.6-2.el7.noarch
libvirt-daemon-driver-storage-logical-3.2.0-14.el7.ppc64le
perl-Module-CoreList-2.76.02-292.el7.noarch
libmbim-1.14.0-2.el7.ppc64le
xdg-desktop-portal-0.5-2.el7.ppc64le
perl-Module-Load-0.24-3.el7.noarch
caribou-gtk3-module-0.4.21-1.el7.ppc64le
sqlite-devel-3.7.17-8.el7.ppc64le
centos-indexhtml-7-9.el7.centos.noarch
elfutils-0.168-8.el7.ppc64le
centos-release-7-4.1708.el7.centos.ppc64le
trousers-0.3.14-2.el7.ppc64le
perl-Thread-Queue-3.02-2.el7.noarch
python-meh-gui-0.25.2-1.el7.noarch
gom-0.3.2-1.el7.ppc64le
lldpad-1.0.1-3.git036e314.el7.ppc64le
libgusb-0.2.9-1.el7.ppc64le
liberation-fonts-common-1.07.2-15.el7.noarch
libimobiledevice-1.2.0-1.el7.ppc64le
perl-Module-Pluggable-4.8-3.el7.noarch
ghostscript-cups-9.07-28.el7.ppc64le
osinfo-db-tools-1.1.0-1.el7.ppc64le
kbd-misc-1.15.5-13.el7.noarch
dhcp-common-4.2.5-58.el7.centos.ppc64le
control-center-filesystem-3.22.2-5.el7.ppc64le
libvirt-glib-1.0.0-1.el7.ppc64le
perl-CPAN-Meta-Requirements-2.122-7.el7.noarch
PyQt4-4.10.1-13.el7.ppc64le
btrfs-progs-4.9.1-1.el7.ppc64le
anaconda-gui-21.48.22.121-1.el7.centos.ppc64le
libatasmart-0.19-6.el7.ppc64le
shared-desktop-ontologies-0.11.0-2.el7.noarch
libvirt-daemon-config-nwfilter-3.2.0-14.el7.ppc64le
autoconf-2.69-11.el7.noarch
gnome-terminal-3.22.1-2.el7.ppc64le
python-cups-1.9.63-6.el7.ppc64le
intltool-0.50.2-7.el7.noarch
glibc-headers-2.17-196.el7.ppc64le
kdesdk-common-4.10.5-6.el7.noarch
libvirt-daemon-driver-secret-3.2.0-14.el7.ppc64le
perl-Locale-Maketext-Simple-0.21-292.el7.noarch
gnome-keyring-3.20.0-3.el7.ppc64le
python-sss-murmur-1.15.2-50.el7.ppc64le
vim-enhanced-7.4.160-2.el7.ppc64le
perl-ExtUtils-MakeMaker-6.68-3.el7.noarch
emacs-filesystem-24.3-19.el7_3.noarch
libvncserver-0.9.9-9.el7_0.1.ppc64le
perl-Object-Accessor-0.42-292.el7.noarch
gnome-desktop3-3.22.2-2.el7.ppc64le
python-backports-1.0-8.el7.ppc64le
evolution-help-3.22.6-10.el7.noarch
systemtap-devel-3.1-3.el7.ppc64le
langtable-0.0.31-3.el7.noarch
geocode-glib-3.20.1-1.el7.ppc64le
perl-Compress-Raw-Bzip2-2.061-3.el7.ppc64le
pygtk2-libglade-2.24.0-9.el7.ppc64le
python-urllib3-1.10.2-3.el7.noarch
orca-3.6.3-4.el7.ppc64le
perl-File-Fetch-0.42-2.el7.noarch
latencytop-common-0.5-13.el7.ppc64le
geoclue2-libs-2.4.5-1.el7.ppc64le
perl-Module-Loaded-0.08-292.el7.noarch
webkitgtk4-2.14.7-2.el7.ppc64le
python-paste-1.7.5.1-9.20111221hg1498.el7.noarch
totem-nautilus-3.22.1-1.el7.ppc64le
libtool-2.4.2-22.el7_3.ppc64le
smc-fonts-common-6.0-7.el7.noarch
libnice-0.1.3-4.el7.ppc64le
libdvdnav-5.0.3-1.el7.ppc64le
folks-0.11.3-1.el7.ppc64le
python-ipaddr-2.1.11-1.el7.noarch
xorg-x11-utils-7.5-22.el7.ppc64le
oxygen-icon-theme-4.10.5-2.el7.noarch
libkkc-common-0.3.1-9.el7.noarch
libgovirt-0.3.3-5.el7.ppc64le
boost-timer-1.53.0-27.el7.ppc64le
gnome-packagekit-common-3.22.1-2.el7.ppc64le
javapackages-tools-3.4.1-11.el7.noarch
sane-backends-devel-1.0.24-9.el7.ppc64le
konkretcmpi-0.9.1-5.el7.ppc64le
perl-srpm-macros-1-8.el7.noarch
chrony-3.1-2.el7.centos.ppc64le
fuse-2.9.2-8.el7.ppc64le
evolution-3.22.6-10.el7.ppc64le
python-urwid-1.1.1-3.el7.ppc64le
shotwell-0.24.5-1.el7.ppc64le
libreport-web-2.1.11-38.el7.centos.ppc64le
glibc-2.17-196.el7.ppc64le
usb_modeswitch-data-20160612-2.el7.noarch
patch-2.7.1-8.el7.ppc64le
file-roller-3.22.3-1.el7.ppc64le
python-netaddr-0.7.5-7.el7.noarch
ibus-table-chinese-1.4.6-3.el7.noarch
libreport-plugin-reportuploader-2.1.11-38.el7.centos.ppc64le
pcre-8.32-17.el7.ppc64le
libvirt-daemon-driver-network-3.2.0-14.el7.ppc64le
cyrus-sasl-plain-2.1.26-21.el7.ppc64le
glade-libs-3.20.0-1.el7.ppc64le
python-markupsafe-0.11-10.el7.ppc64le
kdenetwork-devel-4.10.5-8.el7_0.noarch
libreport-plugin-ureport-2.1.11-38.el7.centos.ppc64le
dbus-libs-1.6.12-17.el7.ppc64le
alsa-firmware-1.0.28-2.el7.noarch
mozjs17-17.0.0-19.el7.ppc64le
avahi-ui-gtk3-0.6.31-17.el7.ppc64le
python-cffi-1.6.0-5.el7.ppc64le
xdg-user-dirs-gtk-0.10-4.el7.ppc64le
gavl-1.4.0-4.el7.ppc64le
libjpeg-turbo-1.2.90-5.el7.ppc64le
device-mapper-multipath-0.4.9-111.el7.ppc64le
libcdio-0.92-1.el7.ppc64le
pulseaudio-module-bluetooth-10.0-3.el7.ppc64le
pytalloc-2.1.9-1.el7.ppc64le
ibus-sayura-1.3.2-3.el7.ppc64le
checkpolicy-2.5-4.el7.ppc64le
libICE-1.0.9-9.el7.ppc64le
libvirt-daemon-driver-interface-3.2.0-14.el7.ppc64le
libunistring-0.9.3-9.el7.ppc64le
libXScrnSaver-devel-1.2.2-6.1.el7.ppc64le
openlmi-python-base-0.5.0-4.el7.noarch
PyQt4-devel-4.10.1-13.el7.ppc64le
libndp-1.2-7.el7.ppc64le
libxml2-2.9.1-6.el7_2.3.ppc64le
sssd-krb5-common-1.15.2-50.el7.ppc64le
ncurses-5.9-13.20130511.el7.ppc64le
icedax-1.1.11-23.el7.ppc64le
libmsn-4.2.1-7.el7.ppc64le
evolution-data-server-devel-3.22.7-6.el7.ppc64le
poppler-0.26.5-16.el7.ppc64le
sed-4.2.2-5.el7.ppc64le
sssd-ldap-1.15.2-50.el7.ppc64le
fontconfig-2.10.95-11.el7.ppc64le
pinentry-qt-0.8.1-17.el7.ppc64le
cyrus-sasl-scram-2.1.26-21.el7.ppc64le
paps-0.6.8-28.el7.1.ppc64le
libyaml-0.1.4-11.el7_0.ppc64le
libgpg-error-1.12-3.el7.ppc64le
sgpio-1.2.0.10-13.el7.ppc64le
alsa-lib-1.1.3-3.el7.ppc64le
gutenprint-5.2.9-18.el7.ppc64le
openslp-2.0.0-6.el7.ppc64le
ruby-irb-2.0.0.648-30.el7.noarch
libgcrypt-1.5.3-14.el7.ppc64le
python-blivet-0.61.15.65-1.el7.noarch
gzip-1.5-9.el7.ppc64le
xorg-x11-drv-void-1.4.1-2.el7.ppc64le
nss-pem-1.0.3-4.el7.ppc64le
rubygem-rdoc-4.0.0-30.el7.noarch
libcap-ng-0.7.5-4.el7.ppc64le
rpm-build-libs-4.11.3-25.el7.ppc64le
shared-mime-info-1.8-3.el7.ppc64le
xorg-x11-drv-v4l-0.2.0-47.el7.ppc64le
nss-tools-3.28.4-8.el7.ppc64le
libsemanage-2.5-8.el7.ppc64le
libxcb-1.12-1.el7.ppc64le
flatpak-0.8.7-1.el7.ppc64le
gstreamer1-1.10.4-2.el7.ppc64le
xorg-x11-drv-nouveau-1.0.13-3.el7.ppc64le
sgml-common-0.6.3-39.el7.noarch
util-linux-2.23.2-43.el7.ppc64le
libtdb-1.3.12-2.el7.ppc64le
rpm-devel-4.11.3-25.el7.ppc64le
gobject-introspection-1.50.0-1.el7.ppc64le
qdox-1.12.1-10.el7.noarch
libteam-1.25-5.el7.ppc64le
openssh-clients-7.4p1-11.el7.ppc64le
libattr-2.4.46-12.el7.ppc64le
python-meh-0.25.2-1.el7.noarch
avahi-glib-0.6.31-17.el7.ppc64le
rhino-1.7R5-1.el7.noarch
perl-Pod-Checker-1.60-2.el7.noarch
rarian-0.8.1-11.el7.ppc64le
gmp-6.0.0-15.el7.ppc64le
createrepo-0.9.9-28.el7.noarch
python-gobject-base-3.22.0-1.el7.ppc64le
telepathy-haze-0.8.0-1.el7.ppc64le
perl-Version-Requirements-0.101022-244.el7.noarch
tog-pegasus-2.14.1-5.el7.ppc64le
lua-5.1.4-15.el7.ppc64le
libburn-1.2.8-4.el7.ppc64le
openssl-1.0.2k-8.el7.ppc64le
dleyna-server-0.5.0-1.el7.ppc64le
perl-IO-HTML-1.00-2.el7.noarch
libsemanage-python-2.5-8.el7.ppc64le
libidn-1.28-4.el7.ppc64le
nss-devel-3.28.4-8.el7.ppc64le
net-snmp-libs-5.7.2-28.el7.ppc64le
paps-libs-0.6.8-28.el7.1.ppc64le
perl-DBIx-Simple-1.35-7.el7.noarch
lzo-minilzo-2.06-8.el7.ppc64le
libref_array-0.1.5-27.el7.ppc64le
libX11-1.6.5-1.el7.ppc64le
xdg-utils-1.1.0-0.17.20120809git.el7.noarch
harfbuzz-devel-1.3.2-1.el7.ppc64le
perl-CGI-3.63-4.el7.noarch
libini_config-1.3.0-27.el7.ppc64le
xmlrpc-c-1.32.5-1905.svn2451.el7.ppc64le
libXfixes-5.0.3-1.el7.ppc64le
glibmm24-2.50.0-1.el7.ppc64le
webkitgtk4-devel-2.14.7-2.el7.ppc64le
perl-Devel-Symdump-2.10-2.el7.noarch
libpipeline-1.2.3-3.el7.ppc64le
mpfr-3.1.1-4.el7.ppc64le
libXrandr-1.5.1-2.el7.ppc64le
cyrus-sasl-gssapi-2.1.26-21.el7.ppc64le
gtk2-devel-2.24.31-1.el7.ppc64le
perl-URI-1.60-9.el7.noarch
kpartx-0.4.9-111.el7.ppc64le
file-libs-5.11-33.el7.ppc64le
libXext-devel-1.3.3-3.el7.ppc64le
libSM-devel-1.2.2-2.el7.ppc64le
qt-devel-4.8.5-13.el7.ppc64le
perl-HTTP-Date-6.02-8.el7.noarch
dracut-033-502.el7.ppc64le
libtool-ltdl-2.4.2-22.el7_3.ppc64le
libcanberra-0.30-5.el7.ppc64le
python-enum34-1.0.4-1.el7.noarch
libxkbfile-devel-1.0.9-3.el7.ppc64le
perl-HTTP-Cookies-6.01-5.el7.noarch
polkit-0.112-12.el7_3.ppc64le
libtheora-1.1.1-8.el7.ppc64le
libXpm-3.5.12-1.el7.ppc64le
libevent-2.0.21-4.el7.ppc64le
ibus-gtk2-1.5.3-13.el7.ppc64le
kdelibs-common-4.14.8-6.el7_3.ppc64le
systemd-sysv-219-42.el7.ppc64le
diffutils-3.3-4.el7.ppc64le
libXv-1.0.11-1.el7.ppc64le
pam-1.1.8-18.el7.ppc64le
imsettings-gsettings-1.6.3-9.el7.ppc64le
perl-YAML-Tiny-1.51-6.el7.noarch
GConf2-3.2.6-8.el7.ppc64le
libtasn1-4.10-1.el7.ppc64le
libxkbfile-1.0.9-3.el7.ppc64le
gettext-libs-0.19.8.1-2.el7.ppc64le
kdelibs-ktexteditor-4.14.8-6.el7_3.ppc64le
perl-Env-1.04-2.el7.noarch
libpciaccess-0.13.4-3.el7_3.ppc64le
nss-softokn-3.28.3-6.el7.ppc64le
pango-1.40.4-1.el7.ppc64le
telepathy-logger-0.8.0-5.el7.ppc64le
nepomuk-core-4.10.5-5.el7.ppc64le
perl-Net-HTTP-6.06-2.el7.noarch
samba-common-4.6.2-8.el7.noarch
libsigc++20-2.10.0-1.el7.ppc64le
cogl-1.22.2-1.el7.ppc64le
pcre-devel-8.32-17.el7.ppc64le
kdenetwork-kopete-libs-4.10.5-8.el7_0.ppc64le
icoutils-0.31.3-1.el7_3.ppc64le
pyparted-3.9-13.el7.ppc64le
apr-util-1.5.2-6.el7.ppc64le
giflib-4.1.6-9.el7.ppc64le
expat-devel-2.1.0-10.el7_3.ppc64le
kdesdk-okteta-4.10.5-6.el7.ppc64le
papi-5.2.0-23.el7.ppc64le
abrt-python-2.1.11-48.el7.centos.ppc64le
lzo-2.06-8.el7.ppc64le
java-1.8.0-openjdk-1.8.0.131-11.b12.el7.ppc64le
libffi-devel-3.0.13-18.el7.ppc64le
kwin-libs-4.11.19-8.el7.ppc64le
xorg-x11-font-utils-7.5-20.el7.ppc64le
iscsi-initiator-utils-iscsiuio-6.2.0.874-4.el7.ppc64le
file-5.11-33.el7.ppc64le
libXft-devel-2.3.2-2.el7.ppc64le
libipa_hbac-1.15.2-50.el7.ppc64le
kwin-gles-libs-4.11.19-8.el7.ppc64le
libsamplerate-0.1.8-6.el7.ppc64le
cronie-1.4.11-17.el7.ppc64le
xml-common-0.6.3-39.el7.noarch
ghostscript-9.07-28.el7.ppc64le
libpinyin-data-0.9.93-4.el7.ppc64le
kde-runtime-libs-4.10.5-8.el7.ppc64le
ipset-6.29-1.el7.ppc64le
plymouth-0.8.9-0.28.20140113.el7.centos.ppc64le
taglib-1.8-7.20130218git.el7.ppc64le
at-spi2-core-2.22.0-1.el7.ppc64le
xfsprogs-4.5.0-12.el7.ppc64le
kdepim-runtime-4.10.5-3.el7.ppc64le
libusbmuxd-1.0.10-5.el7.ppc64le
libstoragemgmt-python-1.4.0-3.el7.noarch
libseccomp-2.3.1-3.el7.ppc64le
gstreamer1-plugins-good-1.10.4-2.el7.ppc64le
pyusb-1.0.0-0.11.b1.el7.noarch
nepomuk-core-devel-4.10.5-5.el7.ppc64le
libofa-0.9.3-24.el7.ppc64le
device-mapper-event-1.02.140-8.el7.ppc64le
librtas-2.0.1-1.el7.ppc64le
libXcomposite-devel-0.4.4-4.1.el7.ppc64le
audit-libs-python-2.7.6-3.el7.ppc64le
okular-libs-4.10.5-4.el7.ppc64le
gdisk-0.8.6-5.el7.ppc64le
libibumad-13-7.el7.ppc64le
libsndfile-1.0.25-10.el7.ppc64le
libXxf86misc-1.0.3-7.1.el7.ppc64le
pyparsing-1.5.6-9.el7.noarch
kdesdk-kmtrace-libs-4.10.5-6.el7.ppc64le
attr-2.4.46-12.el7.ppc64le
rpcbind-0.2.0-42.el7.ppc64le
slang-2.2.4-11.el7.ppc64le
gtk2-2.24.31-1.el7.ppc64le
libssh2-1.4.3-10.el7_2.1.ppc64le
kdesdk-kompare-4.10.5-6.el7.ppc64le
openssl-devel-1.0.2k-8.el7.ppc64le
bluez-5.44-2.el7.ppc64le
boost-thread-1.53.0-27.el7.ppc64le
clutter-gtk-1.8.2-1.el7.ppc64le
soundtouch-1.4.0-9.el7.ppc64le
ibus-table-1.5.0-5.el7.noarch
setools-libs-3.3.8-1.1.el7.ppc64le
ppp-2.4.5-33.el7.ppc64le
libvpd-2.2.5-1.el7.ppc64le
clutter-gst3-3.0.22-1.el7.ppc64le
boost-test-1.53.0-27.el7.ppc64le
libgphoto2-2.5.2-5.el7.ppc64le
libcurl-7.29.0-42.el7.ppc64le
libmtp-1.1.6-5.el7.ppc64le
unzip-6.0-16.el7.ppc64le
vte291-0.46.2-1.el7.ppc64le
boost-random-1.53.0-27.el7.ppc64le
hplip-libs-3.15.9-3.el7.ppc64le
openldap-2.4.44-5.el7.ppc64le
rsync-3.0.9-18.el7.ppc64le
psmisc-22.20-15.el7.ppc64le
compat-cheese314-3.14.2-1.el7.ppc64le
dosfstools-3.0.20-9.el7.ppc64le
sane-backends-drivers-cameras-1.0.24-9.el7.ppc64le
kde-filesystem-4-47.el7.ppc64le
cryptsetup-1.7.4-3.el7.ppc64le
boost-program-options-1.53.0-27.el7.ppc64le
libgnomekbd-3.22.0.1-1.el7.ppc64le
libsrtp-1.4.4-10.20101004cvs.el7.ppc64le
speech-dispatcher-python-0.7.1-15.el7.ppc64le
raptor2-2.0.9-3.el7.ppc64le
grub2-tools-2.02-0.64.el7.centos.ppc64le
libiodbc-3.52.7-7.el7.ppc64le
gtk-vnc2-0.7.0-2.el7.ppc64le
libdv-1.0.0-17.el7.ppc64le
libXxf86dga-1.1.4-2.1.el7.ppc64le
python-deltarpm-3.6-3.el7.ppc64le
ibacm-13-7.el7.ppc64le
opus-1.0.2-6.el7.ppc64le
system-config-printer-libs-1.4.1-19.el7.noarch
libthai-0.1.14-9.el7.ppc64le
tracker-1.10.5-4.el7.ppc64le
shared-desktop-ontologies-devel-0.11.0-2.el7.noarch
qt-4.8.5-13.el7.ppc64le
pcre2-10.23-2.el7.ppc64le
gtkspell3-3.0.3-4.el7.ppc64le
libevdev-1.5.6-1.el7.ppc64le
totem-3.22.1-1.el7.ppc64le
virtuoso-opensource-6.1.6-6.el7.ppc64le
strigi-libs-0.7.7-12.20120626.el7.ppc64le
boost-wave-1.53.0-27.el7.ppc64le
libXmu-devel-1.1.2-2.el7.ppc64le
iproute-3.10.0-87.el7.ppc64le
firewalld-0.4.4.4-6.el7.noarch
color-filesystem-1-13.el7.noarch
automoc-1.0-0.20.rc3.el7.ppc64le
perl-Pod-Perldoc-3.20-4.el7.noarch
poppler-utils-0.26.5-16.el7.ppc64le
boost-1.53.0-27.el7.ppc64le
pcp-libs-3.11.8-7.el7.ppc64le
pykickstart-1.99.66.12-1.el7.noarch
openldap-devel-2.4.44-5.el7.ppc64le
perl-Encode-2.51-7.el7.ppc64le
python-gobject-3.22.0-1.el7.ppc64le
krb5-workstation-1.15.1-8.el7.ppc64le
libwacom-0.24-1.el7.ppc64le
isomd5sum-1.0.10-5.el7.ppc64le
abrt-addon-vmcore-2.1.11-48.el7.centos.ppc64le
perl-constant-1.27-2.el7.noarch
compat-libcogl12-1.14.0-3.el7.ppc64le
python-libipa_hbac-1.15.2-50.el7.ppc64le
gdm-3.22.3-11.el7.ppc64le
gstreamer1-devel-1.10.4-2.el7.ppc64le
abrt-retrace-client-2.1.11-48.el7.centos.ppc64le
perl-Exporter-5.68-3.el7.noarch
libXpm-devel-3.5.12-1.el7.ppc64le
python2-pyasn1-modules-0.1.9-7.el7.noarch
gnome-shell-extension-alternate-tab-3.22.2-10.el7.noarch
ttmkfdir-3.0.9-42.el7.ppc64le
samba-libs-4.6.2-8.el7.ppc64le
perl-File-Temp-0.23.01-3.el7.noarch
brltty-4.5-15.el7.ppc64le
sos-3.4-6.el7.centos.noarch
gnome-shell-extension-window-list-3.22.2-10.el7.noarch
clucene-core-2.3.3.4-11.el7.ppc64le
osinfo-db-20170423-2.el7.noarch
perl-macros-5.16.3-292.el7.ppc64le
python-brlapi-0.6.0-15.el7.ppc64le
libselinux-devel-2.5-11.el7.ppc64le
quota-nls-4.01-14.el7.noarch
elfutils-libs-0.168-8.el7.ppc64le
oddjob-mkhomedir-0.31.5-4.el7.ppc64le
perl-5.16.3-292.el7.ppc64le
opal-3.10.10-4.el7.ppc64le
gstreamer-tools-0.10.36-7.el7.ppc64le
libvirt-daemon-driver-storage-scsi-3.2.0-14.el7.ppc64le
satyr-0.13-14.el7.ppc64le
polkit-docs-0.112-12.el7_3.noarch
perl-Compress-Raw-Zlib-2.061-4.el7.ppc64le
compat-libcogl-pango12-1.14.0-3.el7.ppc64le
alsa-lib-devel-1.1.3-3.el7.ppc64le
libvirt-daemon-driver-storage-mpath-3.2.0-14.el7.ppc64le
NetworkManager-libnm-1.8.0-9.el7.ppc64le
tcsh-6.18.01-15.el7.ppc64le
perl-XML-Dumper-0.81-17.el7.noarch
libpfm-devel-4.7.0-4.el7.ppc64le
unixODBC-devel-2.3.1-11.el7.ppc64le
rcs-5.9.0-5.el7.ppc64le
ltrace-0.7.91-14.el7.ppc64le
ed-1.9-4.el7.ppc64le
wqy-zenhei-fonts-0.9.46-11.el7.noarch
lohit-bengali-fonts-2.5.3-4.el7.noarch
paratype-pt-sans-fonts-20101909-3.el7.noarch
paktype-naskh-basic-fonts-4.1-3.el7.noarch
lklug-fonts-0.6-10.20090803cvs.el7.noarch
lohit-kannada-fonts-2.5.3-3.el7.noarch
cjkuni-uming-fonts-0.2.20080216.1-53.el7.noarch
vlgothic-fonts-20130607-2.el7.noarch
lohit-telugu-fonts-2.5.3-3.el7.noarch
gnu-free-serif-fonts-20120503-8.el7.noarch
jomolhari-fonts-0.003-17.el7.noarch
scl-utils-20130529-17.el7_1.ppc64le
diffstat-1.57-4.el7.ppc64le
xorg-x11-drivers-7.7-6.el7.ppc64le
setserial-2.17-33.el7.ppc64le
vinagre-3.22.0-8.el7.ppc64le
man-pages-overrides-7.4.3-1.el7.ppc64le
gedit-3.22.0-3.el7.ppc64le
iwl5150-firmware-8.24.2.2-56.el7.noarch
gnome-contacts-3.22.1-1.el7.ppc64le
words-3.0-22.el7.noarch
setroubleshoot-3.2.28-3.el7.ppc64le
iwl7265-firmware-22.0.7.0-56.el7.noarch
gnome-system-monitor-3.22.2-2.el7.ppc64le
man-pages-3.53-5.el7.noarch
librsvg2-devel-2.40.16-1.el7.ppc64le
gpg-pubkey-f4a80eb5-53a7ff4b
system-config-printer-udev-1.4.1-19.el7.ppc64le
gnome-calculator-3.22.3-1.el7.ppc64le
libgcc-4.8.5-16.el7_4.1.ppc64le
gvfs-afp-1.30.4-3.el7.ppc64le
cpp-4.8.5-16.el7_4.1.ppc64le
latencytop-0.5-13.el7.ppc64le
gcc-c++-4.8.5-16.el7_4.1.ppc64le
gtk3-immodule-xim-3.22.10-4.el7.ppc64le
mousetweaks-3.12.0-1.el7.ppc64le
qt3-MySQL-3.3.8b-51.el7.ppc64le
xvattr-1.3-27.el7.ppc64le
yum-langpacks-0.4.2-7.el7.noarch
rpm-build-4.11.3-25.el7.ppc64le
virt-install-1.4.1-7.el7.noarch
samba-client-4.6.2-8.el7.ppc64le
qt-odbc-4.8.5-13.el7.ppc64le
NetworkManager-tui-1.8.0-9.el7.ppc64le
avahi-0.6.31-17.el7.ppc64le
httpd-manual-2.4.6-67.el7.centos.noarch
PackageKit-gstreamer-plugin-1.1.5-1.el7.centos.ppc64le
tuned-2.8.0-5.el7.noarch
qemu-guest-agent-2.8.0-2.el7.ppc64le
smartmontools-6.2-8.el7.ppc64le
openssh-server-7.4p1-11.el7.ppc64le
dracut-config-rescue-033-502.el7.ppc64le
openlmi-providers-devel-0.5.0-4.el7.ppc64le
oprofile-0.9.9-22.el7.ppc64le
perl-homedir-1.008010-4.el7.noarch
libgudev1-devel-219-42.el7.ppc64le
sudo-1.8.19p2-10.el7.ppc64le
libacl-devel-2.2.51-12.el7.ppc64le
perl-XML-Twig-3.44-2.el7.noarch
crash-trace-command-2.0-12.el7.ppc64le
crash-gcore-command-1.3.1-0.el7.ppc64le
libgnome-keyring-devel-3.12.0-1.el7.ppc64le
binutils-devel-2.25.1-31.base.el7.ppc64le
libcap-ng-devel-0.7.5-4.el7.ppc64le
bash-completion-2.1-6.el7.noarch
dstat-0.7.2-12.el7.noarch
wget-1.14-15.el7.ppc64le
gpg-pubkey-352c64e5-52ae6884
certmonger-0.78.4-3.el7.ppc64le
libatomic-static-4.8.5-16.el7.ppc64le
libicu-devel-50.1.2-15.el7.ppc64le
caribou-0.4.21-1.el7.ppc64le
grub2-common-2.02-0.64.el7.centos.noarch
plymouth-graphics-libs-0.8.9-0.28.20140113.el7.centos.ppc64le
kernel-3.10.0-693.el7.ppc64le
perl-Perl-OSType-1.003-3.el7.noarch
libvirt-daemon-3.2.0-14.el7.ppc64le
ledmon-0.80-2.el7.ppc64le
gupnp-av-0.12.10-1.el7.ppc64le
cups-1.6.3-29.el7.ppc64le
mozilla-filesystem-1.9-11.el7.ppc64le
libqmi-utils-1.16.0-1.el7.ppc64le
anaconda-core-21.48.22.121-1.el7.centos.ppc64le
perl-JSON-PP-2.27202-2.el7.noarch
libvirt-client-3.2.0-14.el7.ppc64le
numactl-devel-2.0.9-6.el7_2.ppc64le
cups-client-1.6.3-29.el7.ppc64le
mutter-3.22.3-11.el7.ppc64le
ipa-common-4.5.0-20.el7.centos.noarch
glibc-devel-2.17-196.el7.ppc64le
firefox-52.2.0-2.el7.centos.ppc64le
perl-Params-Check-0.38-2.el7.noarch
virt-manager-common-1.4.1-7.el7.noarch
indent-2.2.11-13.el7.ppc64le
python-linux-procfs-0.4.9-3.el7.noarch
gnome-session-3.22.3-4.el7.ppc64le
adwaita-cursor-theme-3.22.0-1.el7.noarch
perl-Archive-Extract-0.68-3.el7.noarch
gnome-initial-setup-3.22.1-4.el7.ppc64le
perl-IO-Compress-2.061-2.el7.noarch
geoclue2-2.4.5-1.el7.ppc64le
khmeros-base-fonts-5.0-17.el7.noarch
python-tempita-0.5.1-6.el7.noarch
gnome-online-accounts-3.22.5-1.el7.ppc64le
nhn-nanum-fonts-common-3.020-9.el7.noarch
gobject-introspection-devel-1.50.0-1.el7.ppc64le
rhythmbox-3.4.1-1.el7.ppc64le
libavc1394-0.5.3-14.el7.ppc64le
telepathy-gabble-0.18.1-4.el7.ppc64le
stix-fonts-1.1.0-5.el7.noarch
python-javapackages-3.4.1-11.el7.noarch
gnome-packagekit-installer-3.22.1-2.el7.ppc64le
mesa-filesystem-17.0.1-6.20170307.el7.ppc64le
konkretcmpi-python-0.9.1-5.el7.ppc64le
libsane-hpaio-3.15.9-3.el7.ppc64le
copy-jdk-configs-2.2-3.el7.noarch
usb_modeswitch-2.4.0-5.el7.ppc64le
nhn-nanum-gothic-fonts-3.020-9.el7.noarch
pytz-2016.10-2.el7.noarch
librsvg2-tools-2.40.16-1.el7.ppc64le
bash-4.2.46-28.el7.ppc64le
libreport-plugin-bugzilla-2.1.11-38.el7.centos.ppc64le
kde-workspace-devel-4.11.19-8.el7.ppc64le
libdb-devel-5.3.21-20.el7.ppc64le
fxload-2002_04_11-16.el7.ppc64le
google-crosextra-caladea-fonts-1.002-0.4.20130214.el7.noarch
python-pycparser-2.14-1.el7.noarch
libtimezonemap-0.4.4-1.el7.ppc64le
libcom_err-1.42.9-10.el7.ppc64le
frei0r-plugins-1.3-13.el7.ppc64le
ibus-m17n-1.3.4-13.el7.ppc64le
libcdio-paranoia-10.2+0.90-11.el7.ppc64le
netcf-libs-0.2.8-4.el7.ppc64le
lohit-punjabi-fonts-2.5.3-2.el7.noarch
cmpi-bindings-pywbem-0.9.5-6.el7.ppc64le
at-spi2-core-devel-2.22.0-1.el7.ppc64le
xz-libs-5.2.2-1.el7.ppc64le
libasyncns-0.8-7.el7.ppc64le
libcanberra-devel-0.30-5.el7.ppc64le
coreutils-8.22-18.el7.ppc64le
sssd-ad-1.15.2-50.el7.ppc64le
doxygen-1.8.5-3.el7.ppc64le
httpd-tools-2.4.6-67.el7.centos.ppc64le
libspectre-0.2.8-1.el7.ppc64le
cyrus-sasl-lib-2.1.26-21.el7.ppc64le
rubygem-bigdecimal-1.2.0-30.el7.ppc64le
icedtea-web-1.6.2-4.el7.ppc64le
libarchive-3.1.2-10.el7_2.ppc64le
python-pyblock-0.53-6.el7.ppc64le
byacc-1.9.20130304-3.el7.ppc64le
wodim-1.1.11-23.el7.ppc64le
xorg-x11-drv-qxl-0.1.5-3.el7.ppc64le
elfutils-libelf-0.168-8.el7.ppc64le
rubygem-thor-0.19.1-1.el7.noarch
file-roller-nautilus-3.22.3-1.el7.ppc64le
pkgconfig-0.27.1-4.el7.ppc64le
setroubleshoot-server-3.2.28-3.el7.ppc64le
iwl2030-firmware-18.168.6.1-56.el7.noarch
mailx-12.5-16.el7.ppc64le
xorg-x11-drv-fbdev-0.4.3-25.el7.ppc64le
libtevent-0.9.31-1.el7.ppc64le
policycoreutils-2.5-17.1.el7.ppc64le
java-1.7.0-openjdk-devel-1.7.0.141-2.6.10.5.el7.ppc64le
gsettings-desktop-schemas-3.22.0-1.el7.ppc64le
yum-3.4.3-154.el7.centos.noarch
iwl6000g2a-firmware-17.168.5.3-56.el7.noarch
perl-B-Lint-1.17-3.el7.noarch
gstreamer-plugins-bad-free-0.10.23-23.el7.ppc64le
libvorbis-1.3.3-8.el7.ppc64le
rarian-compat-0.8.1-11.el7.ppc64le
abrt-desktop-2.1.11-48.el7.centos.ppc64le
desktop-file-utils-0.23-1.el7.ppc64le
libiptcdata-1.0.4-11.el7.ppc64le
gpg-pubkey-f533f4fa-56585169
perl-DB_File-1.830-6.el7.ppc64le
compat-poppler022-qt-0.22.5-4.el7.ppc64le
libldb-1.1.29-1.el7.ppc64le
http-parser-2.7.1-1.el7.ppc64le
NetworkManager-libreswan-gnome-1.2.4-2.el7.ppc64le
centos-logos-70.0.6-3.el7.centos.noarch
libX11-common-1.6.5-1.el7.noarch
libstdc++-4.8.5-16.el7_4.1.ppc64le
perl-FCGI-0.74-8.el7.ppc64le
pango-devel-1.40.4-1.el7.ppc64le
libbasicobjects-0.1.1-27.el7.ppc64le
gtk2-immodule-xim-2.24.31-1.el7.ppc64le
libgnome-keyring-3.12.0-1.el7.ppc64le
libXrender-0.9.10-1.el7.ppc64le
libitm-devel-4.8.5-16.el7_4.1.ppc64le
perl-Business-ISBN-2.06-2.el7.noarch
freeglut-2.8.1-3.el7.ppc64le
device-mapper-1.02.140-8.el7.ppc64le
xdg-desktop-portal-gtk-0.5-1.el7.ppc64le
libudisks2-2.1.2-6.el7.ppc64le
pulseaudio-libs-10.0-3.el7.ppc64le
perl-HTTP-Daemon-6.01-5.el7.noarch
xorg-x11-xauth-1.0.9-1.el7.ppc64le
nettle-2.7.1-8.el7.ppc64le
polkit-pkla-compat-0.1-4.el7.ppc64le
startup-notification-devel-0.12-8.el7.ppc64le
genisoimage-1.1.11-23.el7.ppc64le
dbus-x11-1.6.12-17.el7.ppc64le
perl-Text-Soundex-3.04-4.el7.ppc64le
xdg-user-dirs-0.15-4.el7.ppc64le
jansson-2.10-1.el7.ppc64le
NetworkManager-glib-1.8.0-9.el7.ppc64le
rpm-sign-4.11.3-25.el7.ppc64le
gettext-0.19.8.1-2.el7.ppc64le
cairo-1.14.8-2.el7.ppc64le
perl-IO-Socket-SSL-1.94-6.el7.noarch
kdepimlibs-kxmlrpcclient-4.10.5-4.el7.ppc64le
libplist-1.12-3.el7.ppc64le
libwbclient-4.6.2-8.el7.ppc64le
cgdcbxd-1.0.2-7.el7.ppc64le
glib2-devel-2.50.3-3.el7.ppc64le
gdk-pixbuf2-devel-2.36.5-1.el7.ppc64le
theora-tools-1.1.1-8.el7.ppc64le
libkipi-4.10.5-3.el7.ppc64le
libmng-1.0.10-14.el7.ppc64le
abrt-addon-kerneloops-2.1.11-48.el7.centos.ppc64le
grub2-2.02-0.64.el7.centos.ppc64le
xz-devel-5.2.2-1.el7.ppc64le
xorg-x11-xkb-utils-7.7-12.el7.ppc64le
libverto-tevent-0.2.5-4.el7.ppc64le
libkdcraw-devel-4.10.5-4.el7.ppc64le
bzip2-1.0.6-13.el7.ppc64le
iputils-20160308-10.el7.ppc64le
cifs-utils-6.2-10.el7.ppc64le
libpinyin-0.9.93-4.el7.ppc64le
libao-1.1.0-8.el7.ppc64le
gdbm-devel-1.10-8.el7.ppc64le
kdepim-libs-4.10.5-6.el7.ppc64le
libxshmfence-1.2-1.el7.ppc64le
libstoragemgmt-1.4.0-3.el7.ppc64le
psacct-6.6.1-13.el7.ppc64le
pyliblzma-0.5.3-11.el7.ppc64le
libXcursor-devel-1.1.14-8.el7.ppc64le
hesiod-3.2.1-3.el7.ppc64le
okular-devel-4.10.5-4.el7.ppc64le
gsm-1.0.13-11.el7.ppc64le
telepathy-mission-control-5.16.3-3.el7.ppc64le
rng-tools-5-11.el7.ppc64le
python-chardet-2.2.1-1.el7_1.noarch
libcanberra-gtk3-0.30-5.el7.ppc64le
krb5-devel-1.15.1-8.el7.ppc64le
kdesdk-kompare-devel-4.10.5-6.el7.ppc64le
unixODBC-2.3.1-11.el7.ppc64le
dbus-devel-1.6.12-17.el7.ppc64le
kpatch-0.4.0-1.el7.noarch
graphite2-1.3.6-1.el7_2.ppc64le
nautilus-extensions-3.22.3-3.el7.ppc64le
libdb-utils-5.3.21-20.el7.ppc64le
sane-backends-libs-1.0.24-9.el7.ppc64le
zip-3.0-11.el7.ppc64le
mdadm-4.0-5.el7.ppc64le
memstomp-0.1.4-11.el7.ppc64le
libconfig-1.4.9-5.el7.ppc64le
clutter-gst2-2.0.18-1.el7.ppc64le
postgresql-libs-9.2.21-1.el7.ppc64le
gsound-1.0.2-2.el7.ppc64le
ilmbase-1.0.3-7.el7.ppc64le
udisks2-2.1.2-6.el7.ppc64le
perl-core-5.16.3-292.el7.ppc64le
pcsc-lite-libs-1.8.8-6.el7.ppc64le
gvnc-0.7.0-2.el7.ppc64le
qemu-img-1.5.3-141.el7.ppc64le
libappstream-glib-0.6.10-1.el7.ppc64le
sg3_utils-libs-1.37-12.el7.ppc64le
librdmacm-13-7.el7.ppc64le
adcli-0.8.1-3.el7.ppc64le
libnfnetlink-1.0.1-4.el7.ppc64le
colord-gtk-0.1.25-4.el7.ppc64le
libuser-python-0.60-7.el7_1.ppc64le
libfprint-0.5.0-4.el7.ppc64le
OpenEXR-libs-1.7.1-7.el7.ppc64le
attica-devel-0.4.2-1.el7.ppc64le
papi-devel-5.2.0-23.el7.ppc64le
m17n-lib-1.6.4-14.el7.ppc64le
qimageblitz-0.0.6-7.el7.ppc64le
python-urlgrabber-3.10-8.el7.noarch
pcp-selinux-3.11.8-7.el7.ppc64le
perl-Text-ParseWords-3.29-4.el7.noarch
apr-util-devel-1.5.2-6.el7.ppc64le
readline-devel-6.2-10.el7.ppc64le
python-kitchen-1.1.1-5.el7.noarch
gnome-abrt-0.3.4-8.el7.ppc64le
check-devel-0.9.9-5.el7.ppc64le
pulseaudio-gdm-hooks-10.0-3.el7.ppc64le
perl-Scalar-List-Utils-1.27-248.el7.ppc64le
abrt-addon-ccpp-2.1.11-48.el7.centos.ppc64le
gnome-icon-theme-extras-3.12.0-1.el7.noarch
python-slip-0.4.0-2.el7.noarch
brlapi-0.6.0-15.el7.ppc64le
qpdf-libs-5.0.1-3.el7.ppc64le
yelp-xsl-3.20.1-1.el7.noarch
perl-Storable-2.45-3.el7.ppc64le
libosinfo-1.0.0-1.el7.ppc64le
libcap-devel-2.22-9.el7.ppc64le
libepoxy-devel-1.3.1-1.el7.ppc64le
festival-1.96-28.el7.ppc64le
libusbx-1.0.20-1.el7.ppc64le
libvirt-daemon-driver-storage-disk-3.2.0-14.el7.ppc64le
perl-Test-Harness-3.28-3.el7.noarch
polkit-devel-0.112-12.el7_3.ppc64le
perl-Crypt-SSLeay-0.64-5.el7.ppc64le
libverto-devel-0.2.5-4.el7.ppc64le
caribou-gtk2-module-0.4.21-1.el7.ppc64le
vim-filesystem-7.4.160-2.el7.ppc64le
procps-ng-3.3.10-16.el7.ppc64le
NetworkManager-libreswan-1.2.4-2.el7.ppc64le
perl-Module-Metadata-1.000018-2.el7.noarch
pixman-devel-0.34.0-1.el7.ppc64le
patchutils-0.3.3-4.el7.ppc64le
filesystem-3.2-21.el7.ppc64le
cups-filesystem-1.6.3-29.el7.noarch
gettext-devel-0.19.8.1-2.el7.ppc64le
usbredir-0.7.1-2.el7.ppc64le
neon-0.30.0-3.el7.ppc64le
perl-LWP-MediaTypes-6.02-2.el7.noarch
python-qrcode-core-5.0.1-1.el7.noarch
hyphen-en-2.8.6-5.el7.noarch
gnu-free-fonts-common-20120503-8.el7.noarch
gtkmm30-3.22.0-1.el7.ppc64le
initial-setup-gui-0.3.9.40-1.el7.centos.ppc64le
libhugetlbfs-2.16-12.el7.ppc64le
subversion-libs-1.7.14-10.el7.ppc64le
perl-Encode-Locale-1.03-5.el7.noarch
python-inotify-0.9.4-4.el7.noarch
nano-2.3.1-10.el7.ppc64le
mobile-broadband-provider-info-1.20170310-1.el7.noarch
adwaita-gtk2-theme-3.22.2-1.el7.ppc64le
ipa-client-4.5.0-20.el7.centos.ppc64le
perl-IPC-Cmd-0.80-4.el7.noarch
libsoup-2.56.0-3.el7.ppc64le
perl-Term-UI-0.36-2.el7.noarch
python-setuptools-0.9.8-7.el7.noarch
dejavu-sans-mono-fonts-2.33-6.el7.noarch
bind-license-9.9.4-50.el7.noarch
webkitgtk4-jsc-2.14.7-2.el7.ppc64le
firewall-config-0.4.4.4-6.el7.noarch
perl-CPAN-1.9800-292.el7.noarch
gupnp-1.0.1-1.el7.ppc64le
boost-graph-1.53.0-27.el7.ppc64le
python-perf-3.10.0-693.el7.ppc64le
overpass-fonts-2.1-1.el7.noarch
thai-scalable-fonts-common-0.5.0-7.el7.noarch
webkitgtk4-jsc-devel-2.14.7-2.el7.ppc64le
pulseaudio-module-x11-10.0-3.el7.ppc64le
marisa-0.2.4-4.el7.ppc64le
gnutls-c++-3.3.26-9.el7.ppc64le
ca-certificates-2017.2.14-71.el7.noarch
python-idna-2.4-1.el7.noarch
strace-4.12-4.el7.ppc64le
nss-softokn-freebl-3.28.3-6.el7.ppc64le
vino-3.22.0-3.el7.ppc64le
libXaw-devel-1.0.13-4.el7.ppc64le
libreport-centos-2.1.11-38.el7.centos.ppc64le
alsa-utils-1.1.3-2.el7.ppc64le
libnl3-cli-3.2.28-4.el7.ppc64le
python-iniparse-0.4-9.el7.noarch
traceroute-2.0.22-2.el7.ppc64le
libselinux-2.5-11.el7.ppc64le
keybinder3-0.3.0-1.el7.ppc64le
kdepim-devel-4.10.5-6.el7.ppc64le
pakchois-0.4-10.el7.ppc64le
cryptsetup-python-1.7.4-3.el7.ppc64le
libjpeg-turbo-devel-1.2.90-5.el7.ppc64le
python-jwcrypto-0.2.1-1.el7.noarch
lohit-malayalam-fonts-2.5.3-2.el7.noarch
libpng-1.5.13-7.el7_2.ppc64le
freerdp-plugins-1.0.2-10.el7.ppc64le
ibus-chewing-1.4.4-14.el7.ppc64le
libfastjson-0.99.4-2.el7.ppc64le
libsss_sudo-1.15.2-50.el7.ppc64le
redhat-menus-12.0.2-8.el7.noarch
bind-libs-9.9.4-50.el7.ppc64le
gnu-free-sans-fonts-20120503-8.el7.noarch
libuuid-2.23.2-43.el7.ppc64le
festival-freebsoft-utils-0.10-7.el7.noarch
unique3-devel-3.0.2-8.el7.ppc64le
compat-poppler022-0.22.5-4.el7.ppc64le
sssd-proxy-1.15.2-50.el7.ppc64le
python-2.7.5-58.el7.ppc64le
libwvstreams-4.6.1-11.el7.ppc64le
lrzsz-0.12.20-36.el7.ppc64le
sqlite-3.7.17-8.el7.ppc64le
xorg-x11-server-common-1.19.3-11.el7.ppc64le
sushi-3.21.91-1.el7.ppc64le
rubygem-psych-2.0.0-30.el7.ppc64le
gnupg2-2.0.22-4.el7.ppc64le
libmount-2.23.2-43.el7.ppc64le
nss-3.28.4-8.el7.ppc64le
iwl3160-firmware-22.0.7.0-56.el7.noarch
libnl3-3.2.28-4.el7.ppc64le
xorg-x11-drv-ati-7.7.1-3.20160928git3fc839ff.el7.ppc64le
evolution-mapi-3.22.6-1.el7.ppc64le
libservicelog-1.1.17-2.el7.ppc64le
perl-PAR-Dist-0.49-2.el7.noarch
dbus-glib-0.100-7.el7.ppc64le
docbook-style-xsl-1.78.1-3.el7.noarch
iwl100-firmware-39.31.5.1-56.el7.noarch
libxslt-1.1.28-5.el7.ppc64le
junit-4.11-8.el7.noarch
gnome-session-xsession-3.22.3-4.el7.ppc64le
selinux-policy-3.13.1-166.el7.noarch
PackageKit-1.1.5-1.el7.centos.ppc64le
zlib-devel-1.2.7-17.el7.ppc64le
perl-libxml-perl-0.08-19.el7.noarch
iwl4965-firmware-228.61.2.24-56.el7.noarch
p11-kit-0.23.5-3.el7.ppc64le
spice-gtk3-0.33-6.el7.ppc64le
pygobject3-devel-3.22.0-1.el7.ppc64le
systemtap-runtime-3.1-3.el7.ppc64le
nss-softokn-freebl-devel-3.28.3-6.el7.ppc64le
libgee-0.18.1-1.el7.ppc64le
perl-PlRPC-0.2020-14.el7.noarch
python34-libs-3.4.5-4.el7.ppc64le
json-c-0.11-4.el7_0.ppc64le
plymouth-plugin-two-step-0.8.9-0.28.20140113.el7.centos.ppc64le
gnome-font-viewer-3.22.0-1.el7.ppc64le
sssd-client-1.15.2-50.el7.ppc64le
libXext-1.3.3-3.el7.ppc64le
nspr-devel-4.13.1-1.0.el7_3.ppc64le
perl-Algorithm-Diff-1.1902-17.el7.noarch
libgomp-4.8.5-16.el7_4.1.ppc64le
tcp_wrappers-libs-7.6-77.el7.ppc64le
libgdata-devel-0.17.8-1.el7.ppc64le
gnome-screenshot-3.22.0-1.el7.ppc64le
mtdev-1.1.5-5.el7.ppc64le
mesa-libEGL-17.0.1-6.20170307.el7.ppc64le
libpng-devel-1.5.13-7.el7_2.ppc64le
perl-Digest-SHA1-2.13-9.el7.ppc64le
libdhash-0.4.3-27.el7.ppc64le
phonon-devel-4.6.0-10.el7.ppc64le
qt3-ODBC-3.3.8b-51.el7.ppc64le
systemd-219-42.el7.ppc64le
libXinerama-1.1.3-2.1.el7.ppc64le
gdb-7.6.1-100.el7.ppc64le
perl-File-Listing-6.04-7.el7.noarch
jasper-libs-1.900.1-31.el7.ppc64le
ibus-setup-1.5.3-13.el7.noarch
spice-vdagent-0.14.0-14.el7.ppc64le
PackageKit-glib-1.1.5-1.el7.centos.ppc64le
libXmu-1.1.2-2.el7.ppc64le
atkmm-2.24.2-1.el7.ppc64le
perl-Sys-Syslog-0.33-3.el7.ppc64le
libXdmcp-1.1.2-6.el7.ppc64le
kdelibs-devel-4.14.8-6.el7_3.ppc64le
targetcli-2.1.fb46-1.el7.noarch
libcgroup-0.41-13.el7.ppc64le
qt-x11-4.8.5-13.el7.ppc64le
libxcb-devel-1.12-1.el7.ppc64le
perl-HTML-Format-2.10-7.el7.noarch
libsss_idmap-1.15.2-50.el7.ppc64le
kactivities-4.10.5-3.el7.ppc64le
httpd-devel-2.4.6-67.el7.centos.ppc64le
abrt-2.1.11-48.el7.centos.ppc64le
java-1.7.0-openjdk-headless-1.7.0.141-2.6.10.5.el7.ppc64le
apr-devel-1.4.8-3.el7.ppc64le
cdparanoia-10.2-17.el7.ppc64le
libpcap-1.5.3-9.el7.ppc64le
libkworkspace-4.11.19-8.el7.ppc64le
dbus-glib-devel-0.100-7.el7.ppc64le
crontabs-1.11-6.20121102git.el7.noarch
libXi-devel-1.7.9-1.el7.ppc64le
gnome-menus-3.13.3-3.el7.ppc64le
libieee1284-devel-0.2.11-15.el7.ppc64le
kmod-libs-20-15.el7.ppc64le
kde-runtime-4.10.5-8.el7.ppc64le
mod_ssl-2.4.6-67.el7.centos.ppc64le
cyrus-sasl-2.1.26-21.el7.ppc64le
libXScrnSaver-1.2.2-6.1.el7.ppc64le
python-augeas-0.5.0-2.el7.noarch
LibRaw-0.14.8-5.el7.20120830git98d925.ppc64le
hyphen-2.8.6-5.el7.ppc64le
kdenetwork-krdc-libs-4.10.5-8.el7_0.ppc64le
opal-prd-5.5.0-1.el7.ppc64le
rdma-core-13-7.el7.ppc64le
pulseaudio-10.0-3.el7.ppc64le
python-sssdconfig-1.15.2-50.el7.noarch
libisofs-1.2.8-4.el7.ppc64le
libverto-0.2.5-4.el7.ppc64le
kdesdk-kmtrace-devel-4.10.5-6.el7.ppc64le
systemd-devel-219-42.el7.ppc64le
mesa-dri-drivers-17.0.1-6.20170307.el7.ppc64le
clutter-1.26.0-1.el7.ppc64le
fipscheck-1.4.1-6.el7.ppc64le
dwz-0.11-3.el7.ppc64le
boost-regex-1.53.0-27.el7.ppc64le
libXaw-1.0.13-4.el7.ppc64le
systemd-python-219-42.el7.ppc64le
zenity-3.22.0-1.el7.ppc64le
boost-atomic-1.53.0-27.el7.ppc64le
rpm-libs-4.11.3-25.el7.ppc64le
GeoIP-1.5.0-11.el7.ppc64le
libksane-devel-4.10.5-4.el7.ppc64le
rubygem-bundler-1.7.8-3.el7.noarch
git-1.8.3.1-11.el7.ppc64le
brasero-libs-3.12.1-2.el7.ppc64le
c-ares-1.10.0-3.el7.ppc64le
libnfsidmap-0.25-17.el7.ppc64le
cdparanoia-libs-10.2-17.el7.ppc64le
tk-8.5.13-6.el7.ppc64le
libhugetlbfs-devel-2.16-12.el7.ppc64le
NetworkManager-wifi-1.8.0-9.el7.ppc64le
libcanberra-gtk2-0.30-5.el7.ppc64le
hostname-3.13-3.el7.ppc64le
redland-1.0.16-6.el7.ppc64le
libdaemon-0.14-7.el7.ppc64le
brasero-3.12.1-2.el7.ppc64le
cups-devel-1.6.3-29.el7.ppc64le
qca2-2.0.3-7.el7.ppc64le
pangomm-2.40.1-1.el7.ppc64le
libnetfilter_conntrack-1.0.6-1.el7_3.ppc64le
sip-devel-4.14.6-4.el7.ppc64le
perl-parent-0.225-244.el7.noarch
libkkc-0.3.1-9.el7.ppc64le
crypto-utils-2.4.1-42.el7.ppc64le
lvm2-2.02.171-8.el7.ppc64le
poppler-glib-0.26.5-16.el7.ppc64le
crash-7.1.9-2.el7.ppc64le
libbluray-0.2.3-5.el7.ppc64le
perl-Filter-1.49-3.el7.ppc64le
control-center-3.22.2-5.el7.ppc64le
c-ares-devel-1.10.0-3.el7.ppc64le
sysstat-10.1.5-12.el7.ppc64le
mesa-libGL-devel-17.0.1-6.20170307.el7.ppc64le
python-pwquality-1.2.3-4.el7.ppc64le
liblouis-python-2.5.2-10.el7.noarch
perl-PathTools-3.40-5.el7.ppc64le
gnome-shell-extension-apps-menu-3.22.2-10.el7.noarch
hunspell-devel-1.3.2-15.el7.ppc64le
policycoreutils-python-2.5-17.1.el7.ppc64le
libwnck3-3.20.1-1.el7.ppc64le
gsettings-desktop-schemas-devel-3.22.0-1.el7.ppc64le
lsof-4.87-4.el7.ppc64le
perl-Getopt-Long-2.40-2.el7.noarch
nfs-utils-1.3.0-0.48.el7.ppc64le
mtr-0.85-7.el7.ppc64le
autofs-5.0.7-69.el7.ppc64le
cairo-devel-1.14.8-2.el7.ppc64le
xorg-x11-xbitmaps-1.1.1-6.el7.noarch
libreport-2.1.11-38.el7.centos.ppc64le
perl-XML-Parser-2.41-10.el7.ppc64le
libvirt-daemon-driver-storage-3.2.0-14.el7.ppc64le
python2-caribou-0.4.21-1.el7.noarch
fontpackages-filesystem-1.44-8.el7.noarch
perl-Test-Pod-1.48-3.el7.noarch
libuuid-devel-2.23.2-43.el7.ppc64le
perl-Package-Constants-0.02-292.el7.noarch
gnutls-3.3.26-9.el7.ppc64le
libreport-cli-2.1.11-38.el7.centos.ppc64le
gettext-common-devel-0.19.8.1-2.el7.noarch
cups-filters-1.0.35-22.el7.ppc64le
xkeyboard-config-2.20-1.el7.noarch
bison-3.0.4-1.el7.ppc64le
compat-libcolord1-1.0.4-1.el7.ppc64le
perl-Digest-MD5-2.52-3.el7.ppc64le
gnutls-dane-3.3.26-9.el7.ppc64le
libusbx-devel-1.0.20-1.el7.ppc64le
initial-setup-0.3.9.40-1.el7.centos.ppc64le
libchamplain-gtk-0.12.15-1.el7.ppc64le
libreport-filesystem-2.1.11-38.el7.centos.ppc64le
m17n-contrib-1.1.14-3.el7.noarch
newt-python-0.52.15-4.el7.ppc64le
perl-Locale-Maketext-1.23-3.el7.noarch
libvirt-daemon-driver-nodedev-3.2.0-14.el7.ppc64le
perl-ExtUtils-Install-1.58-292.el7.noarch
libvirt-3.2.0-14.el7.ppc64le
gnome-themes-standard-3.22.2-1.el7.ppc64le
gl-manpages-1.1-7.20130122.el7.noarch
lohit-gujarati-fonts-2.5.3-2.el7.noarch
python-backports-ssl_match_hostname-3.4.0.2-4.el7.noarch
perl-local-lib-1.008010-4.el7.noarch
rest-0.8.0-1.el7.ppc64le
perl-Module-Build-0.40.05-2.el7.noarch
ibus-kkc-1.5.18-7.el7.ppc64le
webkitgtk4-plugin-process-gtk2-2.14.7-2.el7.ppc64le
basesystem-10.0-7.el7.centos.noarch
madan-fonts-2.000-11.el7.noarch
python-beaker-1.5.4-10.el7.noarch
boost-locale-1.53.0-27.el7.ppc64le
dleyna-core-0.5.0-1.el7.ppc64le
liberation-sans-fonts-1.07.2-15.el7.noarch
tk-devel-8.5.13-6.el7.ppc64le
gnome-packagekit-updater-3.22.1-2.el7.ppc64le
cim-schema-2.33.0-6.el7.noarch
lohit-assamese-fonts-2.5.3-2.el7.noarch
tagsoup-1.2.1-8.el7.noarch
libshout-2.2.2-11.el7.ppc64le
ntpdate-4.2.6p5-25.el7.centos.2.ppc64le
libproxy-0.4.11-10.el7.ppc64le
gvfs-gphoto2-1.30.4-3.el7.ppc64le
gspell-1.2.3-1.el7.ppc64le
sil-nuosu-fonts-2.1.1-5.el7.noarch
python-ntplib-0.3.2-1.el7.noarch
bc-1.06.95-13.el7.ppc64le
libvirt-daemon-driver-lxc-3.2.0-14.el7.ppc64le
libreport-anaconda-2.1.11-38.el7.centos.ppc64le
kdepimlibs-devel-4.10.5-4.el7.ppc64le
unique3-3.0.2-8.el7.ppc64le
freetype-2.4.11-15.el7.ppc64le
lohit-marathi-fonts-2.5.3-2.el7.noarch
python2-cryptography-1.7.2-1.el7.ppc64le
libss-1.42.9-10.el7.ppc64le
kernel-tools-libs-3.10.0-693.el7.ppc64le
libsysfs-2.1.0-16.el7.ppc64le
ibus-hangul-1.4.2-10.el7.ppc64le
freerdp-1.0.2-10.el7.ppc64le
popt-1.13-16.el7.ppc64le
open-sans-fonts-1.10-1.el7.noarch
bind-libs-lite-9.9.4-50.el7.ppc64le
lksctp-tools-1.0.17-2.el7.ppc64le
sssd-common-pac-1.15.2-50.el7.ppc64le
libtiff-4.0.3-27.el7_3.ppc64le
gnome-desktop3-devel-3.22.2-2.el7.ppc64le
cdrdao-1.2.3-20.el7.ppc64le
expat-2.1.0-10.el7_3.ppc64le
latrace-0.5.11-6.1.el7.ppc64le
perl-Net-SSLeay-1.55-6.el7.ppc64le
cups-libs-1.6.3-29.el7.ppc64le
dmraid-events-1.0.0.rc16-28.el7.ppc64le
rubygem-io-console-0.4.2-30.el7.ppc64le
gutenprint-cups-5.2.9-18.el7.ppc64le
xorg-x11-server-Xorg-1.19.3-11.el7.ppc64le
libtalloc-2.1.9-1.el7.ppc64le
iwl6000g2b-firmware-17.168.5.2-56.el7.noarch
nss-sysinit-3.28.4-8.el7.ppc64le
glib2-2.50.3-3.el7.ppc64le
rpm-python-4.11.3-25.el7.ppc64le
ustr-1.0.4-16.el7.ppc64le
gucharmap-3.18.2-1.el7.ppc64le
xorg-x11-drv-dummy-0.3.7-1.el7.ppc64le
libogg-1.3.0-7.el7.ppc64le
iwl6000-firmware-9.221.4.1-56.el7.noarch
docbook-dtds-1.0-60.el7.noarch
xorg-x11-proto-devel-7.7-20.el7.noarch
pygpgme-0.3-9.el7.ppc64le
openssh-7.4p1-11.el7.ppc64le
cheese-3.22.1-1.el7.ppc64le
jline-1.0-8.el7.noarch
libcap-2.22-9.el7.ppc64le
ivtv-firmware-20080701-26.el7.noarch
perl-Pod-LaTeX-0.61-2.el7.noarch
enchant-1.6.0-8.el7.ppc64le
python2-ipalib-4.5.0-20.el7.centos.noarch
tog-pegasus-libs-2.14.1-5.el7.ppc64le
firstboot-19.12-1.el7.ppc64le
gupnp-dlna-0.10.5-1.el7.ppc64le
which-2.20-7.el7.ppc64le
epel-release-7-9.noarch
perl-Net-Daemon-0.48-5.el7.noarch
libcroco-0.6.11-1.el7.ppc64le
liboauth-devel-0.9.7-4.el7.ppc64le
libhangul-0.1.0-8.el7.ppc64le
eog-3.20.5-2.el7.ppc64le
plymouth-theme-charge-0.8.9-0.28.20140113.el7.centos.ppc64le
libcollection-0.6.2-27.el7.ppc64le
libgfortran-4.8.5-16.el7_4.1.ppc64le
perl-Locale-Codes-3.26-2.el7.noarch
pygobject2-2.28.6-11.el7.ppc64le
libXdamage-1.1.4-4.1.el7.ppc64le
libestr-0.1.9-2.el7.ppc64le
PackageKit-gtk3-module-1.1.5-1.el7.centos.ppc64le
libgweather-devel-3.20.4-1.el7.ppc64le
xz-5.2.2-1.el7.ppc64le
perl-WWW-RobotRules-6.02-5.el7.noarch
libICE-devel-1.0.9-9.el7.ppc64le
libXft-2.3.2-2.el7.ppc64le
cryptsetup-libs-1.7.4-3.el7.ppc64le
alsa-plugins-pulseaudio-1.1.1-1.el7.ppc64le
glx-utils-8.2.0-3.el7.ppc64le
speex-1.2-0.19.rc1.el7.ppc64le
perl-HTTP-Negotiate-6.01-5.el7.noarch
libtirpc-0.2.4-0.10.el7.ppc64le
pulseaudio-libs-glib2-10.0-3.el7.ppc64le
mesa-libgbm-17.0.1-6.20170307.el7.ppc64le
pulseaudio-libs-devel-10.0-3.el7.ppc64le
imsettings-1.6.3-9.el7.ppc64le
hunspell-en-US-0.20121024-6.el7.noarch
perl-IO-Socket-IP-0.21-4.el7.noarch
nss-util-devel-3.28.4-3.el7.ppc64le
libXxf86vm-1.1.4-1.el7.ppc64le
hwdata-0.252-8.6.el7.ppc64le
kernel-tools-3.10.0-693.el7.ppc64le
nepomuk-core-libs-4.10.5-5.el7.ppc64le
exiv2-libs-0.23-6.el7.ppc64le
perl-libwww-perl-6.05-2.el7.noarch
p11-kit-devel-0.23.5-3.el7.ppc64le
librsvg2-2.40.16-1.el7.ppc64le
libsmbclient-4.6.2-8.el7.ppc64le
abrt-console-notification-2.1.11-48.el7.centos.ppc64le
kdesdk-okteta-libs-4.10.5-6.el7.ppc64le
boost-chrono-1.53.0-27.el7.ppc64le
iw-4.3-1.el7.ppc64le
libcom_err-devel-1.42.9-10.el7.ppc64le
akonadi-1.9.2-4.el7.ppc64le
accountsservice-libs-0.6.45-2.el7.ppc64le
wvdial-1.61-9.el7.ppc64le
libkexiv2-devel-4.10.5-3.el7.ppc64le
libmpc-1.0.1-3.el7.ppc64le
lm_sensors-devel-3.4.0-4.20160601gitf9185e5.el7.ppc64le
meanwhile-1.1.0-12.el7.ppc64le
libXt-devel-1.1.5-3.el7.ppc64le
plymouth-scripts-0.8.9-0.28.20140113.el7.centos.ppc64le
mod_fcgid-2.3.9-4.el7.ppc64le
kdepim-runtime-libs-4.10.5-3.el7.ppc64le
mesa-libglapi-17.0.1-6.20170307.el7.ppc64le
hunspell-en-GB-0.20121024-6.el7.noarch
sip-4.14.6-4.el7.ppc64le
cairomm-1.12.0-1.el7.ppc64le
abrt-addon-xorg-2.1.11-48.el7.centos.ppc64le
ModemManager-1.6.0-2.el7.ppc64le
kdenetwork-krdc-devel-4.10.5-8.el7_0.ppc64le
libieee1284-0.2.11-15.el7.ppc64le
highlight-3.13-3.el7.ppc64le
pyOpenSSL-0.13.1-3.el7.ppc64le
gtk-update-icon-cache-3.22.10-4.el7.ppc64le
NetworkManager-1.8.0-9.el7.ppc64le
crda-3.13_2016.02.08-1.el7.ppc64le
kdesdk-kompare-libs-4.10.5-6.el7.ppc64le
newt-0.52.15-4.el7.ppc64le
xcb-util-0.4.0-2.el7.ppc64le
automake-1.13.4-3.el7.noarch
libgweather-3.20.4-1.el7.ppc64le
lockdev-1.0.4-0.13.20111007git.el7.ppc64le
man-db-2.6.3-9.el7.ppc64le
gd-2.0.35-26.el7.ppc64le
exempi-2.2.0-8.el7.ppc64le
curl-7.29.0-42.el7.ppc64le
snappy-1.1.0-3.el7.ppc64le
libreport-gtk-2.1.11-38.el7.centos.ppc64le
unbound-libs-1.4.20-34.el7.ppc64le
tcpdump-4.9.0-5.el7.ppc64le
sane-backends-drivers-scanners-1.0.24-9.el7.ppc64le
libedit-3.0-12.20121213cvs.el7.ppc64le
liboauth-0.9.7-4.el7.ppc64le
libmpcdec-1.2.6-12.el7.ppc64le
libnm-gtk-1.8.0-3.el7.ppc64le
grub2-tools-extra-2.02-0.64.el7.centos.ppc64le
libdmx-1.1.3-3.el7.ppc64le
wavpack-4.60.1-9.el7.ppc64le
rasqal-0.9.30-4.el7.ppc64le
autogen-libopts-5.18-5.el7.ppc64le
gnome-bluetooth-libs-3.20.1-1.el7.ppc64le
qt-settings-19-23.5.el7.centos.noarch
libxslt-devel-1.1.28-5.el7.ppc64le
grilo-plugins-0.3.4-1.el7.ppc64le
SDL-1.2.15-14.el7.ppc64le
sip-macros-4.14.6-4.el7.ppc64le
iptables-1.4.21-18.0.1.el7.centos.ppc64le
gstreamer-plugins-good-0.10.31-13.el7.ppc64le
qjson-0.8.1-4.el7.ppc64le
perl-Test-Pod-Coverage-1.08-21.el7.noarch
pcp-conf-3.11.8-7.el7.ppc64le
perl-podlators-2.5.1-3.el7.noarch
libcurl-devel-7.29.0-42.el7.ppc64le
graphite2-devel-1.3.6-1.el7_2.ppc64le
pygtk2-2.24.0-9.el7.ppc64le
kexec-tools-2.0.14-17.el7.ppc64le
iptables-devel-1.4.21-18.0.1.el7.centos.ppc64le
gnome-shell-3.22.3-17.el7.ppc64le
perl-Carp-1.26-244.el7.noarch
liblouis-2.5.2-10.el7.ppc64le
dvd+rw-tools-7.1-15.el7.ppc64le
ptlib-2.10.10-6.el7.ppc64le
samba-common-libs-4.6.2-8.el7.ppc64le
gvfs-devel-1.30.4-3.el7.ppc64le
gnome-shell-extension-launch-new-instance-3.22.2-10.el7.noarch
perl-libs-5.16.3-292.el7.ppc64le
libselinux-utils-2.5-11.el7.ppc64le
libsepol-devel-2.5-6.el7.ppc64le
festival-lib-1.96-28.el7.ppc64le
oddjob-0.31.5-4.el7.ppc64le
latencytop-tui-0.5-13.el7.ppc64le
libvirt-daemon-driver-storage-core-3.2.0-14.el7.ppc64le
perl-Data-Dumper-2.145-3.el7.ppc64le
libreport-python-2.1.11-38.el7.centos.ppc64le
libical-devel-1.0.1-1.el7.ppc64le
libmx-1.4.7-10.el7.ppc64le
cups-pk-helper-0.2.6-2.el7.ppc64le
=== TEST BEGIN ===
Install prefix /var/tmp/patchew-tester-tmp-r4540qbd/src/install
BIOS directory /var/tmp/patchew-tester-tmp-r4540qbd/src/install/share/qemu
firmware path /var/tmp/patchew-tester-tmp-r4540qbd/src/install/share/qemu-firmware
binary directory /var/tmp/patchew-tester-tmp-r4540qbd/src/install/bin
library directory /var/tmp/patchew-tester-tmp-r4540qbd/src/install/lib
module directory /var/tmp/patchew-tester-tmp-r4540qbd/src/install/lib/qemu
libexec directory /var/tmp/patchew-tester-tmp-r4540qbd/src/install/libexec
include directory /var/tmp/patchew-tester-tmp-r4540qbd/src/install/include
config directory /var/tmp/patchew-tester-tmp-r4540qbd/src/install/etc
local state directory /var/tmp/patchew-tester-tmp-r4540qbd/src/install/var
Manual directory /var/tmp/patchew-tester-tmp-r4540qbd/src/install/share/man
ELF interp prefix /usr/gnemul/qemu-%M
Source path /var/tmp/patchew-tester-tmp-r4540qbd/src
GIT binary git
GIT submodules ui/keycodemapdb dtc capstone
C compiler cc
Host C compiler cc
C++ compiler c++
Objective-C compiler cc
ARFLAGS rv
CFLAGS -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -g
QEMU_CFLAGS -I/usr/include/pixman-1 -I$(SRC_PATH)/dtc/libfdt -Werror -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -DNCURSES_WIDECHAR -m64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong -Wno-missing-braces -I/usr/include/p11-kit-1 -I/usr/include/libpng15 -I$(SRC_PATH)/capstone/include
LDFLAGS -Wl,--warn-common -m64 -g
make make
install install
python python -B
smbd /usr/sbin/smbd
module support no
host CPU ppc64
host big endian no
target list aarch64-softmmu alpha-softmmu arm-softmmu cris-softmmu i386-softmmu lm32-softmmu m68k-softmmu microblazeel-softmmu microblaze-softmmu mips64el-softmmu mips64-softmmu mipsel-softmmu mips-softmmu moxie-softmmu nios2-softmmu or1k-softmmu ppc64-softmmu ppcemb-softmmu ppc-softmmu s390x-softmmu sh4eb-softmmu sh4-softmmu sparc64-softmmu sparc-softmmu tricore-softmmu unicore32-softmmu x86_64-softmmu xtensaeb-softmmu xtensa-softmmu aarch64_be-linux-user aarch64-linux-user alpha-linux-user armeb-linux-user arm-linux-user cris-linux-user hppa-linux-user i386-linux-user m68k-linux-user microblazeel-linux-user microblaze-linux-user mips64el-linux-user mips64-linux-user mipsel-linux-user mips-linux-user mipsn32el-linux-user mipsn32-linux-user nios2-linux-user or1k-linux-user ppc64abi32-linux-user ppc64le-linux-user ppc64-linux-user ppc-linux-user s390x-linux-user sh4eb-linux-user sh4-linux-user sparc32plus-linux-user sparc64-linux-user sparc-linux-user tilegx-linux-user x86_64-linux-user
gprof enabled no
sparse enabled no
strip binaries yes
profiler no
static build no
SDL support yes (1.2.15)
GTK support yes (3.22.10)
GTK GL support no
VTE support no
TLS priority NORMAL
GNUTLS support yes
GNUTLS rnd yes
libgcrypt no
libgcrypt kdf no
nettle yes (2.7.1)
nettle kdf yes
libtasn1 yes
curses support yes
virgl support no
curl support yes
mingw32 support no
Audio drivers oss
Block whitelist (rw)
Block whitelist (ro)
VirtFS support yes
Multipath support no
VNC support yes
VNC SASL support yes
VNC JPEG support yes
VNC PNG support yes
xen support no
brlapi support no
bluez support no
Documentation no
PIE no
vde support no
netmap support no
Linux AIO support yes
ATTR/XATTR support yes
Install blobs yes
KVM support yes
HAX support no
HVF support no
TCG support yes
TCG debug enabled no
TCG interpreter no
malloc trim support yes
RDMA support yes
fdt support yes
preadv support yes
fdatasync yes
madvise yes
posix_madvise yes
libcap-ng support yes
vhost-net support yes
vhost-scsi support yes
vhost-vsock support yes
vhost-user support yes
Trace backends log
spice support no
rbd support no
xfsctl support no
smartcard support no
libusb yes
usb net redir no
OpenGL support no
OpenGL dmabufs no
libiscsi support no
libnfs support no
build guest agent yes
QGA VSS support no
QGA w32 disk info no
QGA MSI support no
seccomp support no
coroutine backend ucontext
coroutine pool yes
debug stack usage no
crypto afalg no
GlusterFS support no
gcov gcov
gcov enabled no
TPM support yes
libssh2 support no
TPM passthrough no
TPM emulator yes
QOM debugging yes
Live block migration yes
lzo support no
snappy support no
bzip2 support yes
NUMA host support yes
libxml2 yes
tcmalloc support no
jemalloc support no
avx2 optimization no
replication support yes
VxHS block device no
capstone git
WARNING: Use of SDL 1.2 is deprecated and will be removed in
WARNING: future releases. Please switch to using SDL 2.0
GEN aarch64-softmmu/config-devices.mak.tmp
GEN alpha-softmmu/config-devices.mak.tmp
GEN arm-softmmu/config-devices.mak.tmp
GEN i386-softmmu/config-devices.mak.tmp
GEN lm32-softmmu/config-devices.mak.tmp
GEN cris-softmmu/config-devices.mak.tmp
GEN m68k-softmmu/config-devices.mak.tmp
GEN microblazeel-softmmu/config-devices.mak.tmp
GEN microblaze-softmmu/config-devices.mak.tmp
GEN mips64-softmmu/config-devices.mak.tmp
GEN mipsel-softmmu/config-devices.mak.tmp
GEN mips64el-softmmu/config-devices.mak.tmp
GEN mips-softmmu/config-devices.mak.tmp
GEN moxie-softmmu/config-devices.mak.tmp
GEN nios2-softmmu/config-devices.mak.tmp
GEN cris-softmmu/config-devices.mak
GEN ppcemb-softmmu/config-devices.mak.tmp
GEN ppc64-softmmu/config-devices.mak.tmp
GEN ppc-softmmu/config-devices.mak.tmp
GEN or1k-softmmu/config-devices.mak.tmp
GEN lm32-softmmu/config-devices.mak
GEN s390x-softmmu/config-devices.mak.tmp
GEN m68k-softmmu/config-devices.mak
GEN sh4-softmmu/config-devices.mak.tmp
GEN sh4eb-softmmu/config-devices.mak.tmp
GEN sparc64-softmmu/config-devices.mak.tmp
GEN microblaze-softmmu/config-devices.mak
GEN unicore32-softmmu/config-devices.mak.tmp
GEN tricore-softmmu/config-devices.mak.tmp
GEN sparc-softmmu/config-devices.mak.tmp
GEN microblazeel-softmmu/config-devices.mak
GEN aarch64-softmmu/config-devices.mak
GEN xtensaeb-softmmu/config-devices.mak.tmp
GEN moxie-softmmu/config-devices.mak
GEN or1k-softmmu/config-devices.mak
GEN x86_64-softmmu/config-devices.mak.tmp
GEN i386-softmmu/config-devices.mak
GEN alpha-softmmu/config-devices.mak
GEN s390x-softmmu/config-devices.mak
GEN aarch64_be-linux-user/config-devices.mak.tmp
GEN xtensa-softmmu/config-devices.mak.tmp
GEN arm-linux-user/config-devices.mak.tmp
GEN aarch64-linux-user/config-devices.mak.tmp
GEN cris-linux-user/config-devices.mak.tmp
GEN i386-linux-user/config-devices.mak.tmp
GEN hppa-linux-user/config-devices.mak.tmp
GEN m68k-linux-user/config-devices.mak.tmp
GEN microblaze-linux-user/config-devices.mak.tmp
GEN armeb-linux-user/config-devices.mak.tmp
GEN microblazeel-linux-user/config-devices.mak.tmp
GEN mips64-linux-user/config-devices.mak.tmp
GEN mips64el-linux-user/config-devices.mak.tmp
GEN mipsel-linux-user/config-devices.mak.tmp
GEN nios2-linux-user/config-devices.mak.tmp
GEN ppc64abi32-linux-user/config-devices.mak.tmp
GEN ppc64le-linux-user/config-devices.mak.tmp
GEN ppc64-linux-user/config-devices.mak.tmp
GEN arm-softmmu/config-devices.mak
GEN s390x-linux-user/config-devices.mak.tmp
GEN alpha-linux-user/config-devices.mak.tmp
GEN ppc-linux-user/config-devices.mak.tmp
GEN sh4eb-linux-user/config-devices.mak.tmp
GEN sparc32plus-linux-user/config-devices.mak.tmp
GEN sparc-linux-user/config-devices.mak.tmp
GEN unicore32-softmmu/config-devices.mak
GEN sparc64-linux-user/config-devices.mak.tmp
GEN x86_64-linux-user/config-devices.mak.tmp
GEN mips-linux-user/config-devices.mak.tmp
GEN config-host.h
GEN qmp-commands.h
GEN mipsn32el-linux-user/config-devices.mak.tmp
GEN tilegx-linux-user/config-devices.mak.tmp
GEN or1k-linux-user/config-devices.mak.tmp
GEN tricore-softmmu/config-devices.mak
GEN ppc64le-linux-user/config-devices.mak
GEN qapi-types.h
GEN qapi-visit.h
GEN sh4-linux-user/config-devices.mak.tmp
GEN microblaze-linux-user/config-devices.mak
GEN s390x-linux-user/config-devices.mak
GEN i386-linux-user/config-devices.mak
GEN sparc-softmmu/config-devices.mak
GEN qmp-marshal.c
GEN qapi-types.c
GEN qmp-introspect.h
GEN qapi-event.c
GEN nios2-softmmu/config-devices.mak
GEN mipsn32-linux-user/config-devices.mak.tmp
GEN ppc64-softmmu/config-devices.mak
GEN qapi-event.h
GIT ui/keycodemapdb dtc capstone
GEN mips64el-softmmu/config-devices.mak
GEN mipsel-softmmu/config-devices.mak
GEN mips64-softmmu/config-devices.mak
GEN sh4eb-softmmu/config-devices.mak
GEN x86_64-softmmu/config-devices.mak
GEN xtensaeb-softmmu/config-devices.mak
GEN qemu-options.def
GEN alpha-linux-user/config-devices.mak
GEN armeb-linux-user/config-devices.mak
GEN arm-linux-user/config-devices.mak
GEN mips64-linux-user/config-devices.mak
GEN mipsel-linux-user/config-devices.mak
GEN xtensa-softmmu/config-devices.mak
GEN aarch64-linux-user/config-devices.mak
GEN ppc-softmmu/config-devices.mak
GEN hppa-linux-user/config-devices.mak
GEN mips-linux-user/config-devices.mak
GEN qapi-visit.c
GEN ppc64abi32-linux-user/config-devices.mak
GEN ppc64-linux-user/config-devices.mak
GEN sh4-softmmu/config-devices.mak
GEN ppc-linux-user/config-devices.mak
GEN sh4-linux-user/config-devices.mak
GEN ppcemb-softmmu/config-devices.mak
GEN sparc32plus-linux-user/config-devices.mak
GEN sh4eb-linux-user/config-devices.mak
GEN sparc-linux-user/config-devices.mak
GEN microblazeel-linux-user/config-devices.mak
GEN qmp-introspect.c
GEN trace/generated-tcg-tracers.h
GEN sparc64-linux-user/config-devices.mak
GEN x86_64-linux-user/config-devices.mak
GEN tilegx-linux-user/config-devices.mak
GEN trace/generated-helpers-wrappers.h
GEN mips-softmmu/config-devices.mak
GEN mipsn32el-linux-user/config-devices.mak
GEN trace/generated-helpers.h
GEN m68k-linux-user/config-devices.mak
GEN aarch64_be-linux-user/config-devices.mak
GEN sparc64-softmmu/config-devices.mak
GEN trace/generated-helpers.c
GEN mipsn32-linux-user/config-devices.mak
GEN nios2-linux-user/config-devices.mak
GEN mips64el-linux-user/config-devices.mak
GEN cris-linux-user/config-devices.mak
GEN module_block.h
GEN or1k-linux-user/config-devices.mak
GEN tests/test-qapi-types.h
GEN tests/test-qapi-visit.h
GEN tests/test-qmp-commands.h
GEN tests/test-qapi-event.h
GEN tests/test-qmp-introspect.h
GEN trace-root.h
GEN util/trace.h
GEN crypto/trace.h
GEN io/trace.h
GEN migration/trace.h
GEN block/trace.h
GEN chardev/trace.h
GEN hw/block/trace.h
GEN hw/block/dataplane/trace.h
GEN hw/char/trace.h
GEN hw/intc/trace.h
GEN hw/net/trace.h
GEN hw/virtio/trace.h
GEN hw/audio/trace.h
GEN hw/misc/trace.h
GEN hw/usb/trace.h
GEN hw/scsi/trace.h
GEN hw/nvram/trace.h
GEN hw/display/trace.h
GEN hw/input/trace.h
GEN hw/timer/trace.h
GEN hw/dma/trace.h
GEN hw/sparc/trace.h
GEN hw/sparc64/trace.h
GEN hw/sd/trace.h
GEN hw/isa/trace.h
GEN hw/mem/trace.h
GEN hw/i386/trace.h
GEN hw/i386/xen/trace.h
GEN hw/9pfs/trace.h
GEN hw/ppc/trace.h
GEN hw/pci/trace.h
GEN hw/pci-host/trace.h
GEN hw/s390x/trace.h
GEN hw/vfio/trace.h
GEN hw/acpi/trace.h
GEN hw/arm/trace.h
GEN hw/alpha/trace.h
GEN hw/xen/trace.h
GEN hw/ide/trace.h
GEN ui/trace.h
GEN audio/trace.h
GEN net/trace.h
GEN target/arm/trace.h
GEN target/i386/trace.h
GEN target/mips/trace.h
GEN target/sparc/trace.h
GEN target/s390x/trace.h
GEN target/ppc/trace.h
GEN qom/trace.h
GEN linux-user/trace.h
GEN qapi/trace.h
GEN accel/tcg/trace.h
GEN accel/kvm/trace.h
GEN nbd/trace.h
GEN scsi/trace.h
GEN trace-root.c
GEN util/trace.c
GEN crypto/trace.c
GEN io/trace.c
GEN migration/trace.c
GEN block/trace.c
GEN chardev/trace.c
GEN hw/block/trace.c
GEN hw/block/dataplane/trace.c
GEN hw/char/trace.c
GEN hw/intc/trace.c
GEN hw/net/trace.c
GEN hw/virtio/trace.c
GEN hw/audio/trace.c
GEN hw/misc/trace.c
GEN hw/usb/trace.c
GEN hw/scsi/trace.c
GEN hw/nvram/trace.c
GEN hw/display/trace.c
GEN hw/input/trace.c
GEN hw/timer/trace.c
GEN hw/dma/trace.c
GEN hw/sparc/trace.c
GEN hw/sparc64/trace.c
GEN hw/sd/trace.c
GEN hw/isa/trace.c
GEN hw/mem/trace.c
GEN hw/i386/trace.c
GEN hw/i386/xen/trace.c
GEN hw/9pfs/trace.c
GEN hw/ppc/trace.c
GEN hw/pci/trace.c
GEN hw/pci-host/trace.c
GEN hw/s390x/trace.c
GEN hw/vfio/trace.c
GEN hw/acpi/trace.c
GEN hw/arm/trace.c
GEN hw/alpha/trace.c
GEN hw/xen/trace.c
GEN hw/ide/trace.c
GEN ui/trace.c
GEN audio/trace.c
GEN net/trace.c
GEN target/arm/trace.c
GEN target/i386/trace.c
GEN target/mips/trace.c
GEN target/sparc/trace.c
GEN target/s390x/trace.c
GEN target/ppc/trace.c
GEN qom/trace.c
GEN linux-user/trace.c
GEN qapi/trace.c
GEN accel/tcg/trace.c
GEN accel/kvm/trace.c
GEN nbd/trace.c
GEN scsi/trace.c
GEN config-all-devices.mak
GEN ui/input-keymap-atset1-to-qcode.c
GEN ui/input-keymap-linux-to-qcode.c
GEN ui/input-keymap-qcode-to-atset1.c
GEN ui/input-keymap-qcode-to-atset2.c
GEN ui/input-keymap-qcode-to-atset3.c
GEN ui/input-keymap-qcode-to-linux.c
GEN ui/input-keymap-qcode-to-qnum.c
GEN ui/input-keymap-qnum-to-qcode.c
GEN ui/input-keymap-usb-to-qcode.c
GEN ui/input-keymap-win32-to-qcode.c
GEN ui/input-keymap-x11-to-qcode.c
GEN ui/input-keymap-qcode-to-sun.c
GEN ui/input-keymap-xorgkbd-to-qcode.c
GEN ui/input-keymap-xorgxquartz-to-qcode.c
GEN ui/input-keymap-xorgxwin-to-qcode.c
GEN ui/input-keymap-xorgevdev-to-qcode.c
CC cs.o
CC utils.o
CC SStream.o
CC MCInstrDesc.o
CC MCRegisterInfo.o
CC arch/ARM/ARMDisassembler.o
CC arch/ARM/ARMInstPrinter.o
CC arch/ARM/ARMMapping.o
CC arch/ARM/ARMModule.o
CC arch/AArch64/AArch64Disassembler.o
CC arch/AArch64/AArch64BaseInfo.o
CC arch/AArch64/AArch64InstPrinter.o
CC arch/AArch64/AArch64Mapping.o
CC arch/AArch64/AArch64Module.o
CC arch/Mips/MipsDisassembler.o
CC arch/Mips/MipsInstPrinter.o
CC arch/Mips/MipsModule.o
CC arch/Mips/MipsMapping.o
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/dumptrees.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/trees.S
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/testutils.c
CC arch/PowerPC/PPCDisassembler.o
CC arch/PowerPC/PPCInstPrinter.o
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/value-labels.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/asm_tree_dump.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/truncated_property.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/check_path.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/overlay_bad_fixup.c
CC arch/PowerPC/PPCMapping.o
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/overlay.c
CC arch/PowerPC/PPCModule.o
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/subnode_iterate.c
CC arch/Sparc/SparcDisassembler.o
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/property_iterate.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/integer-expressions.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/utilfdt_test.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/path_offset_aliases.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/add_subnode_with_nops.c
CC arch/Sparc/SparcInstPrinter.o
CC arch/Sparc/SparcMapping.o
CC arch/Sparc/SparcModule.o
CC arch/SystemZ/SystemZDisassembler.o
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/dtbs_equal_unordered.c
CC arch/SystemZ/SystemZInstPrinter.o
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/dtb_reverse.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/dtbs_equal_ordered.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/extra-terminating-null.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/incbin.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/boot-cpuid.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/phandle_format.c
CC arch/SystemZ/SystemZMapping.o
CC arch/SystemZ/SystemZModule.o
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/path-references.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/references.c
CC arch/SystemZ/SystemZMCTargetDesc.o
CC arch/X86/X86DisassemblerDecoder.o
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/string_escapes.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/propname_escapes.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/appendprop2.c
CC arch/X86/X86Disassembler.o
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/appendprop1.c
CC arch/X86/X86IntelInstPrinter.o
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/del_node.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/del_property.c
CC arch/X86/X86ATTInstPrinter.o
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/setprop.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/set_name.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/rw_tree1.c
CC arch/X86/X86Mapping.o
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/nopulate.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/open_pack.c
CC arch/X86/X86Module.o
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/mangle-layout.c
CC arch/XCore/XCoreDisassembler.o
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/move_and_save.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/sw_tree1.c
CC arch/XCore/XCoreInstPrinter.o
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/nop_node.c
CC arch/XCore/XCoreMapping.o
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/nop_property.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/setprop_inplace.c
CC arch/XCore/XCoreModule.o
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/stringlist.c
CC MCInst.o
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/addr_size_cells.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/notfound.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/sized_cells.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/char_literal.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/node_offset_by_compatible.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/get_alias.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/node_check_compatible.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/node_offset_by_phandle.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/parent_offset.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/supernode_atdepth_offset.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/get_path.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/node_offset_by_prop_value.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/get_phandle.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/subnode_offset.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/find_property.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/root_node.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/get_mem_rsv.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/getprop.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/get_name.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/libfdt/fdt_addresses.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/libfdt/fdt_overlay.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/tests/path_offset.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/libfdt/fdt_empty_tree.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/libfdt/fdt_strerror.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/libfdt/fdt_rw.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/libfdt/fdt_sw.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/libfdt/fdt_wip.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/libfdt/fdt_ro.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/util.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/fdtoverlay.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/libfdt/fdt.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/fdtput.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/fdtget.c
BISON dtc-parser.tab.c
LEX convert-dtsv0-lexer.lex.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/srcpos.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/fdtdump.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/treesource.c
LEX dtc-lexer.lex.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/livetree.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/fstree.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/flattree.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/data.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/dtc.c
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/checks.c
DEP convert-dtsv0-lexer.lex.c
DEP dtc-parser.tab.c
DEP dtc-lexer.lex.c
CHK version_gen.h
UPD version_gen.h
DEP /var/tmp/patchew-tester-tmp-r4540qbd/src/dtc/util.c
CC libfdt/fdt.o
CC libfdt/fdt_ro.o
CC libfdt/fdt_wip.o
CC libfdt/fdt_sw.o
CC libfdt/fdt_rw.o
CC libfdt/fdt_strerror.o
CC libfdt/fdt_empty_tree.o
CC libfdt/fdt_addresses.o
CC libfdt/fdt_overlay.o
AR libfdt/libfdt.a
ar: creating libfdt/libfdt.a
a - libfdt/fdt.o
a - libfdt/fdt_ro.o
a - libfdt/fdt_wip.o
a - libfdt/fdt_sw.o
a - libfdt/fdt_rw.o
a - libfdt/fdt_strerror.o
a - libfdt/fdt_empty_tree.o
a - libfdt/fdt_addresses.o
a - libfdt/fdt_overlay.o
AR libcapstone.a
ar: creating /var/tmp/patchew-tester-tmp-r4540qbd/src/build/capstone/libcapstone.a
CC tests/qemu-iotests/socket_scm_helper.o
GEN qga/qapi-generated/qga-qapi-types.h
GEN qga/qapi-generated/qga-qapi-visit.h
GEN qga/qapi-generated/qga-qmp-commands.h
GEN qga/qapi-generated/qga-qapi-types.c
GEN qga/qapi-generated/qga-qapi-visit.c
GEN qga/qapi-generated/qga-qmp-marshal.c
CC qapi-types.o
CC qmp-introspect.o
CC qapi-visit.o
CC qapi/qapi-visit-core.o
CC qapi/qapi-dealloc-visitor.o
CC qapi/qobject-input-visitor.o
CC qapi-event.o
CC qapi/qmp-registry.o
CC qapi/qobject-output-visitor.o
CC qapi/qmp-dispatch.o
CC qapi/string-input-visitor.o
CC qapi/string-output-visitor.o
CC qapi/opts-visitor.o
CC qapi/qapi-clone-visitor.o
CC qapi/qmp-event.o
CC qapi/qapi-util.o
CC qobject/qnull.o
CC qobject/qstring.o
CC qobject/qnum.o
CC qobject/qdict.o
CC qobject/qlist.o
CC qobject/qbool.o
CC qobject/qlit.o
CC qobject/qobject.o
CC qobject/qjson.o
CC qobject/json-lexer.o
CC qobject/json-streamer.o
CC qobject/json-parser.o
CC trace/control.o
CC trace/qmp.o
CC util/unicode.o
CC util/qemu-timer-common.o
CC util/bufferiszero.o
CC util/lockcnt.o
CC util/aiocb.o
CC util/osdep.o
CC util/cutils.o
CC util/thread-pool.o
CC util/async.o
CC util/oslib-posix.o
CC util/aio-posix.o
CC util/mmap-alloc.o
CC util/main-loop.o
CC util/compatfd.o
CC util/iohandler.o
CC util/qemu-openpty.o
CC util/qemu-timer.o
CC util/qemu-thread-posix.o
CC util/memfd.o
CC util/event_notifier-posix.o
CC util/path.o
CC util/module.o
CC util/host-utils.o
CC util/envlist.o
CC util/bitmap.o
CC util/bitops.o
CC util/fifo8.o
CC util/acl.o
CC util/hbitmap.o
CC util/cacheinfo.o
CC util/error.o
CC util/qemu-error.o
CC util/id.o
CC util/iov.o
CC util/qemu-config.o
CC util/qemu-sockets.o
CC util/uri.o
CC util/notify.o
CC util/qemu-option.o
CC util/keyval.o
CC util/hexdump.o
CC util/qemu-progress.o
CC util/crc32c.o
CC util/getauxval.o
CC util/throttle.o
CC util/uuid.o
CC util/readline.o
CC util/rcu.o
CC util/qemu-coroutine.o
CC util/qemu-coroutine-lock.o
CC util/qemu-coroutine-io.o
CC util/qemu-coroutine-sleep.o
CC util/coroutine-ucontext.o
CC util/timed-average.o
CC util/buffer.o
CC util/base64.o
CC util/log.o
CC util/pagesize.o
CC util/qdist.o
CC util/qht.o
CC util/range.o
CC util/stats64.o
CC util/systemd.o
CC trace-root.o
CC util/trace.o
CC crypto/trace.o
CC io/trace.o
CC migration/trace.o
CC block/trace.o
CC chardev/trace.o
CC hw/block/trace.o
CC hw/block/dataplane/trace.o
CC hw/char/trace.o
CC hw/intc/trace.o
CC hw/net/trace.o
CC hw/virtio/trace.o
CC hw/audio/trace.o
CC hw/misc/trace.o
CC hw/usb/trace.o
CC hw/scsi/trace.o
CC hw/nvram/trace.o
CC hw/display/trace.o
CC hw/input/trace.o
CC hw/timer/trace.o
CC hw/dma/trace.o
CC hw/sparc/trace.o
CC hw/sparc64/trace.o
CC hw/sd/trace.o
CC hw/isa/trace.o
CC hw/mem/trace.o
CC hw/i386/trace.o
CC hw/i386/xen/trace.o
CC hw/9pfs/trace.o
CC hw/ppc/trace.o
CC hw/pci/trace.o
CC hw/pci-host/trace.o
CC hw/s390x/trace.o
CC hw/vfio/trace.o
CC hw/acpi/trace.o
CC hw/arm/trace.o
CC hw/alpha/trace.o
CC hw/xen/trace.o
CC hw/ide/trace.o
CC ui/trace.o
CC target/arm/trace.o
CC audio/trace.o
CC net/trace.o
CC target/mips/trace.o
CC target/i386/trace.o
CC target/sparc/trace.o
CC target/s390x/trace.o
CC target/ppc/trace.o
CC qom/trace.o
CC linux-user/trace.o
CC qapi/trace.o
CC accel/tcg/trace.o
CC accel/kvm/trace.o
CC nbd/trace.o
CC scsi/trace.o
CC crypto/pbkdf-stub.o
CC stubs/arch-query-cpu-def.o
CC stubs/arch-query-cpu-model-expansion.o
CC stubs/arch-query-cpu-model-comparison.o
CC stubs/arch-query-cpu-model-baseline.o
CC stubs/bdrv-next-monitor-owned.o
CC stubs/blk-commit-all.o
CC stubs/blockdev-close-all-bdrv-states.o
CC stubs/clock-warp.o
CC stubs/cpu-get-clock.o
CC stubs/cpu-get-icount.o
CC stubs/dump.o
CC stubs/error-printf.o
CC stubs/get-vm-name.o
CC stubs/fdset.o
CC stubs/gdbstub.o
CC stubs/iothread.o
CC stubs/is-daemonized.o
CC stubs/iothread-lock.o
CC stubs/linux-aio.o
CC stubs/machine-init-done.o
CC stubs/migr-blocker.o
CC stubs/change-state-handler.o
CC stubs/monitor.o
CC stubs/notify-event.o
CC stubs/qtest.o
CC stubs/replay.o
CC stubs/runstate-check.o
CC stubs/set-fd-handler.o
CC stubs/sysbus.o
CC stubs/tpm.o
CC stubs/slirp.o
CC stubs/trace-control.o
CC stubs/uuid.o
CC stubs/vm-stop.o
CC stubs/vmstate.o
CC stubs/qmp_pc_dimm.o
CC stubs/target-monitor-defs.o
CC stubs/target-get-monitor-def.o
CC stubs/pc_madt_cpu_entry.o
CC stubs/vmgenid.o
CC stubs/xen-common.o
CC stubs/xen-hvm.o
CC stubs/pci-host-piix.o
CC contrib/ivshmem-client/ivshmem-client.o
CC contrib/ivshmem-client/main.o
CC contrib/ivshmem-server/ivshmem-server.o
CC contrib/ivshmem-server/main.o
CC qemu-nbd.o
CC block.o
CC blockjob.o
CC qemu-io-cmds.o
CC replication.o
CC block/raw-format.o
CC block/qcow.o
CC block/vdi.o
CC block/vmdk.o
CC block/cloop.o
CC block/bochs.o
CC block/vpc.o
CC block/vvfat.o
CC block/dmg.o
CC block/qcow2.o
CC block/qcow2-refcount.o
CC block/qcow2-snapshot.o
CC block/qcow2-cluster.o
CC block/qcow2-bitmap.o
CC block/qcow2-cache.o
CC block/qed.o
CC block/qed-l2-cache.o
CC block/qed-cluster.o
CC block/qed-check.o
CC block/qed-table.o
CC block/vhdx.o
CC block/vhdx-endian.o
CC block/vhdx-log.o
CC block/quorum.o
CC block/parallels.o
CC block/blkdebug.o
CC block/blkverify.o
CC block/blkreplay.o
CC block/block-backend.o
CC block/snapshot.o
CC block/qapi.o
CC block/file-posix.o
CC block/linux-aio.o
CC block/null.o
CC block/mirror.o
CC block/commit.o
CC block/io.o
CC block/throttle-groups.o
CC block/nbd.o
CC block/nbd-client.o
CC block/sheepdog.o
CC block/accounting.o
CC block/dirty-bitmap.o
CC block/write-threshold.o
CC block/backup.o
CC block/replication.o
CC block/throttle.o
CC block/crypto.o
CC nbd/server.o
CC nbd/client.o
CC nbd/common.o
CC scsi/utils.o
CC scsi/pr-manager.o
CC scsi/pr-manager-helper.o
CC block/curl.o
CC block/dmg-bz2.o
CC crypto/init.o
CC crypto/hash.o
CC crypto/hash-nettle.o
CC crypto/hmac.o
CC crypto/hmac-nettle.o
CC crypto/aes.o
CC crypto/desrfb.o
CC crypto/cipher.o
CC crypto/tlscreds.o
CC crypto/tlscredsanon.o
CC crypto/tlscredsx509.o
CC crypto/tlssession.o
CC crypto/secret.o
CC crypto/random-gnutls.o
CC crypto/pbkdf.o
CC crypto/pbkdf-nettle.o
CC crypto/ivgen.o
CC crypto/ivgen-plain.o
CC crypto/ivgen-essiv.o
CC crypto/ivgen-plain64.o
CC crypto/afsplit.o
CC crypto/xts.o
CC crypto/block.o
CC crypto/block-qcow.o
CC crypto/block-luks.o
CC io/channel.o
CC io/channel-buffer.o
CC io/channel-command.o
CC io/channel-file.o
CC io/channel-socket.o
CC io/channel-tls.o
CC io/channel-watch.o
CC io/channel-websock.o
CC io/channel-util.o
CC io/dns-resolver.o
CC io/net-listener.o
CC io/task.o
CC qom/object.o
CC qom/container.o
CC qom/qom-qobject.o
CC qom/object_interfaces.o
GEN qemu-img-cmds.h
CC qemu-io.o
CC fsdev/virtfs-proxy-helper.o
CC fsdev/9p-marshal.o
CC fsdev/9p-iov-marshal.o
CC scsi/qemu-pr-helper.o
CC qemu-bridge-helper.o
CC blockdev.o
CC bootdevice.o
CC blockdev-nbd.o
CC iothread.o
CC qdev-monitor.o
CC os-posix.o
CC device-hotplug.o
CC bt-host.o
CC bt-vhci.o
CC dma-helpers.o
CC vl.o
CC tpm.o
CC device_tree.o
CC qmp-marshal.o
CC hmp.o
CC qmp.o
CC cpus-common.o
CC audio/audio.o
CC audio/noaudio.o
CC audio/wavaudio.o
CC audio/mixeng.o
CC audio/sdlaudio.o
CC audio/ossaudio.o
CC audio/wavcapture.o
CC backends/rng.o
CC backends/rng-egd.o
CC backends/rng-random.o
CC backends/tpm.o
CC backends/hostmem.o
CC backends/hostmem-file.o
CC backends/hostmem-ram.o
CC backends/cryptodev.o
CC backends/cryptodev-builtin.o
CC chardev/msmouse.o
CC block/stream.o
CC chardev/wctablet.o
CC chardev/testdev.o
CC disas/alpha.o
CC disas/arm.o
CXX disas/arm-a64.o
CC disas/cris.o
CC disas/hppa.o
CC disas/i386.o
CC disas/m68k.o
CC disas/mips.o
CC disas/microblaze.o
CC disas/nios2.o
CC disas/moxie.o
CC disas/ppc.o
CC disas/s390.o
CC disas/sh4.o
CC disas/sparc.o
CC disas/lm32.o
CC disas/xtensa.o
CXX disas/libvixl/vixl/utils.o
CXX disas/libvixl/vixl/compiler-intrinsics.o
CXX disas/libvixl/vixl/a64/instructions-a64.o
CXX disas/libvixl/vixl/a64/disasm-a64.o
CXX disas/libvixl/vixl/a64/decoder-a64.o
CC fsdev/qemu-fsdev.o
CC fsdev/qemu-fsdev-opts.o
CC fsdev/qemu-fsdev-throttle.o
CC fsdev/qemu-fsdev-dummy.o
CC hw/9pfs/9p.o
CC hw/9pfs/9p-local.o
CC hw/9pfs/9p-util.o
CC hw/9pfs/9p-xattr.o
CC hw/9pfs/9p-xattr-user.o
CC hw/9pfs/9p-posix-acl.o
CC hw/9pfs/coth.o
CC hw/9pfs/cofs.o
CC hw/9pfs/codir.o
CC hw/9pfs/coxattr.o
CC hw/9pfs/cofile.o
CC hw/9pfs/9p-synth.o
CC hw/9pfs/9p-handle.o
CC hw/9pfs/9p-proxy.o
CC hw/acpi/core.o
CC hw/acpi/piix4.o
CC hw/acpi/pcihp.o
CC hw/acpi/ich9.o
CC hw/acpi/tco.o
CC hw/acpi/cpu_hotplug.o
CC hw/acpi/memory_hotplug.o
CC hw/acpi/cpu.o
CC hw/acpi/nvdimm.o
CC hw/acpi/vmgenid.o
CC hw/acpi/acpi_interface.o
CC hw/acpi/bios-linker-loader.o
CC hw/acpi/aml-build.o
CC hw/acpi/ipmi.o
CC hw/acpi/acpi-stub.o
CC hw/acpi/ipmi-stub.o
CC hw/audio/sb16.o
CC hw/audio/es1370.o
CC hw/audio/ac97.o
CC hw/audio/fmopl.o
CC hw/audio/adlib.o
CC hw/audio/gus.o
CC hw/audio/gusemu_mixer.o
CC hw/audio/gusemu_hal.o
CC hw/audio/cs4231a.o
CC hw/audio/intel-hda.o
CC hw/audio/hda-codec.o
CC hw/audio/pcspk.o
CC hw/audio/wm8750.o
CC hw/audio/pl041.o
CC hw/audio/cs4231.o
CC hw/audio/lm4549.o
CC hw/audio/marvell_88w8618.o
CC hw/audio/milkymist-ac97.o
CC hw/audio/soundhw.o
CC hw/block/block.o
CC hw/block/cdrom.o
CC hw/block/fdc.o
CC hw/block/hd-geometry.o
CC hw/block/m25p80.o
CC hw/block/nand.o
CC hw/block/pflash_cfi01.o
CC hw/block/pflash_cfi02.o
CC hw/block/ecc.o
CC hw/block/onenand.o
CC hw/block/nvme.o
CC hw/bt/core.o
CC hw/bt/l2cap.o
CC hw/bt/sdp.o
CC hw/bt/hci.o
CC hw/bt/hid.o
CC hw/bt/hci-csr.o
CC hw/char/ipoctal232.o
CC hw/char/escc.o
CC hw/char/parallel.o
CC hw/char/pl011.o
CC hw/char/serial.o
CC hw/char/serial-isa.o
CC hw/char/serial-pci.o
CC hw/char/virtio-console.o
CC hw/char/xilinx_uartlite.o
CC hw/char/cmsdk-apb-uart.o
CC hw/char/cadence_uart.o
CC hw/char/etraxfs_ser.o
CC hw/char/debugcon.o
CC hw/char/grlib_apbuart.o
CC hw/char/imx_serial.o
CC hw/char/lm32_juart.o
CC hw/char/lm32_uart.o
CC hw/char/milkymist-uart.o
CC hw/char/sclpconsole.o
CC hw/char/sclpconsole-lm.o
CC hw/core/qdev.o
CC hw/core/qdev-properties.o
CC hw/core/bus.o
CC hw/core/qdev-fw.o
CC hw/core/reset.o
CC hw/core/fw-path-provider.o
CC hw/core/irq.o
CC hw/core/hotplug.o
CC hw/core/nmi.o
CC hw/core/empty_slot.o
CC hw/core/stream.o
CC hw/core/ptimer.o
CC hw/core/sysbus.o
CC hw/core/machine.o
CC hw/core/loader.o
CC hw/core/loader-fit.o
CC hw/core/qdev-properties-system.o
CC hw/core/register.o
CC hw/core/or-irq.o
CC hw/core/platform-bus.o
CC hw/cpu/core.o
CC hw/display/ads7846.o
CC hw/display/cirrus_vga.o
CC hw/display/g364fb.o
CC hw/display/jazz_led.o
CC hw/display/pl110.o
CC hw/display/ssd0303.o
CC hw/display/ssd0323.o
CC hw/display/vga-pci.o
CC hw/display/vga-isa.o
CC hw/display/vga-isa-mm.o
CC hw/display/vmware_vga.o
CC hw/display/blizzard.o
CC hw/display/exynos4210_fimd.o
CC hw/display/framebuffer.o
CC hw/display/milkymist-vgafb.o
CC hw/display/tc6393xb.o
CC hw/dma/puv3_dma.o
CC hw/dma/rc4030.o
CC hw/dma/pl080.o
CC hw/dma/pl330.o
CC hw/dma/i82374.o
CC hw/dma/i8257.o
CC hw/dma/xilinx_axidma.o
CC hw/dma/xlnx-zynq-devcfg.o
CC hw/dma/sparc32_dma.o
CC hw/dma/etraxfs_dma.o
CC hw/gpio/max7310.o
CC hw/gpio/pl061.o
CC hw/gpio/puv3_gpio.o
CC hw/gpio/zaurus.o
CC hw/gpio/mpc8xxx.o
CC hw/gpio/gpio_key.o
CC hw/i2c/core.o
CC hw/i2c/smbus.o
CC hw/i2c/smbus_eeprom.o
CC hw/i2c/i2c-ddc.o
CC hw/i2c/versatile_i2c.o
CC hw/i2c/smbus_ich9.o
CC hw/i2c/pm_smbus.o
CC hw/i2c/bitbang_i2c.o
CC hw/i2c/exynos4210_i2c.o
CC hw/i2c/aspeed_i2c.o
CC hw/i2c/imx_i2c.o
CC hw/ide/core.o
CC hw/ide/atapi.o
CC hw/ide/qdev.o
CC hw/ide/pci.o
CC hw/ide/isa.o
CC hw/ide/piix.o
CC hw/ide/cmd646.o
CC hw/ide/macio.o
CC hw/ide/mmio.o
CC hw/ide/via.o
CC hw/ide/microdrive.o
CC hw/ide/ahci.o
CC hw/ide/ich.o
CC hw/ide/ahci-allwinner.o
CC hw/ide/sii3112.o
CC hw/input/adb.o
CC hw/input/adb-mouse.o
CC hw/input/adb-kbd.o
CC hw/input/hid.o
CC hw/input/lm832x.o
CC hw/input/pckbd.o
CC hw/input/pl050.o
CC hw/input/ps2.o
CC hw/input/stellaris_input.o
CC hw/input/tsc2005.o
CC hw/input/virtio-input.o
CC hw/input/virtio-input-host.o
CC hw/input/virtio-input-hid.o
CC hw/intc/heathrow_pic.o
CC hw/intc/i8259_common.o
CC hw/intc/i8259.o
CC hw/intc/pl190.o
CC hw/intc/puv3_intc.o
CC hw/intc/xilinx_intc.o
CC hw/intc/xlnx-pmu-iomod-intc.o
CC hw/intc/xlnx-zynqmp-ipi.o
CC hw/intc/etraxfs_pic.o
CC hw/intc/imx_avic.o
CC hw/intc/lm32_pic.o
CC hw/intc/realview_gic.o
CC hw/intc/slavio_intctl.o
CC hw/intc/ioapic_common.o
CC hw/intc/arm_gic_common.o
CC hw/intc/arm_gic.o
CC hw/intc/arm_gicv2m.o
CC hw/intc/arm_gicv3_common.o
CC hw/intc/arm_gicv3.o
CC hw/intc/arm_gicv3_dist.o
CC hw/intc/arm_gicv3_redist.o
CC hw/intc/arm_gicv3_its_common.o
CC hw/intc/openpic.o
CC hw/intc/intc.o
CC hw/ipack/ipack.o
CC hw/ipack/tpci200.o
CC hw/ipmi/ipmi.o
CC hw/ipmi/ipmi_bmc_sim.o
CC hw/ipmi/ipmi_bmc_extern.o
CC hw/ipmi/isa_ipmi_kcs.o
CC hw/ipmi/isa_ipmi_bt.o
CC hw/isa/isa-bus.o
CC hw/isa/i82378.o
CC hw/isa/apm.o
CC hw/isa/pc87312.o
CC hw/isa/piix4.o
CC hw/isa/vt82c686.o
CC hw/mem/pc-dimm.o
CC hw/mem/nvdimm.o
CC hw/misc/applesmc.o
CC hw/misc/max111x.o
CC hw/misc/tmp105.o
CC hw/misc/tmp421.o
CC hw/misc/debugexit.o
CC hw/misc/sga.o
CC hw/misc/pc-testdev.o
CC hw/misc/pci-testdev.o
CC hw/misc/edu.o
CC hw/misc/unimp.o
CC hw/misc/vmcoreinfo.o
CC hw/misc/arm_l2x0.o
CC hw/misc/arm_integrator_debug.o
CC hw/misc/a9scu.o
CC hw/misc/arm11scu.o
CC hw/misc/puv3_pm.o
CC hw/misc/macio/macio.o
CC hw/misc/macio/mac_dbdma.o
CC hw/misc/macio/cuda.o
CC hw/net/dp8393x.o
CC hw/net/ne2000.o
CC hw/net/eepro100.o
CC hw/net/pcnet-pci.o
CC hw/net/pcnet.o
CC hw/net/e1000.o
CC hw/net/e1000x_common.o
CC hw/net/net_tx_pkt.o
CC hw/net/net_rx_pkt.o
CC hw/net/e1000e.o
CC hw/net/e1000e_core.o
CC hw/net/rtl8139.o
CC hw/net/vmxnet3.o
CC hw/net/smc91c111.o
CC hw/net/lan9118.o
CC hw/net/ne2000-isa.o
CC hw/net/opencores_eth.o
CC hw/net/xgmac.o
CC hw/net/mipsnet.o
CC hw/net/xilinx_axienet.o
CC hw/net/allwinner_emac.o
CC hw/net/imx_fec.o
CC hw/net/stellaris_enet.o
CC hw/net/cadence_gem.o
CC hw/net/lance.o
CC hw/net/sunhme.o
CC hw/net/sungem.o
CC hw/net/rocker/rocker.o
CC hw/net/ftgmac100.o
CC hw/net/rocker/rocker_fp.o
CC hw/net/rocker/rocker_desc.o
CC hw/net/rocker/rocker_world.o
CC hw/net/rocker/rocker_of_dpa.o
CC hw/nvram/eeprom93xx.o
CC hw/nvram/eeprom_at24c.o
CC hw/nvram/ds1225y.o
CC hw/nvram/fw_cfg.o
CC hw/nvram/chrp_nvram.o
CC hw/nvram/mac_nvram.o
CC hw/pci-bridge/pci_bridge_dev.o
CC hw/pci-bridge/pcie_root_port.o
CC hw/pci-bridge/gen_pcie_root_port.o
CC hw/pci-bridge/pcie_pci_bridge.o
CC hw/pci-bridge/pci_expander_bridge.o
CC hw/pci-bridge/xio3130_upstream.o
CC hw/pci-bridge/xio3130_downstream.o
CC hw/pci-bridge/ioh3420.o
CC hw/pci-bridge/i82801b11.o
CC hw/pci-bridge/dec.o
CC hw/pci-bridge/simba.o
CC hw/pci-host/pam.o
CC hw/pci-host/prep.o
CC hw/pci-host/grackle.o
CC hw/pci-host/uninorth.o
CC hw/pci-host/ppce500.o
CC hw/pci-host/versatile.o
CC hw/pci-host/sabre.o
CC hw/pci-host/bonito.o
CC hw/pci-host/piix.o
CC hw/pci-host/q35.o
CC hw/pci-host/gpex.o
CC hw/pci-host/xilinx-pcie.o
CC hw/pci/pci.o
CC hw/pci/pci_bridge.o
CC hw/pci/msix.o
CC hw/pci/msi.o
CC hw/pci/shpc.o
CC hw/pci/slotid_cap.o
CC hw/pci/pci_host.o
CC hw/pci/pcie_host.o
CC hw/pci/pcie.o
CC hw/pci/pcie_aer.o
CC hw/pci/pcie_port.o
CC hw/pci/pci-stub.o
CC hw/pcmcia/pcmcia.o
CC hw/scsi/scsi-disk.o
CC hw/scsi/scsi-generic.o
CC hw/scsi/scsi-bus.o
CC hw/scsi/lsi53c895a.o
CC hw/scsi/mptsas.o
CC hw/scsi/mptconfig.o
CC hw/scsi/mptendian.o
CC hw/scsi/megasas.o
CC hw/scsi/vmw_pvscsi.o
CC hw/scsi/esp.o
CC hw/scsi/esp-pci.o
CC hw/sd/pl181.o
CC hw/sd/ssi-sd.o
CC hw/sd/sd.o
CC hw/sd/core.o
CC hw/sd/sdhci.o
CC hw/smbios/smbios.o
CC hw/smbios/smbios_type_38.o
CC hw/smbios/smbios-stub.o
CC hw/smbios/smbios_type_38-stub.o
CC hw/ssi/pl022.o
CC hw/ssi/ssi.o
CC hw/ssi/xilinx_spi.o
CC hw/ssi/xilinx_spips.o
CC hw/ssi/aspeed_smc.o
CC hw/ssi/stm32f2xx_spi.o
CC hw/ssi/mss-spi.o
CC hw/timer/arm_timer.o
CC hw/timer/arm_mptimer.o
CC hw/timer/armv7m_systick.o
CC hw/timer/a9gtimer.o
CC hw/timer/cadence_ttc.o
CC hw/timer/ds1338.o
CC hw/timer/hpet.o
CC hw/timer/i8254_common.o
CC hw/timer/i8254.o
CC hw/timer/m48t59.o
CC hw/timer/m48t59-isa.o
CC hw/timer/pl031.o
CC hw/timer/puv3_ost.o
CC hw/timer/twl92230.o
CC hw/timer/xilinx_timer.o
CC hw/timer/slavio_timer.o
CC hw/timer/etraxfs_timer.o
CC hw/timer/grlib_gptimer.o
CC hw/timer/imx_epit.o
CC hw/timer/imx_gpt.o
CC hw/timer/lm32_timer.o
CC hw/timer/milkymist-sysctl.o
CC hw/timer/aspeed_timer.o
CC hw/timer/stm32f2xx_timer.o
CC hw/timer/sun4v-rtc.o
CC hw/timer/cmsdk-apb-timer.o
CC hw/timer/mss-timer.o
CC hw/tpm/tpm_util.o
CC hw/tpm/tpm_tis.o
CC hw/tpm/tpm_emulator.o
CC hw/usb/core.o
CC hw/usb/combined-packet.o
CC hw/usb/bus.o
CC hw/usb/libhw.o
CC hw/usb/desc.o
CC hw/usb/desc-msos.o
CC hw/usb/hcd-uhci.o
CC hw/usb/hcd-ohci.o
CC hw/usb/hcd-ehci.o
CC hw/usb/hcd-ehci-pci.o
CC hw/usb/hcd-ehci-sysbus.o
CC hw/usb/hcd-xhci.o
CC hw/usb/hcd-xhci-nec.o
CC hw/usb/hcd-musb.o
CC hw/usb/dev-hub.o
CC hw/usb/dev-hid.o
CC hw/usb/dev-wacom.o
CC hw/usb/dev-storage.o
CC hw/usb/dev-uas.o
CC hw/usb/dev-audio.o
CC hw/usb/dev-serial.o
CC hw/usb/dev-network.o
CC hw/usb/dev-bluetooth.o
CC hw/usb/dev-smartcard-reader.o
CC hw/usb/dev-mtp.o
CC hw/usb/host-libusb.o
CC hw/usb/host-stub.o
CC hw/virtio/virtio-rng.o
CC hw/virtio/virtio-pci.o
CC hw/virtio/virtio-bus.o
CC hw/virtio/virtio-mmio.o
CC hw/virtio/vhost-stub.o
CC hw/watchdog/watchdog.o
CC hw/watchdog/wdt_i6300esb.o
CC hw/watchdog/wdt_diag288.o
CC hw/watchdog/wdt_ib700.o
CC hw/watchdog/wdt_aspeed.o
CC migration/migration.o
CC migration/socket.o
CC migration/fd.o
CC migration/exec.o
CC migration/tls.o
CC migration/channel.o
CC migration/savevm.o
CC migration/colo-comm.o
CC migration/colo-failover.o
CC migration/colo.o
CC migration/vmstate.o
CC migration/vmstate-types.o
CC migration/page_cache.o
CC migration/qemu-file.o
CC migration/qemu-file-channel.o
CC migration/global_state.o
CC migration/xbzrle.o
CC migration/postcopy-ram.o
CC migration/qjson.o
CC migration/rdma.o
CC migration/block.o
CC net/net.o
CC net/queue.o
CC net/checksum.o
CC net/util.o
CC net/hub.o
CC net/socket.o
CC net/dump.o
CC net/l2tpv3.o
CC net/eth.o
CC net/vhost-user.o
CC net/slirp.o
CC net/filter.o
CC net/filter-buffer.o
CC net/filter-mirror.o
CC net/colo-compare.o
CC net/colo.o
CC net/filter-rewriter.o
CC net/filter-replay.o
CC net/tap.o
CC net/tap-linux.o
CC qom/cpu.o
CC replay/replay.o
CC replay/replay-internal.o
CC replay/replay-events.o
CC replay/replay-time.o
CC replay/replay-input.o
CC replay/replay-char.o
CC replay/replay-snapshot.o
CC replay/replay-net.o
CC replay/replay-audio.o
CC slirp/cksum.o
CC slirp/if.o
CC slirp/ip_icmp.o
CC slirp/ip6_icmp.o
CC slirp/ip6_input.o
CC slirp/ip6_output.o
CC slirp/ip_input.o
CC slirp/ip_output.o
CC slirp/dhcpv6.o
CC slirp/dnssearch.o
CC slirp/slirp.o
CC slirp/mbuf.o
CC slirp/misc.o
CC slirp/sbuf.o
CC slirp/tcp_input.o
CC slirp/socket.o
CC slirp/tcp_output.o
CC slirp/tcp_subr.o
CC slirp/tcp_timer.o
CC slirp/udp.o
CC slirp/udp6.o
CC slirp/bootp.o
CC slirp/tftp.o
CC slirp/arp_table.o
CC slirp/ndp_table.o
CC slirp/ncsi.o
CC ui/keymaps.o
CC ui/console.o
CC ui/cursor.o
CC ui/qemu-pixman.o
CC ui/input.o
CC ui/input-keymap.o
CC ui/input-legacy.o
CC ui/input-linux.o
CC ui/sdl.o
CC ui/sdl_zoom.o
CC ui/vnc.o
CC ui/curses.o
CC ui/vnc-enc-zlib.o
CC ui/vnc-enc-hextile.o
CC ui/vnc-enc-tight.o
CC ui/vnc-palette.o
CC ui/vnc-enc-zrle.o
CC ui/vnc-ws.o
CC ui/vnc-auth-sasl.o
CC ui/vnc-jobs.o
CC ui/vnc-auth-vencrypt.o
CC ui/gtk.o
CC ui/x_keymap.o
CC chardev/char.o
CC chardev/char-fe.o
CC chardev/char-io.o
CC chardev/char-mux.o
CC chardev/char-fd.o
CC chardev/char-file.o
CC chardev/char-null.o
CC chardev/char-parallel.o
CC chardev/char-pipe.o
CC chardev/char-pty.o
CC chardev/char-ringbuf.o
CC chardev/char-serial.o
CC chardev/char-socket.o
CC chardev/char-stdio.o
CC chardev/char-udp.o
LINK tests/qemu-iotests/socket_scm_helper
CCAS spapr-rtas/spapr-rtas.o
CC qga/commands.o
CC qga/guest-agent-command-state.o
CC qga/main.o
Building spapr-rtas/spapr-rtas.img
Building spapr-rtas/spapr-rtas.bin
CC qga/commands-posix.o
CC qga/channel-posix.o
CC qga/qapi-generated/qga-qapi-types.o
CC qga/qapi-generated/qga-qapi-visit.o
CC qga/qapi-generated/qga-qmp-marshal.o
CC qemu-img.o
AR libqemuutil.a
LINK qemu-ga
LINK ivshmem-client
LINK ivshmem-server
LINK qemu-nbd
LINK qemu-img
LINK qemu-io
LINK fsdev/virtfs-proxy-helper
LINK scsi/qemu-pr-helper
LINK qemu-bridge-helper
GEN aarch64-linux-user/config-target.h
CC aarch64-linux-user/exec.o
CC aarch64-linux-user/tcg/tcg.o
CC aarch64-linux-user/tcg/tcg-op.o
CC aarch64-linux-user/tcg/optimize.o
CC aarch64-linux-user/tcg/tcg-common.o
GEN or1k-linux-user/config-target.h
CC aarch64-linux-user/fpu/softfloat.o
CC aarch64-linux-user/disas.o
GEN aarch64-linux-user/gdbstub-xml.c
CC aarch64-linux-user/thunk.o
CC aarch64-linux-user/gdbstub.o
CC aarch64-linux-user/accel/stubs/hax-stub.o
GEN microblazeel-linux-user/config-target.h
GEN alpha-linux-user/config-target.h
CC or1k-linux-user/exec.o
CC or1k-linux-user/tcg/tcg.o
CC or1k-linux-user/tcg/tcg-op.o
GEN ppc-linux-user/config-target.h
CC aarch64-linux-user/accel/stubs/hvf-stub.o
GEN mipsel-linux-user/config-target.h
GEN mips64-linux-user/config-target.h
CC aarch64-linux-user/accel/stubs/kvm-stub.o
CC aarch64-linux-user/accel/tcg/cpu-exec.o
CC aarch64-linux-user/accel/tcg/tcg-runtime.o
GEN sparc64-linux-user/config-target.h
CC aarch64-linux-user/accel/tcg/cpu-exec-common.o
CC or1k-linux-user/fpu/softfloat.o
CC or1k-linux-user/tcg/optimize.o
CC aarch64-linux-user/accel/tcg/translate-all.o
CC or1k-linux-user/disas.o
CC aarch64-linux-user/accel/tcg/translator.o
CC or1k-linux-user/tcg/tcg-common.o
CC aarch64-linux-user/accel/tcg/user-exec.o
GEN hppa-linux-user/config-target.h
CC aarch64-linux-user/accel/tcg/user-exec-stub.o
CC or1k-linux-user/gdbstub.o
CC or1k-linux-user/thunk.o
CC alpha-linux-user/exec.o
CC aarch64-linux-user/linux-user/main.o
CC mipsel-linux-user/exec.o
CC aarch64-linux-user/linux-user/strace.o
CC microblazeel-linux-user/tcg/tcg.o
CC aarch64-linux-user/linux-user/syscall.o
CC or1k-linux-user/accel/stubs/hax-stub.o
CC microblazeel-linux-user/exec.o
CC or1k-linux-user/accel/stubs/kvm-stub.o
CC mipsel-linux-user/tcg/optimize.o
CC mipsel-linux-user/tcg/tcg.o
CC mipsel-linux-user/tcg/tcg-common.o
CC sparc64-linux-user/exec.o
CC alpha-linux-user/tcg/tcg.o
GEN armeb-linux-user/config-target.h
CC or1k-linux-user/accel/stubs/hvf-stub.o
GEN i386-linux-user/config-target.h
CC sparc64-linux-user/tcg/tcg.o
GEN sparc-linux-user/config-target.h
GEN mips64el-linux-user/config-target.h
CC mipsel-linux-user/tcg/tcg-op.o
GEN mipsn32el-linux-user/config-target.h
GEN x86_64-linux-user/config-target.h
GEN aarch64_be-linux-user/config-target.h
GEN ppc64le-linux-user/config-target.h
GEN m68k-linux-user/config-target.h
GEN sh4-linux-user/config-target.h
GEN cris-linux-user/config-target.h
GEN sparc32plus-linux-user/config-target.h
GEN ppc64-linux-user/config-target.h
GEN nios2-linux-user/config-target.h
GEN arm-linux-user/config-target.h
CC ppc-linux-user/exec.o
CC hppa-linux-user/exec.o
CC i386-linux-user/exec.o
CC ppc64le-linux-user/exec.o
CC armeb-linux-user/exec.o
CC mipsn32el-linux-user/exec.o
CC sparc-linux-user/exec.o
CC x86_64-linux-user/exec.o
CC s390x-linux-user/gen-features
CC mips64-linux-user/exec.o
GEN mips-linux-user/config-target.h
GEN microblaze-linux-user/config-target.h
CC sh4-linux-user/exec.o
GEN tilegx-linux-user/config-target.h
CC mips64el-linux-user/exec.o
CC sparc32plus-linux-user/exec.o
CC aarch64_be-linux-user/exec.o
CC nios2-linux-user/exec.o
CC m68k-linux-user/exec.o
GEN mipsn32-linux-user/config-target.h
CC ppc64-linux-user/exec.o
CC cris-linux-user/exec.o
GEN ppc64abi32-linux-user/config-target.h
CC arm-linux-user/exec.o
GEN sh4eb-linux-user/config-target.h
CC mips-linux-user/exec.o
CC tilegx-linux-user/exec.o
CC microblaze-linux-user/exec.o
CC ppc64abi32-linux-user/exec.o
CC mipsn32-linux-user/exec.o
GEN or1k-softmmu/hmp-commands.h
CC sh4eb-linux-user/exec.o
CC sh4eb-linux-user/tcg/tcg.o
GEN s390x-linux-user/config-target.h
GEN or1k-softmmu/hmp-commands-info.h
GEN s390x-linux-user/gen-features.h
CC or1k-linux-user/accel/tcg/tcg-runtime.o
CC hppa-linux-user/tcg/tcg.o
GEN cris-softmmu/hmp-commands.h
CC cris-linux-user/tcg/tcg.o
CC microblaze-linux-user/tcg/tcg.o
CC hppa-linux-user/tcg/tcg-op.o
CC alpha-linux-user/tcg/tcg-op.o
CC s390x-linux-user/exec.o
CC hppa-linux-user/tcg/optimize.o
CC hppa-linux-user/tcg/tcg-common.o
GEN microblaze-softmmu/hmp-commands.h
CC m68k-linux-user/tcg/tcg.o
CC armeb-linux-user/tcg/tcg.o
GEN or1k-softmmu/config-target.h
GEN moxie-softmmu/hmp-commands.h
GEN cris-softmmu/hmp-commands-info.h
GEN m68k-softmmu/hmp-commands.h
CC cris-linux-user/tcg/tcg-op.o
CC or1k-softmmu/exec.o
GEN cris-softmmu/config-target.h
CC cris-linux-user/tcg/optimize.o
CC cris-softmmu/exec.o
CC s390x-linux-user/tcg/tcg.o
GEN microblaze-softmmu/hmp-commands-info.h
CC sparc32plus-linux-user/tcg/tcg.o
GEN m68k-softmmu/hmp-commands-info.h
GEN nios2-softmmu/hmp-commands.h
GEN moxie-softmmu/hmp-commands-info.h
GEN tricore-softmmu/hmp-commands.h
CC armeb-linux-user/tcg/tcg-op.o
GEN xtensaeb-softmmu/hmp-commands.h
GEN alpha-softmmu/hmp-commands.h
GEN microblaze-softmmu/config-target.h
GEN unicore32-softmmu/hmp-commands.h
GEN xtensaeb-softmmu/hmp-commands-info.h
GEN m68k-softmmu/config-target.h
CC microblaze-softmmu/exec.o
CC mips64-linux-user/tcg/tcg.o
CC ppc64le-linux-user/tcg/tcg.o
CC m68k-softmmu/exec.o
GEN moxie-softmmu/config-target.h
CC moxie-softmmu/exec.o
GEN tricore-softmmu/hmp-commands-info.h
CC i386-linux-user/tcg/tcg.o
GEN nios2-softmmu/hmp-commands-info.h
CC tilegx-linux-user/tcg/tcg.o
CC mipsn32el-linux-user/tcg/tcg.o
GEN unicore32-softmmu/hmp-commands-info.h
CC ppc64abi32-linux-user/tcg/tcg.o
CC i386-linux-user/tcg/tcg-op.o
GEN lm32-softmmu/hmp-commands.h
GEN alpha-softmmu/hmp-commands-info.h
CC mipsn32el-linux-user/tcg/tcg-op.o
GEN microblazeel-softmmu/hmp-commands.h
GEN tricore-softmmu/config-target.h
CC sh4eb-linux-user/tcg/tcg-op.o
CC sh4eb-linux-user/tcg/optimize.o
CC tilegx-linux-user/tcg/tcg-op.o
GEN sh4eb-softmmu/hmp-commands.h
GEN xtensaeb-softmmu/config-target.h
CC aarch64_be-linux-user/tcg/tcg.o
CC tricore-softmmu/exec.o
CC aarch64_be-linux-user/tcg/tcg-op.o
GEN nios2-softmmu/config-target.h
CC mipsel-linux-user/fpu/softfloat.o
CC sparc64-linux-user/tcg/tcg-op.o
CC ppc64abi32-linux-user/tcg/tcg-op.o
GEN unicore32-softmmu/config-target.h
CC xtensaeb-softmmu/exec.o
CC xtensaeb-softmmu/tcg/tcg.o
CC nios2-softmmu/exec.o
CC mips-linux-user/tcg/tcg.o
GEN sparc-softmmu/hmp-commands.h
CC sh4-linux-user/tcg/tcg.o
GEN ppc-softmmu/hmp-commands.h
CC cris-softmmu/tcg/tcg.o
CC mipsn32el-linux-user/tcg/optimize.o
CC unicore32-softmmu/exec.o
CC mips64el-linux-user/tcg/tcg.o
CC x86_64-linux-user/tcg/tcg.o
CC alpha-linux-user/tcg/optimize.o
GEN lm32-softmmu/hmp-commands-info.h
GEN alpha-softmmu/config-target.h
GEN microblazeel-softmmu/hmp-commands-info.h
CC alpha-linux-user/tcg/tcg-common.o
CC mipsel-linux-user/disas.o
GEN sh4eb-softmmu/hmp-commands-info.h
CC alpha-softmmu/exec.o
GEN arm-softmmu/hmp-commands.h
CC nios2-linux-user/tcg/tcg.o
CC ppc64-linux-user/tcg/tcg.o
GEN lm32-softmmu/config-target.h
CC arm-linux-user/tcg/tcg.o
GEN s390x-softmmu/hmp-commands.h
GEN sparc-softmmu/hmp-commands-info.h
CC arm-linux-user/tcg/tcg-op.o
GEN mips-softmmu/hmp-commands.h
GEN mips-softmmu/hmp-commands-info.h
CC lm32-softmmu/exec.o
GEN microblazeel-softmmu/config-target.h
GEN i386-softmmu/hmp-commands.h
CC mipsn32-linux-user/tcg/tcg.o
GEN sparc-softmmu/config-target.h
GEN ppc-softmmu/hmp-commands-info.h
GEN xtensa-softmmu/hmp-commands.h
CC microblazeel-softmmu/exec.o
CC sparc-softmmu/exec.o
GEN sh4eb-softmmu/config-target.h
GEN ppc64-softmmu/hmp-commands.h
CC sparc-linux-user/tcg/tcg.o
CC sparc-softmmu/tcg/tcg.o
GEN sparc64-softmmu/hmp-commands.h
CC sh4eb-softmmu/exec.o
CC sparc-softmmu/tcg/tcg-op.o
GEN ppc-softmmu/config-target.h
CC mipsn32el-linux-user/tcg/tcg-common.o
GEN ppcemb-softmmu/hmp-commands.h
GEN sh4-softmmu/hmp-commands.h
CC ppc-softmmu/exec.o
CC mipsn32el-linux-user/fpu/softfloat.o
GEN arm-softmmu/hmp-commands-info.h
GEN mips64-softmmu/hmp-commands.h
GEN s390x-softmmu/hmp-commands-info.h
CC ppc-linux-user/tcg/tcg.o
GEN mips-softmmu/config-target.h
GEN i386-softmmu/hmp-commands-info.h
GEN aarch64-softmmu/hmp-commands.h
CC mips-softmmu/exec.o
GEN arm-softmmu/config-target.h
GEN i386-softmmu/config-target.h
CC arm-softmmu/exec.o
GEN ppcemb-softmmu/hmp-commands-info.h
GEN xtensa-softmmu/hmp-commands-info.h
CC s390x-softmmu/gen-features
GEN ppcemb-softmmu/config-target.h
GEN ppc64-softmmu/hmp-commands-info.h
CC cris-softmmu/tcg/tcg-op.o
CC arm-softmmu/tcg/tcg.o
CC ppc64abi32-linux-user/tcg/optimize.o
GEN mips64el-softmmu/hmp-commands.h
CC i386-softmmu/exec.o
GEN mipsel-softmmu/hmp-commands.h
GEN xtensa-softmmu/config-target.h
GEN x86_64-softmmu/hmp-commands.h
GEN sparc64-softmmu/hmp-commands-info.h
CC ppcemb-softmmu/exec.o
GEN sh4-softmmu/hmp-commands-info.h
GEN mips64-softmmu/hmp-commands-info.h
CC xtensa-softmmu/exec.o
CC m68k-linux-user/tcg/tcg-op.o
GEN aarch64-softmmu/hmp-commands-info.h
GEN ppc64-softmmu/config-target.h
GEN sparc64-softmmu/config-target.h
GEN mipsel-softmmu/hmp-commands-info.h
GEN s390x-softmmu/config-target.h
CC ppc64-softmmu/exec.o
GEN sh4-softmmu/config-target.h
GEN aarch64-softmmu/config-target.h
CC sparc64-softmmu/exec.o
GEN s390x-softmmu/gen-features.h
CC ppc64-softmmu/tcg/tcg.o
CC aarch64-softmmu/exec.o
CC sh4-softmmu/exec.o
GEN x86_64-softmmu/hmp-commands-info.h
GEN mips64-softmmu/config-target.h
CC s390x-softmmu/exec.o
GEN mips64el-softmmu/hmp-commands-info.h
GEN mipsel-softmmu/config-target.h
CC mips64-softmmu/exec.o
CC sh4-linux-user/tcg/tcg-op.o
CC mipsel-softmmu/exec.o
GEN x86_64-softmmu/config-target.h
CC m68k-linux-user/tcg/optimize.o
CC armeb-linux-user/tcg/optimize.o
CC x86_64-softmmu/exec.o
GEN mips64el-softmmu/config-target.h
CC mips64el-softmmu/exec.o
CC or1k-linux-user/accel/tcg/cpu-exec.o
CC arm-linux-user/tcg/optimize.o
CC ppc-softmmu/tcg/tcg.o
CC x86_64-linux-user/tcg/tcg-op.o
CC moxie-softmmu/tcg/tcg.o
CC s390x-linux-user/tcg/tcg-op.o
CC sh4eb-softmmu/tcg/tcg.o
CC xtensaeb-softmmu/tcg/tcg-op.o
CC microblazeel-linux-user/tcg/tcg-op.o
CC aarch64_be-linux-user/tcg/optimize.o
CC xtensa-softmmu/tcg/tcg.o
CC ppc-softmmu/tcg/tcg-op.o
CC nios2-softmmu/tcg/tcg.o
CC mipsn32-linux-user/tcg/tcg-op.o
CC nios2-linux-user/tcg/tcg-op.o
CC i386-linux-user/tcg/optimize.o
CC microblaze-linux-user/tcg/tcg-op.o
CC sh4-linux-user/tcg/optimize.o
CC microblaze-linux-user/tcg/optimize.o
CC mips64-softmmu/tcg/tcg.o
CC mips64-softmmu/tcg/tcg-op.o
CC tilegx-linux-user/tcg/optimize.o
CC sh4eb-softmmu/tcg/tcg-op.o
CC ppc64abi32-linux-user/tcg/tcg-common.o
CC sparc32plus-linux-user/tcg/tcg-op.o
CC mips64-linux-user/tcg/tcg-op.o
CC tilegx-linux-user/tcg/tcg-common.o
CC x86_64-softmmu/tcg/tcg.o
CC microblazeel-softmmu/tcg/tcg.o
CC alpha-linux-user/fpu/softfloat.o
CC sparc64-softmmu/tcg/tcg.o
CC alpha-softmmu/tcg/tcg.o
CC aarch64-softmmu/tcg/tcg.o
CC ppc64abi32-linux-user/fpu/softfloat.o
CC x86_64-linux-user/tcg/optimize.o
CC x86_64-linux-user/tcg/tcg-common.o
CC sparc-linux-user/tcg/tcg-op.o
CC microblaze-linux-user/tcg/tcg-common.o
CC arm-linux-user/tcg/tcg-common.o
CC sh4eb-linux-user/tcg/tcg-common.o
CC x86_64-linux-user/fpu/softfloat.o
CC sparc32plus-linux-user/tcg/optimize.o
CC alpha-linux-user/disas.o
CC hppa-linux-user/fpu/softfloat.o
CC arm-linux-user/fpu/softfloat.o
CC aarch64_be-linux-user/tcg/tcg-common.o
CC arm-linux-user/disas.o
CC sparc-linux-user/tcg/optimize.o
CC ppcemb-softmmu/tcg/tcg.o
CC sh4eb-linux-user/fpu/softfloat.o
CC sh4eb-linux-user/disas.o
CC or1k-softmmu/tcg/tcg.o
CC or1k-softmmu/tcg/tcg-op.o
CC armeb-linux-user/tcg/tcg-common.o
CC alpha-softmmu/tcg/tcg-op.o
CC ppc64abi32-linux-user/disas.o
CC cris-linux-user/tcg/tcg-common.o
CC or1k-linux-user/accel/tcg/cpu-exec-common.o
CC nios2-softmmu/tcg/tcg-op.o
CC sparc64-linux-user/tcg/optimize.o
CC nios2-softmmu/tcg/optimize.o
CC aarch64_be-linux-user/fpu/softfloat.o
CC i386-linux-user/tcg/tcg-common.o
CC microblaze-softmmu/tcg/tcg.o
CC i386-linux-user/fpu/softfloat.o
CC tilegx-linux-user/fpu/softfloat.o
CC cris-linux-user/fpu/softfloat.o
CC sparc64-linux-user/tcg/tcg-common.o
CC sh4-linux-user/tcg/tcg-common.o
CC sparc64-softmmu/tcg/tcg-op.o
CC i386-linux-user/disas.o
CC m68k-linux-user/tcg/tcg-common.o
CC armeb-linux-user/fpu/softfloat.o
CC or1k-linux-user/accel/tcg/translate-all.o
CC ppc64le-linux-user/tcg/tcg-op.o
CC aarch64_be-linux-user/disas.o
CC mips-softmmu/tcg/tcg.o
CC xtensa-softmmu/tcg/tcg-op.o
CC sparc64-softmmu/tcg/optimize.o
CC lm32-softmmu/tcg/tcg.o
CC m68k-softmmu/tcg/tcg.o
CC sparc64-softmmu/tcg/tcg-common.o
CC mips64-softmmu/tcg/optimize.o
CC or1k-linux-user/accel/tcg/translator.o
CC moxie-softmmu/tcg/tcg-op.o
CC moxie-softmmu/tcg/optimize.o
CC m68k-linux-user/fpu/softfloat.o
CC mips64el-linux-user/tcg/tcg-op.o
CC sh4-linux-user/fpu/softfloat.o
CC mips-linux-user/tcg/tcg-op.o
CC m68k-linux-user/disas.o
CC mipsel-softmmu/tcg/tcg.o
GEN m68k-linux-user/gdbstub-xml.c
CC cris-softmmu/tcg/optimize.o
CC ppc64-linux-user/tcg/tcg-op.o
CC ppc64-linux-user/tcg/optimize.o
CC mips64el-linux-user/tcg/optimize.o
CC ppc-softmmu/tcg/optimize.o
GEN ppc64abi32-linux-user/gdbstub-xml.c
CC mips64-softmmu/tcg/tcg-common.o
CC hppa-linux-user/disas.o
CC s390x-softmmu/tcg/tcg.o
CC tricore-softmmu/tcg/tcg.o
CC sparc32plus-linux-user/tcg/tcg-common.o
CC nios2-linux-user/tcg/optimize.o
CC hppa-linux-user/gdbstub.o
CC microblazeel-linux-user/tcg/optimize.o
CC m68k-linux-user/gdbstub.o
CC s390x-linux-user/tcg/optimize.o
CC unicore32-softmmu/tcg/tcg.o
CC i386-softmmu/tcg/tcg.o
CC s390x-linux-user/tcg/tcg-common.o
GEN arm-linux-user/gdbstub-xml.c
CC sparc-softmmu/tcg/optimize.o
CC sh4-softmmu/tcg/tcg.o
CC mips-linux-user/tcg/optimize.o
CC mips64el-softmmu/tcg/tcg.o
CC sparc64-softmmu/fpu/softfloat.o
CC aarch64-softmmu/tcg/tcg-op.o
CC mipsel-linux-user/gdbstub.o
CC mipsel-linux-user/thunk.o
CC or1k-linux-user/accel/tcg/user-exec.o
CC mipsel-softmmu/tcg/tcg-op.o
CC armeb-linux-user/disas.o
CC xtensa-softmmu/tcg/optimize.o
CC ppc64abi32-linux-user/gdbstub.o
CC aarch64-linux-user/linux-user/mmap.o
CC sparc-softmmu/tcg/tcg-common.o
CC ppcemb-softmmu/tcg/tcg-op.o
CC ppc-linux-user/tcg/tcg-op.o
CC ppc64-softmmu/tcg/tcg-op.o
CC xtensaeb-softmmu/tcg/optimize.o
GEN armeb-linux-user/gdbstub-xml.c
CC nios2-softmmu/tcg/tcg-common.o
CC ppc-linux-user/tcg/optimize.o
CC mipsel-softmmu/tcg/optimize.o
CC tilegx-linux-user/disas.o
CC ppc64-softmmu/tcg/optimize.o
CC mips64el-softmmu/tcg/tcg-op.o
CC ppc-linux-user/tcg/tcg-common.o
CC ppc-linux-user/fpu/softfloat.o
CC cris-linux-user/disas.o
CC aarch64-softmmu/tcg/optimize.o
CC arm-softmmu/tcg/tcg-op.o
CC cris-softmmu/tcg/tcg-common.o
GEN aarch64_be-linux-user/gdbstub-xml.c
CC s390x-linux-user/fpu/softfloat.o
CC sh4eb-softmmu/tcg/optimize.o
CC microblazeel-linux-user/tcg/tcg-common.o
CC x86_64-linux-user/disas.o
CC tricore-softmmu/tcg/tcg-op.o
CC sparc64-softmmu/disas.o
CC sparc64-linux-user/fpu/softfloat.o
CC ppc-linux-user/disas.o
CC sh4eb-softmmu/tcg/tcg-common.o
CC sh4-linux-user/disas.o
CC xtensa-softmmu/tcg/tcg-common.o
CC mips64el-softmmu/tcg/optimize.o
GEN x86_64-linux-user/gdbstub-xml.c
CC microblazeel-linux-user/fpu/softfloat.o
CC xtensaeb-softmmu/tcg/tcg-common.o
CC cris-softmmu/fpu/softfloat.o
CC m68k-linux-user/thunk.o
CC aarch64_be-linux-user/gdbstub.o
CC mipsel-linux-user/accel/stubs/hax-stub.o
CC lm32-softmmu/tcg/tcg-op.o
CC s390x-softmmu/tcg/tcg-op.o
CC mipsn32el-linux-user/disas.o
CC x86_64-softmmu/tcg/tcg-op.o
CC mipsn32-linux-user/tcg/optimize.o
CC cris-softmmu/disas.o
CC sh4-linux-user/gdbstub.o
CC mips-softmmu/tcg/tcg-op.o
CC microblaze-linux-user/fpu/softfloat.o
CC nios2-linux-user/tcg/tcg-common.o
CC s390x-linux-user/disas.o
CC unicore32-softmmu/tcg/tcg-op.o
CC microblaze-softmmu/tcg/tcg-op.o
CC mipsn32-linux-user/tcg/tcg-common.o
CC mipsel-linux-user/accel/stubs/hvf-stub.o
CC mips64-softmmu/fpu/softfloat.o
CC ppcemb-softmmu/tcg/optimize.o
CC s390x-softmmu/tcg/optimize.o
CC sparc64-linux-user/disas.o
CC armeb-linux-user/gdbstub.o
CC or1k-softmmu/tcg/optimize.o
CC microblazeel-softmmu/tcg/tcg-op.o
CC moxie-softmmu/tcg/tcg-common.o
CC mipsn32-linux-user/fpu/softfloat.o
CC sh4eb-linux-user/gdbstub.o
CC nios2-linux-user/fpu/softfloat.o
CC sparc-softmmu/fpu/softfloat.o
CC mipsn32el-linux-user/gdbstub.o
CC sparc-softmmu/disas.o
CC or1k-linux-user/accel/tcg/user-exec-stub.o
GEN s390x-linux-user/gdbstub-xml.c
CC microblazeel-softmmu/tcg/optimize.o
CC ppc-softmmu/tcg/tcg-common.o
CC mipsel-linux-user/accel/stubs/kvm-stub.o
CC ppc64-linux-user/tcg/tcg-common.o
CC nios2-softmmu/fpu/softfloat.o
CC nios2-softmmu/disas.o
CC or1k-linux-user/linux-user/main.o
CC sparc64-softmmu/arch_init.o
CC ppc-softmmu/fpu/softfloat.o
CC sparc-linux-user/tcg/tcg-common.o
CC sh4eb-softmmu/fpu/softfloat.o
CC sparc-linux-user/fpu/softfloat.o
CC sparc64-linux-user/gdbstub.o
CC ppc-softmmu/disas.o
CC mipsel-linux-user/accel/tcg/tcg-runtime.o
CC cris-softmmu/arch_init.o
CC sparc32plus-linux-user/fpu/softfloat.o
CC mips64-softmmu/disas.o
CC sh4eb-linux-user/thunk.o
CC hppa-linux-user/thunk.o
CC sh4eb-linux-user/accel/stubs/hax-stub.o
CC hppa-linux-user/accel/stubs/hax-stub.o
CC mips64el-softmmu/tcg/tcg-common.o
CC or1k-linux-user/linux-user/syscall.o
CC xtensaeb-softmmu/fpu/softfloat.o
CC xtensa-softmmu/fpu/softfloat.o
CC mips64-linux-user/tcg/optimize.o
CC arm-softmmu/tcg/optimize.o
CC i386-softmmu/tcg/tcg-op.o
CC alpha-linux-user/gdbstub.o
CC mipsn32-linux-user/disas.o
CC or1k-linux-user/linux-user/strace.o
CC cris-softmmu/cpus.o
GEN ppc-softmmu/gdbstub-xml.c
CC microblazeel-linux-user/disas.o
CC mipsel-linux-user/accel/tcg/cpu-exec.o
CC mipsn32el-linux-user/thunk.o
CC unicore32-softmmu/tcg/optimize.o
CC tilegx-linux-user/gdbstub.o
CC tilegx-linux-user/thunk.o
CC arm-softmmu/tcg/tcg-common.o
CC microblazeel-linux-user/gdbstub.o
CC microblazeel-linux-user/thunk.o
CC microblazeel-linux-user/accel/stubs/hax-stub.o
CC or1k-linux-user/linux-user/mmap.o
CC or1k-linux-user/linux-user/signal.o
CC ppc64le-linux-user/tcg/optimize.o
CC ppc64abi32-linux-user/thunk.o
CC ppc64-linux-user/fpu/softfloat.o
CC ppc64-linux-user/disas.o
CC sparc32plus-linux-user/disas.o
GEN i386-linux-user/gdbstub-xml.c
CC alpha-linux-user/thunk.o
CC unicore32-softmmu/tcg/tcg-common.o
CC sh4-linux-user/thunk.o
CC microblazeel-linux-user/accel/stubs/hvf-stub.o
CC mipsel-linux-user/accel/tcg/cpu-exec-common.o
CC mips64el-linux-user/tcg/tcg-common.o
CC sparc-linux-user/disas.o
CC mips64-softmmu/arch_init.o
CC ppc64-softmmu/tcg/tcg-common.o
CC xtensa-softmmu/disas.o
CC aarch64-linux-user/linux-user/signal.o
CC mipsn32el-linux-user/accel/stubs/hax-stub.o
CC mipsel-linux-user/accel/tcg/translate-all.o
CC alpha-softmmu/tcg/optimize.o
CC mipsn32el-linux-user/accel/stubs/hvf-stub.o
GEN ppc-linux-user/gdbstub-xml.c
CC mipsel-softmmu/tcg/tcg-common.o
CC mipsn32el-linux-user/accel/stubs/kvm-stub.o
CC sparc-softmmu/arch_init.o
CC i386-linux-user/gdbstub.o
CC mipsel-softmmu/fpu/softfloat.o
CC moxie-softmmu/fpu/softfloat.o
CC mips64-softmmu/cpus.o
CC m68k-softmmu/tcg/tcg-op.o
CC s390x-linux-user/gdbstub.o
CC i386-softmmu/tcg/optimize.o
CC hppa-linux-user/accel/stubs/hvf-stub.o
CC ppc64abi32-linux-user/accel/stubs/hax-stub.o
CC sparc64-linux-user/thunk.o
CC mipsn32el-linux-user/accel/tcg/tcg-runtime.o
CC or1k-linux-user/linux-user/elfload.o
CC sh4eb-linux-user/accel/stubs/hvf-stub.o
CC alpha-linux-user/accel/stubs/hax-stub.o
CC alpha-linux-user/accel/stubs/hvf-stub.o
CC armeb-linux-user/thunk.o
CC x86_64-softmmu/tcg/optimize.o
CC arm-softmmu/fpu/softfloat.o
CC microblazeel-linux-user/accel/stubs/kvm-stub.o
CC mips-linux-user/tcg/tcg-common.o
CC nios2-linux-user/disas.o
CC sh4eb-softmmu/disas.o
CC or1k-softmmu/tcg/tcg-common.o
CC aarch64-linux-user/linux-user/elfload.o
CC arm-linux-user/gdbstub.o
CC sparc-linux-user/gdbstub.o
CC sparc-linux-user/thunk.o
CC hppa-linux-user/accel/stubs/kvm-stub.o
CC alpha-linux-user/accel/stubs/kvm-stub.o
CC sparc-linux-user/accel/stubs/hax-stub.o
CC sparc-linux-user/accel/stubs/hvf-stub.o
CC ppc64abi32-linux-user/accel/stubs/hvf-stub.o
CC m68k-softmmu/tcg/optimize.o
CC mips64el-linux-user/fpu/softfloat.o
CC alpha-linux-user/accel/tcg/tcg-runtime.o
CC sh4-softmmu/tcg/tcg-op.o
CC hppa-linux-user/accel/tcg/tcg-runtime.o
CC mips-linux-user/fpu/softfloat.o
CC hppa-linux-user/accel/tcg/cpu-exec.o
CC mips64-softmmu/monitor.o
CC mips64-linux-user/tcg/tcg-common.o
CC mips64-linux-user/fpu/softfloat.o
CC or1k-softmmu/fpu/softfloat.o
CC mipsn32-linux-user/gdbstub.o
CC mips64el-softmmu/fpu/softfloat.o
CC or1k-softmmu/disas.o
CC nios2-linux-user/gdbstub.o
CC mipsn32el-linux-user/accel/tcg/cpu-exec.o
CC sh4eb-linux-user/accel/stubs/kvm-stub.o
CC x86_64-linux-user/gdbstub.o
CC ppc-softmmu/arch_init.o
CC ppc64abi32-linux-user/accel/stubs/kvm-stub.o
CC ppc-softmmu/cpus.o
CC aarch64-softmmu/tcg/tcg-common.o
CC nios2-linux-user/thunk.o
CC ppcemb-softmmu/tcg/tcg-common.o
CC ppcemb-softmmu/fpu/softfloat.o
CC m68k-linux-user/accel/stubs/hax-stub.o
CC ppc-softmmu/monitor.o
CC alpha-linux-user/accel/tcg/cpu-exec.o
CC m68k-linux-user/accel/stubs/hvf-stub.o
CC ppc64le-linux-user/tcg/tcg-common.o
CC mips64-softmmu/gdbstub.o
CC sparc32plus-linux-user/gdbstub.o
CC sparc32plus-linux-user/thunk.o
CC s390x-linux-user/thunk.o
CC ppc-linux-user/gdbstub.o
CC arm-softmmu/disas.o
CC mipsel-linux-user/accel/tcg/translator.o
CC or1k-linux-user/linux-user/linuxload.o
CC xtensa-softmmu/arch_init.o
GEN arm-softmmu/gdbstub-xml.c
CC x86_64-linux-user/thunk.o
CC moxie-softmmu/disas.o
CC xtensaeb-softmmu/disas.o
CC aarch64_be-linux-user/thunk.o
CC ppc64abi32-linux-user/accel/tcg/tcg-runtime.o
CC ppc64-softmmu/fpu/softfloat.o
CC mipsn32-linux-user/thunk.o
CC aarch64-linux-user/linux-user/linuxload.o
CC ppc64le-linux-user/fpu/softfloat.o
CC mips64el-linux-user/disas.o
CC microblaze-softmmu/tcg/optimize.o
CC s390x-softmmu/tcg/tcg-common.o
CC microblazeel-softmmu/tcg/tcg-common.o
CC microblazeel-softmmu/fpu/softfloat.o
CC hppa-linux-user/accel/tcg/cpu-exec-common.o
CC hppa-linux-user/accel/tcg/translate-all.o
CC armeb-linux-user/accel/stubs/hax-stub.o
CC ppc-softmmu/gdbstub.o
CC sparc64-softmmu/cpus.o
CC alpha-softmmu/tcg/tcg-common.o
CC mips-linux-user/disas.o
CC mipsn32el-linux-user/accel/tcg/cpu-exec-common.o
CC aarch64-softmmu/fpu/softfloat.o
CC sparc64-linux-user/accel/stubs/hax-stub.o
CC tilegx-linux-user/accel/stubs/hax-stub.o
CC unicore32-softmmu/fpu/softfloat.o
CC alpha-linux-user/accel/tcg/cpu-exec-common.o
CC alpha-linux-user/accel/tcg/translate-all.o
CC mips64el-softmmu/disas.o
CC ppc64-softmmu/disas.o
CC tilegx-linux-user/accel/stubs/hvf-stub.o
CC mipsn32el-linux-user/accel/tcg/translate-all.o
CC armeb-linux-user/accel/stubs/hvf-stub.o
CC s390x-softmmu/fpu/softfloat.o
CC moxie-softmmu/arch_init.o
CC mips64el-linux-user/gdbstub.o
CC m68k-softmmu/tcg/tcg-common.o
CC mips64el-linux-user/thunk.o
CC hppa-linux-user/accel/tcg/translator.o
CC i386-linux-user/thunk.o
CC microblazeel-softmmu/disas.o
CC microblaze-softmmu/tcg/tcg-common.o
CC alpha-softmmu/fpu/softfloat.o
CC ppc64abi32-linux-user/accel/tcg/cpu-exec.o
CC tricore-softmmu/tcg/optimize.o
CC lm32-softmmu/tcg/optimize.o
CC nios2-linux-user/accel/stubs/hax-stub.o
CC sparc64-softmmu/monitor.o
CC i386-linux-user/accel/stubs/hax-stub.o
CC s390x-softmmu/disas.o
CC mips-linux-user/gdbstub.o
CC sparc64-softmmu/gdbstub.o
CC aarch64_be-linux-user/accel/stubs/hax-stub.o
CC sparc64-softmmu/balloon.o
CC armeb-linux-user/accel/stubs/kvm-stub.o
CC aarch64-linux-user/linux-user/uaccess.o
CC aarch64-linux-user/linux-user/uname.o
CC mips64-linux-user/disas.o
CC or1k-softmmu/arch_init.o
CC sh4-linux-user/accel/stubs/hax-stub.o
CC mipsn32-linux-user/accel/stubs/hax-stub.o
CC i386-linux-user/accel/stubs/hvf-stub.o
CC armeb-linux-user/accel/tcg/tcg-runtime.o
CC mipsn32el-linux-user/accel/tcg/translator.o
CC mipsel-linux-user/accel/tcg/user-exec.o
CC sh4eb-linux-user/accel/tcg/tcg-runtime.o
CC mips-linux-user/thunk.o
CC nios2-linux-user/accel/stubs/hvf-stub.o
CC arm-linux-user/thunk.o
CC aarch64_be-linux-user/accel/stubs/hvf-stub.o
CC arm-linux-user/accel/stubs/hax-stub.o
CC ppcemb-softmmu/disas.o
CC hppa-linux-user/accel/tcg/user-exec.o
CC x86_64-softmmu/tcg/tcg-common.o
CC nios2-linux-user/accel/stubs/kvm-stub.o
CC sh4-linux-user/accel/stubs/hvf-stub.o
CC ppc64abi32-linux-user/accel/tcg/cpu-exec-common.o
CC moxie-softmmu/cpus.o
CC sparc64-linux-user/accel/stubs/hvf-stub.o
CC moxie-softmmu/monitor.o
CCAS aarch64-linux-user/linux-user/safe-syscall.o
CC alpha-softmmu/disas.o
CC lm32-softmmu/tcg/tcg-common.o
GEN ppc64-softmmu/gdbstub-xml.c
CC ppc64-softmmu/arch_init.o
CC aarch64-linux-user/linux-user/flatload.o
CC x86_64-linux-user/accel/stubs/hax-stub.o
CC sparc32plus-linux-user/accel/stubs/hax-stub.o
CC xtensa-softmmu/cpus.o
CC tilegx-linux-user/accel/stubs/kvm-stub.o
CC xtensa-softmmu/monitor.o
CC aarch64_be-linux-user/accel/stubs/kvm-stub.o
CC x86_64-softmmu/fpu/softfloat.o
CC xtensa-softmmu/gdbstub.o
CC m68k-linux-user/accel/stubs/kvm-stub.o
CC hppa-linux-user/accel/tcg/user-exec-stub.o
CC mips-linux-user/accel/stubs/hax-stub.o
CC armeb-linux-user/accel/tcg/cpu-exec.o
CC mips64el-linux-user/accel/stubs/hax-stub.o
CC m68k-linux-user/accel/tcg/tcg-runtime.o
CC microblaze-linux-user/disas.o
CC sparc-linux-user/accel/stubs/kvm-stub.o
CC mips-linux-user/accel/stubs/hvf-stub.o
CC lm32-softmmu/fpu/softfloat.o
CC microblaze-softmmu/fpu/softfloat.o
CC i386-linux-user/accel/stubs/kvm-stub.o
CC ppc64abi32-linux-user/accel/tcg/translate-all.o
CC cris-softmmu/monitor.o
CC mips-linux-user/accel/stubs/kvm-stub.o
CC mips-linux-user/accel/tcg/tcg-runtime.o
CC ppc-linux-user/thunk.o
CC sh4eb-linux-user/accel/tcg/cpu-exec.o
CC xtensa-softmmu/balloon.o
CC sparc64-linux-user/accel/stubs/kvm-stub.o
GEN ppcemb-softmmu/gdbstub-xml.c
CC sparc-linux-user/accel/tcg/tcg-runtime.o
CC aarch64-linux-user/target/arm/arm-semi.o
CC i386-softmmu/tcg/tcg-common.o
CC x86_64-linux-user/accel/stubs/hvf-stub.o
CC cris-linux-user/gdbstub.o
CC mips64-linux-user/gdbstub.o
CC unicore32-softmmu/disas.o
CC sparc-softmmu/cpus.o
CC unicore32-softmmu/arch_init.o
GEN ppc64-linux-user/gdbstub-xml.c
CC mipsn32-linux-user/accel/stubs/hvf-stub.o
CC arm-linux-user/accel/stubs/hvf-stub.o
CC mips-linux-user/accel/tcg/cpu-exec.o
CC armeb-linux-user/accel/tcg/cpu-exec-common.o
CC mips64el-softmmu/arch_init.o
CC i386-linux-user/accel/tcg/tcg-runtime.o
CC tilegx-linux-user/accel/tcg/tcg-runtime.o
CC xtensa-softmmu/ioport.o
CC sh4-softmmu/tcg/optimize.o
CC microblazeel-softmmu/arch_init.o
CC mips64-linux-user/thunk.o
CC xtensa-softmmu/numa.o
CC mipsel-linux-user/accel/tcg/user-exec-stub.o
CC ppc64-linux-user/gdbstub.o
CC microblazeel-linux-user/accel/tcg/tcg-runtime.o
CC aarch64_be-linux-user/accel/tcg/tcg-runtime.o
CC ppc64-linux-user/thunk.o
CC alpha-linux-user/accel/tcg/translator.o
CC sparc64-linux-user/accel/tcg/tcg-runtime.o
CC ppc64-linux-user/accel/stubs/hax-stub.o
CC mips-linux-user/accel/tcg/cpu-exec-common.o
CC mipsel-softmmu/disas.o
CC xtensa-softmmu/qtest.o
CC microblaze-linux-user/gdbstub.o
CC unicore32-softmmu/cpus.o
CC s390x-linux-user/accel/stubs/hax-stub.o
CC m68k-linux-user/accel/tcg/cpu-exec.o
CC tricore-softmmu/tcg/tcg-common.o
CC mips64-linux-user/accel/stubs/hax-stub.o
CC x86_64-linux-user/accel/stubs/kvm-stub.o
CC sh4-softmmu/tcg/tcg-common.o
CC arm-linux-user/accel/stubs/kvm-stub.o
CC m68k-softmmu/fpu/softfloat.o
CC microblaze-linux-user/thunk.o
CC or1k-softmmu/cpus.o
CC nios2-linux-user/accel/tcg/tcg-runtime.o
CC tricore-softmmu/fpu/softfloat.o
CC arm-linux-user/accel/tcg/tcg-runtime.o
CC alpha-softmmu/arch_init.o
CC x86_64-linux-user/accel/tcg/tcg-runtime.o
CC s390x-linux-user/accel/stubs/hvf-stub.o
GEN s390x-softmmu/gdbstub-xml.c
CC or1k-softmmu/monitor.o
CC i386-linux-user/accel/tcg/cpu-exec.o
CC mipsel-linux-user/linux-user/main.o
CC mipsn32el-linux-user/accel/tcg/user-exec.o
CC ppc-linux-user/accel/stubs/hax-stub.o
CC mipsel-softmmu/arch_init.o
CC nios2-softmmu/arch_init.o
CC lm32-softmmu/disas.o
CC armeb-linux-user/accel/tcg/translate-all.o
CC microblazeel-linux-user/accel/tcg/cpu-exec.o
CC microblazeel-linux-user/accel/tcg/cpu-exec-common.o
CC aarch64_be-linux-user/accel/tcg/cpu-exec.o
CC microblazeel-linux-user/accel/tcg/translate-all.o
CC cris-linux-user/thunk.o
CC armeb-linux-user/accel/tcg/translator.o
CC tilegx-linux-user/accel/tcg/cpu-exec.o
CC sparc64-linux-user/accel/tcg/cpu-exec.o
CC m68k-linux-user/accel/tcg/cpu-exec-common.o
CC sparc-softmmu/monitor.o
CC unicore32-softmmu/monitor.o
CC sparc64-softmmu/ioport.o
CC sh4eb-linux-user/accel/tcg/cpu-exec-common.o
CC alpha-linux-user/accel/tcg/user-exec.o
CC alpha-linux-user/accel/tcg/user-exec-stub.o
CC mips-softmmu/tcg/optimize.o
CC m68k-linux-user/accel/tcg/translate-all.o
CC mipsel-linux-user/linux-user/syscall.o
CC x86_64-linux-user/accel/tcg/cpu-exec.o
CC sh4-linux-user/accel/stubs/kvm-stub.o
CC sparc64-softmmu/numa.o
CC s390x-linux-user/accel/stubs/kvm-stub.o
CC microblaze-softmmu/disas.o
CC arm-linux-user/accel/tcg/cpu-exec.o
CC x86_64-softmmu/disas.o
CC ppc-linux-user/accel/stubs/hvf-stub.o
CC mipsn32el-linux-user/accel/tcg/user-exec-stub.o
CC arm-softmmu/arch_init.o
CC ppc64abi32-linux-user/accel/tcg/translator.o
CC mips64el-softmmu/cpus.o
CC sparc64-linux-user/accel/tcg/cpu-exec-common.o
CC mips64-softmmu/balloon.o
CC sparc64-softmmu/qtest.o
CC cris-linux-user/accel/stubs/hax-stub.o
CC microblaze-softmmu/arch_init.o
CC alpha-softmmu/cpus.o
CC ppc64-linux-user/accel/stubs/hvf-stub.o
CC mipsn32el-linux-user/linux-user/main.o
CC sh4eb-linux-user/accel/tcg/translate-all.o
CC mips64el-linux-user/accel/stubs/hvf-stub.o
CC i386-softmmu/fpu/softfloat.o
CC mips-softmmu/tcg/tcg-common.o
CC hppa-linux-user/linux-user/main.o
CC sh4eb-softmmu/arch_init.o
CC mips64-softmmu/ioport.o
CC xtensa-softmmu/memory.o
CC tricore-softmmu/disas.o
CC microblazeel-softmmu/cpus.o
CC ppc-linux-user/accel/stubs/kvm-stub.o
CC nios2-softmmu/cpus.o
CC sh4-linux-user/accel/tcg/tcg-runtime.o
CC aarch64-linux-user/target/arm/kvm-stub.o
CC xtensa-softmmu/memory_mapping.o
CC s390x-linux-user/accel/tcg/tcg-runtime.o
CC tricore-softmmu/arch_init.o
CC microblaze-linux-user/accel/stubs/hax-stub.o
CC s390x-softmmu/arch_init.o
CC i386-softmmu/disas.o
CC nios2-linux-user/accel/tcg/cpu-exec.o
CC sparc64-linux-user/accel/tcg/translate-all.o
CC sh4-linux-user/accel/tcg/cpu-exec.o
CC mips-softmmu/fpu/softfloat.o
CC aarch64-softmmu/disas.o
CC sh4eb-softmmu/cpus.o
CC mips-softmmu/disas.o
CC cris-linux-user/accel/stubs/hvf-stub.o
CC x86_64-linux-user/accel/tcg/cpu-exec-common.o
CC ppcemb-softmmu/arch_init.o
CC microblaze-linux-user/accel/stubs/hvf-stub.o
CC tilegx-linux-user/accel/tcg/cpu-exec-common.o
CC i386-linux-user/accel/tcg/cpu-exec-common.o
CC aarch64-linux-user/target/arm/translate.o
CC microblazeel-linux-user/accel/tcg/translator.o
CC mipsn32el-linux-user/linux-user/syscall.o
CC sh4-linux-user/accel/tcg/cpu-exec-common.o
CC aarch64_be-linux-user/accel/tcg/cpu-exec-common.o
CC aarch64_be-linux-user/accel/tcg/translate-all.o
CC arm-linux-user/accel/tcg/cpu-exec-common.o
CC x86_64-linux-user/accel/tcg/translate-all.o
CC microblaze-linux-user/accel/stubs/kvm-stub.o
CC x86_64-linux-user/accel/tcg/translator.o
CC alpha-softmmu/monitor.o
CC ppc-linux-user/accel/tcg/tcg-runtime.o
CC m68k-softmmu/disas.o
CC or1k-softmmu/gdbstub.o
CC mipsn32-linux-user/accel/stubs/kvm-stub.o
CC cris-linux-user/accel/stubs/kvm-stub.o
CC mipsel-softmmu/cpus.o
CC cris-linux-user/accel/tcg/tcg-runtime.o
CC mipsel-softmmu/monitor.o
CC ppc-softmmu/balloon.o
CC ppc-softmmu/ioport.o
CC microblazeel-linux-user/accel/tcg/user-exec.o
CC mipsel-softmmu/gdbstub.o
CC mipsn32el-linux-user/linux-user/strace.o
CC tilegx-linux-user/accel/tcg/translate-all.o
CC xtensa-softmmu/dump.o
CC moxie-softmmu/gdbstub.o
CC s390x-softmmu/cpus.o
CC arm-linux-user/accel/tcg/translate-all.o
CC mipsel-linux-user/linux-user/strace.o
CC sh4-linux-user/accel/tcg/translate-all.o
CC ppc64abi32-linux-user/accel/tcg/user-exec.o
CC s390x-linux-user/accel/tcg/cpu-exec.o
CC armeb-linux-user/accel/tcg/user-exec.o
CC mips-linux-user/accel/tcg/translate-all.o
CC or1k-linux-user/linux-user/uaccess.o
CC i386-linux-user/accel/tcg/translate-all.o
CC sh4eb-linux-user/accel/tcg/translator.o
CC microblaze-linux-user/accel/tcg/tcg-runtime.o
CC aarch64_be-linux-user/accel/tcg/translator.o
CC m68k-linux-user/accel/tcg/translator.o
CC unicore32-softmmu/gdbstub.o
CC ppc-softmmu/numa.o
CC sh4eb-softmmu/monitor.o
CC alpha-linux-user/linux-user/main.o
CC sh4-softmmu/fpu/softfloat.o
CC sh4-softmmu/disas.o
CC or1k-linux-user/linux-user/uname.o
CC ppc64abi32-linux-user/accel/tcg/user-exec-stub.o
CC sh4-linux-user/accel/tcg/translator.o
CC xtensaeb-softmmu/arch_init.o
CC xtensaeb-softmmu/cpus.o
CC sparc-linux-user/accel/tcg/cpu-exec.o
CC mips64-softmmu/numa.o
CC microblaze-linux-user/accel/tcg/cpu-exec.o
CC hppa-linux-user/linux-user/syscall.o
CC sparc64-softmmu/memory.o
CC mipsn32-linux-user/accel/tcg/tcg-runtime.o
CC mipsel-softmmu/balloon.o
CC sh4eb-softmmu/gdbstub.o
CC unicore32-softmmu/balloon.o
CC cris-linux-user/accel/tcg/cpu-exec.o
CC ppc-linux-user/accel/tcg/cpu-exec.o
CC armeb-linux-user/accel/tcg/user-exec-stub.o
CC mips64el-linux-user/accel/stubs/kvm-stub.o
CC cris-softmmu/gdbstub.o
CC mipsn32-linux-user/accel/tcg/cpu-exec.o
CC mips64-linux-user/accel/stubs/hvf-stub.o
GEN i386-softmmu/gdbstub-xml.c
CC mipsel-linux-user/linux-user/mmap.o
CC mipsel-softmmu/ioport.o
CC m68k-linux-user/accel/tcg/user-exec.o
CC m68k-linux-user/accel/tcg/user-exec-stub.o
CC sh4eb-linux-user/accel/tcg/user-exec.o
CC ppc64-softmmu/cpus.o
CC xtensa-softmmu/migration/ram.o
CC mipsn32el-linux-user/linux-user/mmap.o
CC ppc-softmmu/qtest.o
CC armeb-linux-user/linux-user/main.o
CC s390x-linux-user/accel/tcg/cpu-exec-common.o
CC sparc-softmmu/gdbstub.o
CC sparc64-linux-user/accel/tcg/translator.o
CC microblazeel-softmmu/monitor.o
CC ppc-softmmu/memory.o
CC nios2-linux-user/accel/tcg/cpu-exec-common.o
CC ppc64abi32-linux-user/linux-user/main.o
CC i386-softmmu/arch_init.o
CC ppcemb-softmmu/cpus.o
CC ppcemb-softmmu/monitor.o
CC arm-linux-user/accel/tcg/translator.o
CC ppc64le-linux-user/disas.o
CC alpha-softmmu/gdbstub.o
CC microblazeel-linux-user/accel/tcg/user-exec-stub.o
CC aarch64_be-linux-user/accel/tcg/user-exec.o
CC sh4eb-softmmu/balloon.o
CC arm-linux-user/accel/tcg/user-exec.o
CC aarch64-linux-user/target/arm/op_helper.o
CC s390x-softmmu/monitor.o
CC sh4eb-softmmu/ioport.o
CC sparc-linux-user/accel/tcg/cpu-exec-common.o
CC microblaze-linux-user/accel/tcg/cpu-exec-common.o
CC alpha-linux-user/linux-user/syscall.o
CC x86_64-linux-user/accel/tcg/user-exec.o
CC ppc-linux-user/accel/tcg/cpu-exec-common.o
CC sparc32plus-linux-user/accel/stubs/hvf-stub.o
CC s390x-linux-user/accel/tcg/translate-all.o
CC microblaze-linux-user/accel/tcg/translate-all.o
CC ppc-linux-user/accel/tcg/translate-all.o
CC moxie-softmmu/balloon.o
CC nios2-linux-user/accel/tcg/translate-all.o
CC mips64-softmmu/qtest.o
CC tricore-softmmu/cpus.o
CC cris-linux-user/accel/tcg/cpu-exec-common.o
CC microblazeel-linux-user/linux-user/main.o
CC cris-linux-user/accel/tcg/translate-all.o
CC sparc32plus-linux-user/accel/stubs/kvm-stub.o
CC sparc-softmmu/balloon.o
CC nios2-softmmu/monitor.o
CC mips-linux-user/accel/tcg/translator.o
CC sh4-linux-user/accel/tcg/user-exec.o
CC mipsel-linux-user/linux-user/signal.o
CC alpha-softmmu/balloon.o
CC xtensa-softmmu/accel/accel.o
CC xtensa-softmmu/accel/stubs/hax-stub.o
CC sparc-linux-user/accel/tcg/translate-all.o
CC alpha-linux-user/linux-user/strace.o
CC tilegx-linux-user/accel/tcg/translator.o
CC mipsn32-linux-user/accel/tcg/cpu-exec-common.o
CC xtensaeb-softmmu/monitor.o
CC arm-softmmu/cpus.o
CC mips64el-softmmu/monitor.o
CC armeb-linux-user/linux-user/syscall.o
CC ppc-softmmu/memory_mapping.o
CC sh4eb-linux-user/accel/tcg/user-exec-stub.o
CC mipsn32-linux-user/accel/tcg/translate-all.o
CC sparc64-linux-user/accel/tcg/user-exec.o
CC sparc-linux-user/accel/tcg/translator.o
CC ppcemb-softmmu/gdbstub.o
CC sparc64-linux-user/accel/tcg/user-exec-stub.o
CC i386-linux-user/accel/tcg/translator.o
CC hppa-linux-user/linux-user/strace.o
CC arm-softmmu/monitor.o
CC sparc32plus-linux-user/accel/tcg/tcg-runtime.o
CC ppc64-linux-user/accel/stubs/kvm-stub.o
CC sh4eb-linux-user/linux-user/main.o
CC ppc64abi32-linux-user/linux-user/syscall.o
CC mips64-softmmu/memory.o
CC cris-linux-user/accel/tcg/translator.o
GEN ppc64le-linux-user/gdbstub-xml.c
CC sparc-linux-user/accel/tcg/user-exec.o
CC hppa-linux-user/linux-user/mmap.o
CC s390x-softmmu/gdbstub.o
CC arm-linux-user/accel/tcg/user-exec-stub.o
CC sh4eb-softmmu/numa.o
CC sparc32plus-linux-user/accel/tcg/cpu-exec.o
CC mipsel-softmmu/numa.o
CC arm-linux-user/linux-user/main.o
CC nios2-linux-user/accel/tcg/translator.o
CC microblaze-linux-user/accel/tcg/translator.o
CC alpha-linux-user/linux-user/mmap.o
CC armeb-linux-user/linux-user/strace.o
CC mipsel-linux-user/linux-user/elfload.o
CC ppc64le-linux-user/gdbstub.o
CC mips64-softmmu/memory_mapping.o
CC cris-softmmu/balloon.o
CC ppc64-linux-user/accel/tcg/tcg-runtime.o
CC tilegx-linux-user/accel/tcg/user-exec.o
CC m68k-linux-user/linux-user/main.o
CC i386-linux-user/accel/tcg/user-exec.o
CC mipsel-softmmu/qtest.o
CC mips-linux-user/accel/tcg/user-exec.o
CC microblazeel-linux-user/linux-user/syscall.o
CC mips64el-softmmu/gdbstub.o
CC sparc-linux-user/accel/tcg/user-exec-stub.o
CC alpha-linux-user/linux-user/signal.o
CC mips64-softmmu/dump.o
CC sparc64-softmmu/memory_mapping.o
CC moxie-softmmu/ioport.o
CC microblazeel-linux-user/linux-user/strace.o
CC aarch64_be-linux-user/accel/tcg/user-exec-stub.o
CC s390x-linux-user/accel/tcg/translator.o
CC armeb-linux-user/linux-user/mmap.o
CC arm-softmmu/gdbstub.o
CC ppc64abi32-linux-user/linux-user/strace.o
CC cris-linux-user/accel/tcg/user-exec.o
CC tilegx-linux-user/accel/tcg/user-exec-stub.o
CC nios2-softmmu/gdbstub.o
CC mips64-softmmu/migration/ram.o
CC mips-linux-user/accel/tcg/user-exec-stub.o
CC tricore-softmmu/monitor.o
CC microblaze-linux-user/accel/tcg/user-exec.o
CC sparc64-softmmu/dump.o
CC sh4-linux-user/accel/tcg/user-exec-stub.o
CC sparc32plus-linux-user/accel/tcg/cpu-exec-common.o
CC sparc32plus-linux-user/accel/tcg/translate-all.o
CC aarch64-linux-user/target/arm/helper.o
CC sparc-softmmu/ioport.o
CC ppc-linux-user/accel/tcg/translator.o
CC cris-softmmu/ioport.o
CC tricore-softmmu/gdbstub.o
CC mipsn32-linux-user/accel/tcg/translator.o
CC i386-softmmu/cpus.o
CC i386-softmmu/monitor.o
CC sh4eb-linux-user/linux-user/syscall.o
CC nios2-linux-user/accel/tcg/user-exec.o
CC aarch64_be-linux-user/linux-user/main.o
CC nios2-linux-user/accel/tcg/user-exec-stub.o
CC x86_64-linux-user/accel/tcg/user-exec-stub.o
CC ppc64le-linux-user/thunk.o
CC mips64el-linux-user/accel/tcg/tcg-runtime.o
CC ppc64le-linux-user/accel/stubs/hax-stub.o
CC m68k-linux-user/linux-user/syscall.o
CC nios2-linux-user/linux-user/main.o
CC sh4-linux-user/linux-user/main.o
CC sh4-softmmu/arch_init.o
CC s390x-linux-user/accel/tcg/user-exec.o
CC or1k-softmmu/balloon.o
CC tricore-softmmu/balloon.o
CC m68k-linux-user/linux-user/strace.o
CC moxie-softmmu/numa.o
CC aarch64_be-linux-user/linux-user/syscall.o
CC ppc64-linux-user/accel/tcg/cpu-exec.o
GEN m68k-softmmu/gdbstub-xml.c
CC arm-linux-user/linux-user/syscall.o
CC alpha-softmmu/ioport.o
CC aarch64-linux-user/target/arm/cpu.o
CC cris-softmmu/numa.o
CC microblaze-linux-user/accel/tcg/user-exec-stub.o
CC arm-linux-user/linux-user/strace.o
CC sparc64-linux-user/linux-user/main.o
CC ppc64-softmmu/monitor.o
CC s390x-softmmu/balloon.o
CC mips64el-linux-user/accel/tcg/cpu-exec.o
CC aarch64-linux-user/target/arm/neon_helper.o
CC ppcemb-softmmu/balloon.o
CC ppcemb-softmmu/ioport.o
CC unicore32-softmmu/ioport.o
CC i386-softmmu/gdbstub.o
CC x86_64-linux-user/linux-user/main.o
CC aarch64-linux-user/target/arm/iwmmxt_helper.o
CC cris-linux-user/accel/tcg/user-exec-stub.o
CC xtensa-softmmu/accel/stubs/hvf-stub.o
GEN aarch64-softmmu/gdbstub-xml.c
CC sparc32plus-linux-user/accel/tcg/translator.o
CC sparc64-linux-user/linux-user/syscall.o
CC sparc64-linux-user/linux-user/strace.o
CC mips-linux-user/linux-user/main.o
CCAS or1k-linux-user/linux-user/safe-syscall.o
CC sh4-linux-user/linux-user/syscall.o
CC sh4-linux-user/linux-user/strace.o
CC or1k-softmmu/ioport.o
CC sh4eb-softmmu/qtest.o
CC aarch64-softmmu/arch_init.o
CC cris-linux-user/linux-user/main.o
CC xtensa-softmmu/accel/stubs/kvm-stub.o
CC ppc64-linux-user/accel/tcg/cpu-exec-common.o
CC ppc64abi32-linux-user/linux-user/mmap.o
CC mipsn32-linux-user/accel/tcg/user-exec.o
CC moxie-softmmu/qtest.o
CC moxie-softmmu/memory.o
CC ppc64-linux-user/accel/tcg/translate-all.o
CC mips64el-linux-user/accel/tcg/cpu-exec-common.o
CC sparc-softmmu/numa.o
CC sparc-linux-user/linux-user/main.o
CC cris-softmmu/qtest.o
CC sparc64-softmmu/migration/ram.o
CC sparc64-softmmu/accel/accel.o
CC hppa-linux-user/linux-user/signal.o
CC ppc64-linux-user/accel/tcg/translator.o
CC ppc64-linux-user/accel/tcg/user-exec.o
CC mips64-linux-user/accel/stubs/kvm-stub.o
CC tilegx-linux-user/linux-user/main.o
CC cris-softmmu/memory.o
CC mips-linux-user/linux-user/syscall.o
CC ppc-linux-user/accel/tcg/user-exec.o
CC mipsn32-linux-user/accel/tcg/user-exec-stub.o
CC mipsn32el-linux-user/linux-user/signal.o
CC xtensa-softmmu/accel/tcg/tcg-all.o
CC ppc64abi32-linux-user/linux-user/signal.o
GEN x86_64-softmmu/gdbstub-xml.c
CC x86_64-softmmu/arch_init.o
CC sparc64-softmmu/accel/stubs/hax-stub.o
CC mips-linux-user/linux-user/strace.o
CC mipsn32-linux-user/linux-user/main.o
CC i386-linux-user/accel/tcg/user-exec-stub.o
CC lm32-softmmu/arch_init.o
CC ppc64-linux-user/accel/tcg/user-exec-stub.o
CC ppc64le-linux-user/accel/stubs/hvf-stub.o
CC s390x-softmmu/ioport.o
CC aarch64-softmmu/cpus.o
CC mips64-linux-user/accel/tcg/tcg-runtime.o
CC mips64-softmmu/accel/accel.o
CC sparc-softmmu/qtest.o
CC mips64-softmmu/accel/stubs/hax-stub.o
CC sparc32plus-linux-user/accel/tcg/user-exec.o
CC unicore32-softmmu/numa.o
CC cris-linux-user/linux-user/syscall.o
CC ppc-softmmu/dump.o
CC aarch64_be-linux-user/linux-user/strace.o
CC mips64el-linux-user/accel/tcg/translate-all.o
CC tilegx-linux-user/linux-user/syscall.o
CC x86_64-linux-user/linux-user/syscall.o
CC or1k-softmmu/numa.o
CC mipsel-softmmu/memory.o
CC x86_64-softmmu/cpus.o
CC alpha-softmmu/numa.o
CC m68k-softmmu/arch_init.o
CC i386-softmmu/balloon.o
CC ppcemb-softmmu/numa.o
CC ppcemb-softmmu/qtest.o
CC microblaze-linux-user/linux-user/main.o
CC xtensa-softmmu/accel/tcg/cputlb.o
CC x86_64-softmmu/monitor.o
CC x86_64-linux-user/linux-user/strace.o
CC i386-linux-user/linux-user/main.o
CC nios2-linux-user/linux-user/syscall.o
CC microblazeel-linux-user/linux-user/mmap.o
CC x86_64-linux-user/linux-user/mmap.o
CC moxie-softmmu/memory_mapping.o
CC microblazeel-softmmu/gdbstub.o
CC i386-softmmu/ioport.o
CC sh4eb-softmmu/memory.o
CC sparc-softmmu/memory.o
CC m68k-softmmu/cpus.o
CC ppc64abi32-linux-user/linux-user/elfload.o
CC microblaze-linux-user/linux-user/syscall.o
CC x86_64-linux-user/linux-user/signal.o
CC ppc64le-linux-user/accel/stubs/kvm-stub.o
CC s390x-linux-user/accel/tcg/user-exec-stub.o
CC nios2-softmmu/balloon.o
CC m68k-softmmu/monitor.o
CC sparc64-softmmu/accel/stubs/hvf-stub.o
CC m68k-softmmu/gdbstub.o
CC s390x-softmmu/numa.o
CC mipsel-softmmu/memory_mapping.o
CC sh4eb-linux-user/linux-user/strace.o
CC mipsel-linux-user/linux-user/linuxload.o
CC sparc-linux-user/linux-user/syscall.o
CC sparc-linux-user/linux-user/strace.o
CC aarch64-linux-user/target/arm/gdbstub.o
CC mips64-linux-user/accel/tcg/cpu-exec.o
CC alpha-linux-user/linux-user/elfload.o
CC lm32-softmmu/cpus.o
CC mipsn32-linux-user/linux-user/syscall.o
CC ppc64le-linux-user/accel/tcg/tcg-runtime.o
CC or1k-linux-user/target/openrisc/cpu.o
CC armeb-linux-user/linux-user/signal.o
CC ppc64abi32-linux-user/linux-user/linuxload.o
CC microblaze-linux-user/linux-user/strace.o
CC alpha-softmmu/qtest.o
CC or1k-softmmu/qtest.o
CC ppc64le-linux-user/accel/tcg/cpu-exec.o
CC i386-linux-user/linux-user/syscall.o
CC s390x-softmmu/qtest.o
CC xtensaeb-softmmu/gdbstub.o
CC sh4-softmmu/cpus.o
CC s390x-linux-user/linux-user/main.o
CC sh4eb-softmmu/memory_mapping.o
CC arm-linux-user/linux-user/mmap.o
CC ppc64-linux-user/linux-user/main.o
CC microblazeel-softmmu/balloon.o
CC microblaze-softmmu/cpus.o
CC i386-linux-user/linux-user/strace.o
CC mips64-softmmu/accel/stubs/hvf-stub.o
CC tricore-softmmu/ioport.o
CC unicore32-softmmu/qtest.o
CC mips64-softmmu/accel/stubs/kvm-stub.o
CC mips64el-linux-user/accel/tcg/translator.o
CC or1k-linux-user/target/openrisc/exception.o
CC aarch64_be-linux-user/linux-user/mmap.o
CC mips64-linux-user/accel/tcg/cpu-exec-common.o
CC mips64-linux-user/accel/tcg/translate-all.o
CC ppcemb-softmmu/memory.o
CC mips-softmmu/arch_init.o
CC sparc32plus-linux-user/accel/tcg/user-exec-stub.o
CC sh4-softmmu/monitor.o
CC nios2-softmmu/ioport.o
CC i386-linux-user/linux-user/mmap.o
CC i386-linux-user/linux-user/signal.o
CC mips64-linux-user/accel/tcg/translator.o
CC mips-linux-user/linux-user/mmap.o
CC mips64-linux-user/accel/tcg/user-exec.o
CC hppa-linux-user/linux-user/elfload.o
CC xtensa-softmmu/accel/tcg/tcg-runtime.o
CC alpha-softmmu/memory.o
CC microblaze-softmmu/monitor.o
CC ppc-linux-user/accel/tcg/user-exec-stub.o
CC or1k-linux-user/target/openrisc/interrupt.o
CC microblaze-linux-user/linux-user/mmap.o
CC sparc64-softmmu/accel/stubs/kvm-stub.o
CC x86_64-softmmu/gdbstub.o
CC nios2-softmmu/numa.o
CC or1k-softmmu/memory.o
CC ppcemb-softmmu/memory_mapping.o
CC ppcemb-softmmu/dump.o
CC nios2-softmmu/qtest.o
CC mips64el-linux-user/accel/tcg/user-exec.o
CC ppc-linux-user/linux-user/main.o
CC mips64el-softmmu/balloon.o
CC ppc64-linux-user/linux-user/syscall.o
CC aarch64_be-linux-user/linux-user/signal.o
CC s390x-softmmu/memory.o
CC mips64el-linux-user/accel/tcg/user-exec-stub.o
CC ppc64le-linux-user/accel/tcg/cpu-exec-common.o
CC lm32-softmmu/monitor.o
CC ppc-softmmu/migration/ram.o
CC mips64-softmmu/accel/tcg/tcg-all.o
CC mips-softmmu/cpus.o
CC aarch64-softmmu/monitor.o
CC aarch64-softmmu/gdbstub.o
CC alpha-softmmu/memory_mapping.o
CC sparc-softmmu/memory_mapping.o
CC sparc32plus-linux-user/linux-user/main.o
CC sparc32plus-linux-user/linux-user/syscall.o
CC or1k-linux-user/target/openrisc/mmu.o
CC microblazeel-linux-user/linux-user/signal.o
CC microblazeel-linux-user/linux-user/elfload.o
CC arm-softmmu/balloon.o
CC ppc64-linux-user/linux-user/strace.o
CC mips64el-linux-user/linux-user/main.o
CC ppc64abi32-linux-user/linux-user/uaccess.o
CC ppc64le-linux-user/accel/tcg/translate-all.o
CC sparc64-softmmu/accel/tcg/tcg-all.o
CC sparc64-softmmu/accel/tcg/cputlb.o
CC mips64el-softmmu/ioport.o
CC sh4-linux-user/linux-user/mmap.o
CC x86_64-softmmu/balloon.o
CC ppc64-linux-user/linux-user/mmap.o
CC unicore32-softmmu/memory.o
CC s390x-linux-user/linux-user/syscall.o
CC tricore-softmmu/numa.o
CC unicore32-softmmu/memory_mapping.o
CC sparc-softmmu/dump.o
CC ppcemb-softmmu/migration/ram.o
CC mips64-softmmu/accel/tcg/cputlb.o
CC or1k-linux-user/target/openrisc/translate.o
CC unicore32-softmmu/dump.o
CC aarch64-softmmu/balloon.o
CC hppa-linux-user/linux-user/linuxload.o
CC cris-softmmu/memory_mapping.o
CC m68k-softmmu/balloon.o
CC nios2-linux-user/linux-user/strace.o
CC m68k-softmmu/ioport.o
CC sh4eb-linux-user/linux-user/mmap.o
CC alpha-softmmu/dump.o
CC m68k-softmmu/numa.o
CC sparc32plus-linux-user/linux-user/strace.o
CC m68k-softmmu/qtest.o
CC mips-softmmu/monitor.o
CC mipsel-softmmu/dump.o
CC i386-softmmu/numa.o
CC microblazeel-softmmu/ioport.o
CC i386-softmmu/qtest.o
CC ppc64-softmmu/gdbstub.o
CC arm-softmmu/ioport.o
CC sparc64-linux-user/linux-user/mmap.o
CC xtensaeb-softmmu/balloon.o
CC tricore-softmmu/qtest.o
CC cris-linux-user/linux-user/strace.o
CC arm-softmmu/numa.o
CC or1k-linux-user/target/openrisc/exception_helper.o
CC m68k-softmmu/memory.o
CC xtensaeb-softmmu/ioport.o
CC x86_64-softmmu/ioport.o
CC mipsel-softmmu/migration/ram.o
CC arm-linux-user/linux-user/signal.o
CC xtensaeb-softmmu/numa.o
CC ppc64le-linux-user/accel/tcg/translator.o
CC tilegx-linux-user/linux-user/strace.o
CC xtensaeb-softmmu/qtest.o
CC mips64-linux-user/accel/tcg/user-exec-stub.o
CC ppc-linux-user/linux-user/syscall.o
CC mips64el-softmmu/numa.o
CC ppc-linux-user/linux-user/strace.o
CC microblazeel-softmmu/numa.o
CC or1k-softmmu/memory_mapping.o
CC ppc64-softmmu/balloon.o
CC ppc64-softmmu/ioport.o
CC sh4eb-softmmu/dump.o
CC nios2-softmmu/memory.o
CC nios2-softmmu/memory_mapping.o
CC moxie-softmmu/dump.o
CC sparc64-softmmu/accel/tcg/tcg-runtime.o
CC ppc64le-linux-user/accel/tcg/user-exec.o
CC mips-linux-user/linux-user/signal.o
CC alpha-softmmu/migration/ram.o
CC arm-linux-user/linux-user/elfload.o
CC mips64-linux-user/linux-user/main.o
CC tricore-softmmu/memory.o
CC m68k-linux-user/linux-user/mmap.o
CC unicore32-softmmu/migration/ram.o
CC microblaze-linux-user/linux-user/signal.o
CC ppc64abi32-linux-user/linux-user/uname.o
CC nios2-linux-user/linux-user/mmap.o
CC ppc64-softmmu/numa.o
CC s390x-linux-user/linux-user/strace.o
CC mipsn32el-linux-user/linux-user/elfload.o
CC unicore32-softmmu/accel/accel.o
CC sh4-softmmu/gdbstub.o
CC ppcemb-softmmu/accel/accel.o
CC tilegx-linux-user/linux-user/mmap.o
CC i386-linux-user/linux-user/elfload.o
CC mips64el-linux-user/linux-user/syscall.o
CC x86_64-linux-user/linux-user/elfload.o
CC ppcemb-softmmu/accel/kvm/kvm-all.o
CC nios2-linux-user/linux-user/signal.o
CC sh4eb-softmmu/migration/ram.o
CC xtensa-softmmu/accel/tcg/cpu-exec.o
CC mips64el-linux-user/linux-user/strace.o
CC cris-linux-user/linux-user/mmap.o
CC arm-softmmu/qtest.o
CC i386-softmmu/memory.o
CC microblaze-linux-user/linux-user/elfload.o
CC sh4eb-linux-user/linux-user/signal.o
CC mipsn32-linux-user/linux-user/strace.o
CC mips64el-softmmu/qtest.o
CC microblaze-linux-user/linux-user/linuxload.o
CC microblazeel-softmmu/qtest.o
CC arm-linux-user/linux-user/linuxload.o
CC microblaze-softmmu/gdbstub.o
CC mips64el-softmmu/memory.o
CC microblaze-linux-user/linux-user/uaccess.o
CC sparc-softmmu/migration/ram.o
CC aarch64_be-linux-user/linux-user/elfload.o
CC arm-linux-user/linux-user/uaccess.o
CC i386-softmmu/memory_mapping.o
CC armeb-linux-user/linux-user/elfload.o
CC mips-softmmu/gdbstub.o
CC cris-softmmu/dump.o
CC ppc64-softmmu/qtest.o
CC s390x-softmmu/memory_mapping.o
CC mipsel-linux-user/linux-user/uaccess.o
CC mipsel-linux-user/linux-user/uname.o
CC sh4-softmmu/balloon.o
CC mips64el-softmmu/memory_mapping.o
CC sparc-linux-user/linux-user/mmap.o
CC xtensaeb-softmmu/memory.o
CC ppc-softmmu/accel/accel.o
CC ppcemb-softmmu/accel/kvm/sev.o
CC nios2-linux-user/linux-user/elfload.o
CC sparc32plus-linux-user/linux-user/mmap.o
CC sparc32plus-linux-user/linux-user/signal.o
CC microblazeel-linux-user/linux-user/linuxload.o
CC s390x-softmmu/dump.o
CC microblazeel-softmmu/memory.o
CC mipsel-softmmu/accel/accel.o
CC ppcemb-softmmu/accel/stubs/hax-stub.o
CC s390x-linux-user/linux-user/mmap.o
CC ppc-softmmu/accel/kvm/kvm-all.o
CC armeb-linux-user/linux-user/linuxload.o
CC x86_64-softmmu/numa.o
CC sparc64-linux-user/linux-user/signal.o
CC mips64-linux-user/linux-user/syscall.o
CC sparc64-linux-user/linux-user/elfload.o
/var/tmp/patchew-tester-tmp-r4540qbd/src/accel/kvm/sev.c: In function ‘sev_dbg_enc_dec’:
/var/tmp/patchew-tester-tmp-r4540qbd/src/accel/kvm/sev.c:540:22: error: format ‘%llx’ expects argument of type ‘long long unsigned int’, but argument 4 has type ‘__u64’ [-Werror=format=]
fw_error_to_str(error));
^
/var/tmp/patchew-tester-tmp-r4540qbd/src/accel/kvm/sev.c:540:22: error: format ‘%llx’ expects argument of type ‘long long unsigned int’, but argument 5 has type ‘__u64’ [-Werror=format=]
CC hppa-linux-user/linux-user/uaccess.o
CC x86_64-softmmu/qtest.o
CC ppc64le-linux-user/accel/tcg/user-exec-stub.o
CC mipsn32el-linux-user/linux-user/linuxload.o
cc1: all warnings being treated as errors
make[1]: *** [accel/kvm/sev.o] Error 1
make[1]: *** Waiting for unfinished jobs....
CC tricore-softmmu/memory_mapping.o
CC microblaze-softmmu/balloon.o
CC xtensa-softmmu/accel/tcg/cpu-exec-common.o
CC ppc-softmmu/accel/kvm/sev.o
CC sparc64-linux-user/linux-user/linuxload.o
CC sh4-linux-user/linux-user/signal.o
CC cris-softmmu/migration/ram.o
CC sparc32plus-linux-user/linux-user/elfload.o
CCAS mipsel-linux-user/linux-user/safe-syscall.o
CC sparc32plus-linux-user/linux-user/linuxload.o
CC mips64el-softmmu/dump.o
CC microblazeel-softmmu/memory_mapping.o
CC mipsel-softmmu/accel/stubs/hax-stub.o
CC mipsel-linux-user/target/mips/translate.o
CC aarch64-softmmu/ioport.o
CC sparc64-linux-user/linux-user/uaccess.o
CC sparc64-softmmu/accel/tcg/cpu-exec.o
CC arm-softmmu/memory.o
CC ppc64-softmmu/memory.o
CC moxie-softmmu/migration/ram.o
CC ppc64le-linux-user/linux-user/main.o
CC ppc64-softmmu/memory_mapping.o
CC lm32-softmmu/gdbstub.o
CC sh4-softmmu/ioport.o
CC or1k-linux-user/target/openrisc/fpu_helper.o
CC xtensaeb-softmmu/memory_mapping.o
CC microblaze-linux-user/linux-user/uname.o
CC sparc64-softmmu/accel/tcg/cpu-exec-common.o
CC aarch64-linux-user/target/arm/cpu64.o
CC microblazeel-softmmu/dump.o
CC sh4eb-softmmu/accel/accel.o
CC i386-linux-user/linux-user/linuxload.o
CC s390x-softmmu/migration/ram.o
/var/tmp/patchew-tester-tmp-r4540qbd/src/accel/kvm/sev.c: In function ‘sev_dbg_enc_dec’:
/var/tmp/patchew-tester-tmp-r4540qbd/src/accel/kvm/sev.c:540:22: error: format ‘%llx’ expects argument of type ‘long long unsigned int’, but argument 4 has type ‘__u64’ [-Werror=format=]
fw_error_to_str(error));
^
/var/tmp/patchew-tester-tmp-r4540qbd/src/accel/kvm/sev.c:540:22: error: format ‘%llx’ expects argument of type ‘long long unsigned int’, but argument 5 has type ‘__u64’ [-Werror=format=]
CC mips-linux-user/linux-user/elfload.o
CC mips64-softmmu/accel/tcg/tcg-runtime.o
cc1: all warnings being treated as errors
make[1]: *** [accel/kvm/sev.o] Error 1
make[1]: *** Waiting for unfinished jobs....
CC mips64-softmmu/accel/tcg/cpu-exec.o
CC ppc-linux-user/linux-user/mmap.o
CC sh4eb-softmmu/accel/stubs/hax-stub.o
CC sh4-linux-user/linux-user/elfload.o
CC xtensa-softmmu/accel/tcg/translate-all.o
make: *** [subdir-ppcemb-softmmu] Error 2
make: *** Waiting for unfinished jobs....
CC x86_64-linux-user/linux-user/linuxload.o
CC arm-softmmu/memory_mapping.o
CC m68k-linux-user/linux-user/signal.o
CC mipsel-linux-user/target/mips/dsp_helper.o
CC mipsel-linux-user/target/mips/op_helper.o
CC tilegx-linux-user/linux-user/signal.o
CC sparc-softmmu/accel/accel.o
CC alpha-softmmu/accel/accel.o
CC s390x-linux-user/linux-user/signal.o
CC or1k-softmmu/dump.o
CC or1k-linux-user/target/openrisc/interrupt_helper.o
CC m68k-linux-user/linux-user/elfload.o
CC microblaze-softmmu/ioport.o
CC cris-linux-user/linux-user/signal.o
CC mipsel-softmmu/accel/stubs/hvf-stub.o
CC sparc64-softmmu/accel/tcg/translate-all.o
CC s390x-softmmu/accel/accel.o
CC x86_64-linux-user/linux-user/uaccess.o
CC aarch64-softmmu/numa.o
CC mips64-linux-user/linux-user/strace.o
CC ppc64-softmmu/dump.o
CC mips64-softmmu/accel/tcg/cpu-exec-common.o
CC unicore32-softmmu/accel/stubs/hax-stub.o
CC x86_64-linux-user/linux-user/uname.o
CC m68k-softmmu/memory_mapping.o
CC s390x-softmmu/accel/stubs/hax-stub.o
CC microblazeel-linux-user/linux-user/uaccess.o
CC sh4-softmmu/numa.o
CC sparc-softmmu/accel/stubs/hax-stub.o
CC xtensa-softmmu/accel/tcg/translator.o
CC alpha-softmmu/accel/stubs/hax-stub.o
CC mips64-softmmu/accel/tcg/translate-all.o
CC sparc64-linux-user/linux-user/uname.o
CC sparc-softmmu/accel/stubs/hvf-stub.o
CC m68k-softmmu/dump.o
CC i386-softmmu/dump.o
CC x86_64-softmmu/memory.o
CC ppc64le-linux-user/linux-user/syscall.o
CC mipsel-softmmu/accel/stubs/kvm-stub.o
CC ppc64le-linux-user/linux-user/strace.o
CC alpha-linux-user/linux-user/linuxload.o
CC sh4eb-linux-user/linux-user/elfload.o
CC unicore32-softmmu/accel/stubs/hvf-stub.o
CC sparc-softmmu/accel/stubs/kvm-stub.o
CC m68k-softmmu/migration/ram.o
CC x86_64-softmmu/memory_mapping.o
CC microblaze-softmmu/numa.o
CC ppc64le-linux-user/linux-user/mmap.o
CC cris-softmmu/accel/accel.o
CC unicore32-softmmu/accel/stubs/kvm-stub.o
CC mips-linux-user/linux-user/linuxload.o
CC cris-linux-user/linux-user/elfload.o
CC mipsn32-linux-user/linux-user/mmap.o
CC mips-softmmu/balloon.o
CCAS microblaze-linux-user/linux-user/safe-syscall.o
CC sparc-softmmu/accel/tcg/tcg-all.o
CC tricore-softmmu/dump.o
CC mipsel-softmmu/accel/tcg/tcg-all.o
CC aarch64-softmmu/qtest.o
CC sh4eb-softmmu/accel/stubs/hvf-stub.o
CC arm-linux-user/linux-user/uname.o
CC mips64el-linux-user/linux-user/mmap.o
CC alpha-softmmu/accel/stubs/hvf-stub.o
CCAS ppc64abi32-linux-user/linux-user/safe-syscall.o
CC mipsn32-linux-user/linux-user/signal.o
CC aarch64-softmmu/memory.o
CC i386-softmmu/migration/ram.o
CC ppc64le-linux-user/linux-user/signal.o
CC unicore32-softmmu/accel/tcg/tcg-all.o
CC xtensa-softmmu/hw/core/generic-loader.o
CC ppc64-softmmu/migration/ram.o
CC hppa-linux-user/linux-user/uname.o
CC ppc64le-linux-user/linux-user/elfload.o
CC lm32-softmmu/balloon.o
CC mipsel-softmmu/accel/tcg/cputlb.o
CC mipsel-softmmu/accel/tcg/tcg-runtime.o
CC nios2-softmmu/dump.o
CC mips64-softmmu/accel/tcg/translator.o
CC or1k-linux-user/target/openrisc/mmu_helper.o
CC sparc64-softmmu/accel/tcg/translator.o
CC unicore32-softmmu/accel/tcg/cputlb.o
CC mips-linux-user/linux-user/uaccess.o
CC sh4eb-softmmu/accel/stubs/kvm-stub.o
CC sh4eb-linux-user/linux-user/linuxload.o
CC sparc-softmmu/accel/tcg/cputlb.o
CC unicore32-softmmu/accel/tcg/tcg-runtime.o
CC alpha-softmmu/accel/tcg/tcg-all.o
CC alpha-softmmu/accel/stubs/kvm-stub.o
CC sh4-softmmu/qtest.o
CC i386-linux-user/linux-user/uaccess.o
CC mips-softmmu/ioport.o
CC sh4eb-linux-user/linux-user/uaccess.o
CCAS arm-linux-user/linux-user/safe-syscall.o
CC sh4-softmmu/memory.o
CC i386-softmmu/accel/accel.o
CC i386-linux-user/linux-user/uname.o
CCAS i386-linux-user/linux-user/safe-syscall.o
CC ppc64-softmmu/accel/accel.o
CCAS hppa-linux-user/linux-user/safe-syscall.o
CC hppa-linux-user/target/hppa/translate.o
CC ppc64-linux-user/linux-user/signal.o
CC microblazeel-softmmu/migration/ram.o
CC lm32-softmmu/ioport.o
CC microblazeel-linux-user/linux-user/uname.o
CC sh4eb-linux-user/linux-user/uname.o
CC x86_64-softmmu/dump.o
CC cris-linux-user/linux-user/linuxload.o
CC xtensa-softmmu/hw/core/null-machine.o
CC microblaze-softmmu/qtest.o
CC alpha-softmmu/accel/tcg/cputlb.o
CC mipsel-softmmu/accel/tcg/cpu-exec.o
CC sh4-linux-user/linux-user/linuxload.o
CC cris-linux-user/linux-user/uaccess.o
CC m68k-softmmu/accel/accel.o
CC ppc64le-linux-user/linux-user/linuxload.o
CC sh4eb-softmmu/accel/tcg/tcg-all.o
make: *** [subdir-ppc-softmmu] Error 2
CC sh4-softmmu/memory_mapping.o
CC mips-softmmu/numa.o
CC or1k-linux-user/target/openrisc/sys_helper.o
CC ppc64-softmmu/accel/kvm/kvm-all.o
CC microblazeel-softmmu/accel/accel.o
CCAS sparc64-linux-user/linux-user/safe-syscall.o
CC mips-softmmu/qtest.o
CC tilegx-linux-user/linux-user/elfload.o
CC ppc64abi32-linux-user/target/ppc/cpu-models.o
CC armeb-linux-user/linux-user/uaccess.o
CC m68k-softmmu/accel/stubs/hax-stub.o
CC sparc32plus-linux-user/linux-user/uaccess.o
CC hppa-linux-user/target/hppa/helper.o
CCAS x86_64-linux-user/linux-user/safe-syscall.o
CC nios2-linux-user/linux-user/linuxload.o
CC sparc32plus-linux-user/linux-user/uname.o
CC mips64el-softmmu/migration/ram.o
CC cris-softmmu/accel/stubs/hax-stub.o
CCAS microblazeel-linux-user/linux-user/safe-syscall.o
CC mipsn32-linux-user/linux-user/elfload.o
CC moxie-softmmu/accel/accel.o
CC sh4eb-softmmu/accel/tcg/cputlb.o
CC sh4-softmmu/dump.o
CC sh4-softmmu/migration/ram.o
CC or1k-linux-user/target/openrisc/gdbstub.o
CC xtensa-softmmu/hw/misc/mmio_interface.o
CC s390x-softmmu/accel/stubs/hvf-stub.o
CC sparc64-softmmu/hw/9pfs/virtio-9p-device.o
CC hppa-linux-user/target/hppa/cpu.o
CC sparc-linux-user/linux-user/signal.o
CC sparc-softmmu/accel/tcg/tcg-runtime.o
CC mipsn32el-linux-user/linux-user/uaccess.o
CC mipsn32-linux-user/linux-user/linuxload.o
CC mipsel-softmmu/accel/tcg/cpu-exec-common.o
CC ppc-linux-user/linux-user/signal.o
CC i386-linux-user/linux-user/vm86.o
CC alpha-softmmu/accel/tcg/tcg-runtime.o
CC s390x-linux-user/linux-user/elfload.o
CC lm32-softmmu/numa.o
CC lm32-softmmu/qtest.o
CC cris-softmmu/accel/stubs/hvf-stub.o
CC or1k-softmmu/migration/ram.o
CC cris-softmmu/accel/stubs/kvm-stub.o
CC microblazeel-linux-user/linux-user/flatload.o
CC unicore32-softmmu/accel/tcg/cpu-exec.o
CC s390x-linux-user/linux-user/linuxload.o
CC microblaze-softmmu/memory.o
CC xtensa-softmmu/hw/net/vhost_net.o
CC aarch64_be-linux-user/linux-user/linuxload.o
CC cris-softmmu/accel/tcg/tcg-all.o
CC aarch64_be-linux-user/linux-user/uaccess.o
CC ppc64le-linux-user/linux-user/uaccess.o
CC microblazeel-softmmu/accel/stubs/hax-stub.o
CC nios2-softmmu/migration/ram.o
CC s390x-softmmu/accel/stubs/kvm-stub.o
CC m68k-softmmu/accel/stubs/hvf-stub.o
CC arm-linux-user/linux-user/flatload.o
CC mips64-softmmu/hw/9pfs/virtio-9p-device.o
CCAS sparc32plus-linux-user/linux-user/safe-syscall.o
CC arm-linux-user/linux-user/arm/nwfpe/fpa11.o
CC aarch64_be-linux-user/linux-user/uname.o
CC arm-softmmu/dump.o
GEN trace/generated-helpers.c
CC arm-softmmu/migration/ram.o
CC mipsn32el-linux-user/linux-user/uname.o
CC tricore-softmmu/migration/ram.o
CC or1k-linux-user/trace/control-target.o
CC tricore-softmmu/accel/accel.o
CC hppa-linux-user/target/hppa/op_helper.o
CC mips64el-linux-user/linux-user/signal.o
CCAS aarch64_be-linux-user/linux-user/safe-syscall.o
CC or1k-softmmu/accel/accel.o
CC microblaze-linux-user/linux-user/flatload.o
CC moxie-softmmu/accel/stubs/hax-stub.o
CC xtensaeb-softmmu/dump.o
CC i386-softmmu/accel/stubs/hax-stub.o
CC or1k-softmmu/accel/stubs/hax-stub.o
CC mips64el-linux-user/linux-user/elfload.o
CC sparc64-softmmu/hw/block/virtio-blk.o
CC xtensa-softmmu/hw/net/rocker/qmp-norocker.o
CC tricore-softmmu/accel/stubs/hax-stub.o
CC ppc64le-linux-user/linux-user/uname.o
CC mips64el-linux-user/linux-user/linuxload.o
CC sparc32plus-linux-user/target/sparc/translate.o
CC nios2-softmmu/accel/accel.o
CC arm-softmmu/accel/accel.o
CC mips-linux-user/linux-user/uname.o
CC microblazeel-softmmu/accel/stubs/hvf-stub.o
CC cris-softmmu/accel/tcg/cputlb.o
CC aarch64-linux-user/target/arm/translate-a64.o
CC cris-softmmu/accel/tcg/tcg-runtime.o
CC armeb-linux-user/linux-user/uname.o
CC sh4-linux-user/linux-user/uaccess.o
CC m68k-softmmu/accel/stubs/kvm-stub.o
CCAS mipsn32el-linux-user/linux-user/safe-syscall.o
CC sparc-softmmu/accel/tcg/cpu-exec.o
CC sparc-softmmu/accel/tcg/cpu-exec-common.o
CC i386-softmmu/accel/stubs/hvf-stub.o
CC alpha-softmmu/accel/tcg/cpu-exec.o
CC mipsn32el-linux-user/target/mips/translate.o
CC nios2-linux-user/linux-user/uaccess.o
CC s390x-softmmu/accel/tcg/tcg-all.o
CC moxie-softmmu/accel/stubs/hvf-stub.o
CC ppc64-linux-user/linux-user/elfload.o
CC sparc32plus-linux-user/target/sparc/helper.o
CC cris-linux-user/linux-user/uname.o
CC or1k-linux-user/trace/generated-helpers.o
CC xtensa-softmmu/hw/vfio/common.o
CC mipsn32-linux-user/linux-user/uaccess.o
CC sparc64-softmmu/hw/block/vhost-user-blk.o
CC microblaze-linux-user/target/microblaze/translate.o
CC mips64-softmmu/hw/block/virtio-blk.o
CC mips64-softmmu/hw/block/vhost-user-blk.o
CC mips-softmmu/memory.o
CCAS ppc64le-linux-user/linux-user/safe-syscall.o
CC aarch64-softmmu/memory_mapping.o
CC sparc-linux-user/linux-user/elfload.o
CC s390x-linux-user/linux-user/uaccess.o
CC ppc64abi32-linux-user/target/ppc/cpu.o
CC nios2-softmmu/accel/stubs/hax-stub.o
CC sparc64-softmmu/hw/block/dataplane/virtio-blk.o
CC aarch64-softmmu/dump.o
CC mipsn32el-linux-user/target/mips/dsp_helper.o
CC x86_64-softmmu/migration/ram.o
CC mipsn32el-linux-user/target/mips/op_helper.o
CC sparc-softmmu/accel/tcg/translate-all.o
CC sparc64-softmmu/hw/char/virtio-serial-bus.o
CC m68k-linux-user/linux-user/linuxload.o
CC tricore-softmmu/accel/stubs/hvf-stub.o
CC m68k-softmmu/accel/tcg/tcg-all.o
CC s390x-softmmu/accel/tcg/cputlb.o
CC s390x-linux-user/linux-user/uname.o
CC i386-softmmu/accel/stubs/kvm-stub.o
CC aarch64-softmmu/migration/ram.o
CC moxie-softmmu/accel/stubs/kvm-stub.o
CC alpha-softmmu/accel/tcg/cpu-exec-common.o
CC lm32-softmmu/memory.o
CCAS armeb-linux-user/linux-user/safe-syscall.o
CC alpha-softmmu/accel/tcg/translate-all.o
LINK or1k-linux-user/qemu-or1k
CC aarch64_be-linux-user/linux-user/flatload.o
CC aarch64-linux-user/target/arm/helper-a64.o
CCAS sh4eb-linux-user/linux-user/safe-syscall.o
CC mipsel-linux-user/target/mips/lmi_helper.o
CC xtensaeb-softmmu/migration/ram.o
CC sparc64-linux-user/target/sparc/translate.o
CC xtensaeb-softmmu/accel/accel.o
CC sh4-linux-user/linux-user/uname.o
CC microblaze-softmmu/memory_mapping.o
CC microblazeel-linux-user/target/microblaze/translate.o
CC moxie-softmmu/accel/tcg/tcg-all.o
CC alpha-linux-user/linux-user/uaccess.o
CCAS mips-linux-user/linux-user/safe-syscall.o
CC i386-softmmu/accel/tcg/tcg-all.o
CC i386-softmmu/accel/tcg/cputlb.o
CC m68k-softmmu/accel/tcg/cputlb.o
CC xtensa-softmmu/hw/vfio/platform.o
CC mips64el-softmmu/accel/accel.o
CC mipsel-softmmu/accel/tcg/translate-all.o
CCAS cris-linux-user/linux-user/safe-syscall.o
CC aarch64_be-linux-user/target/arm/arm-semi.o
CC sparc64-linux-user/target/sparc/helper.o
CC mipsn32-linux-user/linux-user/uname.o
CC alpha-linux-user/linux-user/uname.o
CC ppc64-linux-user/linux-user/linuxload.o
CC ppc64le-linux-user/target/ppc/cpu-models.o
CC moxie-softmmu/accel/tcg/cputlb.o
CC mips64-linux-user/linux-user/mmap.o
CC hppa-linux-user/target/hppa/gdbstub.o
CC aarch64-linux-user/target/arm/gdbstub64.o
CC tilegx-linux-user/linux-user/linuxload.o
CC xtensa-softmmu/hw/vfio/spapr.o
CC arm-softmmu/accel/stubs/hax-stub.o
CC mipsel-softmmu/accel/tcg/translator.o
CC lm32-softmmu/memory_mapping.o
CC mipsel-softmmu/hw/9pfs/virtio-9p-device.o
CC microblazeel-softmmu/accel/stubs/kvm-stub.o
CC microblazeel-softmmu/accel/tcg/tcg-all.o
CC mipsn32el-linux-user/target/mips/lmi_helper.o
CC mips64-linux-user/linux-user/signal.o
CC armeb-linux-user/linux-user/flatload.o
CC tilegx-linux-user/linux-user/uaccess.o
CC xtensa-softmmu/hw/xtensa/pic_cpu.o
CC sh4eb-softmmu/accel/tcg/tcg-runtime.o
CC ppc64abi32-linux-user/target/ppc/translate.o
CC x86_64-linux-user/target/i386/helper.o
CC mips64-softmmu/hw/block/dataplane/virtio-blk.o
CC armeb-linux-user/linux-user/arm/nwfpe/fpa11.o
GEN trace/generated-helpers.c
CC ppc64le-linux-user/target/ppc/cpu.o
CC moxie-softmmu/accel/tcg/tcg-runtime.o
CC mips64el-linux-user/linux-user/uaccess.o
CC sparc-linux-user/linux-user/linuxload.o
CC mipsn32el-linux-user/target/mips/helper.o
CC nios2-softmmu/accel/stubs/hvf-stub.o
CC m68k-linux-user/linux-user/uaccess.o
CC or1k-softmmu/accel/stubs/hvf-stub.o
CC mips64el-softmmu/accel/stubs/hax-stub.o
CC ppc64-softmmu/accel/kvm/sev.o
CC sparc64-softmmu/hw/core/generic-loader.o
CC sparc32plus-linux-user/target/sparc/cpu.o
CCAS alpha-linux-user/linux-user/safe-syscall.o
CC sparc32plus-linux-user/target/sparc/fop_helper.o
CC alpha-linux-user/target/alpha/translate.o
CC microblazeel-softmmu/accel/tcg/cputlb.o
CC x86_64-linux-user/target/i386/cpu.o
CCAS sh4-linux-user/linux-user/safe-syscall.o
CC nios2-linux-user/linux-user/uname.o
CC xtensaeb-softmmu/accel/stubs/hax-stub.o
CC nios2-softmmu/accel/stubs/kvm-stub.o
CC mips-softmmu/memory_mapping.o
CCAS s390x-linux-user/linux-user/safe-syscall.o
CC microblaze-linux-user/target/microblaze/op_helper.o
CC tricore-softmmu/accel/stubs/kvm-stub.o
CC alpha-linux-user/target/alpha/helper.o
CC mips64el-softmmu/accel/stubs/hvf-stub.o
CC mipsel-linux-user/target/mips/helper.o
CC sparc64-linux-user/target/sparc/cpu.o
CC xtensaeb-softmmu/accel/stubs/hvf-stub.o
CC arm-softmmu/accel/stubs/hvf-stub.o
/var/tmp/patchew-tester-tmp-r4540qbd/src/accel/kvm/sev.c: In function ‘sev_dbg_enc_dec’:
/var/tmp/patchew-tester-tmp-r4540qbd/src/accel/kvm/sev.c:540:22: error: format ‘%llx’ expects argument of type ‘long long unsigned int’, but argument 4 has type ‘__u64’ [-Werror=format=]
fw_error_to_str(error));
^
/var/tmp/patchew-tester-tmp-r4540qbd/src/accel/kvm/sev.c:540:22: error: format ‘%llx’ expects argument of type ‘long long unsigned int’, but argument 5 has type ‘__u64’ [-Werror=format=]
cc1: all warnings being treated as errors
make[1]: *** [accel/kvm/sev.o] Error 1
CC or1k-softmmu/accel/stubs/kvm-stub.o
CC armeb-linux-user/linux-user/arm/nwfpe/fpa11_cpdo.o
make: *** [subdir-ppc64-softmmu] Error 2
CC ppc64abi32-linux-user/target/ppc/kvm-stub.o
CC mips64el-linux-user/linux-user/uname.o
CC microblazeel-linux-user/target/microblaze/op_helper.o
CC mips64-softmmu/hw/char/virtio-serial-bus.o
CC mips64-softmmu/hw/core/generic-loader.o
CC s390x-softmmu/accel/tcg/tcg-runtime.o
CC sh4-softmmu/accel/accel.o
CC i386-linux-user/target/i386/helper.o
CC mips64-linux-user/linux-user/elfload.o
CC tricore-softmmu/accel/tcg/tcg-all.o
CC xtensa-softmmu/hw/xtensa/sim.o
CC sparc64-linux-user/target/sparc/fop_helper.o
CC x86_64-softmmu/accel/accel.o
CC aarch64_be-linux-user/target/arm/kvm-stub.o
CC mips64-softmmu/hw/core/null-machine.o
CC ppc-linux-user/linux-user/elfload.o
CC sh4-softmmu/accel/stubs/hax-stub.o
CC lm32-softmmu/dump.o
CC aarch64_be-linux-user/target/arm/translate.o
CC moxie-softmmu/accel/tcg/cpu-exec.o
CC mips64el-softmmu/accel/stubs/kvm-stub.o
CC sparc64-softmmu/hw/core/null-machine.o
CC x86_64-linux-user/target/i386/gdbstub.o
CC ppc64le-linux-user/target/ppc/translate.o
CC sparc-softmmu/accel/tcg/translator.o
CC mipsel-softmmu/hw/block/virtio-blk.o
CC sparc-linux-user/linux-user/uaccess.o
CC or1k-softmmu/accel/tcg/tcg-all.o
CC hppa-linux-user/trace/control-target.o
CC i386-softmmu/accel/tcg/tcg-runtime.o
CC alpha-softmmu/accel/tcg/translator.o
CC cris-softmmu/accel/tcg/cpu-exec.o
CC aarch64-linux-user/target/arm/crypto_helper.o
CC x86_64-softmmu/accel/stubs/hax-stub.o
CC s390x-linux-user/target/s390x/cpu.o
CC nios2-softmmu/accel/tcg/tcg-all.o
CC ppc64-linux-user/linux-user/uaccess.o
CC alpha-linux-user/target/alpha/cpu.o
CC mips64el-softmmu/accel/tcg/tcg-all.o
CC tricore-softmmu/accel/tcg/cputlb.o
CC sh4eb-linux-user/linux-user/flatload.o
CC sh4eb-softmmu/accel/tcg/cpu-exec.o
CC s390x-linux-user/target/s390x/cpu_models.o
CC m68k-softmmu/accel/tcg/tcg-runtime.o
CC xtensa-softmmu/hw/xtensa/xtensa_memory.o
CC armeb-linux-user/linux-user/arm/nwfpe/fpa11_cpdt.o
CC armeb-linux-user/linux-user/arm/nwfpe/fpa11_cprt.o
CC arm-softmmu/accel/stubs/kvm-stub.o
CCAS mipsn32-linux-user/linux-user/safe-syscall.o
CC sh4eb-linux-user/target/sh4/translate.o
CC s390x-linux-user/target/s390x/cpu_features.o
CC armeb-linux-user/linux-user/arm/nwfpe/fpopcode.o
CC aarch64-softmmu/accel/accel.o
CC mipsn32el-linux-user/target/mips/cpu.o
CC i386-softmmu/accel/tcg/cpu-exec.o
CC or1k-softmmu/accel/tcg/cputlb.o
CC sh4-softmmu/accel/stubs/hvf-stub.o
CC microblazeel-softmmu/accel/tcg/tcg-runtime.o
CC xtensa-softmmu/hw/xtensa/xtfpga.o
CC nios2-softmmu/accel/tcg/cputlb.o
CC nios2-softmmu/accel/tcg/tcg-runtime.o
CC nios2-softmmu/accel/tcg/cpu-exec.o
CC sparc64-softmmu/hw/display/vga.o
CC i386-linux-user/target/i386/cpu.o
CC mips64-linux-user/linux-user/linuxload.o
CC i386-softmmu/accel/tcg/cpu-exec-common.o
CC hppa-linux-user/trace/generated-helpers.o
CC s390x-linux-user/target/s390x/gdbstub.o
CC m68k-linux-user/linux-user/uname.o
CC microblaze-linux-user/target/microblaze/helper.o
CC nios2-softmmu/accel/tcg/cpu-exec-common.o
CC mips64el-softmmu/accel/tcg/cputlb.o
CC i386-softmmu/accel/tcg/translate-all.o
CC cris-softmmu/accel/tcg/cpu-exec-common.o
CC s390x-linux-user/target/s390x/interrupt.o
CC arm-softmmu/accel/tcg/tcg-all.o
CC aarch64-softmmu/accel/stubs/hax-stub.o
GEN trace/generated-helpers.c
CC sh4-linux-user/linux-user/flatload.o
CC sh4eb-linux-user/target/sh4/op_helper.o
CC mipsel-softmmu/hw/block/vhost-user-blk.o
CC microblazeel-softmmu/accel/tcg/cpu-exec.o
CC microblazeel-linux-user/target/microblaze/helper.o
CC s390x-linux-user/target/s390x/helper.o
CC sparc-softmmu/hw/core/generic-loader.o
CC sh4-softmmu/accel/stubs/kvm-stub.o
CC sh4-softmmu/accel/tcg/tcg-all.o
CC alpha-linux-user/target/alpha/int_helper.o
CC tilegx-linux-user/linux-user/uname.o
CC cris-softmmu/accel/tcg/translate-all.o
CC microblazeel-linux-user/target/microblaze/cpu.o
CC s390x-softmmu/accel/tcg/cpu-exec.o
CC aarch64-softmmu/accel/stubs/hvf-stub.o
CC mips64-linux-user/linux-user/uaccess.o
CC xtensa-softmmu/target/xtensa/xtensa-semi.o
CC x86_64-softmmu/accel/stubs/hvf-stub.o
CC microblaze-softmmu/dump.o
CCAS m68k-linux-user/linux-user/safe-syscall.o
CC lm32-softmmu/migration/ram.o
CCAS tilegx-linux-user/linux-user/safe-syscall.o
CC ppc-linux-user/linux-user/linuxload.o
CC ppc64-linux-user/linux-user/uname.o
CC unicore32-softmmu/accel/tcg/cpu-exec-common.o
CC cris-linux-user/target/cris/translate.o
CC armeb-linux-user/linux-user/arm/nwfpe/single_cpdo.o
CC alpha-softmmu/hw/9pfs/virtio-9p-device.o
CC armeb-linux-user/linux-user/arm/nwfpe/double_cpdo.o
CC xtensaeb-softmmu/accel/stubs/kvm-stub.o
CC aarch64_be-linux-user/target/arm/op_helper.o
CC xtensa-softmmu/target/xtensa/core-dc232b.o
CC cris-linux-user/target/cris/op_helper.o
CC aarch64-softmmu/accel/stubs/kvm-stub.o
CC cris-linux-user/target/cris/helper.o
LINK hppa-linux-user/qemu-hppa
CC sh4eb-softmmu/accel/tcg/cpu-exec-common.o
CC sh4eb-softmmu/accel/tcg/translate-all.o
CC ppc64le-linux-user/target/ppc/kvm-stub.o
CC mipsn32el-linux-user/target/mips/gdbstub.o
CC aarch64-linux-user/trace/control-target.o
CC aarch64-softmmu/accel/tcg/tcg-all.o
CC sparc-softmmu/hw/core/null-machine.o
CC alpha-linux-user/target/alpha/fpu_helper.o
CC mips-linux-user/target/mips/translate.o
CC mips64-softmmu/hw/display/vga.o
CC sh4-softmmu/accel/tcg/cputlb.o
CC sh4-softmmu/accel/tcg/tcg-runtime.o
CC mips-softmmu/dump.o
CC aarch64-softmmu/accel/tcg/cputlb.o
CC mips64el-softmmu/accel/tcg/tcg-runtime.o
CC m68k-linux-user/linux-user/flatload.o
CC tilegx-linux-user/target/tilegx/cpu.o
CC mipsn32-linux-user/target/mips/translate.o
CC arm-softmmu/accel/tcg/cputlb.o
CC tricore-softmmu/accel/tcg/tcg-runtime.o
CCAS nios2-linux-user/linux-user/safe-syscall.o
CC alpha-linux-user/target/alpha/vax_helper.o
CC x86_64-softmmu/accel/stubs/kvm-stub.o
CC aarch64-softmmu/accel/tcg/tcg-runtime.o
CC sparc-linux-user/linux-user/uname.o
CC alpha-softmmu/hw/block/virtio-blk.o
CC sh4-linux-user/target/sh4/translate.o
CCAS ppc64-linux-user/linux-user/safe-syscall.o
CC mipsel-softmmu/hw/block/dataplane/virtio-blk.o
CC mips64el-softmmu/accel/tcg/cpu-exec.o
CC armeb-linux-user/linux-user/arm/nwfpe/extended_cpdo.o
CC x86_64-linux-user/target/i386/xsave_helper.o
CC unicore32-softmmu/accel/tcg/translate-all.o
CC mipsel-linux-user/target/mips/cpu.o
CC tricore-softmmu/accel/tcg/cpu-exec.o
CC arm-linux-user/linux-user/arm/nwfpe/fpa11_cpdo.o
CC sh4eb-linux-user/target/sh4/helper.o
CC cris-linux-user/target/cris/cpu.o
CC aarch64-softmmu/accel/tcg/cpu-exec.o
CC arm-linux-user/linux-user/arm/nwfpe/fpa11_cpdt.o
CC xtensaeb-softmmu/accel/tcg/tcg-all.o
CC mips-softmmu/migration/ram.o
CC ppc64abi32-linux-user/target/ppc/dfp_helper.o
CC microblaze-softmmu/migration/ram.o
CC x86_64-softmmu/accel/tcg/tcg-all.o
CC xtensa-softmmu/target/xtensa/core-dc233c.o
CC tilegx-linux-user/target/tilegx/translate.o
CC mips64-softmmu/hw/display/virtio-gpu.o
CC sparc-softmmu/hw/display/tcx.o
CC aarch64_be-linux-user/target/arm/helper.o
CC aarch64_be-linux-user/target/arm/cpu.o
CC unicore32-softmmu/accel/tcg/translator.o
CC x86_64-linux-user/target/i386/translate.o
CC x86_64-linux-user/target/i386/bpt_helper.o
CCAS sparc-linux-user/linux-user/safe-syscall.o
CC armeb-linux-user/target/arm/arm-semi.o
CC microblazeel-linux-user/target/microblaze/gdbstub.o
CC microblaze-linux-user/target/microblaze/cpu.o
CC sparc32plus-linux-user/target/sparc/cc_helper.o
CC sparc32plus-linux-user/target/sparc/win_helper.o
CC mipsel-linux-user/target/mips/gdbstub.o
CC mips64el-softmmu/accel/tcg/cpu-exec-common.o
CC cris-softmmu/accel/tcg/translator.o
CC xtensaeb-softmmu/accel/tcg/cputlb.o
CC sparc-softmmu/hw/display/cg3.o
CC nios2-linux-user/target/nios2/translate.o
CC x86_64-softmmu/accel/tcg/cputlb.o
CC x86_64-softmmu/accel/tcg/tcg-runtime.o
CC mipsel-softmmu/hw/char/virtio-serial-bus.o
CC mipsel-softmmu/hw/core/generic-loader.o
CC mips-softmmu/accel/accel.o
CC mips64-linux-user/linux-user/uname.o
CC i386-linux-user/target/i386/gdbstub.o
CC aarch64_be-linux-user/target/arm/neon_helper.o
CC mips-softmmu/accel/stubs/hax-stub.o
CC sh4eb-softmmu/accel/tcg/translator.o
CC arm-linux-user/linux-user/arm/nwfpe/fpa11_cprt.o
CC or1k-softmmu/accel/tcg/tcg-runtime.o
CC nios2-softmmu/accel/tcg/translate-all.o
CC sh4eb-linux-user/target/sh4/cpu.o
CC mipsel-linux-user/target/mips/msa_helper.o
CC nios2-softmmu/accel/tcg/translator.o
CC nios2-softmmu/hw/core/generic-loader.o
CC mipsn32el-linux-user/target/mips/msa_helper.o
CC sparc64-softmmu/hw/display/virtio-gpu.o
CC sparc-linux-user/target/sparc/translate.o
CC aarch64-linux-user/gdbstub-xml.o
CC sparc64-softmmu/hw/display/virtio-gpu-3d.o
CC unicore32-softmmu/hw/core/generic-loader.o
CC s390x-softmmu/accel/tcg/cpu-exec-common.o
CC mips-softmmu/accel/stubs/hvf-stub.o
CC m68k-linux-user/linux-user/m68k-sim.o
CC sh4eb-softmmu/hw/9pfs/virtio-9p-device.o
CC mips-linux-user/target/mips/dsp_helper.o
CC aarch64-softmmu/accel/tcg/cpu-exec-common.o
CC moxie-softmmu/accel/tcg/cpu-exec-common.o
CC mipsel-softmmu/hw/core/null-machine.o
CC sh4-softmmu/accel/tcg/cpu-exec.o
CC arm-softmmu/accel/tcg/tcg-runtime.o
CC sparc64-softmmu/hw/display/virtio-gpu-pci.o
CC or1k-softmmu/accel/tcg/cpu-exec.o
CC cris-softmmu/hw/core/generic-loader.o
CC s390x-softmmu/accel/tcg/translate-all.o
CC arm-linux-user/linux-user/arm/nwfpe/fpopcode.o
CC microblaze-linux-user/target/microblaze/gdbstub.o
CC mipsel-softmmu/hw/display/vga.o
CC moxie-softmmu/accel/tcg/translate-all.o
CC tricore-softmmu/accel/tcg/cpu-exec-common.o
CC i386-linux-user/target/i386/xsave_helper.o
CC moxie-softmmu/accel/tcg/translator.o
CC mips-linux-user/target/mips/op_helper.o
CC mipsn32-linux-user/target/mips/dsp_helper.o
CCAS mips64el-linux-user/linux-user/safe-syscall.o
CC ppc64abi32-linux-user/target/ppc/excp_helper.o
CC sparc64-softmmu/hw/misc/ivshmem.o
CC sparc-softmmu/hw/intc/grlib_irqmp.o
CC mipsn32-linux-user/target/mips/op_helper.o
CC cris-softmmu/hw/core/null-machine.o
CC tilegx-linux-user/target/tilegx/helper.o
CC mips64el-linux-user/target/mips/translate.o
CC sh4-linux-user/target/sh4/op_helper.o
CC armeb-linux-user/target/arm/kvm-stub.o
CC s390x-softmmu/accel/tcg/translator.o
CC unicore32-softmmu/hw/core/null-machine.o
CC microblazeel-softmmu/accel/tcg/cpu-exec-common.o
CC alpha-softmmu/hw/block/vhost-user-blk.o
GEN trace/generated-helpers.c
CC sparc64-softmmu/hw/misc/mmio_interface.o
CC ppc64le-linux-user/target/ppc/dfp_helper.o
CC sparc32plus-linux-user/target/sparc/mmu_helper.o
CC sparc-linux-user/target/sparc/helper.o
CC sparc64-softmmu/hw/net/virtio-net.o
CC ppc64-linux-user/target/ppc/cpu-models.o
CC armeb-linux-user/target/arm/translate.o
CC ppc64abi32-linux-user/target/ppc/fpu_helper.o
CC mips64el-linux-user/target/mips/dsp_helper.o
CC m68k-linux-user/target/m68k/m68k-semi.o
CC lm32-softmmu/accel/accel.o
CC microblaze-linux-user/trace/control-target.o
CC lm32-softmmu/accel/stubs/hax-stub.o
CC moxie-softmmu/hw/core/generic-loader.o
CC moxie-softmmu/hw/core/null-machine.o
CC sparc-softmmu/hw/misc/eccmemctl.o
CC mips64el-linux-user/target/mips/op_helper.o
CC sparc-softmmu/hw/misc/slavio_misc.o
CC arm-linux-user/linux-user/arm/nwfpe/single_cpdo.o
CC unicore32-softmmu/hw/misc/mmio_interface.o
CC cris-softmmu/hw/misc/mmio_interface.o
CC alpha-softmmu/hw/block/dataplane/virtio-blk.o
CC sh4eb-softmmu/hw/block/tc58128.o
CC ppc-linux-user/linux-user/uaccess.o
CC ppc64le-linux-user/target/ppc/excp_helper.o
CC x86_64-softmmu/accel/tcg/cpu-exec.o
CC i386-linux-user/target/i386/translate.o
GEN trace/generated-helpers.c
CC ppc64le-linux-user/target/ppc/fpu_helper.o
CC i386-linux-user/target/i386/bpt_helper.o
CC arm-linux-user/linux-user/arm/nwfpe/double_cpdo.o
CC ppc64abi32-linux-user/target/ppc/int_helper.o
CC sparc32plus-linux-user/target/sparc/ldst_helper.o
CC xtensa-softmmu/target/xtensa/core-de212.o
CCAS mips64-linux-user/linux-user/safe-syscall.o
CC cris-softmmu/hw/net/etraxfs_eth.o
CC mips-linux-user/target/mips/lmi_helper.o
CC ppc-linux-user/linux-user/uname.o
CC s390x-linux-user/target/s390x/translate.o
CC mipsn32-linux-user/target/mips/lmi_helper.o
CC x86_64-linux-user/target/i386/cc_helper.o
CC ppc64le-linux-user/target/ppc/int_helper.o
CC x86_64-linux-user/target/i386/excp_helper.o
CC lm32-softmmu/accel/stubs/hvf-stub.o
CC xtensa-softmmu/target/xtensa/core-fsf.o
CC sh4-linux-user/target/sh4/helper.o
CC mips64-softmmu/hw/display/virtio-gpu-3d.o
CC microblazeel-linux-user/trace/control-target.o
CC microblaze-softmmu/accel/accel.o
CC unicore32-softmmu/hw/net/vhost_net.o
CC armeb-linux-user/target/arm/op_helper.o
CC nios2-softmmu/hw/core/null-machine.o
CC microblaze-linux-user/trace/generated-helpers.o
CC sh4eb-softmmu/hw/block/virtio-blk.o
CC sparc32plus-linux-user/target/sparc/int64_helper.o
CC arm-linux-user/linux-user/arm/nwfpe/extended_cpdo.o
CC microblazeel-softmmu/accel/tcg/translate-all.o
CC microblazeel-softmmu/accel/tcg/translator.o
CC x86_64-softmmu/accel/tcg/cpu-exec-common.o
CC sh4-softmmu/accel/tcg/cpu-exec-common.o
CC mips-softmmu/accel/stubs/kvm-stub.o
CC lm32-softmmu/accel/stubs/kvm-stub.o
CC m68k-linux-user/target/m68k/translate.o
CC lm32-softmmu/accel/tcg/tcg-all.o
CC s390x-softmmu/hw/9pfs/virtio-9p-device.o
CC tricore-softmmu/accel/tcg/translate-all.o
CC nios2-linux-user/target/nios2/op_helper.o
CC alpha-softmmu/hw/char/virtio-serial-bus.o
CC ppc64-linux-user/target/ppc/cpu.o
CC xtensaeb-softmmu/accel/tcg/tcg-runtime.o
CC unicore32-softmmu/hw/net/rocker/qmp-norocker.o
CC mips64-softmmu/hw/display/virtio-gpu-pci.o
CC m68k-softmmu/accel/tcg/cpu-exec.o
CC i386-softmmu/accel/tcg/translator.o
CC xtensa-softmmu/target/xtensa/core-sample_controller.o
CC cris-softmmu/hw/net/vhost_net.o
CC s390x-softmmu/hw/block/virtio-blk.o
CC sparc-softmmu/hw/misc/mmio_interface.o
CC alpha-linux-user/target/alpha/sys_helper.o
CC sh4eb-linux-user/target/sh4/gdbstub.o
CC nios2-softmmu/hw/intc/nios2_iic.o
CC s390x-softmmu/hw/block/vhost-user-blk.o
CC tilegx-linux-user/target/tilegx/simd_helper.o
CC i386-linux-user/target/i386/cc_helper.o
CC microblazeel-linux-user/trace/generated-helpers.o
CC or1k-softmmu/accel/tcg/cpu-exec-common.o
CC or1k-softmmu/accel/tcg/translate-all.o
CC arm-linux-user/target/arm/arm-semi.o
CC m68k-softmmu/accel/tcg/cpu-exec-common.o
CC or1k-softmmu/accel/tcg/translator.o
CC mips64el-softmmu/accel/tcg/translate-all.o
CC i386-linux-user/target/i386/excp_helper.o
CC lm32-softmmu/accel/tcg/cputlb.o
CC moxie-softmmu/hw/display/vga.o
CC sh4-softmmu/accel/tcg/translate-all.o
CC unicore32-softmmu/hw/vfio/common.o
LINK microblaze-linux-user/qemu-microblaze
CC sh4-softmmu/accel/tcg/translator.o
CC i386-softmmu/hw/9pfs/virtio-9p-device.o
CC sparc-softmmu/hw/net/vhost_net.o
CC microblaze-softmmu/accel/stubs/hax-stub.o
CC mipsn32-linux-user/target/mips/helper.o
CC sh4-softmmu/hw/9pfs/virtio-9p-device.o
CC mips64-softmmu/hw/intc/mips_gic.o
CC mips-softmmu/accel/tcg/tcg-all.o
CC alpha-linux-user/target/alpha/mem_helper.o
CC arm-softmmu/accel/tcg/cpu-exec.o
CC nios2-linux-user/target/nios2/helper.o
CC unicore32-softmmu/hw/vfio/platform.o
CC sh4-linux-user/target/sh4/cpu.o
CC mips64el-softmmu/accel/tcg/translator.o
CC mips64el-softmmu/hw/9pfs/virtio-9p-device.o
CC cris-softmmu/hw/net/rocker/qmp-norocker.o
CC i386-linux-user/target/i386/fpu_helper.o
CC xtensaeb-softmmu/accel/tcg/cpu-exec.o
GEN trace/generated-helpers.c
CC m68k-linux-user/target/m68k/op_helper.o
CC microblaze-softmmu/accel/stubs/hvf-stub.o
CC sparc32plus-linux-user/target/sparc/vis_helper.o
CC tilegx-linux-user/trace/control-target.o
LINK microblazeel-linux-user/qemu-microblazeel
CC s390x-linux-user/target/s390x/cc_helper.o
CC s390x-linux-user/target/s390x/excp_helper.o
CC microblazeel-softmmu/hw/core/generic-loader.o
CC mips-linux-user/target/mips/helper.o
CC mips-softmmu/accel/tcg/cputlb.o
CC sparc-softmmu/hw/net/rocker/qmp-norocker.o
CC sparc-softmmu/hw/vfio/common.o
CC s390x-linux-user/target/s390x/fpu_helper.o
CC nios2-linux-user/target/nios2/cpu.o
CC s390x-linux-user/target/s390x/int_helper.o
CC mipsel-linux-user/target/mips/mips-semi.o
CC ppc64le-linux-user/target/ppc/timebase_helper.o
CC alpha-linux-user/target/alpha/gdbstub.o
CC mips64-softmmu/hw/misc/ivshmem.o
CC m68k-linux-user/target/m68k/helper.o
CC microblaze-softmmu/accel/stubs/kvm-stub.o
CC cris-softmmu/hw/vfio/common.o
CC i386-softmmu/hw/block/virtio-blk.o
CC nios2-softmmu/hw/misc/mmio_interface.o
CC mips64el-softmmu/hw/block/virtio-blk.o
CC cris-linux-user/target/cris/gdbstub.o
GEN trace/generated-helpers.c
CC x86_64-softmmu/accel/tcg/translate-all.o
CC ppc64abi32-linux-user/target/ppc/timebase_helper.o
CC xtensaeb-softmmu/accel/tcg/cpu-exec-common.o
CC sh4eb-softmmu/hw/block/vhost-user-blk.o
CC sh4eb-linux-user/trace/control-target.o
CC sh4eb-softmmu/hw/block/dataplane/virtio-blk.o
CC nios2-linux-user/target/nios2/mmu.o
CC sparc64-softmmu/hw/net/vhost_net.o
CC cris-softmmu/hw/vfio/platform.o
CC alpha-softmmu/hw/core/generic-loader.o
CC microblazeel-softmmu/hw/core/null-machine.o
GEN trace/generated-helpers.c
CC lm32-softmmu/accel/tcg/tcg-runtime.o
CC mipsel-softmmu/hw/display/virtio-gpu.o
CC mipsel-softmmu/hw/display/virtio-gpu-3d.o
CC arm-linux-user/target/arm/kvm-stub.o
CC mipsn32-linux-user/target/mips/cpu.o
CC tilegx-linux-user/trace/generated-helpers.o
CC alpha-linux-user/trace/control-target.o
CC nios2-softmmu/hw/net/vhost_net.o
CC mips64el-linux-user/target/mips/lmi_helper.o
CC mipsn32-linux-user/target/mips/gdbstub.o
CC mips-softmmu/accel/tcg/tcg-runtime.o
CC i386-softmmu/hw/block/vhost-user-blk.o
CC i386-softmmu/hw/block/dataplane/virtio-blk.o
CC m68k-softmmu/accel/tcg/translate-all.o
CC microblaze-softmmu/accel/tcg/tcg-all.o
CC s390x-softmmu/hw/block/dataplane/virtio-blk.o
GEN trace/generated-helpers.c
CC cris-softmmu/hw/vfio/spapr.o
CCAS ppc-linux-user/linux-user/safe-syscall.o
CC ppc64-linux-user/target/ppc/translate.o
CC microblazeel-softmmu/hw/dma/xlnx_dpdma.o
CC microblazeel-softmmu/hw/misc/mmio_interface.o
CC m68k-softmmu/accel/tcg/translator.o
CC cris-softmmu/hw/cris/boot.o
CC microblazeel-softmmu/hw/net/xilinx_ethlite.o
CC mips64-linux-user/target/mips/translate.o
CC sparc-softmmu/hw/vfio/platform.o
CC arm-linux-user/target/arm/translate.o
CC nios2-linux-user/trace/control-target.o
CC sparc64-softmmu/hw/scsi/virtio-scsi.o
CC or1k-softmmu/hw/core/generic-loader.o
CC mips64-softmmu/hw/misc/mips_cmgcr.o
CC m68k-linux-user/target/m68k/cpu.o
CC nios2-softmmu/hw/net/rocker/qmp-norocker.o
CC sh4-softmmu/hw/block/tc58128.o
CC sh4eb-linux-user/trace/generated-helpers.o
CC alpha-softmmu/hw/core/null-machine.o
CC x86_64-softmmu/accel/tcg/translator.o
CC tricore-softmmu/accel/tcg/translator.o
CC x86_64-softmmu/hw/9pfs/virtio-9p-device.o
CC s390x-softmmu/hw/char/virtio-serial-bus.o
CC aarch64-softmmu/accel/tcg/translate-all.o
CC xtensa-softmmu/target/xtensa/monitor.o
CC x86_64-linux-user/target/i386/fpu_helper.o
CC mips64-linux-user/target/mips/dsp_helper.o
CC arm-softmmu/accel/tcg/cpu-exec-common.o
CC mips64-linux-user/target/mips/op_helper.o
CC alpha-linux-user/trace/generated-helpers.o
CC aarch64-linux-user/trace/generated-helpers.o
CC sparc-linux-user/target/sparc/cpu.o
GEN trace/generated-helpers.c
CC ppc64le-linux-user/target/ppc/misc_helper.o
CC ppc64le-linux-user/target/ppc/mem_helper.o
CC sh4eb-softmmu/hw/char/sh_serial.o
CC sparc64-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC aarch64-softmmu/accel/tcg/translator.o
CC mips64-linux-user/target/mips/lmi_helper.o
LINK tilegx-linux-user/qemu-tilegx
CC microblaze-softmmu/accel/tcg/cputlb.o
CC mips64-linux-user/target/mips/helper.o
CC arm-linux-user/target/arm/op_helper.o
CC nios2-softmmu/hw/timer/altera_timer.o
CC or1k-softmmu/hw/core/null-machine.o
CC ppc64-linux-user/target/ppc/kvm-stub.o
CC i386-linux-user/target/i386/int_helper.o
CC xtensaeb-softmmu/accel/tcg/translate-all.o
CC ppc-linux-user/target/ppc/cpu-models.o
CC aarch64-softmmu/hw/9pfs/virtio-9p-device.o
CC sh4-softmmu/hw/block/virtio-blk.o
CC sparc-softmmu/hw/vfio/spapr.o
CC alpha-softmmu/hw/display/vga.o
CC arm-softmmu/accel/tcg/translate-all.o
CC sh4-softmmu/hw/block/vhost-user-blk.o
CC nios2-linux-user/trace/generated-helpers.o
CC microblazeel-softmmu/hw/net/vhost_net.o
CC i386-softmmu/hw/char/virtio-serial-bus.o
CC sh4-softmmu/hw/block/dataplane/virtio-blk.o
CC ppc64-linux-user/target/ppc/dfp_helper.o
CC mipsel-softmmu/hw/display/virtio-gpu-pci.o
CC sh4eb-softmmu/hw/char/virtio-serial-bus.o
LINK sh4eb-linux-user/qemu-sh4eb
CC mips64-softmmu/hw/misc/mips_cpc.o
CC ppc-linux-user/target/ppc/cpu.o
CC unicore32-softmmu/hw/vfio/spapr.o
CC or1k-softmmu/hw/intc/ompic.o
CC sparc-softmmu/hw/sparc/sun4m_iommu.o
CC mipsn32el-linux-user/target/mips/mips-semi.o
GEN trace/generated-helpers.c
CC s390x-linux-user/target/s390x/mem_helper.o
CC sh4eb-softmmu/hw/core/generic-loader.o
CC cris-linux-user/trace/control-target.o
CC mips64el-softmmu/hw/block/vhost-user-blk.o
LINK alpha-linux-user/qemu-alpha
CC mipsn32-linux-user/target/mips/msa_helper.o
CC ppc64-linux-user/target/ppc/excp_helper.o
CC tricore-softmmu/hw/core/generic-loader.o
CC m68k-softmmu/hw/char/mcf_uart.o
CC m68k-softmmu/hw/core/generic-loader.o
CC tricore-softmmu/hw/misc/mmio_interface.o
CC tricore-softmmu/hw/core/null-machine.o
CC m68k-softmmu/hw/core/null-machine.o
CC m68k-softmmu/hw/misc/mmio_interface.o
CC nios2-softmmu/hw/vfio/common.o
CC nios2-softmmu/hw/vfio/platform.o
CC ppc64-linux-user/target/ppc/fpu_helper.o
GEN trace/generated-helpers.c
CC sh4-linux-user/target/sh4/gdbstub.o
CC microblazeel-softmmu/hw/net/rocker/qmp-norocker.o
CC sparc64-softmmu/hw/scsi/vhost-scsi-common.o
CC sparc-softmmu/hw/sparc/sun4m.o
CC m68k-softmmu/hw/net/mcf_fec.o
CC m68k-softmmu/hw/net/vhost_net.o
GEN trace/generated-helpers.c
LINK nios2-linux-user/qemu-nios2
CC ppc64le-linux-user/target/ppc/user_only_helper.o
CC x86_64-softmmu/hw/block/virtio-blk.o
CC or1k-softmmu/hw/misc/mmio_interface.o
CC nios2-softmmu/hw/vfio/spapr.o
CC sparc-linux-user/target/sparc/fop_helper.o
CC ppc64-linux-user/target/ppc/int_helper.o
CC mipsn32el-linux-user/trace/control-target.o
CC mipsel-softmmu/hw/intc/mips_gic.o
CC sparc32plus-linux-user/target/sparc/gdbstub.o
CC cris-softmmu/hw/cris/axis_dev88.o
CC mipsel-linux-user/trace/control-target.o
CC arm-softmmu/accel/tcg/translator.o
CC lm32-softmmu/accel/tcg/cpu-exec.o
CC mips64-softmmu/hw/misc/mips_itu.o
CC arm-linux-user/target/arm/helper.o
CC sh4eb-softmmu/hw/core/null-machine.o
CC mips64el-softmmu/hw/block/dataplane/virtio-blk.o
CC aarch64-softmmu/hw/adc/stm32f2xx_adc.o
CC sparc-softmmu/hw/sparc/leon3.o
CC x86_64-linux-user/target/i386/int_helper.o
CC cris-linux-user/trace/generated-helpers.o
CC armeb-linux-user/target/arm/helper.o
CC tricore-softmmu/hw/net/vhost_net.o
CC unicore32-softmmu/hw/unicore32/puv3.o
CC microblazeel-softmmu/hw/vfio/common.o
CC microblazeel-softmmu/hw/vfio/platform.o
CC ppc64abi32-linux-user/target/ppc/misc_helper.o
CC i386-softmmu/hw/core/generic-loader.o
CC aarch64_be-linux-user/target/arm/iwmmxt_helper.o
CC aarch64_be-linux-user/target/arm/gdbstub.o
CC sh4-linux-user/trace/control-target.o
CC aarch64_be-linux-user/target/arm/cpu64.o
CC mipsel-softmmu/hw/misc/ivshmem.o
CC or1k-softmmu/hw/net/vhost_net.o
CC sparc-linux-user/target/sparc/cc_helper.o
CC s390x-softmmu/hw/char/terminal3270.o
CC sparc-linux-user/target/sparc/win_helper.o
CC sparc64-softmmu/hw/scsi/vhost-scsi.o
CC mipsn32-linux-user/target/mips/mips-semi.o
CC nios2-softmmu/hw/nios2/boot.o
CC or1k-softmmu/hw/net/rocker/qmp-norocker.o
CC ppc64abi32-linux-user/target/ppc/mem_helper.o
GEN trace/generated-helpers.c
CC mips-linux-user/target/mips/cpu.o
CC sparc-softmmu/target/sparc/machine.o
CC moxie-softmmu/hw/misc/mmio_interface.o
CC sh4eb-softmmu/hw/display/sm501.o
CC sparc64-softmmu/hw/scsi/vhost-user-scsi.o
CC mips64el-linux-user/target/mips/helper.o
CC m68k-softmmu/hw/net/rocker/qmp-norocker.o
CC m68k-linux-user/target/m68k/fpu_helper.o
CC sparc32plus-linux-user/trace/control-target.o
CC sh4-softmmu/hw/char/sh_serial.o
CC arm-softmmu/hw/9pfs/virtio-9p-device.o
CC armeb-linux-user/target/arm/cpu.o
CC tricore-softmmu/hw/net/rocker/qmp-norocker.o
CC xtensaeb-softmmu/accel/tcg/translator.o
CC sparc-linux-user/target/sparc/mmu_helper.o
CC mips64-softmmu/hw/misc/mmio_interface.o
CC microblazeel-softmmu/hw/vfio/spapr.o
LINK cris-linux-user/qemu-cris
CC aarch64-softmmu/hw/block/virtio-blk.o
CC ppc64le-linux-user/target/ppc/gdbstub.o
CC arm-softmmu/hw/adc/stm32f2xx_adc.o
CC sh4-linux-user/trace/generated-helpers.o
CC x86_64-softmmu/hw/block/vhost-user-blk.o
CC mips64el-softmmu/hw/char/virtio-serial-bus.o
CC or1k-softmmu/hw/vfio/common.o
CC unicore32-softmmu/target/unicore32/translate.o
CC microblaze-softmmu/accel/tcg/tcg-runtime.o
CC ppc64-linux-user/target/ppc/timebase_helper.o
CC microblaze-softmmu/accel/tcg/cpu-exec.o
CC sparc64-linux-user/target/sparc/cc_helper.o
CC sparc64-softmmu/hw/timer/mc146818rtc.o
CC xtensa-softmmu/target/xtensa/xtensa-isa.o
CC arm-softmmu/hw/block/virtio-blk.o
CC unicore32-softmmu/target/unicore32/op_helper.o
CC mips-softmmu/accel/tcg/cpu-exec.o
CC microblazeel-softmmu/hw/microblaze/petalogix_s3adsp1800_mmu.o
CC cris-softmmu/target/cris/translate.o
CC m68k-softmmu/hw/vfio/common.o
CC lm32-softmmu/accel/tcg/cpu-exec-common.o
CC s390x-softmmu/hw/core/generic-loader.o
CC moxie-softmmu/hw/net/vhost_net.o
CC armeb-linux-user/target/arm/neon_helper.o
CC xtensa-softmmu/target/xtensa/translate.o
CC mipsn32el-linux-user/trace/generated-helpers.o
CC tricore-softmmu/hw/vfio/common.o
CC xtensa-softmmu/target/xtensa/op_helper.o
CC i386-softmmu/hw/core/null-machine.o
CC mips64el-linux-user/target/mips/cpu.o
CC sparc-linux-user/target/sparc/ldst_helper.o
CC sparc-softmmu/target/sparc/monitor.o
CC mips64el-linux-user/target/mips/gdbstub.o
CC mips64el-softmmu/hw/core/generic-loader.o
GEN trace/generated-helpers.c
CC cris-softmmu/target/cris/op_helper.o
CC sparc32plus-linux-user/trace/generated-helpers.o
CC xtensa-softmmu/target/xtensa/helper.o
CC i386-softmmu/hw/display/vga.o
CC sh4-softmmu/hw/char/virtio-serial-bus.o
CC nios2-softmmu/hw/nios2/cpu_pic.o
CC mips64-softmmu/hw/net/virtio-net.o
CC m68k-linux-user/target/m68k/gdbstub.o
CC unicore32-softmmu/target/unicore32/helper.o
CC unicore32-softmmu/target/unicore32/cpu.o
CC s390x-softmmu/hw/core/null-machine.o
CC aarch64-softmmu/hw/block/vhost-user-blk.o
CC x86_64-softmmu/hw/block/dataplane/virtio-blk.o
CC s390x-linux-user/target/s390x/misc_helper.o
CC xtensaeb-softmmu/hw/core/generic-loader.o
CC s390x-softmmu/hw/display/virtio-gpu.o
CC moxie-softmmu/hw/net/rocker/qmp-norocker.o
CC sh4-softmmu/hw/core/generic-loader.o
CC ppc-linux-user/target/ppc/translate.o
CC sparc-linux-user/target/sparc/int32_helper.o
CC sparc-softmmu/target/sparc/translate.o
CC nios2-softmmu/hw/nios2/10m50_devboard.o
CC xtensaeb-softmmu/hw/core/null-machine.o
CC tricore-softmmu/hw/vfio/platform.o
CC mipsel-softmmu/hw/misc/mips_cmgcr.o
CC ppc64-linux-user/target/ppc/misc_helper.o
CC sparc-linux-user/target/sparc/gdbstub.o
CC aarch64-softmmu/hw/block/dataplane/virtio-blk.o
CC unicore32-softmmu/target/unicore32/ucf64_helper.o
CC mips64el-linux-user/target/mips/msa_helper.o
CC xtensaeb-softmmu/hw/misc/mmio_interface.o
LINK sh4-linux-user/qemu-sh4
CC i386-softmmu/hw/display/virtio-gpu.o
CC m68k-softmmu/hw/vfio/platform.o
CC lm32-softmmu/accel/tcg/translate-all.o
CC sparc64-linux-user/target/sparc/win_helper.o
CC aarch64-softmmu/hw/char/exynos4210_uart.o
CC arm-linux-user/target/arm/cpu.o
CC moxie-softmmu/hw/timer/mc146818rtc.o
CC m68k-softmmu/hw/vfio/spapr.o
CC mips64el-linux-user/target/mips/mips-semi.o
CC sh4-softmmu/hw/core/null-machine.o
CC lm32-softmmu/accel/tcg/translator.o
CC arm-softmmu/hw/block/vhost-user-blk.o
LINK sparc32plus-linux-user/qemu-sparc32plus
CC arm-softmmu/hw/block/dataplane/virtio-blk.o
GEN trace/generated-helpers.c
CC i386-softmmu/hw/display/virtio-gpu-3d.o
CC xtensa-softmmu/target/xtensa/cpu.o
GEN trace/generated-helpers.c
CC nios2-softmmu/target/nios2/translate.o
CC ppc64abi32-linux-user/target/ppc/user_only_helper.o
CC cris-softmmu/target/cris/helper.o
CC sh4eb-softmmu/hw/display/vga.o
CC mipsel-softmmu/hw/misc/mips_cpc.o
CC x86_64-softmmu/hw/char/virtio-serial-bus.o
CC xtensaeb-softmmu/hw/net/vhost_net.o
CC sparc-linux-user/trace/control-target.o
CC mipsel-softmmu/hw/misc/mips_itu.o
CC mips64el-softmmu/hw/core/null-machine.o
CC ppc-linux-user/target/ppc/kvm-stub.o
CC ppc64abi32-linux-user/target/ppc/gdbstub.o
CC sparc64-softmmu/hw/vfio/common.o
CC ppc64abi32-linux-user/target/ppc/../../libdecnumber/decContext.o
CC mips-softmmu/accel/tcg/cpu-exec-common.o
CC sh4-softmmu/hw/display/sm501.o
CC alpha-softmmu/hw/display/virtio-gpu.o
CC mipsel-linux-user/trace/generated-helpers.o
CC aarch64-softmmu/hw/char/omap_uart.o
CC or1k-softmmu/hw/vfio/platform.o
CC mips64-softmmu/hw/net/vhost_net.o
CC armeb-linux-user/target/arm/iwmmxt_helper.o
CC xtensa-softmmu/target/xtensa/gdbstub.o
CC s390x-softmmu/hw/display/virtio-gpu-3d.o
CC mips64-softmmu/hw/scsi/virtio-scsi.o
CC aarch64-softmmu/hw/char/digic-uart.o
CC microblaze-softmmu/accel/tcg/cpu-exec-common.o
CC unicore32-softmmu/target/unicore32/softmmu.o
CC x86_64-softmmu/hw/core/generic-loader.o
CC i386-linux-user/target/i386/mem_helper.o
CC aarch64_be-linux-user/target/arm/translate-a64.o
CC armeb-linux-user/target/arm/gdbstub.o
CC xtensaeb-softmmu/hw/net/rocker/qmp-norocker.o
CC i386-linux-user/target/i386/misc_helper.o
CC moxie-softmmu/hw/vfio/common.o
CC sparc64-softmmu/hw/vfio/pci.o
CC mips64-linux-user/target/mips/cpu.o
CC or1k-softmmu/hw/vfio/spapr.o
CC mips-softmmu/accel/tcg/translate-all.o
CC sparc64-linux-user/target/sparc/mmu_helper.o
CC mipsel-softmmu/hw/misc/mmio_interface.o
CC sparc64-linux-user/target/sparc/ldst_helper.o
CC mips64el-softmmu/hw/display/vga.o
CC aarch64_be-linux-user/target/arm/helper-a64.o
CC ppc64-linux-user/target/ppc/mem_helper.o
CC microblazeel-softmmu/hw/microblaze/petalogix_ml605_mmu.o
CC mipsel-softmmu/hw/net/virtio-net.o
CC i386-linux-user/target/i386/mpx_helper.o
CC sparc-linux-user/trace/generated-helpers.o
CC microblazeel-softmmu/hw/microblaze/xlnx-zynqmp-pmu.o
CC arm-softmmu/hw/char/exynos4210_uart.o
CC mips64el-softmmu/hw/display/virtio-gpu.o
CC mips64el-softmmu/hw/display/virtio-gpu-3d.o
CC ppc64-linux-user/target/ppc/user_only_helper.o
CC aarch64_be-linux-user/target/arm/gdbstub64.o
CC tricore-softmmu/hw/vfio/spapr.o
CC i386-softmmu/hw/display/virtio-gpu-pci.o
CC lm32-softmmu/hw/core/generic-loader.o
CC aarch64-softmmu/hw/char/stm32f2xx_usart.o
CC x86_64-linux-user/target/i386/mem_helper.o
CC aarch64-softmmu/hw/char/bcm2835_aux.o
CC m68k-softmmu/hw/m68k/an5206.o
CC m68k-softmmu/hw/m68k/mcf5208.o
GEN trace/generated-helpers.c
CC x86_64-softmmu/hw/core/null-machine.o
CC sparc-softmmu/target/sparc/helper.o
CC xtensaeb-softmmu/hw/vfio/common.o
CC s390x-softmmu/hw/display/virtio-gpu-pci.o
CC i386-linux-user/target/i386/seg_helper.o
CC arm-softmmu/hw/char/omap_uart.o
CC microblaze-softmmu/accel/tcg/translate-all.o
CC sh4-softmmu/hw/display/vga.o
CC arm-softmmu/hw/char/digic-uart.o
CC arm-softmmu/hw/char/stm32f2xx_usart.o
CC xtensaeb-softmmu/hw/vfio/platform.o
CC sparc-softmmu/target/sparc/cpu.o
CC moxie-softmmu/hw/vfio/platform.o
CC sparc64-linux-user/target/sparc/int64_helper.o
CC moxie-softmmu/hw/vfio/spapr.o
CC sh4-softmmu/hw/display/virtio-gpu.o
CC sparc64-linux-user/target/sparc/vis_helper.o
CC mipsel-softmmu/hw/net/vhost_net.o
CC alpha-softmmu/hw/display/virtio-gpu-3d.o
CC mips64-linux-user/target/mips/gdbstub.o
CC sh4eb-softmmu/hw/display/virtio-gpu.o
CC arm-softmmu/hw/char/bcm2835_aux.o
GEN trace/generated-helpers.c
CC sh4eb-softmmu/hw/display/virtio-gpu-3d.o
CC aarch64-softmmu/hw/char/virtio-serial-bus.o
CC x86_64-softmmu/hw/display/vga.o
CC aarch64-softmmu/hw/core/generic-loader.o
CC alpha-softmmu/hw/display/virtio-gpu-pci.o
CC unicore32-softmmu/trace/control-target.o
CC or1k-softmmu/hw/openrisc/pic_cpu.o
CC sparc64-linux-user/target/sparc/gdbstub.o
CC m68k-softmmu/hw/m68k/mcf5206.o
CC ppc64le-linux-user/target/ppc/../../libdecnumber/decContext.o
CC tricore-softmmu/hw/tricore/tricore_testboard.o
CC tricore-softmmu/target/tricore/translate.o
LINK sparc-linux-user/qemu-sparc
CC i386-softmmu/hw/display/virtio-vga.o
CC microblazeel-softmmu/hw/microblaze/boot.o
CC microblazeel-softmmu/target/microblaze/translate.o
CC mipsel-softmmu/hw/scsi/virtio-scsi.o
CC ppc64-linux-user/target/ppc/gdbstub.o
CC sh4eb-softmmu/hw/display/virtio-gpu-pci.o
CC m68k-softmmu/hw/m68k/mcf_intc.o
CC mips64el-softmmu/hw/display/virtio-gpu-pci.o
CC lm32-softmmu/hw/core/null-machine.o
CC mips-softmmu/accel/tcg/translator.o
CC ppc64abi32-linux-user/target/ppc/../../libdecnumber/decNumber.o
CC ppc64-linux-user/target/ppc/../../libdecnumber/decContext.o
CC s390x-softmmu/hw/intc/s390_flic.o
GEN trace/generated-helpers.c
CC sh4-softmmu/hw/display/virtio-gpu-3d.o
CC arm-softmmu/hw/char/virtio-serial-bus.o
CC sh4eb-softmmu/hw/intc/sh_intc.o
CC ppc64-linux-user/target/ppc/../../libdecnumber/decNumber.o
CC alpha-softmmu/hw/misc/ivshmem.o
CC sparc-softmmu/target/sparc/fop_helper.o
CC s390x-linux-user/target/s390x/crypto_helper.o
CC m68k-softmmu/target/m68k/m68k-semi.o
CC s390x-softmmu/hw/misc/mmio_interface.o
CC alpha-softmmu/hw/misc/mmio_interface.o
CC or1k-softmmu/hw/openrisc/cputimer.o
CC m68k-softmmu/target/m68k/translate.o
CC lm32-softmmu/hw/input/milkymist-softusb.o
CC x86_64-softmmu/hw/display/virtio-gpu.o
CC xtensaeb-softmmu/hw/vfio/spapr.o
CC mips64el-linux-user/trace/control-target.o
CC mipsn32-linux-user/trace/control-target.o
CC mips-softmmu/hw/9pfs/virtio-9p-device.o
CC tricore-softmmu/target/tricore/helper.o
CC armeb-linux-user/target/arm/crypto_helper.o
CC sparc64-softmmu/hw/vfio/pci-quirks.o
CC cris-softmmu/target/cris/cpu.o
CC cris-softmmu/target/cris/gdbstub.o
CC microblazeel-softmmu/target/microblaze/op_helper.o
CC aarch64-softmmu/hw/core/null-machine.o
GEN trace/generated-helpers.c
CC alpha-softmmu/hw/net/virtio-net.o
CC mips64-linux-user/target/mips/msa_helper.o
CC lm32-softmmu/hw/misc/milkymist-hpdmc.o
CC sparc64-linux-user/trace/control-target.o
CC arm-softmmu/hw/core/generic-loader.o
CC mips64-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC mips64-softmmu/hw/scsi/vhost-scsi-common.o
CC moxie-softmmu/hw/moxie/moxiesim.o
CC or1k-softmmu/hw/openrisc/openrisc_sim.o
CC mips64-linux-user/target/mips/mips-semi.o
CC i386-softmmu/hw/intc/apic.o
CC i386-softmmu/hw/intc/apic_common.o
GEN trace/generated-helpers.c
CC x86_64-linux-user/target/i386/misc_helper.o
CC microblazeel-softmmu/target/microblaze/helper.o
CC microblazeel-softmmu/target/microblaze/cpu.o
CC mips-softmmu/hw/block/virtio-blk.o
CC cris-softmmu/target/cris/mmu.o
CC lm32-softmmu/hw/misc/milkymist-pfpu.o
CC arm-linux-user/target/arm/neon_helper.o
CC tricore-softmmu/target/tricore/cpu.o
CC s390x-softmmu/hw/net/virtio-net.o
CC i386-softmmu/hw/intc/ioapic.o
CC nios2-softmmu/target/nios2/op_helper.o
CC microblaze-softmmu/accel/tcg/translator.o
CC nios2-softmmu/target/nios2/helper.o
CC m68k-linux-user/trace/control-target.o
CC sh4eb-softmmu/hw/misc/ivshmem.o
CC s390x-softmmu/hw/net/vhost_net.o
CC or1k-softmmu/target/openrisc/machine.o
CC tricore-softmmu/target/tricore/op_helper.o
CC sh4eb-softmmu/hw/misc/mmio_interface.o
CC aarch64_be-linux-user/target/arm/crypto_helper.o
CC sparc64-linux-user/trace/generated-helpers.o
CC mips64-softmmu/hw/scsi/vhost-scsi.o
CC ppc64-linux-user/target/ppc/../../libdecnumber/dpd/decimal32.o
CC mips-softmmu/hw/block/vhost-user-blk.o
CC x86_64-softmmu/hw/display/virtio-gpu-3d.o
CC ppc64-linux-user/target/ppc/../../libdecnumber/dpd/decimal64.o
CC mipsel-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC aarch64-softmmu/hw/cpu/arm11mpcore.o
CC arm-linux-user/target/arm/iwmmxt_helper.o
CC xtensaeb-softmmu/hw/xtensa/pic_cpu.o
GEN trace/generated-helpers.c
CC xtensaeb-softmmu/hw/xtensa/sim.o
CC cris-softmmu/target/cris/machine.o
CC moxie-softmmu/target/moxie/translate.o
CC mips64el-linux-user/trace/generated-helpers.o
CC s390x-linux-user/target/s390x/kvm-stub.o
CC sparc-softmmu/target/sparc/cc_helper.o
CC sparc-softmmu/target/sparc/win_helper.o
CC m68k-softmmu/target/m68k/op_helper.o
CC s390x-softmmu/hw/net/rocker/qmp-norocker.o
CC ppc-linux-user/target/ppc/dfp_helper.o
CC aarch64-softmmu/hw/cpu/realview_mpcore.o
CC xtensaeb-softmmu/hw/xtensa/xtensa_memory.o
CC sparc-softmmu/target/sparc/mmu_helper.o
CC aarch64-softmmu/hw/cpu/a9mpcore.o
CC lm32-softmmu/hw/misc/mmio_interface.o
GEN trace/generated-helpers.c
CC i386-softmmu/hw/isa/lpc_ich9.o
CC sparc-softmmu/target/sparc/ldst_helper.o
CC aarch64_be-linux-user/trace/control-target.o
CC s390x-softmmu/hw/scsi/virtio-scsi.o
CC microblaze-softmmu/hw/core/generic-loader.o
CC sparc-softmmu/target/sparc/int32_helper.o
CC sparc64-softmmu/hw/vfio/platform.o
CC i386-linux-user/target/i386/smm_helper.o
CC aarch64_be-linux-user/gdbstub-xml.o
CC armeb-linux-user/trace/control-target.o
CC m68k-linux-user/gdbstub-xml.o
CC ppc64le-linux-user/target/ppc/../../libdecnumber/decNumber.o
GEN trace/generated-helpers.c
CC i386-softmmu/hw/misc/ivshmem.o
CC or1k-softmmu/target/openrisc/cpu.o
CC nios2-softmmu/target/nios2/cpu.o
CC sparc-softmmu/target/sparc/gdbstub.o
CC mips64el-softmmu/hw/intc/mips_gic.o
LINK sparc64-linux-user/qemu-sparc64
CC s390x-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC x86_64-softmmu/hw/display/virtio-gpu-pci.o
CC ppc64abi32-linux-user/target/ppc/../../libdecnumber/dpd/decimal32.o
CC aarch64-softmmu/hw/cpu/a15mpcore.o
CC mipsn32-linux-user/trace/generated-helpers.o
GEN trace/generated-helpers.c
CC s390x-softmmu/hw/scsi/vhost-scsi-common.o
GEN trace/generated-helpers.c
CC x86_64-linux-user/target/i386/mpx_helper.o
CC ppc64abi32-linux-user/target/ppc/../../libdecnumber/dpd/decimal64.o
CC ppc64le-linux-user/target/ppc/../../libdecnumber/dpd/decimal32.o
CC i386-softmmu/hw/misc/pvpanic.o
CC aarch64-softmmu/hw/display/omap_dss.o
CC mips64-softmmu/hw/scsi/vhost-user-scsi.o
CC mips-softmmu/hw/block/dataplane/virtio-blk.o
CC or1k-softmmu/target/openrisc/exception.o
CC aarch64-softmmu/hw/display/omap_lcdc.o
CC moxie-softmmu/target/moxie/helper.o
CC i386-softmmu/hw/misc/mmio_interface.o
CC nios2-softmmu/target/nios2/mmu.o
CC mipsel-softmmu/hw/scsi/vhost-scsi-common.o
CC sh4eb-softmmu/hw/net/virtio-net.o
CC nios2-softmmu/target/nios2/monitor.o
CC sh4-softmmu/hw/display/virtio-gpu-pci.o
CC s390x-softmmu/hw/scsi/vhost-scsi.o
CC xtensaeb-softmmu/hw/xtensa/xtfpga.o
CC sh4-softmmu/hw/intc/sh_intc.o
CC sh4-softmmu/hw/misc/ivshmem.o
CC sh4-softmmu/hw/misc/mmio_interface.o
CC xtensaeb-softmmu/target/xtensa/xtensa-semi.o
CC sh4-softmmu/hw/net/virtio-net.o
CC lm32-softmmu/hw/net/milkymist-minimac2.o
CC ppc64abi32-linux-user/target/ppc/../../libdecnumber/dpd/decimal128.o
CC arm-softmmu/hw/core/null-machine.o
CC m68k-softmmu/target/m68k/helper.o
CC xtensaeb-softmmu/target/xtensa/core-dc232b.o
CC unicore32-softmmu/trace/generated-helpers.o
CC s390x-softmmu/hw/scsi/vhost-user-scsi.o
CC sparc64-softmmu/hw/vfio/spapr.o
CC s390x-softmmu/hw/vfio/common.o
CC ppc-linux-user/target/ppc/excp_helper.o
GEN trace/generated-helpers.c
CC microblaze-softmmu/hw/core/null-machine.o
CC microblaze-softmmu/hw/dma/xlnx_dpdma.o
CC mips64el-softmmu/hw/misc/ivshmem.o
CC or1k-softmmu/target/openrisc/interrupt.o
CC mips64-softmmu/hw/timer/mips_gictimer.o
CC mipsel-softmmu/hw/scsi/vhost-scsi.o
CC xtensa-softmmu/trace/control-target.o
CC or1k-softmmu/target/openrisc/mmu.o
CC or1k-softmmu/target/openrisc/translate.o
CC m68k-linux-user/trace/generated-helpers.o
GEN trace/generated-helpers.c
CC mips64-softmmu/hw/timer/mc146818rtc.o
CC sh4eb-softmmu/hw/net/vhost_net.o
CC ppc64le-linux-user/target/ppc/../../libdecnumber/dpd/decimal64.o
CC sh4-softmmu/hw/net/vhost_net.o
CC nios2-softmmu/trace/control-target.o
CC mips64-softmmu/hw/vfio/common.o
CC sh4eb-softmmu/hw/scsi/virtio-scsi.o
CC arm-softmmu/hw/cpu/arm11mpcore.o
CC ppc64le-linux-user/target/ppc/../../libdecnumber/dpd/decimal128.o
CC ppc64-linux-user/target/ppc/../../libdecnumber/dpd/decimal128.o
CC or1k-softmmu/target/openrisc/exception_helper.o
CC mipsel-softmmu/hw/scsi/vhost-user-scsi.o
CC microblaze-softmmu/hw/misc/mmio_interface.o
CC arm-softmmu/hw/cpu/realview_mpcore.o
CC mips64-softmmu/hw/vfio/pci.o
CC cris-softmmu/trace/control-target.o
CC or1k-softmmu/target/openrisc/fpu_helper.o
CC tricore-softmmu/target/tricore/fpu_helper.o
CC sh4-softmmu/hw/scsi/virtio-scsi.o
CC sh4eb-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC mipsel-softmmu/hw/timer/mips_gictimer.o
GEN trace/generated-helpers.c
CC alpha-softmmu/hw/net/vhost_net.o
CC sh4-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC lm32-softmmu/hw/net/vhost_net.o
LINK unicore32-softmmu/qemu-system-unicore32
CC i386-softmmu/hw/net/virtio-net.o
CC mips-softmmu/hw/char/virtio-serial-bus.o
CC sparc64-softmmu/hw/virtio/virtio.o
CC mips64-linux-user/trace/control-target.o
CC aarch64_be-linux-user/trace/generated-helpers.o
CC microblazeel-softmmu/target/microblaze/gdbstub.o
CC arm-linux-user/target/arm/gdbstub.o
CC arm-linux-user/target/arm/crypto_helper.o
CC or1k-softmmu/target/openrisc/interrupt_helper.o
CC ppc-linux-user/target/ppc/fpu_helper.o
CC m68k-softmmu/target/m68k/cpu.o
CC arm-softmmu/hw/cpu/a9mpcore.o
CC mips64el-softmmu/hw/misc/mips_cmgcr.o
LINK aarch64-linux-user/qemu-aarch64
CC ppc-linux-user/target/ppc/int_helper.o
CC mipsel-softmmu/hw/timer/mc146818rtc.o
CC xtensaeb-softmmu/target/xtensa/core-dc233c.o
CC x86_64-softmmu/hw/display/virtio-vga.o
CC xtensaeb-softmmu/target/xtensa/core-de212.o
CC aarch64-softmmu/hw/display/pxa2xx_lcd.o
CC mips64-softmmu/hw/vfio/pci-quirks.o
CC s390x-softmmu/hw/vfio/pci.o
CC nios2-softmmu/trace/generated-helpers.o
CC lm32-softmmu/hw/net/rocker/qmp-norocker.o
CC x86_64-softmmu/hw/intc/apic.o
CC sparc64-softmmu/hw/virtio/virtio-balloon.o
GEN trace/generated-helpers.c
CC moxie-softmmu/target/moxie/machine.o
LINK m68k-linux-user/qemu-m68k
CC mips64-softmmu/hw/vfio/platform.o
CC mips64el-softmmu/hw/misc/mips_cpc.o
CC mips64-softmmu/hw/vfio/spapr.o
CC ppc64le-linux-user/trace/control-target.o
CC mips64-softmmu/hw/virtio/virtio.o
CC sh4eb-softmmu/hw/scsi/vhost-scsi-common.o
CC xtensaeb-softmmu/target/xtensa/core-fsf.o
CC mips-softmmu/hw/core/generic-loader.o
CC armeb-linux-user/gdbstub-xml.o
CC s390x-softmmu/hw/vfio/pci-quirks.o
CC microblaze-softmmu/hw/net/xilinx_ethlite.o
CC s390x-softmmu/hw/vfio/ccw.o
CC alpha-softmmu/hw/scsi/virtio-scsi.o
CC x86_64-softmmu/hw/intc/apic_common.o
CC ppc-linux-user/target/ppc/timebase_helper.o
CC or1k-softmmu/target/openrisc/mmu_helper.o
CC arm-softmmu/hw/cpu/a15mpcore.o
CC sh4-softmmu/hw/scsi/vhost-scsi-common.o
CC sh4eb-softmmu/hw/scsi/vhost-scsi.o
CC mipsel-softmmu/hw/vfio/common.o
CC lm32-softmmu/hw/sd/milkymist-memcard.o
CC lm32-softmmu/hw/vfio/common.o
CC sh4eb-softmmu/hw/scsi/vhost-user-scsi.o
CC sh4eb-softmmu/hw/timer/sh_timer.o
CC ppc64abi32-linux-user/trace/control-target.o
CC ppc64-linux-user/trace/control-target.o
LINK nios2-softmmu/qemu-system-nios2
CC s390x-linux-user/trace/control-target.o
CC s390x-softmmu/hw/vfio/platform.o
CC x86_64-linux-user/target/i386/seg_helper.o
CC moxie-softmmu/target/moxie/cpu.o
CC lm32-softmmu/hw/vfio/platform.o
CC sh4-softmmu/hw/scsi/vhost-scsi.o
CC armeb-linux-user/trace/generated-helpers.o
CC sparc-softmmu/trace/control-target.o
CC mips64el-softmmu/hw/misc/mips_itu.o
CC microblaze-softmmu/hw/net/vhost_net.o
CC microblaze-softmmu/hw/net/rocker/qmp-norocker.o
CC xtensa-softmmu/trace/generated-helpers.o
CC arm-softmmu/hw/display/omap_dss.o
CC x86_64-softmmu/hw/intc/ioapic.o
CC aarch64-softmmu/hw/display/bcm2835_fb.o
GEN trace/generated-helpers.c
CC microblaze-softmmu/hw/vfio/common.o
CC sh4eb-softmmu/hw/timer/mc146818rtc.o
CC sh4-softmmu/hw/scsi/vhost-user-scsi.o
CC i386-softmmu/hw/net/vhost_net.o
CC mips64-softmmu/hw/virtio/virtio-balloon.o
CC alpha-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC x86_64-softmmu/hw/isa/lpc_ich9.o
CC s390x-softmmu/hw/vfio/spapr.o
CC moxie-softmmu/target/moxie/mmu.o
GEN trace/generated-helpers.c
CC moxie-softmmu/trace/control-target.o
CC arm-softmmu/hw/display/omap_lcdc.o
CC i386-linux-user/target/i386/svm_helper.o
CC ppc-linux-user/target/ppc/misc_helper.o
CC ppc-linux-user/target/ppc/mem_helper.o
CC ppc-linux-user/target/ppc/user_only_helper.o
CC m68k-softmmu/target/m68k/fpu_helper.o
CC i386-linux-user/target/i386/kvm-stub.o
CC alpha-softmmu/hw/scsi/vhost-scsi-common.o
CC ppc-linux-user/target/ppc/gdbstub.o
CC alpha-softmmu/hw/scsi/vhost-scsi.o
CC sh4eb-softmmu/hw/vfio/common.o
CC aarch64-softmmu/hw/display/vga.o
CC sparc64-softmmu/hw/virtio/vhost.o
CC s390x-linux-user/gdbstub-xml.o
CC sh4eb-softmmu/hw/vfio/pci.o
CC sh4eb-softmmu/hw/vfio/pci-quirks.o
LINK xtensa-softmmu/qemu-system-xtensa
CC alpha-softmmu/hw/scsi/vhost-user-scsi.o
CC arm-softmmu/hw/display/pxa2xx_lcd.o
CC sh4eb-softmmu/hw/vfio/platform.o
CC ppc64abi32-linux-user/gdbstub-xml.o
CC sparc-softmmu/trace/generated-helpers.o
CC s390x-softmmu/hw/virtio/virtio.o
CC or1k-softmmu/target/openrisc/sys_helper.o
CC xtensaeb-softmmu/target/xtensa/core-sample_controller.o
CC mips64el-softmmu/hw/misc/mmio_interface.o
CC s390x-softmmu/hw/virtio/virtio-balloon.o
CC cris-softmmu/trace/generated-helpers.o
CC sparc64-softmmu/hw/virtio/vhost-backend.o
CC sh4eb-softmmu/hw/vfio/spapr.o
CC ppc64-linux-user/gdbstub-xml.o
CC x86_64-softmmu/hw/misc/ivshmem.o
CC mipsel-softmmu/hw/vfio/pci.o
CC ppc64le-linux-user/gdbstub-xml.o
CC arm-linux-user/trace/control-target.o
CC alpha-softmmu/hw/timer/mc146818rtc.o
CC moxie-softmmu/trace/generated-helpers.o
CC sh4-softmmu/hw/timer/sh_timer.o
CC mips64-softmmu/hw/virtio/vhost.o
GEN trace/generated-helpers.c
CC sh4-softmmu/hw/timer/mc146818rtc.o
CC mipsel-softmmu/hw/vfio/pci-quirks.o
GEN trace/generated-helpers.c
CC i386-softmmu/hw/scsi/virtio-scsi.o
CC microblazeel-softmmu/target/microblaze/mmu.o
CC tricore-softmmu/trace/control-target.o
CC s390x-softmmu/hw/virtio/vhost.o
CC xtensaeb-softmmu/target/xtensa/monitor.o
CC x86_64-softmmu/hw/misc/pvpanic.o
CC mips-softmmu/hw/core/null-machine.o
CC m68k-softmmu/target/m68k/gdbstub.o
CC s390x-softmmu/hw/virtio/vhost-backend.o
CC m68k-softmmu/target/m68k/monitor.o
CC xtensaeb-softmmu/target/xtensa/xtensa-isa.o
CC ppc-linux-user/target/ppc/../../libdecnumber/decContext.o
CC s390x-linux-user/trace/generated-helpers.o
CC i386-linux-user/trace/control-target.o
CC i386-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC sh4-softmmu/hw/vfio/common.o
CC ppc64-linux-user/trace/generated-helpers.o
CC sh4eb-softmmu/hw/virtio/virtio.o
CC s390x-softmmu/hw/virtio/vhost-user.o
CC lm32-softmmu/hw/vfio/spapr.o
CC sparc64-softmmu/hw/virtio/vhost-user.o
CC x86_64-softmmu/hw/misc/mmio_interface.o
CC aarch64-softmmu/hw/display/virtio-gpu.o
LINK sparc-softmmu/qemu-system-sparc
CC microblaze-softmmu/hw/vfio/platform.o
CC mips64el-softmmu/hw/net/virtio-net.o
CC x86_64-linux-user/target/i386/smm_helper.o
CC xtensaeb-softmmu/target/xtensa/translate.o
CC lm32-softmmu/hw/lm32/lm32_boards.o
GEN trace/generated-helpers.c
LINK cris-softmmu/qemu-system-cris
CC mipsel-softmmu/hw/vfio/platform.o
GEN trace/generated-helpers.c
CC or1k-softmmu/target/openrisc/gdbstub.o
CC sh4eb-softmmu/hw/virtio/virtio-balloon.o
CC mips-linux-user/target/mips/gdbstub.o
CC mips64-linux-user/trace/generated-helpers.o
CC mips64el-softmmu/hw/net/vhost_net.o
CC xtensaeb-softmmu/target/xtensa/op_helper.o
LINK moxie-softmmu/qemu-system-moxie
CC mips-softmmu/hw/display/vga.o
CC x86_64-softmmu/hw/net/virtio-net.o
CC ppc-linux-user/target/ppc/../../libdecnumber/decNumber.o
CC ppc64abi32-linux-user/trace/generated-helpers.o
CC mips64-softmmu/hw/virtio/vhost-backend.o
CC mipsel-softmmu/hw/vfio/spapr.o
CC arm-linux-user/gdbstub-xml.o
CC x86_64-linux-user/target/i386/svm_helper.o
CC sh4eb-softmmu/hw/virtio/vhost.o
CC i386-softmmu/hw/scsi/vhost-scsi-common.o
CC x86_64-linux-user/target/i386/kvm-stub.o
CC xtensaeb-softmmu/target/xtensa/helper.o
CC i386-linux-user/gdbstub-xml.o
CC mipsel-softmmu/hw/virtio/virtio.o
CC arm-softmmu/hw/display/bcm2835_fb.o
CC microblazeel-softmmu/trace/control-target.o
CC alpha-softmmu/hw/vfio/common.o
CC sh4eb-softmmu/hw/virtio/vhost-backend.o
CC alpha-softmmu/hw/vfio/pci.o
CC ppc-linux-user/target/ppc/../../libdecnumber/dpd/decimal32.o
CC s390x-softmmu/hw/virtio/vhost-vsock.o
GEN trace/generated-helpers.c
CC i386-softmmu/hw/scsi/vhost-scsi.o
CC i386-softmmu/hw/scsi/vhost-user-scsi.o
GEN trace/generated-helpers.c
CC aarch64-softmmu/hw/display/virtio-gpu-3d.o
CC x86_64-softmmu/hw/net/vhost_net.o
CC mipsel-softmmu/hw/virtio/virtio-balloon.o
CC ppc-linux-user/target/ppc/../../libdecnumber/dpd/decimal64.o
CC arm-softmmu/hw/display/vga.o
CC alpha-softmmu/hw/vfio/pci-quirks.o
CC sh4eb-softmmu/hw/virtio/vhost-user.o
CC or1k-softmmu/trace/control-target.o
CC microblaze-softmmu/hw/vfio/spapr.o
CC sparc64-softmmu/hw/virtio/vhost-vsock.o
CC mipsel-softmmu/hw/virtio/vhost.o
CC i386-softmmu/hw/timer/mc146818rtc.o
CC sh4eb-softmmu/hw/virtio/vhost-vsock.o
CC microblaze-softmmu/hw/microblaze/petalogix_s3adsp1800_mmu.o
CC ppc-linux-user/target/ppc/../../libdecnumber/dpd/decimal128.o
CC mips-softmmu/hw/display/virtio-gpu.o
CC xtensaeb-softmmu/target/xtensa/cpu.o
CC mips-linux-user/target/mips/msa_helper.o
CC or1k-softmmu/trace/generated-helpers.o
CC aarch64-softmmu/hw/display/virtio-gpu-pci.o
CC mipsel-softmmu/hw/virtio/vhost-backend.o
CC mips-linux-user/target/mips/mips-semi.o
CC microblazeel-softmmu/trace/generated-helpers.o
CC lm32-softmmu/hw/lm32/milkymist.o
CC s390x-softmmu/hw/virtio/virtio-crypto.o
CC arm-softmmu/hw/display/virtio-gpu.o
CC mips64el-softmmu/hw/scsi/virtio-scsi.o
CC sh4-softmmu/hw/vfio/pci.o
CC s390x-softmmu/hw/virtio/virtio-crypto-pci.o
CC mips64-softmmu/hw/virtio/vhost-user.o
CC x86_64-softmmu/hw/scsi/virtio-scsi.o
CC ppc64le-linux-user/trace/generated-helpers.o
CC microblaze-softmmu/hw/microblaze/petalogix_ml605_mmu.o
LINK s390x-linux-user/qemu-s390x
CC mips64el-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC alpha-softmmu/hw/vfio/platform.o
CC m68k-softmmu/trace/control-target.o
CC tricore-softmmu/trace/generated-helpers.o
CC arm-softmmu/hw/display/virtio-gpu-3d.o
CC microblaze-softmmu/hw/microblaze/xlnx-zynqmp-pmu.o
GEN trace/generated-helpers.c
CC sh4eb-softmmu/hw/virtio/virtio-crypto.o
CC sparc64-softmmu/hw/virtio/virtio-crypto.o
CC mips-linux-user/trace/control-target.o
CC aarch64-softmmu/hw/display/dpcd.o
CC lm32-softmmu/target/lm32/translate.o
GEN trace/generated-helpers.c
CC alpha-softmmu/hw/vfio/spapr.o
CC x86_64-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC sparc64-softmmu/hw/virtio/virtio-crypto-pci.o
CC x86_64-linux-user/trace/control-target.o
CC sparc64-softmmu/hw/sparc64/sparc64.o
CC microblaze-softmmu/hw/microblaze/boot.o
CC x86_64-softmmu/hw/scsi/vhost-scsi-common.o
CC lm32-softmmu/target/lm32/op_helper.o
CC microblaze-softmmu/target/microblaze/translate.o
CC lm32-softmmu/target/lm32/helper.o
CC alpha-softmmu/hw/virtio/virtio.o
CC sparc64-softmmu/hw/sparc64/sun4u_iommu.o
CC mipsel-softmmu/hw/virtio/vhost-user.o
CC mipsel-softmmu/hw/virtio/vhost-vsock.o
CC mips64el-softmmu/hw/scsi/vhost-scsi-common.o
CC mips64el-softmmu/hw/scsi/vhost-scsi.o
CC sh4eb-softmmu/hw/virtio/virtio-crypto-pci.o
CC aarch64-softmmu/hw/display/xlnx_dp.o
LINK or1k-softmmu/qemu-system-or1k
LINK microblazeel-softmmu/qemu-system-microblazeel
CC xtensaeb-softmmu/target/xtensa/gdbstub.o
CC alpha-softmmu/hw/virtio/virtio-balloon.o
CC mipsel-softmmu/hw/virtio/virtio-crypto.o
CC mips64-softmmu/hw/virtio/vhost-vsock.o
CC mips64-softmmu/hw/virtio/virtio-crypto.o
CC arm-softmmu/hw/display/virtio-gpu-pci.o
CC arm-linux-user/trace/generated-helpers.o
CC mipsel-softmmu/hw/virtio/virtio-crypto-pci.o
CC lm32-softmmu/target/lm32/cpu.o
CC s390x-softmmu/hw/s390x/s390-virtio-hcall.o
CC x86_64-softmmu/hw/scsi/vhost-scsi.o
CC i386-softmmu/hw/vfio/common.o
CC mips64el-softmmu/hw/scsi/vhost-user-scsi.o
CC ppc-linux-user/trace/control-target.o
CC i386-linux-user/trace/generated-helpers.o
CC sh4eb-softmmu/hw/sh4/shix.o
CC mips64el-softmmu/hw/timer/mips_gictimer.o
CC microblaze-softmmu/target/microblaze/op_helper.o
CC aarch64-softmmu/hw/dma/xlnx_dpdma.o
CC aarch64-softmmu/hw/dma/omap_dma.o
GEN trace/generated-helpers.c
CC arm-softmmu/hw/dma/omap_dma.o
CC aarch64-softmmu/hw/dma/soc_dma.o
CC mips-linux-user/trace/generated-helpers.o
CC mips64el-softmmu/hw/timer/mc146818rtc.o
CC microblaze-softmmu/target/microblaze/helper.o
CC xtensaeb-softmmu/trace/control-target.o
CC microblaze-softmmu/target/microblaze/cpu.o
CC lm32-softmmu/target/lm32/gdbstub.o
CC lm32-softmmu/target/lm32/lm32-semi.o
CC sparc64-softmmu/hw/sparc64/sun4u.o
CC aarch64-softmmu/hw/dma/pxa2xx_dma.o
CC sh4eb-softmmu/hw/sh4/r2d.o
CC x86_64-softmmu/hw/scsi/vhost-user-scsi.o
CC arm-softmmu/hw/dma/soc_dma.o
CC sh4eb-softmmu/hw/sh4/sh7750.o
CC sh4-softmmu/hw/vfio/pci-quirks.o
CC x86_64-linux-user/gdbstub-xml.o
CC sh4-softmmu/hw/vfio/platform.o
CC sh4-softmmu/hw/vfio/spapr.o
CC sh4eb-softmmu/hw/sh4/sh7750_regnames.o
CC alpha-softmmu/hw/virtio/vhost.o
CC arm-softmmu/hw/dma/pxa2xx_dma.o
CC m68k-softmmu/gdbstub-xml.o
CC microblaze-softmmu/target/microblaze/gdbstub.o
CC mips-softmmu/hw/display/virtio-gpu-3d.o
CC x86_64-softmmu/hw/timer/mc146818rtc.o
CC s390x-softmmu/hw/s390x/sclp.o
CC microblaze-softmmu/target/microblaze/mmu.o
CC mips-softmmu/hw/display/virtio-gpu-pci.o
CC s390x-softmmu/hw/s390x/event-facility.o
CC arm-softmmu/hw/dma/bcm2835_dma.o
CC x86_64-softmmu/hw/vfio/common.o
CC sparc64-softmmu/hw/sparc64/niagara.o
CC sh4eb-softmmu/hw/sh4/sh_pci.o
CC mipsel-softmmu/hw/mips/mips_r4k.o
CC arm-softmmu/hw/gpio/omap_gpio.o
CC sparc64-softmmu/target/sparc/machine.o
CC mips-softmmu/hw/intc/mips_gic.o
CC x86_64-linux-user/trace/generated-helpers.o
GEN trace/generated-helpers.c
CC x86_64-softmmu/hw/vfio/pci.o
CC sparc64-softmmu/target/sparc/monitor.o
CC s390x-softmmu/hw/s390x/sclpquiesce.o
CC s390x-softmmu/hw/s390x/sclpcpu.o
CC sh4-softmmu/hw/virtio/virtio.o
CC sparc64-softmmu/target/sparc/translate.o
CC xtensaeb-softmmu/trace/generated-helpers.o
CC sh4-softmmu/hw/virtio/virtio-balloon.o
CC sh4eb-softmmu/target/sh4/translate.o
CC sh4-softmmu/hw/virtio/vhost.o
CC mips64-softmmu/hw/virtio/virtio-crypto-pci.o
CC mips-softmmu/hw/misc/ivshmem.o
CC s390x-softmmu/hw/s390x/ipl.o
CC sh4eb-softmmu/target/sh4/op_helper.o
CC lm32-softmmu/target/lm32/machine.o
CC sh4eb-softmmu/target/sh4/helper.o
GEN trace/generated-helpers.c
CC mips64el-softmmu/hw/vfio/common.o
CC sh4-softmmu/hw/virtio/vhost-backend.o
CC lm32-softmmu/trace/control-target.o
CC x86_64-softmmu/hw/vfio/pci-quirks.o
CC aarch64-softmmu/hw/dma/bcm2835_dma.o
CC ppc-linux-user/gdbstub-xml.o
CC microblaze-softmmu/trace/control-target.o
CC s390x-softmmu/hw/s390x/css.o
CC mipsel-softmmu/hw/mips/mips_malta.o
CC s390x-softmmu/hw/s390x/s390-virtio-ccw.o
CC mips-softmmu/hw/misc/mips_cmgcr.o
CC mips64-softmmu/hw/mips/mips_r4k.o
CC s390x-softmmu/hw/s390x/3270-ccw.o
CC mips-softmmu/hw/misc/mips_cpc.o
CC arm-softmmu/hw/gpio/imx_gpio.o
CC arm-softmmu/hw/gpio/bcm2835_gpio.o
CC i386-softmmu/hw/vfio/pci.o
CC mips-softmmu/hw/misc/mips_itu.o
CC mipsel-softmmu/hw/mips/mips_mipssim.o
CC lm32-softmmu/trace/generated-helpers.o
CC s390x-softmmu/hw/s390x/virtio-ccw.o
CC arm-softmmu/hw/i2c/omap_i2c.o
CC sh4eb-softmmu/target/sh4/cpu.o
CC mips64-softmmu/hw/mips/mips_malta.o
CC arm-softmmu/hw/input/pxa2xx_keypad.o
CC mips64-softmmu/hw/mips/mips_mipssim.o
CC mips64-softmmu/hw/mips/addr.o
CC sparc64-softmmu/target/sparc/helper.o
CC sh4-softmmu/hw/virtio/vhost-user.o
CC mips64el-softmmu/hw/vfio/pci.o
CC i386-softmmu/hw/vfio/pci-quirks.o
CC s390x-softmmu/hw/s390x/css-bridge.o
CC mips64el-softmmu/hw/vfio/pci-quirks.o
CC sh4eb-softmmu/target/sh4/monitor.o
CC mipsel-softmmu/hw/mips/addr.o
CC x86_64-softmmu/hw/vfio/platform.o
CC arm-softmmu/hw/input/tsc210x.o
CC alpha-softmmu/hw/virtio/vhost-backend.o
CC ppc-linux-user/trace/generated-helpers.o
CC sh4eb-softmmu/target/sh4/gdbstub.o
CC sh4-softmmu/hw/virtio/vhost-vsock.o
CC x86_64-softmmu/hw/vfio/spapr.o
CC mips64el-softmmu/hw/vfio/platform.o
GEN trace/generated-helpers.c
CC s390x-softmmu/hw/s390x/ccw-device.o
CC mipsel-softmmu/hw/mips/mips_int.o
CC arm-softmmu/hw/intc/armv7m_nvic.o
CC mips-softmmu/hw/misc/mmio_interface.o
CC alpha-softmmu/hw/virtio/vhost-user.o
CC sh4-softmmu/hw/virtio/virtio-crypto.o
CC s390x-softmmu/hw/s390x/s390-pci-bus.o
CC sparc64-softmmu/target/sparc/cpu.o
CC sparc64-softmmu/target/sparc/fop_helper.o
CC arm-softmmu/hw/intc/exynos4210_gic.o
CC sh4eb-softmmu/trace/control-target.o
CC sparc64-softmmu/target/sparc/cc_helper.o
CC i386-softmmu/hw/vfio/platform.o
CC mipsel-softmmu/hw/mips/gt64xxx_pci.o
CC sparc64-softmmu/target/sparc/win_helper.o
CC aarch64-softmmu/hw/gpio/omap_gpio.o
CC i386-softmmu/hw/vfio/spapr.o
CC i386-softmmu/hw/virtio/virtio.o
CC mips64-softmmu/hw/mips/mips_int.o
CC arm-softmmu/hw/intc/exynos4210_combiner.o
CC aarch64-softmmu/hw/gpio/imx_gpio.o
CC mips64-softmmu/hw/mips/mips_jazz.o
CC mips64el-softmmu/hw/vfio/spapr.o
CC mipsel-softmmu/hw/mips/cps.o
CC sparc64-softmmu/target/sparc/mmu_helper.o
CC sparc64-softmmu/target/sparc/ldst_helper.o
CC mips64el-softmmu/hw/virtio/virtio.o
CC mips64el-softmmu/hw/virtio/virtio-balloon.o
CC i386-softmmu/hw/virtio/virtio-balloon.o
CC x86_64-softmmu/hw/virtio/virtio.o
CC mips64-softmmu/hw/mips/gt64xxx_pci.o
CC aarch64-softmmu/hw/gpio/bcm2835_gpio.o
CC x86_64-softmmu/hw/virtio/virtio-balloon.o
CC arm-softmmu/hw/intc/omap_intc.o
CC aarch64-softmmu/hw/i2c/omap_i2c.o
CC i386-softmmu/hw/virtio/vhost.o
CC s390x-softmmu/hw/s390x/s390-pci-inst.o
CC arm-softmmu/hw/intc/bcm2835_ic.o
CC m68k-softmmu/trace/generated-helpers.o
LINK lm32-softmmu/qemu-system-lm32
CC mipsel-softmmu/target/mips/translate.o
CC mips64el-softmmu/hw/virtio/vhost.o
CC sh4-softmmu/hw/virtio/virtio-crypto-pci.o
CC sh4eb-softmmu/trace/generated-helpers.o
CC alpha-softmmu/hw/virtio/vhost-vsock.o
CC sparc64-softmmu/target/sparc/int64_helper.o
CC x86_64-softmmu/hw/virtio/vhost.o
CC i386-softmmu/hw/virtio/vhost-backend.o
CC aarch64-softmmu/hw/input/pxa2xx_keypad.o
CC s390x-softmmu/hw/s390x/s390-skeys.o
CC alpha-softmmu/hw/virtio/virtio-crypto.o
CC mips-softmmu/hw/net/virtio-net.o
CC arm-softmmu/hw/intc/bcm2836_control.o
CC arm-softmmu/hw/intc/allwinner-a10-pic.o
CC mips-softmmu/hw/net/vhost_net.o
LINK xtensaeb-softmmu/qemu-system-xtensaeb
CC sh4-softmmu/hw/sh4/shix.o
CC x86_64-softmmu/hw/virtio/vhost-backend.o
CC sh4-softmmu/hw/sh4/r2d.o
CC mipsel-softmmu/target/mips/dsp_helper.o
CC arm-softmmu/hw/intc/aspeed_vic.o
CC sparc64-softmmu/target/sparc/vis_helper.o
CC sh4-softmmu/hw/sh4/sh7750.o
CC sh4-softmmu/hw/sh4/sh7750_regnames.o
CC x86_64-softmmu/hw/virtio/vhost-user.o
CC s390x-softmmu/hw/s390x/s390-stattrib.o
CC sparc64-softmmu/target/sparc/gdbstub.o
CC mips64el-softmmu/hw/virtio/vhost-backend.o
CC s390x-softmmu/hw/s390x/s390-ccw.o
CC mips64-softmmu/hw/mips/cps.o
CC alpha-softmmu/hw/virtio/virtio-crypto-pci.o
CC mips-softmmu/hw/scsi/virtio-scsi.o
CC mips64el-softmmu/hw/virtio/vhost-user.o
CC aarch64-softmmu/hw/input/tsc210x.o
CC mipsel-softmmu/target/mips/op_helper.o
CC arm-softmmu/hw/intc/arm_gicv3_cpuif.o
CC x86_64-softmmu/hw/virtio/vhost-vsock.o
CC mips64-softmmu/target/mips/translate.o
CC mips64-softmmu/target/mips/dsp_helper.o
CC mips64-softmmu/target/mips/op_helper.o
CC mips64el-softmmu/hw/virtio/vhost-vsock.o
CC aarch64-softmmu/hw/intc/armv7m_nvic.o
CC mips64-softmmu/target/mips/lmi_helper.o
GEN trace/generated-helpers.c
CC arm-softmmu/hw/misc/ivshmem.o
CC alpha-softmmu/hw/alpha/dp264.o
CC sh4-softmmu/hw/sh4/sh_pci.o
CC i386-softmmu/hw/virtio/vhost-user.o
CC sparc64-softmmu/trace/control-target.o
CC aarch64-softmmu/hw/intc/exynos4210_gic.o
CC sh4-softmmu/target/sh4/translate.o
CC mips64-softmmu/target/mips/helper.o
CC i386-softmmu/hw/virtio/vhost-vsock.o
CC sh4-softmmu/target/sh4/op_helper.o
CC sh4-softmmu/target/sh4/helper.o
CC microblaze-softmmu/trace/generated-helpers.o
CC i386-softmmu/hw/virtio/virtio-crypto.o
CC alpha-softmmu/hw/alpha/pci.o
CC sh4-softmmu/target/sh4/cpu.o
CC alpha-softmmu/hw/alpha/typhoon.o
CC arm-softmmu/hw/misc/arm_sysctl.o
CC aarch64-softmmu/hw/intc/exynos4210_combiner.o
CC aarch64-softmmu/hw/intc/omap_intc.o
CC aarch64-softmmu/hw/intc/bcm2835_ic.o
CC mips64-softmmu/target/mips/cpu.o
CC sh4-softmmu/target/sh4/monitor.o
CC sh4-softmmu/target/sh4/gdbstub.o
CC arm-softmmu/hw/misc/cbus.o
CC mips64-softmmu/target/mips/gdbstub.o
CC x86_64-softmmu/hw/virtio/virtio-crypto.o
CC i386-softmmu/hw/virtio/virtio-crypto-pci.o
GEN trace/generated-helpers.c
CC mips64el-softmmu/hw/virtio/virtio-crypto.o
CC x86_64-softmmu/hw/virtio/virtio-crypto-pci.o
CC arm-softmmu/hw/misc/exynos4210_pmu.o
CC x86_64-softmmu/hw/i386/multiboot.o
CC i386-softmmu/hw/i386/multiboot.o
CC mips64-softmmu/target/mips/msa_helper.o
CC sh4-softmmu/trace/control-target.o
CC mips64el-softmmu/hw/virtio/virtio-crypto-pci.o
CC arm-softmmu/hw/misc/exynos4210_clk.o
CC arm-softmmu/hw/misc/exynos4210_rng.o
CC mips64el-softmmu/hw/mips/mips_r4k.o
CC alpha-softmmu/target/alpha/machine.o
CC alpha-softmmu/target/alpha/translate.o
CC s390x-softmmu/target/s390x/cpu.o
CC s390x-softmmu/target/s390x/cpu_models.o
CC arm-softmmu/hw/misc/imx_ccm.o
CC arm-softmmu/hw/misc/imx31_ccm.o
CC arm-softmmu/hw/misc/imx25_ccm.o
CC mips-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC mips-softmmu/hw/scsi/vhost-scsi-common.o
CC sparc64-softmmu/trace/generated-helpers.o
CC mips64el-softmmu/hw/mips/mips_malta.o
CC mips64-softmmu/target/mips/mips-semi.o
CC mipsel-softmmu/target/mips/lmi_helper.o
CC arm-softmmu/hw/misc/imx6_ccm.o
CC s390x-softmmu/target/s390x/cpu_features.o
CC x86_64-softmmu/hw/i386/pc.o
CC x86_64-softmmu/hw/i386/pc_piix.o
CC aarch64-softmmu/hw/intc/bcm2836_control.o
LINK microblaze-softmmu/qemu-system-microblaze
CC alpha-softmmu/target/alpha/helper.o
CC alpha-softmmu/target/alpha/cpu.o
CC mips64-softmmu/target/mips/machine.o
CC sh4-softmmu/trace/generated-helpers.o
CC alpha-softmmu/target/alpha/int_helper.o
CC arm-softmmu/hw/misc/imx6_src.o
CC mips64el-softmmu/hw/mips/mips_mipssim.o
CC aarch64-softmmu/hw/intc/allwinner-a10-pic.o
CC alpha-softmmu/target/alpha/fpu_helper.o
CC arm-softmmu/hw/misc/mst_fpga.o
CC arm-softmmu/hw/misc/omap_clk.o
CC arm-softmmu/hw/misc/omap_gpmc.o
CC x86_64-softmmu/hw/i386/pc_q35.o
CC alpha-softmmu/target/alpha/vax_helper.o
CC mips64-softmmu/target/mips/cp0_timer.o
CC s390x-softmmu/target/s390x/gdbstub.o
CC mips64el-softmmu/hw/mips/addr.o
CC aarch64-softmmu/hw/intc/aspeed_vic.o
CC x86_64-softmmu/hw/i386/pc_sysfw.o
CC arm-softmmu/hw/misc/omap_l4.o
CC x86_64-softmmu/hw/i386/x86-iommu.o
CC i386-softmmu/hw/i386/pc.o
CC alpha-softmmu/target/alpha/sys_helper.o
CC mips-softmmu/hw/scsi/vhost-scsi.o
CC alpha-softmmu/target/alpha/mem_helper.o
CC s390x-softmmu/target/s390x/interrupt.o
CC mips-softmmu/hw/scsi/vhost-user-scsi.o
CC i386-softmmu/hw/i386/pc_piix.o
CC mips-softmmu/hw/timer/mips_gictimer.o
CC s390x-softmmu/target/s390x/helper.o
CC alpha-softmmu/target/alpha/gdbstub.o
CC aarch64-softmmu/hw/intc/arm_gicv3_cpuif.o
CC x86_64-softmmu/hw/i386/intel_iommu.o
CC mips-softmmu/hw/timer/mc146818rtc.o
GEN trace/generated-helpers.c
CC s390x-softmmu/target/s390x/translate.o
CC mipsel-softmmu/target/mips/helper.o
CC mipsel-softmmu/target/mips/cpu.o
GEN trace/generated-helpers.c
CC mipsel-softmmu/target/mips/gdbstub.o
CC alpha-softmmu/trace/control-target.o
CC arm-softmmu/hw/misc/omap_sdrc.o
CC s390x-softmmu/target/s390x/cc_helper.o
CC aarch64-softmmu/hw/misc/ivshmem.o
CC mips-softmmu/hw/vfio/common.o
CC mips-softmmu/hw/vfio/pci.o
CC mips64el-softmmu/hw/mips/mips_int.o
CC aarch64-softmmu/hw/misc/arm_sysctl.o
CC mips-softmmu/hw/vfio/pci-quirks.o
CC s390x-softmmu/target/s390x/excp_helper.o
CC mips64el-softmmu/hw/mips/mips_jazz.o
CC aarch64-softmmu/hw/misc/cbus.o
CC arm-softmmu/hw/misc/omap_tap.o
CC s390x-softmmu/target/s390x/fpu_helper.o
CC x86_64-softmmu/hw/i386/amd_iommu.o
CC alpha-softmmu/trace/generated-helpers.o
CC arm-softmmu/hw/misc/bcm2835_mbox.o
CC i386-softmmu/hw/i386/pc_q35.o
CC mips64el-softmmu/hw/mips/mips_fulong2e.o
CC s390x-softmmu/target/s390x/int_helper.o
CC arm-softmmu/hw/misc/bcm2835_property.o
CC s390x-softmmu/target/s390x/mem_helper.o
CC mips64-softmmu/trace/control-target.o
CC mips64el-softmmu/hw/mips/gt64xxx_pci.o
CC mipsel-softmmu/target/mips/msa_helper.o
CC i386-softmmu/hw/i386/pc_sysfw.o
CC aarch64-softmmu/hw/misc/exynos4210_pmu.o
CC mips64el-softmmu/hw/mips/cps.o
CC mips64-softmmu/trace/generated-helpers.o
CC s390x-softmmu/target/s390x/misc_helper.o
CC i386-softmmu/hw/i386/x86-iommu.o
CC arm-softmmu/hw/misc/bcm2835_rng.o
CC mips64el-softmmu/hw/mips/boston.o
CC s390x-softmmu/target/s390x/crypto_helper.o
CC i386-softmmu/hw/i386/intel_iommu.o
CC arm-softmmu/hw/misc/zynq_slcr.o
CC s390x-softmmu/target/s390x/machine.o
CC mips-softmmu/hw/vfio/platform.o
CC i386-softmmu/hw/i386/amd_iommu.o
CC s390x-softmmu/target/s390x/ioinst.o
CC mips64el-softmmu/target/mips/translate.o
CC aarch64-softmmu/hw/misc/exynos4210_clk.o
CC aarch64-softmmu/hw/misc/exynos4210_rng.o
CC mips-softmmu/hw/vfio/spapr.o
CC i386-softmmu/hw/i386/vmport.o
CC mipsel-softmmu/target/mips/mips-semi.o
CC mips-softmmu/hw/virtio/virtio.o
CC mipsel-softmmu/target/mips/machine.o
CC x86_64-softmmu/hw/i386/vmport.o
CC mips64el-softmmu/target/mips/dsp_helper.o
CC aarch64-softmmu/hw/misc/imx_ccm.o
CC arm-softmmu/hw/misc/zynq-xadc.o
CC s390x-softmmu/target/s390x/arch_dump.o
CC x86_64-softmmu/hw/i386/vmmouse.o
LINK mipsel-linux-user/qemu-mipsel
CC mipsel-softmmu/target/mips/cp0_timer.o
CC aarch64-softmmu/hw/misc/imx31_ccm.o
CC i386-softmmu/hw/i386/vmmouse.o
CC aarch64-softmmu/hw/misc/imx25_ccm.o
CC aarch64-softmmu/hw/misc/imx6_ccm.o
CC x86_64-softmmu/hw/i386/kvmvapic.o
CC s390x-softmmu/target/s390x/mmu_helper.o
CC mips64el-softmmu/target/mips/op_helper.o
CC mips64el-softmmu/target/mips/lmi_helper.o
CC aarch64-softmmu/hw/misc/imx6_src.o
GEN trace/generated-helpers.c
CC mipsel-softmmu/trace/control-target.o
CC x86_64-softmmu/hw/i386/acpi-build.o
CC s390x-softmmu/target/s390x/diag.o
CC mips-softmmu/hw/virtio/virtio-balloon.o
CC x86_64-softmmu/target/i386/helper.o
CC aarch64-softmmu/hw/misc/mst_fpga.o
CC x86_64-softmmu/target/i386/cpu.o
CC s390x-softmmu/target/s390x/sigp.o
CC mips-softmmu/hw/virtio/vhost.o
CC arm-softmmu/hw/misc/stm32f2xx_syscfg.o
CC x86_64-softmmu/target/i386/gdbstub.o
CC s390x-softmmu/target/s390x/kvm-stub.o
CC x86_64-softmmu/target/i386/xsave_helper.o
CC aarch64-softmmu/hw/misc/omap_clk.o
CC mips64el-softmmu/target/mips/helper.o
GEN trace/generated-helpers.c
CC i386-softmmu/hw/i386/kvmvapic.o
CC s390x-softmmu/trace/control-target.o
CC i386-softmmu/hw/i386/acpi-build.o
CC i386-softmmu/target/i386/helper.o
CC mipsel-softmmu/trace/generated-helpers.o
CC mips64el-softmmu/target/mips/cpu.o
CC s390x-softmmu/gdbstub-xml.o
CC aarch64-softmmu/hw/misc/omap_gpmc.o
CC mips64el-softmmu/target/mips/gdbstub.o
CC mips-softmmu/hw/virtio/vhost-backend.o
CC mips64el-softmmu/target/mips/msa_helper.o
CC i386-softmmu/target/i386/cpu.o
CC x86_64-softmmu/target/i386/translate.o
CC mips64el-softmmu/target/mips/mips-semi.o
CC aarch64-softmmu/hw/misc/omap_l4.o
CC i386-softmmu/target/i386/gdbstub.o
CC arm-softmmu/hw/misc/mps2-scc.o
CC mips64el-softmmu/target/mips/machine.o
CC arm-softmmu/hw/misc/aspeed_scu.o
CC mips-softmmu/hw/virtio/vhost-user.o
CC mips-softmmu/hw/virtio/vhost-vsock.o
CC aarch64-softmmu/hw/misc/omap_sdrc.o
CC mips64el-softmmu/target/mips/cp0_timer.o
CC i386-softmmu/target/i386/xsave_helper.o
CC x86_64-softmmu/target/i386/cc_helper.o
CC s390x-softmmu/trace/generated-helpers.o
CC x86_64-softmmu/target/i386/bpt_helper.o
CC i386-softmmu/target/i386/translate.o
CC x86_64-softmmu/target/i386/excp_helper.o
CC mips-softmmu/hw/virtio/virtio-crypto.o
CC aarch64-softmmu/hw/misc/omap_tap.o
LINK sh4eb-softmmu/qemu-system-sh4eb
CC arm-softmmu/hw/misc/aspeed_sdmc.o
GEN trace/generated-helpers.c
CC x86_64-softmmu/target/i386/fpu_helper.o
CC aarch64-softmmu/hw/misc/bcm2835_mbox.o
CC mips64el-softmmu/trace/control-target.o
CC i386-softmmu/target/i386/bpt_helper.o
CC x86_64-softmmu/target/i386/int_helper.o
CC aarch64-softmmu/hw/misc/bcm2835_property.o
CC i386-softmmu/target/i386/cc_helper.o
CC x86_64-softmmu/target/i386/mem_helper.o
CC arm-softmmu/hw/misc/mmio_interface.o
CC x86_64-softmmu/target/i386/misc_helper.o
CC i386-softmmu/target/i386/excp_helper.o
CC x86_64-softmmu/target/i386/mpx_helper.o
CC mips-softmmu/hw/virtio/virtio-crypto-pci.o
CC mips64el-softmmu/trace/generated-helpers.o
CC x86_64-softmmu/target/i386/seg_helper.o
CC mips-softmmu/hw/mips/mips_r4k.o
CC i386-softmmu/target/i386/fpu_helper.o
CC aarch64-softmmu/hw/misc/bcm2835_rng.o
CC mips-softmmu/hw/mips/mips_malta.o
CC i386-softmmu/target/i386/int_helper.o
CC aarch64-softmmu/hw/misc/zynq_slcr.o
CC arm-softmmu/hw/misc/msf2-sysreg.o
CC mips-softmmu/hw/mips/mips_mipssim.o
CC x86_64-softmmu/target/i386/smm_helper.o
CC i386-softmmu/target/i386/mem_helper.o
CC x86_64-softmmu/target/i386/svm_helper.o
CC mips-softmmu/hw/mips/addr.o
CC mips-softmmu/hw/mips/mips_int.o
CC aarch64-softmmu/hw/misc/zynq-xadc.o
CC arm-softmmu/hw/net/virtio-net.o
CC mips-softmmu/hw/mips/gt64xxx_pci.o
CC x86_64-softmmu/target/i386/machine.o
CC mips-softmmu/hw/mips/cps.o
CC mips-softmmu/target/mips/translate.o
CC i386-softmmu/target/i386/misc_helper.o
CC arm-softmmu/hw/net/vhost_net.o
CC mips-softmmu/target/mips/dsp_helper.o
CC arm-softmmu/hw/pcmcia/pxa2xx.o
CC aarch64-softmmu/hw/misc/stm32f2xx_syscfg.o
CC arm-softmmu/hw/scsi/virtio-scsi.o
CC mips-softmmu/target/mips/op_helper.o
CC mips-softmmu/target/mips/lmi_helper.o
CC aarch64-softmmu/hw/misc/mps2-scc.o
CC i386-softmmu/target/i386/mpx_helper.o
CC x86_64-softmmu/target/i386/arch_memory_mapping.o
CC mips-softmmu/target/mips/helper.o
CC aarch64-softmmu/hw/misc/auxbus.o
CC i386-softmmu/target/i386/seg_helper.o
CC arm-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC i386-softmmu/target/i386/smm_helper.o
CC aarch64-softmmu/hw/misc/aspeed_scu.o
CC aarch64-softmmu/hw/misc/aspeed_sdmc.o
CC i386-softmmu/target/i386/svm_helper.o
CC aarch64-softmmu/hw/misc/mmio_interface.o
CC aarch64-softmmu/hw/misc/msf2-sysreg.o
CC i386-softmmu/target/i386/machine.o
CC x86_64-softmmu/target/i386/arch_dump.o
CC mips-softmmu/target/mips/cpu.o
CC mips-softmmu/target/mips/gdbstub.o
CC arm-softmmu/hw/scsi/vhost-scsi-common.o
CC arm-softmmu/hw/scsi/vhost-scsi.o
CC x86_64-softmmu/target/i386/monitor.o
CC arm-softmmu/hw/scsi/vhost-user-scsi.o
CC x86_64-softmmu/target/i386/kvm-stub.o
CC arm-softmmu/hw/sd/omap_mmc.o
CC aarch64-softmmu/hw/net/virtio-net.o
CC mips-softmmu/target/mips/msa_helper.o
CC mips-softmmu/target/mips/mips-semi.o
CC i386-softmmu/target/i386/arch_memory_mapping.o
CC aarch64-softmmu/hw/net/vhost_net.o
CC arm-softmmu/hw/sd/pxa2xx_mmci.o
CC aarch64-softmmu/hw/pcmcia/pxa2xx.o
CC i386-softmmu/target/i386/arch_dump.o
GEN trace/generated-helpers.c
CC i386-softmmu/target/i386/monitor.o
CC x86_64-softmmu/trace/control-target.o
CC i386-softmmu/target/i386/kvm-stub.o
CC mips-softmmu/target/mips/machine.o
CC aarch64-softmmu/hw/scsi/virtio-scsi.o
CC arm-softmmu/hw/sd/bcm2835_sdhost.o
CC x86_64-softmmu/gdbstub-xml.o
CC aarch64-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC mips-softmmu/target/mips/cp0_timer.o
CC arm-softmmu/hw/ssi/omap_spi.o
CC arm-softmmu/hw/ssi/imx_spi.o
CC aarch64-softmmu/hw/scsi/vhost-scsi-common.o
CC aarch64-softmmu/hw/scsi/vhost-scsi.o
CC arm-softmmu/hw/timer/exynos4210_mct.o
GEN trace/generated-helpers.c
GEN trace/generated-helpers.c
CC i386-softmmu/trace/control-target.o
CC aarch64-softmmu/hw/scsi/vhost-user-scsi.o
CC mips-softmmu/trace/control-target.o
CC x86_64-softmmu/trace/generated-helpers.o
CC arm-softmmu/hw/timer/exynos4210_pwm.o
CC mips-softmmu/trace/generated-helpers.o
CC aarch64-softmmu/hw/sd/omap_mmc.o
CC aarch64-softmmu/hw/sd/pxa2xx_mmci.o
CC i386-softmmu/gdbstub-xml.o
CC arm-softmmu/hw/timer/exynos4210_rtc.o
CC aarch64-softmmu/hw/sd/bcm2835_sdhost.o
CC arm-softmmu/hw/timer/omap_gptimer.o
CC i386-softmmu/trace/generated-helpers.o
CC arm-softmmu/hw/timer/omap_synctimer.o
CC aarch64-softmmu/hw/ssi/omap_spi.o
CC aarch64-softmmu/hw/ssi/imx_spi.o
CC arm-softmmu/hw/timer/pxa2xx_timer.o
CC arm-softmmu/hw/timer/digic-timer.o
CC arm-softmmu/hw/timer/allwinner-a10-pit.o
CC arm-softmmu/hw/usb/tusb6010.o
CC aarch64-softmmu/hw/timer/exynos4210_mct.o
CC aarch64-softmmu/hw/timer/exynos4210_pwm.o
CC arm-softmmu/hw/vfio/common.o
CC aarch64-softmmu/hw/timer/exynos4210_rtc.o
CC aarch64-softmmu/hw/timer/omap_gptimer.o
CC arm-softmmu/hw/vfio/pci.o
CC aarch64-softmmu/hw/timer/omap_synctimer.o
CC aarch64-softmmu/hw/timer/pxa2xx_timer.o
CC aarch64-softmmu/hw/timer/digic-timer.o
CC aarch64-softmmu/hw/timer/allwinner-a10-pit.o
CC arm-softmmu/hw/vfio/pci-quirks.o
CC arm-softmmu/hw/vfio/platform.o
CC aarch64-softmmu/hw/usb/tusb6010.o
CC aarch64-softmmu/hw/vfio/common.o
CC arm-softmmu/hw/vfio/calxeda-xgmac.o
CC aarch64-softmmu/hw/vfio/pci.o
CC aarch64-softmmu/hw/vfio/pci-quirks.o
CC arm-softmmu/hw/vfio/amd-xgbe.o
CC aarch64-softmmu/hw/vfio/platform.o
CC arm-softmmu/hw/vfio/spapr.o
CC aarch64-softmmu/hw/vfio/calxeda-xgmac.o
CC arm-softmmu/hw/virtio/virtio.o
CC aarch64-softmmu/hw/vfio/amd-xgbe.o
CC aarch64-softmmu/hw/vfio/spapr.o
CC aarch64-softmmu/hw/virtio/virtio.o
CC aarch64-softmmu/hw/virtio/virtio-balloon.o
CC arm-softmmu/hw/virtio/virtio-balloon.o
CC aarch64-softmmu/hw/virtio/vhost.o
CC arm-softmmu/hw/virtio/vhost.o
CC arm-softmmu/hw/virtio/vhost-backend.o
CC aarch64-softmmu/hw/virtio/vhost-backend.o
LINK m68k-softmmu/qemu-system-m68k
CC arm-softmmu/hw/virtio/vhost-user.o
CC aarch64-softmmu/hw/virtio/vhost-user.o
CC aarch64-softmmu/hw/virtio/vhost-vsock.o
CC aarch64-softmmu/hw/virtio/virtio-crypto.o
CC arm-softmmu/hw/virtio/vhost-vsock.o
CC arm-softmmu/hw/virtio/virtio-crypto.o
CC arm-softmmu/hw/virtio/virtio-crypto-pci.o
CC aarch64-softmmu/hw/virtio/virtio-crypto-pci.o
CC aarch64-softmmu/hw/arm/boot.o
CC arm-softmmu/hw/arm/boot.o
CC arm-softmmu/hw/arm/collie.o
LINK tricore-softmmu/qemu-system-tricore
CC aarch64-softmmu/hw/arm/exynos4_boards.o
CC aarch64-softmmu/hw/arm/collie.o
CC aarch64-softmmu/hw/arm/gumstix.o
CC aarch64-softmmu/hw/arm/highbank.o
CC aarch64-softmmu/hw/arm/digic_boards.o
CC aarch64-softmmu/hw/arm/integratorcp.o
CC arm-softmmu/hw/arm/gumstix.o
CC aarch64-softmmu/hw/arm/mainstone.o
CC arm-softmmu/hw/arm/exynos4_boards.o
CC arm-softmmu/hw/arm/highbank.o
CC arm-softmmu/hw/arm/digic_boards.o
CC arm-softmmu/hw/arm/integratorcp.o
CC aarch64-softmmu/hw/arm/musicpal.o
CC arm-softmmu/hw/arm/mainstone.o
CC aarch64-softmmu/hw/arm/nseries.o
CC aarch64-softmmu/hw/arm/omap_sx1.o
CC arm-softmmu/hw/arm/musicpal.o
CC arm-softmmu/hw/arm/nseries.o
CC aarch64-softmmu/hw/arm/palm.o
CC arm-softmmu/hw/arm/omap_sx1.o
CC aarch64-softmmu/hw/arm/realview.o
CC aarch64-softmmu/hw/arm/spitz.o
CC arm-softmmu/hw/arm/palm.o
CC aarch64-softmmu/hw/arm/stellaris.o
CC arm-softmmu/hw/arm/realview.o
CC aarch64-softmmu/hw/arm/tosa.o
CC aarch64-softmmu/hw/arm/versatilepb.o
CC arm-softmmu/hw/arm/spitz.o
CC aarch64-softmmu/hw/arm/vexpress.o
CC arm-softmmu/hw/arm/stellaris.o
CC aarch64-softmmu/hw/arm/virt.o
CC aarch64-softmmu/hw/arm/xilinx_zynq.o
CC arm-softmmu/hw/arm/tosa.o
CC aarch64-softmmu/hw/arm/z2.o
CC arm-softmmu/hw/arm/versatilepb.o
CC arm-softmmu/hw/arm/vexpress.o
CC aarch64-softmmu/hw/arm/virt-acpi-build.o
CC arm-softmmu/hw/arm/virt.o
CC aarch64-softmmu/hw/arm/netduino2.o
CC aarch64-softmmu/hw/arm/sysbus-fdt.o
CC arm-softmmu/hw/arm/xilinx_zynq.o
CC aarch64-softmmu/hw/arm/armv7m.o
CC arm-softmmu/hw/arm/z2.o
CC aarch64-softmmu/hw/arm/exynos4210.o
CC aarch64-softmmu/hw/arm/pxa2xx.o
CC aarch64-softmmu/hw/arm/pxa2xx_gpio.o
CC arm-softmmu/hw/arm/virt-acpi-build.o
CC arm-softmmu/hw/arm/netduino2.o
CC arm-softmmu/hw/arm/sysbus-fdt.o
CC arm-softmmu/hw/arm/armv7m.o
CC aarch64-softmmu/hw/arm/pxa2xx_pic.o
CC aarch64-softmmu/hw/arm/digic.o
CC arm-softmmu/hw/arm/exynos4210.o
CC arm-softmmu/hw/arm/pxa2xx.o
CC aarch64-softmmu/hw/arm/omap1.o
CC aarch64-softmmu/hw/arm/omap2.o
CC aarch64-softmmu/hw/arm/strongarm.o
CC arm-softmmu/hw/arm/pxa2xx_gpio.o
CC aarch64-softmmu/hw/arm/allwinner-a10.o
CC arm-softmmu/hw/arm/pxa2xx_pic.o
CC aarch64-softmmu/hw/arm/cubieboard.o
CC aarch64-softmmu/hw/arm/bcm2835_peripherals.o
CC arm-softmmu/hw/arm/omap1.o
CC arm-softmmu/hw/arm/digic.o
CC aarch64-softmmu/hw/arm/bcm2836.o
CC aarch64-softmmu/hw/arm/raspi.o
CC aarch64-softmmu/hw/arm/stm32f205_soc.o
CC arm-softmmu/hw/arm/omap2.o
CC aarch64-softmmu/hw/arm/xlnx-zynqmp.o
CC aarch64-softmmu/hw/arm/xlnx-zcu102.o
CC arm-softmmu/hw/arm/strongarm.o
LINK i386-linux-user/qemu-i386
CC aarch64-softmmu/hw/arm/fsl-imx25.o
CC aarch64-softmmu/hw/arm/imx25_pdk.o
CC arm-softmmu/hw/arm/allwinner-a10.o
CC aarch64-softmmu/hw/arm/fsl-imx31.o
CC arm-softmmu/hw/arm/cubieboard.o
CC aarch64-softmmu/hw/arm/kzm.o
CC aarch64-softmmu/hw/arm/fsl-imx6.o
CC arm-softmmu/hw/arm/bcm2835_peripherals.o
CC aarch64-softmmu/hw/arm/sabrelite.o
CC arm-softmmu/hw/arm/bcm2836.o
CC aarch64-softmmu/hw/arm/aspeed_soc.o
CC aarch64-softmmu/hw/arm/aspeed.o
CC aarch64-softmmu/hw/arm/mps2.o
CC arm-softmmu/hw/arm/raspi.o
CC aarch64-softmmu/hw/arm/msf2-soc.o
CC arm-softmmu/hw/arm/stm32f205_soc.o
CC aarch64-softmmu/hw/arm/msf2-som.o
CC arm-softmmu/hw/arm/fsl-imx25.o
CC aarch64-softmmu/target/arm/arm-semi.o
CC arm-softmmu/hw/arm/imx25_pdk.o
CC arm-softmmu/hw/arm/fsl-imx31.o
CC arm-softmmu/hw/arm/fsl-imx6.o
CC arm-softmmu/hw/arm/kzm.o
CC aarch64-softmmu/target/arm/machine.o
CC arm-softmmu/hw/arm/sabrelite.o
CC aarch64-softmmu/target/arm/psci.o
CC aarch64-softmmu/target/arm/arch_dump.o
CC arm-softmmu/hw/arm/aspeed_soc.o
CC aarch64-softmmu/target/arm/monitor.o
CC arm-softmmu/hw/arm/aspeed.o
CC aarch64-softmmu/target/arm/kvm-stub.o
CC arm-softmmu/hw/arm/mps2.o
LINK sh4-softmmu/qemu-system-sh4
CC arm-softmmu/hw/arm/msf2-soc.o
CC arm-softmmu/hw/arm/msf2-som.o
CC aarch64-softmmu/target/arm/translate.o
LINK alpha-softmmu/qemu-system-alpha
CC aarch64-softmmu/target/arm/op_helper.o
CC arm-softmmu/target/arm/arm-semi.o
CC aarch64-softmmu/target/arm/helper.o
CC arm-softmmu/target/arm/machine.o
CC aarch64-softmmu/target/arm/cpu.o
LINK sparc64-softmmu/qemu-system-sparc64
CC aarch64-softmmu/target/arm/neon_helper.o
CC arm-softmmu/target/arm/psci.o
CC arm-softmmu/target/arm/arch_dump.o
CC arm-softmmu/target/arm/monitor.o
CC arm-softmmu/target/arm/kvm-stub.o
CC aarch64-softmmu/target/arm/iwmmxt_helper.o
CC aarch64-softmmu/target/arm/gdbstub.o
CC aarch64-softmmu/target/arm/cpu64.o
CC aarch64-softmmu/target/arm/translate-a64.o
CC aarch64-softmmu/target/arm/helper-a64.o
CC arm-softmmu/target/arm/translate.o
CC arm-softmmu/target/arm/op_helper.o
CC aarch64-softmmu/target/arm/gdbstub64.o
LINK aarch64_be-linux-user/qemu-aarch64_be
CC aarch64-softmmu/target/arm/crypto_helper.o
CC aarch64-softmmu/target/arm/arm-powerctl.o
CC arm-softmmu/target/arm/helper.o
CC arm-softmmu/target/arm/cpu.o
LINK x86_64-linux-user/qemu-x86_64
CC arm-softmmu/target/arm/neon_helper.o
CC arm-softmmu/target/arm/iwmmxt_helper.o
GEN trace/generated-helpers.c
CC arm-softmmu/target/arm/gdbstub.o
CC aarch64-softmmu/trace/control-target.o
CC arm-softmmu/target/arm/crypto_helper.o
CC arm-softmmu/target/arm/arm-powerctl.o
CC aarch64-softmmu/gdbstub-xml.o
GEN trace/generated-helpers.c
CC arm-softmmu/trace/control-target.o
CC aarch64-softmmu/trace/generated-helpers.o
CC arm-softmmu/gdbstub-xml.o
CC arm-softmmu/trace/generated-helpers.o
LINK armeb-linux-user/qemu-armeb
LINK arm-linux-user/qemu-arm
LINK mips-linux-user/qemu-mips
LINK mipsn32el-linux-user/qemu-mipsn32el
LINK s390x-softmmu/qemu-system-s390x
LINK mipsn32-linux-user/qemu-mipsn32
LINK mips64-linux-user/qemu-mips64
LINK mips64el-linux-user/qemu-mips64el
LINK x86_64-softmmu/qemu-system-x86_64
LINK i386-softmmu/qemu-system-i386
LINK ppc64abi32-linux-user/qemu-ppc64abi32
target/i386/helper.o: In function `get_me_mask':
/var/tmp/patchew-tester-tmp-r4540qbd/src/target/i386/helper.c:735: undefined reference to `kvm_arch_get_supported_cpuid'
target/i386/monitor.o: In function `get_me_mask':
/var/tmp/patchew-tester-tmp-r4540qbd/src/target/i386/monitor.c:71: undefined reference to `kvm_arch_get_supported_cpuid'
collect2: error: ld returned 1 exit status
make[1]: *** [qemu-system-x86_64] Error 1
make: *** [subdir-x86_64-softmmu] Error 2
LINK ppc-linux-user/qemu-ppc
LINK aarch64-softmmu/qemu-system-aarch64
LINK arm-softmmu/qemu-system-arm
LINK ppc64le-linux-user/qemu-ppc64le
target/i386/helper.o: In function `get_me_mask':
/var/tmp/patchew-tester-tmp-r4540qbd/src/target/i386/helper.c:735: undefined reference to `kvm_arch_get_supported_cpuid'
target/i386/monitor.o: In function `get_me_mask':
/var/tmp/patchew-tester-tmp-r4540qbd/src/target/i386/monitor.c:71: undefined reference to `kvm_arch_get_supported_cpuid'
collect2: error: ld returned 1 exit status
make[1]: *** [qemu-system-i386] Error 1
make: *** [subdir-i386-softmmu] Error 2
LINK mips-softmmu/qemu-system-mips
LINK mipsel-softmmu/qemu-system-mipsel
LINK ppc64-linux-user/qemu-ppc64
LINK mips64el-softmmu/qemu-system-mips64el
LINK mips64-softmmu/qemu-system-mips64
=== OUTPUT END ===
Test command exited with code: 2
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@freelists.org
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [PATCH v6 05/23] target/i386: add memory encryption feature cpuid support
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
@ 2018-01-30 17:49 ` Dr. David Alan Gilbert
-1 siblings, 0 replies; 118+ messages in thread
From: Dr. David Alan Gilbert @ 2018-01-30 17:49 UTC (permalink / raw)
To: Brijesh Singh
Cc: qemu-devel, kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Eduardo Habkost,
Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Richard Henderson
* Brijesh Singh (brijesh.singh@amd.com) wrote:
> AMD EPYC processors support memory encryption feature. The feature
> is reported through CPUID 8000_001F[EAX].
>
> Fn8000_001F [EAX]:
> Bit 0 Secure Memory Encryption (SME) supported
> Bit 1 Secure Encrypted Virtualization (SEV) supported
> Bit 2 Page flush MSR supported
> Bit 3 Ecrypted State (SEV-ES) support
>
> when memory encryption feature is reported, CPUID 8000_001F[EBX] should
> provide additional information regarding the feature (such as which page
> table bit is used to mark pages as encrypted etc). The information in EBX
> and ECX may vary from one family to another hence we use the host cpuid
> to populate the EBX information.
That's going to make it interesting for migration. If the guest needs
to know that C-bit position then you presumably can't migrate between
those two host types, but we wouldn't have anything that currently
stops us.
We already have similar problems with variations in physical address
size but normally get away with that, especially on smaller VMs.
Dave
> The details for memory encryption CPUID is available in AMD APM
> (http://support.amd.com/TechDocs/24593.pdf) Section 15.34.1
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Cc: Richard Henderson <rth@twiddle.net>
> Cc: Eduardo Habkost <ehabkost@redhat.com>
> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
> ---
> target/i386/cpu.c | 36 ++++++++++++++++++++++++++++++++++++
> target/i386/cpu.h | 6 ++++++
> 2 files changed, 42 insertions(+)
>
> diff --git a/target/i386/cpu.c b/target/i386/cpu.c
> index a49d2221adc9..4147eb6e18a9 100644
> --- a/target/i386/cpu.c
> +++ b/target/i386/cpu.c
> @@ -234,6 +234,7 @@ static void x86_cpu_vendor_words2str(char *dst, uint32_t vendor1,
> #define TCG_EXT4_FEATURES 0
> #define TCG_SVM_FEATURES 0
> #define TCG_KVM_FEATURES 0
> +#define TCG_MEM_ENCRYPT_FEATURES 0
> #define TCG_7_0_EBX_FEATURES (CPUID_7_0_EBX_SMEP | CPUID_7_0_EBX_SMAP | \
> CPUID_7_0_EBX_BMI1 | CPUID_7_0_EBX_BMI2 | CPUID_7_0_EBX_ADX | \
> CPUID_7_0_EBX_PCOMMIT | CPUID_7_0_EBX_CLFLUSHOPT | \
> @@ -545,6 +546,20 @@ static FeatureWordInfo feature_word_info[FEATURE_WORDS] = {
> .cpuid_reg = R_EDX,
> .tcg_features = ~0U,
> },
> + [FEAT_MEM_ENCRYPT] = {
> + .feat_names = {
> + "sme", "sev", "page-flush-msr", "sev-es",
> + NULL, NULL, NULL, NULL,
> + NULL, NULL, NULL, NULL,
> + NULL, NULL, NULL, NULL,
> + NULL, NULL, NULL, NULL,
> + NULL, NULL, NULL, NULL,
> + NULL, NULL, NULL, NULL,
> + NULL, NULL, NULL, NULL,
> + },
> + .cpuid_eax = 0x8000001F, .cpuid_reg = R_EAX,
> + .tcg_features = TCG_MEM_ENCRYPT_FEATURES,
> + }
> };
>
> typedef struct X86RegisterInfo32 {
> @@ -1965,6 +1980,9 @@ static X86CPUDefinition builtin_x86_defs[] = {
> CPUID_XSAVE_XGETBV1,
> .features[FEAT_6_EAX] =
> CPUID_6_EAX_ARAT,
> + /* Missing: SEV_ES */
> + .features[FEAT_MEM_ENCRYPT] =
> + CPUID_8000_001F_EAX_SME | CPUID_8000_001F_EAX_SEV,
> .xlevel = 0x8000000A,
> .model_id = "AMD EPYC Processor",
> },
> @@ -3589,6 +3607,19 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count,
> *edx = 0;
> }
> break;
> + case 0x8000001F:
> + if (env->features[FEAT_MEM_ENCRYPT] & CPUID_8000_001F_EAX_SEV) {
> + *eax = env->features[FEAT_MEM_ENCRYPT];
> + host_cpuid(0x8000001F, 0, NULL, ebx, NULL, NULL);
> + *ecx = 0;
> + *edx = 0;
> + } else {
> + *eax = 0;
> + *ebx = 0;
> + *ecx = 0;
> + *edx = 0;
> + }
> + break;
> case 0xC0000000:
> *eax = env->cpuid_xlevel2;
> *ebx = 0;
> @@ -4036,10 +4067,15 @@ static void x86_cpu_expand_features(X86CPU *cpu, Error **errp)
> x86_cpu_adjust_feat_level(cpu, FEAT_C000_0001_EDX);
> x86_cpu_adjust_feat_level(cpu, FEAT_SVM);
> x86_cpu_adjust_feat_level(cpu, FEAT_XSAVE);
> + x86_cpu_adjust_feat_level(cpu, FEAT_MEM_ENCRYPT);
> /* SVM requires CPUID[0x8000000A] */
> if (env->features[FEAT_8000_0001_ECX] & CPUID_EXT3_SVM) {
> x86_cpu_adjust_level(cpu, &env->cpuid_min_xlevel, 0x8000000A);
> }
> + /* SEV requires CPUID[0x8000001F] */
> + if ((env->features[FEAT_MEM_ENCRYPT] & CPUID_8000_001F_EAX_SEV)) {
> + x86_cpu_adjust_level(cpu, &env->cpuid_min_xlevel, 0x8000001F);
> + }
> }
>
> /* Set cpuid_*level* based on cpuid_min_*level, if not explicitly set */
> diff --git a/target/i386/cpu.h b/target/i386/cpu.h
> index f91e37d25dea..f7a0ab20fdd1 100644
> --- a/target/i386/cpu.h
> +++ b/target/i386/cpu.h
> @@ -483,6 +483,7 @@ typedef enum FeatureWord {
> FEAT_6_EAX, /* CPUID[6].EAX */
> FEAT_XSAVE_COMP_LO, /* CPUID[EAX=0xd,ECX=0].EAX */
> FEAT_XSAVE_COMP_HI, /* CPUID[EAX=0xd,ECX=0].EDX */
> + FEAT_MEM_ENCRYPT, /* CPUID[8000_001F].EAX */
> FEATURE_WORDS,
> } FeatureWord;
>
> @@ -679,6 +680,11 @@ typedef uint32_t FeatureWordArray[FEATURE_WORDS];
>
> #define CPUID_6_EAX_ARAT (1U << 2)
>
> +#define CPUID_8000_001F_EAX_SME (1U << 0) /* SME */
> +#define CPUID_8000_001F_EAX_SEV (1U << 1) /* SEV */
> +#define CPUID_8000_001F_EAX_PAGE_FLUSH_MSR (1U << 2) /* Page flush MSR */
> +#define CPUID_8000_001F_EAX_SEV_ES (1U << 3) /* SEV-ES */
> +
> /* CPUID[0x80000007].EDX flags: */
> #define CPUID_APM_INVTSC (1U << 8)
>
> --
> 2.9.5
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 05/23] target/i386: add memory encryption feature cpuid support
@ 2018-01-30 17:49 ` Dr. David Alan Gilbert
0 siblings, 0 replies; 118+ messages in thread
From: Dr. David Alan Gilbert @ 2018-01-30 17:49 UTC (permalink / raw)
To: Brijesh Singh
Cc: qemu-devel, kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Eduardo Habkost,
Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Richard Henderson
* Brijesh Singh (brijesh.singh@amd.com) wrote:
> AMD EPYC processors support memory encryption feature. The feature
> is reported through CPUID 8000_001F[EAX].
>
> Fn8000_001F [EAX]:
> Bit 0 Secure Memory Encryption (SME) supported
> Bit 1 Secure Encrypted Virtualization (SEV) supported
> Bit 2 Page flush MSR supported
> Bit 3 Ecrypted State (SEV-ES) support
>
> when memory encryption feature is reported, CPUID 8000_001F[EBX] should
> provide additional information regarding the feature (such as which page
> table bit is used to mark pages as encrypted etc). The information in EBX
> and ECX may vary from one family to another hence we use the host cpuid
> to populate the EBX information.
That's going to make it interesting for migration. If the guest needs
to know that C-bit position then you presumably can't migrate between
those two host types, but we wouldn't have anything that currently
stops us.
We already have similar problems with variations in physical address
size but normally get away with that, especially on smaller VMs.
Dave
> The details for memory encryption CPUID is available in AMD APM
> (http://support.amd.com/TechDocs/24593.pdf) Section 15.34.1
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Cc: Richard Henderson <rth@twiddle.net>
> Cc: Eduardo Habkost <ehabkost@redhat.com>
> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
> ---
> target/i386/cpu.c | 36 ++++++++++++++++++++++++++++++++++++
> target/i386/cpu.h | 6 ++++++
> 2 files changed, 42 insertions(+)
>
> diff --git a/target/i386/cpu.c b/target/i386/cpu.c
> index a49d2221adc9..4147eb6e18a9 100644
> --- a/target/i386/cpu.c
> +++ b/target/i386/cpu.c
> @@ -234,6 +234,7 @@ static void x86_cpu_vendor_words2str(char *dst, uint32_t vendor1,
> #define TCG_EXT4_FEATURES 0
> #define TCG_SVM_FEATURES 0
> #define TCG_KVM_FEATURES 0
> +#define TCG_MEM_ENCRYPT_FEATURES 0
> #define TCG_7_0_EBX_FEATURES (CPUID_7_0_EBX_SMEP | CPUID_7_0_EBX_SMAP | \
> CPUID_7_0_EBX_BMI1 | CPUID_7_0_EBX_BMI2 | CPUID_7_0_EBX_ADX | \
> CPUID_7_0_EBX_PCOMMIT | CPUID_7_0_EBX_CLFLUSHOPT | \
> @@ -545,6 +546,20 @@ static FeatureWordInfo feature_word_info[FEATURE_WORDS] = {
> .cpuid_reg = R_EDX,
> .tcg_features = ~0U,
> },
> + [FEAT_MEM_ENCRYPT] = {
> + .feat_names = {
> + "sme", "sev", "page-flush-msr", "sev-es",
> + NULL, NULL, NULL, NULL,
> + NULL, NULL, NULL, NULL,
> + NULL, NULL, NULL, NULL,
> + NULL, NULL, NULL, NULL,
> + NULL, NULL, NULL, NULL,
> + NULL, NULL, NULL, NULL,
> + NULL, NULL, NULL, NULL,
> + },
> + .cpuid_eax = 0x8000001F, .cpuid_reg = R_EAX,
> + .tcg_features = TCG_MEM_ENCRYPT_FEATURES,
> + }
> };
>
> typedef struct X86RegisterInfo32 {
> @@ -1965,6 +1980,9 @@ static X86CPUDefinition builtin_x86_defs[] = {
> CPUID_XSAVE_XGETBV1,
> .features[FEAT_6_EAX] =
> CPUID_6_EAX_ARAT,
> + /* Missing: SEV_ES */
> + .features[FEAT_MEM_ENCRYPT] =
> + CPUID_8000_001F_EAX_SME | CPUID_8000_001F_EAX_SEV,
> .xlevel = 0x8000000A,
> .model_id = "AMD EPYC Processor",
> },
> @@ -3589,6 +3607,19 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count,
> *edx = 0;
> }
> break;
> + case 0x8000001F:
> + if (env->features[FEAT_MEM_ENCRYPT] & CPUID_8000_001F_EAX_SEV) {
> + *eax = env->features[FEAT_MEM_ENCRYPT];
> + host_cpuid(0x8000001F, 0, NULL, ebx, NULL, NULL);
> + *ecx = 0;
> + *edx = 0;
> + } else {
> + *eax = 0;
> + *ebx = 0;
> + *ecx = 0;
> + *edx = 0;
> + }
> + break;
> case 0xC0000000:
> *eax = env->cpuid_xlevel2;
> *ebx = 0;
> @@ -4036,10 +4067,15 @@ static void x86_cpu_expand_features(X86CPU *cpu, Error **errp)
> x86_cpu_adjust_feat_level(cpu, FEAT_C000_0001_EDX);
> x86_cpu_adjust_feat_level(cpu, FEAT_SVM);
> x86_cpu_adjust_feat_level(cpu, FEAT_XSAVE);
> + x86_cpu_adjust_feat_level(cpu, FEAT_MEM_ENCRYPT);
> /* SVM requires CPUID[0x8000000A] */
> if (env->features[FEAT_8000_0001_ECX] & CPUID_EXT3_SVM) {
> x86_cpu_adjust_level(cpu, &env->cpuid_min_xlevel, 0x8000000A);
> }
> + /* SEV requires CPUID[0x8000001F] */
> + if ((env->features[FEAT_MEM_ENCRYPT] & CPUID_8000_001F_EAX_SEV)) {
> + x86_cpu_adjust_level(cpu, &env->cpuid_min_xlevel, 0x8000001F);
> + }
> }
>
> /* Set cpuid_*level* based on cpuid_min_*level, if not explicitly set */
> diff --git a/target/i386/cpu.h b/target/i386/cpu.h
> index f91e37d25dea..f7a0ab20fdd1 100644
> --- a/target/i386/cpu.h
> +++ b/target/i386/cpu.h
> @@ -483,6 +483,7 @@ typedef enum FeatureWord {
> FEAT_6_EAX, /* CPUID[6].EAX */
> FEAT_XSAVE_COMP_LO, /* CPUID[EAX=0xd,ECX=0].EAX */
> FEAT_XSAVE_COMP_HI, /* CPUID[EAX=0xd,ECX=0].EDX */
> + FEAT_MEM_ENCRYPT, /* CPUID[8000_001F].EAX */
> FEATURE_WORDS,
> } FeatureWord;
>
> @@ -679,6 +680,11 @@ typedef uint32_t FeatureWordArray[FEATURE_WORDS];
>
> #define CPUID_6_EAX_ARAT (1U << 2)
>
> +#define CPUID_8000_001F_EAX_SME (1U << 0) /* SME */
> +#define CPUID_8000_001F_EAX_SEV (1U << 1) /* SEV */
> +#define CPUID_8000_001F_EAX_PAGE_FLUSH_MSR (1U << 2) /* Page flush MSR */
> +#define CPUID_8000_001F_EAX_SEV_ES (1U << 3) /* SEV-ES */
> +
> /* CPUID[0x80000007].EDX flags: */
> #define CPUID_APM_INVTSC (1U << 8)
>
> --
> 2.9.5
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [PATCH v6 18/23] sev: emit the SEV_MEASUREMENT event
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
@ 2018-01-30 20:08 ` Dr. David Alan Gilbert
-1 siblings, 0 replies; 118+ messages in thread
From: Dr. David Alan Gilbert @ 2018-01-30 20:08 UTC (permalink / raw)
To: Brijesh Singh
Cc: qemu-devel, kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Eduardo Habkost,
Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange
* Brijesh Singh (brijesh.singh@amd.com) wrote:
> During machine creation we encrypted the guest bios image, the
> LAUNCH_MEASURE command can be used to retrieve the measurement of
> the encrypted memory region. Emit the SEV_MEASUREMENT event so that
> libvirt can grab the measurement value as soon as we are done with
> creating the encrypted machine.
Can you ust clarify what happens if the libvirt has disconnected and
reconnected to qemu and so didn't see the event? Can the reconnecting
libvirt query it and find out it's ready/not ready yet?
Dave
> Cc: Daniel P. Berrange <berrange@redhat.com>
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Cc: kvm@vger.kernel.org
> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
> ---
> accel/kvm/sev.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++
> accel/kvm/trace-events | 1 +
> include/sysemu/sev.h | 1 +
> 3 files changed, 60 insertions(+)
>
> diff --git a/accel/kvm/sev.c b/accel/kvm/sev.c
> index 1f757df725df..b78cf3144b1d 100644
> --- a/accel/kvm/sev.c
> +++ b/accel/kvm/sev.c
> @@ -19,11 +19,13 @@
> #include "sysemu/sev.h"
> #include "sysemu/sysemu.h"
> #include "trace.h"
> +#include "qapi-event.h"
>
> #define DEFAULT_GUEST_POLICY 0x1 /* disable debug */
> #define DEFAULT_SEV_DEVICE "/dev/sev"
>
> static int sev_fd;
> +static SEVState *sev_state;
>
> #define SEV_FW_MAX_ERROR 0x17
>
> @@ -418,6 +420,59 @@ err:
> return ret;
> }
>
> +static void
> +sev_launch_get_measure(Notifier *notifier, void *unused)
> +{
> + int ret, error;
> + guchar *data;
> + SEVState *s = sev_state;
> + struct kvm_sev_launch_measure *measurement;
> +
> + measurement = g_malloc0(sizeof(*measurement));
> + if (!measurement) {
> + return;
> + }
> +
> + /* query the measurement blob length */
> + ret = sev_ioctl(KVM_SEV_LAUNCH_MEASURE, measurement, &error);
> + if (!measurement->len) {
> + error_report("%s: LAUNCH_MEASURE ret=%d fw_error=%d '%s'",
> + __func__, ret, error, fw_error_to_str(errno));
> + goto free_measurement;
> + }
> +
> + data = g_malloc(measurement->len);
> + if (s->measurement) {
> + goto free_data;
> + }
> +
> + measurement->uaddr = (unsigned long)data;
> +
> + /* get the measurement blob */
> + ret = sev_ioctl(KVM_SEV_LAUNCH_MEASURE, measurement, &error);
> + if (ret) {
> + error_report("%s: LAUNCH_MEASURE ret=%d fw_error=%d '%s'",
> + __func__, ret, error, fw_error_to_str(errno));
> + goto free_data;
> + }
> +
> + sev_set_guest_state(SEV_STATE_SECRET);
> +
> + /* encode the measurement value and emit the event */
> + s->measurement = g_base64_encode(data, measurement->len);
> + trace_kvm_sev_launch_measurement(s->measurement);
> + qapi_event_send_sev_measurement(s->measurement, &error_abort);
> +
> +free_data:
> + g_free(data);
> +free_measurement:
> + g_free(measurement);
> +}
> +
> +static Notifier sev_machine_done_notify = {
> + .notify = sev_launch_get_measure,
> +};
> +
> void *
> sev_guest_init(const char *id)
> {
> @@ -461,6 +516,9 @@ sev_guest_init(const char *id)
> }
>
> ram_block_notifier_add(&sev_ram_notifier);
> + qemu_add_machine_init_done_notifier(&sev_machine_done_notify);
> +
> + sev_state = s;
>
> return s;
> err:
> diff --git a/accel/kvm/trace-events b/accel/kvm/trace-events
> index c55546f36a25..51df5113ad07 100644
> --- a/accel/kvm/trace-events
> +++ b/accel/kvm/trace-events
> @@ -20,3 +20,4 @@ kvm_memcrypt_unregister_region(void *addr, size_t len) "addr %p len 0x%lu"
> kvm_sev_change_state(char *old, char *new) "%s -> %s"
> kvm_sev_launch_start(int policy, void *session, void *pdh) "policy 0x%x session %p pdh %p"
> kvm_sev_launch_update_data(void *addr, uint64_t len) "addr %p len 0x%" PRIu64
> +kvm_sev_launch_measurement(const char *value) "data %s"
> diff --git a/include/sysemu/sev.h b/include/sysemu/sev.h
> index 839800efdbbf..572120c865ea 100644
> --- a/include/sysemu/sev.h
> +++ b/include/sysemu/sev.h
> @@ -63,6 +63,7 @@ typedef enum {
>
> struct SEVState {
> QSevGuestInfo *sev_info;
> + gchar *measurement;
> };
>
> typedef struct SEVState SEVState;
> --
> 2.9.5
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 18/23] sev: emit the SEV_MEASUREMENT event
@ 2018-01-30 20:08 ` Dr. David Alan Gilbert
0 siblings, 0 replies; 118+ messages in thread
From: Dr. David Alan Gilbert @ 2018-01-30 20:08 UTC (permalink / raw)
To: Brijesh Singh
Cc: qemu-devel, kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Eduardo Habkost,
Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange
* Brijesh Singh (brijesh.singh@amd.com) wrote:
> During machine creation we encrypted the guest bios image, the
> LAUNCH_MEASURE command can be used to retrieve the measurement of
> the encrypted memory region. Emit the SEV_MEASUREMENT event so that
> libvirt can grab the measurement value as soon as we are done with
> creating the encrypted machine.
Can you ust clarify what happens if the libvirt has disconnected and
reconnected to qemu and so didn't see the event? Can the reconnecting
libvirt query it and find out it's ready/not ready yet?
Dave
> Cc: Daniel P. Berrange <berrange@redhat.com>
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Cc: kvm@vger.kernel.org
> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
> ---
> accel/kvm/sev.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++
> accel/kvm/trace-events | 1 +
> include/sysemu/sev.h | 1 +
> 3 files changed, 60 insertions(+)
>
> diff --git a/accel/kvm/sev.c b/accel/kvm/sev.c
> index 1f757df725df..b78cf3144b1d 100644
> --- a/accel/kvm/sev.c
> +++ b/accel/kvm/sev.c
> @@ -19,11 +19,13 @@
> #include "sysemu/sev.h"
> #include "sysemu/sysemu.h"
> #include "trace.h"
> +#include "qapi-event.h"
>
> #define DEFAULT_GUEST_POLICY 0x1 /* disable debug */
> #define DEFAULT_SEV_DEVICE "/dev/sev"
>
> static int sev_fd;
> +static SEVState *sev_state;
>
> #define SEV_FW_MAX_ERROR 0x17
>
> @@ -418,6 +420,59 @@ err:
> return ret;
> }
>
> +static void
> +sev_launch_get_measure(Notifier *notifier, void *unused)
> +{
> + int ret, error;
> + guchar *data;
> + SEVState *s = sev_state;
> + struct kvm_sev_launch_measure *measurement;
> +
> + measurement = g_malloc0(sizeof(*measurement));
> + if (!measurement) {
> + return;
> + }
> +
> + /* query the measurement blob length */
> + ret = sev_ioctl(KVM_SEV_LAUNCH_MEASURE, measurement, &error);
> + if (!measurement->len) {
> + error_report("%s: LAUNCH_MEASURE ret=%d fw_error=%d '%s'",
> + __func__, ret, error, fw_error_to_str(errno));
> + goto free_measurement;
> + }
> +
> + data = g_malloc(measurement->len);
> + if (s->measurement) {
> + goto free_data;
> + }
> +
> + measurement->uaddr = (unsigned long)data;
> +
> + /* get the measurement blob */
> + ret = sev_ioctl(KVM_SEV_LAUNCH_MEASURE, measurement, &error);
> + if (ret) {
> + error_report("%s: LAUNCH_MEASURE ret=%d fw_error=%d '%s'",
> + __func__, ret, error, fw_error_to_str(errno));
> + goto free_data;
> + }
> +
> + sev_set_guest_state(SEV_STATE_SECRET);
> +
> + /* encode the measurement value and emit the event */
> + s->measurement = g_base64_encode(data, measurement->len);
> + trace_kvm_sev_launch_measurement(s->measurement);
> + qapi_event_send_sev_measurement(s->measurement, &error_abort);
> +
> +free_data:
> + g_free(data);
> +free_measurement:
> + g_free(measurement);
> +}
> +
> +static Notifier sev_machine_done_notify = {
> + .notify = sev_launch_get_measure,
> +};
> +
> void *
> sev_guest_init(const char *id)
> {
> @@ -461,6 +516,9 @@ sev_guest_init(const char *id)
> }
>
> ram_block_notifier_add(&sev_ram_notifier);
> + qemu_add_machine_init_done_notifier(&sev_machine_done_notify);
> +
> + sev_state = s;
>
> return s;
> err:
> diff --git a/accel/kvm/trace-events b/accel/kvm/trace-events
> index c55546f36a25..51df5113ad07 100644
> --- a/accel/kvm/trace-events
> +++ b/accel/kvm/trace-events
> @@ -20,3 +20,4 @@ kvm_memcrypt_unregister_region(void *addr, size_t len) "addr %p len 0x%lu"
> kvm_sev_change_state(char *old, char *new) "%s -> %s"
> kvm_sev_launch_start(int policy, void *session, void *pdh) "policy 0x%x session %p pdh %p"
> kvm_sev_launch_update_data(void *addr, uint64_t len) "addr %p len 0x%" PRIu64
> +kvm_sev_launch_measurement(const char *value) "data %s"
> diff --git a/include/sysemu/sev.h b/include/sysemu/sev.h
> index 839800efdbbf..572120c865ea 100644
> --- a/include/sysemu/sev.h
> +++ b/include/sysemu/sev.h
> @@ -63,6 +63,7 @@ typedef enum {
>
> struct SEVState {
> QSevGuestInfo *sev_info;
> + gchar *measurement;
> };
>
> typedef struct SEVState SEVState;
> --
> 2.9.5
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [PATCH v6 05/23] target/i386: add memory encryption feature cpuid support
2018-01-30 17:49 ` [Qemu-devel] " Dr. David Alan Gilbert
@ 2018-01-30 21:46 ` Brijesh Singh
-1 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-30 21:46 UTC (permalink / raw)
To: Dr. David Alan Gilbert
Cc: brijesh.singh, qemu-devel, kvm, Paolo Bonzini, Tom Lendacky,
Peter Maydell, Richard Henderson, Edgar E. Iglesias,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Richard Henderson
On 1/30/18 11:49 AM, Dr. David Alan Gilbert wrote:
> * Brijesh Singh (brijesh.singh@amd.com) wrote:
>> AMD EPYC processors support memory encryption feature. The feature
>> is reported through CPUID 8000_001F[EAX].
>>
>> Fn8000_001F [EAX]:
>> Bit 0 Secure Memory Encryption (SME) supported
>> Bit 1 Secure Encrypted Virtualization (SEV) supported
>> Bit 2 Page flush MSR supported
>> Bit 3 Ecrypted State (SEV-ES) support
>>
>> when memory encryption feature is reported, CPUID 8000_001F[EBX] should
>> provide additional information regarding the feature (such as which page
>> table bit is used to mark pages as encrypted etc). The information in EBX
>> and ECX may vary from one family to another hence we use the host cpuid
>> to populate the EBX information.
> That's going to make it interesting for migration. If the guest needs
> to know that C-bit position then you presumably can't migrate between
> those two host types, but we wouldn't have anything that currently
> stops us.
> We already have similar problems with variations in physical address
> size but normally get away with that, especially on smaller VMs.
Dave,
While building the page tables guest need to know the C-bit position.
The C-bit position in the guest is same as C-bit position on the host.
For migration case, we should be able to migrate SEV guest on same host
type (i.e all EPYC and Ryzen CPUs are based on family 17 and we should
be okay migrating the SEV guests among those host types). Since C-bit
position is not fixed hence migrating to different host family will be
an issue.
-Brijesh
> Dave
>
>
>> The details for memory encryption CPUID is available in AMD APM
>> (http://support.amd.com/TechDocs/24593.pdf) Section 15.34.1
>> Cc: Paolo Bonzini <pbonzini@redhat.com>
>> Cc: Richard Henderson <rth@twiddle.net>
>> Cc: Eduardo Habkost <ehabkost@redhat.com>
>> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
>> ---
>> target/i386/cpu.c | 36 ++++++++++++++++++++++++++++++++++++
>> target/i386/cpu.h | 6 ++++++
>> 2 files changed, 42 insertions(+)
>>
>> diff --git a/target/i386/cpu.c b/target/i386/cpu.c
>> index a49d2221adc9..4147eb6e18a9 100644
>> --- a/target/i386/cpu.c
>> +++ b/target/i386/cpu.c
>> @@ -234,6 +234,7 @@ static void x86_cpu_vendor_words2str(char *dst, uint32_t vendor1,
>> #define TCG_EXT4_FEATURES 0
>> #define TCG_SVM_FEATURES 0
>> #define TCG_KVM_FEATURES 0
>> +#define TCG_MEM_ENCRYPT_FEATURES 0
>> #define TCG_7_0_EBX_FEATURES (CPUID_7_0_EBX_SMEP | CPUID_7_0_EBX_SMAP | \
>> CPUID_7_0_EBX_BMI1 | CPUID_7_0_EBX_BMI2 | CPUID_7_0_EBX_ADX | \
>> CPUID_7_0_EBX_PCOMMIT | CPUID_7_0_EBX_CLFLUSHOPT | \
>> @@ -545,6 +546,20 @@ static FeatureWordInfo feature_word_info[FEATURE_WORDS] = {
>> .cpuid_reg = R_EDX,
>> .tcg_features = ~0U,
>> },
>> + [FEAT_MEM_ENCRYPT] = {
>> + .feat_names = {
>> + "sme", "sev", "page-flush-msr", "sev-es",
>> + NULL, NULL, NULL, NULL,
>> + NULL, NULL, NULL, NULL,
>> + NULL, NULL, NULL, NULL,
>> + NULL, NULL, NULL, NULL,
>> + NULL, NULL, NULL, NULL,
>> + NULL, NULL, NULL, NULL,
>> + NULL, NULL, NULL, NULL,
>> + },
>> + .cpuid_eax = 0x8000001F, .cpuid_reg = R_EAX,
>> + .tcg_features = TCG_MEM_ENCRYPT_FEATURES,
>> + }
>> };
>>
>> typedef struct X86RegisterInfo32 {
>> @@ -1965,6 +1980,9 @@ static X86CPUDefinition builtin_x86_defs[] = {
>> CPUID_XSAVE_XGETBV1,
>> .features[FEAT_6_EAX] =
>> CPUID_6_EAX_ARAT,
>> + /* Missing: SEV_ES */
>> + .features[FEAT_MEM_ENCRYPT] =
>> + CPUID_8000_001F_EAX_SME | CPUID_8000_001F_EAX_SEV,
>> .xlevel = 0x8000000A,
>> .model_id = "AMD EPYC Processor",
>> },
>> @@ -3589,6 +3607,19 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count,
>> *edx = 0;
>> }
>> break;
>> + case 0x8000001F:
>> + if (env->features[FEAT_MEM_ENCRYPT] & CPUID_8000_001F_EAX_SEV) {
>> + *eax = env->features[FEAT_MEM_ENCRYPT];
>> + host_cpuid(0x8000001F, 0, NULL, ebx, NULL, NULL);
>> + *ecx = 0;
>> + *edx = 0;
>> + } else {
>> + *eax = 0;
>> + *ebx = 0;
>> + *ecx = 0;
>> + *edx = 0;
>> + }
>> + break;
>> case 0xC0000000:
>> *eax = env->cpuid_xlevel2;
>> *ebx = 0;
>> @@ -4036,10 +4067,15 @@ static void x86_cpu_expand_features(X86CPU *cpu, Error **errp)
>> x86_cpu_adjust_feat_level(cpu, FEAT_C000_0001_EDX);
>> x86_cpu_adjust_feat_level(cpu, FEAT_SVM);
>> x86_cpu_adjust_feat_level(cpu, FEAT_XSAVE);
>> + x86_cpu_adjust_feat_level(cpu, FEAT_MEM_ENCRYPT);
>> /* SVM requires CPUID[0x8000000A] */
>> if (env->features[FEAT_8000_0001_ECX] & CPUID_EXT3_SVM) {
>> x86_cpu_adjust_level(cpu, &env->cpuid_min_xlevel, 0x8000000A);
>> }
>> + /* SEV requires CPUID[0x8000001F] */
>> + if ((env->features[FEAT_MEM_ENCRYPT] & CPUID_8000_001F_EAX_SEV)) {
>> + x86_cpu_adjust_level(cpu, &env->cpuid_min_xlevel, 0x8000001F);
>> + }
>> }
>>
>> /* Set cpuid_*level* based on cpuid_min_*level, if not explicitly set */
>> diff --git a/target/i386/cpu.h b/target/i386/cpu.h
>> index f91e37d25dea..f7a0ab20fdd1 100644
>> --- a/target/i386/cpu.h
>> +++ b/target/i386/cpu.h
>> @@ -483,6 +483,7 @@ typedef enum FeatureWord {
>> FEAT_6_EAX, /* CPUID[6].EAX */
>> FEAT_XSAVE_COMP_LO, /* CPUID[EAX=0xd,ECX=0].EAX */
>> FEAT_XSAVE_COMP_HI, /* CPUID[EAX=0xd,ECX=0].EDX */
>> + FEAT_MEM_ENCRYPT, /* CPUID[8000_001F].EAX */
>> FEATURE_WORDS,
>> } FeatureWord;
>>
>> @@ -679,6 +680,11 @@ typedef uint32_t FeatureWordArray[FEATURE_WORDS];
>>
>> #define CPUID_6_EAX_ARAT (1U << 2)
>>
>> +#define CPUID_8000_001F_EAX_SME (1U << 0) /* SME */
>> +#define CPUID_8000_001F_EAX_SEV (1U << 1) /* SEV */
>> +#define CPUID_8000_001F_EAX_PAGE_FLUSH_MSR (1U << 2) /* Page flush MSR */
>> +#define CPUID_8000_001F_EAX_SEV_ES (1U << 3) /* SEV-ES */
>> +
>> /* CPUID[0x80000007].EDX flags: */
>> #define CPUID_APM_INVTSC (1U << 8)
>>
>> --
>> 2.9.5
>>
> --
> Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 05/23] target/i386: add memory encryption feature cpuid support
@ 2018-01-30 21:46 ` Brijesh Singh
0 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-30 21:46 UTC (permalink / raw)
To: Dr. David Alan Gilbert
Cc: brijesh.singh, qemu-devel, kvm, Paolo Bonzini, Tom Lendacky,
Peter Maydell, Richard Henderson, Edgar E. Iglesias,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Richard Henderson
On 1/30/18 11:49 AM, Dr. David Alan Gilbert wrote:
> * Brijesh Singh (brijesh.singh@amd.com) wrote:
>> AMD EPYC processors support memory encryption feature. The feature
>> is reported through CPUID 8000_001F[EAX].
>>
>> Fn8000_001F [EAX]:
>> Bit 0 Secure Memory Encryption (SME) supported
>> Bit 1 Secure Encrypted Virtualization (SEV) supported
>> Bit 2 Page flush MSR supported
>> Bit 3 Ecrypted State (SEV-ES) support
>>
>> when memory encryption feature is reported, CPUID 8000_001F[EBX] should
>> provide additional information regarding the feature (such as which page
>> table bit is used to mark pages as encrypted etc). The information in EBX
>> and ECX may vary from one family to another hence we use the host cpuid
>> to populate the EBX information.
> That's going to make it interesting for migration. If the guest needs
> to know that C-bit position then you presumably can't migrate between
> those two host types, but we wouldn't have anything that currently
> stops us.
> We already have similar problems with variations in physical address
> size but normally get away with that, especially on smaller VMs.
Dave,
While building the page tables guest need to know the C-bit position.
The C-bit position in the guest is same as C-bit position on the host.
For migration case, we should be able to migrate SEV guest on same host
type (i.e all EPYC and Ryzen CPUs are based on family 17 and we should
be okay migrating the SEV guests among those host types). Since C-bit
position is not fixed hence migrating to different host family will be
an issue.
-Brijesh
> Dave
>
>
>> The details for memory encryption CPUID is available in AMD APM
>> (http://support.amd.com/TechDocs/24593.pdf) Section 15.34.1
>> Cc: Paolo Bonzini <pbonzini@redhat.com>
>> Cc: Richard Henderson <rth@twiddle.net>
>> Cc: Eduardo Habkost <ehabkost@redhat.com>
>> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
>> ---
>> target/i386/cpu.c | 36 ++++++++++++++++++++++++++++++++++++
>> target/i386/cpu.h | 6 ++++++
>> 2 files changed, 42 insertions(+)
>>
>> diff --git a/target/i386/cpu.c b/target/i386/cpu.c
>> index a49d2221adc9..4147eb6e18a9 100644
>> --- a/target/i386/cpu.c
>> +++ b/target/i386/cpu.c
>> @@ -234,6 +234,7 @@ static void x86_cpu_vendor_words2str(char *dst, uint32_t vendor1,
>> #define TCG_EXT4_FEATURES 0
>> #define TCG_SVM_FEATURES 0
>> #define TCG_KVM_FEATURES 0
>> +#define TCG_MEM_ENCRYPT_FEATURES 0
>> #define TCG_7_0_EBX_FEATURES (CPUID_7_0_EBX_SMEP | CPUID_7_0_EBX_SMAP | \
>> CPUID_7_0_EBX_BMI1 | CPUID_7_0_EBX_BMI2 | CPUID_7_0_EBX_ADX | \
>> CPUID_7_0_EBX_PCOMMIT | CPUID_7_0_EBX_CLFLUSHOPT | \
>> @@ -545,6 +546,20 @@ static FeatureWordInfo feature_word_info[FEATURE_WORDS] = {
>> .cpuid_reg = R_EDX,
>> .tcg_features = ~0U,
>> },
>> + [FEAT_MEM_ENCRYPT] = {
>> + .feat_names = {
>> + "sme", "sev", "page-flush-msr", "sev-es",
>> + NULL, NULL, NULL, NULL,
>> + NULL, NULL, NULL, NULL,
>> + NULL, NULL, NULL, NULL,
>> + NULL, NULL, NULL, NULL,
>> + NULL, NULL, NULL, NULL,
>> + NULL, NULL, NULL, NULL,
>> + NULL, NULL, NULL, NULL,
>> + },
>> + .cpuid_eax = 0x8000001F, .cpuid_reg = R_EAX,
>> + .tcg_features = TCG_MEM_ENCRYPT_FEATURES,
>> + }
>> };
>>
>> typedef struct X86RegisterInfo32 {
>> @@ -1965,6 +1980,9 @@ static X86CPUDefinition builtin_x86_defs[] = {
>> CPUID_XSAVE_XGETBV1,
>> .features[FEAT_6_EAX] =
>> CPUID_6_EAX_ARAT,
>> + /* Missing: SEV_ES */
>> + .features[FEAT_MEM_ENCRYPT] =
>> + CPUID_8000_001F_EAX_SME | CPUID_8000_001F_EAX_SEV,
>> .xlevel = 0x8000000A,
>> .model_id = "AMD EPYC Processor",
>> },
>> @@ -3589,6 +3607,19 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count,
>> *edx = 0;
>> }
>> break;
>> + case 0x8000001F:
>> + if (env->features[FEAT_MEM_ENCRYPT] & CPUID_8000_001F_EAX_SEV) {
>> + *eax = env->features[FEAT_MEM_ENCRYPT];
>> + host_cpuid(0x8000001F, 0, NULL, ebx, NULL, NULL);
>> + *ecx = 0;
>> + *edx = 0;
>> + } else {
>> + *eax = 0;
>> + *ebx = 0;
>> + *ecx = 0;
>> + *edx = 0;
>> + }
>> + break;
>> case 0xC0000000:
>> *eax = env->cpuid_xlevel2;
>> *ebx = 0;
>> @@ -4036,10 +4067,15 @@ static void x86_cpu_expand_features(X86CPU *cpu, Error **errp)
>> x86_cpu_adjust_feat_level(cpu, FEAT_C000_0001_EDX);
>> x86_cpu_adjust_feat_level(cpu, FEAT_SVM);
>> x86_cpu_adjust_feat_level(cpu, FEAT_XSAVE);
>> + x86_cpu_adjust_feat_level(cpu, FEAT_MEM_ENCRYPT);
>> /* SVM requires CPUID[0x8000000A] */
>> if (env->features[FEAT_8000_0001_ECX] & CPUID_EXT3_SVM) {
>> x86_cpu_adjust_level(cpu, &env->cpuid_min_xlevel, 0x8000000A);
>> }
>> + /* SEV requires CPUID[0x8000001F] */
>> + if ((env->features[FEAT_MEM_ENCRYPT] & CPUID_8000_001F_EAX_SEV)) {
>> + x86_cpu_adjust_level(cpu, &env->cpuid_min_xlevel, 0x8000001F);
>> + }
>> }
>>
>> /* Set cpuid_*level* based on cpuid_min_*level, if not explicitly set */
>> diff --git a/target/i386/cpu.h b/target/i386/cpu.h
>> index f91e37d25dea..f7a0ab20fdd1 100644
>> --- a/target/i386/cpu.h
>> +++ b/target/i386/cpu.h
>> @@ -483,6 +483,7 @@ typedef enum FeatureWord {
>> FEAT_6_EAX, /* CPUID[6].EAX */
>> FEAT_XSAVE_COMP_LO, /* CPUID[EAX=0xd,ECX=0].EAX */
>> FEAT_XSAVE_COMP_HI, /* CPUID[EAX=0xd,ECX=0].EDX */
>> + FEAT_MEM_ENCRYPT, /* CPUID[8000_001F].EAX */
>> FEATURE_WORDS,
>> } FeatureWord;
>>
>> @@ -679,6 +680,11 @@ typedef uint32_t FeatureWordArray[FEATURE_WORDS];
>>
>> #define CPUID_6_EAX_ARAT (1U << 2)
>>
>> +#define CPUID_8000_001F_EAX_SME (1U << 0) /* SME */
>> +#define CPUID_8000_001F_EAX_SEV (1U << 1) /* SEV */
>> +#define CPUID_8000_001F_EAX_PAGE_FLUSH_MSR (1U << 2) /* Page flush MSR */
>> +#define CPUID_8000_001F_EAX_SEV_ES (1U << 3) /* SEV-ES */
>> +
>> /* CPUID[0x80000007].EDX flags: */
>> #define CPUID_APM_INVTSC (1U << 8)
>>
>> --
>> 2.9.5
>>
> --
> Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [PATCH v6 02/23] exec: add ram_debug_ops support
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
@ 2018-01-30 21:59 ` Edgar E. Iglesias
-1 siblings, 0 replies; 118+ messages in thread
From: Edgar E. Iglesias @ 2018-01-30 21:59 UTC (permalink / raw)
To: Brijesh Singh
Cc: qemu-devel, kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Dr. David Alan Gilbert, Eduardo Habkost,
Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Peter Crosthwaite, Richard Henderson
On Mon, Jan 29, 2018 at 11:41:11AM -0600, Brijesh Singh wrote:
> Currently, the guest memory access for the debug purpose is performed
> using the memcpy(). Lets extend the 'struct MemoryRegion' to include
> ram_debug_ops callbacks. The ram_debug_ops can be used to override
> memcpy() with something else.
>
> The feature can be used by encrypted guest -- which can register
> callbacks to override memcpy() with memory encryption/decryption APIs.
>
> a typical usage:
>
> mem_read(uint8_t *dst, uint8_t *src, uint32_t len, MemTxAttrs *attrs);
> mem_write(uint8_t *dst, uint8_t *src, uint32_t len, MemTxAttrs *attrs);
>
> MemoryRegionRAMReadWriteOps ops;
> ops.read = mem_read;
> ops.write = mem_write;
Hi,
Do these really need to be RAM specific (ram_debug_ops -> debug_ops) ?
I was hoping a similar infrastructure could be used for MMIO
debug accesses.
Best regards,
Edgar
>
> memory_region_init_ram(mem, NULL, "memory", size, NULL);
> memory_region_set_ram_debug_ops(mem, ops);
>
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Cc: Peter Crosthwaite <crosthwaite.peter@gmail.com>
> Cc: Richard Henderson <rth@twiddle.net>
> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
> ---
> exec.c | 66 ++++++++++++++++++++++++++++++++++++++-------------
> include/exec/memory.h | 27 +++++++++++++++++++++
> 2 files changed, 77 insertions(+), 16 deletions(-)
>
> diff --git a/exec.c b/exec.c
> index 629a5083851d..1919052b7385 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -3050,7 +3050,11 @@ static MemTxResult flatview_write_continue(FlatView *fv, hwaddr addr,
> } else {
> /* RAM case */
> ptr = qemu_ram_ptr_length(mr->ram_block, addr1, &l, false);
> - memcpy(ptr, buf, l);
> + if (attrs.debug && mr->ram_debug_ops) {
> + mr->ram_debug_ops->write(ptr, buf, l, attrs);
> + } else {
> + memcpy(ptr, buf, l);
> + }
> invalidate_and_set_dirty(mr, addr1, l);
> }
>
> @@ -3148,7 +3152,11 @@ MemTxResult flatview_read_continue(FlatView *fv, hwaddr addr,
> } else {
> /* RAM case */
> ptr = qemu_ram_ptr_length(mr->ram_block, addr1, &l, false);
> - memcpy(buf, ptr, l);
> + if (attrs.debug && mr->ram_debug_ops) {
> + mr->ram_debug_ops->read(buf, ptr, l, attrs);
> + } else {
> + memcpy(buf, ptr, l);
> + }
> }
>
> if (release_lock) {
> @@ -3218,11 +3226,13 @@ void cpu_physical_memory_rw(hwaddr addr, uint8_t *buf,
>
> enum write_rom_type {
> WRITE_DATA,
> + READ_DATA,
> FLUSH_CACHE,
> };
>
> -static inline void cpu_physical_memory_write_rom_internal(AddressSpace *as,
> - hwaddr addr, const uint8_t *buf, int len, enum write_rom_type type)
> +static inline void cpu_physical_memory_rw_internal(AddressSpace *as,
> + hwaddr addr, uint8_t *buf, int len, MemTxAttrs attrs,
> + enum write_rom_type type)
> {
> hwaddr l;
> uint8_t *ptr;
> @@ -3237,12 +3247,33 @@ static inline void cpu_physical_memory_write_rom_internal(AddressSpace *as,
> if (!(memory_region_is_ram(mr) ||
> memory_region_is_romd(mr))) {
> l = memory_access_size(mr, l, addr1);
> + /* Pass MMIO down to address address_space_rw */
> + switch (type) {
> + case READ_DATA:
> + case WRITE_DATA:
> + address_space_rw(as, addr1, attrs, buf, l,
> + type == WRITE_DATA);
> + break;
> + case FLUSH_CACHE:
> + break;
> + }
> } else {
> /* ROM/RAM case */
> ptr = qemu_map_ram_ptr(mr->ram_block, addr1);
> switch (type) {
> + case READ_DATA:
> + if (mr->ram_debug_ops) {
> + mr->ram_debug_ops->read(buf, ptr, l, attrs);
> + } else {
> + memcpy(buf, ptr, l);
> + }
> + break;
> case WRITE_DATA:
> - memcpy(ptr, buf, l);
> + if (mr->ram_debug_ops) {
> + mr->ram_debug_ops->write(ptr, buf, l, attrs);
> + } else {
> + memcpy(ptr, buf, l);
> + }
> invalidate_and_set_dirty(mr, addr1, l);
> break;
> case FLUSH_CACHE:
> @@ -3261,7 +3292,8 @@ static inline void cpu_physical_memory_write_rom_internal(AddressSpace *as,
> void cpu_physical_memory_write_rom(AddressSpace *as, hwaddr addr,
> const uint8_t *buf, int len)
> {
> - cpu_physical_memory_write_rom_internal(as, addr, buf, len, WRITE_DATA);
> + cpu_physical_memory_rw_internal(as, addr, (uint8_t *)buf, len,
> + MEMTXATTRS_UNSPECIFIED, WRITE_DATA);
> }
>
> void cpu_flush_icache_range(hwaddr start, int len)
> @@ -3276,8 +3308,10 @@ void cpu_flush_icache_range(hwaddr start, int len)
> return;
> }
>
> - cpu_physical_memory_write_rom_internal(&address_space_memory,
> - start, NULL, len, FLUSH_CACHE);
> + cpu_physical_memory_rw_internal(&address_space_memory,
> + start, NULL, len,
> + MEMTXATTRS_UNSPECIFIED,
> + FLUSH_CACHE);
> }
>
> typedef struct {
> @@ -3583,6 +3617,7 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
> int l;
> hwaddr phys_addr;
> target_ulong page;
> + int type = is_write ? WRITE_DATA : READ_DATA;
>
> cpu_synchronize_state(cpu);
> while (len > 0) {
> @@ -3592,6 +3627,10 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
> page = addr & TARGET_PAGE_MASK;
> phys_addr = cpu_get_phys_page_attrs_debug(cpu, page, &attrs);
> asidx = cpu_asidx_from_attrs(cpu, attrs);
> +
> + /* set debug attrs to indicate memory access is from the debugger */
> + attrs.debug = 1;
> +
> /* if no physical page mapped, return an error */
> if (phys_addr == -1)
> return -1;
> @@ -3599,14 +3638,9 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
> if (l > len)
> l = len;
> phys_addr += (addr & ~TARGET_PAGE_MASK);
> - if (is_write) {
> - cpu_physical_memory_write_rom(cpu->cpu_ases[asidx].as,
> - phys_addr, buf, l);
> - } else {
> - address_space_rw(cpu->cpu_ases[asidx].as, phys_addr,
> - MEMTXATTRS_UNSPECIFIED,
> - buf, l, 0);
> - }
> + cpu_physical_memory_rw_internal(cpu->cpu_ases[asidx].as,
> + phys_addr, buf, l, attrs,
> + type);
> len -= l;
> buf += l;
> addr += l;
> diff --git a/include/exec/memory.h b/include/exec/memory.h
> index 07c5d6d59796..4d027fffeebf 100644
> --- a/include/exec/memory.h
> +++ b/include/exec/memory.h
> @@ -215,6 +215,18 @@ typedef struct IOMMUMemoryRegionClass {
> typedef struct CoalescedMemoryRange CoalescedMemoryRange;
> typedef struct MemoryRegionIoeventfd MemoryRegionIoeventfd;
>
> +/* Memory Region RAM debug callback */
> +typedef struct MemoryRegionRAMReadWriteOps MemoryRegionRAMReadWriteOps;
> +
> +struct MemoryRegionRAMReadWriteOps {
> + /* Write data into guest memory */
> + int (*write) (uint8_t *dest, const uint8_t *src,
> + uint32_t len, MemTxAttrs attrs);
> + /* Read data from guest memory */
> + int (*read) (uint8_t *dest, const uint8_t *src,
> + uint32_t len, MemTxAttrs attrs);
> +};
> +
> struct MemoryRegion {
> Object parent_obj;
>
> @@ -254,6 +266,7 @@ struct MemoryRegion {
> const char *name;
> unsigned ioeventfd_nb;
> MemoryRegionIoeventfd *ioeventfds;
> + const MemoryRegionRAMReadWriteOps *ram_debug_ops;
> };
>
> struct IOMMUMemoryRegion {
> @@ -624,6 +637,20 @@ void memory_region_init_rom_device_nomigrate(MemoryRegion *mr,
> Error **errp);
>
> /**
> + * memory_region_set_ram_debug_ops: Set debug access ops for a given memory region
> + *
> + * @mr: the #MemoryRegion to be initialized
> + * @ops: a function that will be used for when accessing @target region during
> + * debug
> + */
> +static inline void
> +memory_region_set_ram_debug_ops(MemoryRegion *mr,
> + const MemoryRegionRAMReadWriteOps *ops)
> +{
> + mr->ram_debug_ops = ops;
> +}
> +
> +/**
> * memory_region_init_reservation: Initialize a memory region that reserves
> * I/O space.
> *
> --
> 2.9.5
>
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 02/23] exec: add ram_debug_ops support
@ 2018-01-30 21:59 ` Edgar E. Iglesias
0 siblings, 0 replies; 118+ messages in thread
From: Edgar E. Iglesias @ 2018-01-30 21:59 UTC (permalink / raw)
To: Brijesh Singh
Cc: qemu-devel, kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Dr. David Alan Gilbert, Eduardo Habkost,
Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Peter Crosthwaite, Richard Henderson
On Mon, Jan 29, 2018 at 11:41:11AM -0600, Brijesh Singh wrote:
> Currently, the guest memory access for the debug purpose is performed
> using the memcpy(). Lets extend the 'struct MemoryRegion' to include
> ram_debug_ops callbacks. The ram_debug_ops can be used to override
> memcpy() with something else.
>
> The feature can be used by encrypted guest -- which can register
> callbacks to override memcpy() with memory encryption/decryption APIs.
>
> a typical usage:
>
> mem_read(uint8_t *dst, uint8_t *src, uint32_t len, MemTxAttrs *attrs);
> mem_write(uint8_t *dst, uint8_t *src, uint32_t len, MemTxAttrs *attrs);
>
> MemoryRegionRAMReadWriteOps ops;
> ops.read = mem_read;
> ops.write = mem_write;
Hi,
Do these really need to be RAM specific (ram_debug_ops -> debug_ops) ?
I was hoping a similar infrastructure could be used for MMIO
debug accesses.
Best regards,
Edgar
>
> memory_region_init_ram(mem, NULL, "memory", size, NULL);
> memory_region_set_ram_debug_ops(mem, ops);
>
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Cc: Peter Crosthwaite <crosthwaite.peter@gmail.com>
> Cc: Richard Henderson <rth@twiddle.net>
> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
> ---
> exec.c | 66 ++++++++++++++++++++++++++++++++++++++-------------
> include/exec/memory.h | 27 +++++++++++++++++++++
> 2 files changed, 77 insertions(+), 16 deletions(-)
>
> diff --git a/exec.c b/exec.c
> index 629a5083851d..1919052b7385 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -3050,7 +3050,11 @@ static MemTxResult flatview_write_continue(FlatView *fv, hwaddr addr,
> } else {
> /* RAM case */
> ptr = qemu_ram_ptr_length(mr->ram_block, addr1, &l, false);
> - memcpy(ptr, buf, l);
> + if (attrs.debug && mr->ram_debug_ops) {
> + mr->ram_debug_ops->write(ptr, buf, l, attrs);
> + } else {
> + memcpy(ptr, buf, l);
> + }
> invalidate_and_set_dirty(mr, addr1, l);
> }
>
> @@ -3148,7 +3152,11 @@ MemTxResult flatview_read_continue(FlatView *fv, hwaddr addr,
> } else {
> /* RAM case */
> ptr = qemu_ram_ptr_length(mr->ram_block, addr1, &l, false);
> - memcpy(buf, ptr, l);
> + if (attrs.debug && mr->ram_debug_ops) {
> + mr->ram_debug_ops->read(buf, ptr, l, attrs);
> + } else {
> + memcpy(buf, ptr, l);
> + }
> }
>
> if (release_lock) {
> @@ -3218,11 +3226,13 @@ void cpu_physical_memory_rw(hwaddr addr, uint8_t *buf,
>
> enum write_rom_type {
> WRITE_DATA,
> + READ_DATA,
> FLUSH_CACHE,
> };
>
> -static inline void cpu_physical_memory_write_rom_internal(AddressSpace *as,
> - hwaddr addr, const uint8_t *buf, int len, enum write_rom_type type)
> +static inline void cpu_physical_memory_rw_internal(AddressSpace *as,
> + hwaddr addr, uint8_t *buf, int len, MemTxAttrs attrs,
> + enum write_rom_type type)
> {
> hwaddr l;
> uint8_t *ptr;
> @@ -3237,12 +3247,33 @@ static inline void cpu_physical_memory_write_rom_internal(AddressSpace *as,
> if (!(memory_region_is_ram(mr) ||
> memory_region_is_romd(mr))) {
> l = memory_access_size(mr, l, addr1);
> + /* Pass MMIO down to address address_space_rw */
> + switch (type) {
> + case READ_DATA:
> + case WRITE_DATA:
> + address_space_rw(as, addr1, attrs, buf, l,
> + type == WRITE_DATA);
> + break;
> + case FLUSH_CACHE:
> + break;
> + }
> } else {
> /* ROM/RAM case */
> ptr = qemu_map_ram_ptr(mr->ram_block, addr1);
> switch (type) {
> + case READ_DATA:
> + if (mr->ram_debug_ops) {
> + mr->ram_debug_ops->read(buf, ptr, l, attrs);
> + } else {
> + memcpy(buf, ptr, l);
> + }
> + break;
> case WRITE_DATA:
> - memcpy(ptr, buf, l);
> + if (mr->ram_debug_ops) {
> + mr->ram_debug_ops->write(ptr, buf, l, attrs);
> + } else {
> + memcpy(ptr, buf, l);
> + }
> invalidate_and_set_dirty(mr, addr1, l);
> break;
> case FLUSH_CACHE:
> @@ -3261,7 +3292,8 @@ static inline void cpu_physical_memory_write_rom_internal(AddressSpace *as,
> void cpu_physical_memory_write_rom(AddressSpace *as, hwaddr addr,
> const uint8_t *buf, int len)
> {
> - cpu_physical_memory_write_rom_internal(as, addr, buf, len, WRITE_DATA);
> + cpu_physical_memory_rw_internal(as, addr, (uint8_t *)buf, len,
> + MEMTXATTRS_UNSPECIFIED, WRITE_DATA);
> }
>
> void cpu_flush_icache_range(hwaddr start, int len)
> @@ -3276,8 +3308,10 @@ void cpu_flush_icache_range(hwaddr start, int len)
> return;
> }
>
> - cpu_physical_memory_write_rom_internal(&address_space_memory,
> - start, NULL, len, FLUSH_CACHE);
> + cpu_physical_memory_rw_internal(&address_space_memory,
> + start, NULL, len,
> + MEMTXATTRS_UNSPECIFIED,
> + FLUSH_CACHE);
> }
>
> typedef struct {
> @@ -3583,6 +3617,7 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
> int l;
> hwaddr phys_addr;
> target_ulong page;
> + int type = is_write ? WRITE_DATA : READ_DATA;
>
> cpu_synchronize_state(cpu);
> while (len > 0) {
> @@ -3592,6 +3627,10 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
> page = addr & TARGET_PAGE_MASK;
> phys_addr = cpu_get_phys_page_attrs_debug(cpu, page, &attrs);
> asidx = cpu_asidx_from_attrs(cpu, attrs);
> +
> + /* set debug attrs to indicate memory access is from the debugger */
> + attrs.debug = 1;
> +
> /* if no physical page mapped, return an error */
> if (phys_addr == -1)
> return -1;
> @@ -3599,14 +3638,9 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
> if (l > len)
> l = len;
> phys_addr += (addr & ~TARGET_PAGE_MASK);
> - if (is_write) {
> - cpu_physical_memory_write_rom(cpu->cpu_ases[asidx].as,
> - phys_addr, buf, l);
> - } else {
> - address_space_rw(cpu->cpu_ases[asidx].as, phys_addr,
> - MEMTXATTRS_UNSPECIFIED,
> - buf, l, 0);
> - }
> + cpu_physical_memory_rw_internal(cpu->cpu_ases[asidx].as,
> + phys_addr, buf, l, attrs,
> + type);
> len -= l;
> buf += l;
> addr += l;
> diff --git a/include/exec/memory.h b/include/exec/memory.h
> index 07c5d6d59796..4d027fffeebf 100644
> --- a/include/exec/memory.h
> +++ b/include/exec/memory.h
> @@ -215,6 +215,18 @@ typedef struct IOMMUMemoryRegionClass {
> typedef struct CoalescedMemoryRange CoalescedMemoryRange;
> typedef struct MemoryRegionIoeventfd MemoryRegionIoeventfd;
>
> +/* Memory Region RAM debug callback */
> +typedef struct MemoryRegionRAMReadWriteOps MemoryRegionRAMReadWriteOps;
> +
> +struct MemoryRegionRAMReadWriteOps {
> + /* Write data into guest memory */
> + int (*write) (uint8_t *dest, const uint8_t *src,
> + uint32_t len, MemTxAttrs attrs);
> + /* Read data from guest memory */
> + int (*read) (uint8_t *dest, const uint8_t *src,
> + uint32_t len, MemTxAttrs attrs);
> +};
> +
> struct MemoryRegion {
> Object parent_obj;
>
> @@ -254,6 +266,7 @@ struct MemoryRegion {
> const char *name;
> unsigned ioeventfd_nb;
> MemoryRegionIoeventfd *ioeventfds;
> + const MemoryRegionRAMReadWriteOps *ram_debug_ops;
> };
>
> struct IOMMUMemoryRegion {
> @@ -624,6 +637,20 @@ void memory_region_init_rom_device_nomigrate(MemoryRegion *mr,
> Error **errp);
>
> /**
> + * memory_region_set_ram_debug_ops: Set debug access ops for a given memory region
> + *
> + * @mr: the #MemoryRegion to be initialized
> + * @ops: a function that will be used for when accessing @target region during
> + * debug
> + */
> +static inline void
> +memory_region_set_ram_debug_ops(MemoryRegion *mr,
> + const MemoryRegionRAMReadWriteOps *ops)
> +{
> + mr->ram_debug_ops = ops;
> +}
> +
> +/**
> * memory_region_init_reservation: Initialize a memory region that reserves
> * I/O space.
> *
> --
> 2.9.5
>
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [PATCH v6 01/23] memattrs: add debug attribute
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
@ 2018-01-30 21:59 ` Edgar E. Iglesias
-1 siblings, 0 replies; 118+ messages in thread
From: Edgar E. Iglesias @ 2018-01-30 21:59 UTC (permalink / raw)
To: Brijesh Singh
Cc: qemu-devel, kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Dr. David Alan Gilbert, Eduardo Habkost,
Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Alistair Francis
On Mon, Jan 29, 2018 at 11:41:10AM -0600, Brijesh Singh wrote:
> Extend the MemTxAttrs to include 'debug' flag. The flag can be used as
> general indicator that operation was triggered by the debugger.
>
> Later in the patch series we set the debug=1 when issuing a memory access
> from the gdbstub or HMP commands. This patch is prerequisite to support
> debugging the encrypted guest. If we see request with debug=1 then we
> will need to use encryption APIs to access the guest memory.
>
> Cc: Alistair Francis <alistair.francis@xilinx.com>
> Cc: Peter Maydell <peter.maydell@linaro.org>
> Cc: Edgar E. Iglesias" <edgar.iglesias@xilinx.com>
> Cc: Richard Henderson <richard.henderson@linaro.org>
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
> ---
> include/exec/memattrs.h | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/include/exec/memattrs.h b/include/exec/memattrs.h
> index d4a16420984b..08099e4f7e72 100644
> --- a/include/exec/memattrs.h
> +++ b/include/exec/memattrs.h
> @@ -37,6 +37,8 @@ typedef struct MemTxAttrs {
> unsigned int user:1;
> /* Requester ID (for MSI for example) */
> unsigned int requester_id:16;
> + /* Memory access request from the debugger */
> + unsigned int debug:1;
> } MemTxAttrs;
>
> /* Bus masters which don't specify any attributes will get this,
> --
> 2.9.5
>
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 01/23] memattrs: add debug attribute
@ 2018-01-30 21:59 ` Edgar E. Iglesias
0 siblings, 0 replies; 118+ messages in thread
From: Edgar E. Iglesias @ 2018-01-30 21:59 UTC (permalink / raw)
To: Brijesh Singh
Cc: qemu-devel, kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Dr. David Alan Gilbert, Eduardo Habkost,
Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Alistair Francis
On Mon, Jan 29, 2018 at 11:41:10AM -0600, Brijesh Singh wrote:
> Extend the MemTxAttrs to include 'debug' flag. The flag can be used as
> general indicator that operation was triggered by the debugger.
>
> Later in the patch series we set the debug=1 when issuing a memory access
> from the gdbstub or HMP commands. This patch is prerequisite to support
> debugging the encrypted guest. If we see request with debug=1 then we
> will need to use encryption APIs to access the guest memory.
>
> Cc: Alistair Francis <alistair.francis@xilinx.com>
> Cc: Peter Maydell <peter.maydell@linaro.org>
> Cc: Edgar E. Iglesias" <edgar.iglesias@xilinx.com>
> Cc: Richard Henderson <richard.henderson@linaro.org>
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
> ---
> include/exec/memattrs.h | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/include/exec/memattrs.h b/include/exec/memattrs.h
> index d4a16420984b..08099e4f7e72 100644
> --- a/include/exec/memattrs.h
> +++ b/include/exec/memattrs.h
> @@ -37,6 +37,8 @@ typedef struct MemTxAttrs {
> unsigned int user:1;
> /* Requester ID (for MSI for example) */
> unsigned int requester_id:16;
> + /* Memory access request from the debugger */
> + unsigned int debug:1;
> } MemTxAttrs;
>
> /* Bus masters which don't specify any attributes will get this,
> --
> 2.9.5
>
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [PATCH v6 18/23] sev: emit the SEV_MEASUREMENT event
2018-01-30 20:08 ` [Qemu-devel] " Dr. David Alan Gilbert
@ 2018-01-30 22:13 ` Brijesh Singh
-1 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-30 22:13 UTC (permalink / raw)
To: Dr. David Alan Gilbert
Cc: brijesh.singh, qemu-devel, kvm, Paolo Bonzini, Tom Lendacky,
Peter Maydell, Richard Henderson, Edgar E. Iglesias,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange
On 1/30/18 2:08 PM, Dr. David Alan Gilbert wrote:
> * Brijesh Singh (brijesh.singh@amd.com) wrote:
>> During machine creation we encrypted the guest bios image, the
>> LAUNCH_MEASURE command can be used to retrieve the measurement of
>> the encrypted memory region. Emit the SEV_MEASUREMENT event so that
>> libvirt can grab the measurement value as soon as we are done with
>> creating the encrypted machine.
> Can you ust clarify what happens if the libvirt has disconnected and
> reconnected to qemu and so didn't see the event? Can the reconnecting
> libvirt query it and find out it's ready/not ready yet?
Dave,
I have not looked into details between libvirt and qemu interaction to
comment how and when the events will be delivered. Recently, one of my
colleague was implementing libvirt interface for the SEV guest and ran
into somewhat a similar challenge and posted question on libvirt mailing
list [1].
In previous discussion on qemu mailing list, we agreed to implement SEV
MEASUREMENT event which can be seen by libvirt. That's what this patch
is doing.
But during the libvirt implementation it seems that qemu monitor
silently drops all the events before it get the first qmp_capabilities
command. At a quick glance it seems on reconnect, libvirt issues
qmp_capabilities command and any event issued before the
qmp_capabilities command will never to delivered to libvirt. we are
looking for help from libvirt/qemu monitor experts on how we solve this
problem. Our goal is to provide the measurement to libvirt before
libvirt issues "continue" command. Since event can't be seen by libvirt
before it resumes the guest hence I was wondering if we should we should
drop the SEV measurement event and consider adding a new QMP command to
query the SEV measurement.
[1] https://www.redhat.com/archives/libvir-list/2018-January/msg00602.html
> Dave
>
>> Cc: Daniel P. Berrange <berrange@redhat.com>
>> Cc: Paolo Bonzini <pbonzini@redhat.com>
>> Cc: kvm@vger.kernel.org
>> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
>> ---
>> accel/kvm/sev.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++
>> accel/kvm/trace-events | 1 +
>> include/sysemu/sev.h | 1 +
>> 3 files changed, 60 insertions(+)
>>
>> diff --git a/accel/kvm/sev.c b/accel/kvm/sev.c
>> index 1f757df725df..b78cf3144b1d 100644
>> --- a/accel/kvm/sev.c
>> +++ b/accel/kvm/sev.c
>> @@ -19,11 +19,13 @@
>> #include "sysemu/sev.h"
>> #include "sysemu/sysemu.h"
>> #include "trace.h"
>> +#include "qapi-event.h"
>>
>> #define DEFAULT_GUEST_POLICY 0x1 /* disable debug */
>> #define DEFAULT_SEV_DEVICE "/dev/sev"
>>
>> static int sev_fd;
>> +static SEVState *sev_state;
>>
>> #define SEV_FW_MAX_ERROR 0x17
>>
>> @@ -418,6 +420,59 @@ err:
>> return ret;
>> }
>>
>> +static void
>> +sev_launch_get_measure(Notifier *notifier, void *unused)
>> +{
>> + int ret, error;
>> + guchar *data;
>> + SEVState *s = sev_state;
>> + struct kvm_sev_launch_measure *measurement;
>> +
>> + measurement = g_malloc0(sizeof(*measurement));
>> + if (!measurement) {
>> + return;
>> + }
>> +
>> + /* query the measurement blob length */
>> + ret = sev_ioctl(KVM_SEV_LAUNCH_MEASURE, measurement, &error);
>> + if (!measurement->len) {
>> + error_report("%s: LAUNCH_MEASURE ret=%d fw_error=%d '%s'",
>> + __func__, ret, error, fw_error_to_str(errno));
>> + goto free_measurement;
>> + }
>> +
>> + data = g_malloc(measurement->len);
>> + if (s->measurement) {
>> + goto free_data;
>> + }
>> +
>> + measurement->uaddr = (unsigned long)data;
>> +
>> + /* get the measurement blob */
>> + ret = sev_ioctl(KVM_SEV_LAUNCH_MEASURE, measurement, &error);
>> + if (ret) {
>> + error_report("%s: LAUNCH_MEASURE ret=%d fw_error=%d '%s'",
>> + __func__, ret, error, fw_error_to_str(errno));
>> + goto free_data;
>> + }
>> +
>> + sev_set_guest_state(SEV_STATE_SECRET);
>> +
>> + /* encode the measurement value and emit the event */
>> + s->measurement = g_base64_encode(data, measurement->len);
>> + trace_kvm_sev_launch_measurement(s->measurement);
>> + qapi_event_send_sev_measurement(s->measurement, &error_abort);
>> +
>> +free_data:
>> + g_free(data);
>> +free_measurement:
>> + g_free(measurement);
>> +}
>> +
>> +static Notifier sev_machine_done_notify = {
>> + .notify = sev_launch_get_measure,
>> +};
>> +
>> void *
>> sev_guest_init(const char *id)
>> {
>> @@ -461,6 +516,9 @@ sev_guest_init(const char *id)
>> }
>>
>> ram_block_notifier_add(&sev_ram_notifier);
>> + qemu_add_machine_init_done_notifier(&sev_machine_done_notify);
>> +
>> + sev_state = s;
>>
>> return s;
>> err:
>> diff --git a/accel/kvm/trace-events b/accel/kvm/trace-events
>> index c55546f36a25..51df5113ad07 100644
>> --- a/accel/kvm/trace-events
>> +++ b/accel/kvm/trace-events
>> @@ -20,3 +20,4 @@ kvm_memcrypt_unregister_region(void *addr, size_t len) "addr %p len 0x%lu"
>> kvm_sev_change_state(char *old, char *new) "%s -> %s"
>> kvm_sev_launch_start(int policy, void *session, void *pdh) "policy 0x%x session %p pdh %p"
>> kvm_sev_launch_update_data(void *addr, uint64_t len) "addr %p len 0x%" PRIu64
>> +kvm_sev_launch_measurement(const char *value) "data %s"
>> diff --git a/include/sysemu/sev.h b/include/sysemu/sev.h
>> index 839800efdbbf..572120c865ea 100644
>> --- a/include/sysemu/sev.h
>> +++ b/include/sysemu/sev.h
>> @@ -63,6 +63,7 @@ typedef enum {
>>
>> struct SEVState {
>> QSevGuestInfo *sev_info;
>> + gchar *measurement;
>> };
>>
>> typedef struct SEVState SEVState;
>> --
>> 2.9.5
>>
> --
> Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 18/23] sev: emit the SEV_MEASUREMENT event
@ 2018-01-30 22:13 ` Brijesh Singh
0 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-30 22:13 UTC (permalink / raw)
To: Dr. David Alan Gilbert
Cc: brijesh.singh, qemu-devel, kvm, Paolo Bonzini, Tom Lendacky,
Peter Maydell, Richard Henderson, Edgar E. Iglesias,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange
On 1/30/18 2:08 PM, Dr. David Alan Gilbert wrote:
> * Brijesh Singh (brijesh.singh@amd.com) wrote:
>> During machine creation we encrypted the guest bios image, the
>> LAUNCH_MEASURE command can be used to retrieve the measurement of
>> the encrypted memory region. Emit the SEV_MEASUREMENT event so that
>> libvirt can grab the measurement value as soon as we are done with
>> creating the encrypted machine.
> Can you ust clarify what happens if the libvirt has disconnected and
> reconnected to qemu and so didn't see the event? Can the reconnecting
> libvirt query it and find out it's ready/not ready yet?
Dave,
I have not looked into details between libvirt and qemu interaction to
comment how and when the events will be delivered. Recently, one of my
colleague was implementing libvirt interface for the SEV guest and ran
into somewhat a similar challenge and posted question on libvirt mailing
list [1].
In previous discussion on qemu mailing list, we agreed to implement SEV
MEASUREMENT event which can be seen by libvirt. That's what this patch
is doing.
But during the libvirt implementation it seems that qemu monitor
silently drops all the events before it get the first qmp_capabilities
command. At a quick glance it seems on reconnect, libvirt issues
qmp_capabilities command and any event issued before the
qmp_capabilities command will never to delivered to libvirt. we are
looking for help from libvirt/qemu monitor experts on how we solve this
problem. Our goal is to provide the measurement to libvirt before
libvirt issues "continue" command. Since event can't be seen by libvirt
before it resumes the guest hence I was wondering if we should we should
drop the SEV measurement event and consider adding a new QMP command to
query the SEV measurement.
[1] https://www.redhat.com/archives/libvir-list/2018-January/msg00602.html
> Dave
>
>> Cc: Daniel P. Berrange <berrange@redhat.com>
>> Cc: Paolo Bonzini <pbonzini@redhat.com>
>> Cc: kvm@vger.kernel.org
>> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
>> ---
>> accel/kvm/sev.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++
>> accel/kvm/trace-events | 1 +
>> include/sysemu/sev.h | 1 +
>> 3 files changed, 60 insertions(+)
>>
>> diff --git a/accel/kvm/sev.c b/accel/kvm/sev.c
>> index 1f757df725df..b78cf3144b1d 100644
>> --- a/accel/kvm/sev.c
>> +++ b/accel/kvm/sev.c
>> @@ -19,11 +19,13 @@
>> #include "sysemu/sev.h"
>> #include "sysemu/sysemu.h"
>> #include "trace.h"
>> +#include "qapi-event.h"
>>
>> #define DEFAULT_GUEST_POLICY 0x1 /* disable debug */
>> #define DEFAULT_SEV_DEVICE "/dev/sev"
>>
>> static int sev_fd;
>> +static SEVState *sev_state;
>>
>> #define SEV_FW_MAX_ERROR 0x17
>>
>> @@ -418,6 +420,59 @@ err:
>> return ret;
>> }
>>
>> +static void
>> +sev_launch_get_measure(Notifier *notifier, void *unused)
>> +{
>> + int ret, error;
>> + guchar *data;
>> + SEVState *s = sev_state;
>> + struct kvm_sev_launch_measure *measurement;
>> +
>> + measurement = g_malloc0(sizeof(*measurement));
>> + if (!measurement) {
>> + return;
>> + }
>> +
>> + /* query the measurement blob length */
>> + ret = sev_ioctl(KVM_SEV_LAUNCH_MEASURE, measurement, &error);
>> + if (!measurement->len) {
>> + error_report("%s: LAUNCH_MEASURE ret=%d fw_error=%d '%s'",
>> + __func__, ret, error, fw_error_to_str(errno));
>> + goto free_measurement;
>> + }
>> +
>> + data = g_malloc(measurement->len);
>> + if (s->measurement) {
>> + goto free_data;
>> + }
>> +
>> + measurement->uaddr = (unsigned long)data;
>> +
>> + /* get the measurement blob */
>> + ret = sev_ioctl(KVM_SEV_LAUNCH_MEASURE, measurement, &error);
>> + if (ret) {
>> + error_report("%s: LAUNCH_MEASURE ret=%d fw_error=%d '%s'",
>> + __func__, ret, error, fw_error_to_str(errno));
>> + goto free_data;
>> + }
>> +
>> + sev_set_guest_state(SEV_STATE_SECRET);
>> +
>> + /* encode the measurement value and emit the event */
>> + s->measurement = g_base64_encode(data, measurement->len);
>> + trace_kvm_sev_launch_measurement(s->measurement);
>> + qapi_event_send_sev_measurement(s->measurement, &error_abort);
>> +
>> +free_data:
>> + g_free(data);
>> +free_measurement:
>> + g_free(measurement);
>> +}
>> +
>> +static Notifier sev_machine_done_notify = {
>> + .notify = sev_launch_get_measure,
>> +};
>> +
>> void *
>> sev_guest_init(const char *id)
>> {
>> @@ -461,6 +516,9 @@ sev_guest_init(const char *id)
>> }
>>
>> ram_block_notifier_add(&sev_ram_notifier);
>> + qemu_add_machine_init_done_notifier(&sev_machine_done_notify);
>> +
>> + sev_state = s;
>>
>> return s;
>> err:
>> diff --git a/accel/kvm/trace-events b/accel/kvm/trace-events
>> index c55546f36a25..51df5113ad07 100644
>> --- a/accel/kvm/trace-events
>> +++ b/accel/kvm/trace-events
>> @@ -20,3 +20,4 @@ kvm_memcrypt_unregister_region(void *addr, size_t len) "addr %p len 0x%lu"
>> kvm_sev_change_state(char *old, char *new) "%s -> %s"
>> kvm_sev_launch_start(int policy, void *session, void *pdh) "policy 0x%x session %p pdh %p"
>> kvm_sev_launch_update_data(void *addr, uint64_t len) "addr %p len 0x%" PRIu64
>> +kvm_sev_launch_measurement(const char *value) "data %s"
>> diff --git a/include/sysemu/sev.h b/include/sysemu/sev.h
>> index 839800efdbbf..572120c865ea 100644
>> --- a/include/sysemu/sev.h
>> +++ b/include/sysemu/sev.h
>> @@ -63,6 +63,7 @@ typedef enum {
>>
>> struct SEVState {
>> QSevGuestInfo *sev_info;
>> + gchar *measurement;
>> };
>>
>> typedef struct SEVState SEVState;
>> --
>> 2.9.5
>>
> --
> Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [PATCH v6 05/23] target/i386: add memory encryption feature cpuid support
2018-01-30 21:46 ` [Qemu-devel] " Brijesh Singh
@ 2018-01-30 22:15 ` Brijesh Singh
-1 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-30 22:15 UTC (permalink / raw)
To: Dr. David Alan Gilbert
Cc: brijesh.singh, qemu-devel, kvm, Paolo Bonzini, Tom Lendacky,
Peter Maydell, Richard Henderson, Edgar E. Iglesias,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Richard Henderson
On 1/30/18 3:46 PM, Brijesh Singh wrote:
>
> On 1/30/18 11:49 AM, Dr. David Alan Gilbert wrote:
>> * Brijesh Singh (brijesh.singh@amd.com) wrote:
>>> AMD EPYC processors support memory encryption feature. The feature
>>> is reported through CPUID 8000_001F[EAX].
>>>
>>> Fn8000_001F [EAX]:
>>> Bit 0 Secure Memory Encryption (SME) supported
>>> Bit 1 Secure Encrypted Virtualization (SEV) supported
>>> Bit 2 Page flush MSR supported
>>> Bit 3 Ecrypted State (SEV-ES) support
>>>
>>> when memory encryption feature is reported, CPUID 8000_001F[EBX] should
>>> provide additional information regarding the feature (such as which page
>>> table bit is used to mark pages as encrypted etc). The information in EBX
>>> and ECX may vary from one family to another hence we use the host cpuid
>>> to populate the EBX information.
>> That's going to make it interesting for migration. If the guest needs
>> to know that C-bit position then you presumably can't migrate between
>> those two host types, but we wouldn't have anything that currently
>> stops us.
>> We already have similar problems with variations in physical address
>> size but normally get away with that, especially on smaller VMs.
> Dave,
>
> While building the page tables guest need to know the C-bit position.
> The C-bit position in the guest is same as C-bit position on the host.
> For migration case, we should be able to migrate SEV guest on same host
> type (i.e all EPYC and Ryzen CPUs are based on family 17 and we should
> be okay migrating the SEV guests among those host types). Since C-bit
> position is not fixed hence migrating to different host family will be
> an issue.
One small correct, Ryzen CPUs do not support SEV feature hence we will
not able migrate SEV guest from EPYC to Ryzen.
> -Brijesh
>> Dave
>>
>>
>>> The details for memory encryption CPUID is available in AMD APM
>>> (http://support.amd.com/TechDocs/24593.pdf) Section 15.34.1
>>> Cc: Paolo Bonzini <pbonzini@redhat.com>
>>> Cc: Richard Henderson <rth@twiddle.net>
>>> Cc: Eduardo Habkost <ehabkost@redhat.com>
>>> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
>>> ---
>>> target/i386/cpu.c | 36 ++++++++++++++++++++++++++++++++++++
>>> target/i386/cpu.h | 6 ++++++
>>> 2 files changed, 42 insertions(+)
>>>
>>> diff --git a/target/i386/cpu.c b/target/i386/cpu.c
>>> index a49d2221adc9..4147eb6e18a9 100644
>>> --- a/target/i386/cpu.c
>>> +++ b/target/i386/cpu.c
>>> @@ -234,6 +234,7 @@ static void x86_cpu_vendor_words2str(char *dst, uint32_t vendor1,
>>> #define TCG_EXT4_FEATURES 0
>>> #define TCG_SVM_FEATURES 0
>>> #define TCG_KVM_FEATURES 0
>>> +#define TCG_MEM_ENCRYPT_FEATURES 0
>>> #define TCG_7_0_EBX_FEATURES (CPUID_7_0_EBX_SMEP | CPUID_7_0_EBX_SMAP | \
>>> CPUID_7_0_EBX_BMI1 | CPUID_7_0_EBX_BMI2 | CPUID_7_0_EBX_ADX | \
>>> CPUID_7_0_EBX_PCOMMIT | CPUID_7_0_EBX_CLFLUSHOPT | \
>>> @@ -545,6 +546,20 @@ static FeatureWordInfo feature_word_info[FEATURE_WORDS] = {
>>> .cpuid_reg = R_EDX,
>>> .tcg_features = ~0U,
>>> },
>>> + [FEAT_MEM_ENCRYPT] = {
>>> + .feat_names = {
>>> + "sme", "sev", "page-flush-msr", "sev-es",
>>> + NULL, NULL, NULL, NULL,
>>> + NULL, NULL, NULL, NULL,
>>> + NULL, NULL, NULL, NULL,
>>> + NULL, NULL, NULL, NULL,
>>> + NULL, NULL, NULL, NULL,
>>> + NULL, NULL, NULL, NULL,
>>> + NULL, NULL, NULL, NULL,
>>> + },
>>> + .cpuid_eax = 0x8000001F, .cpuid_reg = R_EAX,
>>> + .tcg_features = TCG_MEM_ENCRYPT_FEATURES,
>>> + }
>>> };
>>>
>>> typedef struct X86RegisterInfo32 {
>>> @@ -1965,6 +1980,9 @@ static X86CPUDefinition builtin_x86_defs[] = {
>>> CPUID_XSAVE_XGETBV1,
>>> .features[FEAT_6_EAX] =
>>> CPUID_6_EAX_ARAT,
>>> + /* Missing: SEV_ES */
>>> + .features[FEAT_MEM_ENCRYPT] =
>>> + CPUID_8000_001F_EAX_SME | CPUID_8000_001F_EAX_SEV,
>>> .xlevel = 0x8000000A,
>>> .model_id = "AMD EPYC Processor",
>>> },
>>> @@ -3589,6 +3607,19 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count,
>>> *edx = 0;
>>> }
>>> break;
>>> + case 0x8000001F:
>>> + if (env->features[FEAT_MEM_ENCRYPT] & CPUID_8000_001F_EAX_SEV) {
>>> + *eax = env->features[FEAT_MEM_ENCRYPT];
>>> + host_cpuid(0x8000001F, 0, NULL, ebx, NULL, NULL);
>>> + *ecx = 0;
>>> + *edx = 0;
>>> + } else {
>>> + *eax = 0;
>>> + *ebx = 0;
>>> + *ecx = 0;
>>> + *edx = 0;
>>> + }
>>> + break;
>>> case 0xC0000000:
>>> *eax = env->cpuid_xlevel2;
>>> *ebx = 0;
>>> @@ -4036,10 +4067,15 @@ static void x86_cpu_expand_features(X86CPU *cpu, Error **errp)
>>> x86_cpu_adjust_feat_level(cpu, FEAT_C000_0001_EDX);
>>> x86_cpu_adjust_feat_level(cpu, FEAT_SVM);
>>> x86_cpu_adjust_feat_level(cpu, FEAT_XSAVE);
>>> + x86_cpu_adjust_feat_level(cpu, FEAT_MEM_ENCRYPT);
>>> /* SVM requires CPUID[0x8000000A] */
>>> if (env->features[FEAT_8000_0001_ECX] & CPUID_EXT3_SVM) {
>>> x86_cpu_adjust_level(cpu, &env->cpuid_min_xlevel, 0x8000000A);
>>> }
>>> + /* SEV requires CPUID[0x8000001F] */
>>> + if ((env->features[FEAT_MEM_ENCRYPT] & CPUID_8000_001F_EAX_SEV)) {
>>> + x86_cpu_adjust_level(cpu, &env->cpuid_min_xlevel, 0x8000001F);
>>> + }
>>> }
>>>
>>> /* Set cpuid_*level* based on cpuid_min_*level, if not explicitly set */
>>> diff --git a/target/i386/cpu.h b/target/i386/cpu.h
>>> index f91e37d25dea..f7a0ab20fdd1 100644
>>> --- a/target/i386/cpu.h
>>> +++ b/target/i386/cpu.h
>>> @@ -483,6 +483,7 @@ typedef enum FeatureWord {
>>> FEAT_6_EAX, /* CPUID[6].EAX */
>>> FEAT_XSAVE_COMP_LO, /* CPUID[EAX=0xd,ECX=0].EAX */
>>> FEAT_XSAVE_COMP_HI, /* CPUID[EAX=0xd,ECX=0].EDX */
>>> + FEAT_MEM_ENCRYPT, /* CPUID[8000_001F].EAX */
>>> FEATURE_WORDS,
>>> } FeatureWord;
>>>
>>> @@ -679,6 +680,11 @@ typedef uint32_t FeatureWordArray[FEATURE_WORDS];
>>>
>>> #define CPUID_6_EAX_ARAT (1U << 2)
>>>
>>> +#define CPUID_8000_001F_EAX_SME (1U << 0) /* SME */
>>> +#define CPUID_8000_001F_EAX_SEV (1U << 1) /* SEV */
>>> +#define CPUID_8000_001F_EAX_PAGE_FLUSH_MSR (1U << 2) /* Page flush MSR */
>>> +#define CPUID_8000_001F_EAX_SEV_ES (1U << 3) /* SEV-ES */
>>> +
>>> /* CPUID[0x80000007].EDX flags: */
>>> #define CPUID_APM_INVTSC (1U << 8)
>>>
>>> --
>>> 2.9.5
>>>
>> --
>> Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 05/23] target/i386: add memory encryption feature cpuid support
@ 2018-01-30 22:15 ` Brijesh Singh
0 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-30 22:15 UTC (permalink / raw)
To: Dr. David Alan Gilbert
Cc: brijesh.singh, qemu-devel, kvm, Paolo Bonzini, Tom Lendacky,
Peter Maydell, Richard Henderson, Edgar E. Iglesias,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Richard Henderson
On 1/30/18 3:46 PM, Brijesh Singh wrote:
>
> On 1/30/18 11:49 AM, Dr. David Alan Gilbert wrote:
>> * Brijesh Singh (brijesh.singh@amd.com) wrote:
>>> AMD EPYC processors support memory encryption feature. The feature
>>> is reported through CPUID 8000_001F[EAX].
>>>
>>> Fn8000_001F [EAX]:
>>> Bit 0 Secure Memory Encryption (SME) supported
>>> Bit 1 Secure Encrypted Virtualization (SEV) supported
>>> Bit 2 Page flush MSR supported
>>> Bit 3 Ecrypted State (SEV-ES) support
>>>
>>> when memory encryption feature is reported, CPUID 8000_001F[EBX] should
>>> provide additional information regarding the feature (such as which page
>>> table bit is used to mark pages as encrypted etc). The information in EBX
>>> and ECX may vary from one family to another hence we use the host cpuid
>>> to populate the EBX information.
>> That's going to make it interesting for migration. If the guest needs
>> to know that C-bit position then you presumably can't migrate between
>> those two host types, but we wouldn't have anything that currently
>> stops us.
>> We already have similar problems with variations in physical address
>> size but normally get away with that, especially on smaller VMs.
> Dave,
>
> While building the page tables guest need to know the C-bit position.
> The C-bit position in the guest is same as C-bit position on the host.
> For migration case, we should be able to migrate SEV guest on same host
> type (i.e all EPYC and Ryzen CPUs are based on family 17 and we should
> be okay migrating the SEV guests among those host types). Since C-bit
> position is not fixed hence migrating to different host family will be
> an issue.
One small correct, Ryzen CPUs do not support SEV feature hence we will
not able migrate SEV guest from EPYC to Ryzen.
> -Brijesh
>> Dave
>>
>>
>>> The details for memory encryption CPUID is available in AMD APM
>>> (http://support.amd.com/TechDocs/24593.pdf) Section 15.34.1
>>> Cc: Paolo Bonzini <pbonzini@redhat.com>
>>> Cc: Richard Henderson <rth@twiddle.net>
>>> Cc: Eduardo Habkost <ehabkost@redhat.com>
>>> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
>>> ---
>>> target/i386/cpu.c | 36 ++++++++++++++++++++++++++++++++++++
>>> target/i386/cpu.h | 6 ++++++
>>> 2 files changed, 42 insertions(+)
>>>
>>> diff --git a/target/i386/cpu.c b/target/i386/cpu.c
>>> index a49d2221adc9..4147eb6e18a9 100644
>>> --- a/target/i386/cpu.c
>>> +++ b/target/i386/cpu.c
>>> @@ -234,6 +234,7 @@ static void x86_cpu_vendor_words2str(char *dst, uint32_t vendor1,
>>> #define TCG_EXT4_FEATURES 0
>>> #define TCG_SVM_FEATURES 0
>>> #define TCG_KVM_FEATURES 0
>>> +#define TCG_MEM_ENCRYPT_FEATURES 0
>>> #define TCG_7_0_EBX_FEATURES (CPUID_7_0_EBX_SMEP | CPUID_7_0_EBX_SMAP | \
>>> CPUID_7_0_EBX_BMI1 | CPUID_7_0_EBX_BMI2 | CPUID_7_0_EBX_ADX | \
>>> CPUID_7_0_EBX_PCOMMIT | CPUID_7_0_EBX_CLFLUSHOPT | \
>>> @@ -545,6 +546,20 @@ static FeatureWordInfo feature_word_info[FEATURE_WORDS] = {
>>> .cpuid_reg = R_EDX,
>>> .tcg_features = ~0U,
>>> },
>>> + [FEAT_MEM_ENCRYPT] = {
>>> + .feat_names = {
>>> + "sme", "sev", "page-flush-msr", "sev-es",
>>> + NULL, NULL, NULL, NULL,
>>> + NULL, NULL, NULL, NULL,
>>> + NULL, NULL, NULL, NULL,
>>> + NULL, NULL, NULL, NULL,
>>> + NULL, NULL, NULL, NULL,
>>> + NULL, NULL, NULL, NULL,
>>> + NULL, NULL, NULL, NULL,
>>> + },
>>> + .cpuid_eax = 0x8000001F, .cpuid_reg = R_EAX,
>>> + .tcg_features = TCG_MEM_ENCRYPT_FEATURES,
>>> + }
>>> };
>>>
>>> typedef struct X86RegisterInfo32 {
>>> @@ -1965,6 +1980,9 @@ static X86CPUDefinition builtin_x86_defs[] = {
>>> CPUID_XSAVE_XGETBV1,
>>> .features[FEAT_6_EAX] =
>>> CPUID_6_EAX_ARAT,
>>> + /* Missing: SEV_ES */
>>> + .features[FEAT_MEM_ENCRYPT] =
>>> + CPUID_8000_001F_EAX_SME | CPUID_8000_001F_EAX_SEV,
>>> .xlevel = 0x8000000A,
>>> .model_id = "AMD EPYC Processor",
>>> },
>>> @@ -3589,6 +3607,19 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count,
>>> *edx = 0;
>>> }
>>> break;
>>> + case 0x8000001F:
>>> + if (env->features[FEAT_MEM_ENCRYPT] & CPUID_8000_001F_EAX_SEV) {
>>> + *eax = env->features[FEAT_MEM_ENCRYPT];
>>> + host_cpuid(0x8000001F, 0, NULL, ebx, NULL, NULL);
>>> + *ecx = 0;
>>> + *edx = 0;
>>> + } else {
>>> + *eax = 0;
>>> + *ebx = 0;
>>> + *ecx = 0;
>>> + *edx = 0;
>>> + }
>>> + break;
>>> case 0xC0000000:
>>> *eax = env->cpuid_xlevel2;
>>> *ebx = 0;
>>> @@ -4036,10 +4067,15 @@ static void x86_cpu_expand_features(X86CPU *cpu, Error **errp)
>>> x86_cpu_adjust_feat_level(cpu, FEAT_C000_0001_EDX);
>>> x86_cpu_adjust_feat_level(cpu, FEAT_SVM);
>>> x86_cpu_adjust_feat_level(cpu, FEAT_XSAVE);
>>> + x86_cpu_adjust_feat_level(cpu, FEAT_MEM_ENCRYPT);
>>> /* SVM requires CPUID[0x8000000A] */
>>> if (env->features[FEAT_8000_0001_ECX] & CPUID_EXT3_SVM) {
>>> x86_cpu_adjust_level(cpu, &env->cpuid_min_xlevel, 0x8000000A);
>>> }
>>> + /* SEV requires CPUID[0x8000001F] */
>>> + if ((env->features[FEAT_MEM_ENCRYPT] & CPUID_8000_001F_EAX_SEV)) {
>>> + x86_cpu_adjust_level(cpu, &env->cpuid_min_xlevel, 0x8000001F);
>>> + }
>>> }
>>>
>>> /* Set cpuid_*level* based on cpuid_min_*level, if not explicitly set */
>>> diff --git a/target/i386/cpu.h b/target/i386/cpu.h
>>> index f91e37d25dea..f7a0ab20fdd1 100644
>>> --- a/target/i386/cpu.h
>>> +++ b/target/i386/cpu.h
>>> @@ -483,6 +483,7 @@ typedef enum FeatureWord {
>>> FEAT_6_EAX, /* CPUID[6].EAX */
>>> FEAT_XSAVE_COMP_LO, /* CPUID[EAX=0xd,ECX=0].EAX */
>>> FEAT_XSAVE_COMP_HI, /* CPUID[EAX=0xd,ECX=0].EDX */
>>> + FEAT_MEM_ENCRYPT, /* CPUID[8000_001F].EAX */
>>> FEATURE_WORDS,
>>> } FeatureWord;
>>>
>>> @@ -679,6 +680,11 @@ typedef uint32_t FeatureWordArray[FEATURE_WORDS];
>>>
>>> #define CPUID_6_EAX_ARAT (1U << 2)
>>>
>>> +#define CPUID_8000_001F_EAX_SME (1U << 0) /* SME */
>>> +#define CPUID_8000_001F_EAX_SEV (1U << 1) /* SEV */
>>> +#define CPUID_8000_001F_EAX_PAGE_FLUSH_MSR (1U << 2) /* Page flush MSR */
>>> +#define CPUID_8000_001F_EAX_SEV_ES (1U << 3) /* SEV-ES */
>>> +
>>> /* CPUID[0x80000007].EDX flags: */
>>> #define CPUID_APM_INVTSC (1U << 8)
>>>
>>> --
>>> 2.9.5
>>>
>> --
>> Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [PATCH v6 02/23] exec: add ram_debug_ops support
2018-01-30 21:59 ` [Qemu-devel] " Edgar E. Iglesias
@ 2018-01-30 22:34 ` Brijesh Singh
-1 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-30 22:34 UTC (permalink / raw)
To: Edgar E. Iglesias
Cc: brijesh.singh, qemu-devel, kvm, Paolo Bonzini, Tom Lendacky,
Peter Maydell, Richard Henderson, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Peter Crosthwaite, Richard Henderson
On 1/30/18 3:59 PM, Edgar E. Iglesias wrote:
> On Mon, Jan 29, 2018 at 11:41:11AM -0600, Brijesh Singh wrote:
>> Currently, the guest memory access for the debug purpose is performed
>> using the memcpy(). Lets extend the 'struct MemoryRegion' to include
>> ram_debug_ops callbacks. The ram_debug_ops can be used to override
>> memcpy() with something else.
>>
>> The feature can be used by encrypted guest -- which can register
>> callbacks to override memcpy() with memory encryption/decryption APIs.
>>
>> a typical usage:
>>
>> mem_read(uint8_t *dst, uint8_t *src, uint32_t len, MemTxAttrs *attrs);
>> mem_write(uint8_t *dst, uint8_t *src, uint32_t len, MemTxAttrs *attrs);
>>
>> MemoryRegionRAMReadWriteOps ops;
>> ops.read = mem_read;
>> ops.write = mem_write;
>
> Hi,
>
> Do these really need to be RAM specific (ram_debug_ops -> debug_ops) ?
> I was hoping a similar infrastructure could be used for MMIO
> debug accesses.
Hi Edgar,
The MMIO regions will contains unencrypted data hence I do not find the
need to add debug hooks for it. A memcpy() to/from MMIO should be fine.
If we see the need for MMIO case then it can extended later.
Brijesh
> Best regards,
> Edgar
>
>
>
>> memory_region_init_ram(mem, NULL, "memory", size, NULL);
>> memory_region_set_ram_debug_ops(mem, ops);
>>
>> Cc: Paolo Bonzini <pbonzini@redhat.com>
>> Cc: Peter Crosthwaite <crosthwaite.peter@gmail.com>
>> Cc: Richard Henderson <rth@twiddle.net>
>> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
>> ---
>> exec.c | 66 ++++++++++++++++++++++++++++++++++++++-------------
>> include/exec/memory.h | 27 +++++++++++++++++++++
>> 2 files changed, 77 insertions(+), 16 deletions(-)
>>
>> diff --git a/exec.c b/exec.c
>> index 629a5083851d..1919052b7385 100644
>> --- a/exec.c
>> +++ b/exec.c
>> @@ -3050,7 +3050,11 @@ static MemTxResult flatview_write_continue(FlatView *fv, hwaddr addr,
>> } else {
>> /* RAM case */
>> ptr = qemu_ram_ptr_length(mr->ram_block, addr1, &l, false);
>> - memcpy(ptr, buf, l);
>> + if (attrs.debug && mr->ram_debug_ops) {
>> + mr->ram_debug_ops->write(ptr, buf, l, attrs);
>> + } else {
>> + memcpy(ptr, buf, l);
>> + }
>> invalidate_and_set_dirty(mr, addr1, l);
>> }
>>
>> @@ -3148,7 +3152,11 @@ MemTxResult flatview_read_continue(FlatView *fv, hwaddr addr,
>> } else {
>> /* RAM case */
>> ptr = qemu_ram_ptr_length(mr->ram_block, addr1, &l, false);
>> - memcpy(buf, ptr, l);
>> + if (attrs.debug && mr->ram_debug_ops) {
>> + mr->ram_debug_ops->read(buf, ptr, l, attrs);
>> + } else {
>> + memcpy(buf, ptr, l);
>> + }
>> }
>>
>> if (release_lock) {
>> @@ -3218,11 +3226,13 @@ void cpu_physical_memory_rw(hwaddr addr, uint8_t *buf,
>>
>> enum write_rom_type {
>> WRITE_DATA,
>> + READ_DATA,
>> FLUSH_CACHE,
>> };
>>
>> -static inline void cpu_physical_memory_write_rom_internal(AddressSpace *as,
>> - hwaddr addr, const uint8_t *buf, int len, enum write_rom_type type)
>> +static inline void cpu_physical_memory_rw_internal(AddressSpace *as,
>> + hwaddr addr, uint8_t *buf, int len, MemTxAttrs attrs,
>> + enum write_rom_type type)
>> {
>> hwaddr l;
>> uint8_t *ptr;
>> @@ -3237,12 +3247,33 @@ static inline void cpu_physical_memory_write_rom_internal(AddressSpace *as,
>> if (!(memory_region_is_ram(mr) ||
>> memory_region_is_romd(mr))) {
>> l = memory_access_size(mr, l, addr1);
>> + /* Pass MMIO down to address address_space_rw */
>> + switch (type) {
>> + case READ_DATA:
>> + case WRITE_DATA:
>> + address_space_rw(as, addr1, attrs, buf, l,
>> + type == WRITE_DATA);
>> + break;
>> + case FLUSH_CACHE:
>> + break;
>> + }
>> } else {
>> /* ROM/RAM case */
>> ptr = qemu_map_ram_ptr(mr->ram_block, addr1);
>> switch (type) {
>> + case READ_DATA:
>> + if (mr->ram_debug_ops) {
>> + mr->ram_debug_ops->read(buf, ptr, l, attrs);
>> + } else {
>> + memcpy(buf, ptr, l);
>> + }
>> + break;
>> case WRITE_DATA:
>> - memcpy(ptr, buf, l);
>> + if (mr->ram_debug_ops) {
>> + mr->ram_debug_ops->write(ptr, buf, l, attrs);
>> + } else {
>> + memcpy(ptr, buf, l);
>> + }
>> invalidate_and_set_dirty(mr, addr1, l);
>> break;
>> case FLUSH_CACHE:
>> @@ -3261,7 +3292,8 @@ static inline void cpu_physical_memory_write_rom_internal(AddressSpace *as,
>> void cpu_physical_memory_write_rom(AddressSpace *as, hwaddr addr,
>> const uint8_t *buf, int len)
>> {
>> - cpu_physical_memory_write_rom_internal(as, addr, buf, len, WRITE_DATA);
>> + cpu_physical_memory_rw_internal(as, addr, (uint8_t *)buf, len,
>> + MEMTXATTRS_UNSPECIFIED, WRITE_DATA);
>> }
>>
>> void cpu_flush_icache_range(hwaddr start, int len)
>> @@ -3276,8 +3308,10 @@ void cpu_flush_icache_range(hwaddr start, int len)
>> return;
>> }
>>
>> - cpu_physical_memory_write_rom_internal(&address_space_memory,
>> - start, NULL, len, FLUSH_CACHE);
>> + cpu_physical_memory_rw_internal(&address_space_memory,
>> + start, NULL, len,
>> + MEMTXATTRS_UNSPECIFIED,
>> + FLUSH_CACHE);
>> }
>>
>> typedef struct {
>> @@ -3583,6 +3617,7 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
>> int l;
>> hwaddr phys_addr;
>> target_ulong page;
>> + int type = is_write ? WRITE_DATA : READ_DATA;
>>
>> cpu_synchronize_state(cpu);
>> while (len > 0) {
>> @@ -3592,6 +3627,10 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
>> page = addr & TARGET_PAGE_MASK;
>> phys_addr = cpu_get_phys_page_attrs_debug(cpu, page, &attrs);
>> asidx = cpu_asidx_from_attrs(cpu, attrs);
>> +
>> + /* set debug attrs to indicate memory access is from the debugger */
>> + attrs.debug = 1;
>> +
>> /* if no physical page mapped, return an error */
>> if (phys_addr == -1)
>> return -1;
>> @@ -3599,14 +3638,9 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
>> if (l > len)
>> l = len;
>> phys_addr += (addr & ~TARGET_PAGE_MASK);
>> - if (is_write) {
>> - cpu_physical_memory_write_rom(cpu->cpu_ases[asidx].as,
>> - phys_addr, buf, l);
>> - } else {
>> - address_space_rw(cpu->cpu_ases[asidx].as, phys_addr,
>> - MEMTXATTRS_UNSPECIFIED,
>> - buf, l, 0);
>> - }
>> + cpu_physical_memory_rw_internal(cpu->cpu_ases[asidx].as,
>> + phys_addr, buf, l, attrs,
>> + type);
>> len -= l;
>> buf += l;
>> addr += l;
>> diff --git a/include/exec/memory.h b/include/exec/memory.h
>> index 07c5d6d59796..4d027fffeebf 100644
>> --- a/include/exec/memory.h
>> +++ b/include/exec/memory.h
>> @@ -215,6 +215,18 @@ typedef struct IOMMUMemoryRegionClass {
>> typedef struct CoalescedMemoryRange CoalescedMemoryRange;
>> typedef struct MemoryRegionIoeventfd MemoryRegionIoeventfd;
>>
>> +/* Memory Region RAM debug callback */
>> +typedef struct MemoryRegionRAMReadWriteOps MemoryRegionRAMReadWriteOps;
>> +
>> +struct MemoryRegionRAMReadWriteOps {
>> + /* Write data into guest memory */
>> + int (*write) (uint8_t *dest, const uint8_t *src,
>> + uint32_t len, MemTxAttrs attrs);
>> + /* Read data from guest memory */
>> + int (*read) (uint8_t *dest, const uint8_t *src,
>> + uint32_t len, MemTxAttrs attrs);
>> +};
>> +
>> struct MemoryRegion {
>> Object parent_obj;
>>
>> @@ -254,6 +266,7 @@ struct MemoryRegion {
>> const char *name;
>> unsigned ioeventfd_nb;
>> MemoryRegionIoeventfd *ioeventfds;
>> + const MemoryRegionRAMReadWriteOps *ram_debug_ops;
>> };
>>
>> struct IOMMUMemoryRegion {
>> @@ -624,6 +637,20 @@ void memory_region_init_rom_device_nomigrate(MemoryRegion *mr,
>> Error **errp);
>>
>> /**
>> + * memory_region_set_ram_debug_ops: Set debug access ops for a given memory region
>> + *
>> + * @mr: the #MemoryRegion to be initialized
>> + * @ops: a function that will be used for when accessing @target region during
>> + * debug
>> + */
>> +static inline void
>> +memory_region_set_ram_debug_ops(MemoryRegion *mr,
>> + const MemoryRegionRAMReadWriteOps *ops)
>> +{
>> + mr->ram_debug_ops = ops;
>> +}
>> +
>> +/**
>> * memory_region_init_reservation: Initialize a memory region that reserves
>> * I/O space.
>> *
>> --
>> 2.9.5
>>
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 02/23] exec: add ram_debug_ops support
@ 2018-01-30 22:34 ` Brijesh Singh
0 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-30 22:34 UTC (permalink / raw)
To: Edgar E. Iglesias
Cc: brijesh.singh, qemu-devel, kvm, Paolo Bonzini, Tom Lendacky,
Peter Maydell, Richard Henderson, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Peter Crosthwaite, Richard Henderson
On 1/30/18 3:59 PM, Edgar E. Iglesias wrote:
> On Mon, Jan 29, 2018 at 11:41:11AM -0600, Brijesh Singh wrote:
>> Currently, the guest memory access for the debug purpose is performed
>> using the memcpy(). Lets extend the 'struct MemoryRegion' to include
>> ram_debug_ops callbacks. The ram_debug_ops can be used to override
>> memcpy() with something else.
>>
>> The feature can be used by encrypted guest -- which can register
>> callbacks to override memcpy() with memory encryption/decryption APIs.
>>
>> a typical usage:
>>
>> mem_read(uint8_t *dst, uint8_t *src, uint32_t len, MemTxAttrs *attrs);
>> mem_write(uint8_t *dst, uint8_t *src, uint32_t len, MemTxAttrs *attrs);
>>
>> MemoryRegionRAMReadWriteOps ops;
>> ops.read = mem_read;
>> ops.write = mem_write;
>
> Hi,
>
> Do these really need to be RAM specific (ram_debug_ops -> debug_ops) ?
> I was hoping a similar infrastructure could be used for MMIO
> debug accesses.
Hi Edgar,
The MMIO regions will contains unencrypted data hence I do not find the
need to add debug hooks for it. A memcpy() to/from MMIO should be fine.
If we see the need for MMIO case then it can extended later.
Brijesh
> Best regards,
> Edgar
>
>
>
>> memory_region_init_ram(mem, NULL, "memory", size, NULL);
>> memory_region_set_ram_debug_ops(mem, ops);
>>
>> Cc: Paolo Bonzini <pbonzini@redhat.com>
>> Cc: Peter Crosthwaite <crosthwaite.peter@gmail.com>
>> Cc: Richard Henderson <rth@twiddle.net>
>> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
>> ---
>> exec.c | 66 ++++++++++++++++++++++++++++++++++++++-------------
>> include/exec/memory.h | 27 +++++++++++++++++++++
>> 2 files changed, 77 insertions(+), 16 deletions(-)
>>
>> diff --git a/exec.c b/exec.c
>> index 629a5083851d..1919052b7385 100644
>> --- a/exec.c
>> +++ b/exec.c
>> @@ -3050,7 +3050,11 @@ static MemTxResult flatview_write_continue(FlatView *fv, hwaddr addr,
>> } else {
>> /* RAM case */
>> ptr = qemu_ram_ptr_length(mr->ram_block, addr1, &l, false);
>> - memcpy(ptr, buf, l);
>> + if (attrs.debug && mr->ram_debug_ops) {
>> + mr->ram_debug_ops->write(ptr, buf, l, attrs);
>> + } else {
>> + memcpy(ptr, buf, l);
>> + }
>> invalidate_and_set_dirty(mr, addr1, l);
>> }
>>
>> @@ -3148,7 +3152,11 @@ MemTxResult flatview_read_continue(FlatView *fv, hwaddr addr,
>> } else {
>> /* RAM case */
>> ptr = qemu_ram_ptr_length(mr->ram_block, addr1, &l, false);
>> - memcpy(buf, ptr, l);
>> + if (attrs.debug && mr->ram_debug_ops) {
>> + mr->ram_debug_ops->read(buf, ptr, l, attrs);
>> + } else {
>> + memcpy(buf, ptr, l);
>> + }
>> }
>>
>> if (release_lock) {
>> @@ -3218,11 +3226,13 @@ void cpu_physical_memory_rw(hwaddr addr, uint8_t *buf,
>>
>> enum write_rom_type {
>> WRITE_DATA,
>> + READ_DATA,
>> FLUSH_CACHE,
>> };
>>
>> -static inline void cpu_physical_memory_write_rom_internal(AddressSpace *as,
>> - hwaddr addr, const uint8_t *buf, int len, enum write_rom_type type)
>> +static inline void cpu_physical_memory_rw_internal(AddressSpace *as,
>> + hwaddr addr, uint8_t *buf, int len, MemTxAttrs attrs,
>> + enum write_rom_type type)
>> {
>> hwaddr l;
>> uint8_t *ptr;
>> @@ -3237,12 +3247,33 @@ static inline void cpu_physical_memory_write_rom_internal(AddressSpace *as,
>> if (!(memory_region_is_ram(mr) ||
>> memory_region_is_romd(mr))) {
>> l = memory_access_size(mr, l, addr1);
>> + /* Pass MMIO down to address address_space_rw */
>> + switch (type) {
>> + case READ_DATA:
>> + case WRITE_DATA:
>> + address_space_rw(as, addr1, attrs, buf, l,
>> + type == WRITE_DATA);
>> + break;
>> + case FLUSH_CACHE:
>> + break;
>> + }
>> } else {
>> /* ROM/RAM case */
>> ptr = qemu_map_ram_ptr(mr->ram_block, addr1);
>> switch (type) {
>> + case READ_DATA:
>> + if (mr->ram_debug_ops) {
>> + mr->ram_debug_ops->read(buf, ptr, l, attrs);
>> + } else {
>> + memcpy(buf, ptr, l);
>> + }
>> + break;
>> case WRITE_DATA:
>> - memcpy(ptr, buf, l);
>> + if (mr->ram_debug_ops) {
>> + mr->ram_debug_ops->write(ptr, buf, l, attrs);
>> + } else {
>> + memcpy(ptr, buf, l);
>> + }
>> invalidate_and_set_dirty(mr, addr1, l);
>> break;
>> case FLUSH_CACHE:
>> @@ -3261,7 +3292,8 @@ static inline void cpu_physical_memory_write_rom_internal(AddressSpace *as,
>> void cpu_physical_memory_write_rom(AddressSpace *as, hwaddr addr,
>> const uint8_t *buf, int len)
>> {
>> - cpu_physical_memory_write_rom_internal(as, addr, buf, len, WRITE_DATA);
>> + cpu_physical_memory_rw_internal(as, addr, (uint8_t *)buf, len,
>> + MEMTXATTRS_UNSPECIFIED, WRITE_DATA);
>> }
>>
>> void cpu_flush_icache_range(hwaddr start, int len)
>> @@ -3276,8 +3308,10 @@ void cpu_flush_icache_range(hwaddr start, int len)
>> return;
>> }
>>
>> - cpu_physical_memory_write_rom_internal(&address_space_memory,
>> - start, NULL, len, FLUSH_CACHE);
>> + cpu_physical_memory_rw_internal(&address_space_memory,
>> + start, NULL, len,
>> + MEMTXATTRS_UNSPECIFIED,
>> + FLUSH_CACHE);
>> }
>>
>> typedef struct {
>> @@ -3583,6 +3617,7 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
>> int l;
>> hwaddr phys_addr;
>> target_ulong page;
>> + int type = is_write ? WRITE_DATA : READ_DATA;
>>
>> cpu_synchronize_state(cpu);
>> while (len > 0) {
>> @@ -3592,6 +3627,10 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
>> page = addr & TARGET_PAGE_MASK;
>> phys_addr = cpu_get_phys_page_attrs_debug(cpu, page, &attrs);
>> asidx = cpu_asidx_from_attrs(cpu, attrs);
>> +
>> + /* set debug attrs to indicate memory access is from the debugger */
>> + attrs.debug = 1;
>> +
>> /* if no physical page mapped, return an error */
>> if (phys_addr == -1)
>> return -1;
>> @@ -3599,14 +3638,9 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
>> if (l > len)
>> l = len;
>> phys_addr += (addr & ~TARGET_PAGE_MASK);
>> - if (is_write) {
>> - cpu_physical_memory_write_rom(cpu->cpu_ases[asidx].as,
>> - phys_addr, buf, l);
>> - } else {
>> - address_space_rw(cpu->cpu_ases[asidx].as, phys_addr,
>> - MEMTXATTRS_UNSPECIFIED,
>> - buf, l, 0);
>> - }
>> + cpu_physical_memory_rw_internal(cpu->cpu_ases[asidx].as,
>> + phys_addr, buf, l, attrs,
>> + type);
>> len -= l;
>> buf += l;
>> addr += l;
>> diff --git a/include/exec/memory.h b/include/exec/memory.h
>> index 07c5d6d59796..4d027fffeebf 100644
>> --- a/include/exec/memory.h
>> +++ b/include/exec/memory.h
>> @@ -215,6 +215,18 @@ typedef struct IOMMUMemoryRegionClass {
>> typedef struct CoalescedMemoryRange CoalescedMemoryRange;
>> typedef struct MemoryRegionIoeventfd MemoryRegionIoeventfd;
>>
>> +/* Memory Region RAM debug callback */
>> +typedef struct MemoryRegionRAMReadWriteOps MemoryRegionRAMReadWriteOps;
>> +
>> +struct MemoryRegionRAMReadWriteOps {
>> + /* Write data into guest memory */
>> + int (*write) (uint8_t *dest, const uint8_t *src,
>> + uint32_t len, MemTxAttrs attrs);
>> + /* Read data from guest memory */
>> + int (*read) (uint8_t *dest, const uint8_t *src,
>> + uint32_t len, MemTxAttrs attrs);
>> +};
>> +
>> struct MemoryRegion {
>> Object parent_obj;
>>
>> @@ -254,6 +266,7 @@ struct MemoryRegion {
>> const char *name;
>> unsigned ioeventfd_nb;
>> MemoryRegionIoeventfd *ioeventfds;
>> + const MemoryRegionRAMReadWriteOps *ram_debug_ops;
>> };
>>
>> struct IOMMUMemoryRegion {
>> @@ -624,6 +637,20 @@ void memory_region_init_rom_device_nomigrate(MemoryRegion *mr,
>> Error **errp);
>>
>> /**
>> + * memory_region_set_ram_debug_ops: Set debug access ops for a given memory region
>> + *
>> + * @mr: the #MemoryRegion to be initialized
>> + * @ops: a function that will be used for when accessing @target region during
>> + * debug
>> + */
>> +static inline void
>> +memory_region_set_ram_debug_ops(MemoryRegion *mr,
>> + const MemoryRegionRAMReadWriteOps *ops)
>> +{
>> + mr->ram_debug_ops = ops;
>> +}
>> +
>> +/**
>> * memory_region_init_reservation: Initialize a memory region that reserves
>> * I/O space.
>> *
>> --
>> 2.9.5
>>
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [PATCH v6 02/23] exec: add ram_debug_ops support
2018-01-30 22:34 ` [Qemu-devel] " Brijesh Singh
@ 2018-01-30 22:37 ` Edgar E. Iglesias
-1 siblings, 0 replies; 118+ messages in thread
From: Edgar E. Iglesias @ 2018-01-30 22:37 UTC (permalink / raw)
To: Brijesh Singh
Cc: qemu-devel, kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Dr. David Alan Gilbert, Eduardo Habkost,
Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Peter Crosthwaite, Richard Henderson
On Tue, Jan 30, 2018 at 04:34:37PM -0600, Brijesh Singh wrote:
>
>
> On 1/30/18 3:59 PM, Edgar E. Iglesias wrote:
> > On Mon, Jan 29, 2018 at 11:41:11AM -0600, Brijesh Singh wrote:
> >> Currently, the guest memory access for the debug purpose is performed
> >> using the memcpy(). Lets extend the 'struct MemoryRegion' to include
> >> ram_debug_ops callbacks. The ram_debug_ops can be used to override
> >> memcpy() with something else.
> >>
> >> The feature can be used by encrypted guest -- which can register
> >> callbacks to override memcpy() with memory encryption/decryption APIs.
> >>
> >> a typical usage:
> >>
> >> mem_read(uint8_t *dst, uint8_t *src, uint32_t len, MemTxAttrs *attrs);
> >> mem_write(uint8_t *dst, uint8_t *src, uint32_t len, MemTxAttrs *attrs);
> >>
> >> MemoryRegionRAMReadWriteOps ops;
> >> ops.read = mem_read;
> >> ops.write = mem_write;
> >
> > Hi,
> >
> > Do these really need to be RAM specific (ram_debug_ops -> debug_ops) ?
> > I was hoping a similar infrastructure could be used for MMIO
> > debug accesses.
>
> Hi Edgar,
>
> The MMIO regions will contains unencrypted data hence I do not find the
> need to add debug hooks for it. A memcpy() to/from MMIO should be fine.
> If we see the need for MMIO case then it can extended later.
In this use-case yes, but in a general use-case MMIO regions may also
want to differentiate debug from normal accesses.
I'm not saying you need to implement MMIO examples but do we really
need to have ram_debug_ops and mmio_debug_ops in the future?
Can we get away with one somehow?
Cheers,
Edgar
>
> Brijesh
> > Best regards,
> > Edgar
> >
> >
> >
> >> memory_region_init_ram(mem, NULL, "memory", size, NULL);
> >> memory_region_set_ram_debug_ops(mem, ops);
> >>
> >> Cc: Paolo Bonzini <pbonzini@redhat.com>
> >> Cc: Peter Crosthwaite <crosthwaite.peter@gmail.com>
> >> Cc: Richard Henderson <rth@twiddle.net>
> >> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
> >> ---
> >> exec.c | 66 ++++++++++++++++++++++++++++++++++++++-------------
> >> include/exec/memory.h | 27 +++++++++++++++++++++
> >> 2 files changed, 77 insertions(+), 16 deletions(-)
> >>
> >> diff --git a/exec.c b/exec.c
> >> index 629a5083851d..1919052b7385 100644
> >> --- a/exec.c
> >> +++ b/exec.c
> >> @@ -3050,7 +3050,11 @@ static MemTxResult flatview_write_continue(FlatView *fv, hwaddr addr,
> >> } else {
> >> /* RAM case */
> >> ptr = qemu_ram_ptr_length(mr->ram_block, addr1, &l, false);
> >> - memcpy(ptr, buf, l);
> >> + if (attrs.debug && mr->ram_debug_ops) {
> >> + mr->ram_debug_ops->write(ptr, buf, l, attrs);
> >> + } else {
> >> + memcpy(ptr, buf, l);
> >> + }
> >> invalidate_and_set_dirty(mr, addr1, l);
> >> }
> >>
> >> @@ -3148,7 +3152,11 @@ MemTxResult flatview_read_continue(FlatView *fv, hwaddr addr,
> >> } else {
> >> /* RAM case */
> >> ptr = qemu_ram_ptr_length(mr->ram_block, addr1, &l, false);
> >> - memcpy(buf, ptr, l);
> >> + if (attrs.debug && mr->ram_debug_ops) {
> >> + mr->ram_debug_ops->read(buf, ptr, l, attrs);
> >> + } else {
> >> + memcpy(buf, ptr, l);
> >> + }
> >> }
> >>
> >> if (release_lock) {
> >> @@ -3218,11 +3226,13 @@ void cpu_physical_memory_rw(hwaddr addr, uint8_t *buf,
> >>
> >> enum write_rom_type {
> >> WRITE_DATA,
> >> + READ_DATA,
> >> FLUSH_CACHE,
> >> };
> >>
> >> -static inline void cpu_physical_memory_write_rom_internal(AddressSpace *as,
> >> - hwaddr addr, const uint8_t *buf, int len, enum write_rom_type type)
> >> +static inline void cpu_physical_memory_rw_internal(AddressSpace *as,
> >> + hwaddr addr, uint8_t *buf, int len, MemTxAttrs attrs,
> >> + enum write_rom_type type)
> >> {
> >> hwaddr l;
> >> uint8_t *ptr;
> >> @@ -3237,12 +3247,33 @@ static inline void cpu_physical_memory_write_rom_internal(AddressSpace *as,
> >> if (!(memory_region_is_ram(mr) ||
> >> memory_region_is_romd(mr))) {
> >> l = memory_access_size(mr, l, addr1);
> >> + /* Pass MMIO down to address address_space_rw */
> >> + switch (type) {
> >> + case READ_DATA:
> >> + case WRITE_DATA:
> >> + address_space_rw(as, addr1, attrs, buf, l,
> >> + type == WRITE_DATA);
> >> + break;
> >> + case FLUSH_CACHE:
> >> + break;
> >> + }
> >> } else {
> >> /* ROM/RAM case */
> >> ptr = qemu_map_ram_ptr(mr->ram_block, addr1);
> >> switch (type) {
> >> + case READ_DATA:
> >> + if (mr->ram_debug_ops) {
> >> + mr->ram_debug_ops->read(buf, ptr, l, attrs);
> >> + } else {
> >> + memcpy(buf, ptr, l);
> >> + }
> >> + break;
> >> case WRITE_DATA:
> >> - memcpy(ptr, buf, l);
> >> + if (mr->ram_debug_ops) {
> >> + mr->ram_debug_ops->write(ptr, buf, l, attrs);
> >> + } else {
> >> + memcpy(ptr, buf, l);
> >> + }
> >> invalidate_and_set_dirty(mr, addr1, l);
> >> break;
> >> case FLUSH_CACHE:
> >> @@ -3261,7 +3292,8 @@ static inline void cpu_physical_memory_write_rom_internal(AddressSpace *as,
> >> void cpu_physical_memory_write_rom(AddressSpace *as, hwaddr addr,
> >> const uint8_t *buf, int len)
> >> {
> >> - cpu_physical_memory_write_rom_internal(as, addr, buf, len, WRITE_DATA);
> >> + cpu_physical_memory_rw_internal(as, addr, (uint8_t *)buf, len,
> >> + MEMTXATTRS_UNSPECIFIED, WRITE_DATA);
> >> }
> >>
> >> void cpu_flush_icache_range(hwaddr start, int len)
> >> @@ -3276,8 +3308,10 @@ void cpu_flush_icache_range(hwaddr start, int len)
> >> return;
> >> }
> >>
> >> - cpu_physical_memory_write_rom_internal(&address_space_memory,
> >> - start, NULL, len, FLUSH_CACHE);
> >> + cpu_physical_memory_rw_internal(&address_space_memory,
> >> + start, NULL, len,
> >> + MEMTXATTRS_UNSPECIFIED,
> >> + FLUSH_CACHE);
> >> }
> >>
> >> typedef struct {
> >> @@ -3583,6 +3617,7 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
> >> int l;
> >> hwaddr phys_addr;
> >> target_ulong page;
> >> + int type = is_write ? WRITE_DATA : READ_DATA;
> >>
> >> cpu_synchronize_state(cpu);
> >> while (len > 0) {
> >> @@ -3592,6 +3627,10 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
> >> page = addr & TARGET_PAGE_MASK;
> >> phys_addr = cpu_get_phys_page_attrs_debug(cpu, page, &attrs);
> >> asidx = cpu_asidx_from_attrs(cpu, attrs);
> >> +
> >> + /* set debug attrs to indicate memory access is from the debugger */
> >> + attrs.debug = 1;
> >> +
> >> /* if no physical page mapped, return an error */
> >> if (phys_addr == -1)
> >> return -1;
> >> @@ -3599,14 +3638,9 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
> >> if (l > len)
> >> l = len;
> >> phys_addr += (addr & ~TARGET_PAGE_MASK);
> >> - if (is_write) {
> >> - cpu_physical_memory_write_rom(cpu->cpu_ases[asidx].as,
> >> - phys_addr, buf, l);
> >> - } else {
> >> - address_space_rw(cpu->cpu_ases[asidx].as, phys_addr,
> >> - MEMTXATTRS_UNSPECIFIED,
> >> - buf, l, 0);
> >> - }
> >> + cpu_physical_memory_rw_internal(cpu->cpu_ases[asidx].as,
> >> + phys_addr, buf, l, attrs,
> >> + type);
> >> len -= l;
> >> buf += l;
> >> addr += l;
> >> diff --git a/include/exec/memory.h b/include/exec/memory.h
> >> index 07c5d6d59796..4d027fffeebf 100644
> >> --- a/include/exec/memory.h
> >> +++ b/include/exec/memory.h
> >> @@ -215,6 +215,18 @@ typedef struct IOMMUMemoryRegionClass {
> >> typedef struct CoalescedMemoryRange CoalescedMemoryRange;
> >> typedef struct MemoryRegionIoeventfd MemoryRegionIoeventfd;
> >>
> >> +/* Memory Region RAM debug callback */
> >> +typedef struct MemoryRegionRAMReadWriteOps MemoryRegionRAMReadWriteOps;
> >> +
> >> +struct MemoryRegionRAMReadWriteOps {
> >> + /* Write data into guest memory */
> >> + int (*write) (uint8_t *dest, const uint8_t *src,
> >> + uint32_t len, MemTxAttrs attrs);
> >> + /* Read data from guest memory */
> >> + int (*read) (uint8_t *dest, const uint8_t *src,
> >> + uint32_t len, MemTxAttrs attrs);
> >> +};
> >> +
> >> struct MemoryRegion {
> >> Object parent_obj;
> >>
> >> @@ -254,6 +266,7 @@ struct MemoryRegion {
> >> const char *name;
> >> unsigned ioeventfd_nb;
> >> MemoryRegionIoeventfd *ioeventfds;
> >> + const MemoryRegionRAMReadWriteOps *ram_debug_ops;
> >> };
> >>
> >> struct IOMMUMemoryRegion {
> >> @@ -624,6 +637,20 @@ void memory_region_init_rom_device_nomigrate(MemoryRegion *mr,
> >> Error **errp);
> >>
> >> /**
> >> + * memory_region_set_ram_debug_ops: Set debug access ops for a given memory region
> >> + *
> >> + * @mr: the #MemoryRegion to be initialized
> >> + * @ops: a function that will be used for when accessing @target region during
> >> + * debug
> >> + */
> >> +static inline void
> >> +memory_region_set_ram_debug_ops(MemoryRegion *mr,
> >> + const MemoryRegionRAMReadWriteOps *ops)
> >> +{
> >> + mr->ram_debug_ops = ops;
> >> +}
> >> +
> >> +/**
> >> * memory_region_init_reservation: Initialize a memory region that reserves
> >> * I/O space.
> >> *
> >> --
> >> 2.9.5
> >>
>
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 02/23] exec: add ram_debug_ops support
@ 2018-01-30 22:37 ` Edgar E. Iglesias
0 siblings, 0 replies; 118+ messages in thread
From: Edgar E. Iglesias @ 2018-01-30 22:37 UTC (permalink / raw)
To: Brijesh Singh
Cc: qemu-devel, kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Dr. David Alan Gilbert, Eduardo Habkost,
Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Peter Crosthwaite, Richard Henderson
On Tue, Jan 30, 2018 at 04:34:37PM -0600, Brijesh Singh wrote:
>
>
> On 1/30/18 3:59 PM, Edgar E. Iglesias wrote:
> > On Mon, Jan 29, 2018 at 11:41:11AM -0600, Brijesh Singh wrote:
> >> Currently, the guest memory access for the debug purpose is performed
> >> using the memcpy(). Lets extend the 'struct MemoryRegion' to include
> >> ram_debug_ops callbacks. The ram_debug_ops can be used to override
> >> memcpy() with something else.
> >>
> >> The feature can be used by encrypted guest -- which can register
> >> callbacks to override memcpy() with memory encryption/decryption APIs.
> >>
> >> a typical usage:
> >>
> >> mem_read(uint8_t *dst, uint8_t *src, uint32_t len, MemTxAttrs *attrs);
> >> mem_write(uint8_t *dst, uint8_t *src, uint32_t len, MemTxAttrs *attrs);
> >>
> >> MemoryRegionRAMReadWriteOps ops;
> >> ops.read = mem_read;
> >> ops.write = mem_write;
> >
> > Hi,
> >
> > Do these really need to be RAM specific (ram_debug_ops -> debug_ops) ?
> > I was hoping a similar infrastructure could be used for MMIO
> > debug accesses.
>
> Hi Edgar,
>
> The MMIO regions will contains unencrypted data hence I do not find the
> need to add debug hooks for it. A memcpy() to/from MMIO should be fine.
> If we see the need for MMIO case then it can extended later.
In this use-case yes, but in a general use-case MMIO regions may also
want to differentiate debug from normal accesses.
I'm not saying you need to implement MMIO examples but do we really
need to have ram_debug_ops and mmio_debug_ops in the future?
Can we get away with one somehow?
Cheers,
Edgar
>
> Brijesh
> > Best regards,
> > Edgar
> >
> >
> >
> >> memory_region_init_ram(mem, NULL, "memory", size, NULL);
> >> memory_region_set_ram_debug_ops(mem, ops);
> >>
> >> Cc: Paolo Bonzini <pbonzini@redhat.com>
> >> Cc: Peter Crosthwaite <crosthwaite.peter@gmail.com>
> >> Cc: Richard Henderson <rth@twiddle.net>
> >> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
> >> ---
> >> exec.c | 66 ++++++++++++++++++++++++++++++++++++++-------------
> >> include/exec/memory.h | 27 +++++++++++++++++++++
> >> 2 files changed, 77 insertions(+), 16 deletions(-)
> >>
> >> diff --git a/exec.c b/exec.c
> >> index 629a5083851d..1919052b7385 100644
> >> --- a/exec.c
> >> +++ b/exec.c
> >> @@ -3050,7 +3050,11 @@ static MemTxResult flatview_write_continue(FlatView *fv, hwaddr addr,
> >> } else {
> >> /* RAM case */
> >> ptr = qemu_ram_ptr_length(mr->ram_block, addr1, &l, false);
> >> - memcpy(ptr, buf, l);
> >> + if (attrs.debug && mr->ram_debug_ops) {
> >> + mr->ram_debug_ops->write(ptr, buf, l, attrs);
> >> + } else {
> >> + memcpy(ptr, buf, l);
> >> + }
> >> invalidate_and_set_dirty(mr, addr1, l);
> >> }
> >>
> >> @@ -3148,7 +3152,11 @@ MemTxResult flatview_read_continue(FlatView *fv, hwaddr addr,
> >> } else {
> >> /* RAM case */
> >> ptr = qemu_ram_ptr_length(mr->ram_block, addr1, &l, false);
> >> - memcpy(buf, ptr, l);
> >> + if (attrs.debug && mr->ram_debug_ops) {
> >> + mr->ram_debug_ops->read(buf, ptr, l, attrs);
> >> + } else {
> >> + memcpy(buf, ptr, l);
> >> + }
> >> }
> >>
> >> if (release_lock) {
> >> @@ -3218,11 +3226,13 @@ void cpu_physical_memory_rw(hwaddr addr, uint8_t *buf,
> >>
> >> enum write_rom_type {
> >> WRITE_DATA,
> >> + READ_DATA,
> >> FLUSH_CACHE,
> >> };
> >>
> >> -static inline void cpu_physical_memory_write_rom_internal(AddressSpace *as,
> >> - hwaddr addr, const uint8_t *buf, int len, enum write_rom_type type)
> >> +static inline void cpu_physical_memory_rw_internal(AddressSpace *as,
> >> + hwaddr addr, uint8_t *buf, int len, MemTxAttrs attrs,
> >> + enum write_rom_type type)
> >> {
> >> hwaddr l;
> >> uint8_t *ptr;
> >> @@ -3237,12 +3247,33 @@ static inline void cpu_physical_memory_write_rom_internal(AddressSpace *as,
> >> if (!(memory_region_is_ram(mr) ||
> >> memory_region_is_romd(mr))) {
> >> l = memory_access_size(mr, l, addr1);
> >> + /* Pass MMIO down to address address_space_rw */
> >> + switch (type) {
> >> + case READ_DATA:
> >> + case WRITE_DATA:
> >> + address_space_rw(as, addr1, attrs, buf, l,
> >> + type == WRITE_DATA);
> >> + break;
> >> + case FLUSH_CACHE:
> >> + break;
> >> + }
> >> } else {
> >> /* ROM/RAM case */
> >> ptr = qemu_map_ram_ptr(mr->ram_block, addr1);
> >> switch (type) {
> >> + case READ_DATA:
> >> + if (mr->ram_debug_ops) {
> >> + mr->ram_debug_ops->read(buf, ptr, l, attrs);
> >> + } else {
> >> + memcpy(buf, ptr, l);
> >> + }
> >> + break;
> >> case WRITE_DATA:
> >> - memcpy(ptr, buf, l);
> >> + if (mr->ram_debug_ops) {
> >> + mr->ram_debug_ops->write(ptr, buf, l, attrs);
> >> + } else {
> >> + memcpy(ptr, buf, l);
> >> + }
> >> invalidate_and_set_dirty(mr, addr1, l);
> >> break;
> >> case FLUSH_CACHE:
> >> @@ -3261,7 +3292,8 @@ static inline void cpu_physical_memory_write_rom_internal(AddressSpace *as,
> >> void cpu_physical_memory_write_rom(AddressSpace *as, hwaddr addr,
> >> const uint8_t *buf, int len)
> >> {
> >> - cpu_physical_memory_write_rom_internal(as, addr, buf, len, WRITE_DATA);
> >> + cpu_physical_memory_rw_internal(as, addr, (uint8_t *)buf, len,
> >> + MEMTXATTRS_UNSPECIFIED, WRITE_DATA);
> >> }
> >>
> >> void cpu_flush_icache_range(hwaddr start, int len)
> >> @@ -3276,8 +3308,10 @@ void cpu_flush_icache_range(hwaddr start, int len)
> >> return;
> >> }
> >>
> >> - cpu_physical_memory_write_rom_internal(&address_space_memory,
> >> - start, NULL, len, FLUSH_CACHE);
> >> + cpu_physical_memory_rw_internal(&address_space_memory,
> >> + start, NULL, len,
> >> + MEMTXATTRS_UNSPECIFIED,
> >> + FLUSH_CACHE);
> >> }
> >>
> >> typedef struct {
> >> @@ -3583,6 +3617,7 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
> >> int l;
> >> hwaddr phys_addr;
> >> target_ulong page;
> >> + int type = is_write ? WRITE_DATA : READ_DATA;
> >>
> >> cpu_synchronize_state(cpu);
> >> while (len > 0) {
> >> @@ -3592,6 +3627,10 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
> >> page = addr & TARGET_PAGE_MASK;
> >> phys_addr = cpu_get_phys_page_attrs_debug(cpu, page, &attrs);
> >> asidx = cpu_asidx_from_attrs(cpu, attrs);
> >> +
> >> + /* set debug attrs to indicate memory access is from the debugger */
> >> + attrs.debug = 1;
> >> +
> >> /* if no physical page mapped, return an error */
> >> if (phys_addr == -1)
> >> return -1;
> >> @@ -3599,14 +3638,9 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
> >> if (l > len)
> >> l = len;
> >> phys_addr += (addr & ~TARGET_PAGE_MASK);
> >> - if (is_write) {
> >> - cpu_physical_memory_write_rom(cpu->cpu_ases[asidx].as,
> >> - phys_addr, buf, l);
> >> - } else {
> >> - address_space_rw(cpu->cpu_ases[asidx].as, phys_addr,
> >> - MEMTXATTRS_UNSPECIFIED,
> >> - buf, l, 0);
> >> - }
> >> + cpu_physical_memory_rw_internal(cpu->cpu_ases[asidx].as,
> >> + phys_addr, buf, l, attrs,
> >> + type);
> >> len -= l;
> >> buf += l;
> >> addr += l;
> >> diff --git a/include/exec/memory.h b/include/exec/memory.h
> >> index 07c5d6d59796..4d027fffeebf 100644
> >> --- a/include/exec/memory.h
> >> +++ b/include/exec/memory.h
> >> @@ -215,6 +215,18 @@ typedef struct IOMMUMemoryRegionClass {
> >> typedef struct CoalescedMemoryRange CoalescedMemoryRange;
> >> typedef struct MemoryRegionIoeventfd MemoryRegionIoeventfd;
> >>
> >> +/* Memory Region RAM debug callback */
> >> +typedef struct MemoryRegionRAMReadWriteOps MemoryRegionRAMReadWriteOps;
> >> +
> >> +struct MemoryRegionRAMReadWriteOps {
> >> + /* Write data into guest memory */
> >> + int (*write) (uint8_t *dest, const uint8_t *src,
> >> + uint32_t len, MemTxAttrs attrs);
> >> + /* Read data from guest memory */
> >> + int (*read) (uint8_t *dest, const uint8_t *src,
> >> + uint32_t len, MemTxAttrs attrs);
> >> +};
> >> +
> >> struct MemoryRegion {
> >> Object parent_obj;
> >>
> >> @@ -254,6 +266,7 @@ struct MemoryRegion {
> >> const char *name;
> >> unsigned ioeventfd_nb;
> >> MemoryRegionIoeventfd *ioeventfds;
> >> + const MemoryRegionRAMReadWriteOps *ram_debug_ops;
> >> };
> >>
> >> struct IOMMUMemoryRegion {
> >> @@ -624,6 +637,20 @@ void memory_region_init_rom_device_nomigrate(MemoryRegion *mr,
> >> Error **errp);
> >>
> >> /**
> >> + * memory_region_set_ram_debug_ops: Set debug access ops for a given memory region
> >> + *
> >> + * @mr: the #MemoryRegion to be initialized
> >> + * @ops: a function that will be used for when accessing @target region during
> >> + * debug
> >> + */
> >> +static inline void
> >> +memory_region_set_ram_debug_ops(MemoryRegion *mr,
> >> + const MemoryRegionRAMReadWriteOps *ops)
> >> +{
> >> + mr->ram_debug_ops = ops;
> >> +}
> >> +
> >> +/**
> >> * memory_region_init_reservation: Initialize a memory region that reserves
> >> * I/O space.
> >> *
> >> --
> >> 2.9.5
> >>
>
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [PATCH v6 02/23] exec: add ram_debug_ops support
2018-01-30 22:37 ` [Qemu-devel] " Edgar E. Iglesias
@ 2018-01-30 23:26 ` Brijesh Singh
-1 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-30 23:26 UTC (permalink / raw)
To: Edgar E. Iglesias
Cc: brijesh.singh, qemu-devel, kvm, Paolo Bonzini, Tom Lendacky,
Peter Maydell, Richard Henderson, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Peter Crosthwaite, Richard Henderson
On 1/30/18 4:37 PM, Edgar E. Iglesias wrote:
> On Tue, Jan 30, 2018 at 04:34:37PM -0600, Brijesh Singh wrote:
>>
>> On 1/30/18 3:59 PM, Edgar E. Iglesias wrote:
>>> On Mon, Jan 29, 2018 at 11:41:11AM -0600, Brijesh Singh wrote:
>>>> Currently, the guest memory access for the debug purpose is performed
>>>> using the memcpy(). Lets extend the 'struct MemoryRegion' to include
>>>> ram_debug_ops callbacks. The ram_debug_ops can be used to override
>>>> memcpy() with something else.
>>>>
>>>> The feature can be used by encrypted guest -- which can register
>>>> callbacks to override memcpy() with memory encryption/decryption APIs.
>>>>
>>>> a typical usage:
>>>>
>>>> mem_read(uint8_t *dst, uint8_t *src, uint32_t len, MemTxAttrs *attrs);
>>>> mem_write(uint8_t *dst, uint8_t *src, uint32_t len, MemTxAttrs *attrs);
>>>>
>>>> MemoryRegionRAMReadWriteOps ops;
>>>> ops.read = mem_read;
>>>> ops.write = mem_write;
>>> Hi,
>>>
>>> Do these really need to be RAM specific (ram_debug_ops -> debug_ops) ?
>>> I was hoping a similar infrastructure could be used for MMIO
>>> debug accesses.
>> Hi Edgar,
>>
>> The MMIO regions will contains unencrypted data hence I do not find the
>> need to add debug hooks for it. A memcpy() to/from MMIO should be fine.
>> If we see the need for MMIO case then it can extended later.
> In this use-case yes, but in a general use-case MMIO regions may also
> want to differentiate debug from normal accesses.
>
> I'm not saying you need to implement MMIO examples but do we really
> need to have ram_debug_ops and mmio_debug_ops in the future?
> Can we get away with one somehow?
If anyone see this coming in near future then having one debug_ops makes
sense and it should be doable. If we decide to use debug_ops for MMIO
then I could see us needing to add a new argument to debug_ops callback
to let the client knows whether the access came MMIO vs RAM region
because client may do different things for RAM vs MMIO case (e.g in SEV
RAM is encrypted but MMIO is unencrypted).
> Cheers,
> Edgar
>
>> Brijesh
>>> Best regards,
>>> Edgar
>>>
>>>
>>>
>>>> memory_region_init_ram(mem, NULL, "memory", size, NULL);
>>>> memory_region_set_ram_debug_ops(mem, ops);
>>>>
>>>> Cc: Paolo Bonzini <pbonzini@redhat.com>
>>>> Cc: Peter Crosthwaite <crosthwaite.peter@gmail.com>
>>>> Cc: Richard Henderson <rth@twiddle.net>
>>>> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
>>>> ---
>>>> exec.c | 66 ++++++++++++++++++++++++++++++++++++++-------------
>>>> include/exec/memory.h | 27 +++++++++++++++++++++
>>>> 2 files changed, 77 insertions(+), 16 deletions(-)
>>>>
>>>> diff --git a/exec.c b/exec.c
>>>> index 629a5083851d..1919052b7385 100644
>>>> --- a/exec.c
>>>> +++ b/exec.c
>>>> @@ -3050,7 +3050,11 @@ static MemTxResult flatview_write_continue(FlatView *fv, hwaddr addr,
>>>> } else {
>>>> /* RAM case */
>>>> ptr = qemu_ram_ptr_length(mr->ram_block, addr1, &l, false);
>>>> - memcpy(ptr, buf, l);
>>>> + if (attrs.debug && mr->ram_debug_ops) {
>>>> + mr->ram_debug_ops->write(ptr, buf, l, attrs);
>>>> + } else {
>>>> + memcpy(ptr, buf, l);
>>>> + }
>>>> invalidate_and_set_dirty(mr, addr1, l);
>>>> }
>>>>
>>>> @@ -3148,7 +3152,11 @@ MemTxResult flatview_read_continue(FlatView *fv, hwaddr addr,
>>>> } else {
>>>> /* RAM case */
>>>> ptr = qemu_ram_ptr_length(mr->ram_block, addr1, &l, false);
>>>> - memcpy(buf, ptr, l);
>>>> + if (attrs.debug && mr->ram_debug_ops) {
>>>> + mr->ram_debug_ops->read(buf, ptr, l, attrs);
>>>> + } else {
>>>> + memcpy(buf, ptr, l);
>>>> + }
>>>> }
>>>>
>>>> if (release_lock) {
>>>> @@ -3218,11 +3226,13 @@ void cpu_physical_memory_rw(hwaddr addr, uint8_t *buf,
>>>>
>>>> enum write_rom_type {
>>>> WRITE_DATA,
>>>> + READ_DATA,
>>>> FLUSH_CACHE,
>>>> };
>>>>
>>>> -static inline void cpu_physical_memory_write_rom_internal(AddressSpace *as,
>>>> - hwaddr addr, const uint8_t *buf, int len, enum write_rom_type type)
>>>> +static inline void cpu_physical_memory_rw_internal(AddressSpace *as,
>>>> + hwaddr addr, uint8_t *buf, int len, MemTxAttrs attrs,
>>>> + enum write_rom_type type)
>>>> {
>>>> hwaddr l;
>>>> uint8_t *ptr;
>>>> @@ -3237,12 +3247,33 @@ static inline void cpu_physical_memory_write_rom_internal(AddressSpace *as,
>>>> if (!(memory_region_is_ram(mr) ||
>>>> memory_region_is_romd(mr))) {
>>>> l = memory_access_size(mr, l, addr1);
>>>> + /* Pass MMIO down to address address_space_rw */
>>>> + switch (type) {
>>>> + case READ_DATA:
>>>> + case WRITE_DATA:
>>>> + address_space_rw(as, addr1, attrs, buf, l,
>>>> + type == WRITE_DATA);
>>>> + break;
>>>> + case FLUSH_CACHE:
>>>> + break;
>>>> + }
>>>> } else {
>>>> /* ROM/RAM case */
>>>> ptr = qemu_map_ram_ptr(mr->ram_block, addr1);
>>>> switch (type) {
>>>> + case READ_DATA:
>>>> + if (mr->ram_debug_ops) {
>>>> + mr->ram_debug_ops->read(buf, ptr, l, attrs);
>>>> + } else {
>>>> + memcpy(buf, ptr, l);
>>>> + }
>>>> + break;
>>>> case WRITE_DATA:
>>>> - memcpy(ptr, buf, l);
>>>> + if (mr->ram_debug_ops) {
>>>> + mr->ram_debug_ops->write(ptr, buf, l, attrs);
>>>> + } else {
>>>> + memcpy(ptr, buf, l);
>>>> + }
>>>> invalidate_and_set_dirty(mr, addr1, l);
>>>> break;
>>>> case FLUSH_CACHE:
>>>> @@ -3261,7 +3292,8 @@ static inline void cpu_physical_memory_write_rom_internal(AddressSpace *as,
>>>> void cpu_physical_memory_write_rom(AddressSpace *as, hwaddr addr,
>>>> const uint8_t *buf, int len)
>>>> {
>>>> - cpu_physical_memory_write_rom_internal(as, addr, buf, len, WRITE_DATA);
>>>> + cpu_physical_memory_rw_internal(as, addr, (uint8_t *)buf, len,
>>>> + MEMTXATTRS_UNSPECIFIED, WRITE_DATA);
>>>> }
>>>>
>>>> void cpu_flush_icache_range(hwaddr start, int len)
>>>> @@ -3276,8 +3308,10 @@ void cpu_flush_icache_range(hwaddr start, int len)
>>>> return;
>>>> }
>>>>
>>>> - cpu_physical_memory_write_rom_internal(&address_space_memory,
>>>> - start, NULL, len, FLUSH_CACHE);
>>>> + cpu_physical_memory_rw_internal(&address_space_memory,
>>>> + start, NULL, len,
>>>> + MEMTXATTRS_UNSPECIFIED,
>>>> + FLUSH_CACHE);
>>>> }
>>>>
>>>> typedef struct {
>>>> @@ -3583,6 +3617,7 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
>>>> int l;
>>>> hwaddr phys_addr;
>>>> target_ulong page;
>>>> + int type = is_write ? WRITE_DATA : READ_DATA;
>>>>
>>>> cpu_synchronize_state(cpu);
>>>> while (len > 0) {
>>>> @@ -3592,6 +3627,10 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
>>>> page = addr & TARGET_PAGE_MASK;
>>>> phys_addr = cpu_get_phys_page_attrs_debug(cpu, page, &attrs);
>>>> asidx = cpu_asidx_from_attrs(cpu, attrs);
>>>> +
>>>> + /* set debug attrs to indicate memory access is from the debugger */
>>>> + attrs.debug = 1;
>>>> +
>>>> /* if no physical page mapped, return an error */
>>>> if (phys_addr == -1)
>>>> return -1;
>>>> @@ -3599,14 +3638,9 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
>>>> if (l > len)
>>>> l = len;
>>>> phys_addr += (addr & ~TARGET_PAGE_MASK);
>>>> - if (is_write) {
>>>> - cpu_physical_memory_write_rom(cpu->cpu_ases[asidx].as,
>>>> - phys_addr, buf, l);
>>>> - } else {
>>>> - address_space_rw(cpu->cpu_ases[asidx].as, phys_addr,
>>>> - MEMTXATTRS_UNSPECIFIED,
>>>> - buf, l, 0);
>>>> - }
>>>> + cpu_physical_memory_rw_internal(cpu->cpu_ases[asidx].as,
>>>> + phys_addr, buf, l, attrs,
>>>> + type);
>>>> len -= l;
>>>> buf += l;
>>>> addr += l;
>>>> diff --git a/include/exec/memory.h b/include/exec/memory.h
>>>> index 07c5d6d59796..4d027fffeebf 100644
>>>> --- a/include/exec/memory.h
>>>> +++ b/include/exec/memory.h
>>>> @@ -215,6 +215,18 @@ typedef struct IOMMUMemoryRegionClass {
>>>> typedef struct CoalescedMemoryRange CoalescedMemoryRange;
>>>> typedef struct MemoryRegionIoeventfd MemoryRegionIoeventfd;
>>>>
>>>> +/* Memory Region RAM debug callback */
>>>> +typedef struct MemoryRegionRAMReadWriteOps MemoryRegionRAMReadWriteOps;
>>>> +
>>>> +struct MemoryRegionRAMReadWriteOps {
>>>> + /* Write data into guest memory */
>>>> + int (*write) (uint8_t *dest, const uint8_t *src,
>>>> + uint32_t len, MemTxAttrs attrs);
>>>> + /* Read data from guest memory */
>>>> + int (*read) (uint8_t *dest, const uint8_t *src,
>>>> + uint32_t len, MemTxAttrs attrs);
>>>> +};
>>>> +
>>>> struct MemoryRegion {
>>>> Object parent_obj;
>>>>
>>>> @@ -254,6 +266,7 @@ struct MemoryRegion {
>>>> const char *name;
>>>> unsigned ioeventfd_nb;
>>>> MemoryRegionIoeventfd *ioeventfds;
>>>> + const MemoryRegionRAMReadWriteOps *ram_debug_ops;
>>>> };
>>>>
>>>> struct IOMMUMemoryRegion {
>>>> @@ -624,6 +637,20 @@ void memory_region_init_rom_device_nomigrate(MemoryRegion *mr,
>>>> Error **errp);
>>>>
>>>> /**
>>>> + * memory_region_set_ram_debug_ops: Set debug access ops for a given memory region
>>>> + *
>>>> + * @mr: the #MemoryRegion to be initialized
>>>> + * @ops: a function that will be used for when accessing @target region during
>>>> + * debug
>>>> + */
>>>> +static inline void
>>>> +memory_region_set_ram_debug_ops(MemoryRegion *mr,
>>>> + const MemoryRegionRAMReadWriteOps *ops)
>>>> +{
>>>> + mr->ram_debug_ops = ops;
>>>> +}
>>>> +
>>>> +/**
>>>> * memory_region_init_reservation: Initialize a memory region that reserves
>>>> * I/O space.
>>>> *
>>>> --
>>>> 2.9.5
>>>>
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 02/23] exec: add ram_debug_ops support
@ 2018-01-30 23:26 ` Brijesh Singh
0 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-30 23:26 UTC (permalink / raw)
To: Edgar E. Iglesias
Cc: brijesh.singh, qemu-devel, kvm, Paolo Bonzini, Tom Lendacky,
Peter Maydell, Richard Henderson, Dr. David Alan Gilbert,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Peter Crosthwaite, Richard Henderson
On 1/30/18 4:37 PM, Edgar E. Iglesias wrote:
> On Tue, Jan 30, 2018 at 04:34:37PM -0600, Brijesh Singh wrote:
>>
>> On 1/30/18 3:59 PM, Edgar E. Iglesias wrote:
>>> On Mon, Jan 29, 2018 at 11:41:11AM -0600, Brijesh Singh wrote:
>>>> Currently, the guest memory access for the debug purpose is performed
>>>> using the memcpy(). Lets extend the 'struct MemoryRegion' to include
>>>> ram_debug_ops callbacks. The ram_debug_ops can be used to override
>>>> memcpy() with something else.
>>>>
>>>> The feature can be used by encrypted guest -- which can register
>>>> callbacks to override memcpy() with memory encryption/decryption APIs.
>>>>
>>>> a typical usage:
>>>>
>>>> mem_read(uint8_t *dst, uint8_t *src, uint32_t len, MemTxAttrs *attrs);
>>>> mem_write(uint8_t *dst, uint8_t *src, uint32_t len, MemTxAttrs *attrs);
>>>>
>>>> MemoryRegionRAMReadWriteOps ops;
>>>> ops.read = mem_read;
>>>> ops.write = mem_write;
>>> Hi,
>>>
>>> Do these really need to be RAM specific (ram_debug_ops -> debug_ops) ?
>>> I was hoping a similar infrastructure could be used for MMIO
>>> debug accesses.
>> Hi Edgar,
>>
>> The MMIO regions will contains unencrypted data hence I do not find the
>> need to add debug hooks for it. A memcpy() to/from MMIO should be fine.
>> If we see the need for MMIO case then it can extended later.
> In this use-case yes, but in a general use-case MMIO regions may also
> want to differentiate debug from normal accesses.
>
> I'm not saying you need to implement MMIO examples but do we really
> need to have ram_debug_ops and mmio_debug_ops in the future?
> Can we get away with one somehow?
If anyone see this coming in near future then having one debug_ops makes
sense and it should be doable. If we decide to use debug_ops for MMIO
then I could see us needing to add a new argument to debug_ops callback
to let the client knows whether the access came MMIO vs RAM region
because client may do different things for RAM vs MMIO case (e.g in SEV
RAM is encrypted but MMIO is unencrypted).
> Cheers,
> Edgar
>
>> Brijesh
>>> Best regards,
>>> Edgar
>>>
>>>
>>>
>>>> memory_region_init_ram(mem, NULL, "memory", size, NULL);
>>>> memory_region_set_ram_debug_ops(mem, ops);
>>>>
>>>> Cc: Paolo Bonzini <pbonzini@redhat.com>
>>>> Cc: Peter Crosthwaite <crosthwaite.peter@gmail.com>
>>>> Cc: Richard Henderson <rth@twiddle.net>
>>>> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
>>>> ---
>>>> exec.c | 66 ++++++++++++++++++++++++++++++++++++++-------------
>>>> include/exec/memory.h | 27 +++++++++++++++++++++
>>>> 2 files changed, 77 insertions(+), 16 deletions(-)
>>>>
>>>> diff --git a/exec.c b/exec.c
>>>> index 629a5083851d..1919052b7385 100644
>>>> --- a/exec.c
>>>> +++ b/exec.c
>>>> @@ -3050,7 +3050,11 @@ static MemTxResult flatview_write_continue(FlatView *fv, hwaddr addr,
>>>> } else {
>>>> /* RAM case */
>>>> ptr = qemu_ram_ptr_length(mr->ram_block, addr1, &l, false);
>>>> - memcpy(ptr, buf, l);
>>>> + if (attrs.debug && mr->ram_debug_ops) {
>>>> + mr->ram_debug_ops->write(ptr, buf, l, attrs);
>>>> + } else {
>>>> + memcpy(ptr, buf, l);
>>>> + }
>>>> invalidate_and_set_dirty(mr, addr1, l);
>>>> }
>>>>
>>>> @@ -3148,7 +3152,11 @@ MemTxResult flatview_read_continue(FlatView *fv, hwaddr addr,
>>>> } else {
>>>> /* RAM case */
>>>> ptr = qemu_ram_ptr_length(mr->ram_block, addr1, &l, false);
>>>> - memcpy(buf, ptr, l);
>>>> + if (attrs.debug && mr->ram_debug_ops) {
>>>> + mr->ram_debug_ops->read(buf, ptr, l, attrs);
>>>> + } else {
>>>> + memcpy(buf, ptr, l);
>>>> + }
>>>> }
>>>>
>>>> if (release_lock) {
>>>> @@ -3218,11 +3226,13 @@ void cpu_physical_memory_rw(hwaddr addr, uint8_t *buf,
>>>>
>>>> enum write_rom_type {
>>>> WRITE_DATA,
>>>> + READ_DATA,
>>>> FLUSH_CACHE,
>>>> };
>>>>
>>>> -static inline void cpu_physical_memory_write_rom_internal(AddressSpace *as,
>>>> - hwaddr addr, const uint8_t *buf, int len, enum write_rom_type type)
>>>> +static inline void cpu_physical_memory_rw_internal(AddressSpace *as,
>>>> + hwaddr addr, uint8_t *buf, int len, MemTxAttrs attrs,
>>>> + enum write_rom_type type)
>>>> {
>>>> hwaddr l;
>>>> uint8_t *ptr;
>>>> @@ -3237,12 +3247,33 @@ static inline void cpu_physical_memory_write_rom_internal(AddressSpace *as,
>>>> if (!(memory_region_is_ram(mr) ||
>>>> memory_region_is_romd(mr))) {
>>>> l = memory_access_size(mr, l, addr1);
>>>> + /* Pass MMIO down to address address_space_rw */
>>>> + switch (type) {
>>>> + case READ_DATA:
>>>> + case WRITE_DATA:
>>>> + address_space_rw(as, addr1, attrs, buf, l,
>>>> + type == WRITE_DATA);
>>>> + break;
>>>> + case FLUSH_CACHE:
>>>> + break;
>>>> + }
>>>> } else {
>>>> /* ROM/RAM case */
>>>> ptr = qemu_map_ram_ptr(mr->ram_block, addr1);
>>>> switch (type) {
>>>> + case READ_DATA:
>>>> + if (mr->ram_debug_ops) {
>>>> + mr->ram_debug_ops->read(buf, ptr, l, attrs);
>>>> + } else {
>>>> + memcpy(buf, ptr, l);
>>>> + }
>>>> + break;
>>>> case WRITE_DATA:
>>>> - memcpy(ptr, buf, l);
>>>> + if (mr->ram_debug_ops) {
>>>> + mr->ram_debug_ops->write(ptr, buf, l, attrs);
>>>> + } else {
>>>> + memcpy(ptr, buf, l);
>>>> + }
>>>> invalidate_and_set_dirty(mr, addr1, l);
>>>> break;
>>>> case FLUSH_CACHE:
>>>> @@ -3261,7 +3292,8 @@ static inline void cpu_physical_memory_write_rom_internal(AddressSpace *as,
>>>> void cpu_physical_memory_write_rom(AddressSpace *as, hwaddr addr,
>>>> const uint8_t *buf, int len)
>>>> {
>>>> - cpu_physical_memory_write_rom_internal(as, addr, buf, len, WRITE_DATA);
>>>> + cpu_physical_memory_rw_internal(as, addr, (uint8_t *)buf, len,
>>>> + MEMTXATTRS_UNSPECIFIED, WRITE_DATA);
>>>> }
>>>>
>>>> void cpu_flush_icache_range(hwaddr start, int len)
>>>> @@ -3276,8 +3308,10 @@ void cpu_flush_icache_range(hwaddr start, int len)
>>>> return;
>>>> }
>>>>
>>>> - cpu_physical_memory_write_rom_internal(&address_space_memory,
>>>> - start, NULL, len, FLUSH_CACHE);
>>>> + cpu_physical_memory_rw_internal(&address_space_memory,
>>>> + start, NULL, len,
>>>> + MEMTXATTRS_UNSPECIFIED,
>>>> + FLUSH_CACHE);
>>>> }
>>>>
>>>> typedef struct {
>>>> @@ -3583,6 +3617,7 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
>>>> int l;
>>>> hwaddr phys_addr;
>>>> target_ulong page;
>>>> + int type = is_write ? WRITE_DATA : READ_DATA;
>>>>
>>>> cpu_synchronize_state(cpu);
>>>> while (len > 0) {
>>>> @@ -3592,6 +3627,10 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
>>>> page = addr & TARGET_PAGE_MASK;
>>>> phys_addr = cpu_get_phys_page_attrs_debug(cpu, page, &attrs);
>>>> asidx = cpu_asidx_from_attrs(cpu, attrs);
>>>> +
>>>> + /* set debug attrs to indicate memory access is from the debugger */
>>>> + attrs.debug = 1;
>>>> +
>>>> /* if no physical page mapped, return an error */
>>>> if (phys_addr == -1)
>>>> return -1;
>>>> @@ -3599,14 +3638,9 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
>>>> if (l > len)
>>>> l = len;
>>>> phys_addr += (addr & ~TARGET_PAGE_MASK);
>>>> - if (is_write) {
>>>> - cpu_physical_memory_write_rom(cpu->cpu_ases[asidx].as,
>>>> - phys_addr, buf, l);
>>>> - } else {
>>>> - address_space_rw(cpu->cpu_ases[asidx].as, phys_addr,
>>>> - MEMTXATTRS_UNSPECIFIED,
>>>> - buf, l, 0);
>>>> - }
>>>> + cpu_physical_memory_rw_internal(cpu->cpu_ases[asidx].as,
>>>> + phys_addr, buf, l, attrs,
>>>> + type);
>>>> len -= l;
>>>> buf += l;
>>>> addr += l;
>>>> diff --git a/include/exec/memory.h b/include/exec/memory.h
>>>> index 07c5d6d59796..4d027fffeebf 100644
>>>> --- a/include/exec/memory.h
>>>> +++ b/include/exec/memory.h
>>>> @@ -215,6 +215,18 @@ typedef struct IOMMUMemoryRegionClass {
>>>> typedef struct CoalescedMemoryRange CoalescedMemoryRange;
>>>> typedef struct MemoryRegionIoeventfd MemoryRegionIoeventfd;
>>>>
>>>> +/* Memory Region RAM debug callback */
>>>> +typedef struct MemoryRegionRAMReadWriteOps MemoryRegionRAMReadWriteOps;
>>>> +
>>>> +struct MemoryRegionRAMReadWriteOps {
>>>> + /* Write data into guest memory */
>>>> + int (*write) (uint8_t *dest, const uint8_t *src,
>>>> + uint32_t len, MemTxAttrs attrs);
>>>> + /* Read data from guest memory */
>>>> + int (*read) (uint8_t *dest, const uint8_t *src,
>>>> + uint32_t len, MemTxAttrs attrs);
>>>> +};
>>>> +
>>>> struct MemoryRegion {
>>>> Object parent_obj;
>>>>
>>>> @@ -254,6 +266,7 @@ struct MemoryRegion {
>>>> const char *name;
>>>> unsigned ioeventfd_nb;
>>>> MemoryRegionIoeventfd *ioeventfds;
>>>> + const MemoryRegionRAMReadWriteOps *ram_debug_ops;
>>>> };
>>>>
>>>> struct IOMMUMemoryRegion {
>>>> @@ -624,6 +637,20 @@ void memory_region_init_rom_device_nomigrate(MemoryRegion *mr,
>>>> Error **errp);
>>>>
>>>> /**
>>>> + * memory_region_set_ram_debug_ops: Set debug access ops for a given memory region
>>>> + *
>>>> + * @mr: the #MemoryRegion to be initialized
>>>> + * @ops: a function that will be used for when accessing @target region during
>>>> + * debug
>>>> + */
>>>> +static inline void
>>>> +memory_region_set_ram_debug_ops(MemoryRegion *mr,
>>>> + const MemoryRegionRAMReadWriteOps *ops)
>>>> +{
>>>> + mr->ram_debug_ops = ops;
>>>> +}
>>>> +
>>>> +/**
>>>> * memory_region_init_reservation: Initialize a memory region that reserves
>>>> * I/O space.
>>>> *
>>>> --
>>>> 2.9.5
>>>>
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [PATCH v6 05/23] target/i386: add memory encryption feature cpuid support
2018-01-30 21:46 ` [Qemu-devel] " Brijesh Singh
@ 2018-01-31 9:57 ` Dr. David Alan Gilbert
-1 siblings, 0 replies; 118+ messages in thread
From: Dr. David Alan Gilbert @ 2018-01-31 9:57 UTC (permalink / raw)
To: Brijesh Singh
Cc: qemu-devel, kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Eduardo Habkost,
Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Richard Henderson
* Brijesh Singh (brijesh.singh@amd.com) wrote:
>
>
> On 1/30/18 11:49 AM, Dr. David Alan Gilbert wrote:
> > * Brijesh Singh (brijesh.singh@amd.com) wrote:
> >> AMD EPYC processors support memory encryption feature. The feature
> >> is reported through CPUID 8000_001F[EAX].
> >>
> >> Fn8000_001F [EAX]:
> >> Bit 0 Secure Memory Encryption (SME) supported
> >> Bit 1 Secure Encrypted Virtualization (SEV) supported
> >> Bit 2 Page flush MSR supported
> >> Bit 3 Ecrypted State (SEV-ES) support
> >>
> >> when memory encryption feature is reported, CPUID 8000_001F[EBX] should
> >> provide additional information regarding the feature (such as which page
> >> table bit is used to mark pages as encrypted etc). The information in EBX
> >> and ECX may vary from one family to another hence we use the host cpuid
> >> to populate the EBX information.
> > That's going to make it interesting for migration. If the guest needs
> > to know that C-bit position then you presumably can't migrate between
> > those two host types, but we wouldn't have anything that currently
> > stops us.
> > We already have similar problems with variations in physical address
> > size but normally get away with that, especially on smaller VMs.
>
> Dave,
>
> While building the page tables guest need to know the C-bit position.
> The C-bit position in the guest is same as C-bit position on the host.
> For migration case, we should be able to migrate SEV guest on same host
> type (i.e all EPYC and Ryzen CPUs are based on family 17 and we should
> be okay migrating the SEV guests among those host types). Since C-bit
> position is not fixed hence migrating to different host family will be
> an issue.
Sure; so the interesting question is how would a management layer like
libvirt know when it's safe to migrate a guest between EPYC and a later
family that has the C-bit in a different location?
Dave
> -Brijesh
> > Dave
> >
> >
> >> The details for memory encryption CPUID is available in AMD APM
> >> (http://support.amd.com/TechDocs/24593.pdf) Section 15.34.1
> >> Cc: Paolo Bonzini <pbonzini@redhat.com>
> >> Cc: Richard Henderson <rth@twiddle.net>
> >> Cc: Eduardo Habkost <ehabkost@redhat.com>
> >> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
> >> ---
> >> target/i386/cpu.c | 36 ++++++++++++++++++++++++++++++++++++
> >> target/i386/cpu.h | 6 ++++++
> >> 2 files changed, 42 insertions(+)
> >>
> >> diff --git a/target/i386/cpu.c b/target/i386/cpu.c
> >> index a49d2221adc9..4147eb6e18a9 100644
> >> --- a/target/i386/cpu.c
> >> +++ b/target/i386/cpu.c
> >> @@ -234,6 +234,7 @@ static void x86_cpu_vendor_words2str(char *dst, uint32_t vendor1,
> >> #define TCG_EXT4_FEATURES 0
> >> #define TCG_SVM_FEATURES 0
> >> #define TCG_KVM_FEATURES 0
> >> +#define TCG_MEM_ENCRYPT_FEATURES 0
> >> #define TCG_7_0_EBX_FEATURES (CPUID_7_0_EBX_SMEP | CPUID_7_0_EBX_SMAP | \
> >> CPUID_7_0_EBX_BMI1 | CPUID_7_0_EBX_BMI2 | CPUID_7_0_EBX_ADX | \
> >> CPUID_7_0_EBX_PCOMMIT | CPUID_7_0_EBX_CLFLUSHOPT | \
> >> @@ -545,6 +546,20 @@ static FeatureWordInfo feature_word_info[FEATURE_WORDS] = {
> >> .cpuid_reg = R_EDX,
> >> .tcg_features = ~0U,
> >> },
> >> + [FEAT_MEM_ENCRYPT] = {
> >> + .feat_names = {
> >> + "sme", "sev", "page-flush-msr", "sev-es",
> >> + NULL, NULL, NULL, NULL,
> >> + NULL, NULL, NULL, NULL,
> >> + NULL, NULL, NULL, NULL,
> >> + NULL, NULL, NULL, NULL,
> >> + NULL, NULL, NULL, NULL,
> >> + NULL, NULL, NULL, NULL,
> >> + NULL, NULL, NULL, NULL,
> >> + },
> >> + .cpuid_eax = 0x8000001F, .cpuid_reg = R_EAX,
> >> + .tcg_features = TCG_MEM_ENCRYPT_FEATURES,
> >> + }
> >> };
> >>
> >> typedef struct X86RegisterInfo32 {
> >> @@ -1965,6 +1980,9 @@ static X86CPUDefinition builtin_x86_defs[] = {
> >> CPUID_XSAVE_XGETBV1,
> >> .features[FEAT_6_EAX] =
> >> CPUID_6_EAX_ARAT,
> >> + /* Missing: SEV_ES */
> >> + .features[FEAT_MEM_ENCRYPT] =
> >> + CPUID_8000_001F_EAX_SME | CPUID_8000_001F_EAX_SEV,
> >> .xlevel = 0x8000000A,
> >> .model_id = "AMD EPYC Processor",
> >> },
> >> @@ -3589,6 +3607,19 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count,
> >> *edx = 0;
> >> }
> >> break;
> >> + case 0x8000001F:
> >> + if (env->features[FEAT_MEM_ENCRYPT] & CPUID_8000_001F_EAX_SEV) {
> >> + *eax = env->features[FEAT_MEM_ENCRYPT];
> >> + host_cpuid(0x8000001F, 0, NULL, ebx, NULL, NULL);
> >> + *ecx = 0;
> >> + *edx = 0;
> >> + } else {
> >> + *eax = 0;
> >> + *ebx = 0;
> >> + *ecx = 0;
> >> + *edx = 0;
> >> + }
> >> + break;
> >> case 0xC0000000:
> >> *eax = env->cpuid_xlevel2;
> >> *ebx = 0;
> >> @@ -4036,10 +4067,15 @@ static void x86_cpu_expand_features(X86CPU *cpu, Error **errp)
> >> x86_cpu_adjust_feat_level(cpu, FEAT_C000_0001_EDX);
> >> x86_cpu_adjust_feat_level(cpu, FEAT_SVM);
> >> x86_cpu_adjust_feat_level(cpu, FEAT_XSAVE);
> >> + x86_cpu_adjust_feat_level(cpu, FEAT_MEM_ENCRYPT);
> >> /* SVM requires CPUID[0x8000000A] */
> >> if (env->features[FEAT_8000_0001_ECX] & CPUID_EXT3_SVM) {
> >> x86_cpu_adjust_level(cpu, &env->cpuid_min_xlevel, 0x8000000A);
> >> }
> >> + /* SEV requires CPUID[0x8000001F] */
> >> + if ((env->features[FEAT_MEM_ENCRYPT] & CPUID_8000_001F_EAX_SEV)) {
> >> + x86_cpu_adjust_level(cpu, &env->cpuid_min_xlevel, 0x8000001F);
> >> + }
> >> }
> >>
> >> /* Set cpuid_*level* based on cpuid_min_*level, if not explicitly set */
> >> diff --git a/target/i386/cpu.h b/target/i386/cpu.h
> >> index f91e37d25dea..f7a0ab20fdd1 100644
> >> --- a/target/i386/cpu.h
> >> +++ b/target/i386/cpu.h
> >> @@ -483,6 +483,7 @@ typedef enum FeatureWord {
> >> FEAT_6_EAX, /* CPUID[6].EAX */
> >> FEAT_XSAVE_COMP_LO, /* CPUID[EAX=0xd,ECX=0].EAX */
> >> FEAT_XSAVE_COMP_HI, /* CPUID[EAX=0xd,ECX=0].EDX */
> >> + FEAT_MEM_ENCRYPT, /* CPUID[8000_001F].EAX */
> >> FEATURE_WORDS,
> >> } FeatureWord;
> >>
> >> @@ -679,6 +680,11 @@ typedef uint32_t FeatureWordArray[FEATURE_WORDS];
> >>
> >> #define CPUID_6_EAX_ARAT (1U << 2)
> >>
> >> +#define CPUID_8000_001F_EAX_SME (1U << 0) /* SME */
> >> +#define CPUID_8000_001F_EAX_SEV (1U << 1) /* SEV */
> >> +#define CPUID_8000_001F_EAX_PAGE_FLUSH_MSR (1U << 2) /* Page flush MSR */
> >> +#define CPUID_8000_001F_EAX_SEV_ES (1U << 3) /* SEV-ES */
> >> +
> >> /* CPUID[0x80000007].EDX flags: */
> >> #define CPUID_APM_INVTSC (1U << 8)
> >>
> >> --
> >> 2.9.5
> >>
> > --
> > Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 05/23] target/i386: add memory encryption feature cpuid support
@ 2018-01-31 9:57 ` Dr. David Alan Gilbert
0 siblings, 0 replies; 118+ messages in thread
From: Dr. David Alan Gilbert @ 2018-01-31 9:57 UTC (permalink / raw)
To: Brijesh Singh
Cc: qemu-devel, kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Eduardo Habkost,
Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Richard Henderson
* Brijesh Singh (brijesh.singh@amd.com) wrote:
>
>
> On 1/30/18 11:49 AM, Dr. David Alan Gilbert wrote:
> > * Brijesh Singh (brijesh.singh@amd.com) wrote:
> >> AMD EPYC processors support memory encryption feature. The feature
> >> is reported through CPUID 8000_001F[EAX].
> >>
> >> Fn8000_001F [EAX]:
> >> Bit 0 Secure Memory Encryption (SME) supported
> >> Bit 1 Secure Encrypted Virtualization (SEV) supported
> >> Bit 2 Page flush MSR supported
> >> Bit 3 Ecrypted State (SEV-ES) support
> >>
> >> when memory encryption feature is reported, CPUID 8000_001F[EBX] should
> >> provide additional information regarding the feature (such as which page
> >> table bit is used to mark pages as encrypted etc). The information in EBX
> >> and ECX may vary from one family to another hence we use the host cpuid
> >> to populate the EBX information.
> > That's going to make it interesting for migration. If the guest needs
> > to know that C-bit position then you presumably can't migrate between
> > those two host types, but we wouldn't have anything that currently
> > stops us.
> > We already have similar problems with variations in physical address
> > size but normally get away with that, especially on smaller VMs.
>
> Dave,
>
> While building the page tables guest need to know the C-bit position.
> The C-bit position in the guest is same as C-bit position on the host.
> For migration case, we should be able to migrate SEV guest on same host
> type (i.e all EPYC and Ryzen CPUs are based on family 17 and we should
> be okay migrating the SEV guests among those host types). Since C-bit
> position is not fixed hence migrating to different host family will be
> an issue.
Sure; so the interesting question is how would a management layer like
libvirt know when it's safe to migrate a guest between EPYC and a later
family that has the C-bit in a different location?
Dave
> -Brijesh
> > Dave
> >
> >
> >> The details for memory encryption CPUID is available in AMD APM
> >> (http://support.amd.com/TechDocs/24593.pdf) Section 15.34.1
> >> Cc: Paolo Bonzini <pbonzini@redhat.com>
> >> Cc: Richard Henderson <rth@twiddle.net>
> >> Cc: Eduardo Habkost <ehabkost@redhat.com>
> >> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
> >> ---
> >> target/i386/cpu.c | 36 ++++++++++++++++++++++++++++++++++++
> >> target/i386/cpu.h | 6 ++++++
> >> 2 files changed, 42 insertions(+)
> >>
> >> diff --git a/target/i386/cpu.c b/target/i386/cpu.c
> >> index a49d2221adc9..4147eb6e18a9 100644
> >> --- a/target/i386/cpu.c
> >> +++ b/target/i386/cpu.c
> >> @@ -234,6 +234,7 @@ static void x86_cpu_vendor_words2str(char *dst, uint32_t vendor1,
> >> #define TCG_EXT4_FEATURES 0
> >> #define TCG_SVM_FEATURES 0
> >> #define TCG_KVM_FEATURES 0
> >> +#define TCG_MEM_ENCRYPT_FEATURES 0
> >> #define TCG_7_0_EBX_FEATURES (CPUID_7_0_EBX_SMEP | CPUID_7_0_EBX_SMAP | \
> >> CPUID_7_0_EBX_BMI1 | CPUID_7_0_EBX_BMI2 | CPUID_7_0_EBX_ADX | \
> >> CPUID_7_0_EBX_PCOMMIT | CPUID_7_0_EBX_CLFLUSHOPT | \
> >> @@ -545,6 +546,20 @@ static FeatureWordInfo feature_word_info[FEATURE_WORDS] = {
> >> .cpuid_reg = R_EDX,
> >> .tcg_features = ~0U,
> >> },
> >> + [FEAT_MEM_ENCRYPT] = {
> >> + .feat_names = {
> >> + "sme", "sev", "page-flush-msr", "sev-es",
> >> + NULL, NULL, NULL, NULL,
> >> + NULL, NULL, NULL, NULL,
> >> + NULL, NULL, NULL, NULL,
> >> + NULL, NULL, NULL, NULL,
> >> + NULL, NULL, NULL, NULL,
> >> + NULL, NULL, NULL, NULL,
> >> + NULL, NULL, NULL, NULL,
> >> + },
> >> + .cpuid_eax = 0x8000001F, .cpuid_reg = R_EAX,
> >> + .tcg_features = TCG_MEM_ENCRYPT_FEATURES,
> >> + }
> >> };
> >>
> >> typedef struct X86RegisterInfo32 {
> >> @@ -1965,6 +1980,9 @@ static X86CPUDefinition builtin_x86_defs[] = {
> >> CPUID_XSAVE_XGETBV1,
> >> .features[FEAT_6_EAX] =
> >> CPUID_6_EAX_ARAT,
> >> + /* Missing: SEV_ES */
> >> + .features[FEAT_MEM_ENCRYPT] =
> >> + CPUID_8000_001F_EAX_SME | CPUID_8000_001F_EAX_SEV,
> >> .xlevel = 0x8000000A,
> >> .model_id = "AMD EPYC Processor",
> >> },
> >> @@ -3589,6 +3607,19 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count,
> >> *edx = 0;
> >> }
> >> break;
> >> + case 0x8000001F:
> >> + if (env->features[FEAT_MEM_ENCRYPT] & CPUID_8000_001F_EAX_SEV) {
> >> + *eax = env->features[FEAT_MEM_ENCRYPT];
> >> + host_cpuid(0x8000001F, 0, NULL, ebx, NULL, NULL);
> >> + *ecx = 0;
> >> + *edx = 0;
> >> + } else {
> >> + *eax = 0;
> >> + *ebx = 0;
> >> + *ecx = 0;
> >> + *edx = 0;
> >> + }
> >> + break;
> >> case 0xC0000000:
> >> *eax = env->cpuid_xlevel2;
> >> *ebx = 0;
> >> @@ -4036,10 +4067,15 @@ static void x86_cpu_expand_features(X86CPU *cpu, Error **errp)
> >> x86_cpu_adjust_feat_level(cpu, FEAT_C000_0001_EDX);
> >> x86_cpu_adjust_feat_level(cpu, FEAT_SVM);
> >> x86_cpu_adjust_feat_level(cpu, FEAT_XSAVE);
> >> + x86_cpu_adjust_feat_level(cpu, FEAT_MEM_ENCRYPT);
> >> /* SVM requires CPUID[0x8000000A] */
> >> if (env->features[FEAT_8000_0001_ECX] & CPUID_EXT3_SVM) {
> >> x86_cpu_adjust_level(cpu, &env->cpuid_min_xlevel, 0x8000000A);
> >> }
> >> + /* SEV requires CPUID[0x8000001F] */
> >> + if ((env->features[FEAT_MEM_ENCRYPT] & CPUID_8000_001F_EAX_SEV)) {
> >> + x86_cpu_adjust_level(cpu, &env->cpuid_min_xlevel, 0x8000001F);
> >> + }
> >> }
> >>
> >> /* Set cpuid_*level* based on cpuid_min_*level, if not explicitly set */
> >> diff --git a/target/i386/cpu.h b/target/i386/cpu.h
> >> index f91e37d25dea..f7a0ab20fdd1 100644
> >> --- a/target/i386/cpu.h
> >> +++ b/target/i386/cpu.h
> >> @@ -483,6 +483,7 @@ typedef enum FeatureWord {
> >> FEAT_6_EAX, /* CPUID[6].EAX */
> >> FEAT_XSAVE_COMP_LO, /* CPUID[EAX=0xd,ECX=0].EAX */
> >> FEAT_XSAVE_COMP_HI, /* CPUID[EAX=0xd,ECX=0].EDX */
> >> + FEAT_MEM_ENCRYPT, /* CPUID[8000_001F].EAX */
> >> FEATURE_WORDS,
> >> } FeatureWord;
> >>
> >> @@ -679,6 +680,11 @@ typedef uint32_t FeatureWordArray[FEATURE_WORDS];
> >>
> >> #define CPUID_6_EAX_ARAT (1U << 2)
> >>
> >> +#define CPUID_8000_001F_EAX_SME (1U << 0) /* SME */
> >> +#define CPUID_8000_001F_EAX_SEV (1U << 1) /* SEV */
> >> +#define CPUID_8000_001F_EAX_PAGE_FLUSH_MSR (1U << 2) /* Page flush MSR */
> >> +#define CPUID_8000_001F_EAX_SEV_ES (1U << 3) /* SEV-ES */
> >> +
> >> /* CPUID[0x80000007].EDX flags: */
> >> #define CPUID_APM_INVTSC (1U << 8)
> >>
> >> --
> >> 2.9.5
> >>
> > --
> > Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [PATCH v6 05/23] target/i386: add memory encryption feature cpuid support
2018-01-30 21:46 ` [Qemu-devel] " Brijesh Singh
@ 2018-01-31 13:41 ` Eduardo Habkost
-1 siblings, 0 replies; 118+ messages in thread
From: Eduardo Habkost @ 2018-01-31 13:41 UTC (permalink / raw)
To: Brijesh Singh
Cc: Dr. David Alan Gilbert, qemu-devel, kvm, Paolo Bonzini,
Tom Lendacky, Peter Maydell, Richard Henderson,
Edgar E. Iglesias, Stefan Hajnoczi, Eric Blake,
Michael S. Tsirkin, Daniel P . Berrange, Richard Henderson
On Tue, Jan 30, 2018 at 03:46:45PM -0600, Brijesh Singh wrote:
>
>
> On 1/30/18 11:49 AM, Dr. David Alan Gilbert wrote:
> > * Brijesh Singh (brijesh.singh@amd.com) wrote:
> >> AMD EPYC processors support memory encryption feature. The feature
> >> is reported through CPUID 8000_001F[EAX].
> >>
> >> Fn8000_001F [EAX]:
> >> Bit 0 Secure Memory Encryption (SME) supported
> >> Bit 1 Secure Encrypted Virtualization (SEV) supported
> >> Bit 2 Page flush MSR supported
> >> Bit 3 Ecrypted State (SEV-ES) support
> >>
> >> when memory encryption feature is reported, CPUID 8000_001F[EBX] should
> >> provide additional information regarding the feature (such as which page
> >> table bit is used to mark pages as encrypted etc). The information in EBX
> >> and ECX may vary from one family to another hence we use the host cpuid
> >> to populate the EBX information.
> > That's going to make it interesting for migration. If the guest needs
> > to know that C-bit position then you presumably can't migrate between
> > those two host types, but we wouldn't have anything that currently
> > stops us.
> > We already have similar problems with variations in physical address
> > size but normally get away with that, especially on smaller VMs.
>
> Dave,
>
> While building the page tables guest need to know the C-bit position.
> The C-bit position in the guest is same as C-bit position on the host.
> For migration case, we should be able to migrate SEV guest on same host
> type (i.e all EPYC and Ryzen CPUs are based on family 17 and we should
> be okay migrating the SEV guests among those host types). Since C-bit
> position is not fixed hence migrating to different host family will be
> an issue.
Thanks for the explanation. If this affects ability to migrate,
you need to either:
a) not report the "sev" property on
query-cpu-model-expansion type=static output (because the
feature is not migration-safe); or
b) make the C-bit position configurable, and let management
explicitly specify it. In this case, you need to validate the
configured C-bit position and prevent the VM from running if
it doesn't match the host. This is more work, but would make
the feature migration-safe and more useful for management
software.
Option (b) is preferred because it lets management software
ensure the VM is migratable to a host before starting migration.
There was a very recent discussion about migration-safe features
and the problems with relaying host CPUID data directly to the
guest. Look for the "i386: Add Intel Processor Trace feature
support" threads in qemu-devel for more info.
I'm looking for a way to document these rules concisely so people
touching the CPUID code are aware of the available options.
--
Eduardo
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 05/23] target/i386: add memory encryption feature cpuid support
@ 2018-01-31 13:41 ` Eduardo Habkost
0 siblings, 0 replies; 118+ messages in thread
From: Eduardo Habkost @ 2018-01-31 13:41 UTC (permalink / raw)
To: Brijesh Singh
Cc: Dr. David Alan Gilbert, qemu-devel, kvm, Paolo Bonzini,
Tom Lendacky, Peter Maydell, Richard Henderson,
Edgar E. Iglesias, Stefan Hajnoczi, Eric Blake,
Michael S. Tsirkin, Daniel P . Berrange, Richard Henderson
On Tue, Jan 30, 2018 at 03:46:45PM -0600, Brijesh Singh wrote:
>
>
> On 1/30/18 11:49 AM, Dr. David Alan Gilbert wrote:
> > * Brijesh Singh (brijesh.singh@amd.com) wrote:
> >> AMD EPYC processors support memory encryption feature. The feature
> >> is reported through CPUID 8000_001F[EAX].
> >>
> >> Fn8000_001F [EAX]:
> >> Bit 0 Secure Memory Encryption (SME) supported
> >> Bit 1 Secure Encrypted Virtualization (SEV) supported
> >> Bit 2 Page flush MSR supported
> >> Bit 3 Ecrypted State (SEV-ES) support
> >>
> >> when memory encryption feature is reported, CPUID 8000_001F[EBX] should
> >> provide additional information regarding the feature (such as which page
> >> table bit is used to mark pages as encrypted etc). The information in EBX
> >> and ECX may vary from one family to another hence we use the host cpuid
> >> to populate the EBX information.
> > That's going to make it interesting for migration. If the guest needs
> > to know that C-bit position then you presumably can't migrate between
> > those two host types, but we wouldn't have anything that currently
> > stops us.
> > We already have similar problems with variations in physical address
> > size but normally get away with that, especially on smaller VMs.
>
> Dave,
>
> While building the page tables guest need to know the C-bit position.
> The C-bit position in the guest is same as C-bit position on the host.
> For migration case, we should be able to migrate SEV guest on same host
> type (i.e all EPYC and Ryzen CPUs are based on family 17 and we should
> be okay migrating the SEV guests among those host types). Since C-bit
> position is not fixed hence migrating to different host family will be
> an issue.
Thanks for the explanation. If this affects ability to migrate,
you need to either:
a) not report the "sev" property on
query-cpu-model-expansion type=static output (because the
feature is not migration-safe); or
b) make the C-bit position configurable, and let management
explicitly specify it. In this case, you need to validate the
configured C-bit position and prevent the VM from running if
it doesn't match the host. This is more work, but would make
the feature migration-safe and more useful for management
software.
Option (b) is preferred because it lets management software
ensure the VM is migratable to a host before starting migration.
There was a very recent discussion about migration-safe features
and the problems with relaying host CPUID data directly to the
guest. Look for the "i386: Add Intel Processor Trace feature
support" threads in qemu-devel for more info.
I'm looking for a way to document these rules concisely so people
touching the CPUID code are aware of the available options.
--
Eduardo
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [PATCH v6 05/23] target/i386: add memory encryption feature cpuid support
2018-01-31 13:41 ` [Qemu-devel] " Eduardo Habkost
@ 2018-01-31 16:05 ` Brijesh Singh
-1 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-31 16:05 UTC (permalink / raw)
To: Eduardo Habkost
Cc: brijesh.singh, Dr. David Alan Gilbert, qemu-devel, kvm,
Paolo Bonzini, Tom Lendacky, Peter Maydell, Richard Henderson,
Edgar E. Iglesias, Stefan Hajnoczi, Eric Blake,
Michael S. Tsirkin, Daniel P . Berrange, Richard Henderson
On 01/31/2018 07:41 AM, Eduardo Habkost wrote:
> On Tue, Jan 30, 2018 at 03:46:45PM -0600, Brijesh Singh wrote:
>>
>>
>> On 1/30/18 11:49 AM, Dr. David Alan Gilbert wrote:
>>> * Brijesh Singh (brijesh.singh@amd.com) wrote:
>>>> AMD EPYC processors support memory encryption feature. The feature
>>>> is reported through CPUID 8000_001F[EAX].
>>>>
>>>> Fn8000_001F [EAX]:
>>>> Bit 0 Secure Memory Encryption (SME) supported
>>>> Bit 1 Secure Encrypted Virtualization (SEV) supported
>>>> Bit 2 Page flush MSR supported
>>>> Bit 3 Ecrypted State (SEV-ES) support
>>>>
>>>> when memory encryption feature is reported, CPUID 8000_001F[EBX] should
>>>> provide additional information regarding the feature (such as which page
>>>> table bit is used to mark pages as encrypted etc). The information in EBX
>>>> and ECX may vary from one family to another hence we use the host cpuid
>>>> to populate the EBX information.
>>> That's going to make it interesting for migration. If the guest needs
>>> to know that C-bit position then you presumably can't migrate between
>>> those two host types, but we wouldn't have anything that currently
>>> stops us.
>>> We already have similar problems with variations in physical address
>>> size but normally get away with that, especially on smaller VMs.
>>
>> Dave,
>>
>> While building the page tables guest need to know the C-bit position.
>> The C-bit position in the guest is same as C-bit position on the host.
>> For migration case, we should be able to migrate SEV guest on same host
>> type (i.e all EPYC and Ryzen CPUs are based on family 17 and we should
>> be okay migrating the SEV guests among those host types). Since C-bit
>> position is not fixed hence migrating to different host family will be
>> an issue.
>
> Thanks for the explanation. If this affects ability to migrate,
> you need to either:
> a) not report the "sev" property on
> query-cpu-model-expansion type=static output (because the
> feature is not migration-safe); or
> b) make the C-bit position configurable, and let management
> explicitly specify it. In this case, you need to validate the
> configured C-bit position and prevent the VM from running if
> it doesn't match the host. This is more work, but would make
> the feature migration-safe and more useful for management
> software.
>
> Option (b) is preferred because it lets management software
> ensure the VM is migratable to a host before starting migration.
>
> There was a very recent discussion about migration-safe features
> and the problems with relaying host CPUID data directly to the
> guest. Look for the "i386: Add Intel Processor Trace feature
> support" threads in qemu-devel for more info.
>
> I'm looking for a way to document these rules concisely so people
> touching the CPUID code are aware of the available options.
>
I also prefer Option (b). In next series, I will extend the sev-guest
object to add a new property (cbitpos). Management software stack can
use this property to pass the c-bit position and we validate it. Thanks
for the feedback.
-Brijesh
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 05/23] target/i386: add memory encryption feature cpuid support
@ 2018-01-31 16:05 ` Brijesh Singh
0 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-01-31 16:05 UTC (permalink / raw)
To: Eduardo Habkost
Cc: brijesh.singh, Dr. David Alan Gilbert, qemu-devel, kvm,
Paolo Bonzini, Tom Lendacky, Peter Maydell, Richard Henderson,
Edgar E. Iglesias, Stefan Hajnoczi, Eric Blake,
Michael S. Tsirkin, Daniel P . Berrange, Richard Henderson
On 01/31/2018 07:41 AM, Eduardo Habkost wrote:
> On Tue, Jan 30, 2018 at 03:46:45PM -0600, Brijesh Singh wrote:
>>
>>
>> On 1/30/18 11:49 AM, Dr. David Alan Gilbert wrote:
>>> * Brijesh Singh (brijesh.singh@amd.com) wrote:
>>>> AMD EPYC processors support memory encryption feature. The feature
>>>> is reported through CPUID 8000_001F[EAX].
>>>>
>>>> Fn8000_001F [EAX]:
>>>> Bit 0 Secure Memory Encryption (SME) supported
>>>> Bit 1 Secure Encrypted Virtualization (SEV) supported
>>>> Bit 2 Page flush MSR supported
>>>> Bit 3 Ecrypted State (SEV-ES) support
>>>>
>>>> when memory encryption feature is reported, CPUID 8000_001F[EBX] should
>>>> provide additional information regarding the feature (such as which page
>>>> table bit is used to mark pages as encrypted etc). The information in EBX
>>>> and ECX may vary from one family to another hence we use the host cpuid
>>>> to populate the EBX information.
>>> That's going to make it interesting for migration. If the guest needs
>>> to know that C-bit position then you presumably can't migrate between
>>> those two host types, but we wouldn't have anything that currently
>>> stops us.
>>> We already have similar problems with variations in physical address
>>> size but normally get away with that, especially on smaller VMs.
>>
>> Dave,
>>
>> While building the page tables guest need to know the C-bit position.
>> The C-bit position in the guest is same as C-bit position on the host.
>> For migration case, we should be able to migrate SEV guest on same host
>> type (i.e all EPYC and Ryzen CPUs are based on family 17 and we should
>> be okay migrating the SEV guests among those host types). Since C-bit
>> position is not fixed hence migrating to different host family will be
>> an issue.
>
> Thanks for the explanation. If this affects ability to migrate,
> you need to either:
> a) not report the "sev" property on
> query-cpu-model-expansion type=static output (because the
> feature is not migration-safe); or
> b) make the C-bit position configurable, and let management
> explicitly specify it. In this case, you need to validate the
> configured C-bit position and prevent the VM from running if
> it doesn't match the host. This is more work, but would make
> the feature migration-safe and more useful for management
> software.
>
> Option (b) is preferred because it lets management software
> ensure the VM is migratable to a host before starting migration.
>
> There was a very recent discussion about migration-safe features
> and the problems with relaying host CPUID data directly to the
> guest. Look for the "i386: Add Intel Processor Trace feature
> support" threads in qemu-devel for more info.
>
> I'm looking for a way to document these rules concisely so people
> touching the CPUID code are aware of the available options.
>
I also prefer Option (b). In next series, I will extend the sev-guest
object to add a new property (cbitpos). Management software stack can
use this property to pass the c-bit position and we validate it. Thanks
for the feedback.
-Brijesh
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 13/23] hmp: display memory encryption support in 'info kvm'
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
(?)
@ 2018-01-31 17:43 ` Markus Armbruster
2018-02-01 15:21 ` Brijesh Singh
-1 siblings, 1 reply; 118+ messages in thread
From: Markus Armbruster @ 2018-01-31 17:43 UTC (permalink / raw)
To: Brijesh Singh
Cc: qemu-devel, Edgar E. Iglesias, Peter Maydell, Eduardo Habkost,
kvm, Tom Lendacky, Stefan Hajnoczi, Michael S. Tsirkin,
Richard Henderson, Dr. David Alan Gilbert, Paolo Bonzini
Brijesh Singh <brijesh.singh@amd.com> writes:
> update 'info kvm' to display the memory encryption support.
>
> (qemu) info kvm
> kvm support: enabled
> memory encryption: disabled
>
> Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> Cc: Eric Blake <eblake@redhat.com>
> Cc: Markus Armbruster <armbru@redhat.com>
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
> ---
> hmp.c | 2 ++
> qapi-schema.json | 5 ++++-
> qmp.c | 1 +
> 3 files changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/hmp.c b/hmp.c
> index 056bf70cf1e2..6ceb6b30af75 100644
> --- a/hmp.c
> +++ b/hmp.c
> @@ -88,6 +88,8 @@ void hmp_info_kvm(Monitor *mon, const QDict *qdict)
> monitor_printf(mon, "kvm support: ");
> if (info->present) {
> monitor_printf(mon, "%s\n", info->enabled ? "enabled" : "disabled");
> + monitor_printf(mon, "memory encryption: %s\n",
> + info->mem_encryption ? "enabled" : "disabled");
> } else {
> monitor_printf(mon, "not compiled\n");
> }
> diff --git a/qapi-schema.json b/qapi-schema.json
> index 5c06745c7927..2046c96669bf 100644
> --- a/qapi-schema.json
> +++ b/qapi-schema.json
> @@ -314,9 +314,12 @@
> #
> # @present: true if KVM acceleration is built into this executable
> #
> +# @mem-encryption: true if Memory Encryption is active (since 2.12)
> +#
> # Since: 0.14.0
> ##
> -{ 'struct': 'KvmInfo', 'data': {'enabled': 'bool', 'present': 'bool'} }
> +{ 'struct': 'KvmInfo', 'data': {'enabled': 'bool', 'present': 'bool',
> + 'mem-encryption' : 'bool'} }
This extends QMP's query-kvm. Your commit message claims the patch
affects only HMP. Needs fixing. The cleanest way is to split the patch
into its QMP part (hunks #2 and #3) and its HMP part (hunk #1).
>
> ##
> # @query-kvm:
> diff --git a/qmp.c b/qmp.c
> index 52cfd2d81c0f..3a527bc8c39c 100644
> --- a/qmp.c
> +++ b/qmp.c
> @@ -69,6 +69,7 @@ KvmInfo *qmp_query_kvm(Error **errp)
>
> info->enabled = kvm_enabled();
> info->present = kvm_available();
> + info->mem_encryption = kvm_memcrypt_enabled();
>
> return info;
> }
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 17/23] qapi: add SEV_MEASUREMENT event
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
(?)
@ 2018-01-31 17:45 ` Markus Armbruster
2018-02-01 15:25 ` Brijesh Singh
-1 siblings, 1 reply; 118+ messages in thread
From: Markus Armbruster @ 2018-01-31 17:45 UTC (permalink / raw)
To: Brijesh Singh
Cc: qemu-devel, Edgar E. Iglesias, Peter Maydell, Eduardo Habkost,
kvm, Tom Lendacky, Stefan Hajnoczi, Michael S. Tsirkin,
Richard Henderson, Dr. David Alan Gilbert, Paolo Bonzini
Brijesh Singh <brijesh.singh@amd.com> writes:
> Add SEV_MEASUREMENT event which can be used by libvirt to get the
> measurement of the memory regions encrypted through the SEV launch
> flow. The measurement value is base64 encoded.
>
> Cc: Daniel P. Berrange <berrange@redhat.com>
> Cc: Eric Blake <eblake@redhat.com>
> Cc: Markus Armbruster <armbru@redhat.com>
> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
> ---
> qapi-schema.json | 13 +++++++++++++
> 1 file changed, 13 insertions(+)
>
> diff --git a/qapi-schema.json b/qapi-schema.json
> index 2046c96669bf..e1f5d14e2e3f 100644
> --- a/qapi-schema.json
> +++ b/qapi-schema.json
> @@ -3192,3 +3192,16 @@
> # Since: 2.11
> ##
> { 'command': 'watchdog-set-action', 'data' : {'action': 'WatchdogAction'} }
> +
> +##
> +# @SEV_MEASUREMENT:
> +#
> +# Emitted when measurement is available for the SEV guest.
> +#
> +# @value: measurement value encoded in base64
> +#
> +# Since: 2.12
> +#
> +##
> +{ 'event' : 'SEV_MEASUREMENT',
> + 'data' : { 'value' : 'str' } }
New event -> automatic question: do we need a way to poll for this
information? Say when an event could get lost during a libvirt restart.
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [PATCH v6 10/23] sev: add command to initialize the memory encryption context
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
@ 2018-02-01 12:13 ` Dr. David Alan Gilbert
-1 siblings, 0 replies; 118+ messages in thread
From: Dr. David Alan Gilbert @ 2018-02-01 12:13 UTC (permalink / raw)
To: Brijesh Singh
Cc: qemu-devel, kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Eduardo Habkost,
Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange
* Brijesh Singh (brijesh.singh@amd.com) wrote:
> When memory encryption is enabled, KVM_SEV_INIT command is used to
> initialize the platform. The command loads the SEV related persistent
> data from non-volatile storage and initializes the platform context.
> This command should be first issued before invoking any other guest
> commands provided by the SEV firmware.
Some minor comments rather than full review.
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
> ---
> accel/kvm/kvm-all.c | 15 ++++++
> accel/kvm/sev.c | 124 +++++++++++++++++++++++++++++++++++++++++++++++++
> accel/kvm/trace-events | 2 +
> include/sysemu/sev.h | 10 ++++
> 4 files changed, 151 insertions(+)
>
> diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c
> index f290f487a573..a9b16846675e 100644
> --- a/accel/kvm/kvm-all.c
> +++ b/accel/kvm/kvm-all.c
> @@ -38,6 +38,7 @@
> #include "qemu/event_notifier.h"
> #include "trace.h"
> #include "hw/irq.h"
> +#include "sysemu/sev.h"
>
> #include "hw/boards.h"
>
> @@ -103,6 +104,9 @@ struct KVMState
> #endif
> KVMMemoryListener memory_listener;
> QLIST_HEAD(, KVMParkedVcpu) kvm_parked_vcpus;
> +
> + /* memory encryption */
> + void *memcrypt_handle;
> };
>
> KVMState *kvm_state;
> @@ -1632,6 +1636,17 @@ static int kvm_init(MachineState *ms)
>
> kvm_state = s;
>
> + /*
> + * if memory encryption object is specified then initialize the memory
> + * encryption context.
> + * */
Style: should be */
> + if (ms->memory_encryption) {
> + kvm_state->memcrypt_handle = sev_guest_init(ms->memory_encryption);
> + if (!kvm_state->memcrypt_handle) {
> + goto err;
> + }
> + }
> +
> ret = kvm_arch_init(ms, s);
> if (ret < 0) {
> goto err;
> diff --git a/accel/kvm/sev.c b/accel/kvm/sev.c
> index e93fdfeb0c8f..be1791e510b3 100644
> --- a/accel/kvm/sev.c
> +++ b/accel/kvm/sev.c
> @@ -18,10 +18,72 @@
> #include "sysemu/kvm.h"
> #include "sysemu/sev.h"
> #include "sysemu/sysemu.h"
> +#include "trace.h"
>
> #define DEFAULT_GUEST_POLICY 0x1 /* disable debug */
> #define DEFAULT_SEV_DEVICE "/dev/sev"
>
> +static int sev_fd;
> +
> +#define SEV_FW_MAX_ERROR 0x17
> +
> +static char sev_fw_errlist[SEV_FW_MAX_ERROR][100] = {
Perhaps:
static const char *sev_few_errlist[] = {
?
> + "",
> + "Platform state is invalid",
> + "Guest state is invalid",
> + "Platform configuration is invalid",
> + "Buffer too small",
> + "Platform is already owned",
> + "Certificate is invalid",
> + "Policy is not allowed",
> + "Guest is not active",
> + "Invalid address",
> + "Bad signature",
> + "Bad measurement",
> + "Asid is already owned",
> + "Invalid ASID",
> + "WBINVD is required",
> + "DF_FLUSH is required",
> + "Guest handle is invalid",
> + "Invalid command",
> + "Guest is active",
> + "Hardware error",
> + "Hardware unsafe",
> + "Feature not supported",
> + "Invalid parameter"
> +};
> +
> +static int
> +sev_ioctl(int cmd, void *data, int *error)
> +{
> + int r;
> + struct kvm_sev_cmd input;
> +
> + memset(&input, 0x0, sizeof(input));
> +
> + input.id = cmd;
> + input.sev_fd = sev_fd;
> + input.data = (__u64)data;
> +
> + r = kvm_vm_ioctl(kvm_state, KVM_MEMORY_ENCRYPT_OP, &input);
> +
> + if (error) {
> + *error = input.error;
> + }
> +
> + return r;
> +}
> +
> +static char *
> +fw_error_to_str(int code)
> +{
> + if (code > SEV_FW_MAX_ERROR) {
I'm trying to convince myself whether that should be >= and whether the
maximum error is really 0x16 ? Your list up there has 23 entries
so I think trying to access error 0x17 would be bad.
> + return NULL;
It might be better to return 'No error' or the like unless you're going
to be testing for NULL; that way you never end up with a Null getting
out.
> + }
> +
> + return sev_fw_errlist[code];
> +}
> +
> static void
> qsev_guest_finalize(Object *obj)
> {
> @@ -170,6 +232,68 @@ static const TypeInfo qsev_guest_info = {
> }
> };
>
> +static QSevGuestInfo *
> +lookup_sev_guest_info(const char *id)
> +{
> + Object *obj;
> + QSevGuestInfo *info;
> +
> + obj = object_resolve_path_component(object_get_objects_root(), id);
> + if (!obj) {
> + return NULL;
> + }
> +
> + info = (QSevGuestInfo *)
> + object_dynamic_cast(obj, TYPE_QSEV_GUEST_INFO);
> + if (!info) {
> + return NULL;
> + }
> +
> + return info;
> +}
> +
> +void *
> +sev_guest_init(const char *id)
> +{
> + SEVState *s;
> + char *devname;
> + int ret, fw_error;
> +
> + s = g_malloc0(sizeof(SEVState));
g_new0 is easier.
> + if (!s) {
> + return NULL;
> + }
and allocation aborts rather than returning NULL (unless you use the
_try_ version of g_new)
> +
> + s->sev_info = lookup_sev_guest_info(id);
> + if (!s->sev_info) {
> + error_report("%s: '%s' is not a valid '%s' object",
> + __func__, id, TYPE_QSEV_GUEST_INFO);
> + goto err;
> + }
> +
> + devname = object_property_get_str(OBJECT(s->sev_info), "sev-device", NULL);
> + sev_fd = open(devname, O_RDWR);
> + if (sev_fd < 0) {
> + error_report("%s: Failed to open %s '%s'", __func__,
> + devname, strerror(errno));
> + goto err;
> + }
> + g_free(devname);
> +
> + trace_kvm_sev_init();
> + ret = sev_ioctl(KVM_SEV_INIT, NULL, &fw_error);
> + if (ret) {
> + error_report("%s: failed to initialize ret=%d fw_error=%d '%s'",
> + __func__, ret, fw_error, fw_error_to_str(fw_error));
> + goto err;
> + }
> +
> + return s;
> +err:
> + g_free(s);
> + return NULL;
> +}
> +
> static void
> sev_register_types(void)
> {
> diff --git a/accel/kvm/trace-events b/accel/kvm/trace-events
> index f89ba5578dc1..ea487e5a5913 100644
> --- a/accel/kvm/trace-events
> +++ b/accel/kvm/trace-events
> @@ -13,3 +13,5 @@ kvm_irqchip_add_msi_route(char *name, int vector, int virq) "dev %s vector %d vi
> kvm_irqchip_update_msi_route(int virq) "Updating MSI route virq=%d"
> kvm_irqchip_release_virq(int virq) "virq %d"
>
> +# sev.c
> +kvm_sev_init(void) ""
> diff --git a/include/sysemu/sev.h b/include/sysemu/sev.h
> index d2621a9d1100..6aec25bc05e5 100644
> --- a/include/sysemu/sev.h
> +++ b/include/sysemu/sev.h
> @@ -14,6 +14,8 @@
> #ifndef QEMU_SEV_H
> #define QEMU_SEV_H
>
> +#include <linux/kvm.h>
> +
> #include "qom/object.h"
> #include "qapi/error.h"
> #include "sysemu/kvm.h"
> @@ -49,5 +51,13 @@ struct QSevGuestInfoClass {
> ObjectClass parent_class;
> };
>
> +struct SEVState {
> + QSevGuestInfo *sev_info;
> +};
> +
> +typedef struct SEVState SEVState;
> +
> +void *sev_guest_init(const char *id);
> +
> #endif
>
> --
> 2.9.5
>
Dave
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 10/23] sev: add command to initialize the memory encryption context
@ 2018-02-01 12:13 ` Dr. David Alan Gilbert
0 siblings, 0 replies; 118+ messages in thread
From: Dr. David Alan Gilbert @ 2018-02-01 12:13 UTC (permalink / raw)
To: Brijesh Singh
Cc: qemu-devel, kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Eduardo Habkost,
Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange
* Brijesh Singh (brijesh.singh@amd.com) wrote:
> When memory encryption is enabled, KVM_SEV_INIT command is used to
> initialize the platform. The command loads the SEV related persistent
> data from non-volatile storage and initializes the platform context.
> This command should be first issued before invoking any other guest
> commands provided by the SEV firmware.
Some minor comments rather than full review.
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
> ---
> accel/kvm/kvm-all.c | 15 ++++++
> accel/kvm/sev.c | 124 +++++++++++++++++++++++++++++++++++++++++++++++++
> accel/kvm/trace-events | 2 +
> include/sysemu/sev.h | 10 ++++
> 4 files changed, 151 insertions(+)
>
> diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c
> index f290f487a573..a9b16846675e 100644
> --- a/accel/kvm/kvm-all.c
> +++ b/accel/kvm/kvm-all.c
> @@ -38,6 +38,7 @@
> #include "qemu/event_notifier.h"
> #include "trace.h"
> #include "hw/irq.h"
> +#include "sysemu/sev.h"
>
> #include "hw/boards.h"
>
> @@ -103,6 +104,9 @@ struct KVMState
> #endif
> KVMMemoryListener memory_listener;
> QLIST_HEAD(, KVMParkedVcpu) kvm_parked_vcpus;
> +
> + /* memory encryption */
> + void *memcrypt_handle;
> };
>
> KVMState *kvm_state;
> @@ -1632,6 +1636,17 @@ static int kvm_init(MachineState *ms)
>
> kvm_state = s;
>
> + /*
> + * if memory encryption object is specified then initialize the memory
> + * encryption context.
> + * */
Style: should be */
> + if (ms->memory_encryption) {
> + kvm_state->memcrypt_handle = sev_guest_init(ms->memory_encryption);
> + if (!kvm_state->memcrypt_handle) {
> + goto err;
> + }
> + }
> +
> ret = kvm_arch_init(ms, s);
> if (ret < 0) {
> goto err;
> diff --git a/accel/kvm/sev.c b/accel/kvm/sev.c
> index e93fdfeb0c8f..be1791e510b3 100644
> --- a/accel/kvm/sev.c
> +++ b/accel/kvm/sev.c
> @@ -18,10 +18,72 @@
> #include "sysemu/kvm.h"
> #include "sysemu/sev.h"
> #include "sysemu/sysemu.h"
> +#include "trace.h"
>
> #define DEFAULT_GUEST_POLICY 0x1 /* disable debug */
> #define DEFAULT_SEV_DEVICE "/dev/sev"
>
> +static int sev_fd;
> +
> +#define SEV_FW_MAX_ERROR 0x17
> +
> +static char sev_fw_errlist[SEV_FW_MAX_ERROR][100] = {
Perhaps:
static const char *sev_few_errlist[] = {
?
> + "",
> + "Platform state is invalid",
> + "Guest state is invalid",
> + "Platform configuration is invalid",
> + "Buffer too small",
> + "Platform is already owned",
> + "Certificate is invalid",
> + "Policy is not allowed",
> + "Guest is not active",
> + "Invalid address",
> + "Bad signature",
> + "Bad measurement",
> + "Asid is already owned",
> + "Invalid ASID",
> + "WBINVD is required",
> + "DF_FLUSH is required",
> + "Guest handle is invalid",
> + "Invalid command",
> + "Guest is active",
> + "Hardware error",
> + "Hardware unsafe",
> + "Feature not supported",
> + "Invalid parameter"
> +};
> +
> +static int
> +sev_ioctl(int cmd, void *data, int *error)
> +{
> + int r;
> + struct kvm_sev_cmd input;
> +
> + memset(&input, 0x0, sizeof(input));
> +
> + input.id = cmd;
> + input.sev_fd = sev_fd;
> + input.data = (__u64)data;
> +
> + r = kvm_vm_ioctl(kvm_state, KVM_MEMORY_ENCRYPT_OP, &input);
> +
> + if (error) {
> + *error = input.error;
> + }
> +
> + return r;
> +}
> +
> +static char *
> +fw_error_to_str(int code)
> +{
> + if (code > SEV_FW_MAX_ERROR) {
I'm trying to convince myself whether that should be >= and whether the
maximum error is really 0x16 ? Your list up there has 23 entries
so I think trying to access error 0x17 would be bad.
> + return NULL;
It might be better to return 'No error' or the like unless you're going
to be testing for NULL; that way you never end up with a Null getting
out.
> + }
> +
> + return sev_fw_errlist[code];
> +}
> +
> static void
> qsev_guest_finalize(Object *obj)
> {
> @@ -170,6 +232,68 @@ static const TypeInfo qsev_guest_info = {
> }
> };
>
> +static QSevGuestInfo *
> +lookup_sev_guest_info(const char *id)
> +{
> + Object *obj;
> + QSevGuestInfo *info;
> +
> + obj = object_resolve_path_component(object_get_objects_root(), id);
> + if (!obj) {
> + return NULL;
> + }
> +
> + info = (QSevGuestInfo *)
> + object_dynamic_cast(obj, TYPE_QSEV_GUEST_INFO);
> + if (!info) {
> + return NULL;
> + }
> +
> + return info;
> +}
> +
> +void *
> +sev_guest_init(const char *id)
> +{
> + SEVState *s;
> + char *devname;
> + int ret, fw_error;
> +
> + s = g_malloc0(sizeof(SEVState));
g_new0 is easier.
> + if (!s) {
> + return NULL;
> + }
and allocation aborts rather than returning NULL (unless you use the
_try_ version of g_new)
> +
> + s->sev_info = lookup_sev_guest_info(id);
> + if (!s->sev_info) {
> + error_report("%s: '%s' is not a valid '%s' object",
> + __func__, id, TYPE_QSEV_GUEST_INFO);
> + goto err;
> + }
> +
> + devname = object_property_get_str(OBJECT(s->sev_info), "sev-device", NULL);
> + sev_fd = open(devname, O_RDWR);
> + if (sev_fd < 0) {
> + error_report("%s: Failed to open %s '%s'", __func__,
> + devname, strerror(errno));
> + goto err;
> + }
> + g_free(devname);
> +
> + trace_kvm_sev_init();
> + ret = sev_ioctl(KVM_SEV_INIT, NULL, &fw_error);
> + if (ret) {
> + error_report("%s: failed to initialize ret=%d fw_error=%d '%s'",
> + __func__, ret, fw_error, fw_error_to_str(fw_error));
> + goto err;
> + }
> +
> + return s;
> +err:
> + g_free(s);
> + return NULL;
> +}
> +
> static void
> sev_register_types(void)
> {
> diff --git a/accel/kvm/trace-events b/accel/kvm/trace-events
> index f89ba5578dc1..ea487e5a5913 100644
> --- a/accel/kvm/trace-events
> +++ b/accel/kvm/trace-events
> @@ -13,3 +13,5 @@ kvm_irqchip_add_msi_route(char *name, int vector, int virq) "dev %s vector %d vi
> kvm_irqchip_update_msi_route(int virq) "Updating MSI route virq=%d"
> kvm_irqchip_release_virq(int virq) "virq %d"
>
> +# sev.c
> +kvm_sev_init(void) ""
> diff --git a/include/sysemu/sev.h b/include/sysemu/sev.h
> index d2621a9d1100..6aec25bc05e5 100644
> --- a/include/sysemu/sev.h
> +++ b/include/sysemu/sev.h
> @@ -14,6 +14,8 @@
> #ifndef QEMU_SEV_H
> #define QEMU_SEV_H
>
> +#include <linux/kvm.h>
> +
> #include "qom/object.h"
> #include "qapi/error.h"
> #include "sysemu/kvm.h"
> @@ -49,5 +51,13 @@ struct QSevGuestInfoClass {
> ObjectClass parent_class;
> };
>
> +struct SEVState {
> + QSevGuestInfo *sev_info;
> +};
> +
> +typedef struct SEVState SEVState;
> +
> +void *sev_guest_init(const char *id);
> +
> #endif
>
> --
> 2.9.5
>
Dave
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 13/23] hmp: display memory encryption support in 'info kvm'
2018-01-31 17:43 ` Markus Armbruster
@ 2018-02-01 15:21 ` Brijesh Singh
0 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-02-01 15:21 UTC (permalink / raw)
To: Markus Armbruster
Cc: brijesh.singh, qemu-devel, Edgar E. Iglesias, Peter Maydell,
Eduardo Habkost, kvm, Tom Lendacky, Stefan Hajnoczi,
Michael S. Tsirkin, Richard Henderson, Dr. David Alan Gilbert,
Paolo Bonzini
On 01/31/2018 11:43 AM, Markus Armbruster wrote:
> Brijesh Singh <brijesh.singh@amd.com> writes:
>
>> update 'info kvm' to display the memory encryption support.
>>
>> (qemu) info kvm
>> kvm support: enabled
>> memory encryption: disabled
>>
>> Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
>> Cc: Eric Blake <eblake@redhat.com>
>> Cc: Markus Armbruster <armbru@redhat.com>
>> Cc: Paolo Bonzini <pbonzini@redhat.com>
>> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
>> ---
>> hmp.c | 2 ++
>> qapi-schema.json | 5 ++++-
>> qmp.c | 1 +
>> 3 files changed, 7 insertions(+), 1 deletion(-)
>>
>> diff --git a/hmp.c b/hmp.c
>> index 056bf70cf1e2..6ceb6b30af75 100644
>> --- a/hmp.c
>> +++ b/hmp.c
>> @@ -88,6 +88,8 @@ void hmp_info_kvm(Monitor *mon, const QDict *qdict)
>> monitor_printf(mon, "kvm support: ");
>> if (info->present) {
>> monitor_printf(mon, "%s\n", info->enabled ? "enabled" : "disabled");
>> + monitor_printf(mon, "memory encryption: %s\n",
>> + info->mem_encryption ? "enabled" : "disabled");
>> } else {
>> monitor_printf(mon, "not compiled\n");
>> }
>> diff --git a/qapi-schema.json b/qapi-schema.json
>> index 5c06745c7927..2046c96669bf 100644
>> --- a/qapi-schema.json
>> +++ b/qapi-schema.json
>> @@ -314,9 +314,12 @@
>> #
>> # @present: true if KVM acceleration is built into this executable
>> #
>> +# @mem-encryption: true if Memory Encryption is active (since 2.12)
>> +#
>> # Since: 0.14.0
>> ##
>> -{ 'struct': 'KvmInfo', 'data': {'enabled': 'bool', 'present': 'bool'} }
>> +{ 'struct': 'KvmInfo', 'data': {'enabled': 'bool', 'present': 'bool',
>> + 'mem-encryption' : 'bool'} }
>
> This extends QMP's query-kvm. Your commit message claims the patch
> affects only HMP. Needs fixing. The cleanest way is to split the patch
> into its QMP part (hunks #2 and #3) and its HMP part (hunk #1).
>
Noted, I will break this into two patches in next series. Thanks for
feedback.
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 17/23] qapi: add SEV_MEASUREMENT event
2018-01-31 17:45 ` Markus Armbruster
@ 2018-02-01 15:25 ` Brijesh Singh
2018-02-01 15:28 ` Eric Blake
0 siblings, 1 reply; 118+ messages in thread
From: Brijesh Singh @ 2018-02-01 15:25 UTC (permalink / raw)
To: Markus Armbruster
Cc: brijesh.singh, qemu-devel, Edgar E. Iglesias, Peter Maydell,
Eduardo Habkost, kvm, Tom Lendacky, Stefan Hajnoczi,
Michael S. Tsirkin, Richard Henderson, Dr. David Alan Gilbert,
Paolo Bonzini
On 01/31/2018 11:45 AM, Markus Armbruster wrote:
> Brijesh Singh <brijesh.singh@amd.com> writes:
>
>> Add SEV_MEASUREMENT event which can be used by libvirt to get the
>> measurement of the memory regions encrypted through the SEV launch
>> flow. The measurement value is base64 encoded.
>>
>> Cc: Daniel P. Berrange <berrange@redhat.com>
>> Cc: Eric Blake <eblake@redhat.com>
>> Cc: Markus Armbruster <armbru@redhat.com>
>> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
>> ---
>> qapi-schema.json | 13 +++++++++++++
>> 1 file changed, 13 insertions(+)
>>
>> diff --git a/qapi-schema.json b/qapi-schema.json
>> index 2046c96669bf..e1f5d14e2e3f 100644
>> --- a/qapi-schema.json
>> +++ b/qapi-schema.json
>> @@ -3192,3 +3192,16 @@
>> # Since: 2.11
>> ##
>> { 'command': 'watchdog-set-action', 'data' : {'action': 'WatchdogAction'} }
>> +
>> +##
>> +# @SEV_MEASUREMENT:
>> +#
>> +# Emitted when measurement is available for the SEV guest.
>> +#
>> +# @value: measurement value encoded in base64
>> +#
>> +# Since: 2.12
>> +#
>> +##
>> +{ 'event' : 'SEV_MEASUREMENT',
>> + 'data' : { 'value' : 'str' } }
>
> New event -> automatic question: do we need a way to poll for this
> information? Say when an event could get lost during a libvirt restart.
>
In our initial SEV patches for libvirt we ran into similar cases where
the event was dropped on restart, and now leaning towards dropping this
event patch and add a new QMP command which can be used by libvirt to
retrieve the measurement.
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 17/23] qapi: add SEV_MEASUREMENT event
2018-02-01 15:25 ` Brijesh Singh
@ 2018-02-01 15:28 ` Eric Blake
0 siblings, 0 replies; 118+ messages in thread
From: Eric Blake @ 2018-02-01 15:28 UTC (permalink / raw)
To: Brijesh Singh, Markus Armbruster
Cc: Edgar E. Iglesias, Peter Maydell, Eduardo Habkost, kvm,
Tom Lendacky, Stefan Hajnoczi, Michael S. Tsirkin,
Richard Henderson, qemu-devel, Dr. David Alan Gilbert,
Paolo Bonzini
[-- Attachment #1.1: Type: text/plain, Size: 871 bytes --]
On 02/01/2018 09:25 AM, Brijesh Singh wrote:
>>> +{ 'event' : 'SEV_MEASUREMENT',
>>> + 'data' : { 'value' : 'str' } }
>>
>> New event -> automatic question: do we need a way to poll for this
>> information? Say when an event could get lost during a libvirt restart.
>>
>
>
> In our initial SEV patches for libvirt we ran into similar cases where
> the event was dropped on restart, and now leaning towards dropping this
> event patch and add a new QMP command which can be used by libvirt to
> retrieve the measurement.
An event may still be useful to minimize the amount of polling required
when the connection is not broken. It's just that any setup that ONLY
permits events (and not also polling) is fragile.
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 619 bytes --]
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 17/23] qapi: add SEV_MEASUREMENT event
@ 2018-02-01 15:28 ` Eric Blake
0 siblings, 0 replies; 118+ messages in thread
From: Eric Blake @ 2018-02-01 15:28 UTC (permalink / raw)
To: Brijesh Singh, Markus Armbruster
Cc: Edgar E. Iglesias, Peter Maydell, Eduardo Habkost, kvm,
Tom Lendacky, Stefan Hajnoczi, Michael S. Tsirkin,
Richard Henderson, qemu-devel, Dr. David Alan Gilbert,
Paolo Bonzini
[-- Attachment #1: Type: text/plain, Size: 871 bytes --]
On 02/01/2018 09:25 AM, Brijesh Singh wrote:
>>> +{ 'event' : 'SEV_MEASUREMENT',
>>> + 'data' : { 'value' : 'str' } }
>>
>> New event -> automatic question: do we need a way to poll for this
>> information? Say when an event could get lost during a libvirt restart.
>>
>
>
> In our initial SEV patches for libvirt we ran into similar cases where
> the event was dropped on restart, and now leaning towards dropping this
> event patch and add a new QMP command which can be used by libvirt to
> retrieve the measurement.
An event may still be useful to minimize the amount of polling required
when the connection is not broken. It's just that any setup that ONLY
permits events (and not also polling) is fragile.
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 619 bytes --]
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [PATCH v6 10/23] sev: add command to initialize the memory encryption context
2018-02-01 12:13 ` [Qemu-devel] " Dr. David Alan Gilbert
@ 2018-02-01 15:33 ` Brijesh Singh
-1 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-02-01 15:33 UTC (permalink / raw)
To: Dr. David Alan Gilbert
Cc: brijesh.singh, qemu-devel, kvm, Paolo Bonzini, Tom Lendacky,
Peter Maydell, Richard Henderson, Edgar E. Iglesias,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange
On 02/01/2018 06:13 AM, Dr. David Alan Gilbert wrote:
> * Brijesh Singh (brijesh.singh@amd.com) wrote:
>> When memory encryption is enabled, KVM_SEV_INIT command is used to
>> initialize the platform. The command loads the SEV related persistent
>> data from non-volatile storage and initializes the platform context.
>> This command should be first issued before invoking any other guest
>> commands provided by the SEV firmware.
>
> Some minor comments rather than full review.
>
>> Cc: Paolo Bonzini <pbonzini@redhat.com>
>> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
>> ---
>> accel/kvm/kvm-all.c | 15 ++++++
>> accel/kvm/sev.c | 124 +++++++++++++++++++++++++++++++++++++++++++++++++
>> accel/kvm/trace-events | 2 +
>> include/sysemu/sev.h | 10 ++++
>> 4 files changed, 151 insertions(+)
>>
>> diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c
>> index f290f487a573..a9b16846675e 100644
>> --- a/accel/kvm/kvm-all.c
>> +++ b/accel/kvm/kvm-all.c
>> @@ -38,6 +38,7 @@
>> #include "qemu/event_notifier.h"
>> #include "trace.h"
>> #include "hw/irq.h"
>> +#include "sysemu/sev.h"
>>
>> #include "hw/boards.h"
>>
>> @@ -103,6 +104,9 @@ struct KVMState
>> #endif
>> KVMMemoryListener memory_listener;
>> QLIST_HEAD(, KVMParkedVcpu) kvm_parked_vcpus;
>> +
>> + /* memory encryption */
>> + void *memcrypt_handle;
>> };
>>
>> KVMState *kvm_state;
>> @@ -1632,6 +1636,17 @@ static int kvm_init(MachineState *ms)
>>
>> kvm_state = s;
>>
>> + /*
>> + * if memory encryption object is specified then initialize the memory
>> + * encryption context.
>> + * */
>
> Style: should be */
Ah noted, I will fix this.
>
>> + if (ms->memory_encryption) {
>> + kvm_state->memcrypt_handle = sev_guest_init(ms->memory_encryption);
>> + if (!kvm_state->memcrypt_handle) {
>> + goto err;
>> + }
>> + }
>> +
>> ret = kvm_arch_init(ms, s);
>> if (ret < 0) {
>> goto err;
>> diff --git a/accel/kvm/sev.c b/accel/kvm/sev.c
>> index e93fdfeb0c8f..be1791e510b3 100644
>> --- a/accel/kvm/sev.c
>> +++ b/accel/kvm/sev.c
>> @@ -18,10 +18,72 @@
>> #include "sysemu/kvm.h"
>> #include "sysemu/sev.h"
>> #include "sysemu/sysemu.h"
>> +#include "trace.h"
>>
>> #define DEFAULT_GUEST_POLICY 0x1 /* disable debug */
>> #define DEFAULT_SEV_DEVICE "/dev/sev"
>>
>> +static int sev_fd;
>> +
>> +#define SEV_FW_MAX_ERROR 0x17
>> +
>> +static char sev_fw_errlist[SEV_FW_MAX_ERROR][100] = {
>
> Perhaps:
> static const char *sev_few_errlist[] = {
> ?
>
Sure, we can make it const, i will take care of this in next rev.
>> + "",
>> + "Platform state is invalid",
>> + "Guest state is invalid",
>> + "Platform configuration is invalid",
>> + "Buffer too small",
>> + "Platform is already owned",
>> + "Certificate is invalid",
>> + "Policy is not allowed",
>> + "Guest is not active",
>> + "Invalid address",
>> + "Bad signature",
>> + "Bad measurement",
>> + "Asid is already owned",
>> + "Invalid ASID",
>> + "WBINVD is required",
>> + "DF_FLUSH is required",
>> + "Guest handle is invalid",
>> + "Invalid command",
>> + "Guest is active",
>> + "Hardware error",
>> + "Hardware unsafe",
>> + "Feature not supported",
>> + "Invalid parameter"
>> +};
>> +
>> +static int
>> +sev_ioctl(int cmd, void *data, int *error)
>> +{
>> + int r;
>> + struct kvm_sev_cmd input;
>> +
>> + memset(&input, 0x0, sizeof(input));
>> +
>> + input.id = cmd;
>> + input.sev_fd = sev_fd;
>> + input.data = (__u64)data;
>> +
>> + r = kvm_vm_ioctl(kvm_state, KVM_MEMORY_ENCRYPT_OP, &input);
>> +
>> + if (error) {
>> + *error = input.error;
>> + }
>> +
>> + return r;
>> +}
>> +
>> +static char *
>> +fw_error_to_str(int code)
>> +{
>> + if (code > SEV_FW_MAX_ERROR) {
>
> I'm trying to convince myself whether that should be >= and whether the
> maximum error is really 0x16 ? Your list up there has 23 entries
> so I think trying to access error 0x17 would be bad.
>
Good catch, it should be >=.
>> + return NULL;
>
> It might be better to return 'No error' or the like unless you're going
> to be testing for NULL; that way you never end up with a Null getting
> out.
>
Sure, I can do that.
>> + }
>> +
>> + return sev_fw_errlist[code];
>> +}
>> +
>> static void
>> qsev_guest_finalize(Object *obj)
>> {
>> @@ -170,6 +232,68 @@ static const TypeInfo qsev_guest_info = {
>> }
>> };
>>
>> +static QSevGuestInfo *
>> +lookup_sev_guest_info(const char *id)
>> +{
>> + Object *obj;
>> + QSevGuestInfo *info;
>> +
>> + obj = object_resolve_path_component(object_get_objects_root(), id);
>> + if (!obj) {
>> + return NULL;
>> + }
>> +
>> + info = (QSevGuestInfo *)
>> + object_dynamic_cast(obj, TYPE_QSEV_GUEST_INFO);
>> + if (!info) {
>> + return NULL;
>> + }
>> +
>> + return info;
>> +}
>> +
>> +void *
>> +sev_guest_init(const char *id)
>> +{
>> + SEVState *s;
>> + char *devname;
>> + int ret, fw_error;
>> +
>> + s = g_malloc0(sizeof(SEVState));
>
> g_new0 is easier.
Sure, I can switch to using g_new0.
>
>> + if (!s) {
>> + return NULL;
>> + }
>
> and allocation aborts rather than returning NULL (unless you use the
> _try_ version of g_new)
Agreed, I will abort on allocation failure.
>
>> +
>> + s->sev_info = lookup_sev_guest_info(id);
>> + if (!s->sev_info) {
>> + error_report("%s: '%s' is not a valid '%s' object",
>> + __func__, id, TYPE_QSEV_GUEST_INFO);
>> + goto err;
>> + }
>> +
>> + devname = object_property_get_str(OBJECT(s->sev_info), "sev-device", NULL);
>> + sev_fd = open(devname, O_RDWR);
>> + if (sev_fd < 0) {
>> + error_report("%s: Failed to open %s '%s'", __func__,
>> + devname, strerror(errno));
>> + goto err;
>> + }
>> + g_free(devname);
>> +
>> + trace_kvm_sev_init();
>> + ret = sev_ioctl(KVM_SEV_INIT, NULL, &fw_error);
>> + if (ret) {
>> + error_report("%s: failed to initialize ret=%d fw_error=%d '%s'",
>> + __func__, ret, fw_error, fw_error_to_str(fw_error));
>> + goto err;
>> + }
>> +
>> + return s;
>> +err:
>> + g_free(s);
>> + return NULL;
>> +}
>> +
>> static void
>> sev_register_types(void)
>> {
>> diff --git a/accel/kvm/trace-events b/accel/kvm/trace-events
>> index f89ba5578dc1..ea487e5a5913 100644
>> --- a/accel/kvm/trace-events
>> +++ b/accel/kvm/trace-events
>> @@ -13,3 +13,5 @@ kvm_irqchip_add_msi_route(char *name, int vector, int virq) "dev %s vector %d vi
>> kvm_irqchip_update_msi_route(int virq) "Updating MSI route virq=%d"
>> kvm_irqchip_release_virq(int virq) "virq %d"
>>
>> +# sev.c
>> +kvm_sev_init(void) ""
>> diff --git a/include/sysemu/sev.h b/include/sysemu/sev.h
>> index d2621a9d1100..6aec25bc05e5 100644
>> --- a/include/sysemu/sev.h
>> +++ b/include/sysemu/sev.h
>> @@ -14,6 +14,8 @@
>> #ifndef QEMU_SEV_H
>> #define QEMU_SEV_H
>>
>> +#include <linux/kvm.h>
>> +
>> #include "qom/object.h"
>> #include "qapi/error.h"
>> #include "sysemu/kvm.h"
>> @@ -49,5 +51,13 @@ struct QSevGuestInfoClass {
>> ObjectClass parent_class;
>> };
>>
>> +struct SEVState {
>> + QSevGuestInfo *sev_info;
>> +};
>> +
>> +typedef struct SEVState SEVState;
>> +
>> +void *sev_guest_init(const char *id);
>> +
>> #endif
>>
>> --
>> 2.9.5
>>
>
> Dave
>
> --
> Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
>
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 10/23] sev: add command to initialize the memory encryption context
@ 2018-02-01 15:33 ` Brijesh Singh
0 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-02-01 15:33 UTC (permalink / raw)
To: Dr. David Alan Gilbert
Cc: brijesh.singh, qemu-devel, kvm, Paolo Bonzini, Tom Lendacky,
Peter Maydell, Richard Henderson, Edgar E. Iglesias,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange
On 02/01/2018 06:13 AM, Dr. David Alan Gilbert wrote:
> * Brijesh Singh (brijesh.singh@amd.com) wrote:
>> When memory encryption is enabled, KVM_SEV_INIT command is used to
>> initialize the platform. The command loads the SEV related persistent
>> data from non-volatile storage and initializes the platform context.
>> This command should be first issued before invoking any other guest
>> commands provided by the SEV firmware.
>
> Some minor comments rather than full review.
>
>> Cc: Paolo Bonzini <pbonzini@redhat.com>
>> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
>> ---
>> accel/kvm/kvm-all.c | 15 ++++++
>> accel/kvm/sev.c | 124 +++++++++++++++++++++++++++++++++++++++++++++++++
>> accel/kvm/trace-events | 2 +
>> include/sysemu/sev.h | 10 ++++
>> 4 files changed, 151 insertions(+)
>>
>> diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c
>> index f290f487a573..a9b16846675e 100644
>> --- a/accel/kvm/kvm-all.c
>> +++ b/accel/kvm/kvm-all.c
>> @@ -38,6 +38,7 @@
>> #include "qemu/event_notifier.h"
>> #include "trace.h"
>> #include "hw/irq.h"
>> +#include "sysemu/sev.h"
>>
>> #include "hw/boards.h"
>>
>> @@ -103,6 +104,9 @@ struct KVMState
>> #endif
>> KVMMemoryListener memory_listener;
>> QLIST_HEAD(, KVMParkedVcpu) kvm_parked_vcpus;
>> +
>> + /* memory encryption */
>> + void *memcrypt_handle;
>> };
>>
>> KVMState *kvm_state;
>> @@ -1632,6 +1636,17 @@ static int kvm_init(MachineState *ms)
>>
>> kvm_state = s;
>>
>> + /*
>> + * if memory encryption object is specified then initialize the memory
>> + * encryption context.
>> + * */
>
> Style: should be */
Ah noted, I will fix this.
>
>> + if (ms->memory_encryption) {
>> + kvm_state->memcrypt_handle = sev_guest_init(ms->memory_encryption);
>> + if (!kvm_state->memcrypt_handle) {
>> + goto err;
>> + }
>> + }
>> +
>> ret = kvm_arch_init(ms, s);
>> if (ret < 0) {
>> goto err;
>> diff --git a/accel/kvm/sev.c b/accel/kvm/sev.c
>> index e93fdfeb0c8f..be1791e510b3 100644
>> --- a/accel/kvm/sev.c
>> +++ b/accel/kvm/sev.c
>> @@ -18,10 +18,72 @@
>> #include "sysemu/kvm.h"
>> #include "sysemu/sev.h"
>> #include "sysemu/sysemu.h"
>> +#include "trace.h"
>>
>> #define DEFAULT_GUEST_POLICY 0x1 /* disable debug */
>> #define DEFAULT_SEV_DEVICE "/dev/sev"
>>
>> +static int sev_fd;
>> +
>> +#define SEV_FW_MAX_ERROR 0x17
>> +
>> +static char sev_fw_errlist[SEV_FW_MAX_ERROR][100] = {
>
> Perhaps:
> static const char *sev_few_errlist[] = {
> ?
>
Sure, we can make it const, i will take care of this in next rev.
>> + "",
>> + "Platform state is invalid",
>> + "Guest state is invalid",
>> + "Platform configuration is invalid",
>> + "Buffer too small",
>> + "Platform is already owned",
>> + "Certificate is invalid",
>> + "Policy is not allowed",
>> + "Guest is not active",
>> + "Invalid address",
>> + "Bad signature",
>> + "Bad measurement",
>> + "Asid is already owned",
>> + "Invalid ASID",
>> + "WBINVD is required",
>> + "DF_FLUSH is required",
>> + "Guest handle is invalid",
>> + "Invalid command",
>> + "Guest is active",
>> + "Hardware error",
>> + "Hardware unsafe",
>> + "Feature not supported",
>> + "Invalid parameter"
>> +};
>> +
>> +static int
>> +sev_ioctl(int cmd, void *data, int *error)
>> +{
>> + int r;
>> + struct kvm_sev_cmd input;
>> +
>> + memset(&input, 0x0, sizeof(input));
>> +
>> + input.id = cmd;
>> + input.sev_fd = sev_fd;
>> + input.data = (__u64)data;
>> +
>> + r = kvm_vm_ioctl(kvm_state, KVM_MEMORY_ENCRYPT_OP, &input);
>> +
>> + if (error) {
>> + *error = input.error;
>> + }
>> +
>> + return r;
>> +}
>> +
>> +static char *
>> +fw_error_to_str(int code)
>> +{
>> + if (code > SEV_FW_MAX_ERROR) {
>
> I'm trying to convince myself whether that should be >= and whether the
> maximum error is really 0x16 ? Your list up there has 23 entries
> so I think trying to access error 0x17 would be bad.
>
Good catch, it should be >=.
>> + return NULL;
>
> It might be better to return 'No error' or the like unless you're going
> to be testing for NULL; that way you never end up with a Null getting
> out.
>
Sure, I can do that.
>> + }
>> +
>> + return sev_fw_errlist[code];
>> +}
>> +
>> static void
>> qsev_guest_finalize(Object *obj)
>> {
>> @@ -170,6 +232,68 @@ static const TypeInfo qsev_guest_info = {
>> }
>> };
>>
>> +static QSevGuestInfo *
>> +lookup_sev_guest_info(const char *id)
>> +{
>> + Object *obj;
>> + QSevGuestInfo *info;
>> +
>> + obj = object_resolve_path_component(object_get_objects_root(), id);
>> + if (!obj) {
>> + return NULL;
>> + }
>> +
>> + info = (QSevGuestInfo *)
>> + object_dynamic_cast(obj, TYPE_QSEV_GUEST_INFO);
>> + if (!info) {
>> + return NULL;
>> + }
>> +
>> + return info;
>> +}
>> +
>> +void *
>> +sev_guest_init(const char *id)
>> +{
>> + SEVState *s;
>> + char *devname;
>> + int ret, fw_error;
>> +
>> + s = g_malloc0(sizeof(SEVState));
>
> g_new0 is easier.
Sure, I can switch to using g_new0.
>
>> + if (!s) {
>> + return NULL;
>> + }
>
> and allocation aborts rather than returning NULL (unless you use the
> _try_ version of g_new)
Agreed, I will abort on allocation failure.
>
>> +
>> + s->sev_info = lookup_sev_guest_info(id);
>> + if (!s->sev_info) {
>> + error_report("%s: '%s' is not a valid '%s' object",
>> + __func__, id, TYPE_QSEV_GUEST_INFO);
>> + goto err;
>> + }
>> +
>> + devname = object_property_get_str(OBJECT(s->sev_info), "sev-device", NULL);
>> + sev_fd = open(devname, O_RDWR);
>> + if (sev_fd < 0) {
>> + error_report("%s: Failed to open %s '%s'", __func__,
>> + devname, strerror(errno));
>> + goto err;
>> + }
>> + g_free(devname);
>> +
>> + trace_kvm_sev_init();
>> + ret = sev_ioctl(KVM_SEV_INIT, NULL, &fw_error);
>> + if (ret) {
>> + error_report("%s: failed to initialize ret=%d fw_error=%d '%s'",
>> + __func__, ret, fw_error, fw_error_to_str(fw_error));
>> + goto err;
>> + }
>> +
>> + return s;
>> +err:
>> + g_free(s);
>> + return NULL;
>> +}
>> +
>> static void
>> sev_register_types(void)
>> {
>> diff --git a/accel/kvm/trace-events b/accel/kvm/trace-events
>> index f89ba5578dc1..ea487e5a5913 100644
>> --- a/accel/kvm/trace-events
>> +++ b/accel/kvm/trace-events
>> @@ -13,3 +13,5 @@ kvm_irqchip_add_msi_route(char *name, int vector, int virq) "dev %s vector %d vi
>> kvm_irqchip_update_msi_route(int virq) "Updating MSI route virq=%d"
>> kvm_irqchip_release_virq(int virq) "virq %d"
>>
>> +# sev.c
>> +kvm_sev_init(void) ""
>> diff --git a/include/sysemu/sev.h b/include/sysemu/sev.h
>> index d2621a9d1100..6aec25bc05e5 100644
>> --- a/include/sysemu/sev.h
>> +++ b/include/sysemu/sev.h
>> @@ -14,6 +14,8 @@
>> #ifndef QEMU_SEV_H
>> #define QEMU_SEV_H
>>
>> +#include <linux/kvm.h>
>> +
>> #include "qom/object.h"
>> #include "qapi/error.h"
>> #include "sysemu/kvm.h"
>> @@ -49,5 +51,13 @@ struct QSevGuestInfoClass {
>> ObjectClass parent_class;
>> };
>>
>> +struct SEVState {
>> + QSevGuestInfo *sev_info;
>> +};
>> +
>> +typedef struct SEVState SEVState;
>> +
>> +void *sev_guest_init(const char *id);
>> +
>> #endif
>>
>> --
>> 2.9.5
>>
>
> Dave
>
> --
> Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
>
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [PATCH v6 10/23] sev: add command to initialize the memory encryption context
2018-02-01 15:33 ` [Qemu-devel] " Brijesh Singh
@ 2018-02-01 15:46 ` Dr. David Alan Gilbert
-1 siblings, 0 replies; 118+ messages in thread
From: Dr. David Alan Gilbert @ 2018-02-01 15:46 UTC (permalink / raw)
To: Brijesh Singh
Cc: qemu-devel, kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Eduardo Habkost,
Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange
* Brijesh Singh (brijesh.singh@amd.com) wrote:
>
>
> On 02/01/2018 06:13 AM, Dr. David Alan Gilbert wrote:
> > * Brijesh Singh (brijesh.singh@amd.com) wrote:
> > > When memory encryption is enabled, KVM_SEV_INIT command is used to
> > > initialize the platform. The command loads the SEV related persistent
> > > data from non-volatile storage and initializes the platform context.
> > > This command should be first issued before invoking any other guest
> > > commands provided by the SEV firmware.
> >
> > Some minor comments rather than full review.
> >
> > > Cc: Paolo Bonzini <pbonzini@redhat.com>
> > > Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
> > > ---
> > > accel/kvm/kvm-all.c | 15 ++++++
> > > accel/kvm/sev.c | 124 +++++++++++++++++++++++++++++++++++++++++++++++++
> > > accel/kvm/trace-events | 2 +
> > > include/sysemu/sev.h | 10 ++++
> > > 4 files changed, 151 insertions(+)
> > >
> > > diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c
> > > index f290f487a573..a9b16846675e 100644
> > > --- a/accel/kvm/kvm-all.c
> > > +++ b/accel/kvm/kvm-all.c
> > > @@ -38,6 +38,7 @@
> > > #include "qemu/event_notifier.h"
> > > #include "trace.h"
> > > #include "hw/irq.h"
> > > +#include "sysemu/sev.h"
> > > #include "hw/boards.h"
> > > @@ -103,6 +104,9 @@ struct KVMState
> > > #endif
> > > KVMMemoryListener memory_listener;
> > > QLIST_HEAD(, KVMParkedVcpu) kvm_parked_vcpus;
> > > +
> > > + /* memory encryption */
> > > + void *memcrypt_handle;
> > > };
> > > KVMState *kvm_state;
> > > @@ -1632,6 +1636,17 @@ static int kvm_init(MachineState *ms)
> > > kvm_state = s;
> > > + /*
> > > + * if memory encryption object is specified then initialize the memory
> > > + * encryption context.
> > > + * */
> >
> > Style: should be */
>
>
> Ah noted, I will fix this.
>
>
> >
> > > + if (ms->memory_encryption) {
> > > + kvm_state->memcrypt_handle = sev_guest_init(ms->memory_encryption);
> > > + if (!kvm_state->memcrypt_handle) {
> > > + goto err;
> > > + }
> > > + }
> > > +
> > > ret = kvm_arch_init(ms, s);
> > > if (ret < 0) {
> > > goto err;
> > > diff --git a/accel/kvm/sev.c b/accel/kvm/sev.c
> > > index e93fdfeb0c8f..be1791e510b3 100644
> > > --- a/accel/kvm/sev.c
> > > +++ b/accel/kvm/sev.c
> > > @@ -18,10 +18,72 @@
> > > #include "sysemu/kvm.h"
> > > #include "sysemu/sev.h"
> > > #include "sysemu/sysemu.h"
> > > +#include "trace.h"
> > > #define DEFAULT_GUEST_POLICY 0x1 /* disable debug */
> > > #define DEFAULT_SEV_DEVICE "/dev/sev"
> > > +static int sev_fd;
> > > +
> > > +#define SEV_FW_MAX_ERROR 0x17
> > > +
> > > +static char sev_fw_errlist[SEV_FW_MAX_ERROR][100] = {
> >
> > Perhaps:
> > static const char *sev_few_errlist[] = {
> > ?
> >
>
> Sure, we can make it const, i will take care of this in next rev.
>
>
> > > + "",
> > > + "Platform state is invalid",
> > > + "Guest state is invalid",
> > > + "Platform configuration is invalid",
> > > + "Buffer too small",
> > > + "Platform is already owned",
> > > + "Certificate is invalid",
> > > + "Policy is not allowed",
> > > + "Guest is not active",
> > > + "Invalid address",
> > > + "Bad signature",
> > > + "Bad measurement",
> > > + "Asid is already owned",
> > > + "Invalid ASID",
> > > + "WBINVD is required",
> > > + "DF_FLUSH is required",
> > > + "Guest handle is invalid",
> > > + "Invalid command",
> > > + "Guest is active",
> > > + "Hardware error",
> > > + "Hardware unsafe",
> > > + "Feature not supported",
> > > + "Invalid parameter"
> > > +};
> > > +
> > > +static int
> > > +sev_ioctl(int cmd, void *data, int *error)
> > > +{
> > > + int r;
> > > + struct kvm_sev_cmd input;
> > > +
> > > + memset(&input, 0x0, sizeof(input));
> > > +
> > > + input.id = cmd;
> > > + input.sev_fd = sev_fd;
> > > + input.data = (__u64)data;
> > > +
> > > + r = kvm_vm_ioctl(kvm_state, KVM_MEMORY_ENCRYPT_OP, &input);
> > > +
> > > + if (error) {
> > > + *error = input.error;
> > > + }
> > > +
> > > + return r;
> > > +}
> > > +
> > > +static char *
> > > +fw_error_to_str(int code)
> > > +{
> > > + if (code > SEV_FW_MAX_ERROR) {
> >
> > I'm trying to convince myself whether that should be >= and whether the
> > maximum error is really 0x16 ? Your list up there has 23 entries
> > so I think trying to access error 0x17 would be bad.
> >
>
> Good catch, it should be >=.
>
>
> > > + return NULL;
> >
> > It might be better to return 'No error' or the like unless you're going
> > to be testing for NULL; that way you never end up with a Null getting
> > out.
> >
>
> Sure, I can do that.
>
>
> > > + }
> > > +
> > > + return sev_fw_errlist[code];
> > > +}
> > > +
> > > static void
> > > qsev_guest_finalize(Object *obj)
> > > {
> > > @@ -170,6 +232,68 @@ static const TypeInfo qsev_guest_info = {
> > > }
> > > };
> > > +static QSevGuestInfo *
> > > +lookup_sev_guest_info(const char *id)
> > > +{
> > > + Object *obj;
> > > + QSevGuestInfo *info;
> > > +
> > > + obj = object_resolve_path_component(object_get_objects_root(), id);
> > > + if (!obj) {
> > > + return NULL;
> > > + }
> > > +
> > > + info = (QSevGuestInfo *)
> > > + object_dynamic_cast(obj, TYPE_QSEV_GUEST_INFO);
> > > + if (!info) {
> > > + return NULL;
> > > + }
> > > +
> > > + return info;
> > > +}
> > > +
> > > +void *
> > > +sev_guest_init(const char *id)
> > > +{
> > > + SEVState *s;
> > > + char *devname;
> > > + int ret, fw_error;
> > > +
> > > + s = g_malloc0(sizeof(SEVState));
> >
> > g_new0 is easier.
>
>
> Sure, I can switch to using g_new0.
>
>
> >
> > > + if (!s) {
> > > + return NULL;
> > > + }
> >
> > and allocation aborts rather than returning NULL (unless you use the
> > _try_ version of g_new)
>
>
> Agreed, I will abort on allocation failure.
No, I mean you don't need to, since g_new0 etc will abort themselves
on an allocation failure; there's no need to check.
Dave
>
> >
> > > +
> > > + s->sev_info = lookup_sev_guest_info(id);
> > > + if (!s->sev_info) {
> > > + error_report("%s: '%s' is not a valid '%s' object",
> > > + __func__, id, TYPE_QSEV_GUEST_INFO);
> > > + goto err;
> > > + }
> > > +
> > > + devname = object_property_get_str(OBJECT(s->sev_info), "sev-device", NULL);
> > > + sev_fd = open(devname, O_RDWR);
> > > + if (sev_fd < 0) {
> > > + error_report("%s: Failed to open %s '%s'", __func__,
> > > + devname, strerror(errno));
> > > + goto err;
> > > + }
> > > + g_free(devname);
> > > +
> > > + trace_kvm_sev_init();
> > > + ret = sev_ioctl(KVM_SEV_INIT, NULL, &fw_error);
> > > + if (ret) {
> > > + error_report("%s: failed to initialize ret=%d fw_error=%d '%s'",
> > > + __func__, ret, fw_error, fw_error_to_str(fw_error));
> > > + goto err;
> > > + }
> > > +
> > > + return s;
> > > +err:
> > > + g_free(s);
> > > + return NULL;
> > > +}
> > > +
> > > static void
> > > sev_register_types(void)
> > > {
> > > diff --git a/accel/kvm/trace-events b/accel/kvm/trace-events
> > > index f89ba5578dc1..ea487e5a5913 100644
> > > --- a/accel/kvm/trace-events
> > > +++ b/accel/kvm/trace-events
> > > @@ -13,3 +13,5 @@ kvm_irqchip_add_msi_route(char *name, int vector, int virq) "dev %s vector %d vi
> > > kvm_irqchip_update_msi_route(int virq) "Updating MSI route virq=%d"
> > > kvm_irqchip_release_virq(int virq) "virq %d"
> > > +# sev.c
> > > +kvm_sev_init(void) ""
> > > diff --git a/include/sysemu/sev.h b/include/sysemu/sev.h
> > > index d2621a9d1100..6aec25bc05e5 100644
> > > --- a/include/sysemu/sev.h
> > > +++ b/include/sysemu/sev.h
> > > @@ -14,6 +14,8 @@
> > > #ifndef QEMU_SEV_H
> > > #define QEMU_SEV_H
> > > +#include <linux/kvm.h>
> > > +
> > > #include "qom/object.h"
> > > #include "qapi/error.h"
> > > #include "sysemu/kvm.h"
> > > @@ -49,5 +51,13 @@ struct QSevGuestInfoClass {
> > > ObjectClass parent_class;
> > > };
> > > +struct SEVState {
> > > + QSevGuestInfo *sev_info;
> > > +};
> > > +
> > > +typedef struct SEVState SEVState;
> > > +
> > > +void *sev_guest_init(const char *id);
> > > +
> > > #endif
> > > --
> > > 2.9.5
> > >
> >
> > Dave
> >
> > --
> > Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
> >
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 10/23] sev: add command to initialize the memory encryption context
@ 2018-02-01 15:46 ` Dr. David Alan Gilbert
0 siblings, 0 replies; 118+ messages in thread
From: Dr. David Alan Gilbert @ 2018-02-01 15:46 UTC (permalink / raw)
To: Brijesh Singh
Cc: qemu-devel, kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Eduardo Habkost,
Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange
* Brijesh Singh (brijesh.singh@amd.com) wrote:
>
>
> On 02/01/2018 06:13 AM, Dr. David Alan Gilbert wrote:
> > * Brijesh Singh (brijesh.singh@amd.com) wrote:
> > > When memory encryption is enabled, KVM_SEV_INIT command is used to
> > > initialize the platform. The command loads the SEV related persistent
> > > data from non-volatile storage and initializes the platform context.
> > > This command should be first issued before invoking any other guest
> > > commands provided by the SEV firmware.
> >
> > Some minor comments rather than full review.
> >
> > > Cc: Paolo Bonzini <pbonzini@redhat.com>
> > > Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
> > > ---
> > > accel/kvm/kvm-all.c | 15 ++++++
> > > accel/kvm/sev.c | 124 +++++++++++++++++++++++++++++++++++++++++++++++++
> > > accel/kvm/trace-events | 2 +
> > > include/sysemu/sev.h | 10 ++++
> > > 4 files changed, 151 insertions(+)
> > >
> > > diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c
> > > index f290f487a573..a9b16846675e 100644
> > > --- a/accel/kvm/kvm-all.c
> > > +++ b/accel/kvm/kvm-all.c
> > > @@ -38,6 +38,7 @@
> > > #include "qemu/event_notifier.h"
> > > #include "trace.h"
> > > #include "hw/irq.h"
> > > +#include "sysemu/sev.h"
> > > #include "hw/boards.h"
> > > @@ -103,6 +104,9 @@ struct KVMState
> > > #endif
> > > KVMMemoryListener memory_listener;
> > > QLIST_HEAD(, KVMParkedVcpu) kvm_parked_vcpus;
> > > +
> > > + /* memory encryption */
> > > + void *memcrypt_handle;
> > > };
> > > KVMState *kvm_state;
> > > @@ -1632,6 +1636,17 @@ static int kvm_init(MachineState *ms)
> > > kvm_state = s;
> > > + /*
> > > + * if memory encryption object is specified then initialize the memory
> > > + * encryption context.
> > > + * */
> >
> > Style: should be */
>
>
> Ah noted, I will fix this.
>
>
> >
> > > + if (ms->memory_encryption) {
> > > + kvm_state->memcrypt_handle = sev_guest_init(ms->memory_encryption);
> > > + if (!kvm_state->memcrypt_handle) {
> > > + goto err;
> > > + }
> > > + }
> > > +
> > > ret = kvm_arch_init(ms, s);
> > > if (ret < 0) {
> > > goto err;
> > > diff --git a/accel/kvm/sev.c b/accel/kvm/sev.c
> > > index e93fdfeb0c8f..be1791e510b3 100644
> > > --- a/accel/kvm/sev.c
> > > +++ b/accel/kvm/sev.c
> > > @@ -18,10 +18,72 @@
> > > #include "sysemu/kvm.h"
> > > #include "sysemu/sev.h"
> > > #include "sysemu/sysemu.h"
> > > +#include "trace.h"
> > > #define DEFAULT_GUEST_POLICY 0x1 /* disable debug */
> > > #define DEFAULT_SEV_DEVICE "/dev/sev"
> > > +static int sev_fd;
> > > +
> > > +#define SEV_FW_MAX_ERROR 0x17
> > > +
> > > +static char sev_fw_errlist[SEV_FW_MAX_ERROR][100] = {
> >
> > Perhaps:
> > static const char *sev_few_errlist[] = {
> > ?
> >
>
> Sure, we can make it const, i will take care of this in next rev.
>
>
> > > + "",
> > > + "Platform state is invalid",
> > > + "Guest state is invalid",
> > > + "Platform configuration is invalid",
> > > + "Buffer too small",
> > > + "Platform is already owned",
> > > + "Certificate is invalid",
> > > + "Policy is not allowed",
> > > + "Guest is not active",
> > > + "Invalid address",
> > > + "Bad signature",
> > > + "Bad measurement",
> > > + "Asid is already owned",
> > > + "Invalid ASID",
> > > + "WBINVD is required",
> > > + "DF_FLUSH is required",
> > > + "Guest handle is invalid",
> > > + "Invalid command",
> > > + "Guest is active",
> > > + "Hardware error",
> > > + "Hardware unsafe",
> > > + "Feature not supported",
> > > + "Invalid parameter"
> > > +};
> > > +
> > > +static int
> > > +sev_ioctl(int cmd, void *data, int *error)
> > > +{
> > > + int r;
> > > + struct kvm_sev_cmd input;
> > > +
> > > + memset(&input, 0x0, sizeof(input));
> > > +
> > > + input.id = cmd;
> > > + input.sev_fd = sev_fd;
> > > + input.data = (__u64)data;
> > > +
> > > + r = kvm_vm_ioctl(kvm_state, KVM_MEMORY_ENCRYPT_OP, &input);
> > > +
> > > + if (error) {
> > > + *error = input.error;
> > > + }
> > > +
> > > + return r;
> > > +}
> > > +
> > > +static char *
> > > +fw_error_to_str(int code)
> > > +{
> > > + if (code > SEV_FW_MAX_ERROR) {
> >
> > I'm trying to convince myself whether that should be >= and whether the
> > maximum error is really 0x16 ? Your list up there has 23 entries
> > so I think trying to access error 0x17 would be bad.
> >
>
> Good catch, it should be >=.
>
>
> > > + return NULL;
> >
> > It might be better to return 'No error' or the like unless you're going
> > to be testing for NULL; that way you never end up with a Null getting
> > out.
> >
>
> Sure, I can do that.
>
>
> > > + }
> > > +
> > > + return sev_fw_errlist[code];
> > > +}
> > > +
> > > static void
> > > qsev_guest_finalize(Object *obj)
> > > {
> > > @@ -170,6 +232,68 @@ static const TypeInfo qsev_guest_info = {
> > > }
> > > };
> > > +static QSevGuestInfo *
> > > +lookup_sev_guest_info(const char *id)
> > > +{
> > > + Object *obj;
> > > + QSevGuestInfo *info;
> > > +
> > > + obj = object_resolve_path_component(object_get_objects_root(), id);
> > > + if (!obj) {
> > > + return NULL;
> > > + }
> > > +
> > > + info = (QSevGuestInfo *)
> > > + object_dynamic_cast(obj, TYPE_QSEV_GUEST_INFO);
> > > + if (!info) {
> > > + return NULL;
> > > + }
> > > +
> > > + return info;
> > > +}
> > > +
> > > +void *
> > > +sev_guest_init(const char *id)
> > > +{
> > > + SEVState *s;
> > > + char *devname;
> > > + int ret, fw_error;
> > > +
> > > + s = g_malloc0(sizeof(SEVState));
> >
> > g_new0 is easier.
>
>
> Sure, I can switch to using g_new0.
>
>
> >
> > > + if (!s) {
> > > + return NULL;
> > > + }
> >
> > and allocation aborts rather than returning NULL (unless you use the
> > _try_ version of g_new)
>
>
> Agreed, I will abort on allocation failure.
No, I mean you don't need to, since g_new0 etc will abort themselves
on an allocation failure; there's no need to check.
Dave
>
> >
> > > +
> > > + s->sev_info = lookup_sev_guest_info(id);
> > > + if (!s->sev_info) {
> > > + error_report("%s: '%s' is not a valid '%s' object",
> > > + __func__, id, TYPE_QSEV_GUEST_INFO);
> > > + goto err;
> > > + }
> > > +
> > > + devname = object_property_get_str(OBJECT(s->sev_info), "sev-device", NULL);
> > > + sev_fd = open(devname, O_RDWR);
> > > + if (sev_fd < 0) {
> > > + error_report("%s: Failed to open %s '%s'", __func__,
> > > + devname, strerror(errno));
> > > + goto err;
> > > + }
> > > + g_free(devname);
> > > +
> > > + trace_kvm_sev_init();
> > > + ret = sev_ioctl(KVM_SEV_INIT, NULL, &fw_error);
> > > + if (ret) {
> > > + error_report("%s: failed to initialize ret=%d fw_error=%d '%s'",
> > > + __func__, ret, fw_error, fw_error_to_str(fw_error));
> > > + goto err;
> > > + }
> > > +
> > > + return s;
> > > +err:
> > > + g_free(s);
> > > + return NULL;
> > > +}
> > > +
> > > static void
> > > sev_register_types(void)
> > > {
> > > diff --git a/accel/kvm/trace-events b/accel/kvm/trace-events
> > > index f89ba5578dc1..ea487e5a5913 100644
> > > --- a/accel/kvm/trace-events
> > > +++ b/accel/kvm/trace-events
> > > @@ -13,3 +13,5 @@ kvm_irqchip_add_msi_route(char *name, int vector, int virq) "dev %s vector %d vi
> > > kvm_irqchip_update_msi_route(int virq) "Updating MSI route virq=%d"
> > > kvm_irqchip_release_virq(int virq) "virq %d"
> > > +# sev.c
> > > +kvm_sev_init(void) ""
> > > diff --git a/include/sysemu/sev.h b/include/sysemu/sev.h
> > > index d2621a9d1100..6aec25bc05e5 100644
> > > --- a/include/sysemu/sev.h
> > > +++ b/include/sysemu/sev.h
> > > @@ -14,6 +14,8 @@
> > > #ifndef QEMU_SEV_H
> > > #define QEMU_SEV_H
> > > +#include <linux/kvm.h>
> > > +
> > > #include "qom/object.h"
> > > #include "qapi/error.h"
> > > #include "sysemu/kvm.h"
> > > @@ -49,5 +51,13 @@ struct QSevGuestInfoClass {
> > > ObjectClass parent_class;
> > > };
> > > +struct SEVState {
> > > + QSevGuestInfo *sev_info;
> > > +};
> > > +
> > > +typedef struct SEVState SEVState;
> > > +
> > > +void *sev_guest_init(const char *id);
> > > +
> > > #endif
> > > --
> > > 2.9.5
> > >
> >
> > Dave
> >
> > --
> > Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
> >
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [PATCH v6 18/23] sev: emit the SEV_MEASUREMENT event
2018-01-30 22:13 ` [Qemu-devel] " Brijesh Singh
@ 2018-02-01 17:27 ` Dr. David Alan Gilbert
-1 siblings, 0 replies; 118+ messages in thread
From: Dr. David Alan Gilbert @ 2018-02-01 17:27 UTC (permalink / raw)
To: Brijesh Singh
Cc: qemu-devel, kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Eduardo Habkost,
Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange
* Brijesh Singh (brijesh.singh@amd.com) wrote:
>
>
> On 1/30/18 2:08 PM, Dr. David Alan Gilbert wrote:
> > * Brijesh Singh (brijesh.singh@amd.com) wrote:
> >> During machine creation we encrypted the guest bios image, the
> >> LAUNCH_MEASURE command can be used to retrieve the measurement of
> >> the encrypted memory region. Emit the SEV_MEASUREMENT event so that
> >> libvirt can grab the measurement value as soon as we are done with
> >> creating the encrypted machine.
> > Can you ust clarify what happens if the libvirt has disconnected and
> > reconnected to qemu and so didn't see the event? Can the reconnecting
> > libvirt query it and find out it's ready/not ready yet?
>
> Dave,
>
> I have not looked into details between libvirt and qemu interaction to
> comment how and when the events will be delivered. Recently, one of my
> colleague was implementing libvirt interface for the SEV guest and ran
> into somewhat a similar challenge and posted question on libvirt mailing
> list [1].
>
> In previous discussion on qemu mailing list, we agreed to implement SEV
> MEASUREMENT event which can be seen by libvirt. That's what this patch
> is doing.
>
> But during the libvirt implementation it seems that qemu monitor
> silently drops all the events before it get the first qmp_capabilities
> command. At a quick glance it seems on reconnect, libvirt issues
> qmp_capabilities command and any event issued before the
> qmp_capabilities command will never to delivered to libvirt. we are
> looking for help from libvirt/qemu monitor experts on how we solve this
> problem. Our goal is to provide the measurement to libvirt before
> libvirt issues "continue" command. Since event can't be seen by libvirt
> before it resumes the guest hence I was wondering if we should we should
> drop the SEV measurement event and consider adding a new QMP command to
> query the SEV measurement.
Yep, I'll leave it to the libvirt contacts for the best way they'd like
to see that, as Eric says there's nothing wrong with having both the
command and event if useful. Also keep in mind coping with a guest that
crashes early or that measurement never arrives.
Dave
> [1] https://www.redhat.com/archives/libvir-list/2018-January/msg00602.html
>
> > Dave
> >
> >> Cc: Daniel P. Berrange <berrange@redhat.com>
> >> Cc: Paolo Bonzini <pbonzini@redhat.com>
> >> Cc: kvm@vger.kernel.org
> >> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
> >> ---
> >> accel/kvm/sev.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++
> >> accel/kvm/trace-events | 1 +
> >> include/sysemu/sev.h | 1 +
> >> 3 files changed, 60 insertions(+)
> >>
> >> diff --git a/accel/kvm/sev.c b/accel/kvm/sev.c
> >> index 1f757df725df..b78cf3144b1d 100644
> >> --- a/accel/kvm/sev.c
> >> +++ b/accel/kvm/sev.c
> >> @@ -19,11 +19,13 @@
> >> #include "sysemu/sev.h"
> >> #include "sysemu/sysemu.h"
> >> #include "trace.h"
> >> +#include "qapi-event.h"
> >>
> >> #define DEFAULT_GUEST_POLICY 0x1 /* disable debug */
> >> #define DEFAULT_SEV_DEVICE "/dev/sev"
> >>
> >> static int sev_fd;
> >> +static SEVState *sev_state;
> >>
> >> #define SEV_FW_MAX_ERROR 0x17
> >>
> >> @@ -418,6 +420,59 @@ err:
> >> return ret;
> >> }
> >>
> >> +static void
> >> +sev_launch_get_measure(Notifier *notifier, void *unused)
> >> +{
> >> + int ret, error;
> >> + guchar *data;
> >> + SEVState *s = sev_state;
> >> + struct kvm_sev_launch_measure *measurement;
> >> +
> >> + measurement = g_malloc0(sizeof(*measurement));
> >> + if (!measurement) {
> >> + return;
> >> + }
> >> +
> >> + /* query the measurement blob length */
> >> + ret = sev_ioctl(KVM_SEV_LAUNCH_MEASURE, measurement, &error);
> >> + if (!measurement->len) {
> >> + error_report("%s: LAUNCH_MEASURE ret=%d fw_error=%d '%s'",
> >> + __func__, ret, error, fw_error_to_str(errno));
> >> + goto free_measurement;
> >> + }
> >> +
> >> + data = g_malloc(measurement->len);
> >> + if (s->measurement) {
> >> + goto free_data;
> >> + }
> >> +
> >> + measurement->uaddr = (unsigned long)data;
> >> +
> >> + /* get the measurement blob */
> >> + ret = sev_ioctl(KVM_SEV_LAUNCH_MEASURE, measurement, &error);
> >> + if (ret) {
> >> + error_report("%s: LAUNCH_MEASURE ret=%d fw_error=%d '%s'",
> >> + __func__, ret, error, fw_error_to_str(errno));
> >> + goto free_data;
> >> + }
> >> +
> >> + sev_set_guest_state(SEV_STATE_SECRET);
> >> +
> >> + /* encode the measurement value and emit the event */
> >> + s->measurement = g_base64_encode(data, measurement->len);
> >> + trace_kvm_sev_launch_measurement(s->measurement);
> >> + qapi_event_send_sev_measurement(s->measurement, &error_abort);
> >> +
> >> +free_data:
> >> + g_free(data);
> >> +free_measurement:
> >> + g_free(measurement);
> >> +}
> >> +
> >> +static Notifier sev_machine_done_notify = {
> >> + .notify = sev_launch_get_measure,
> >> +};
> >> +
> >> void *
> >> sev_guest_init(const char *id)
> >> {
> >> @@ -461,6 +516,9 @@ sev_guest_init(const char *id)
> >> }
> >>
> >> ram_block_notifier_add(&sev_ram_notifier);
> >> + qemu_add_machine_init_done_notifier(&sev_machine_done_notify);
> >> +
> >> + sev_state = s;
> >>
> >> return s;
> >> err:
> >> diff --git a/accel/kvm/trace-events b/accel/kvm/trace-events
> >> index c55546f36a25..51df5113ad07 100644
> >> --- a/accel/kvm/trace-events
> >> +++ b/accel/kvm/trace-events
> >> @@ -20,3 +20,4 @@ kvm_memcrypt_unregister_region(void *addr, size_t len) "addr %p len 0x%lu"
> >> kvm_sev_change_state(char *old, char *new) "%s -> %s"
> >> kvm_sev_launch_start(int policy, void *session, void *pdh) "policy 0x%x session %p pdh %p"
> >> kvm_sev_launch_update_data(void *addr, uint64_t len) "addr %p len 0x%" PRIu64
> >> +kvm_sev_launch_measurement(const char *value) "data %s"
> >> diff --git a/include/sysemu/sev.h b/include/sysemu/sev.h
> >> index 839800efdbbf..572120c865ea 100644
> >> --- a/include/sysemu/sev.h
> >> +++ b/include/sysemu/sev.h
> >> @@ -63,6 +63,7 @@ typedef enum {
> >>
> >> struct SEVState {
> >> QSevGuestInfo *sev_info;
> >> + gchar *measurement;
> >> };
> >>
> >> typedef struct SEVState SEVState;
> >> --
> >> 2.9.5
> >>
> > --
> > Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 18/23] sev: emit the SEV_MEASUREMENT event
@ 2018-02-01 17:27 ` Dr. David Alan Gilbert
0 siblings, 0 replies; 118+ messages in thread
From: Dr. David Alan Gilbert @ 2018-02-01 17:27 UTC (permalink / raw)
To: Brijesh Singh
Cc: qemu-devel, kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Eduardo Habkost,
Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange
* Brijesh Singh (brijesh.singh@amd.com) wrote:
>
>
> On 1/30/18 2:08 PM, Dr. David Alan Gilbert wrote:
> > * Brijesh Singh (brijesh.singh@amd.com) wrote:
> >> During machine creation we encrypted the guest bios image, the
> >> LAUNCH_MEASURE command can be used to retrieve the measurement of
> >> the encrypted memory region. Emit the SEV_MEASUREMENT event so that
> >> libvirt can grab the measurement value as soon as we are done with
> >> creating the encrypted machine.
> > Can you ust clarify what happens if the libvirt has disconnected and
> > reconnected to qemu and so didn't see the event? Can the reconnecting
> > libvirt query it and find out it's ready/not ready yet?
>
> Dave,
>
> I have not looked into details between libvirt and qemu interaction to
> comment how and when the events will be delivered. Recently, one of my
> colleague was implementing libvirt interface for the SEV guest and ran
> into somewhat a similar challenge and posted question on libvirt mailing
> list [1].
>
> In previous discussion on qemu mailing list, we agreed to implement SEV
> MEASUREMENT event which can be seen by libvirt. That's what this patch
> is doing.
>
> But during the libvirt implementation it seems that qemu monitor
> silently drops all the events before it get the first qmp_capabilities
> command. At a quick glance it seems on reconnect, libvirt issues
> qmp_capabilities command and any event issued before the
> qmp_capabilities command will never to delivered to libvirt. we are
> looking for help from libvirt/qemu monitor experts on how we solve this
> problem. Our goal is to provide the measurement to libvirt before
> libvirt issues "continue" command. Since event can't be seen by libvirt
> before it resumes the guest hence I was wondering if we should we should
> drop the SEV measurement event and consider adding a new QMP command to
> query the SEV measurement.
Yep, I'll leave it to the libvirt contacts for the best way they'd like
to see that, as Eric says there's nothing wrong with having both the
command and event if useful. Also keep in mind coping with a guest that
crashes early or that measurement never arrives.
Dave
> [1] https://www.redhat.com/archives/libvir-list/2018-January/msg00602.html
>
> > Dave
> >
> >> Cc: Daniel P. Berrange <berrange@redhat.com>
> >> Cc: Paolo Bonzini <pbonzini@redhat.com>
> >> Cc: kvm@vger.kernel.org
> >> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
> >> ---
> >> accel/kvm/sev.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++
> >> accel/kvm/trace-events | 1 +
> >> include/sysemu/sev.h | 1 +
> >> 3 files changed, 60 insertions(+)
> >>
> >> diff --git a/accel/kvm/sev.c b/accel/kvm/sev.c
> >> index 1f757df725df..b78cf3144b1d 100644
> >> --- a/accel/kvm/sev.c
> >> +++ b/accel/kvm/sev.c
> >> @@ -19,11 +19,13 @@
> >> #include "sysemu/sev.h"
> >> #include "sysemu/sysemu.h"
> >> #include "trace.h"
> >> +#include "qapi-event.h"
> >>
> >> #define DEFAULT_GUEST_POLICY 0x1 /* disable debug */
> >> #define DEFAULT_SEV_DEVICE "/dev/sev"
> >>
> >> static int sev_fd;
> >> +static SEVState *sev_state;
> >>
> >> #define SEV_FW_MAX_ERROR 0x17
> >>
> >> @@ -418,6 +420,59 @@ err:
> >> return ret;
> >> }
> >>
> >> +static void
> >> +sev_launch_get_measure(Notifier *notifier, void *unused)
> >> +{
> >> + int ret, error;
> >> + guchar *data;
> >> + SEVState *s = sev_state;
> >> + struct kvm_sev_launch_measure *measurement;
> >> +
> >> + measurement = g_malloc0(sizeof(*measurement));
> >> + if (!measurement) {
> >> + return;
> >> + }
> >> +
> >> + /* query the measurement blob length */
> >> + ret = sev_ioctl(KVM_SEV_LAUNCH_MEASURE, measurement, &error);
> >> + if (!measurement->len) {
> >> + error_report("%s: LAUNCH_MEASURE ret=%d fw_error=%d '%s'",
> >> + __func__, ret, error, fw_error_to_str(errno));
> >> + goto free_measurement;
> >> + }
> >> +
> >> + data = g_malloc(measurement->len);
> >> + if (s->measurement) {
> >> + goto free_data;
> >> + }
> >> +
> >> + measurement->uaddr = (unsigned long)data;
> >> +
> >> + /* get the measurement blob */
> >> + ret = sev_ioctl(KVM_SEV_LAUNCH_MEASURE, measurement, &error);
> >> + if (ret) {
> >> + error_report("%s: LAUNCH_MEASURE ret=%d fw_error=%d '%s'",
> >> + __func__, ret, error, fw_error_to_str(errno));
> >> + goto free_data;
> >> + }
> >> +
> >> + sev_set_guest_state(SEV_STATE_SECRET);
> >> +
> >> + /* encode the measurement value and emit the event */
> >> + s->measurement = g_base64_encode(data, measurement->len);
> >> + trace_kvm_sev_launch_measurement(s->measurement);
> >> + qapi_event_send_sev_measurement(s->measurement, &error_abort);
> >> +
> >> +free_data:
> >> + g_free(data);
> >> +free_measurement:
> >> + g_free(measurement);
> >> +}
> >> +
> >> +static Notifier sev_machine_done_notify = {
> >> + .notify = sev_launch_get_measure,
> >> +};
> >> +
> >> void *
> >> sev_guest_init(const char *id)
> >> {
> >> @@ -461,6 +516,9 @@ sev_guest_init(const char *id)
> >> }
> >>
> >> ram_block_notifier_add(&sev_ram_notifier);
> >> + qemu_add_machine_init_done_notifier(&sev_machine_done_notify);
> >> +
> >> + sev_state = s;
> >>
> >> return s;
> >> err:
> >> diff --git a/accel/kvm/trace-events b/accel/kvm/trace-events
> >> index c55546f36a25..51df5113ad07 100644
> >> --- a/accel/kvm/trace-events
> >> +++ b/accel/kvm/trace-events
> >> @@ -20,3 +20,4 @@ kvm_memcrypt_unregister_region(void *addr, size_t len) "addr %p len 0x%lu"
> >> kvm_sev_change_state(char *old, char *new) "%s -> %s"
> >> kvm_sev_launch_start(int policy, void *session, void *pdh) "policy 0x%x session %p pdh %p"
> >> kvm_sev_launch_update_data(void *addr, uint64_t len) "addr %p len 0x%" PRIu64
> >> +kvm_sev_launch_measurement(const char *value) "data %s"
> >> diff --git a/include/sysemu/sev.h b/include/sysemu/sev.h
> >> index 839800efdbbf..572120c865ea 100644
> >> --- a/include/sysemu/sev.h
> >> +++ b/include/sysemu/sev.h
> >> @@ -63,6 +63,7 @@ typedef enum {
> >>
> >> struct SEVState {
> >> QSevGuestInfo *sev_info;
> >> + gchar *measurement;
> >> };
> >>
> >> typedef struct SEVState SEVState;
> >> --
> >> 2.9.5
> >>
> > --
> > Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [PATCH v6 13/23] hmp: display memory encryption support in 'info kvm'
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
@ 2018-02-01 17:58 ` Dr. David Alan Gilbert
-1 siblings, 0 replies; 118+ messages in thread
From: Dr. David Alan Gilbert @ 2018-02-01 17:58 UTC (permalink / raw)
To: Brijesh Singh
Cc: qemu-devel, kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Eduardo Habkost,
Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Markus Armbruster
* Brijesh Singh (brijesh.singh@amd.com) wrote:
> update 'info kvm' to display the memory encryption support.
>
> (qemu) info kvm
> kvm support: enabled
> memory encryption: disabled
As Markus said, this should be split qmp/hmp; but something else to
think about is whether this is a boolean or needs to be an enum; do
you have one version of encryption or are we going to need to flag up
versions or the features of the encryption?
Dave
> Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> Cc: Eric Blake <eblake@redhat.com>
> Cc: Markus Armbruster <armbru@redhat.com>
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
> ---
> hmp.c | 2 ++
> qapi-schema.json | 5 ++++-
> qmp.c | 1 +
> 3 files changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/hmp.c b/hmp.c
> index 056bf70cf1e2..6ceb6b30af75 100644
> --- a/hmp.c
> +++ b/hmp.c
> @@ -88,6 +88,8 @@ void hmp_info_kvm(Monitor *mon, const QDict *qdict)
> monitor_printf(mon, "kvm support: ");
> if (info->present) {
> monitor_printf(mon, "%s\n", info->enabled ? "enabled" : "disabled");
> + monitor_printf(mon, "memory encryption: %s\n",
> + info->mem_encryption ? "enabled" : "disabled");
> } else {
> monitor_printf(mon, "not compiled\n");
> }
> diff --git a/qapi-schema.json b/qapi-schema.json
> index 5c06745c7927..2046c96669bf 100644
> --- a/qapi-schema.json
> +++ b/qapi-schema.json
> @@ -314,9 +314,12 @@
> #
> # @present: true if KVM acceleration is built into this executable
> #
> +# @mem-encryption: true if Memory Encryption is active (since 2.12)
> +#
> # Since: 0.14.0
> ##
> -{ 'struct': 'KvmInfo', 'data': {'enabled': 'bool', 'present': 'bool'} }
> +{ 'struct': 'KvmInfo', 'data': {'enabled': 'bool', 'present': 'bool',
> + 'mem-encryption' : 'bool'} }
>
> ##
> # @query-kvm:
> diff --git a/qmp.c b/qmp.c
> index 52cfd2d81c0f..3a527bc8c39c 100644
> --- a/qmp.c
> +++ b/qmp.c
> @@ -69,6 +69,7 @@ KvmInfo *qmp_query_kvm(Error **errp)
>
> info->enabled = kvm_enabled();
> info->present = kvm_available();
> + info->mem_encryption = kvm_memcrypt_enabled();
>
> return info;
> }
> --
> 2.9.5
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 13/23] hmp: display memory encryption support in 'info kvm'
@ 2018-02-01 17:58 ` Dr. David Alan Gilbert
0 siblings, 0 replies; 118+ messages in thread
From: Dr. David Alan Gilbert @ 2018-02-01 17:58 UTC (permalink / raw)
To: Brijesh Singh
Cc: qemu-devel, kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Eduardo Habkost,
Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Markus Armbruster
* Brijesh Singh (brijesh.singh@amd.com) wrote:
> update 'info kvm' to display the memory encryption support.
>
> (qemu) info kvm
> kvm support: enabled
> memory encryption: disabled
As Markus said, this should be split qmp/hmp; but something else to
think about is whether this is a boolean or needs to be an enum; do
you have one version of encryption or are we going to need to flag up
versions or the features of the encryption?
Dave
> Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> Cc: Eric Blake <eblake@redhat.com>
> Cc: Markus Armbruster <armbru@redhat.com>
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
> ---
> hmp.c | 2 ++
> qapi-schema.json | 5 ++++-
> qmp.c | 1 +
> 3 files changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/hmp.c b/hmp.c
> index 056bf70cf1e2..6ceb6b30af75 100644
> --- a/hmp.c
> +++ b/hmp.c
> @@ -88,6 +88,8 @@ void hmp_info_kvm(Monitor *mon, const QDict *qdict)
> monitor_printf(mon, "kvm support: ");
> if (info->present) {
> monitor_printf(mon, "%s\n", info->enabled ? "enabled" : "disabled");
> + monitor_printf(mon, "memory encryption: %s\n",
> + info->mem_encryption ? "enabled" : "disabled");
> } else {
> monitor_printf(mon, "not compiled\n");
> }
> diff --git a/qapi-schema.json b/qapi-schema.json
> index 5c06745c7927..2046c96669bf 100644
> --- a/qapi-schema.json
> +++ b/qapi-schema.json
> @@ -314,9 +314,12 @@
> #
> # @present: true if KVM acceleration is built into this executable
> #
> +# @mem-encryption: true if Memory Encryption is active (since 2.12)
> +#
> # Since: 0.14.0
> ##
> -{ 'struct': 'KvmInfo', 'data': {'enabled': 'bool', 'present': 'bool'} }
> +{ 'struct': 'KvmInfo', 'data': {'enabled': 'bool', 'present': 'bool',
> + 'mem-encryption' : 'bool'} }
>
> ##
> # @query-kvm:
> diff --git a/qmp.c b/qmp.c
> index 52cfd2d81c0f..3a527bc8c39c 100644
> --- a/qmp.c
> +++ b/qmp.c
> @@ -69,6 +69,7 @@ KvmInfo *qmp_query_kvm(Error **errp)
>
> info->enabled = kvm_enabled();
> info->present = kvm_available();
> + info->mem_encryption = kvm_memcrypt_enabled();
>
> return info;
> }
> --
> 2.9.5
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [PATCH v6 13/23] hmp: display memory encryption support in 'info kvm'
2018-02-01 17:58 ` [Qemu-devel] " Dr. David Alan Gilbert
@ 2018-02-01 19:55 ` Brijesh Singh
-1 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-02-01 19:55 UTC (permalink / raw)
To: Dr. David Alan Gilbert
Cc: brijesh.singh, qemu-devel, kvm, Paolo Bonzini, Tom Lendacky,
Peter Maydell, Richard Henderson, Edgar E. Iglesias,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Markus Armbruster
On 2/1/18 11:58 AM, Dr. David Alan Gilbert wrote:
> * Brijesh Singh (brijesh.singh@amd.com) wrote:
>> update 'info kvm' to display the memory encryption support.
>>
>> (qemu) info kvm
>> kvm support: enabled
>> memory encryption: disabled
> As Markus said, this should be split qmp/hmp; but something else to
> think about is whether this is a boolean or needs to be an enum; do
> you have one version of encryption or are we going to need to flag up
> versions or the features of the encryption?
In future I could see us providing encrypted state status when we
implement SEV-ES support, something like
(qemu) info kvm
kvm support: enabled
memory encryption: enabled
cpu register state: encrypted
but so far I do not see need to provide the version string. If user
wants to know the SEV version then it can open /dev/sev device to get
platform status and more.
> Dave
>
>> Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
>> Cc: Eric Blake <eblake@redhat.com>
>> Cc: Markus Armbruster <armbru@redhat.com>
>> Cc: Paolo Bonzini <pbonzini@redhat.com>
>> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
>> ---
>> hmp.c | 2 ++
>> qapi-schema.json | 5 ++++-
>> qmp.c | 1 +
>> 3 files changed, 7 insertions(+), 1 deletion(-)
>>
>> diff --git a/hmp.c b/hmp.c
>> index 056bf70cf1e2..6ceb6b30af75 100644
>> --- a/hmp.c
>> +++ b/hmp.c
>> @@ -88,6 +88,8 @@ void hmp_info_kvm(Monitor *mon, const QDict *qdict)
>> monitor_printf(mon, "kvm support: ");
>> if (info->present) {
>> monitor_printf(mon, "%s\n", info->enabled ? "enabled" : "disabled");
>> + monitor_printf(mon, "memory encryption: %s\n",
>> + info->mem_encryption ? "enabled" : "disabled");
>> } else {
>> monitor_printf(mon, "not compiled\n");
>> }
>> diff --git a/qapi-schema.json b/qapi-schema.json
>> index 5c06745c7927..2046c96669bf 100644
>> --- a/qapi-schema.json
>> +++ b/qapi-schema.json
>> @@ -314,9 +314,12 @@
>> #
>> # @present: true if KVM acceleration is built into this executable
>> #
>> +# @mem-encryption: true if Memory Encryption is active (since 2.12)
>> +#
>> # Since: 0.14.0
>> ##
>> -{ 'struct': 'KvmInfo', 'data': {'enabled': 'bool', 'present': 'bool'} }
>> +{ 'struct': 'KvmInfo', 'data': {'enabled': 'bool', 'present': 'bool',
>> + 'mem-encryption' : 'bool'} }
>>
>> ##
>> # @query-kvm:
>> diff --git a/qmp.c b/qmp.c
>> index 52cfd2d81c0f..3a527bc8c39c 100644
>> --- a/qmp.c
>> +++ b/qmp.c
>> @@ -69,6 +69,7 @@ KvmInfo *qmp_query_kvm(Error **errp)
>>
>> info->enabled = kvm_enabled();
>> info->present = kvm_available();
>> + info->mem_encryption = kvm_memcrypt_enabled();
>>
>> return info;
>> }
>> --
>> 2.9.5
>>
> --
> Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 13/23] hmp: display memory encryption support in 'info kvm'
@ 2018-02-01 19:55 ` Brijesh Singh
0 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-02-01 19:55 UTC (permalink / raw)
To: Dr. David Alan Gilbert
Cc: brijesh.singh, qemu-devel, kvm, Paolo Bonzini, Tom Lendacky,
Peter Maydell, Richard Henderson, Edgar E. Iglesias,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Markus Armbruster
On 2/1/18 11:58 AM, Dr. David Alan Gilbert wrote:
> * Brijesh Singh (brijesh.singh@amd.com) wrote:
>> update 'info kvm' to display the memory encryption support.
>>
>> (qemu) info kvm
>> kvm support: enabled
>> memory encryption: disabled
> As Markus said, this should be split qmp/hmp; but something else to
> think about is whether this is a boolean or needs to be an enum; do
> you have one version of encryption or are we going to need to flag up
> versions or the features of the encryption?
In future I could see us providing encrypted state status when we
implement SEV-ES support, something like
(qemu) info kvm
kvm support: enabled
memory encryption: enabled
cpu register state: encrypted
but so far I do not see need to provide the version string. If user
wants to know the SEV version then it can open /dev/sev device to get
platform status and more.
> Dave
>
>> Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
>> Cc: Eric Blake <eblake@redhat.com>
>> Cc: Markus Armbruster <armbru@redhat.com>
>> Cc: Paolo Bonzini <pbonzini@redhat.com>
>> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
>> ---
>> hmp.c | 2 ++
>> qapi-schema.json | 5 ++++-
>> qmp.c | 1 +
>> 3 files changed, 7 insertions(+), 1 deletion(-)
>>
>> diff --git a/hmp.c b/hmp.c
>> index 056bf70cf1e2..6ceb6b30af75 100644
>> --- a/hmp.c
>> +++ b/hmp.c
>> @@ -88,6 +88,8 @@ void hmp_info_kvm(Monitor *mon, const QDict *qdict)
>> monitor_printf(mon, "kvm support: ");
>> if (info->present) {
>> monitor_printf(mon, "%s\n", info->enabled ? "enabled" : "disabled");
>> + monitor_printf(mon, "memory encryption: %s\n",
>> + info->mem_encryption ? "enabled" : "disabled");
>> } else {
>> monitor_printf(mon, "not compiled\n");
>> }
>> diff --git a/qapi-schema.json b/qapi-schema.json
>> index 5c06745c7927..2046c96669bf 100644
>> --- a/qapi-schema.json
>> +++ b/qapi-schema.json
>> @@ -314,9 +314,12 @@
>> #
>> # @present: true if KVM acceleration is built into this executable
>> #
>> +# @mem-encryption: true if Memory Encryption is active (since 2.12)
>> +#
>> # Since: 0.14.0
>> ##
>> -{ 'struct': 'KvmInfo', 'data': {'enabled': 'bool', 'present': 'bool'} }
>> +{ 'struct': 'KvmInfo', 'data': {'enabled': 'bool', 'present': 'bool',
>> + 'mem-encryption' : 'bool'} }
>>
>> ##
>> # @query-kvm:
>> diff --git a/qmp.c b/qmp.c
>> index 52cfd2d81c0f..3a527bc8c39c 100644
>> --- a/qmp.c
>> +++ b/qmp.c
>> @@ -69,6 +69,7 @@ KvmInfo *qmp_query_kvm(Error **errp)
>>
>> info->enabled = kvm_enabled();
>> info->present = kvm_available();
>> + info->mem_encryption = kvm_memcrypt_enabled();
>>
>> return info;
>> }
>> --
>> 2.9.5
>>
> --
> Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [PATCH v6 13/23] hmp: display memory encryption support in 'info kvm'
2018-02-01 19:55 ` [Qemu-devel] " Brijesh Singh
@ 2018-02-01 20:04 ` Dr. David Alan Gilbert
-1 siblings, 0 replies; 118+ messages in thread
From: Dr. David Alan Gilbert @ 2018-02-01 20:04 UTC (permalink / raw)
To: Brijesh Singh
Cc: qemu-devel, kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Eduardo Habkost,
Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Markus Armbruster
* Brijesh Singh (brijesh.singh@amd.com) wrote:
>
>
> On 2/1/18 11:58 AM, Dr. David Alan Gilbert wrote:
> > * Brijesh Singh (brijesh.singh@amd.com) wrote:
> >> update 'info kvm' to display the memory encryption support.
> >>
> >> (qemu) info kvm
> >> kvm support: enabled
> >> memory encryption: disabled
> > As Markus said, this should be split qmp/hmp; but something else to
> > think about is whether this is a boolean or needs to be an enum; do
> > you have one version of encryption or are we going to need to flag up
> > versions or the features of the encryption?
>
> In future I could see us providing encrypted state status when we
> implement SEV-ES support, something like
>
> (qemu) info kvm
> kvm support: enabled
> memory encryption: enabled
> cpu register state: encrypted
>
> but so far I do not see need to provide the version string. If user
> wants to know the SEV version then it can open /dev/sev device to get
> platform status and more.
Yes, I was worried a bit more about how general that was going to be
or whether we're collecting a lot of architecture specific fields here.
So I wondered, if it was an enum, whether that would be come:
memory encryption: none
memory encryption: SEV
memory encryption: SEV-ES
(I'm not too sure whether that's better or not, just a suggestion)
Dave
>
> > Dave
> >
> >> Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> >> Cc: Eric Blake <eblake@redhat.com>
> >> Cc: Markus Armbruster <armbru@redhat.com>
> >> Cc: Paolo Bonzini <pbonzini@redhat.com>
> >> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
> >> ---
> >> hmp.c | 2 ++
> >> qapi-schema.json | 5 ++++-
> >> qmp.c | 1 +
> >> 3 files changed, 7 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/hmp.c b/hmp.c
> >> index 056bf70cf1e2..6ceb6b30af75 100644
> >> --- a/hmp.c
> >> +++ b/hmp.c
> >> @@ -88,6 +88,8 @@ void hmp_info_kvm(Monitor *mon, const QDict *qdict)
> >> monitor_printf(mon, "kvm support: ");
> >> if (info->present) {
> >> monitor_printf(mon, "%s\n", info->enabled ? "enabled" : "disabled");
> >> + monitor_printf(mon, "memory encryption: %s\n",
> >> + info->mem_encryption ? "enabled" : "disabled");
> >> } else {
> >> monitor_printf(mon, "not compiled\n");
> >> }
> >> diff --git a/qapi-schema.json b/qapi-schema.json
> >> index 5c06745c7927..2046c96669bf 100644
> >> --- a/qapi-schema.json
> >> +++ b/qapi-schema.json
> >> @@ -314,9 +314,12 @@
> >> #
> >> # @present: true if KVM acceleration is built into this executable
> >> #
> >> +# @mem-encryption: true if Memory Encryption is active (since 2.12)
> >> +#
> >> # Since: 0.14.0
> >> ##
> >> -{ 'struct': 'KvmInfo', 'data': {'enabled': 'bool', 'present': 'bool'} }
> >> +{ 'struct': 'KvmInfo', 'data': {'enabled': 'bool', 'present': 'bool',
> >> + 'mem-encryption' : 'bool'} }
> >>
> >> ##
> >> # @query-kvm:
> >> diff --git a/qmp.c b/qmp.c
> >> index 52cfd2d81c0f..3a527bc8c39c 100644
> >> --- a/qmp.c
> >> +++ b/qmp.c
> >> @@ -69,6 +69,7 @@ KvmInfo *qmp_query_kvm(Error **errp)
> >>
> >> info->enabled = kvm_enabled();
> >> info->present = kvm_available();
> >> + info->mem_encryption = kvm_memcrypt_enabled();
> >>
> >> return info;
> >> }
> >> --
> >> 2.9.5
> >>
> > --
> > Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 13/23] hmp: display memory encryption support in 'info kvm'
@ 2018-02-01 20:04 ` Dr. David Alan Gilbert
0 siblings, 0 replies; 118+ messages in thread
From: Dr. David Alan Gilbert @ 2018-02-01 20:04 UTC (permalink / raw)
To: Brijesh Singh
Cc: qemu-devel, kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Eduardo Habkost,
Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Markus Armbruster
* Brijesh Singh (brijesh.singh@amd.com) wrote:
>
>
> On 2/1/18 11:58 AM, Dr. David Alan Gilbert wrote:
> > * Brijesh Singh (brijesh.singh@amd.com) wrote:
> >> update 'info kvm' to display the memory encryption support.
> >>
> >> (qemu) info kvm
> >> kvm support: enabled
> >> memory encryption: disabled
> > As Markus said, this should be split qmp/hmp; but something else to
> > think about is whether this is a boolean or needs to be an enum; do
> > you have one version of encryption or are we going to need to flag up
> > versions or the features of the encryption?
>
> In future I could see us providing encrypted state status when we
> implement SEV-ES support, something like
>
> (qemu) info kvm
> kvm support: enabled
> memory encryption: enabled
> cpu register state: encrypted
>
> but so far I do not see need to provide the version string. If user
> wants to know the SEV version then it can open /dev/sev device to get
> platform status and more.
Yes, I was worried a bit more about how general that was going to be
or whether we're collecting a lot of architecture specific fields here.
So I wondered, if it was an enum, whether that would be come:
memory encryption: none
memory encryption: SEV
memory encryption: SEV-ES
(I'm not too sure whether that's better or not, just a suggestion)
Dave
>
> > Dave
> >
> >> Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> >> Cc: Eric Blake <eblake@redhat.com>
> >> Cc: Markus Armbruster <armbru@redhat.com>
> >> Cc: Paolo Bonzini <pbonzini@redhat.com>
> >> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
> >> ---
> >> hmp.c | 2 ++
> >> qapi-schema.json | 5 ++++-
> >> qmp.c | 1 +
> >> 3 files changed, 7 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/hmp.c b/hmp.c
> >> index 056bf70cf1e2..6ceb6b30af75 100644
> >> --- a/hmp.c
> >> +++ b/hmp.c
> >> @@ -88,6 +88,8 @@ void hmp_info_kvm(Monitor *mon, const QDict *qdict)
> >> monitor_printf(mon, "kvm support: ");
> >> if (info->present) {
> >> monitor_printf(mon, "%s\n", info->enabled ? "enabled" : "disabled");
> >> + monitor_printf(mon, "memory encryption: %s\n",
> >> + info->mem_encryption ? "enabled" : "disabled");
> >> } else {
> >> monitor_printf(mon, "not compiled\n");
> >> }
> >> diff --git a/qapi-schema.json b/qapi-schema.json
> >> index 5c06745c7927..2046c96669bf 100644
> >> --- a/qapi-schema.json
> >> +++ b/qapi-schema.json
> >> @@ -314,9 +314,12 @@
> >> #
> >> # @present: true if KVM acceleration is built into this executable
> >> #
> >> +# @mem-encryption: true if Memory Encryption is active (since 2.12)
> >> +#
> >> # Since: 0.14.0
> >> ##
> >> -{ 'struct': 'KvmInfo', 'data': {'enabled': 'bool', 'present': 'bool'} }
> >> +{ 'struct': 'KvmInfo', 'data': {'enabled': 'bool', 'present': 'bool',
> >> + 'mem-encryption' : 'bool'} }
> >>
> >> ##
> >> # @query-kvm:
> >> diff --git a/qmp.c b/qmp.c
> >> index 52cfd2d81c0f..3a527bc8c39c 100644
> >> --- a/qmp.c
> >> +++ b/qmp.c
> >> @@ -69,6 +69,7 @@ KvmInfo *qmp_query_kvm(Error **errp)
> >>
> >> info->enabled = kvm_enabled();
> >> info->present = kvm_available();
> >> + info->mem_encryption = kvm_memcrypt_enabled();
> >>
> >> return info;
> >> }
> >> --
> >> 2.9.5
> >>
> > --
> > Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [PATCH v6 13/23] hmp: display memory encryption support in 'info kvm'
2018-02-01 20:04 ` [Qemu-devel] " Dr. David Alan Gilbert
@ 2018-02-02 13:08 ` Daniel P. Berrangé
-1 siblings, 0 replies; 118+ messages in thread
From: Daniel P. Berrangé @ 2018-02-02 13:08 UTC (permalink / raw)
To: Dr. David Alan Gilbert
Cc: Brijesh Singh, qemu-devel, kvm, Paolo Bonzini, Tom Lendacky,
Peter Maydell, Richard Henderson, Edgar E. Iglesias,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Markus Armbruster
On Thu, Feb 01, 2018 at 08:04:43PM +0000, Dr. David Alan Gilbert wrote:
> * Brijesh Singh (brijesh.singh@amd.com) wrote:
> >
> >
> > On 2/1/18 11:58 AM, Dr. David Alan Gilbert wrote:
> > > * Brijesh Singh (brijesh.singh@amd.com) wrote:
> > >> update 'info kvm' to display the memory encryption support.
> > >>
> > >> (qemu) info kvm
> > >> kvm support: enabled
> > >> memory encryption: disabled
> > > As Markus said, this should be split qmp/hmp; but something else to
> > > think about is whether this is a boolean or needs to be an enum; do
> > > you have one version of encryption or are we going to need to flag up
> > > versions or the features of the encryption?
> >
> > In future I could see us providing encrypted state status when we
> > implement SEV-ES support, something like
> >
> > (qemu) info kvm
> > kvm support: enabled
> > memory encryption: enabled
> > cpu register state: encrypted
> >
> > but so far I do not see need to provide the version string. If user
> > wants to know the SEV version then it can open /dev/sev device to get
> > platform status and more.
>
> Yes, I was worried a bit more about how general that was going to be
> or whether we're collecting a lot of architecture specific fields here.
> So I wondered, if it was an enum, whether that would be come:
>
> memory encryption: none
>
> memory encryption: SEV
>
> memory encryption: SEV-ES
>
> (I'm not too sure whether that's better or not, just a suggestion)
I wonder if it is is even appropriate to have under 'info kvm', since
'info kvm' is architecture independant and SEV is specific to AMD x86_64
only. It might suggest an 'info sev' command is better ?
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 13/23] hmp: display memory encryption support in 'info kvm'
@ 2018-02-02 13:08 ` Daniel P. Berrangé
0 siblings, 0 replies; 118+ messages in thread
From: Daniel P. Berrangé @ 2018-02-02 13:08 UTC (permalink / raw)
To: Dr. David Alan Gilbert
Cc: Brijesh Singh, qemu-devel, kvm, Paolo Bonzini, Tom Lendacky,
Peter Maydell, Richard Henderson, Edgar E. Iglesias,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Markus Armbruster
On Thu, Feb 01, 2018 at 08:04:43PM +0000, Dr. David Alan Gilbert wrote:
> * Brijesh Singh (brijesh.singh@amd.com) wrote:
> >
> >
> > On 2/1/18 11:58 AM, Dr. David Alan Gilbert wrote:
> > > * Brijesh Singh (brijesh.singh@amd.com) wrote:
> > >> update 'info kvm' to display the memory encryption support.
> > >>
> > >> (qemu) info kvm
> > >> kvm support: enabled
> > >> memory encryption: disabled
> > > As Markus said, this should be split qmp/hmp; but something else to
> > > think about is whether this is a boolean or needs to be an enum; do
> > > you have one version of encryption or are we going to need to flag up
> > > versions or the features of the encryption?
> >
> > In future I could see us providing encrypted state status when we
> > implement SEV-ES support, something like
> >
> > (qemu) info kvm
> > kvm support: enabled
> > memory encryption: enabled
> > cpu register state: encrypted
> >
> > but so far I do not see need to provide the version string. If user
> > wants to know the SEV version then it can open /dev/sev device to get
> > platform status and more.
>
> Yes, I was worried a bit more about how general that was going to be
> or whether we're collecting a lot of architecture specific fields here.
> So I wondered, if it was an enum, whether that would be come:
>
> memory encryption: none
>
> memory encryption: SEV
>
> memory encryption: SEV-ES
>
> (I'm not too sure whether that's better or not, just a suggestion)
I wonder if it is is even appropriate to have under 'info kvm', since
'info kvm' is architecture independant and SEV is specific to AMD x86_64
only. It might suggest an 'info sev' command is better ?
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [PATCH v6 13/23] hmp: display memory encryption support in 'info kvm'
2018-02-02 13:08 ` [Qemu-devel] " Daniel P. Berrangé
@ 2018-02-02 13:46 ` Brijesh Singh
-1 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-02-02 13:46 UTC (permalink / raw)
To: Daniel P. Berrangé, Dr. David Alan Gilbert
Cc: Edgar E. Iglesias, Peter Maydell, brijesh.singh, Eduardo Habkost,
kvm, Tom Lendacky, Stefan Hajnoczi, Michael S. Tsirkin,
Richard Henderson, qemu-devel, Markus Armbruster, Paolo Bonzini
On 2/2/18 7:08 AM, Daniel P. Berrangé wrote:
> On Thu, Feb 01, 2018 at 08:04:43PM +0000, Dr. David Alan Gilbert wrote:
>> * Brijesh Singh (brijesh.singh@amd.com) wrote:
>>>
>>> On 2/1/18 11:58 AM, Dr. David Alan Gilbert wrote:
>>>> * Brijesh Singh (brijesh.singh@amd.com) wrote:
>>>>> update 'info kvm' to display the memory encryption support.
>>>>>
>>>>> (qemu) info kvm
>>>>> kvm support: enabled
>>>>> memory encryption: disabled
>>>> As Markus said, this should be split qmp/hmp; but something else to
>>>> think about is whether this is a boolean or needs to be an enum; do
>>>> you have one version of encryption or are we going to need to flag up
>>>> versions or the features of the encryption?
>>> In future I could see us providing encrypted state status when we
>>> implement SEV-ES support, something like
>>>
>>> (qemu) info kvm
>>> kvm support: enabled
>>> memory encryption: enabled
>>> cpu register state: encrypted
>>>
>>> but so far I do not see need to provide the version string. If user
>>> wants to know the SEV version then it can open /dev/sev device to get
>>> platform status and more.
>> Yes, I was worried a bit more about how general that was going to be
>> or whether we're collecting a lot of architecture specific fields here.
>> So I wondered, if it was an enum, whether that would be come:
>>
>> memory encryption: none
>>
>> memory encryption: SEV
>>
>> memory encryption: SEV-ES
>>
>> (I'm not too sure whether that's better or not, just a suggestion)
> I wonder if it is is even appropriate to have under 'info kvm', since
> 'info kvm' is architecture independant and SEV is specific to AMD x86_64
> only. It might suggest an 'info sev' command is better ?
The reason I kept under 'info kvm' is because now KVM has a ioctl for
memory encryption operation, I like your suggestion for introducing
'info sev' -- the command can be used to provide additional SEV specific
details (e.g SEV FW state, SEV FW version, SEV active policy etc).
>
> Regards,
> Daniel
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 13/23] hmp: display memory encryption support in 'info kvm'
@ 2018-02-02 13:46 ` Brijesh Singh
0 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-02-02 13:46 UTC (permalink / raw)
To: Daniel P. Berrangé, Dr. David Alan Gilbert
Cc: brijesh.singh, qemu-devel, kvm, Paolo Bonzini, Tom Lendacky,
Peter Maydell, Richard Henderson, Edgar E. Iglesias,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Markus Armbruster
On 2/2/18 7:08 AM, Daniel P. Berrangé wrote:
> On Thu, Feb 01, 2018 at 08:04:43PM +0000, Dr. David Alan Gilbert wrote:
>> * Brijesh Singh (brijesh.singh@amd.com) wrote:
>>>
>>> On 2/1/18 11:58 AM, Dr. David Alan Gilbert wrote:
>>>> * Brijesh Singh (brijesh.singh@amd.com) wrote:
>>>>> update 'info kvm' to display the memory encryption support.
>>>>>
>>>>> (qemu) info kvm
>>>>> kvm support: enabled
>>>>> memory encryption: disabled
>>>> As Markus said, this should be split qmp/hmp; but something else to
>>>> think about is whether this is a boolean or needs to be an enum; do
>>>> you have one version of encryption or are we going to need to flag up
>>>> versions or the features of the encryption?
>>> In future I could see us providing encrypted state status when we
>>> implement SEV-ES support, something like
>>>
>>> (qemu) info kvm
>>> kvm support: enabled
>>> memory encryption: enabled
>>> cpu register state: encrypted
>>>
>>> but so far I do not see need to provide the version string. If user
>>> wants to know the SEV version then it can open /dev/sev device to get
>>> platform status and more.
>> Yes, I was worried a bit more about how general that was going to be
>> or whether we're collecting a lot of architecture specific fields here.
>> So I wondered, if it was an enum, whether that would be come:
>>
>> memory encryption: none
>>
>> memory encryption: SEV
>>
>> memory encryption: SEV-ES
>>
>> (I'm not too sure whether that's better or not, just a suggestion)
> I wonder if it is is even appropriate to have under 'info kvm', since
> 'info kvm' is architecture independant and SEV is specific to AMD x86_64
> only. It might suggest an 'info sev' command is better ?
The reason I kept under 'info kvm' is because now KVM has a ioctl for
memory encryption operation, I like your suggestion for introducing
'info sev' -- the command can be used to provide additional SEV specific
details (e.g SEV FW state, SEV FW version, SEV active policy etc).
>
> Regards,
> Daniel
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [PATCH v6 18/23] sev: emit the SEV_MEASUREMENT event
2018-02-01 17:27 ` [Qemu-devel] " Dr. David Alan Gilbert
@ 2018-02-02 15:11 ` Brijesh Singh
-1 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-02-02 15:11 UTC (permalink / raw)
To: Dr. David Alan Gilbert
Cc: brijesh.singh, qemu-devel, kvm, Paolo Bonzini, Tom Lendacky,
Peter Maydell, Richard Henderson, Edgar E. Iglesias,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Chen, Xiaogang
On 02/01/2018 11:27 AM, Dr. David Alan Gilbert wrote:
> * Brijesh Singh (brijesh.singh@amd.com) wrote:
>>
>>
>> On 1/30/18 2:08 PM, Dr. David Alan Gilbert wrote:
>>> * Brijesh Singh (brijesh.singh@amd.com) wrote:
>>>> During machine creation we encrypted the guest bios image, the
>>>> LAUNCH_MEASURE command can be used to retrieve the measurement of
>>>> the encrypted memory region. Emit the SEV_MEASUREMENT event so that
>>>> libvirt can grab the measurement value as soon as we are done with
>>>> creating the encrypted machine.
>>> Can you ust clarify what happens if the libvirt has disconnected and
>>> reconnected to qemu and so didn't see the event? Can the reconnecting
>>> libvirt query it and find out it's ready/not ready yet?
>>
>> Dave,
>>
>> I have not looked into details between libvirt and qemu interaction to
>> comment how and when the events will be delivered. Recently, one of my
>> colleague was implementing libvirt interface for the SEV guest and ran
>> into somewhat a similar challenge and posted question on libvirt mailing
>> list [1].
>>
>> In previous discussion on qemu mailing list, we agreed to implement SEV
>> MEASUREMENT event which can be seen by libvirt. That's what this patch
>> is doing.
>>
>> But during the libvirt implementation it seems that qemu monitor
>> silently drops all the events before it get the first qmp_capabilities
>> command. At a quick glance it seems on reconnect, libvirt issues
>> qmp_capabilities command and any event issued before the
>> qmp_capabilities command will never to delivered to libvirt. we are
>> looking for help from libvirt/qemu monitor experts on how we solve this
>> problem. Our goal is to provide the measurement to libvirt before
>> libvirt issues "continue" command. Since event can't be seen by libvirt
>> before it resumes the guest hence I was wondering if we should we should
>> drop the SEV measurement event and consider adding a new QMP command to
>> query the SEV measurement.
>
> Yep, I'll leave it to the libvirt contacts for the best way they'd like
> to see that, as Eric says there's nothing wrong with having both the
> command and event if useful. Also keep in mind coping with a guest that
> crashes early or that measurement never arrives.
>
Yep, lets see what libvirt experts say about it.
Hi Daniel,
Do you have any recommendation on whether we should consider adding a
new QMP to retrieve the measurement or we do event or both? Please note
that the launch measurement is generate only once for the lifetime of
the guest. The measurement will be available after qmeu encrypts the
guest bios during the machine initialization time.
-Brijesh
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 18/23] sev: emit the SEV_MEASUREMENT event
@ 2018-02-02 15:11 ` Brijesh Singh
0 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-02-02 15:11 UTC (permalink / raw)
To: Dr. David Alan Gilbert
Cc: brijesh.singh, qemu-devel, kvm, Paolo Bonzini, Tom Lendacky,
Peter Maydell, Richard Henderson, Edgar E. Iglesias,
Eduardo Habkost, Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Daniel P . Berrange, Chen, Xiaogang
On 02/01/2018 11:27 AM, Dr. David Alan Gilbert wrote:
> * Brijesh Singh (brijesh.singh@amd.com) wrote:
>>
>>
>> On 1/30/18 2:08 PM, Dr. David Alan Gilbert wrote:
>>> * Brijesh Singh (brijesh.singh@amd.com) wrote:
>>>> During machine creation we encrypted the guest bios image, the
>>>> LAUNCH_MEASURE command can be used to retrieve the measurement of
>>>> the encrypted memory region. Emit the SEV_MEASUREMENT event so that
>>>> libvirt can grab the measurement value as soon as we are done with
>>>> creating the encrypted machine.
>>> Can you ust clarify what happens if the libvirt has disconnected and
>>> reconnected to qemu and so didn't see the event? Can the reconnecting
>>> libvirt query it and find out it's ready/not ready yet?
>>
>> Dave,
>>
>> I have not looked into details between libvirt and qemu interaction to
>> comment how and when the events will be delivered. Recently, one of my
>> colleague was implementing libvirt interface for the SEV guest and ran
>> into somewhat a similar challenge and posted question on libvirt mailing
>> list [1].
>>
>> In previous discussion on qemu mailing list, we agreed to implement SEV
>> MEASUREMENT event which can be seen by libvirt. That's what this patch
>> is doing.
>>
>> But during the libvirt implementation it seems that qemu monitor
>> silently drops all the events before it get the first qmp_capabilities
>> command. At a quick glance it seems on reconnect, libvirt issues
>> qmp_capabilities command and any event issued before the
>> qmp_capabilities command will never to delivered to libvirt. we are
>> looking for help from libvirt/qemu monitor experts on how we solve this
>> problem. Our goal is to provide the measurement to libvirt before
>> libvirt issues "continue" command. Since event can't be seen by libvirt
>> before it resumes the guest hence I was wondering if we should we should
>> drop the SEV measurement event and consider adding a new QMP command to
>> query the SEV measurement.
>
> Yep, I'll leave it to the libvirt contacts for the best way they'd like
> to see that, as Eric says there's nothing wrong with having both the
> command and event if useful. Also keep in mind coping with a guest that
> crashes early or that measurement never arrives.
>
Yep, lets see what libvirt experts say about it.
Hi Daniel,
Do you have any recommendation on whether we should consider adding a
new QMP to retrieve the measurement or we do event or both? Please note
that the launch measurement is generate only once for the lifetime of
the guest. The measurement will be available after qmeu encrypts the
guest bios during the machine initialization time.
-Brijesh
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [PATCH v6 18/23] sev: emit the SEV_MEASUREMENT event
2018-02-02 15:11 ` [Qemu-devel] " Brijesh Singh
@ 2018-02-02 15:16 ` Daniel P. Berrangé
-1 siblings, 0 replies; 118+ messages in thread
From: Daniel P. Berrangé @ 2018-02-02 15:16 UTC (permalink / raw)
To: Brijesh Singh
Cc: Dr. David Alan Gilbert, qemu-devel, kvm, Paolo Bonzini,
Tom Lendacky, Peter Maydell, Richard Henderson,
Edgar E. Iglesias, Eduardo Habkost, Stefan Hajnoczi, Eric Blake,
Michael S. Tsirkin, Chen, Xiaogang
On Fri, Feb 02, 2018 at 09:11:41AM -0600, Brijesh Singh wrote:
>
>
> On 02/01/2018 11:27 AM, Dr. David Alan Gilbert wrote:
> > * Brijesh Singh (brijesh.singh@amd.com) wrote:
> > >
> > >
> > > On 1/30/18 2:08 PM, Dr. David Alan Gilbert wrote:
> > > > * Brijesh Singh (brijesh.singh@amd.com) wrote:
> > > > > During machine creation we encrypted the guest bios image, the
> > > > > LAUNCH_MEASURE command can be used to retrieve the measurement of
> > > > > the encrypted memory region. Emit the SEV_MEASUREMENT event so that
> > > > > libvirt can grab the measurement value as soon as we are done with
> > > > > creating the encrypted machine.
> > > > Can you ust clarify what happens if the libvirt has disconnected and
> > > > reconnected to qemu and so didn't see the event? Can the reconnecting
> > > > libvirt query it and find out it's ready/not ready yet?
> > >
> > > Dave,
> > >
> > > I have not looked into details between libvirt and qemu interaction to
> > > comment how and when the events will be delivered. Recently, one of my
> > > colleague was implementing libvirt interface for the SEV guest and ran
> > > into somewhat a similar challenge and posted question on libvirt mailing
> > > list [1].
> > >
> > > In previous discussion on qemu mailing list, we agreed to implement SEV
> > > MEASUREMENT event which can be seen by libvirt. That's what this patch
> > > is doing.
> > >
> > > But during the libvirt implementation it seems that qemu monitor
> > > silently drops all the events before it get the first qmp_capabilities
> > > command. At a quick glance it seems on reconnect, libvirt issues
> > > qmp_capabilities command and any event issued before the
> > > qmp_capabilities command will never to delivered to libvirt. we are
> > > looking for help from libvirt/qemu monitor experts on how we solve this
> > > problem. Our goal is to provide the measurement to libvirt before
> > > libvirt issues "continue" command. Since event can't be seen by libvirt
> > > before it resumes the guest hence I was wondering if we should we should
> > > drop the SEV measurement event and consider adding a new QMP command to
> > > query the SEV measurement.
> >
> > Yep, I'll leave it to the libvirt contacts for the best way they'd like
> > to see that, as Eric says there's nothing wrong with having both the
> > command and event if useful. Also keep in mind coping with a guest that
> > crashes early or that measurement never arrives.
> >
>
> Yep, lets see what libvirt experts say about it.
>
> Hi Daniel,
>
> Do you have any recommendation on whether we should consider adding a new
> QMP to retrieve the measurement or we do event or both? Please note that the
> launch measurement is generate only once for the lifetime of the guest. The
> measurement will be available after qmeu encrypts the guest bios during the
> machine initialization time.
IIUC, the measurement event is only required during the initial QEMU
startup sequence. Once the guest CPUs are running this info is not needed
any more.
If libvirtd crashes/restarts in the middle of QEMU startup sequence it is
game over from libvirt's POV. Libvirtd won't try to carry on starting that
guest when it restarts. So I don't think there's a compelling need for a
command to query the measurement from libvirt's POV, the event is fine.
That all said, I think it might be useful to have a command to query the
SEV measurement purely as a debugging aid, if some admin / support person
wants to get hold of this info for some reason...
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 18/23] sev: emit the SEV_MEASUREMENT event
@ 2018-02-02 15:16 ` Daniel P. Berrangé
0 siblings, 0 replies; 118+ messages in thread
From: Daniel P. Berrangé @ 2018-02-02 15:16 UTC (permalink / raw)
To: Brijesh Singh
Cc: Dr. David Alan Gilbert, qemu-devel, kvm, Paolo Bonzini,
Tom Lendacky, Peter Maydell, Richard Henderson,
Edgar E. Iglesias, Eduardo Habkost, Stefan Hajnoczi, Eric Blake,
Michael S. Tsirkin, Chen, Xiaogang
On Fri, Feb 02, 2018 at 09:11:41AM -0600, Brijesh Singh wrote:
>
>
> On 02/01/2018 11:27 AM, Dr. David Alan Gilbert wrote:
> > * Brijesh Singh (brijesh.singh@amd.com) wrote:
> > >
> > >
> > > On 1/30/18 2:08 PM, Dr. David Alan Gilbert wrote:
> > > > * Brijesh Singh (brijesh.singh@amd.com) wrote:
> > > > > During machine creation we encrypted the guest bios image, the
> > > > > LAUNCH_MEASURE command can be used to retrieve the measurement of
> > > > > the encrypted memory region. Emit the SEV_MEASUREMENT event so that
> > > > > libvirt can grab the measurement value as soon as we are done with
> > > > > creating the encrypted machine.
> > > > Can you ust clarify what happens if the libvirt has disconnected and
> > > > reconnected to qemu and so didn't see the event? Can the reconnecting
> > > > libvirt query it and find out it's ready/not ready yet?
> > >
> > > Dave,
> > >
> > > I have not looked into details between libvirt and qemu interaction to
> > > comment how and when the events will be delivered. Recently, one of my
> > > colleague was implementing libvirt interface for the SEV guest and ran
> > > into somewhat a similar challenge and posted question on libvirt mailing
> > > list [1].
> > >
> > > In previous discussion on qemu mailing list, we agreed to implement SEV
> > > MEASUREMENT event which can be seen by libvirt. That's what this patch
> > > is doing.
> > >
> > > But during the libvirt implementation it seems that qemu monitor
> > > silently drops all the events before it get the first qmp_capabilities
> > > command. At a quick glance it seems on reconnect, libvirt issues
> > > qmp_capabilities command and any event issued before the
> > > qmp_capabilities command will never to delivered to libvirt. we are
> > > looking for help from libvirt/qemu monitor experts on how we solve this
> > > problem. Our goal is to provide the measurement to libvirt before
> > > libvirt issues "continue" command. Since event can't be seen by libvirt
> > > before it resumes the guest hence I was wondering if we should we should
> > > drop the SEV measurement event and consider adding a new QMP command to
> > > query the SEV measurement.
> >
> > Yep, I'll leave it to the libvirt contacts for the best way they'd like
> > to see that, as Eric says there's nothing wrong with having both the
> > command and event if useful. Also keep in mind coping with a guest that
> > crashes early or that measurement never arrives.
> >
>
> Yep, lets see what libvirt experts say about it.
>
> Hi Daniel,
>
> Do you have any recommendation on whether we should consider adding a new
> QMP to retrieve the measurement or we do event or both? Please note that the
> launch measurement is generate only once for the lifetime of the guest. The
> measurement will be available after qmeu encrypts the guest bios during the
> machine initialization time.
IIUC, the measurement event is only required during the initial QEMU
startup sequence. Once the guest CPUs are running this info is not needed
any more.
If libvirtd crashes/restarts in the middle of QEMU startup sequence it is
game over from libvirt's POV. Libvirtd won't try to carry on starting that
guest when it restarts. So I don't think there's a compelling need for a
command to query the measurement from libvirt's POV, the event is fine.
That all said, I think it might be useful to have a command to query the
SEV measurement purely as a debugging aid, if some admin / support person
wants to get hold of this info for some reason...
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [PATCH v6 13/23] hmp: display memory encryption support in 'info kvm'
2018-02-02 13:46 ` [Qemu-devel] " Brijesh Singh
@ 2018-02-02 15:24 ` Dr. David Alan Gilbert
-1 siblings, 0 replies; 118+ messages in thread
From: Dr. David Alan Gilbert @ 2018-02-02 15:24 UTC (permalink / raw)
To: Brijesh Singh
Cc: Daniel P. Berrangé,
qemu-devel, kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Eduardo Habkost,
Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Markus Armbruster
* Brijesh Singh (brijesh.singh@amd.com) wrote:
>
>
> On 2/2/18 7:08 AM, Daniel P. Berrangé wrote:
> > On Thu, Feb 01, 2018 at 08:04:43PM +0000, Dr. David Alan Gilbert wrote:
> >> * Brijesh Singh (brijesh.singh@amd.com) wrote:
> >>>
> >>> On 2/1/18 11:58 AM, Dr. David Alan Gilbert wrote:
> >>>> * Brijesh Singh (brijesh.singh@amd.com) wrote:
> >>>>> update 'info kvm' to display the memory encryption support.
> >>>>>
> >>>>> (qemu) info kvm
> >>>>> kvm support: enabled
> >>>>> memory encryption: disabled
> >>>> As Markus said, this should be split qmp/hmp; but something else to
> >>>> think about is whether this is a boolean or needs to be an enum; do
> >>>> you have one version of encryption or are we going to need to flag up
> >>>> versions or the features of the encryption?
> >>> In future I could see us providing encrypted state status when we
> >>> implement SEV-ES support, something like
> >>>
> >>> (qemu) info kvm
> >>> kvm support: enabled
> >>> memory encryption: enabled
> >>> cpu register state: encrypted
> >>>
> >>> but so far I do not see need to provide the version string. If user
> >>> wants to know the SEV version then it can open /dev/sev device to get
> >>> platform status and more.
> >> Yes, I was worried a bit more about how general that was going to be
> >> or whether we're collecting a lot of architecture specific fields here.
> >> So I wondered, if it was an enum, whether that would be come:
> >>
> >> memory encryption: none
> >>
> >> memory encryption: SEV
> >>
> >> memory encryption: SEV-ES
> >>
> >> (I'm not too sure whether that's better or not, just a suggestion)
> > I wonder if it is is even appropriate to have under 'info kvm', since
> > 'info kvm' is architecture independant and SEV is specific to AMD x86_64
> > only. It might suggest an 'info sev' command is better ?
>
> The reason I kept under 'info kvm' is because now KVM has a ioctl for
> memory encryption operation, I like your suggestion for introducing
> 'info sev' -- the command can be used to provide additional SEV specific
> details (e.g SEV FW state, SEV FW version, SEV active policy etc).
Yes, that would be useful - I'm sure there's lots of information that
will be useful to display for understanding the state of SEV, e.g. the
policies etc.
Dave
> >
> > Regards,
> > Daniel
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 13/23] hmp: display memory encryption support in 'info kvm'
@ 2018-02-02 15:24 ` Dr. David Alan Gilbert
0 siblings, 0 replies; 118+ messages in thread
From: Dr. David Alan Gilbert @ 2018-02-02 15:24 UTC (permalink / raw)
To: Brijesh Singh
Cc: Daniel P. Berrangé,
qemu-devel, kvm, Paolo Bonzini, Tom Lendacky, Peter Maydell,
Richard Henderson, Edgar E. Iglesias, Eduardo Habkost,
Stefan Hajnoczi, Eric Blake, Michael S. Tsirkin,
Markus Armbruster
* Brijesh Singh (brijesh.singh@amd.com) wrote:
>
>
> On 2/2/18 7:08 AM, Daniel P. Berrangé wrote:
> > On Thu, Feb 01, 2018 at 08:04:43PM +0000, Dr. David Alan Gilbert wrote:
> >> * Brijesh Singh (brijesh.singh@amd.com) wrote:
> >>>
> >>> On 2/1/18 11:58 AM, Dr. David Alan Gilbert wrote:
> >>>> * Brijesh Singh (brijesh.singh@amd.com) wrote:
> >>>>> update 'info kvm' to display the memory encryption support.
> >>>>>
> >>>>> (qemu) info kvm
> >>>>> kvm support: enabled
> >>>>> memory encryption: disabled
> >>>> As Markus said, this should be split qmp/hmp; but something else to
> >>>> think about is whether this is a boolean or needs to be an enum; do
> >>>> you have one version of encryption or are we going to need to flag up
> >>>> versions or the features of the encryption?
> >>> In future I could see us providing encrypted state status when we
> >>> implement SEV-ES support, something like
> >>>
> >>> (qemu) info kvm
> >>> kvm support: enabled
> >>> memory encryption: enabled
> >>> cpu register state: encrypted
> >>>
> >>> but so far I do not see need to provide the version string. If user
> >>> wants to know the SEV version then it can open /dev/sev device to get
> >>> platform status and more.
> >> Yes, I was worried a bit more about how general that was going to be
> >> or whether we're collecting a lot of architecture specific fields here.
> >> So I wondered, if it was an enum, whether that would be come:
> >>
> >> memory encryption: none
> >>
> >> memory encryption: SEV
> >>
> >> memory encryption: SEV-ES
> >>
> >> (I'm not too sure whether that's better or not, just a suggestion)
> > I wonder if it is is even appropriate to have under 'info kvm', since
> > 'info kvm' is architecture independant and SEV is specific to AMD x86_64
> > only. It might suggest an 'info sev' command is better ?
>
> The reason I kept under 'info kvm' is because now KVM has a ioctl for
> memory encryption operation, I like your suggestion for introducing
> 'info sev' -- the command can be used to provide additional SEV specific
> details (e.g SEV FW state, SEV FW version, SEV active policy etc).
Yes, that would be useful - I'm sure there's lots of information that
will be useful to display for understanding the state of SEV, e.g. the
policies etc.
Dave
> >
> > Regards,
> > Daniel
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 00/23] x86: Secure Encrypted Virtualization (AMD)
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
@ 2018-02-06 15:51 ` Bruce Rogers
-1 siblings, 0 replies; 118+ messages in thread
From: Bruce Rogers @ 2018-02-06 15:51 UTC (permalink / raw)
To: brijesh.singh, qemu-devel
Cc: Thomas.Lendacky, Stefan Hajnoczi, peter.maydell,
richard.henderson, Dr. David Alan Gilbert, ehabkost,
Michael S. Tsirkin, Paolo Bonzini, kvm, edgar.iglesias
>>> On 1/29/2018 at 10:41 AM, <brijesh.singh@amd.com> wrote:
> This patch series provides support for AMD's new Secure Encrypted
> Virtualization (SEV) feature.
>
> SEV is an extension to the AMD‑V architecture which supports running
> multiple VMs under the control of a hypervisor. The SEV feature allows
> the memory contents of a virtual machine (VM) to be transparently encrypted
> with a key unique to the guest VM. The memory controller contains a
> high performance encryption engine which can be programmed with multiple
> keys for use by a different VMs in the system. The programming and
> management of these keys is handled by the AMD Secure Processor firmware
> which exposes a commands for these tasks.
>
> The KVM SEV patch series introduced a new ioctl (KVM_MEMORY_ENCRYPTION_OP)
> which is used by qemu to issue the SEV commands to assist performing
> common hypervisor activities such as a launching, running, snapshooting,
> migration and debugging guests.
>
As for the reported failure to build on non-x86 hosts, eg:
...
LINK i386-softmmu/qemu-system-i386
target/i386/helper.o: In function `get_me_mask':
/var/tmp/patchew-tester-tmp-hek3vjny/src/target/i386/helper.c:735: undefined reference to `kvm_arch_get_supported_cpuid'
target/i386/monitor.o: In function `get_me_mask':
/var/tmp/patchew-tester-tmp-hek3vjny/src/target/i386/monitor.c:71: undefined reference to `kvm_arch_get_supported_cpuid'
... I've looked at that a bit and find that in target/i386/kvm-stub.c, if we get rid of
the #ifndef __OPTIMIZE__ it then builds ok. I'm not sure if the guarding done there
with the check for __OPTIMIZE__ is a relic that no longer applies given how qemu
currently builds, but at least it's something to look at.
Bruce
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 00/23] x86: Secure Encrypted Virtualization (AMD)
@ 2018-02-06 15:51 ` Bruce Rogers
0 siblings, 0 replies; 118+ messages in thread
From: Bruce Rogers @ 2018-02-06 15:51 UTC (permalink / raw)
To: brijesh.singh, qemu-devel
Cc: Thomas.Lendacky, Stefan Hajnoczi, peter.maydell,
richard.henderson, Dr. David Alan Gilbert, ehabkost,
Michael S. Tsirkin, Paolo Bonzini, kvm, edgar.iglesias
>>> On 1/29/2018 at 10:41 AM, <brijesh.singh@amd.com> wrote:
> This patch series provides support for AMD's new Secure Encrypted
> Virtualization (SEV) feature.
>
> SEV is an extension to the AMD‑V architecture which supports running
> multiple VMs under the control of a hypervisor. The SEV feature allows
> the memory contents of a virtual machine (VM) to be transparently encrypted
> with a key unique to the guest VM. The memory controller contains a
> high performance encryption engine which can be programmed with multiple
> keys for use by a different VMs in the system. The programming and
> management of these keys is handled by the AMD Secure Processor firmware
> which exposes a commands for these tasks.
>
> The KVM SEV patch series introduced a new ioctl (KVM_MEMORY_ENCRYPTION_OP)
> which is used by qemu to issue the SEV commands to assist performing
> common hypervisor activities such as a launching, running, snapshooting,
> migration and debugging guests.
>
As for the reported failure to build on non-x86 hosts, eg:
...
LINK i386-softmmu/qemu-system-i386
target/i386/helper.o: In function `get_me_mask':
/var/tmp/patchew-tester-tmp-hek3vjny/src/target/i386/helper.c:735: undefined reference to `kvm_arch_get_supported_cpuid'
target/i386/monitor.o: In function `get_me_mask':
/var/tmp/patchew-tester-tmp-hek3vjny/src/target/i386/monitor.c:71: undefined reference to `kvm_arch_get_supported_cpuid'
... I've looked at that a bit and find that in target/i386/kvm-stub.c, if we get rid of
the #ifndef __OPTIMIZE__ it then builds ok. I'm not sure if the guarding done there
with the check for __OPTIMIZE__ is a relic that no longer applies given how qemu
currently builds, but at least it's something to look at.
Bruce
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 00/23] x86: Secure Encrypted Virtualization (AMD)
2018-02-06 15:51 ` Bruce Rogers
(?)
@ 2018-02-07 1:07 ` Brijesh Singh
-1 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-02-07 1:07 UTC (permalink / raw)
To: Bruce Rogers, qemu-devel
Cc: brijesh.singh, Thomas.Lendacky, Stefan Hajnoczi, peter.maydell,
richard.henderson, Dr. David Alan Gilbert, ehabkost,
Michael S. Tsirkin, Paolo Bonzini, kvm, edgar.iglesias
On 2/6/18 9:51 AM, Bruce Rogers wrote:
>>>> On 1/29/2018 at 10:41 AM, <brijesh.singh@amd.com> wrote:
>> This patch series provides support for AMD's new Secure Encrypted
>> Virtualization (SEV) feature.
>>
>> SEV is an extension to the AMD‑V architecture which supports running
>> multiple VMs under the control of a hypervisor. The SEV feature allows
>> the memory contents of a virtual machine (VM) to be transparently encrypted
>> with a key unique to the guest VM. The memory controller contains a
>> high performance encryption engine which can be programmed with multiple
>> keys for use by a different VMs in the system. The programming and
>> management of these keys is handled by the AMD Secure Processor firmware
>> which exposes a commands for these tasks.
>>
>> The KVM SEV patch series introduced a new ioctl (KVM_MEMORY_ENCRYPTION_OP)
>> which is used by qemu to issue the SEV commands to assist performing
>> common hypervisor activities such as a launching, running, snapshooting,
>> migration and debugging guests.
>>
> As for the reported failure to build on non-x86 hosts, eg:
> ...
> LINK i386-softmmu/qemu-system-i386
> target/i386/helper.o: In function `get_me_mask':
> /var/tmp/patchew-tester-tmp-hek3vjny/src/target/i386/helper.c:735: undefined reference to `kvm_arch_get_supported_cpuid'
> target/i386/monitor.o: In function `get_me_mask':
> /var/tmp/patchew-tester-tmp-hek3vjny/src/target/i386/monitor.c:71: undefined reference to `kvm_arch_get_supported_cpuid'
>
> ... I've looked at that a bit and find that in target/i386/kvm-stub.c, if we get rid of
> the #ifndef __OPTIMIZE__ it then builds ok. I'm not sure if the guarding done there
> with the check for __OPTIMIZE__ is a relic that no longer applies given how qemu
> currently builds, but at least it's something to look at.
Thanks for looking Bruce.
I have reworked code a bit and that should fix this build error. I will
be posting patches soon for review.
> Bruce
>
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [PATCH v6 18/23] sev: emit the SEV_MEASUREMENT event
2018-02-02 15:16 ` [Qemu-devel] " Daniel P. Berrangé
@ 2018-02-08 16:17 ` Brijesh Singh
-1 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-02-08 16:17 UTC (permalink / raw)
To: Daniel P. Berrangé
Cc: Edgar E. Iglesias, Peter Maydell, Brijesh Singh, Eduardo Habkost,
kvm, Tom Lendacky, Chen, Xiaogang, Stefan Hajnoczi,
Michael S. Tsirkin, Richard Henderson, Dr. David Alan Gilbert,
qemu-devel, Paolo Bonzini
On Fri, Feb 2, 2018 at 9:16 AM, Daniel P. Berrangé <berrange@redhat.com>
wrote:
> On Fri, Feb 02, 2018 at 09:11:41AM -0600, Brijesh Singh wrote:
> >
> >
> > On 02/01/2018 11:27 AM, Dr. David Alan Gilbert wrote:
> > > * Brijesh Singh (brijesh.singh@amd.com) wrote:
> > > >
> > > >
> > > > On 1/30/18 2:08 PM, Dr. David Alan Gilbert wrote:
> > > > > * Brijesh Singh (brijesh.singh@amd.com) wrote:
> > > > > > During machine creation we encrypted the guest bios image, the
> > > > > > LAUNCH_MEASURE command can be used to retrieve the measurement of
> > > > > > the encrypted memory region. Emit the SEV_MEASUREMENT event so
> that
> > > > > > libvirt can grab the measurement value as soon as we are done
> with
> > > > > > creating the encrypted machine.
> > > > > Can you ust clarify what happens if the libvirt has disconnected
> and
> > > > > reconnected to qemu and so didn't see the event? Can the
> reconnecting
> > > > > libvirt query it and find out it's ready/not ready yet?
> > > >
> > > > Dave,
> > > >
> > > > I have not looked into details between libvirt and qemu interaction
> to
> > > > comment how and when the events will be delivered. Recently, one of
> my
> > > > colleague was implementing libvirt interface for the SEV guest and
> ran
> > > > into somewhat a similar challenge and posted question on libvirt
> mailing
> > > > list [1].
> > > >
> > > > In previous discussion on qemu mailing list, we agreed to implement
> SEV
> > > > MEASUREMENT event which can be seen by libvirt. That's what this
> patch
> > > > is doing.
> > > >
> > > > But during the libvirt implementation it seems that qemu monitor
> > > > silently drops all the events before it get the first
> qmp_capabilities
> > > > command. At a quick glance it seems on reconnect, libvirt issues
> > > > qmp_capabilities command and any event issued before the
> > > > qmp_capabilities command will never to delivered to libvirt. we are
> > > > looking for help from libvirt/qemu monitor experts on how we solve
> this
> > > > problem. Our goal is to provide the measurement to libvirt before
> > > > libvirt issues "continue" command. Since event can't be seen by
> libvirt
> > > > before it resumes the guest hence I was wondering if we should we
> should
> > > > drop the SEV measurement event and consider adding a new QMP command
> to
> > > > query the SEV measurement.
> > >
> > > Yep, I'll leave it to the libvirt contacts for the best way they'd like
> > > to see that, as Eric says there's nothing wrong with having both the
> > > command and event if useful. Also keep in mind coping with a guest
> that
> > > crashes early or that measurement never arrives.
> > >
> >
> > Yep, lets see what libvirt experts say about it.
> >
> > Hi Daniel,
> >
> > Do you have any recommendation on whether we should consider adding a new
> > QMP to retrieve the measurement or we do event or both? Please note that
> the
> > launch measurement is generate only once for the lifetime of the guest.
> The
> > measurement will be available after qmeu encrypts the guest bios during
> the
> > machine initialization time.
>
> IIUC, the measurement event is only required during the initial QEMU
> startup sequence. Once the guest CPUs are running this info is not needed
> any more.
>
That is correct.
>
> If libvirtd crashes/restarts in the middle of QEMU startup sequence it is
> game over from libvirt's POV. Libvirtd won't try to carry on starting that
> guest when it restarts. So I don't think there's a compelling need for a
> command to query the measurement from libvirt's POV, the event is fine.
>
>
Sorry for the late response, somehow this email was never delievered to my
AMD account hence I was not able to see the response on-time.
Anyway, the main issue is event emitted before "qmp_capabilities" are
dropped silently , see [1] . In our case, the measurement event is emitted
during the machine creation time, libvirt was still waiting to reconnect
the monitor when event was emitted hence libvirt never gets the event.
Because of this, I am not able to see any strong reason to emit the event.
Do you see any issue with libvirt issuing a 'query-sev-launch-measure' to
get the measurement on reconnect ?
[1] https://github.com/qemu/qemu/blob/master/monitor.c#L418
That all said, I think it might be useful to have a command to query the
> SEV measurement purely as a debugging aid, if some admin / support person
> wants to get hold of this info for some reason...
>
> Regards,
> Daniel
> --
> |: https://berrange.com -o- https://www.flickr.com/photos/
> dberrange :|
> |: https://libvirt.org -o-
> https://fstop138.berrange.com :|
> |: https://entangle-photo.org -o- https://www.instagram.com/
> dberrange :|
>
>
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 18/23] sev: emit the SEV_MEASUREMENT event
@ 2018-02-08 16:17 ` Brijesh Singh
0 siblings, 0 replies; 118+ messages in thread
From: Brijesh Singh @ 2018-02-08 16:17 UTC (permalink / raw)
To: Daniel P. Berrangé
Cc: Brijesh Singh, Edgar E. Iglesias, Peter Maydell, Eduardo Habkost,
kvm, Tom Lendacky, Chen, Xiaogang, Stefan Hajnoczi,
Michael S. Tsirkin, Richard Henderson, Dr. David Alan Gilbert,
qemu-devel, Paolo Bonzini
On Fri, Feb 2, 2018 at 9:16 AM, Daniel P. Berrangé <berrange@redhat.com>
wrote:
> On Fri, Feb 02, 2018 at 09:11:41AM -0600, Brijesh Singh wrote:
> >
> >
> > On 02/01/2018 11:27 AM, Dr. David Alan Gilbert wrote:
> > > * Brijesh Singh (brijesh.singh@amd.com) wrote:
> > > >
> > > >
> > > > On 1/30/18 2:08 PM, Dr. David Alan Gilbert wrote:
> > > > > * Brijesh Singh (brijesh.singh@amd.com) wrote:
> > > > > > During machine creation we encrypted the guest bios image, the
> > > > > > LAUNCH_MEASURE command can be used to retrieve the measurement of
> > > > > > the encrypted memory region. Emit the SEV_MEASUREMENT event so
> that
> > > > > > libvirt can grab the measurement value as soon as we are done
> with
> > > > > > creating the encrypted machine.
> > > > > Can you ust clarify what happens if the libvirt has disconnected
> and
> > > > > reconnected to qemu and so didn't see the event? Can the
> reconnecting
> > > > > libvirt query it and find out it's ready/not ready yet?
> > > >
> > > > Dave,
> > > >
> > > > I have not looked into details between libvirt and qemu interaction
> to
> > > > comment how and when the events will be delivered. Recently, one of
> my
> > > > colleague was implementing libvirt interface for the SEV guest and
> ran
> > > > into somewhat a similar challenge and posted question on libvirt
> mailing
> > > > list [1].
> > > >
> > > > In previous discussion on qemu mailing list, we agreed to implement
> SEV
> > > > MEASUREMENT event which can be seen by libvirt. That's what this
> patch
> > > > is doing.
> > > >
> > > > But during the libvirt implementation it seems that qemu monitor
> > > > silently drops all the events before it get the first
> qmp_capabilities
> > > > command. At a quick glance it seems on reconnect, libvirt issues
> > > > qmp_capabilities command and any event issued before the
> > > > qmp_capabilities command will never to delivered to libvirt. we are
> > > > looking for help from libvirt/qemu monitor experts on how we solve
> this
> > > > problem. Our goal is to provide the measurement to libvirt before
> > > > libvirt issues "continue" command. Since event can't be seen by
> libvirt
> > > > before it resumes the guest hence I was wondering if we should we
> should
> > > > drop the SEV measurement event and consider adding a new QMP command
> to
> > > > query the SEV measurement.
> > >
> > > Yep, I'll leave it to the libvirt contacts for the best way they'd like
> > > to see that, as Eric says there's nothing wrong with having both the
> > > command and event if useful. Also keep in mind coping with a guest
> that
> > > crashes early or that measurement never arrives.
> > >
> >
> > Yep, lets see what libvirt experts say about it.
> >
> > Hi Daniel,
> >
> > Do you have any recommendation on whether we should consider adding a new
> > QMP to retrieve the measurement or we do event or both? Please note that
> the
> > launch measurement is generate only once for the lifetime of the guest.
> The
> > measurement will be available after qmeu encrypts the guest bios during
> the
> > machine initialization time.
>
> IIUC, the measurement event is only required during the initial QEMU
> startup sequence. Once the guest CPUs are running this info is not needed
> any more.
>
That is correct.
>
> If libvirtd crashes/restarts in the middle of QEMU startup sequence it is
> game over from libvirt's POV. Libvirtd won't try to carry on starting that
> guest when it restarts. So I don't think there's a compelling need for a
> command to query the measurement from libvirt's POV, the event is fine.
>
>
Sorry for the late response, somehow this email was never delievered to my
AMD account hence I was not able to see the response on-time.
Anyway, the main issue is event emitted before "qmp_capabilities" are
dropped silently , see [1] . In our case, the measurement event is emitted
during the machine creation time, libvirt was still waiting to reconnect
the monitor when event was emitted hence libvirt never gets the event.
Because of this, I am not able to see any strong reason to emit the event.
Do you see any issue with libvirt issuing a 'query-sev-launch-measure' to
get the measurement on reconnect ?
[1] https://github.com/qemu/qemu/blob/master/monitor.c#L418
That all said, I think it might be useful to have a command to query the
> SEV measurement purely as a debugging aid, if some admin / support person
> wants to get hold of this info for some reason...
>
> Regards,
> Daniel
> --
> |: https://berrange.com -o- https://www.flickr.com/photos/
> dberrange :|
> |: https://libvirt.org -o-
> https://fstop138.berrange.com :|
> |: https://entangle-photo.org -o- https://www.instagram.com/
> dberrange :|
>
>
^ permalink raw reply [flat|nested] 118+ messages in thread
* Re: [Qemu-devel] [PATCH v6 18/23] sev: emit the SEV_MEASUREMENT event
2018-02-08 16:17 ` [Qemu-devel] " Brijesh Singh
(?)
@ 2018-02-08 16:22 ` Daniel P. Berrangé
-1 siblings, 0 replies; 118+ messages in thread
From: Daniel P. Berrangé @ 2018-02-08 16:22 UTC (permalink / raw)
To: Brijesh Singh
Cc: Brijesh Singh, Edgar E. Iglesias, Peter Maydell, Eduardo Habkost,
kvm, Tom Lendacky, Chen, Xiaogang, Stefan Hajnoczi,
Michael S. Tsirkin, Richard Henderson, Dr. David Alan Gilbert,
qemu-devel, Paolo Bonzini
On Thu, Feb 08, 2018 at 10:17:28AM -0600, Brijesh Singh wrote:
>
> Anyway, the main issue is event emitted before "qmp_capabilities" are
> dropped silently , see [1] . In our case, the measurement event is emitted
> during the machine creation time, libvirt was still waiting to reconnect
> the monitor when event was emitted hence libvirt never gets the event.
> Because of this, I am not able to see any strong reason to emit the event.
> Do you see any issue with libvirt issuing a 'query-sev-launch-measure' to
> get the measurement on reconnect ?
Hmm, yes, I see so there can be a race between SEV emitting the event and
libvirtd making the initial monitor connection. In that case, we definitely
to have a QMP command to let libvirt explicitly query it.
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
^ permalink raw reply [flat|nested] 118+ messages in thread
end of thread, other threads:[~2018-02-08 16:22 UTC | newest]
Thread overview: 118+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-01-29 17:41 [PATCH v6 00/23] x86: Secure Encrypted Virtualization (AMD) Brijesh Singh
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
2018-01-29 17:41 ` [PATCH v6 01/23] memattrs: add debug attribute Brijesh Singh
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
2018-01-30 21:59 ` Edgar E. Iglesias
2018-01-30 21:59 ` [Qemu-devel] " Edgar E. Iglesias
2018-01-29 17:41 ` [PATCH v6 02/23] exec: add ram_debug_ops support Brijesh Singh
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
2018-01-30 21:59 ` Edgar E. Iglesias
2018-01-30 21:59 ` [Qemu-devel] " Edgar E. Iglesias
2018-01-30 22:34 ` Brijesh Singh
2018-01-30 22:34 ` [Qemu-devel] " Brijesh Singh
2018-01-30 22:37 ` Edgar E. Iglesias
2018-01-30 22:37 ` [Qemu-devel] " Edgar E. Iglesias
2018-01-30 23:26 ` Brijesh Singh
2018-01-30 23:26 ` [Qemu-devel] " Brijesh Singh
2018-01-29 17:41 ` [PATCH v6 03/23] exec: add debug version of physical memory read and write API Brijesh Singh
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
2018-01-29 17:41 ` [PATCH v6 04/23] monitor/i386: use debug APIs when accessing guest memory Brijesh Singh
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
2018-01-29 17:41 ` [PATCH v6 05/23] target/i386: add memory encryption feature cpuid support Brijesh Singh
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
2018-01-30 17:49 ` Dr. David Alan Gilbert
2018-01-30 17:49 ` [Qemu-devel] " Dr. David Alan Gilbert
2018-01-30 21:46 ` Brijesh Singh
2018-01-30 21:46 ` [Qemu-devel] " Brijesh Singh
2018-01-30 22:15 ` Brijesh Singh
2018-01-30 22:15 ` [Qemu-devel] " Brijesh Singh
2018-01-31 9:57 ` Dr. David Alan Gilbert
2018-01-31 9:57 ` [Qemu-devel] " Dr. David Alan Gilbert
2018-01-31 13:41 ` Eduardo Habkost
2018-01-31 13:41 ` [Qemu-devel] " Eduardo Habkost
2018-01-31 16:05 ` Brijesh Singh
2018-01-31 16:05 ` [Qemu-devel] " Brijesh Singh
2018-01-29 17:41 ` [PATCH v6 06/23] machine: add -memory-encryption property Brijesh Singh
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
2018-01-29 17:41 ` [PATCH v6 07/23] kvm: update kvm.h to include memory encryption ioctls Brijesh Singh
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
2018-01-29 17:41 ` [PATCH v6 08/23] docs: add AMD Secure Encrypted Virtualization (SEV) Brijesh Singh
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
2018-01-29 17:41 ` [PATCH v6 09/23] accel: add Secure Encrypted Virtulization (SEV) object Brijesh Singh
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
2018-01-29 17:41 ` [PATCH v6 10/23] sev: add command to initialize the memory encryption context Brijesh Singh
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
2018-02-01 12:13 ` Dr. David Alan Gilbert
2018-02-01 12:13 ` [Qemu-devel] " Dr. David Alan Gilbert
2018-02-01 15:33 ` Brijesh Singh
2018-02-01 15:33 ` [Qemu-devel] " Brijesh Singh
2018-02-01 15:46 ` Dr. David Alan Gilbert
2018-02-01 15:46 ` [Qemu-devel] " Dr. David Alan Gilbert
2018-01-29 17:41 ` [PATCH v6 11/23] sev: register the guest memory range which may contain encrypted data Brijesh Singh
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
2018-01-29 17:41 ` [PATCH v6 12/23] kvm: introduce memory encryption APIs Brijesh Singh
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
2018-01-29 17:41 ` [PATCH v6 13/23] hmp: display memory encryption support in 'info kvm' Brijesh Singh
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
2018-01-31 17:43 ` Markus Armbruster
2018-02-01 15:21 ` Brijesh Singh
2018-02-01 17:58 ` Dr. David Alan Gilbert
2018-02-01 17:58 ` [Qemu-devel] " Dr. David Alan Gilbert
2018-02-01 19:55 ` Brijesh Singh
2018-02-01 19:55 ` [Qemu-devel] " Brijesh Singh
2018-02-01 20:04 ` Dr. David Alan Gilbert
2018-02-01 20:04 ` [Qemu-devel] " Dr. David Alan Gilbert
2018-02-02 13:08 ` Daniel P. Berrangé
2018-02-02 13:08 ` [Qemu-devel] " Daniel P. Berrangé
2018-02-02 13:46 ` Brijesh Singh
2018-02-02 13:46 ` [Qemu-devel] " Brijesh Singh
2018-02-02 15:24 ` Dr. David Alan Gilbert
2018-02-02 15:24 ` [Qemu-devel] " Dr. David Alan Gilbert
2018-01-29 17:41 ` [PATCH v6 14/23] sev: add command to create launch memory encryption context Brijesh Singh
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
2018-01-29 17:41 ` [PATCH v6 15/23] sev: add command to encrypt guest memory region Brijesh Singh
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
2018-01-29 17:41 ` [PATCH v6 16/23] target/i386: encrypt bios rom Brijesh Singh
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
2018-01-29 17:41 ` [PATCH v6 17/23] qapi: add SEV_MEASUREMENT event Brijesh Singh
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
2018-01-31 17:45 ` Markus Armbruster
2018-02-01 15:25 ` Brijesh Singh
2018-02-01 15:28 ` Eric Blake
2018-02-01 15:28 ` Eric Blake
2018-01-29 17:41 ` [PATCH v6 18/23] sev: emit the " Brijesh Singh
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
2018-01-30 20:08 ` Dr. David Alan Gilbert
2018-01-30 20:08 ` [Qemu-devel] " Dr. David Alan Gilbert
2018-01-30 22:13 ` Brijesh Singh
2018-01-30 22:13 ` [Qemu-devel] " Brijesh Singh
2018-02-01 17:27 ` Dr. David Alan Gilbert
2018-02-01 17:27 ` [Qemu-devel] " Dr. David Alan Gilbert
2018-02-02 15:11 ` Brijesh Singh
2018-02-02 15:11 ` [Qemu-devel] " Brijesh Singh
2018-02-02 15:16 ` Daniel P. Berrangé
2018-02-02 15:16 ` [Qemu-devel] " Daniel P. Berrangé
2018-02-08 16:17 ` Brijesh Singh
2018-02-08 16:17 ` [Qemu-devel] " Brijesh Singh
2018-02-08 16:22 ` Daniel P. Berrangé
2018-01-29 17:41 ` [PATCH v6 19/23] sev: Finalize the SEV guest launch flow Brijesh Singh
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
2018-01-29 17:41 ` [PATCH v6 20/23] hw: i386: set ram_debug_ops when memory encryption is enabled Brijesh Singh
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
2018-01-29 17:41 ` [PATCH v6 21/23] sev: add debug encrypt and decrypt commands Brijesh Singh
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
2018-01-29 17:41 ` [PATCH v6 22/23] target/i386: clear C-bit when walking SEV guest page table Brijesh Singh
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
2018-01-29 17:41 ` [PATCH v6 23/23] sev: add migration blocker Brijesh Singh
2018-01-29 17:41 ` [Qemu-devel] " Brijesh Singh
2018-01-29 18:13 ` [Qemu-devel] [PATCH v6 00/23] x86: Secure Encrypted Virtualization (AMD) no-reply
2018-01-29 18:13 ` no-reply
2018-01-29 18:17 ` no-reply
2018-01-29 18:17 ` [Qemu-devel] " no-reply
2018-01-29 18:19 ` no-reply
2018-01-29 18:19 ` no-reply
2018-01-29 18:31 ` no-reply
2018-01-29 18:31 ` [Qemu-devel] " no-reply
2018-02-06 15:51 ` Bruce Rogers
2018-02-06 15:51 ` Bruce Rogers
2018-02-07 1:07 ` Brijesh Singh
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.