[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 18/20] bsd-user: Automatically generate syscall_nr.h
From: |
Warner Losh |
Subject: |
[PATCH v3 18/20] bsd-user: Automatically generate syscall_nr.h |
Date: |
Tue, 11 Apr 2023 11:09:53 -0600 |
Automatically generate syscall_nr.h from /usr/include/sys/syscall.h
since we can only run on a system that matches... This should reduce the
churn in the future.
Signed-off-by: Warner Losh <imp@bsdimp.com>
---
bsd-user/freebsd/os-syscall.h | 2 +-
bsd-user/meson.build | 4 ++++
bsd-user/syscallhdr.sh | 7 +++++++
meson.build | 2 ++
4 files changed, 14 insertions(+), 1 deletion(-)
create mode 100644 bsd-user/syscallhdr.sh
diff --git a/bsd-user/freebsd/os-syscall.h b/bsd-user/freebsd/os-syscall.h
index 1f2c0acb1c5..b04d44ba78c 100644
--- a/bsd-user/freebsd/os-syscall.h
+++ b/bsd-user/freebsd/os-syscall.h
@@ -6,7 +6,7 @@
* OS-Specific portion of syscall_defs.h
*/
-#include "freebsd/syscall_nr.h"
+#include "syscall_nr.h"
/*
* FreeBSD uses a 64bits time_t except on i386 so we have to add a special case
diff --git a/bsd-user/meson.build b/bsd-user/meson.build
index 7d1b4de78b1..67480dc5290 100644
--- a/bsd-user/meson.build
+++ b/bsd-user/meson.build
@@ -21,3 +21,7 @@ bsd_user_ss.add(files(
subdir(targetos)
specific_ss.add_all(when: 'CONFIG_BSD_USER', if_true: bsd_user_ss)
+
+bsd_syscall_nr = generator(sh,
+ arguments: [ meson.current_source_dir() /
'syscallhdr.sh', '@INPUT@', '@OUTPUT@', '@EXTRA_ARGS@'],
+ output: '@BASENAME@_nr.h')
diff --git a/bsd-user/syscallhdr.sh b/bsd-user/syscallhdr.sh
new file mode 100644
index 00000000000..c991c2df1d0
--- /dev/null
+++ b/bsd-user/syscallhdr.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+in="$1"
+out="$2"
+bsd="$3"
+
+awk -v bsd="$3" '{sub("SYS_", "TARGET_" bsd "_NR_", $0); print;}' < $in > $out
diff --git a/meson.build b/meson.build
index 29f8644d6d0..aedf0798d81 100644
--- a/meson.build
+++ b/meson.build
@@ -3470,6 +3470,8 @@ foreach target : target_dirs
target_inc += include_directories('bsd-user/host/' / host_arch)
dir = base_dir / abi
arch_srcs += files(dir / 'signal.c', dir / 'target_arch_cpu.c')
+ arch_srcs += bsd_syscall_nr.process('/usr/include/sys/syscall.h',
+ extra_args : targetos.to_upper())
endif
target_inc += include_directories(
base_dir,
--
2.40.0
- [PATCH v3 09/20] bsd-user: h2g_rusage, (continued)
- [PATCH v3 09/20] bsd-user: h2g_rusage, Warner Losh, 2023/04/11
- [PATCH v3 13/20] bsd-user: Implement sysctl kern.proc, except kern.proc.full_path, Warner Losh, 2023/04/11
- [PATCH v3 14/20] bsd-user: Implement core dumps, Warner Losh, 2023/04/11
- [PATCH v3 16/20] bsd-user: Implement SIGSYS on arm, Warner Losh, 2023/04/11
- [PATCH v3 20/20] bsd-user: Eliminate USE_ELF_CORE_DUMP, Warner Losh, 2023/04/11
- [PATCH v3 15/20] bsd-user: Add SIGSYS to core dump signals., Warner Losh, 2023/04/11
- [PATCH v3 08/20] bsd-user: Remove useless mmap definitions, Warner Losh, 2023/04/11
- [PATCH v3 10/20] bsd-user: Implement do_sysctl_kern_getprocs, Warner Losh, 2023/04/11
- [PATCH v3 17/20] bsd-user: Remove host-os.h, Warner Losh, 2023/04/11
- [PATCH v3 07/20] bsd-user: Move system call include to os-syscall.h, Warner Losh, 2023/04/11
- [PATCH v3 18/20] bsd-user: Automatically generate syscall_nr.h,
Warner Losh <=
- [PATCH v3 19/20] bsd-user: remove syscall_nr.h, Warner Losh, 2023/04/11
- [PATCH v3 11/20] bsd-user: Implement do_sysctl_kern_proc_filedesc, Warner Losh, 2023/04/11