aboutsummaryrefslogtreecommitdiff
path: root/target/s390x/meson.build
diff options
context:
space:
mode:
Diffstat (limited to 'target/s390x/meson.build')
-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}