linux-user, scripts: add a script to update syscall.tbl

scripts/update-syscalltbl.sh has the list of syscall.tbl to update and
can copy them from the linux source directory

Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Reviewed-by: Taylor Simpson <tsimpson@quicinc.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20200310103403.3284090-19-laurent@vivier.eu>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
This commit is contained in:
Laurent Vivier 2020-03-10 11:34:00 +01:00
parent 686a0fe4db
commit e3a6c825b2
2 changed files with 50 additions and 0 deletions

View File

@ -2448,6 +2448,7 @@ S: Maintained
F: linux-user/
F: default-configs/*-linux-user.mak
F: scripts/qemu-binfmt-conf.sh
F: scripts/update-syscalltbl.sh
Tiny Code Generator (TCG)
-------------------------

49
scripts/update-syscalltbl.sh Executable file
View File

@ -0,0 +1,49 @@
TBL_LIST="\
arch/alpha/kernel/syscalls/syscall.tbl,linux-user/alpha/syscall.tbl \
arch/arm/tools/syscall.tbl,linux-user/arm/syscall.tbl \
arch/m68k/kernel/syscalls/syscall.tbl,linux-user/m68k/syscall.tbl \
arch/microblaze/kernel/syscalls/syscall.tbl,linux-user/microblaze/syscall.tbl \
arch/mips/kernel/syscalls/syscall_n32.tbl,linux-user/mips64/syscall_n32.tbl \
arch/mips/kernel/syscalls/syscall_n64.tbl,linux-user/mips64/syscall_n64.tbl \
arch/mips/kernel/syscalls/syscall_o32.tbl,linux-user/mips/syscall_o32.tbl \
arch/parisc/kernel/syscalls/syscall.tbl,linux-user/hppa/syscall.tbl \
arch/powerpc/kernel/syscalls/syscall.tbl,linux-user/ppc/syscall.tbl \
arch/s390/kernel/syscalls/syscall.tbl,linux-user/s390x/syscall.tbl \
arch/sh/kernel/syscalls/syscall.tbl,linux-user/sh4/syscall.tbl \
arch/sparc/kernel/syscalls/syscall.tbl,linux-user/sparc64/syscall.tbl \
arch/sparc/kernel/syscalls/syscall.tbl,linux-user/sparc/syscall.tbl \
arch/x86/entry/syscalls/syscall_32.tbl,linux-user/i386/syscall_32.tbl \
arch/x86/entry/syscalls/syscall_64.tbl,linux-user/x86_64/syscall_64.tbl \
arch/xtensa/kernel/syscalls/syscall.tbl,linux-user/xtensa/syscall.tbl\
"
linux="$1"
output="$2"
if [ -z "$linux" ] || ! [ -d "$linux" ]; then
cat << EOF
usage: update-syscalltbl.sh LINUX_PATH [OUTPUT_PATH]
LINUX_PATH Linux kernel directory to obtain the syscall.tbl from
OUTPUT_PATH output directory, usually the qemu source tree (default: $PWD)
EOF
exit 1
fi
if [ -z "$output" ]; then
output="$PWD"
fi
for entry in $TBL_LIST; do
OFS="$IFS"
IFS=,
set $entry
src=$1
dst=$2
IFS="$OFS"
if ! cp "$linux/$src" "$output/$dst" ; then
echo "Cannot copy $linux/$src to $output/$dst" 1>&2
exit 1
fi
done