blob: c42eadb7d245439967082c75fd63337a468c7d23 [file] [log] [blame]
Paolo Bonziniabff1ab2020-08-07 12:10:23 +02001s390x_ss = ss.source_set()
2s390x_ss.add(files(
3 'cpu.c',
4 'cpu_features.c',
5 'cpu_models.c',
6 'gdbstub.c',
7 'helper.c',
8 'interrupt.c',
9))
10
11s390x_ss.add(when: 'CONFIG_TCG', if_true: files(
12 'cc_helper.c',
13 'crypto_helper.c',
14 'excp_helper.c',
15 'fpu_helper.c',
16 'int_helper.c',
17 'mem_helper.c',
18 'misc_helper.c',
19 'translate.c',
20 'vec_fpu_helper.c',
21 'vec_helper.c',
22 'vec_int_helper.c',
23 'vec_string_helper.c',
Paolo Bonzini73173172020-08-21 11:52:37 -040024), if_false: files('tcg-stub.c'))
Paolo Bonziniabff1ab2020-08-07 12:10:23 +020025
26s390x_ss.add(when: 'CONFIG_KVM', if_true: files('kvm.c'), if_false: files('kvm-stub.c'))
27
Marc-André Lureaud3b18482019-08-17 14:55:32 +040028gen_features = executable('gen-features', 'gen-features.c', native: true,
29 build_by_default: false)
30
31gen_features_h = custom_target('gen-features.h',
32 output: 'gen-features.h',
33 capture: true,
34 command: gen_features)
35
Paolo Bonziniabff1ab2020-08-07 12:10:23 +020036s390x_ss.add(gen_features_h)
37
38s390x_softmmu_ss = ss.source_set()
39s390x_softmmu_ss.add(files(
40 'arch_dump.c',
41 'diag.c',
42 'ioinst.c',
43 'machine.c',
44 'mmu_helper.c',
45 'sigp.c',
46))
47
Paolo Bonzini64ed6f92020-08-03 17:04:25 +020048# Newer kernels on s390 check for an S390_PGSTE program header and
49# enable the pgste page table extensions in that case. This makes
50# the vm.allocate_pgste sysctl unnecessary. We enable this program
51# header if
52# - we build on s390x
53# - we build the system emulation for s390x (qemu-system-s390x)
54# - KVM is enabled
55# - the linker supports --s390-pgste
56if host_machine.cpu_family() == 's390x' and cc.has_link_argument('-Wl,--s390-pgste')
57 s390x_softmmu_ss.add(when: 'CONFIG_KVM',
58 if_true: declare_dependency(link_args: ['-Wl,--s390-pgste']))
59endif
60
Paolo Bonziniabff1ab2020-08-07 12:10:23 +020061target_arch += {'s390x': s390x_ss}
62target_softmmu_arch += {'s390x': s390x_softmmu_ss}