Since kernel v6.11 riscv has moved from syscall_nr.h file
to syscall.tbl (3db80c999deb ("riscv: convert to generic syscall
table"))
Update linux-user scripts to be able to retrieve syscall numbers
from linux syscall.tbl instead of syscall_nr.h.
New syscall.tbl is imported from linux v6.11 using updated
scripts/update-syscalltbl.sh
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Message-ID: <20240920151034.859533-4-laurent@vivier.eu>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
		
	
			
		
			
				
	
	
		
			29 lines
		
	
	
		
			717 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			717 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
#!/bin/sh
 | 
						|
# SPDX-License-Identifier: GPL-2.0
 | 
						|
 | 
						|
in="$1"
 | 
						|
out="$2"
 | 
						|
my_abis=`echo "($3)" | tr ',' '|'`
 | 
						|
prefix="$4"
 | 
						|
offset="$5"
 | 
						|
 | 
						|
fileguard=LINUX_USER_X86_64_`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 | (
 | 
						|
    echo "#ifndef ${fileguard}"
 | 
						|
    echo "#define ${fileguard} 1"
 | 
						|
    echo ""
 | 
						|
 | 
						|
    while read nr abi name entry compat ; do
 | 
						|
    if [ -z "$offset" ]; then
 | 
						|
        echo "#define TARGET_NR_${prefix}${name} $nr"
 | 
						|
    else
 | 
						|
        echo "#define TARGET_NR_${prefix}${name} ($offset + $nr)"
 | 
						|
        fi
 | 
						|
    done
 | 
						|
 | 
						|
    echo ""
 | 
						|
    echo "#endif /* ${fileguard} */"
 | 
						|
) > "$out"
 |