On 2/25/20 4:15 AM, Laurent Vivier wrote: > Copy syscall.tbl and syscallhdr.sh from linux/arch/alpha/kernel/syscalls v5.5 > Update syscallhdr.sh to generate QEMU syscall_nr.h > > Signed-off-by: Laurent Vivier <laur...@vivier.eu> > --- > configure | 3 +- > linux-user/Makefile.objs | 2 + > 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 +++ > 6 files changed, 520 insertions(+), 493 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
Reviewed-by: Richard Henderson <richard.hender...@linaro.org> > +++ b/linux-user/alpha/syscallhdr.sh > @@ -0,0 +1,32 @@ > +#!/bin/sh > +# SPDX-License-Identifier: GPL-2.0 > + > +in="$1" > +out="$2" > +my_abis=`echo "($3)" | tr ',' '|'` > +prefix="$4" > +offset="$5" > + > +fileguard=LINUX_USER_ALPHA_`basename "$out" | sed \ > + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ > + -e 's/[^A-Z0-9_]/_/g' -e 's/__/_/g'` > +grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | ( > + printf "#ifndef %s\n" "${fileguard}" > + printf "#define %s\n" "${fileguard}" > + printf "\n" > + > + nxt=0 > + while read nr abi name entry ; do > + if [ -z "$offset" ]; then > + printf "#define TARGET_NR_%s%s\t%s\n" \ > + "${prefix}" "${name}" "${nr}" > + else > + printf "#define TARGET_NR_%s%s\t(%s + %s)\n" \ > + "${prefix}" "${name}" "${offset}" "${nr}" > + fi > + nxt=$((nr+1)) > + done > + > + printf "\n" > + printf "#endif /* %s */" "${fileguard}" > +) > "$out" > Not an objection per-se, but why does every target need its own copy of this script? There appears to be only the fileguard that differs between these. Could we have a common script for the common cases? r~