aboutsummaryrefslogtreecommitdiff
path: root/linux-user
diff options
context:
space:
mode:
Diffstat (limited to 'linux-user')
-rw-r--r--linux-user/Makefile.objs25
-rw-r--r--linux-user/alpha/Makefile.objs5
-rw-r--r--linux-user/alpha/meson.build5
-rw-r--r--linux-user/arm/Makefile.objs8
-rw-r--r--linux-user/arm/meson.build10
-rw-r--r--linux-user/arm/nwfpe/Makefile.objs2
-rw-r--r--linux-user/arm/nwfpe/meson.build10
-rw-r--r--linux-user/hppa/Makefile.objs5
-rw-r--r--linux-user/hppa/meson.build5
-rw-r--r--linux-user/i386/Makefile.objs5
-rw-r--r--linux-user/i386/meson.build5
-rw-r--r--linux-user/i386/syscall_nr.h1
-rw-r--r--linux-user/m68k/Makefile.objs5
-rw-r--r--linux-user/m68k/meson.build5
-rw-r--r--linux-user/meson.build37
-rw-r--r--linux-user/microblaze/Makefile.objs5
-rw-r--r--linux-user/microblaze/meson.build5
-rw-r--r--linux-user/mips/Makefile.objs5
-rw-r--r--linux-user/mips/meson.build6
-rw-r--r--linux-user/mips/syscall_nr.h1
-rw-r--r--linux-user/mips64/Makefile.objs12
-rw-r--r--linux-user/mips64/meson.build6
-rw-r--r--linux-user/mips64/syscall_nr.h7
-rw-r--r--linux-user/ppc/Makefile.objs6
-rw-r--r--linux-user/ppc/meson.build5
-rw-r--r--linux-user/s390x/Makefile.objs5
-rw-r--r--linux-user/s390x/meson.build5
-rw-r--r--linux-user/sh4/Makefile.objs5
-rw-r--r--linux-user/sh4/meson.build5
-rw-r--r--linux-user/sparc/Makefile.objs5
-rw-r--r--linux-user/sparc/meson.build5
-rw-r--r--linux-user/sparc64/Makefile.objs5
-rw-r--r--linux-user/sparc64/meson.build5
-rw-r--r--linux-user/x86_64/Makefile.objs5
-rw-r--r--linux-user/x86_64/meson.build5
-rw-r--r--linux-user/x86_64/syscall_nr.h1
-rw-r--r--linux-user/xtensa/Makefile.objs5
-rw-r--r--linux-user/xtensa/meson.build5
38 files changed, 139 insertions, 113 deletions
diff --git a/linux-user/Makefile.objs b/linux-user/Makefile.objs
deleted file mode 100644
index 1940910..0000000
--- a/linux-user/Makefile.objs
+++ /dev/null
@@ -1,25 +0,0 @@
-obj-y = main.o syscall.o strace.o mmap.o signal.o \
- elfload.o linuxload.o uaccess.o uname.o \
- safe-syscall.o $(TARGET_ABI_DIR)/signal.o \
- $(TARGET_ABI_DIR)/cpu_loop.o exit.o fd-trans.o
-
-obj-$(TARGET_HAS_BFLT) += flatload.o
-obj-$(TARGET_I386) += vm86.o
-obj-$(TARGET_AARCH64) += arm/semihost.o
-
-obj-$(TARGET_ALPHA) += alpha/
-obj-$(TARGET_ARM) += arm/
-obj-$(TARGET_HPPA) += hppa/
-obj-$(TARGET_I386) += i386/
-obj-$(TARGET_M68K) += m68k/
-obj-$(TARGET_MICROBLAZE) += microblaze/
-obj-$(TARGET_MIPS) += mips/
-obj-$(TARGET_MIPS64) += mips64/
-obj-$(TARGET_PPC) += ppc/
-obj-$(TARGET_PPC64) += ppc/
-obj-$(TARGET_S390X) += s390x/
-obj-$(TARGET_SH4) += sh4/
-obj-$(TARGET_SPARC) += sparc/
-obj-$(TARGET_SPARC64) += $(TARGET_ABI_DIR)/
-obj-$(TARGET_X86_64) += x86_64/
-obj-$(TARGET_XTENSA) += xtensa/
diff --git a/linux-user/alpha/Makefile.objs b/linux-user/alpha/Makefile.objs
deleted file mode 100644
index d6397a7..0000000
--- a/linux-user/alpha/Makefile.objs
+++ /dev/null
@@ -1,5 +0,0 @@
-generated-files-y += linux-user/alpha/syscall_nr.h
-
-syshdr := $(SRC_PATH)/linux-user/alpha/syscallhdr.sh
-%/syscall_nr.h: $(SRC_PATH)/linux-user/alpha/syscall.tbl $(syshdr)
- $(call quiet-command, sh $(syshdr) $< $@ $(TARGET_SYSTBL_ABI),"GEN","$@")
diff --git a/linux-user/alpha/meson.build b/linux-user/alpha/meson.build
new file mode 100644
index 0000000..a3cd22d
--- /dev/null
+++ b/linux-user/alpha/meson.build
@@ -0,0 +1,5 @@
+syscall_nr_generators += {
+ 'alpha': generator(sh,
+ arguments: [ meson.current_source_dir() / 'syscallhdr.sh', '@INPUT@', '@OUTPUT@', '@EXTRA_ARGS@' ],
+ output: '@BASENAME@_nr.h')
+}
diff --git a/linux-user/arm/Makefile.objs b/linux-user/arm/Makefile.objs
deleted file mode 100644
index c7eb94d..0000000
--- a/linux-user/arm/Makefile.objs
+++ /dev/null
@@ -1,8 +0,0 @@
-obj-$(TARGET_ARM) += nwfpe/
-obj-$(TARGET_ARM) += semihost.o
-
-generated-files-y += linux-user/arm/syscall_nr.h
-
-syshdr := $(SRC_PATH)/linux-user/arm/syscallhdr.sh
-%/syscall_nr.h: $(SRC_PATH)/linux-user/arm/syscall.tbl $(syshdr)
- $(call quiet-command, sh $(syshdr) $< $@ $(TARGET_SYSTBL_ABI),"GEN","$@")
diff --git a/linux-user/arm/meson.build b/linux-user/arm/meson.build
new file mode 100644
index 0000000..432984b
--- /dev/null
+++ b/linux-user/arm/meson.build
@@ -0,0 +1,10 @@
+linux_user_ss.add(when: 'TARGET_AARCH64', if_true: files('semihost.c'))
+linux_user_ss.add(when: 'TARGET_ARM', if_true: files('semihost.c'))
+
+subdir('nwfpe')
+
+syscall_nr_generators += {
+ 'arm': generator(sh,
+ arguments: [ meson.current_source_dir() / 'syscallhdr.sh', '@INPUT@', '@OUTPUT@', '@EXTRA_ARGS@' ],
+ output: '@BASENAME@_nr.h')
+}
diff --git a/linux-user/arm/nwfpe/Makefile.objs b/linux-user/arm/nwfpe/Makefile.objs
deleted file mode 100644
index 51b0c32..0000000
--- a/linux-user/arm/nwfpe/Makefile.objs
+++ /dev/null
@@ -1,2 +0,0 @@
-obj-y = fpa11.o fpa11_cpdo.o fpa11_cpdt.o fpa11_cprt.o fpopcode.o
-obj-y += single_cpdo.o double_cpdo.o extended_cpdo.o
diff --git a/linux-user/arm/nwfpe/meson.build b/linux-user/arm/nwfpe/meson.build
new file mode 100644
index 0000000..1c27e55
--- /dev/null
+++ b/linux-user/arm/nwfpe/meson.build
@@ -0,0 +1,10 @@
+linux_user_ss.add(when: 'TARGET_ARM', if_true: files(
+ 'double_cpdo.c',
+ 'extended_cpdo.c',
+ 'fpa11.c',
+ 'fpa11_cpdo.c',
+ 'fpa11_cpdt.c',
+ 'fpa11_cprt.c',
+ 'fpopcode.c',
+ 'single_cpdo.c',
+))
diff --git a/linux-user/hppa/Makefile.objs b/linux-user/hppa/Makefile.objs
deleted file mode 100644
index f8368be..0000000
--- a/linux-user/hppa/Makefile.objs
+++ /dev/null
@@ -1,5 +0,0 @@
-generated-files-y += linux-user/hppa/syscall_nr.h
-
-syshdr := $(SRC_PATH)/linux-user/hppa/syscallhdr.sh
-%/syscall_nr.h: $(SRC_PATH)/linux-user/hppa/syscall.tbl $(syshdr)
- $(call quiet-command, sh $(syshdr) $< $@ $(TARGET_SYSTBL_ABI),"GEN","$@")
diff --git a/linux-user/hppa/meson.build b/linux-user/hppa/meson.build
new file mode 100644
index 0000000..4709508
--- /dev/null
+++ b/linux-user/hppa/meson.build
@@ -0,0 +1,5 @@
+syscall_nr_generators += {
+ 'hppa': generator(sh,
+ arguments: [ meson.current_source_dir() / 'syscallhdr.sh', '@INPUT@', '@OUTPUT@', '@EXTRA_ARGS@' ],
+ output: '@BASENAME@_nr.h')
+}
diff --git a/linux-user/i386/Makefile.objs b/linux-user/i386/Makefile.objs
deleted file mode 100644
index c25cf17..0000000
--- a/linux-user/i386/Makefile.objs
+++ /dev/null
@@ -1,5 +0,0 @@
-generated-files-y += linux-user/i386/syscall_nr.h
-
-syshdr := $(SRC_PATH)/linux-user/i386/syscallhdr.sh
-%/syscall_nr.h: $(SRC_PATH)/linux-user/i386/syscall_32.tbl $(syshdr)
- $(call quiet-command, sh $(syshdr) $< $@ $(TARGET_SYSTBL_ABI),"GEN","$@")
diff --git a/linux-user/i386/meson.build b/linux-user/i386/meson.build
new file mode 100644
index 0000000..ee52301
--- /dev/null
+++ b/linux-user/i386/meson.build
@@ -0,0 +1,5 @@
+syscall_nr_generators += {
+ 'i386': generator(sh,
+ arguments: [ meson.current_source_dir() / 'syscallhdr.sh', '@INPUT@', '@OUTPUT@', '@EXTRA_ARGS@' ],
+ output: '@BASENAME@_nr.h')
+}
diff --git a/linux-user/i386/syscall_nr.h b/linux-user/i386/syscall_nr.h
new file mode 100644
index 0000000..976caab
--- /dev/null
+++ b/linux-user/i386/syscall_nr.h
@@ -0,0 +1 @@
+#include "syscall_32_nr.h"
diff --git a/linux-user/m68k/Makefile.objs b/linux-user/m68k/Makefile.objs
deleted file mode 100644
index 961bd05..0000000
--- a/linux-user/m68k/Makefile.objs
+++ /dev/null
@@ -1,5 +0,0 @@
-generated-files-y += linux-user/m68k/syscall_nr.h
-
-syshdr := $(SRC_PATH)/linux-user/m68k/syscallhdr.sh
-%/syscall_nr.h: $(SRC_PATH)/linux-user/m68k/syscall.tbl $(syshdr)
- $(call quiet-command, sh $(syshdr) $< $@ $(TARGET_SYSTBL_ABI),"GEN","$@")
diff --git a/linux-user/m68k/meson.build b/linux-user/m68k/meson.build
new file mode 100644
index 0000000..c0f436f
--- /dev/null
+++ b/linux-user/m68k/meson.build
@@ -0,0 +1,5 @@
+syscall_nr_generators += {
+ 'm68k': generator(sh,
+ arguments: [ meson.current_source_dir() / 'syscallhdr.sh', '@INPUT@', '@OUTPUT@', '@EXTRA_ARGS@' ],
+ output: '@BASENAME@_nr.h')
+}
diff --git a/linux-user/meson.build b/linux-user/meson.build
new file mode 100644
index 0000000..2b94e4b
--- /dev/null
+++ b/linux-user/meson.build
@@ -0,0 +1,37 @@
+linux_user_ss.add(files(
+ 'elfload.c',
+ 'exit.c',
+ 'fd-trans.c',
+ 'linuxload.c',
+ 'main.c',
+ 'mmap.c',
+ 'safe-syscall.S',
+ 'signal.c',
+ 'strace.c',
+ 'syscall.c',
+ 'uaccess.c',
+ 'uname.c',
+))
+linux_user_ss.add(rt)
+
+linux_user_ss.add(when: 'TARGET_HAS_BFLT', if_true: files('flatload.c'))
+linux_user_ss.add(when: 'TARGET_I386', if_true: files('vm86.c'))
+
+
+syscall_nr_generators = {}
+
+subdir('alpha')
+subdir('arm')
+subdir('hppa')
+subdir('i386')
+subdir('m68k')
+subdir('microblaze')
+subdir('mips64')
+subdir('mips')
+subdir('ppc')
+subdir('s390x')
+subdir('sh4')
+subdir('sparc64')
+subdir('sparc')
+subdir('x86_64')
+subdir('xtensa')
diff --git a/linux-user/microblaze/Makefile.objs b/linux-user/microblaze/Makefile.objs
deleted file mode 100644
index bb8b318..0000000
--- a/linux-user/microblaze/Makefile.objs
+++ /dev/null
@@ -1,5 +0,0 @@
-generated-files-y += linux-user/microblaze/syscall_nr.h
-
-syshdr := $(SRC_PATH)/linux-user/microblaze/syscallhdr.sh
-%/syscall_nr.h: $(SRC_PATH)/linux-user/microblaze/syscall.tbl $(syshdr)
- $(call quiet-command, sh $(syshdr) $< $@ $(TARGET_SYSTBL_ABI),"GEN","$@")
diff --git a/linux-user/microblaze/meson.build b/linux-user/microblaze/meson.build
new file mode 100644
index 0000000..f749d89
--- /dev/null
+++ b/linux-user/microblaze/meson.build
@@ -0,0 +1,5 @@
+syscall_nr_generators += {
+ 'microblaze': generator(sh,
+ arguments: [ meson.current_source_dir() / 'syscallhdr.sh', '@INPUT@', '@OUTPUT@', '@EXTRA_ARGS@' ],
+ output: '@BASENAME@_nr.h')
+}
diff --git a/linux-user/mips/Makefile.objs b/linux-user/mips/Makefile.objs
deleted file mode 100644
index 9be4de0..0000000
--- a/linux-user/mips/Makefile.objs
+++ /dev/null
@@ -1,5 +0,0 @@
-generated-files-y += linux-user/mips/syscall_nr.h
-
-syshdr := $(SRC_PATH)/linux-user/mips/syscallhdr.sh
-%/syscall_nr.h: $(SRC_PATH)/linux-user/mips/syscall_o32.tbl $(syshdr)
- $(call quiet-command, sh $(syshdr) $< $@ $(TARGET_SYSTBL_ABI) "" 4000,"GEN","$@")
diff --git a/linux-user/mips/meson.build b/linux-user/mips/meson.build
new file mode 100644
index 0000000..262a357
--- /dev/null
+++ b/linux-user/mips/meson.build
@@ -0,0 +1,6 @@
+syscall_nr_generators += {
+ 'mips': generator(sh,
+ arguments: [ meson.current_source_dir() / 'syscallhdr.sh', '@INPUT@', '@OUTPUT@', '@EXTRA_ARGS@',
+ '', '4000' ],
+ output: '@BASENAME@_nr.h')
+}
diff --git a/linux-user/mips/syscall_nr.h b/linux-user/mips/syscall_nr.h
new file mode 100644
index 0000000..45d133c
--- /dev/null
+++ b/linux-user/mips/syscall_nr.h
@@ -0,0 +1 @@
+#include "syscall_o32_nr.h"
diff --git a/linux-user/mips64/Makefile.objs b/linux-user/mips64/Makefile.objs
deleted file mode 100644
index 573448f..0000000
--- a/linux-user/mips64/Makefile.objs
+++ /dev/null
@@ -1,12 +0,0 @@
-generated-files-y += linux-user/$(TARGET_ABI_DIR)/syscall_nr.h
-
-syshdr := $(SRC_PATH)/linux-user/$(TARGET_ABI_DIR)/syscallhdr.sh
-
-ifeq ($(TARGET_SYSTBL_ABI),n32)
-%/syscall_nr.h: $(SRC_PATH)/linux-user/$(TARGET_ABI_DIR)/syscall_n32.tbl $(syshdr)
- $(call quiet-command, sh $(syshdr) $< $@ n32 "" 6000,"GEN","$@")
-endif
-ifeq ($(TARGET_SYSTBL_ABI),n64)
-%/syscall_nr.h: $(SRC_PATH)/linux-user/$(TARGET_ABI_DIR)/syscall_n64.tbl $(syshdr)
- $(call quiet-command, sh $(syshdr) $< $@ n64 "" 5000,"GEN","$@")
-endif
diff --git a/linux-user/mips64/meson.build b/linux-user/mips64/meson.build
new file mode 100644
index 0000000..0caab5f
--- /dev/null
+++ b/linux-user/mips64/meson.build
@@ -0,0 +1,6 @@
+syscall_nr_generators += {
+ 'mips64': generator(sh,
+ arguments: [ meson.current_source_dir() / 'syscallhdr.sh', '@INPUT@', '@OUTPUT@', '@EXTRA_ARGS@',
+ '', 'TARGET_SYSCALL_OFFSET' ],
+ output: '@BASENAME@_nr.h')
+}
diff --git a/linux-user/mips64/syscall_nr.h b/linux-user/mips64/syscall_nr.h
new file mode 100644
index 0000000..672f2fa
--- /dev/null
+++ b/linux-user/mips64/syscall_nr.h
@@ -0,0 +1,7 @@
+#ifdef TARGET_ABI_MIPSN32
+#define TARGET_SYSCALL_OFFSET 6000
+#include "syscall_n32_nr.h"
+#else
+#define TARGET_SYSCALL_OFFSET 5000
+#include "syscall_n64_nr.h"
+#endif
diff --git a/linux-user/ppc/Makefile.objs b/linux-user/ppc/Makefile.objs
deleted file mode 100644
index be92e67e..0000000
--- a/linux-user/ppc/Makefile.objs
+++ /dev/null
@@ -1,6 +0,0 @@
-generated-files-y += linux-user/$(TARGET_ABI_DIR)/syscall_nr.h
-
-syshdr := $(SRC_PATH)/linux-user/$(TARGET_ABI_DIR)/syscallhdr.sh
-
-%/syscall_nr.h: $(SRC_PATH)/linux-user/$(TARGET_ABI_DIR)/syscall.tbl $(syshdr)
- $(call quiet-command, sh $(syshdr) $< $@ $(TARGET_SYSTBL_ABI),"GEN","$@")
diff --git a/linux-user/ppc/meson.build b/linux-user/ppc/meson.build
new file mode 100644
index 0000000..19fead7
--- /dev/null
+++ b/linux-user/ppc/meson.build
@@ -0,0 +1,5 @@
+syscall_nr_generators += {
+ 'ppc': generator(sh,
+ arguments: [ meson.current_source_dir() / 'syscallhdr.sh', '@INPUT@', '@OUTPUT@', '@EXTRA_ARGS@' ],
+ output: '@BASENAME@_nr.h')
+}
diff --git a/linux-user/s390x/Makefile.objs b/linux-user/s390x/Makefile.objs
deleted file mode 100644
index f30f162..0000000
--- a/linux-user/s390x/Makefile.objs
+++ /dev/null
@@ -1,5 +0,0 @@
-generated-files-y += linux-user/s390x/syscall_nr.h
-
-syshdr := $(SRC_PATH)/linux-user/s390x/syscallhdr.sh
-%/syscall_nr.h: $(SRC_PATH)/linux-user/s390x/syscall.tbl $(syshdr)
- $(call quiet-command, sh $(syshdr) $< $@ $(TARGET_SYSTBL_ABI),"GEN","$@")
diff --git a/linux-user/s390x/meson.build b/linux-user/s390x/meson.build
new file mode 100644
index 0000000..0781cce
--- /dev/null
+++ b/linux-user/s390x/meson.build
@@ -0,0 +1,5 @@
+syscall_nr_generators += {
+ 's390x': generator(sh,
+ arguments: [ meson.current_source_dir() / 'syscallhdr.sh', '@INPUT@', '@OUTPUT@', '@EXTRA_ARGS@' ],
+ output: '@BASENAME@_nr.h')
+}
diff --git a/linux-user/sh4/Makefile.objs b/linux-user/sh4/Makefile.objs
deleted file mode 100644
index 83fc939..0000000
--- a/linux-user/sh4/Makefile.objs
+++ /dev/null
@@ -1,5 +0,0 @@
-generated-files-y += linux-user/sh4/syscall_nr.h
-
-syshdr := $(SRC_PATH)/linux-user/sh4/syscallhdr.sh
-%/syscall_nr.h: $(SRC_PATH)/linux-user/sh4/syscall.tbl $(syshdr)
- $(call quiet-command, sh $(syshdr) $< $@ $(TARGET_SYSTBL_ABI),"GEN","$@")
diff --git a/linux-user/sh4/meson.build b/linux-user/sh4/meson.build
new file mode 100644
index 0000000..3bc3a69
--- /dev/null
+++ b/linux-user/sh4/meson.build
@@ -0,0 +1,5 @@
+syscall_nr_generators += {
+ 'sh4': generator(sh,
+ arguments: [ meson.current_source_dir() / 'syscallhdr.sh', '@INPUT@', '@OUTPUT@', '@EXTRA_ARGS@' ],
+ output: '@BASENAME@_nr.h')
+}
diff --git a/linux-user/sparc/Makefile.objs b/linux-user/sparc/Makefile.objs
deleted file mode 100644
index 29d3f06..0000000
--- a/linux-user/sparc/Makefile.objs
+++ /dev/null
@@ -1,5 +0,0 @@
-generated-files-y += linux-user/sparc/syscall_nr.h
-
-syshdr := $(SRC_PATH)/linux-user/sparc/syscallhdr.sh
-%/syscall_nr.h: $(SRC_PATH)/linux-user/sparc/syscall.tbl $(syshdr)
- $(call quiet-command, sh $(syshdr) $< $@ $(TARGET_SYSTBL_ABI),"GEN","$@")
diff --git a/linux-user/sparc/meson.build b/linux-user/sparc/meson.build
new file mode 100644
index 0000000..51a9c77
--- /dev/null
+++ b/linux-user/sparc/meson.build
@@ -0,0 +1,5 @@
+syscall_nr_generators += {
+ 'sparc': generator(sh,
+ arguments: [ meson.current_source_dir() / 'syscallhdr.sh', '@INPUT@', '@OUTPUT@', '@EXTRA_ARGS@' ],
+ output: '@BASENAME@_nr.h')
+}
diff --git a/linux-user/sparc64/Makefile.objs b/linux-user/sparc64/Makefile.objs
deleted file mode 100644
index afcd535..0000000
--- a/linux-user/sparc64/Makefile.objs
+++ /dev/null
@@ -1,5 +0,0 @@
-generated-files-y += linux-user/sparc64/syscall_nr.h
-
-syshdr := $(SRC_PATH)/linux-user/sparc64/syscallhdr.sh
-%/syscall_nr.h: $(SRC_PATH)/linux-user/sparc/syscall.tbl $(syshdr)
- $(call quiet-command, sh $(syshdr) $< $@ $(TARGET_SYSTBL_ABI),"GEN","$@")
diff --git a/linux-user/sparc64/meson.build b/linux-user/sparc64/meson.build
new file mode 100644
index 0000000..9527a40
--- /dev/null
+++ b/linux-user/sparc64/meson.build
@@ -0,0 +1,5 @@
+syscall_nr_generators += {
+ 'sparc64': generator(sh,
+ arguments: [ meson.current_source_dir() / 'syscallhdr.sh', '@INPUT@', '@OUTPUT@', '@EXTRA_ARGS@' ],
+ output: '@BASENAME@_nr.h')
+}
diff --git a/linux-user/x86_64/Makefile.objs b/linux-user/x86_64/Makefile.objs
deleted file mode 100644
index 2cef1d4..0000000
--- a/linux-user/x86_64/Makefile.objs
+++ /dev/null
@@ -1,5 +0,0 @@
-generated-files-y += linux-user/x86_64/syscall_nr.h
-
-syshdr := $(SRC_PATH)/linux-user/x86_64/syscallhdr.sh
-%/syscall_nr.h: $(SRC_PATH)/linux-user/x86_64/syscall_64.tbl $(syshdr)
- $(call quiet-command, sh $(syshdr) $< $@ $(TARGET_SYSTBL_ABI),"GEN","$@")
diff --git a/linux-user/x86_64/meson.build b/linux-user/x86_64/meson.build
new file mode 100644
index 0000000..203af9a
--- /dev/null
+++ b/linux-user/x86_64/meson.build
@@ -0,0 +1,5 @@
+syscall_nr_generators += {
+ 'x86_64': generator(sh,
+ arguments: [ meson.current_source_dir() / 'syscallhdr.sh', '@INPUT@', '@OUTPUT@', '@EXTRA_ARGS@' ],
+ output: '@BASENAME@_nr.h')
+}
diff --git a/linux-user/x86_64/syscall_nr.h b/linux-user/x86_64/syscall_nr.h
new file mode 100644
index 0000000..760302c
--- /dev/null
+++ b/linux-user/x86_64/syscall_nr.h
@@ -0,0 +1 @@
+#include "syscall_64_nr.h"
diff --git a/linux-user/xtensa/Makefile.objs b/linux-user/xtensa/Makefile.objs
deleted file mode 100644
index d4be1b7..0000000
--- a/linux-user/xtensa/Makefile.objs
+++ /dev/null
@@ -1,5 +0,0 @@
-generated-files-y += linux-user/xtensa/syscall_nr.h
-
-syshdr := $(SRC_PATH)/linux-user/xtensa/syscallhdr.sh
-%/syscall_nr.h: $(SRC_PATH)/linux-user/xtensa/syscall.tbl $(syshdr)
- $(call quiet-command, sh $(syshdr) $< $@ $(TARGET_SYSTBL_ABI),"GEN","$@")
diff --git a/linux-user/xtensa/meson.build b/linux-user/xtensa/meson.build
new file mode 100644
index 0000000..de77f3b
--- /dev/null
+++ b/linux-user/xtensa/meson.build
@@ -0,0 +1,5 @@
+syscall_nr_generators += {
+ 'xtensa': generator(sh,
+ arguments: [ meson.current_source_dir() / 'syscallhdr.sh', '@INPUT@', '@OUTPUT@', '@EXTRA_ARGS@' ],
+ output: '@BASENAME@_nr.h')
+}