summaryrefslogtreecommitdiffstats
path: root/target/s390x/meson.build
diff options
context:
space:
mode:
authorPeter Maydell2020-08-21 13:42:49 +0200
committerPeter Maydell2020-08-21 13:42:49 +0200
commit7fd51e68c34fcefdb4d6fd646ed3346f780f89f4 (patch)
treeb4c90dc51c2babb9850d29d0e3349891b2988172 /target/s390x/meson.build
parentMerge remote-tracking branch 'remotes/maxreitz/tags/pull-block-2020-08-11' in... (diff)
parentdocs: convert build system documentation to rST (diff)
downloadqemu-7fd51e68c34fcefdb4d6fd646ed3346f780f89f4.tar.gz
qemu-7fd51e68c34fcefdb4d6fd646ed3346f780f89f4.tar.xz
qemu-7fd51e68c34fcefdb4d6fd646ed3346f780f89f4.zip
Merge remote-tracking branch 'remotes/bonzini-gitlab/tags/for-upstream' into staging
New build system, with "fake in-tree builds" support. Missing: * converting configure tests * converting unit tests * converting some remaining parts of the installation # gpg: Signature made Fri 21 Aug 2020 11:33:35 BST # gpg: using RSA key F13338574B662389866C7682BFFBD25F78C7AE83 # gpg: issuer "pbonzini@redhat.com" # gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" [full] # gpg: aka "Paolo Bonzini <pbonzini@redhat.com>" [full] # Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4 E2F7 7E15 100C CD36 69B1 # Subkey fingerprint: F133 3857 4B66 2389 866C 7682 BFFB D25F 78C7 AE83 * remotes/bonzini-gitlab/tags/for-upstream: (152 commits) docs: convert build system documentation to rST meson: update build-system documentation meson: avoid unstable module warning with Meson 0.56.0 or newer meson: convert po/ meson: convert VNC and dependent libraries to meson meson: move SDL and SDL-image detection to meson meson: convert sample plugins meson: replace create-config with meson configure_file rules.mak: drop unneeded macros meson: convert check-block meson: build texi doc docs: automatically track manual dependencies meson: sphinx-build remove Makefile.target rules.mak: remove version.o meson: convert systemtap files configure: place compatibility symlinks in target directories meson: link emulators without Makefile.target meson: plugins meson: cpu-emu ... Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'target/s390x/meson.build')
-rw-r--r--target/s390x/meson.build62
1 files changed, 62 insertions, 0 deletions
diff --git a/target/s390x/meson.build b/target/s390x/meson.build
new file mode 100644
index 0000000000..d2a3315903
--- /dev/null
+++ b/target/s390x/meson.build
@@ -0,0 +1,62 @@
+s390x_ss = ss.source_set()
+s390x_ss.add(files(
+ 'cpu.c',
+ 'cpu_features.c',
+ 'cpu_models.c',
+ 'gdbstub.c',
+ 'helper.c',
+ 'interrupt.c',
+))
+
+s390x_ss.add(when: 'CONFIG_TCG', if_true: files(
+ 'cc_helper.c',
+ 'crypto_helper.c',
+ 'excp_helper.c',
+ 'fpu_helper.c',
+ 'int_helper.c',
+ 'mem_helper.c',
+ 'misc_helper.c',
+ 'translate.c',
+ 'vec_fpu_helper.c',
+ 'vec_helper.c',
+ 'vec_int_helper.c',
+ 'vec_string_helper.c',
+), if_false: 'tcg-stub.c')
+
+s390x_ss.add(when: 'CONFIG_KVM', if_true: files('kvm.c'), if_false: files('kvm-stub.c'))
+
+gen_features = executable('gen-features', 'gen-features.c', native: true,
+ build_by_default: false)
+
+gen_features_h = custom_target('gen-features.h',
+ output: 'gen-features.h',
+ capture: true,
+ command: gen_features)
+
+s390x_ss.add(gen_features_h)
+
+s390x_softmmu_ss = ss.source_set()
+s390x_softmmu_ss.add(files(
+ 'arch_dump.c',
+ 'diag.c',
+ 'ioinst.c',
+ 'machine.c',
+ 'mmu_helper.c',
+ '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}