aboutsummaryrefslogtreecommitdiff
path: root/target/s390x
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2020-08-03 17:04:25 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2020-08-21 06:30:40 -0400
commit64ed6f92ffebb419ba71ef61e7bdb5f165c5043a (patch)
tree1b7a2d3f7448e8e5c54c03d5a258cc3759dfe12d /target/s390x
parentf556b4a10d3ccd6cad01f704e4ccb2252520d61e (diff)
meson: link emulators without Makefile.target
The binaries move to the root directory, e.g. qemu-system-i386 or qemu-arm. This requires changes to qtests, CI, etc. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'target/s390x')
-rw-r--r--target/s390x/meson.build13
1 files changed, 13 insertions, 0 deletions
diff --git a/target/s390x/meson.build b/target/s390x/meson.build
index 27d248ef6e..d2a3315903 100644
--- a/target/s390x/meson.build
+++ b/target/s390x/meson.build
@@ -45,5 +45,18 @@ s390x_softmmu_ss.add(files(
'sigp.c',
))
+# Newer kernels on s390 check for an S390_PGSTE program header and
+# enable the pgste page table extensions in that case. This makes
+# the vm.allocate_pgste sysctl unnecessary. We enable this program
+# header if
+# - we build on s390x
+# - we build the system emulation for s390x (qemu-system-s390x)
+# - KVM is enabled
+# - the linker supports --s390-pgste
+if host_machine.cpu_family() == 's390x' and cc.has_link_argument('-Wl,--s390-pgste')
+ s390x_softmmu_ss.add(when: 'CONFIG_KVM',
+ if_true: declare_dependency(link_args: ['-Wl,--s390-pgste']))
+endif
+
target_arch += {'s390x': s390x_ss}
target_softmmu_arch += {'s390x': s390x_softmmu_ss}