Skip to contentSkip to conversation

package/qemu: separate user and system arch on powerpc64le

PATCH New Sam Bobroff 2 participants 2 messages Dec 9, 2016 – Dec 10, 2016

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 package/qemu: separate user and system arch on powerpc64le

QEMU provides a single system emulator that supports both powerpc64 and powerpc64le with a target called 'ppc64-softmmu', but it provides a different usermode emulator for each one (with targets 'ppc64le-linux-user' and 'ppc64-linux-user').

Due to this asymmetry it is not possible to support both cases with the single arch value used in the package file. This patch introduces an additional value into the package configuration, HOST_QEMU_SYS_ARCH, so that both cases can be supported.

Fixes commit d2ff457e88ff4106f97e29516d467978827d30c2 and autobuilder failture
http://autobuild.buildroot.net/results/a2d63e21c3e82c36f4a975e90ed56faba18e97a5

---
Hi Buildroot,

I saw that host-QEMU had again failed to build on powerpc64le, so I've taken a another look at the failure and I think I've fixed it properly this time. After the patch I'm able to build both the system and usermode emulators (for the host) on both powerpc64 and powerpc64le. The commit message should explain what was going on.

Sorry for the churn :-(

Cheers,
Sam.

 package/qemu/qemu.mk | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
package/qemu/qemu.mk +4 -2
index bc707cf7e..66efcba34 100644
@@ -35,7 +35,7 @@ HOST_QEMU_DEPENDENCIES = host-pkgconf host-python host-zlib host-libglib2 host-p
 #       mips64el        mips64el
 #       powerpc         ppc
 #       powerpc64       ppc64
-#       powerpc64le     ppc64le
+#       powerpc64le     ppc64 (system) / ppc64le (usermode)
 #       sh2a            not supported
 #       sh4             sh4
 #       sh4eb           sh4eb
@@ -62,6 +62,7 @@ HOST_QEMU_ARCH = ppc64
 endif
 ifeq ($(HOST_QEMU_ARCH),powerpc64le)
 HOST_QEMU_ARCH = ppc64le
+HOST_QEMU_SYS_ARCH = ppc64
 endif
 ifeq ($(HOST_QEMU_ARCH),sh4a)
 HOST_QEMU_ARCH = sh4
@@ -69,9 +70,10 @@ endif
 ifeq ($(HOST_QEMU_ARCH),sh4aeb)
 HOST_QEMU_ARCH = sh4eb
 endif
+HOST_QEMU_SYS_ARCH ?= $(HOST_QEMU_ARCH)
 
 ifeq ($(BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE),y)
-HOST_QEMU_TARGETS += $(HOST_QEMU_ARCH)-softmmu
+HOST_QEMU_TARGETS += $(HOST_QEMU_SYS_ARCH)-softmmu
 HOST_QEMU_OPTS += --enable-system --enable-fdt
 HOST_QEMU_DEPENDENCIES += host-dtc
 else
Signature · 1 line
2.11.0
#1 lore raw

PATCH 1/1 package/qemu: separate user and system arch on powerpc64le

Hello,

Quoted 10 lines · Sam Bobroff

QEMU provides a single system emulator that supports both powerpc64 and powerpc64le with a target called 'ppc64-softmmu', but it provides a different usermode emulator for each one (with targets 'ppc64le-linux-user' and 'ppc64-linux-user').

Due to this asymmetry it is not possible to support both cases with the single arch value used in the package file. This patch introduces an additional value into the package configuration, HOST_QEMU_SYS_ARCH, so that both cases can be supported.

Quoted 7 lines

Fixes commit d2ff457e88ff4106f97e29516d467978827d30c2 and autobuilder failture
http://autobuild.buildroot.net/results/a2d63e21c3e82c36f4a975e90ed56faba18e97a5

---
Hi Buildroot,

Applied to master, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com