[gdb/tdep] Add gdb/syscalls/update-linux-from-src.sh Add a new script gdb/syscalls/update-linux-from-src.sh, that can be used to generate *-linux.xml.in files from linux kernel sources, like so: ... $ ./update-linux-from-src.sh ~/upstream/linux-stable.git Skipping aarch64-linux.xml.in, no syscall.tbl Generating amd64-linux.xml.in Skipping arm-linux.xml.in, use arm-linux.py instead Skipping bfin-linux.xml.in, no longer supported Generating i386-linux.xml.in Generating mips-n32-linux.xml.in Generating mips-n64-linux.xml.in Generating mips-o32-linux.xml.in Generating ppc64-linux.xml.in Generating ppc-linux.xml.in Generating s390-linux.xml.in Generating s390x-linux.xml.in Generating sparc64-linux.xml.in Generating sparc-linux.xml.in ... Update *-linux.xml.in and *-linux.xml using linux kernel tag v5.18-rc6. --- gdb/syscalls/amd64-linux.xml | 2 +- gdb/syscalls/amd64-linux.xml.in | 2 +- gdb/syscalls/i386-linux.xml | 2 +- gdb/syscalls/i386-linux.xml.in | 2 +- gdb/syscalls/mips-n32-linux.xml | 82 ++++++++++++++++- gdb/syscalls/mips-n32-linux.xml.in | 83 ++++++++++++++++- gdb/syscalls/mips-n64-linux.xml | 60 +++++++++++- gdb/syscalls/mips-n64-linux.xml.in | 61 +++++++++++- gdb/syscalls/mips-o32-linux.xml | 90 +++++++++++++++++- gdb/syscalls/mips-o32-linux.xml.in | 91 +++++++++++++++++- gdb/syscalls/ppc-linux.xml | 5 +- gdb/syscalls/ppc-linux.xml.in | 5 +- gdb/syscalls/ppc64-linux.xml | 5 +- gdb/syscalls/ppc64-linux.xml.in | 5 +- gdb/syscalls/s390-linux.xml | 72 ++++++++++++++- gdb/syscalls/s390-linux.xml.in | 73 ++++++++++++++- gdb/syscalls/s390x-linux.xml | 53 ++++++++++- gdb/syscalls/s390x-linux.xml.in | 54 ++++++++++- gdb/syscalls/sparc-linux.xml | 96 ++++++++++++++++++- gdb/syscalls/sparc-linux.xml.in | 99 +++++++++++++++++++- gdb/syscalls/sparc64-linux.xml | 77 +++++++++++++++- gdb/syscalls/sparc64-linux.xml.in | 80 +++++++++++++++- gdb/syscalls/update-linux-from-src.sh | 169 ++++++++++++++++++++++++++++++++++ 23 files changed, 1230 insertions(+), 38 deletions(-) diff --git a/gdb/syscalls/amd64-linux.xml b/gdb/syscalls/amd64-linux.xml index 231308b72b7..cf2b5c88d54 100644 --- a/gdb/syscalls/amd64-linux.xml +++ b/gdb/syscalls/amd64-linux.xml @@ -7,7 +7,7 @@ notice and this notice are preserved. --> diff --git a/gdb/syscalls/amd64-linux.xml.in b/gdb/syscalls/amd64-linux.xml.in index 404d445988e..e2c8450352f 100644 --- a/gdb/syscalls/amd64-linux.xml.in +++ b/gdb/syscalls/amd64-linux.xml.in @@ -9,7 +9,7 @@ diff --git a/gdb/syscalls/i386-linux.xml b/gdb/syscalls/i386-linux.xml index c4b28111388..cff0e04464a 100644 --- a/gdb/syscalls/i386-linux.xml +++ b/gdb/syscalls/i386-linux.xml @@ -7,7 +7,7 @@ notice and this notice are preserved. --> diff --git a/gdb/syscalls/i386-linux.xml.in b/gdb/syscalls/i386-linux.xml.in index 549b59565f3..3814acd5761 100644 --- a/gdb/syscalls/i386-linux.xml.in +++ b/gdb/syscalls/i386-linux.xml.in @@ -9,7 +9,7 @@ diff --git a/gdb/syscalls/mips-n32-linux.xml b/gdb/syscalls/mips-n32-linux.xml index d6cffc4e5aa..47a8204dfea 100644 --- a/gdb/syscalls/mips-n32-linux.xml +++ b/gdb/syscalls/mips-n32-linux.xml @@ -6,8 +6,8 @@ are permitted in any medium without royalty provided the copyright notice and this notice are preserved. --> @@ -188,7 +188,6 @@ - @@ -204,7 +203,6 @@ - @@ -313,4 +311,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gdb/syscalls/mips-n32-linux.xml.in b/gdb/syscalls/mips-n32-linux.xml.in index cbdf82e65a1..85528f296ee 100644 --- a/gdb/syscalls/mips-n32-linux.xml.in +++ b/gdb/syscalls/mips-n32-linux.xml.in @@ -8,11 +8,12 @@ + @@ -191,7 +192,6 @@ - @@ -207,7 +207,6 @@ - @@ -316,4 +315,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gdb/syscalls/mips-n64-linux.xml b/gdb/syscalls/mips-n64-linux.xml index c7507537118..d1c29840641 100644 --- a/gdb/syscalls/mips-n64-linux.xml +++ b/gdb/syscalls/mips-n64-linux.xml @@ -6,8 +6,8 @@ are permitted in any medium without royalty provided the copyright notice and this notice are preserved. --> @@ -306,4 +306,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gdb/syscalls/mips-n64-linux.xml.in b/gdb/syscalls/mips-n64-linux.xml.in index 28ac1509d6f..26e470e7ff0 100644 --- a/gdb/syscalls/mips-n64-linux.xml.in +++ b/gdb/syscalls/mips-n64-linux.xml.in @@ -8,11 +8,12 @@ + @@ -309,4 +310,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gdb/syscalls/mips-o32-linux.xml b/gdb/syscalls/mips-o32-linux.xml index 1e845d6a4d1..b7e7af3f362 100644 --- a/gdb/syscalls/mips-o32-linux.xml +++ b/gdb/syscalls/mips-o32-linux.xml @@ -6,8 +6,8 @@ are permitted in any medium without royalty provided the copyright notice and this notice are preserved. --> @@ -341,4 +341,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gdb/syscalls/mips-o32-linux.xml.in b/gdb/syscalls/mips-o32-linux.xml.in index 98ba0638b8a..c9368e9c5ae 100644 --- a/gdb/syscalls/mips-o32-linux.xml.in +++ b/gdb/syscalls/mips-o32-linux.xml.in @@ -8,11 +8,12 @@ + @@ -344,4 +345,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gdb/syscalls/ppc-linux.xml b/gdb/syscalls/ppc-linux.xml index 34ba8bd4e49..967a6cd3ea9 100644 --- a/gdb/syscalls/ppc-linux.xml +++ b/gdb/syscalls/ppc-linux.xml @@ -7,7 +7,7 @@ notice and this notice are preserved. --> @@ -439,4 +439,7 @@ + + + diff --git a/gdb/syscalls/ppc-linux.xml.in b/gdb/syscalls/ppc-linux.xml.in index 61c7c585453..f22f3570e7b 100644 --- a/gdb/syscalls/ppc-linux.xml.in +++ b/gdb/syscalls/ppc-linux.xml.in @@ -9,7 +9,7 @@ @@ -443,4 +443,7 @@ + + + diff --git a/gdb/syscalls/ppc64-linux.xml b/gdb/syscalls/ppc64-linux.xml index 838f73bc25e..8a3e8a2864f 100644 --- a/gdb/syscalls/ppc64-linux.xml +++ b/gdb/syscalls/ppc64-linux.xml @@ -7,7 +7,7 @@ notice and this notice are preserved. --> @@ -411,4 +411,7 @@ + + + diff --git a/gdb/syscalls/ppc64-linux.xml.in b/gdb/syscalls/ppc64-linux.xml.in index 4ed80e0a41b..056cd00e4ec 100644 --- a/gdb/syscalls/ppc64-linux.xml.in +++ b/gdb/syscalls/ppc64-linux.xml.in @@ -9,7 +9,7 @@ @@ -415,4 +415,7 @@ + + + diff --git a/gdb/syscalls/s390-linux.xml b/gdb/syscalls/s390-linux.xml index 12548d07583..550dda730b3 100644 --- a/gdb/syscalls/s390-linux.xml +++ b/gdb/syscalls/s390-linux.xml @@ -7,7 +7,7 @@ notice and this notice are preserved. --> @@ -316,6 +316,8 @@ + + @@ -361,4 +363,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gdb/syscalls/s390-linux.xml.in b/gdb/syscalls/s390-linux.xml.in index b0732b71048..ea2356461c9 100644 --- a/gdb/syscalls/s390-linux.xml.in +++ b/gdb/syscalls/s390-linux.xml.in @@ -9,10 +9,11 @@ + @@ -319,6 +320,8 @@ + + @@ -364,4 +367,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gdb/syscalls/s390x-linux.xml b/gdb/syscalls/s390x-linux.xml index 1738d4c5713..511129eb851 100644 --- a/gdb/syscalls/s390x-linux.xml +++ b/gdb/syscalls/s390x-linux.xml @@ -7,7 +7,7 @@ notice and this notice are preserved. --> @@ -283,6 +283,8 @@ + + @@ -328,4 +330,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gdb/syscalls/s390x-linux.xml.in b/gdb/syscalls/s390x-linux.xml.in index 858263068f9..4e3fd3ec42b 100644 --- a/gdb/syscalls/s390x-linux.xml.in +++ b/gdb/syscalls/s390x-linux.xml.in @@ -9,10 +9,11 @@ + @@ -286,6 +287,8 @@ + + @@ -331,4 +334,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gdb/syscalls/sparc-linux.xml b/gdb/syscalls/sparc-linux.xml index 25ceb37dc4f..5eaf7a0656c 100644 --- a/gdb/syscalls/sparc-linux.xml +++ b/gdb/syscalls/sparc-linux.xml @@ -6,8 +6,8 @@ are permitted in any medium without royalty provided the copyright notice and this notice are preserved. --> @@ -338,4 +338,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gdb/syscalls/sparc-linux.xml.in b/gdb/syscalls/sparc-linux.xml.in index 81afb6daa15..3d7053cf2a1 100644 --- a/gdb/syscalls/sparc-linux.xml.in +++ b/gdb/syscalls/sparc-linux.xml.in @@ -8,11 +8,12 @@ + @@ -27,7 +28,7 @@ - + @@ -341,4 +342,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gdb/syscalls/sparc64-linux.xml b/gdb/syscalls/sparc64-linux.xml index c2e9fadc1ab..66a9bbf72b4 100644 --- a/gdb/syscalls/sparc64-linux.xml +++ b/gdb/syscalls/sparc64-linux.xml @@ -6,8 +6,8 @@ are permitted in any medium without royalty provided the copyright notice and this notice are preserved. --> @@ -320,4 +320,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gdb/syscalls/sparc64-linux.xml.in b/gdb/syscalls/sparc64-linux.xml.in index 15bb84ab7e1..8b3f08df3f2 100644 --- a/gdb/syscalls/sparc64-linux.xml.in +++ b/gdb/syscalls/sparc64-linux.xml.in @@ -8,11 +8,12 @@ + @@ -27,7 +28,7 @@ - + @@ -323,4 +324,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gdb/syscalls/update-linux-from-src.sh b/gdb/syscalls/update-linux-from-src.sh new file mode 100755 index 00000000000..c85f9dfbe2f --- /dev/null +++ b/gdb/syscalls/update-linux-from-src.sh @@ -0,0 +1,169 @@ +#!/bin/sh + +# Copyright (C) 2022 Free Software Foundation, Inc. +# +# This file is part of GDB. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Used to generate .xml.in files, like so: +# $ ./update-linux-from-src.sh ~/linux-stable.git + +if [ $# -lt 1 ]; then + echo "dir argument needed" + exit 1 +fi + +d="$1" +shift + +if [ ! -d "$d" ]; then + echo "cannot find $d" + exit 1 +fi + +pre () +{ + f="$1" + + year=$(date +%Y) + + cat < + + + + + + + +EOF + + echo '' +} + + +post () +{ + echo '' +} + +one () +{ + f="$1" + abi="$2" + start_date="$3" + offset="$4" + + pre "$f" "$start_date" + + grep -v "^#" "$d/$f" \ + | awk '{print $2, $3, $1}' \ + | grep -E "^$abi" \ + | grep -E -v " (reserved|unused)[0-9]+ " \ + | awk "{printf \" \n\", \$2, \$3 + $offset}" + + post +} + +for f in *.in; do + start_date=2009 + offset=0 + + case $f in + amd64-linux.xml.in) + t="arch/x86/entry/syscalls/syscall_64.tbl" + abi="(common|64)" + ;; + i386-linux.xml.in) + t="arch/x86/entry/syscalls/syscall_32.tbl" + abi=i386 + ;; + ppc64-linux.xml.in) + t="arch/powerpc/kernel/syscalls/syscall.tbl" + abi="(common|64|nospu)" + ;; + ppc-linux.xml.in) + t="arch/powerpc/kernel/syscalls/syscall.tbl" + abi="(common|32|nospu)" + ;; + s390-linux.xml.in) + t="arch/s390/kernel/syscalls/syscall.tbl" + abi="(common|32)" + ;; + s390x-linux.xml.in) + t="arch/s390/kernel/syscalls/syscall.tbl" + abi="(common|64)" + ;; + sparc64-linux.xml.in) + t="arch/sparc/kernel/syscalls/syscall.tbl" + abi="(common|64)" + start_date="2010" + ;; + sparc-linux.xml.in) + t="arch/sparc/kernel/syscalls/syscall.tbl" + abi="(common|32)" + start_date="2010" + ;; + mips-n32-linux.xml.in) + t="arch/mips/kernel/syscalls/syscall_n32.tbl" + abi="n32" + start_date="2011" + offset=6000 + ;; + mips-n64-linux.xml.in) + t="arch/mips/kernel/syscalls/syscall_n64.tbl" + abi="n64" + start_date="2011" + offset=5000 + ;; + mips-o32-linux.xml.in) + t="arch/mips/kernel/syscalls/syscall_o32.tbl" + abi="o32" + start_date="2011" + offset=4000 + ;; + bfin-linux.xml.in) + echo "Skipping $f, no longer supported" + continue + ;; + aarch64-linux.xml.in) + echo "Skipping $f, no syscall.tbl" + continue + ;; + arm-linux.xml.in) + echo "Skipping $f, use arm-linux.py instead" + continue + ;; + linux-defaults.xml.in) + continue + ;; + *) + echo "Don't know how to generate $f" + continue + ;; + esac + + echo "Generating $f" + one "$t" "$abi" "$start_date" "$offset" > "$f" + +done