2020-08-07 13:10:23 +03:00
|
|
|
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',
|
2021-07-07 13:53:15 +03:00
|
|
|
))
|
2020-08-07 13:10:23 +03:00
|
|
|
|
|
|
|
s390x_ss.add(when: 'CONFIG_KVM', if_true: files('kvm.c'), if_false: files('kvm-stub.c'))
|
|
|
|
|
2019-08-17 13:55:32 +03:00
|
|
|
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)
|
|
|
|
|
2020-08-07 13:10:23 +03:00
|
|
|
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',
|
|
|
|
))
|
|
|
|
|
2020-08-03 18:04:25 +03:00
|
|
|
# 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
|
|
|
|
|
2021-07-07 13:53:11 +03:00
|
|
|
s390x_user_ss = ss.source_set()
|
|
|
|
|
2020-08-07 13:10:23 +03:00
|
|
|
target_arch += {'s390x': s390x_ss}
|
|
|
|
target_softmmu_arch += {'s390x': s390x_softmmu_ss}
|
2021-07-07 13:53:11 +03:00
|
|
|
target_user_arch += {'s390x': s390x_user_ss}
|