diff options
author | Marc-André Lureau <marcandre.lureau@redhat.com> | 2019-08-18 16:13:08 +0400 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2020-08-21 06:30:38 -0400 |
commit | 3a30446aed8497b5928576c6d1aedba557363934 (patch) | |
tree | cc670735d6eb7f2b66d4da3b5e1f91c7168bb766 /meson.build | |
parent | 1a82878a0840ec963119fdf40895d87861884f40 (diff) |
meson: linux-user
The most interesting or most complicated part here is the syscall_nr.h
generators. In order to keep the generation logic all in meson.build,
I am adding to config_target the name of the .tbl file, and making the
generated file syscall<SUFFIX>_nr.h for input file syscall<SUFFIX>.tbl.
For architectures where the input file is not named syscall_nr.tbl,
syscall_nr.h has to be a source file; it's just a forwarder for x86
(i386/x86_64), while for MIPS64 it chooses between N32 and N64 ABIs.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'meson.build')
-rw-r--r-- | meson.build | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/meson.build b/meson.build index baf9b69e99..490f3d9c75 100644 --- a/meson.build +++ b/meson.build @@ -705,6 +705,10 @@ subdir('net') subdir('replay') subdir('hw') subdir('accel') +subdir('linux-user') + +linux_user_ss.add(files('gdbstub.c', 'thunk.c')) +specific_ss.add_all(when: 'CONFIG_LINUX_USER', if_true: linux_user_ss) # needed for fuzzing binaries subdir('tests/qtest/libqos') @@ -802,6 +806,7 @@ foreach target : target_dirs arch_srcs += config_devices_h[target] else + abi = config_target['TARGET_ABI_DIR'] target_type='user' qemu_target_name = 'qemu-' + target_name if 'CONFIG_LINUX_USER' in config_target @@ -812,8 +817,17 @@ foreach target : target_dirs endif target_inc += include_directories( base_dir, - base_dir / config_target['TARGET_ABI_DIR'], + base_dir / abi, ) + if 'CONFIG_LINUX_USER' in config_target + dir = base_dir / abi + arch_srcs += files(dir / 'signal.c', dir / 'cpu_loop.c') + if config_target.has_key('TARGET_SYSTBL_ABI') + arch_srcs += \ + syscall_nr_generators[abi].process(base_dir / abi / config_target['TARGET_SYSTBL'], + extra_args : config_target['TARGET_SYSTBL_ABI']) + endif + endif endif t = target_arch[arch].apply(config_target, strict: false) |