[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v4 00/21] linux-user: generate syscall_nr.sh
From: |
Laurent Vivier |
Subject: |
Re: [PATCH v4 00/21] linux-user: generate syscall_nr.sh |
Date: |
Fri, 13 Mar 2020 22:53:46 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 |
Le 10/03/2020 à 11:33, Laurent Vivier a écrit :
> 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 and files
> are generated manually with the help of a script from the asm-generic/unistd.h
>
> Define do_arch_prctl() with -TARGET_ENOSYS for i386 as the syscall number
> is defined now.
>
> 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.
>
> Two patches manage the special case for mips O32 that needs
> to know the number of arguments. We find them in strace sources.
>
> v4:
> generate syscall_nr.h for hppa32, not 64
>
> v3:
> Add a patch to define do_arch_prctl() for i386
>
> 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 (21):
> 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,x86_64,i386: cleanup TARGET_NR_arch_prctl
> 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/i386/target_cpu.h | 4 +-
> 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 | 25 +-
> 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 ++
> 72 files changed, 8227 insertions(+), 6958 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
>
Applied the whole series to my linux-user branch.
Thanks,
Laurent
- [PATCH v4 19/21] linux-user: update syscall.tbl from linux 0bf999f9c5e7, (continued)
- [PATCH v4 19/21] linux-user: update syscall.tbl from linux 0bf999f9c5e7, Laurent Vivier, 2020/03/10
- [PATCH v4 07/21] linux-user, microblaze: add syscall table generation support, Laurent Vivier, 2020/03/10
- [PATCH v4 05/21] linux-user, xtensa: add syscall table generation support, Laurent Vivier, 2020/03/10
- [PATCH v4 17/21] linux-user, mips64: add syscall table generation support, Laurent Vivier, 2020/03/10
- [PATCH v4 20/21] linux-user,mips: move content of mips_syscall_args, Laurent Vivier, 2020/03/10
- [PATCH v4 14/21] linux-user, i386: add syscall table generation support, Laurent Vivier, 2020/03/10
- [PATCH v4 21/21] linux-user,mips: update syscall-args-o32.c.inc, Laurent Vivier, 2020/03/10
- Re: [PATCH v4 00/21] linux-user: generate syscall_nr.sh, Peter Maydell, 2020/03/10
- Re: [PATCH v4 00/21] linux-user: generate syscall_nr.sh, no-reply, 2020/03/10
- Re: [PATCH v4 00/21] linux-user: generate syscall_nr.sh,
Laurent Vivier <=