From: Laurent Vivier <laurent@vivier.eu>
To: qemu-devel@nongnu.org
Cc: Cornelia Huck <cohuck@redhat.com>,
Riku Voipio <riku.voipio@iki.fi>,
Laurent Vivier <laurent@vivier.eu>,
qemu-s390x@nongnu.org,
Aleksandar Markovic <amarkovic@wavecomp.com>,
Aleksandar Rikalo <aleksandar.rikalo@rt-rk.com>,
Aurelien Jarno <aurelien@aurel32.net>
Subject: [PATCH v2 00/20] linux-user: generate syscall_nr.sh
Date: Wed, 19 Feb 2020 23:03:13 +0100 [thread overview]
Message-ID: <20200219220333.1411905-1-laurent@vivier.eu> (raw)
This series copies the files syscall.tbl from linux v5.5 and generates
the file syscall_nr.h from them.
This is done for all the QEMU targets that have a syscall.tbl
in the linux source tree: mips, mips64, i386, x86_64, sparc, s390x,
ppc, arm, microblaze, sh4, xtensa, m68k, hppa and alpha.
tilegx and cris are depecrated in linux (tilegx has no maintainer in QEMU)
aarch64, nios2, openrisc and riscv have no syscall.tbl in linux.
It seems there is a bug in QEMU that forces to disable manually arch_prctl
with i386 target: do_arch_prctl() is only defined with TARGET_ABI32 but
TARGET_ABI32 is never defined with TARGET_I386 (nor TARGET_X86_64).
I have also removed all syscalls in s390x/syscall_nr.h defined for
!defined(TARGET_S390X).
I have added a script to copy all these files from linux and updated
them at the end of the series with their latest version for today.
The two last patches manage the special case for mips O32 that needs
to know the number of arguments. We find them in strace sources.
v2:
fix a typo (double comma) in $(call quiet-command)
add a script to remove dependencies to syscall_nr.h in source directory
ppc, mips64:
we don't need to split syscall_nr.h as it is generated
according TARGET_SYSTBL_ABI to TARGET_ABI_DIR
and generated values are incorrect according to the file name.
arm:
manage TARGET_NR_arm_sync_file_range
Once the syscall_nr.h are built in the build directory, the following script
allows to compare them with the original one (first argument is the path
to build directory), it must be run from the source directory:
cat > check_syscall_nr.sh <<EOF
BUILD="$1"
ARCHS="i386 alpha arm hppa i386 m68k microblaze s390x sh4 sparc sparc64 xtensa ppc"
syscall_nr_diff()
{
arch=$1
target=$2
syscall_nr=linux-user/$arch/syscall_nr.h
offset=$3
REFERENCE=$(git log -1 --format=format:%h -- $syscall_nr)^
if [ "$offset" = "" ] ; then
git show $REFERENCE:$syscall_nr | \
sed 's/[[:blank:]]\/\*[^*]*\*\///' | \
sed 's/(\([^)]*\))/\1/' > /tmp/old
else
git show $REFERENCE:$syscall_nr | \
sed 's/[[:blank:]]\/\*[^*]*\*\///' | \
sed "s/TARGET_NR_Linux/$offset/" > /tmp/old
fi
diff -wu --color=always /tmp/old \
$BUILD/$target/$syscall_nr | less -R
}
for arch in $ARCHS ; do
syscall_nr_diff $arch $arch-linux-user
done
syscall_nr_diff ppc ppc64-linux-user
syscall_nr_diff mips mips-linux-user 4000
syscall_nr_diff mips64 mips64-linux-user 5000
syscall_nr_diff mips64 mipsn32-linux-user 6000
EOF
Laurent Vivier (20):
linux-user: introduce parameters to generate syscall_nr.h
linux-user,alpha: add syscall table generation support
linux-user,hppa: add syscall table generation support
linux-user,m68k: add syscall table generation support
linux-user,xtensa: add syscall table generation support
linux-user,sh4: add syscall table generation support
linux-user,microblaze: add syscall table generation support
linux-user,arm: add syscall table generation support
linux-user,ppc: add syscall table generation support
linux-user,s390x: remove syscall definitions for !TARGET_S390X
linux-user,s390x: add syscall table generation support
linux-user,sparc,sparc64: add syscall table generation support
linux-user,i386: add syscall table generation support
linux-user,x86_64: add syscall table generation support
linux-user,mips: add syscall table generation support
linux-user,mips64: add syscall table generation support
linux-user,scripts: add a script to update syscall.tbl
linux-user: update syscall.tbl from linux 0bf999f9c5e7
linux-user,mips: move content of mips_syscall_args
linux-user,mips: update syscall-args-o32.c.inc
MAINTAINERS | 1 +
Makefile.target | 3 +-
configure | 35 ++
linux-user/Makefile.objs | 19 +-
linux-user/alpha/Makefile.objs | 5 +
linux-user/alpha/syscall.tbl | 479 ++++++++++++++++
linux-user/alpha/syscall_nr.h | 492 -----------------
linux-user/alpha/syscallhdr.sh | 32 ++
linux-user/arm/Makefile.objs | 8 +
linux-user/arm/syscall.tbl | 453 +++++++++++++++
linux-user/arm/syscall_nr.h | 447 ---------------
linux-user/arm/syscallhdr.sh | 31 ++
linux-user/hppa/Makefile.objs | 5 +
linux-user/hppa/syscall.tbl | 437 +++++++++++++++
linux-user/hppa/syscall_nr.h | 358 ------------
linux-user/hppa/syscallhdr.sh | 32 ++
linux-user/i386/Makefile.objs | 5 +
linux-user/i386/syscall_32.tbl | 444 +++++++++++++++
linux-user/i386/syscall_nr.h | 387 -------------
linux-user/i386/syscallhdr.sh | 28 +
linux-user/m68k/Makefile.objs | 5 +
linux-user/m68k/syscall.tbl | 439 +++++++++++++++
linux-user/m68k/syscall_nr.h | 434 ---------------
linux-user/m68k/syscallhdr.sh | 32 ++
linux-user/microblaze/Makefile.objs | 5 +
linux-user/microblaze/syscall.tbl | 445 +++++++++++++++
linux-user/microblaze/syscall_nr.h | 442 ---------------
linux-user/microblaze/syscallhdr.sh | 32 ++
linux-user/mips/Makefile.objs | 5 +
linux-user/mips/cpu_loop.c | 440 +--------------
linux-user/mips/syscall-args-o32.c.inc | 436 +++++++++++++++
linux-user/mips/syscall_nr.h | 425 ---------------
linux-user/mips/syscall_o32.tbl | 427 +++++++++++++++
linux-user/mips/syscallhdr.sh | 36 ++
linux-user/mips64/Makefile.objs | 12 +
linux-user/mips64/syscall_n32.tbl | 378 +++++++++++++
linux-user/mips64/syscall_n64.tbl | 354 ++++++++++++
linux-user/mips64/syscall_nr.h | 725 -------------------------
linux-user/mips64/syscallhdr.sh | 33 ++
linux-user/ppc/Makefile.objs | 6 +
linux-user/ppc/signal.c | 2 +-
linux-user/ppc/syscall.tbl | 521 ++++++++++++++++++
linux-user/ppc/syscall_nr.h | 402 --------------
linux-user/ppc/syscallhdr.sh | 34 ++
linux-user/s390x/Makefile.objs | 5 +
linux-user/s390x/syscall.tbl | 442 +++++++++++++++
linux-user/s390x/syscall_nr.h | 398 --------------
linux-user/s390x/syscallhdr.sh | 32 ++
linux-user/sh4/Makefile.objs | 5 +
linux-user/sh4/syscall.tbl | 442 +++++++++++++++
linux-user/sh4/syscall_nr.h | 441 ---------------
linux-user/sh4/syscallhdr.sh | 32 ++
linux-user/sparc/Makefile.objs | 5 +
linux-user/sparc/syscall.tbl | 485 +++++++++++++++++
linux-user/sparc/syscall_nr.h | 363 -------------
linux-user/sparc/syscallhdr.sh | 32 ++
linux-user/sparc64/Makefile.objs | 5 +
linux-user/sparc64/syscall.tbl | 485 +++++++++++++++++
linux-user/sparc64/syscall_nr.h | 366 -------------
linux-user/sparc64/syscallhdr.sh | 32 ++
linux-user/syscall.c | 6 +
linux-user/x86_64/Makefile.objs | 5 +
linux-user/x86_64/syscall_64.tbl | 404 ++++++++++++++
linux-user/x86_64/syscall_nr.h | 356 ------------
linux-user/x86_64/syscallhdr.sh | 28 +
linux-user/xtensa/Makefile.objs | 5 +
linux-user/xtensa/syscall.tbl | 410 ++++++++++++++
linux-user/xtensa/syscall_nr.h | 469 ----------------
linux-user/xtensa/syscallhdr.sh | 32 ++
scripts/update-mips-syscall-args.sh | 57 ++
scripts/update-syscalltbl.sh | 49 ++
71 files changed, 8214 insertions(+), 6948 deletions(-)
create mode 100644 linux-user/alpha/Makefile.objs
create mode 100644 linux-user/alpha/syscall.tbl
delete mode 100644 linux-user/alpha/syscall_nr.h
create mode 100644 linux-user/alpha/syscallhdr.sh
create mode 100644 linux-user/arm/Makefile.objs
create mode 100644 linux-user/arm/syscall.tbl
delete mode 100644 linux-user/arm/syscall_nr.h
create mode 100644 linux-user/arm/syscallhdr.sh
create mode 100644 linux-user/hppa/Makefile.objs
create mode 100644 linux-user/hppa/syscall.tbl
delete mode 100644 linux-user/hppa/syscall_nr.h
create mode 100644 linux-user/hppa/syscallhdr.sh
create mode 100644 linux-user/i386/Makefile.objs
create mode 100644 linux-user/i386/syscall_32.tbl
delete mode 100644 linux-user/i386/syscall_nr.h
create mode 100644 linux-user/i386/syscallhdr.sh
create mode 100644 linux-user/m68k/Makefile.objs
create mode 100644 linux-user/m68k/syscall.tbl
delete mode 100644 linux-user/m68k/syscall_nr.h
create mode 100644 linux-user/m68k/syscallhdr.sh
create mode 100644 linux-user/microblaze/Makefile.objs
create mode 100644 linux-user/microblaze/syscall.tbl
delete mode 100644 linux-user/microblaze/syscall_nr.h
create mode 100644 linux-user/microblaze/syscallhdr.sh
create mode 100644 linux-user/mips/Makefile.objs
create mode 100644 linux-user/mips/syscall-args-o32.c.inc
delete mode 100644 linux-user/mips/syscall_nr.h
create mode 100644 linux-user/mips/syscall_o32.tbl
create mode 100644 linux-user/mips/syscallhdr.sh
create mode 100644 linux-user/mips64/Makefile.objs
create mode 100644 linux-user/mips64/syscall_n32.tbl
create mode 100644 linux-user/mips64/syscall_n64.tbl
delete mode 100644 linux-user/mips64/syscall_nr.h
create mode 100644 linux-user/mips64/syscallhdr.sh
create mode 100644 linux-user/ppc/Makefile.objs
create mode 100644 linux-user/ppc/syscall.tbl
delete mode 100644 linux-user/ppc/syscall_nr.h
create mode 100644 linux-user/ppc/syscallhdr.sh
create mode 100644 linux-user/s390x/Makefile.objs
create mode 100644 linux-user/s390x/syscall.tbl
delete mode 100644 linux-user/s390x/syscall_nr.h
create mode 100755 linux-user/s390x/syscallhdr.sh
create mode 100644 linux-user/sh4/Makefile.objs
create mode 100644 linux-user/sh4/syscall.tbl
delete mode 100644 linux-user/sh4/syscall_nr.h
create mode 100644 linux-user/sh4/syscallhdr.sh
create mode 100644 linux-user/sparc/Makefile.objs
create mode 100644 linux-user/sparc/syscall.tbl
delete mode 100644 linux-user/sparc/syscall_nr.h
create mode 100644 linux-user/sparc/syscallhdr.sh
create mode 100644 linux-user/sparc64/Makefile.objs
create mode 100644 linux-user/sparc64/syscall.tbl
delete mode 100644 linux-user/sparc64/syscall_nr.h
create mode 100644 linux-user/sparc64/syscallhdr.sh
create mode 100644 linux-user/x86_64/Makefile.objs
create mode 100644 linux-user/x86_64/syscall_64.tbl
delete mode 100644 linux-user/x86_64/syscall_nr.h
create mode 100644 linux-user/x86_64/syscallhdr.sh
create mode 100644 linux-user/xtensa/Makefile.objs
create mode 100644 linux-user/xtensa/syscall.tbl
delete mode 100644 linux-user/xtensa/syscall_nr.h
create mode 100644 linux-user/xtensa/syscallhdr.sh
create mode 100755 scripts/update-mips-syscall-args.sh
create mode 100755 scripts/update-syscalltbl.sh
--
2.24.1
next reply other threads:[~2020-02-19 22:08 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-19 22:03 Laurent Vivier [this message]
2020-02-19 22:03 ` [PATCH v2 01/20] linux-user: introduce parameters to generate syscall_nr.h Laurent Vivier
2020-02-19 22:03 ` [PATCH v2 02/20] linux-user, alpha: add syscall table generation support Laurent Vivier
2020-02-19 22:03 ` [PATCH v2 03/20] linux-user, hppa: " Laurent Vivier
2020-02-19 22:03 ` [PATCH v2 04/20] linux-user, m68k: " Laurent Vivier
2020-02-19 22:03 ` [PATCH v2 05/20] linux-user, xtensa: " Laurent Vivier
2020-02-19 22:03 ` [PATCH v2 06/20] linux-user, sh4: " Laurent Vivier
2020-02-19 22:03 ` [PATCH v2 07/20] linux-user, microblaze: " Laurent Vivier
2020-02-19 22:03 ` [PATCH v2 08/20] linux-user, arm: " Laurent Vivier
2020-02-19 22:03 ` [PATCH v2 09/20] linux-user, ppc: " Laurent Vivier
2020-02-19 22:03 ` [PATCH v2 10/20] linux-user, s390x: remove syscall definitions for !TARGET_S390X Laurent Vivier
2020-02-19 22:03 ` [PATCH v2 11/20] linux-user, s390x: add syscall table generation support Laurent Vivier
2020-02-19 22:03 ` [PATCH v2 12/20] linux-user, sparc, sparc64: " Laurent Vivier
2020-02-19 22:03 ` [PATCH v2 13/20] linux-user, i386: " Laurent Vivier
2020-02-19 22:03 ` [PATCH v2 14/20] linux-user, x86_64: " Laurent Vivier
2020-02-19 22:03 ` [PATCH v2 15/20] linux-user, mips: " Laurent Vivier
2020-02-19 22:03 ` [PATCH v2 16/20] linux-user, mips64: " Laurent Vivier
2020-02-19 22:03 ` [PATCH v2 17/20] linux-user, scripts: add a script to update syscall.tbl Laurent Vivier
2020-02-19 22:03 ` [PATCH v2 18/20] linux-user: update syscall.tbl from linux 0bf999f9c5e7 Laurent Vivier
2020-02-19 22:03 ` [PATCH v2 19/20] linux-user,mips: move content of mips_syscall_args Laurent Vivier
2020-02-19 22:03 ` [PATCH v2 20/20] linux-user,mips: update syscall-args-o32.c.inc Laurent Vivier
2020-02-21 13:45 ` [PATCH v2 00/20] linux-user: generate syscall_nr.sh Peter Maydell
2020-02-21 13:56 ` Peter Maydell
2020-02-21 14:37 ` Laurent Vivier
2020-02-21 14:29 ` Laurent Vivier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200219220333.1411905-1-laurent@vivier.eu \
--to=laurent@vivier.eu \
--cc=aleksandar.rikalo@rt-rk.com \
--cc=amarkovic@wavecomp.com \
--cc=aurelien@aurel32.net \
--cc=cohuck@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-s390x@nongnu.org \
--cc=riku.voipio@iki.fi \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.