public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
* [PATCH][gdb/testsuite] Handle pipe2 syscall in gdb.base/catch-syscall.exp
@ 2022-05-03 14:57 Tom de Vries
  2022-05-05 11:47 ` [PATCH, v2][gdb/testsuite] " Tom de Vries
  0 siblings, 1 reply; 22+ messages in thread
From: Tom de Vries @ 2022-05-03 14:57 UTC (permalink / raw)
  To: gdb-patches

Hi,

When running test-case gdb.reverse/pipe-reverse.exp on openSUSE Tumbleweed,
I run into:
...
(gdb) continue^M
Continuing.^M
^M
Catchpoint 2 (returned from syscall pipe2), in pipe () from /lib64/libc.so.6^M
(gdb) FAIL: gdb.base/catch-syscall.exp: without arguments: \
  syscall pipe has returned
...

The current glibc on Tumbleweed is 2.35, which contains commit
"linux: Implement pipe in terms of __NR_pipe2", and consequently syscall pipe2
is used in stead of syscall pipe.

Fix this by detecting whether syscall pipe or pipe2 is used before running the tests.

Tested on x86_64-linux, specifically on:
- openSUSE Tumbleweed (with glibc 2.35), and
- openSUSE Leap 15.3 (with glibc 2.31).

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29056

Any comments?

Thanks,
- Tom

[gdb/testsuite] Handle pipe2 syscall in gdb.base/catch-syscall.exp

---
 gdb/testsuite/gdb.base/catch-syscall.c   |  3 +-
 gdb/testsuite/gdb.base/catch-syscall.exp | 69 ++++++++++++++++++++++++++++----
 2 files changed, 64 insertions(+), 8 deletions(-)

diff --git a/gdb/testsuite/gdb.base/catch-syscall.c b/gdb/testsuite/gdb.base/catch-syscall.c
index 0ab96318d3e..8c252a06b20 100644
--- a/gdb/testsuite/gdb.base/catch-syscall.c
+++ b/gdb/testsuite/gdb.base/catch-syscall.c
@@ -24,7 +24,8 @@ int chroot_syscall = SYS_chroot;
 int read_syscall = SYS_read;
 #ifdef SYS_pipe
 int pipe_syscall = SYS_pipe;
-#else
+#endif
+#ifdef SYS_pipe2
 int pipe2_syscall = SYS_pipe2;
 #endif
 int write_syscall = SYS_write;
diff --git a/gdb/testsuite/gdb.base/catch-syscall.exp b/gdb/testsuite/gdb.base/catch-syscall.exp
index a5dfd02411b..ed1b32d34bc 100644
--- a/gdb/testsuite/gdb.base/catch-syscall.exp
+++ b/gdb/testsuite/gdb.base/catch-syscall.exp
@@ -669,35 +669,90 @@ proc fill_all_syscalls_numbers {} {
     set unknown_syscall_number [get_integer_valueof "unknown_syscall" -1]
 }
 
-# Set up the vector all_syscalls.
+# Set up the vector all_syscalls.  Returns 1 upon success, 0 upon failure.
 
 proc setup_all_syscalls {} {
     global all_syscalls
     global gdb_prompt
+    global decimal
 
     # They are ordered according to the file, so do not change this.
     lappend all_syscalls "close"
     lappend all_syscalls "chroot"
 
+    if { ![runto_main] } {
+	return 0
+    }
+
     # SYS_pipe doesn't exist on aarch64 kernel.
     set test "check SYS_pipe"
+    set have_SYS_pipe 0
     gdb_test_multiple "p pipe_syscall" $test {
-	-re " = .*$gdb_prompt $" {
+	-re -wrap " = .*" {
+	    pass $test
+	    set have_SYS_pipe 1
+	}
+	-re -wrap "No symbol .*" {
+	    pass $test
+	}
+    }
+
+    if { $have_SYS_pipe == 0 && $have_SYS_pipe2 == 0 } {
+	return 0
+    }
+
+    set test "check SYS_pipe2"
+    set have_SYS_pipe2 0
+    gdb_test_multiple "p pipe2_syscall" $test {
+	-re -wrap " = .*" {
 	    pass $test
-	    lappend all_syscalls "pipe"
+	    set have_SYS_pipe2 1
 	}
-	-re "No symbol .*$gdb_prompt $" {
+	-re -wrap "No symbol .*" {
 	    pass $test
-	    # SYS_pipe isn't defined, use SYS_pipe2 instead.
-	    lappend all_syscalls "pipe2"
+	}
+    }
+
+    with_test_prefix "determine pipe syscall" {
+	set line [gdb_get_line_number "pipe (fd)"]
+	gdb_test "break $line"
+	gdb_continue_to_breakpoint "before pipe call"
+	if { $have_SYS_pipe } {
+	    gdb_test "catch syscall pipe"
+	}
+	if { $have_SYS_pipe2 } {
+	    gdb_test "catch syscall pipe2"
+	}
+	set ok 0
+	gdb_test_multiple "continue" "" {
+	    -re -wrap "Catchpoint $decimal \\(call to syscall pipe\\).*" {
+		lappend all_syscalls "pipe"
+		pass $gdb_test_name
+		set ok 1
+	    }
+	    -re -wrap "Catchpoint $decimal \\(call to syscall pipe2\\).*" {
+		lappend all_syscalls "pipe2"
+		pass $gdb_test_name
+		set ok 1
+	    }
+	    -re -wrap "" {
+		fail $gdb_test_name
+	    }
+	}
+	if { ! $ok } {
+	    return 0
 	}
     }
 
     lappend all_syscalls "write"
     lappend all_syscalls "read"
+
+    return 1
 }
 
-setup_all_syscalls
+if { ![setup_all_syscalls] } {
+    return -1
+}
 
 # Fill all the syscalls numbers before starting anything.
 fill_all_syscalls_numbers

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH, v2][gdb/testsuite] Handle pipe2 syscall in gdb.base/catch-syscall.exp
  2022-05-03 14:57 [PATCH][gdb/testsuite] Handle pipe2 syscall in gdb.base/catch-syscall.exp Tom de Vries
@ 2022-05-05 11:47 ` Tom de Vries
  2022-05-05 11:49   ` [PATCH][gdb/tdep] Support catch syscall pipe2 for i386 Tom de Vries
  2022-05-05 13:23   ` [PATCH, v2][gdb/testsuite] Handle pipe2 syscall in gdb.base/catch-syscall.exp Simon Marchi
  0 siblings, 2 replies; 22+ messages in thread
From: Tom de Vries @ 2022-05-05 11:47 UTC (permalink / raw)
  To: gdb-patches

[-- Attachment #1: Type: text/plain, Size: 1106 bytes --]

On 5/3/22 16:57, Tom de Vries wrote:
> Hi,
> 
> When running test-case gdb.reverse/pipe-reverse.exp on openSUSE Tumbleweed,
> I run into:
> ...
> (gdb) continue^M
> Continuing.^M
> ^M
> Catchpoint 2 (returned from syscall pipe2), in pipe () from /lib64/libc.so.6^M
> (gdb) FAIL: gdb.base/catch-syscall.exp: without arguments: \
>    syscall pipe has returned
> ...
> 
> The current glibc on Tumbleweed is 2.35, which contains commit
> "linux: Implement pipe in terms of __NR_pipe2", and consequently syscall pipe2
> is used in stead of syscall pipe.
> 
> Fix this by detecting whether syscall pipe or pipe2 is used before running the tests.
> 
> Tested on x86_64-linux, specifically on:
> - openSUSE Tumbleweed (with glibc 2.35), and
> - openSUSE Leap 15.3 (with glibc 2.31).
> 
> Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29056
> 
> Any comments?
> 

I'm submitting a v2.  I found out that with target board unix/-m32, 
pipe2 is not recognized as syscall name (which I'll fix in a follow-up 
patch), so I made the test robust against this, by using the syscall 
number instead.

Thanks,
- Tom


[-- Attachment #2: 0008-gdb-testsuite-Handle-pipe2-syscall-in-gdb.base-catch-syscall.exp.patch --]
[-- Type: text/x-patch, Size: 5938 bytes --]

[gdb/testsuite] Handle pipe2 syscall in gdb.base/catch-syscall.exp

When running test-case gdb.reverse/pipe-reverse.exp on openSUSE Tumbleweed,
I run into:
...
(gdb) continue^M
Continuing.^M
^M
Catchpoint 2 (returned from syscall pipe2), in pipe () from /lib64/libc.so.6^M
(gdb) FAIL: gdb.base/catch-syscall.exp: without arguments: \
  syscall pipe has returned
...

The current glibc on Tumbleweed is 2.35, which contains commit
"linux: Implement pipe in terms of __NR_pipe2", and consequently syscall pipe2
is used instead of syscall pipe.

Fix this by detecting whether syscall pipe or pipe2 is used before running the tests.

Tested on x86_64-linux, specifically on:
- openSUSE Tumbleweed (with glibc 2.35), and
- openSUSE Leap 15.3 (with glibc 2.31).

On openSUSE Tumbleweed + target board unix/-m32, this exposes:
...
(gdb) catch syscall pipe2^M
Unknown syscall name 'pipe2'.^M
...
so make the test robust against this by using the syscall number instead,
while still noting that the syscall name pipe2 is not recognized:
...
FAIL: gdb.base/catch-syscall.exp: determine pipe syscall: catch syscall pipe2
...
which will be fixed in a folllow-up patch.

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29056

---
 gdb/testsuite/gdb.base/catch-syscall.c   |   3 +-
 gdb/testsuite/gdb.base/catch-syscall.exp | 100 ++++++++++++++++++++++++++++---
 2 files changed, 93 insertions(+), 10 deletions(-)

diff --git a/gdb/testsuite/gdb.base/catch-syscall.c b/gdb/testsuite/gdb.base/catch-syscall.c
index 0ab96318d3e..8c252a06b20 100644
--- a/gdb/testsuite/gdb.base/catch-syscall.c
+++ b/gdb/testsuite/gdb.base/catch-syscall.c
@@ -24,7 +24,8 @@ int chroot_syscall = SYS_chroot;
 int read_syscall = SYS_read;
 #ifdef SYS_pipe
 int pipe_syscall = SYS_pipe;
-#else
+#endif
+#ifdef SYS_pipe2
 int pipe2_syscall = SYS_pipe2;
 #endif
 int write_syscall = SYS_write;
diff --git a/gdb/testsuite/gdb.base/catch-syscall.exp b/gdb/testsuite/gdb.base/catch-syscall.exp
index a5dfd02411b..cc76a2cf61d 100644
--- a/gdb/testsuite/gdb.base/catch-syscall.exp
+++ b/gdb/testsuite/gdb.base/catch-syscall.exp
@@ -185,7 +185,11 @@ proc insert_catch_syscall_with_many_args { syscalls numbers } {
     set filter_str ""
 
     foreach name $syscalls number $numbers {
-      set filter_str "${filter_str}'${name}' \\\[${number}\\\] "
+	if { [string is integer $name] } {
+	    append filter_str "${name} "
+	} else {
+	    append filter_str "'${name}' \\\[${number}\\\] "
+	}
     }
 
     set filter_str [ string trimright $filter_str " " ]
@@ -662,42 +666,120 @@ proc fill_all_syscalls_numbers {} {
     global all_syscalls_numbers last_syscall_number unknown_syscall_number all_syscalls
 
     foreach syscall $all_syscalls {
-	lappend all_syscalls_numbers [get_integer_valueof "${syscall}_syscall" -1]
+	if { [string is integer $syscall] } {
+	    lappend all_syscalls_numbers $syscall
+	} else {
+	    lappend all_syscalls_numbers [get_integer_valueof "${syscall}_syscall" -1]
+	}
     }
 
     set last_syscall_number [get_integer_valueof "exit_group_syscall" -1]
     set unknown_syscall_number [get_integer_valueof "unknown_syscall" -1]
 }
 
-# Set up the vector all_syscalls.
+# Catch syscall with NAME, or if gdb doesn't support that (yet), try NR
+# instead.
+
+proc catch_syscall_name_or_nr { name nr } {
+    global decimal
+
+    gdb_test_multiple "catch syscall $name" "" {
+	-re -wrap "Catchpoint $decimal \\(syscall '$name' \\\[$nr\\\]\\)" {
+	    pass $gdb_test_name
+	}
+	-re -wrap "Unknown syscall name '$name'\." {
+	    fail $gdb_test_name
+	    gdb_test "catch syscall $nr" "Catchpoint $decimal \\(syscall $nr\\)"
+	}
+    }
+}
+
+# Set up the vector all_syscalls.  Returns 1 upon success, 0 upon failure.
 
 proc setup_all_syscalls {} {
     global all_syscalls
     global gdb_prompt
+    global decimal
 
     # They are ordered according to the file, so do not change this.
     lappend all_syscalls "close"
     lappend all_syscalls "chroot"
 
+    if { ![runto_main] } {
+	return 0
+    }
+
     # SYS_pipe doesn't exist on aarch64 kernel.
     set test "check SYS_pipe"
+    set have_SYS_pipe 0
     gdb_test_multiple "p pipe_syscall" $test {
-	-re " = .*$gdb_prompt $" {
+	-re -wrap " = ($decimal)" {
+	    pass $test
+	    set have_SYS_pipe 1
+	    set SYS_pipe $expect_out(1,string)
+	}
+	-re -wrap "No symbol .*" {
+	    pass $test
+	}
+    }
+
+    set test "check SYS_pipe2"
+    set have_SYS_pipe2 0
+    gdb_test_multiple "p pipe2_syscall" $test {
+	-re -wrap " = ($decimal)" {
 	    pass $test
-	    lappend all_syscalls "pipe"
+	    set have_SYS_pipe2 1
+	    set SYS_pipe2 $expect_out(1,string)
 	}
-	-re "No symbol .*$gdb_prompt $" {
+	-re -wrap "No symbol .*" {
 	    pass $test
-	    # SYS_pipe isn't defined, use SYS_pipe2 instead.
-	    lappend all_syscalls "pipe2"
+	}
+    }
+
+    if { $have_SYS_pipe == 0 && $have_SYS_pipe2 == 0 } {
+	return 0
+    }
+
+    with_test_prefix "determine pipe syscall" {
+	set line [gdb_get_line_number "pipe (fd)"]
+	gdb_test "break $line"
+	gdb_continue_to_breakpoint "before pipe call"
+	if { $have_SYS_pipe } {
+	    catch_syscall_name_or_nr pipe $SYS_pipe
+	}
+	if { $have_SYS_pipe2 } {
+	    catch_syscall_name_or_nr pipe2 $SYS_pipe2
+	}
+	set ok 0
+	gdb_test_multiple "continue" "" {
+	    -re -wrap "Catchpoint $decimal \\(call to syscall (pipe|$SYS_pipe)\\).*" {
+		lappend all_syscalls $expect_out(1,string)
+		pass $gdb_test_name
+		set ok 1
+	    }
+	    -re -wrap "Catchpoint $decimal \\(call to syscall (pipe2|$SYS_pipe2)\\).*" {
+		lappend all_syscalls $expect_out(1,string)
+		pass $gdb_test_name
+		set ok 1
+	    }
+	    -re -wrap "" {
+		fail $gdb_test_name
+	    }
+	}
+	if { ! $ok } {
+	    return 0
 	}
     }
 
     lappend all_syscalls "write"
     lappend all_syscalls "read"
+
+    return 1
 }
 
-setup_all_syscalls
+if { ![setup_all_syscalls] } {
+    return -1
+}
 
 # Fill all the syscalls numbers before starting anything.
 fill_all_syscalls_numbers

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH][gdb/tdep] Support catch syscall pipe2 for i386
  2022-05-05 11:47 ` [PATCH, v2][gdb/testsuite] " Tom de Vries
@ 2022-05-05 11:49   ` Tom de Vries
  2022-05-05 13:20     ` Simon Marchi
  2022-05-05 13:23   ` [PATCH, v2][gdb/testsuite] Handle pipe2 syscall in gdb.base/catch-syscall.exp Simon Marchi
  1 sibling, 1 reply; 22+ messages in thread
From: Tom de Vries @ 2022-05-05 11:49 UTC (permalink / raw)
  To: gdb-patches; +Cc: Sergio Durigan Junior

[-- Attachment #1: Type: text/plain, Size: 1336 bytes --]

[ was: Re: [PATCH, v2][gdb/testsuite] Handle pipe2 syscall in 
gdb.base/catch-syscall.exp ]

On 5/5/22 13:47, Tom de Vries wrote:
> On 5/3/22 16:57, Tom de Vries wrote:
>> Hi,
>>
>> When running test-case gdb.reverse/pipe-reverse.exp on openSUSE 
>> Tumbleweed,
>> I run into:
>> ...
>> (gdb) continue^M
>> Continuing.^M
>> ^M
>> Catchpoint 2 (returned from syscall pipe2), in pipe () from 
>> /lib64/libc.so.6^M
>> (gdb) FAIL: gdb.base/catch-syscall.exp: without arguments: \
>>    syscall pipe has returned
>> ...
>>
>> The current glibc on Tumbleweed is 2.35, which contains commit
>> "linux: Implement pipe in terms of __NR_pipe2", and consequently 
>> syscall pipe2
>> is used in stead of syscall pipe.
>>
>> Fix this by detecting whether syscall pipe or pipe2 is used before 
>> running the tests.
>>
>> Tested on x86_64-linux, specifically on:
>> - openSUSE Tumbleweed (with glibc 2.35), and
>> - openSUSE Leap 15.3 (with glibc 2.31).
>>
>> Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29056
>>
>> Any comments?
>>
> 
> I'm submitting a v2.  I found out that with target board unix/-m32, 
> pipe2 is not recognized as syscall name (which I'll fix in a follow-up 
> patch), so I made the test robust against this, by using the syscall 
> number instead.

And this is that follow-up patch.

Any comments?

Thanks,
- Tom

[-- Attachment #2: 0009-gdb-tdep-Support-catch-syscall-pipe2-for-i386.patch --]
[-- Type: text/x-patch, Size: 1585 bytes --]

[gdb/tdep] Support catch syscall pipe2 for i386

With test-case gdb.base/catch-syscall.exp and target board unix/-m32, we run
into:
...
(gdb) catch syscall pipe2^M
Unknown syscall name 'pipe2'.^M
(gdb) FAIL: gdb.base/catch-syscall.exp: determine pipe syscall: catch syscall pipe2
...

Fix this by:
- adding a pipe2 entry in gdb/syscalls/i386-linux.xml.in, and
- regenerating gdb/syscalls/i386-linux.xml using
  "xsltproc --output i386-linux.xml apply-defaults.xsl i386-linux.xml.in".

Tested on x86_64-linux with native and unix/-m32.

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29056

---
 gdb/syscalls/i386-linux.xml    | 1 +
 gdb/syscalls/i386-linux.xml.in | 1 +
 2 files changed, 2 insertions(+)

diff --git a/gdb/syscalls/i386-linux.xml b/gdb/syscalls/i386-linux.xml
index a783dd10af3..4a7a2345186 100644
--- a/gdb/syscalls/i386-linux.xml
+++ b/gdb/syscalls/i386-linux.xml
@@ -334,4 +334,5 @@
   <syscall name="eventfd" number="323" groups="descriptor"/>
   <syscall name="fallocate" number="324" groups="descriptor"/>
   <syscall name="timerfd_settime" number="325" groups="descriptor"/>
+  <syscall name="pipe2" number="331" groups="descriptor"/>
 </syscalls_info>
diff --git a/gdb/syscalls/i386-linux.xml.in b/gdb/syscalls/i386-linux.xml.in
index e778ab54043..13c4d1d99d4 100644
--- a/gdb/syscalls/i386-linux.xml.in
+++ b/gdb/syscalls/i386-linux.xml.in
@@ -337,4 +337,5 @@
   <syscall name="eventfd" number="323"/>
   <syscall name="fallocate" number="324"/>
   <syscall name="timerfd_settime" number="325"/>
+  <syscall name="pipe2" number="331"/>
 </syscalls_info>

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH][gdb/tdep] Support catch syscall pipe2 for i386
  2022-05-05 11:49   ` [PATCH][gdb/tdep] Support catch syscall pipe2 for i386 Tom de Vries
@ 2022-05-05 13:20     ` Simon Marchi
  2022-05-09 10:26       ` [PATCH][gdb] Add gdb/syscalls/Makefile Tom de Vries
  2022-05-09 10:39       ` [PATCH][gdb] Update syscalls/{amd64,i386}-linux.xml Tom de Vries
  0 siblings, 2 replies; 22+ messages in thread
From: Simon Marchi @ 2022-05-05 13:20 UTC (permalink / raw)
  To: Tom de Vries, gdb-patches; +Cc: Sergio Durigan Junior

> [gdb/tdep] Support catch syscall pipe2 for i386
>
> With test-case gdb.base/catch-syscall.exp and target board unix/-m32, we run
> into:
> ...
> (gdb) catch syscall pipe2^M
> Unknown syscall name 'pipe2'.^M
> (gdb) FAIL: gdb.base/catch-syscall.exp: determine pipe syscall: catch syscall pipe2
> ...
>
> Fix this by:
> - adding a pipe2 entry in gdb/syscalls/i386-linux.xml.in, and
> - regenerating gdb/syscalls/i386-linux.xml using
>   "xsltproc --output i386-linux.xml apply-defaults.xsl i386-linux.xml.in".

The patch LGTM, assuming this is the right number for pipe2 :).

I suppose we are missing more syscalls than that, given that new
syscalls are added regularly, e.g. rseq:

  https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d7822b1e24f2

As long as rseq is not listed in this file, it means a user wouldn't be
able to use "catch syscall rseq", I suppose?  We would need a procedure
to add new syscalls periodically.

Could we add a simple Makefile (as a separate patch) that contains these
xslt commands?  I think you searched a little bit how those files were
originally generated, so it would be nice to save the trouble in the
future.

Simon

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH, v2][gdb/testsuite] Handle pipe2 syscall in gdb.base/catch-syscall.exp
  2022-05-05 11:47 ` [PATCH, v2][gdb/testsuite] " Tom de Vries
  2022-05-05 11:49   ` [PATCH][gdb/tdep] Support catch syscall pipe2 for i386 Tom de Vries
@ 2022-05-05 13:23   ` Simon Marchi
  2022-05-09 10:18     ` Tom de Vries
  1 sibling, 1 reply; 22+ messages in thread
From: Simon Marchi @ 2022-05-05 13:23 UTC (permalink / raw)
  To: Tom de Vries, gdb-patches

On 2022-05-05 07:47, Tom de Vries via Gdb-patches wrote:
> On 5/3/22 16:57, Tom de Vries wrote:
>> Hi,
>>
>> When running test-case gdb.reverse/pipe-reverse.exp on openSUSE Tumbleweed,
>> I run into:
>> ...
>> (gdb) continue^M
>> Continuing.^M
>> ^M
>> Catchpoint 2 (returned from syscall pipe2), in pipe () from /lib64/libc.so.6^M
>> (gdb) FAIL: gdb.base/catch-syscall.exp: without arguments: \
>>    syscall pipe has returned
>> ...
>>
>> The current glibc on Tumbleweed is 2.35, which contains commit
>> "linux: Implement pipe in terms of __NR_pipe2", and consequently syscall pipe2
>> is used in stead of syscall pipe.
>>
>> Fix this by detecting whether syscall pipe or pipe2 is used before running the tests.
>>
>> Tested on x86_64-linux, specifically on:
>> - openSUSE Tumbleweed (with glibc 2.35), and
>> - openSUSE Leap 15.3 (with glibc 2.31).
>>
>> Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29056
>>
>> Any comments?
>>
> 
> I'm submitting a v2.  I found out that with target board unix/-m32, pipe2 is not recognized as syscall name (which I'll fix in a follow-up patch), so I made the test robust against this, by using the syscall number instead.
> 
> Thanks,
> - Tom
> 


I don't understand why we would want that fallback to use numbers.  If GDB doesn't
know about pipe2 (like it does now), it's a GDB bug that needs to be fixed.  I don't
see why we would want to adjust the test instead of fixing GDB.

Simon

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH, v2][gdb/testsuite] Handle pipe2 syscall in gdb.base/catch-syscall.exp
  2022-05-05 13:23   ` [PATCH, v2][gdb/testsuite] Handle pipe2 syscall in gdb.base/catch-syscall.exp Simon Marchi
@ 2022-05-09 10:18     ` Tom de Vries
  0 siblings, 0 replies; 22+ messages in thread
From: Tom de Vries @ 2022-05-09 10:18 UTC (permalink / raw)
  To: Simon Marchi, gdb-patches

[-- Attachment #1: Type: text/plain, Size: 2528 bytes --]

On 5/5/22 15:23, Simon Marchi wrote:
> On 2022-05-05 07:47, Tom de Vries via Gdb-patches wrote:
>> On 5/3/22 16:57, Tom de Vries wrote:
>>> Hi,
>>>
>>> When running test-case gdb.reverse/pipe-reverse.exp on openSUSE Tumbleweed,
>>> I run into:
>>> ...
>>> (gdb) continue^M
>>> Continuing.^M
>>> ^M
>>> Catchpoint 2 (returned from syscall pipe2), in pipe () from /lib64/libc.so.6^M
>>> (gdb) FAIL: gdb.base/catch-syscall.exp: without arguments: \
>>>     syscall pipe has returned
>>> ...
>>>
>>> The current glibc on Tumbleweed is 2.35, which contains commit
>>> "linux: Implement pipe in terms of __NR_pipe2", and consequently syscall pipe2
>>> is used in stead of syscall pipe.
>>>
>>> Fix this by detecting whether syscall pipe or pipe2 is used before running the tests.
>>>
>>> Tested on x86_64-linux, specifically on:
>>> - openSUSE Tumbleweed (with glibc 2.35), and
>>> - openSUSE Leap 15.3 (with glibc 2.31).
>>>
>>> Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29056
>>>
>>> Any comments?
>>>
>>
>> I'm submitting a v2.  I found out that with target board unix/-m32, pipe2 is not recognized as syscall name (which I'll fix in a follow-up patch), so I made the test robust against this, by using the syscall number instead.
>>
>> Thanks,
>> - Tom
>>
> 
> 
> I don't understand why we would want that fallback to use numbers.  If GDB doesn't
> know about pipe2 (like it does now), it's a GDB bug that needs to be fixed.  I don't
> see why we would want to adjust the test instead of fixing GDB.

There are two things tested here in conjunction in the test-case:
- whether gdb knowns the name of a syscall
- whether the syscall can be caught by gdb

Currently, if the test for the first part fails, we have no usable 
information on the second part.

I tried to make these things independently testable, with the idea that 
this makes the test give more information.  So, I'm not proposing to fix 
a test instead of fixing gdb.  I'm proposing to fix the test such that I 
can more precisely link a single FAIL -> PASS to a gdb fix.

It could be argued that the second part actually is the interesting 
part.  If gdb doesn't know the name of a syscall, a user can always 
lookup the number and use that instead.  But if there is a problem 
catching that syscall, the user cannot work around that, so that is good 
to know about.

But ok, perhaps I'm overthinking things here, and it does makes the 
test-case more complicated, so ... committed this version that only uses 
the name of the syscall.

Thanks,
- Tom

[-- Attachment #2: 0001-gdb-testsuite-Handle-pipe2-syscall-in-gdb.base-catch-syscall.exp.patch --]
[-- Type: text/x-patch, Size: 4176 bytes --]

[gdb/testsuite] Handle pipe2 syscall in gdb.base/catch-syscall.exp

When running test-case gdb.reverse/pipe-reverse.exp on openSUSE Tumbleweed,
I run into:
...
(gdb) continue^M
Continuing.^M
^M
Catchpoint 2 (returned from syscall pipe2), in pipe () from /lib64/libc.so.6^M
(gdb) FAIL: gdb.base/catch-syscall.exp: without arguments: \
  syscall pipe has returned
...

The current glibc on Tumbleweed is 2.35, which contains commit
"linux: Implement pipe in terms of __NR_pipe2", and consequently syscall pipe2
is used instead of syscall pipe.

Fix this by detecting whether syscall pipe or pipe2 is used before running the
tests.

Tested on x86_64-linux, specifically on:
- openSUSE Tumbleweed (with glibc 2.35), and
- openSUSE Leap 15.3 (with glibc 2.31).

On openSUSE Tumbleweed + target board unix/-m32, this exposes:
...
(gdb) catch syscall pipe2^M
Unknown syscall name 'pipe2'.^M
...
which will be fixed in a folllow-up patch.

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29056

---
 gdb/testsuite/gdb.base/catch-syscall.c   |  3 +-
 gdb/testsuite/gdb.base/catch-syscall.exp | 69 ++++++++++++++++++++++++++++----
 2 files changed, 64 insertions(+), 8 deletions(-)

diff --git a/gdb/testsuite/gdb.base/catch-syscall.c b/gdb/testsuite/gdb.base/catch-syscall.c
index 0ab96318d3e..8c252a06b20 100644
--- a/gdb/testsuite/gdb.base/catch-syscall.c
+++ b/gdb/testsuite/gdb.base/catch-syscall.c
@@ -24,7 +24,8 @@ int chroot_syscall = SYS_chroot;
 int read_syscall = SYS_read;
 #ifdef SYS_pipe
 int pipe_syscall = SYS_pipe;
-#else
+#endif
+#ifdef SYS_pipe2
 int pipe2_syscall = SYS_pipe2;
 #endif
 int write_syscall = SYS_write;
diff --git a/gdb/testsuite/gdb.base/catch-syscall.exp b/gdb/testsuite/gdb.base/catch-syscall.exp
index a5dfd02411b..1427dfece6d 100644
--- a/gdb/testsuite/gdb.base/catch-syscall.exp
+++ b/gdb/testsuite/gdb.base/catch-syscall.exp
@@ -669,35 +669,90 @@ proc fill_all_syscalls_numbers {} {
     set unknown_syscall_number [get_integer_valueof "unknown_syscall" -1]
 }
 
-# Set up the vector all_syscalls.
+# Set up the vector all_syscalls.  Returns 1 upon success, 0 upon failure.
 
 proc setup_all_syscalls {} {
     global all_syscalls
     global gdb_prompt
+    global decimal
 
     # They are ordered according to the file, so do not change this.
     lappend all_syscalls "close"
     lappend all_syscalls "chroot"
 
+    if { ![runto_main] } {
+	return 0
+    }
+
     # SYS_pipe doesn't exist on aarch64 kernel.
     set test "check SYS_pipe"
+    set have_SYS_pipe 0
     gdb_test_multiple "p pipe_syscall" $test {
-	-re " = .*$gdb_prompt $" {
+	-re -wrap " = $decimal" {
 	    pass $test
-	    lappend all_syscalls "pipe"
+	    set have_SYS_pipe 1
 	}
-	-re "No symbol .*$gdb_prompt $" {
+	-re -wrap "No symbol .*" {
 	    pass $test
-	    # SYS_pipe isn't defined, use SYS_pipe2 instead.
-	    lappend all_syscalls "pipe2"
+	}
+    }
+
+    set test "check SYS_pipe2"
+    set have_SYS_pipe2 0
+    gdb_test_multiple "p pipe2_syscall" $test {
+	-re -wrap " = $decimal" {
+	    pass $test
+	    set have_SYS_pipe2 1
+	}
+	-re -wrap "No symbol .*" {
+	    pass $test
+	}
+    }
+
+    if { $have_SYS_pipe == 0 && $have_SYS_pipe2 == 0 } {
+	return 0
+    }
+
+    with_test_prefix "determine pipe syscall" {
+	set line [gdb_get_line_number "pipe (fd)"]
+	gdb_test "break $line"
+	gdb_continue_to_breakpoint "before pipe call"
+	if { $have_SYS_pipe } {
+	    gdb_test "catch syscall pipe"
+	}
+	if { $have_SYS_pipe2 } {
+	    gdb_test "catch syscall pipe2"
+	}
+	set ok 0
+	gdb_test_multiple "continue" "" {
+	    -re -wrap "Catchpoint $decimal \\(call to syscall pipe\\).*" {
+		lappend all_syscalls pipe
+		pass $gdb_test_name
+		set ok 1
+	    }
+	    -re -wrap "Catchpoint $decimal \\(call to syscall pipe2\\).*" {
+		lappend all_syscalls pipe2
+		pass $gdb_test_name
+		set ok 1
+	    }
+	    -re -wrap "" {
+		fail $gdb_test_name
+	    }
+	}
+	if { ! $ok } {
+	    return 0
 	}
     }
 
     lappend all_syscalls "write"
     lappend all_syscalls "read"
+
+    return 1
 }
 
-setup_all_syscalls
+if { ![setup_all_syscalls] } {
+    return -1
+}
 
 # Fill all the syscalls numbers before starting anything.
 fill_all_syscalls_numbers

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH][gdb] Add gdb/syscalls/Makefile
  2022-05-05 13:20     ` Simon Marchi
@ 2022-05-09 10:26       ` Tom de Vries
  2022-05-09 14:41         ` Simon Marchi
  2022-05-09 10:39       ` [PATCH][gdb] Update syscalls/{amd64,i386}-linux.xml Tom de Vries
  1 sibling, 1 reply; 22+ messages in thread
From: Tom de Vries @ 2022-05-09 10:26 UTC (permalink / raw)
  To: Simon Marchi, gdb-patches; +Cc: Sergio Durigan Junior

[-- Attachment #1: Type: text/plain, Size: 1557 bytes --]

[ Re: [PATCH][gdb/tdep] Support catch syscall pipe2 for i386 ]

On 5/5/22 15:20, Simon Marchi wrote:
>> [gdb/tdep] Support catch syscall pipe2 for i386
>>
>> With test-case gdb.base/catch-syscall.exp and target board unix/-m32, we run
>> into:
>> ...
>> (gdb) catch syscall pipe2^M
>> Unknown syscall name 'pipe2'.^M
>> (gdb) FAIL: gdb.base/catch-syscall.exp: determine pipe syscall: catch syscall pipe2
>> ...
>>
>> Fix this by:
>> - adding a pipe2 entry in gdb/syscalls/i386-linux.xml.in, and
>> - regenerating gdb/syscalls/i386-linux.xml using
>>    "xsltproc --output i386-linux.xml apply-defaults.xsl i386-linux.xml.in".
> 	
> The patch LGTM, assuming this is the right number for pipe2 :).
> 

Thanks for the review, committed.

And, I'd say, yes, the correct number:
...
$ grep pipe2 ./arch/x86/entry/syscalls/syscall_32.tbl
331     i386    pipe2                   sys_pipe2
...

> I suppose we are missing more syscalls than that, given that new
> syscalls are added regularly, e.g. rseq:
> 
>    https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d7822b1e24f2
> 
> As long as rseq is not listed in this file, it means a user wouldn't be
> able to use "catch syscall rseq", I suppose?  We would need a procedure
> to add new syscalls periodically.
> 
> Could we add a simple Makefile (as a separate patch) that contains these
> xslt commands?  I think you searched a little bit how those files were
> originally generated, so it would be nice to save the trouble in the
> future.

Good idea, how about this?

Thanks,
- Tom

[-- Attachment #2: 0002-gdb-Add-gdb-syscalls-Makefile.patch --]
[-- Type: text/x-patch, Size: 19066 bytes --]

[gdb] Add gdb/syscalls/Makefile

Add a Makefile in gdb/syscalls that can be used to translate
gdb/syscalls/*.xml.in into gdb/syscalls/*.xml.

Calling make reveals that bfin-linux.xml is missing, so add it.

Tested on x86_64-linux.

---
 gdb/syscalls/Makefile       |  25 ++++
 gdb/syscalls/bfin-linux.xml | 323 ++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 348 insertions(+)

diff --git a/gdb/syscalls/Makefile b/gdb/syscalls/Makefile
new file mode 100644
index 00000000000..f9550f5a44d
--- /dev/null
+++ b/gdb/syscalls/Makefile
@@ -0,0 +1,25 @@
+# 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 <http://www.gnu.org/licenses/>.
+
+# Generate .xml files from .xml.in files.
+
+FILES=$(shell ls *.xml.in | grep -v linux-defaults.xml.in | sed 's/\.in//')
+
+all:
+	for f in $(FILES); do \
+	  xsltproc --output $$f apply-defaults.xsl $$f.in; \
+	done
diff --git a/gdb/syscalls/bfin-linux.xml b/gdb/syscalls/bfin-linux.xml
new file mode 100644
index 00000000000..efaeb9bfde7
--- /dev/null
+++ b/gdb/syscalls/bfin-linux.xml
@@ -0,0 +1,323 @@
+<?xml version="1.0"?>
+<!DOCTYPE syscalls_info SYSTEM "gdb-syscalls.dtd">
+<!-- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+
+     Copying and distribution of this file, with or without modification,
+     are permitted in any medium without royalty provided the copyright
+     notice and this notice are preserved.  -->
+<!-- This file was generated using the following file:
+
+     gawk '$2 ~ /^__NR_/ { gsub(/__NR_/,""); print "  <syscall name=\"" $2 "\" number=\"" $3 "\"/>" }'
+     /usr/src/linux/arch/blackfin/include/asm/unistd.h
+
+     The file mentioned above belongs to the Linux Kernel.  -->
+<syscalls_info>
+  <syscall name="restart_syscall" number="0"/>
+  <syscall name="exit" number="1" groups="process"/>
+  <syscall name="fork" number="2" groups="process"/>
+  <syscall name="read" number="3" groups="descriptor"/>
+  <syscall name="write" number="4" groups="descriptor"/>
+  <syscall name="open" number="5" groups="descriptor,file"/>
+  <syscall name="close" number="6" groups="descriptor"/>
+  <syscall name="creat" number="8" groups="descriptor,file"/>
+  <syscall name="link" number="9" groups="file"/>
+  <syscall name="unlink" number="10" groups="file"/>
+  <syscall name="execve" number="11" groups="file,process"/>
+  <syscall name="chdir" number="12" groups="file"/>
+  <syscall name="time" number="13"/>
+  <syscall name="mknod" number="14" groups="file"/>
+  <syscall name="chmod" number="15" groups="file"/>
+  <syscall name="chown" number="16" groups="file"/>
+  <syscall name="lseek" number="19" groups="descriptor"/>
+  <syscall name="getpid" number="20"/>
+  <syscall name="mount" number="21" groups="file"/>
+  <syscall name="setuid" number="23"/>
+  <syscall name="getuid" number="24"/>
+  <syscall name="stime" number="25"/>
+  <syscall name="ptrace" number="26"/>
+  <syscall name="alarm" number="27"/>
+  <syscall name="pause" number="29" groups="signal"/>
+  <syscall name="access" number="33" groups="file"/>
+  <syscall name="nice" number="34"/>
+  <syscall name="sync" number="36"/>
+  <syscall name="kill" number="37" groups="signal"/>
+  <syscall name="rename" number="38" groups="file"/>
+  <syscall name="mkdir" number="39" groups="file"/>
+  <syscall name="rmdir" number="40" groups="file"/>
+  <syscall name="dup" number="41" groups="descriptor"/>
+  <syscall name="pipe" number="42" groups="descriptor"/>
+  <syscall name="times" number="43"/>
+  <syscall name="brk" number="45" groups="memory"/>
+  <syscall name="setgid" number="46"/>
+  <syscall name="getgid" number="47"/>
+  <syscall name="geteuid" number="49"/>
+  <syscall name="getegid" number="50"/>
+  <syscall name="acct" number="51" groups="file"/>
+  <syscall name="umount2" number="52" groups="file"/>
+  <syscall name="ioctl" number="54" groups="descriptor"/>
+  <syscall name="fcntl" number="55" groups="descriptor"/>
+  <syscall name="setpgid" number="57"/>
+  <syscall name="umask" number="60"/>
+  <syscall name="chroot" number="61" groups="file"/>
+  <syscall name="ustat" number="62"/>
+  <syscall name="dup2" number="63" groups="descriptor"/>
+  <syscall name="getppid" number="64"/>
+  <syscall name="getpgrp" number="65"/>
+  <syscall name="setsid" number="66"/>
+  <syscall name="sgetmask" number="68" groups="signal"/>
+  <syscall name="ssetmask" number="69" groups="signal"/>
+  <syscall name="setreuid" number="70"/>
+  <syscall name="setregid" number="71"/>
+  <syscall name="sethostname" number="74"/>
+  <syscall name="setrlimit" number="75"/>
+  <syscall name="getrusage" number="77"/>
+  <syscall name="gettimeofday" number="78"/>
+  <syscall name="settimeofday" number="79"/>
+  <syscall name="getgroups" number="80"/>
+  <syscall name="setgroups" number="81"/>
+  <syscall name="symlink" number="83" groups="file"/>
+  <syscall name="readlink" number="85" groups="file"/>
+  <syscall name="reboot" number="88"/>
+  <syscall name="munmap" number="91" groups="memory"/>
+  <syscall name="truncate" number="92" groups="file"/>
+  <syscall name="ftruncate" number="93" groups="descriptor"/>
+  <syscall name="fchmod" number="94" groups="descriptor"/>
+  <syscall name="fchown" number="95" groups="descriptor"/>
+  <syscall name="getpriority" number="96"/>
+  <syscall name="setpriority" number="97"/>
+  <syscall name="statfs" number="99" groups="file"/>
+  <syscall name="fstatfs" number="100" groups="descriptor"/>
+  <syscall name="syslog" number="103"/>
+  <syscall name="setitimer" number="104"/>
+  <syscall name="getitimer" number="105"/>
+  <syscall name="stat" number="106" groups="file"/>
+  <syscall name="lstat" number="107" groups="file"/>
+  <syscall name="fstat" number="108" groups="descriptor"/>
+  <syscall name="vhangup" number="111"/>
+  <syscall name="wait4" number="114" groups="process"/>
+  <syscall name="sysinfo" number="116"/>
+  <syscall name="fsync" number="118" groups="descriptor"/>
+  <syscall name="clone" number="120" groups="process"/>
+  <syscall name="setdomainname" number="121"/>
+  <syscall name="uname" number="122"/>
+  <syscall name="adjtimex" number="124"/>
+  <syscall name="mprotect" number="125" groups="memory"/>
+  <syscall name="init_module" number="128"/>
+  <syscall name="delete_module" number="129"/>
+  <syscall name="quotactl" number="131" groups="file"/>
+  <syscall name="getpgid" number="132"/>
+  <syscall name="fchdir" number="133" groups="descriptor"/>
+  <syscall name="bdflush" number="134"/>
+  <syscall name="personality" number="136"/>
+  <syscall name="setfsuid" number="138"/>
+  <syscall name="setfsgid" number="139"/>
+  <syscall name="_llseek" number="140" groups="descriptor"/>
+  <syscall name="getdents" number="141" groups="descriptor"/>
+  <syscall name="flock" number="143" groups="descriptor"/>
+  <syscall name="readv" number="145" groups="descriptor"/>
+  <syscall name="writev" number="146" groups="descriptor"/>
+  <syscall name="getsid" number="147"/>
+  <syscall name="fdatasync" number="148" groups="descriptor"/>
+  <syscall name="_sysctl" number="149"/>
+  <syscall name="sched_setparam" number="154"/>
+  <syscall name="sched_getparam" number="155"/>
+  <syscall name="sched_setscheduler" number="156"/>
+  <syscall name="sched_getscheduler" number="157"/>
+  <syscall name="sched_yield" number="158"/>
+  <syscall name="sched_get_priority_max" number="159"/>
+  <syscall name="sched_get_priority_min" number="160"/>
+  <syscall name="sched_rr_get_interval" number="161"/>
+  <syscall name="nanosleep" number="162"/>
+  <syscall name="mremap" number="163" groups="memory"/>
+  <syscall name="setresuid" number="164"/>
+  <syscall name="getresuid" number="165"/>
+  <syscall name="nfsservctl" number="169"/>
+  <syscall name="setresgid" number="170"/>
+  <syscall name="getresgid" number="171"/>
+  <syscall name="prctl" number="172"/>
+  <syscall name="rt_sigreturn" number="173" groups="signal"/>
+  <syscall name="rt_sigaction" number="174" groups="signal"/>
+  <syscall name="rt_sigprocmask" number="175" groups="signal"/>
+  <syscall name="rt_sigpending" number="176" groups="signal"/>
+  <syscall name="rt_sigtimedwait" number="177" groups="signal"/>
+  <syscall name="rt_sigqueueinfo" number="178" groups="signal"/>
+  <syscall name="rt_sigsuspend" number="179" groups="signal"/>
+  <syscall name="pread" number="180" groups="descriptor"/>
+  <syscall name="pwrite" number="181" groups="descriptor"/>
+  <syscall name="lchown" number="182" groups="file"/>
+  <syscall name="getcwd" number="183" groups="file"/>
+  <syscall name="capget" number="184"/>
+  <syscall name="capset" number="185"/>
+  <syscall name="sigaltstack" number="186" groups="signal"/>
+  <syscall name="sendfile" number="187" groups="descriptor,network"/>
+  <syscall name="vfork" number="190" groups="process"/>
+  <syscall name="getrlimit" number="191"/>
+  <syscall name="mmap2" number="192" groups="descriptor,memory"/>
+  <syscall name="truncate64" number="193" groups="file"/>
+  <syscall name="ftruncate64" number="194" groups="descriptor"/>
+  <syscall name="stat64" number="195" groups="file"/>
+  <syscall name="lstat64" number="196" groups="file"/>
+  <syscall name="fstat64" number="197" groups="descriptor"/>
+  <syscall name="chown32" number="198" groups="file"/>
+  <syscall name="getuid32" number="199"/>
+  <syscall name="getgid32" number="200"/>
+  <syscall name="geteuid32" number="201"/>
+  <syscall name="getegid32" number="202"/>
+  <syscall name="setreuid32" number="203"/>
+  <syscall name="setregid32" number="204"/>
+  <syscall name="getgroups32" number="205"/>
+  <syscall name="setgroups32" number="206"/>
+  <syscall name="fchown32" number="207" groups="descriptor"/>
+  <syscall name="setresuid32" number="208"/>
+  <syscall name="getresuid32" number="209"/>
+  <syscall name="setresgid32" number="210"/>
+  <syscall name="getresgid32" number="211"/>
+  <syscall name="lchown32" number="212" groups="file"/>
+  <syscall name="setuid32" number="213"/>
+  <syscall name="setgid32" number="214"/>
+  <syscall name="setfsuid32" number="215"/>
+  <syscall name="setfsgid32" number="216"/>
+  <syscall name="pivot_root" number="217" groups="file"/>
+  <syscall name="getdents64" number="220" groups="descriptor"/>
+  <syscall name="fcntl64" number="221" groups="descriptor"/>
+  <syscall name="gettid" number="224"/>
+  <syscall name="readahead" number="225" groups="descriptor"/>
+  <syscall name="setxattr" number="226" groups="file"/>
+  <syscall name="lsetxattr" number="227" groups="file"/>
+  <syscall name="fsetxattr" number="228" groups="descriptor"/>
+  <syscall name="getxattr" number="229" groups="file"/>
+  <syscall name="lgetxattr" number="230" groups="file"/>
+  <syscall name="fgetxattr" number="231" groups="descriptor"/>
+  <syscall name="listxattr" number="232" groups="file"/>
+  <syscall name="llistxattr" number="233" groups="file"/>
+  <syscall name="flistxattr" number="234" groups="descriptor"/>
+  <syscall name="removexattr" number="235" groups="file"/>
+  <syscall name="lremovexattr" number="236" groups="file"/>
+  <syscall name="fremovexattr" number="237" groups="descriptor"/>
+  <syscall name="tkill" number="238" groups="signal"/>
+  <syscall name="sendfile64" number="239" groups="descriptor,network"/>
+  <syscall name="futex" number="240"/>
+  <syscall name="sched_setaffinity" number="241"/>
+  <syscall name="sched_getaffinity" number="242"/>
+  <syscall name="io_setup" number="245"/>
+  <syscall name="io_destroy" number="246"/>
+  <syscall name="io_getevents" number="247"/>
+  <syscall name="io_submit" number="248"/>
+  <syscall name="io_cancel" number="249"/>
+  <syscall name="exit_group" number="252" groups="process"/>
+  <syscall name="lookup_dcookie" number="253"/>
+  <syscall name="bfin_spinlock" number="254"/>
+  <syscall name="epoll_create" number="255" groups="descriptor"/>
+  <syscall name="epoll_ctl" number="256" groups="descriptor"/>
+  <syscall name="epoll_wait" number="257" groups="descriptor"/>
+  <syscall name="set_tid_address" number="259"/>
+  <syscall name="timer_create" number="260"/>
+  <syscall name="timer_settime" number="261"/>
+  <syscall name="timer_gettime" number="262"/>
+  <syscall name="timer_getoverrun" number="263"/>
+  <syscall name="timer_delete" number="264"/>
+  <syscall name="clock_settime" number="265"/>
+  <syscall name="clock_gettime" number="266"/>
+  <syscall name="clock_getres" number="267"/>
+  <syscall name="clock_nanosleep" number="268"/>
+  <syscall name="statfs64" number="269" groups="file"/>
+  <syscall name="fstatfs64" number="270" groups="descriptor"/>
+  <syscall name="tgkill" number="271" groups="signal"/>
+  <syscall name="utimes" number="272" groups="file"/>
+  <syscall name="fadvise64_64" number="273" groups="descriptor"/>
+  <syscall name="mq_open" number="278"/>
+  <syscall name="mq_unlink" number="279"/>
+  <syscall name="mq_timedsend" number="280"/>
+  <syscall name="mq_timedreceive" number="281"/>
+  <syscall name="mq_notify" number="282"/>
+  <syscall name="mq_getsetattr" number="283"/>
+  <syscall name="kexec_load" number="284"/>
+  <syscall name="waitid" number="285" groups="process"/>
+  <syscall name="add_key" number="286"/>
+  <syscall name="request_key" number="287"/>
+  <syscall name="keyctl" number="288"/>
+  <syscall name="ioprio_set" number="289"/>
+  <syscall name="ioprio_get" number="290"/>
+  <syscall name="inotify_init" number="291" groups="descriptor"/>
+  <syscall name="inotify_add_watch" number="292" groups="descriptor"/>
+  <syscall name="inotify_rm_watch" number="293" groups="descriptor"/>
+  <syscall name="openat" number="295" groups="descriptor,file"/>
+  <syscall name="mkdirat" number="296" groups="descriptor,file"/>
+  <syscall name="mknodat" number="297" groups="descriptor,file"/>
+  <syscall name="fchownat" number="298" groups="descriptor,file"/>
+  <syscall name="futimesat" number="299" groups="descriptor,file"/>
+  <syscall name="fstatat64" number="300" groups="descriptor,file"/>
+  <syscall name="unlinkat" number="301" groups="descriptor,file"/>
+  <syscall name="renameat" number="302" groups="descriptor,file"/>
+  <syscall name="linkat" number="303" groups="descriptor,file"/>
+  <syscall name="symlinkat" number="304" groups="descriptor,file"/>
+  <syscall name="readlinkat" number="305" groups="descriptor,file"/>
+  <syscall name="fchmodat" number="306" groups="descriptor,file"/>
+  <syscall name="faccessat" number="307" groups="descriptor,file"/>
+  <syscall name="pselect6" number="308" groups="descriptor"/>
+  <syscall name="ppoll" number="309" groups="descriptor"/>
+  <syscall name="unshare" number="310" groups="process"/>
+  <syscall name="sram_alloc" number="311"/>
+  <syscall name="sram_free" number="312"/>
+  <syscall name="dma_memcpy" number="313"/>
+  <syscall name="accept" number="314" groups="network"/>
+  <syscall name="bind" number="315" groups="network"/>
+  <syscall name="connect" number="316" groups="network"/>
+  <syscall name="getpeername" number="317" groups="network"/>
+  <syscall name="getsockname" number="318" groups="network"/>
+  <syscall name="getsockopt" number="319" groups="network"/>
+  <syscall name="listen" number="320" groups="network"/>
+  <syscall name="recv" number="321" groups="network"/>
+  <syscall name="recvfrom" number="322" groups="network"/>
+  <syscall name="recvmsg" number="323" groups="network"/>
+  <syscall name="send" number="324" groups="network"/>
+  <syscall name="sendmsg" number="325" groups="network"/>
+  <syscall name="sendto" number="326" groups="network"/>
+  <syscall name="setsockopt" number="327" groups="network"/>
+  <syscall name="shutdown" number="328" groups="network"/>
+  <syscall name="socket" number="329" groups="network"/>
+  <syscall name="socketpair" number="330" groups="network"/>
+  <syscall name="semctl" number="331" groups="ipc"/>
+  <syscall name="semget" number="332" groups="ipc"/>
+  <syscall name="semop" number="333" groups="ipc"/>
+  <syscall name="msgctl" number="334" groups="ipc"/>
+  <syscall name="msgget" number="335" groups="ipc"/>
+  <syscall name="msgrcv" number="336" groups="ipc"/>
+  <syscall name="msgsnd" number="337" groups="ipc"/>
+  <syscall name="shmat" number="338" groups="ipc,memory"/>
+  <syscall name="shmctl" number="339" groups="ipc"/>
+  <syscall name="shmdt" number="340" groups="ipc,memory"/>
+  <syscall name="shmget" number="341" groups="ipc"/>
+  <syscall name="splice" number="342" groups="descriptor"/>
+  <syscall name="sync_file_range" number="343" groups="descriptor"/>
+  <syscall name="tee" number="344" groups="descriptor"/>
+  <syscall name="vmsplice" number="345" groups="descriptor"/>
+  <syscall name="epoll_pwait" number="346" groups="descriptor"/>
+  <syscall name="utimensat" number="347" groups="descriptor,file"/>
+  <syscall name="signalfd" number="348" groups="descriptor,signal"/>
+  <syscall name="timerfd_create" number="349" groups="descriptor"/>
+  <syscall name="eventfd" number="350" groups="descriptor"/>
+  <syscall name="pread64" number="351" groups="descriptor"/>
+  <syscall name="pwrite64" number="352" groups="descriptor"/>
+  <syscall name="fadvise64" number="353" groups="descriptor"/>
+  <syscall name="set_robust_list" number="354"/>
+  <syscall name="get_robust_list" number="355"/>
+  <syscall name="fallocate" number="356" groups="descriptor"/>
+  <syscall name="semtimedop" number="357" groups="ipc"/>
+  <syscall name="timerfd_settime" number="358" groups="descriptor"/>
+  <syscall name="timerfd_gettime" number="359" groups="descriptor"/>
+  <syscall name="signalfd4" number="360" groups="descriptor,signal"/>
+  <syscall name="eventfd2" number="361" groups="descriptor"/>
+  <syscall name="epoll_create1" number="362" groups="descriptor"/>
+  <syscall name="dup3" number="363" groups="descriptor"/>
+  <syscall name="pipe2" number="364" groups="descriptor"/>
+  <syscall name="inotify_init1" number="365" groups="descriptor"/>
+  <syscall name="preadv" number="366" groups="descriptor"/>
+  <syscall name="pwritev" number="367" groups="descriptor"/>
+  <syscall name="rt_tgsigqueueinfo" number="368" groups="process,signal"/>
+  <syscall name="perf_event_open" number="369" groups="descriptor"/>
+  <syscall name="recvmmsg" number="370" groups="network"/>
+  <syscall name="fanotify_init" number="371" groups="descriptor"/>
+  <syscall name="fanotify_mark" number="372" groups="descriptor,file"/>
+  <syscall name="prlimit64" number="373"/>
+</syscalls_info>

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH][gdb] Update syscalls/{amd64,i386}-linux.xml
  2022-05-05 13:20     ` Simon Marchi
  2022-05-09 10:26       ` [PATCH][gdb] Add gdb/syscalls/Makefile Tom de Vries
@ 2022-05-09 10:39       ` Tom de Vries
  2022-05-09 14:48         ` Simon Marchi
                           ` (2 more replies)
  1 sibling, 3 replies; 22+ messages in thread
From: Tom de Vries @ 2022-05-09 10:39 UTC (permalink / raw)
  To: Simon Marchi, gdb-patches

[-- Attachment #1: Type: text/plain, Size: 1135 bytes --]

[ was: Re: [PATCH][gdb/tdep] Support catch syscall pipe2 for i386 ]

On 5/5/22 15:20, Simon Marchi wrote:
> I suppose we are missing more syscalls than that, given that new
> syscalls are added regularly, e.g. rseq:
> 
>    https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d7822b1e24f2
> 
> As long as rseq is not listed in this file, it means a user wouldn't be
> able to use "catch syscall rseq", I suppose?  We would need a procedure
> to add new syscalls periodically.
> 

I've wrote a script gdb/syscalls/update-linux.sh that can be used to do 
the update automatically.  The idea being that target maintainers can 
run the script on their platform and do the update.

AFAICT, the previous approach was to generate directly from kernel 
sources.  The benefit there is that you don't need access to a specific 
platform to do the update (but you'd still need access to test I suppose).

[ FWIW, it seems the linux kernel migrated to some syscall.tbl approach, 
and perhaps generating from there could be an option. ]

Anyway, this script at least adds one option to do the update.

WDYT?

Thanks,
- Tom

[-- Attachment #2: 0003-gdb-Update-syscalls-amd64-i386-linux.xml.patch --]
[-- Type: text/x-patch, Size: 26153 bytes --]

[gdb] Update syscalls/{amd64,i386}-linux.xml

- Add a script syscalls/gen-header.py, based on syscalls/arm-linux.py.
- Add a script syscalls/update-linux.sh (alongside update-freebsd.sh and
  update-netbsd.sh).
- Use syscalls/update-linux.sh to update syscalls/{amd64,i386}-linux.xml.in.
- Regenerate syscalls/{amd64,i386}-linux.xml using syscalls/Makefile.

In gdb/syscalls/i386-linux.xml.in, updating has the following notable effect:
...
-  <syscall name="madvise1" number="220"/>
-  <syscall name="getdents64" number="221"/>
-  <syscall name="fcntl64" number="222"/>
+  <syscall name="getdents64" number="220"/>
+  <syscall name="fcntl64" number="221"/>
...

I've verified in ./arch/x86/entry/syscalls/syscall_32.tbl that the numbers are
correct.

Tested on x86_64-linux.

---
 gdb/syscalls/amd64-linux.xml    |  69 +++++++++++++++++++++-
 gdb/syscalls/amd64-linux.xml.in |  70 +++++++++++++++++++++-
 gdb/syscalls/gen-header.py      |  33 +++++++++++
 gdb/syscalls/i386-linux.xml     | 126 +++++++++++++++++++++++++++++++++++++--
 gdb/syscalls/i386-linux.xml.in  | 127 ++++++++++++++++++++++++++++++++++++++--
 gdb/syscalls/update-linux.sh    |  60 +++++++++++++++++++
 6 files changed, 471 insertions(+), 14 deletions(-)

diff --git a/gdb/syscalls/amd64-linux.xml b/gdb/syscalls/amd64-linux.xml
index 481431d3121..231308b72b7 100644
--- a/gdb/syscalls/amd64-linux.xml
+++ b/gdb/syscalls/amd64-linux.xml
@@ -6,8 +6,8 @@
      are permitted in any medium without royalty provided the copyright
      notice and this notice are preserved.  -->
 <!-- This file was generated using the following file:
-     
-     /usr/src/linux/arch/x86/include/asm/unistd_64.h
+
+     <sys/syscall.h>
 
      The file mentioned above belongs to the Linux Kernel.  -->
 <syscalls_info>
@@ -308,4 +308,69 @@
   <syscall name="inotify_init1" number="294" groups="descriptor"/>
   <syscall name="preadv" number="295" groups="descriptor"/>
   <syscall name="pwritev" number="296" groups="descriptor"/>
+  <syscall name="rt_tgsigqueueinfo" number="297" groups="process,signal"/>
+  <syscall name="perf_event_open" number="298" groups="descriptor"/>
+  <syscall name="recvmmsg" number="299" groups="network"/>
+  <syscall name="fanotify_init" number="300" groups="descriptor"/>
+  <syscall name="fanotify_mark" number="301" groups="descriptor,file"/>
+  <syscall name="prlimit64" number="302"/>
+  <syscall name="name_to_handle_at" number="303" groups="descriptor,file"/>
+  <syscall name="open_by_handle_at" number="304" groups="descriptor"/>
+  <syscall name="clock_adjtime" number="305"/>
+  <syscall name="syncfs" number="306" groups="descriptor"/>
+  <syscall name="sendmmsg" number="307" groups="network"/>
+  <syscall name="setns" number="308" groups="descriptor"/>
+  <syscall name="getcpu" number="309"/>
+  <syscall name="process_vm_readv" number="310"/>
+  <syscall name="process_vm_writev" number="311"/>
+  <syscall name="kcmp" number="312"/>
+  <syscall name="finit_module" number="313" groups="descriptor"/>
+  <syscall name="sched_setattr" number="314"/>
+  <syscall name="sched_getattr" number="315"/>
+  <syscall name="renameat2" number="316"/>
+  <syscall name="seccomp" number="317"/>
+  <syscall name="getrandom" number="318"/>
+  <syscall name="memfd_create" number="319"/>
+  <syscall name="kexec_file_load" number="320"/>
+  <syscall name="bpf" number="321"/>
+  <syscall name="execveat" number="322"/>
+  <syscall name="userfaultfd" number="323"/>
+  <syscall name="membarrier" number="324"/>
+  <syscall name="mlock2" number="325"/>
+  <syscall name="copy_file_range" number="326"/>
+  <syscall name="preadv2" number="327"/>
+  <syscall name="pwritev2" number="328"/>
+  <syscall name="pkey_mprotect" number="329"/>
+  <syscall name="pkey_alloc" number="330"/>
+  <syscall name="pkey_free" number="331"/>
+  <syscall name="statx" number="332"/>
+  <syscall name="io_pgetevents" number="333"/>
+  <syscall name="rseq" number="334"/>
+  <syscall name="pidfd_send_signal" number="424"/>
+  <syscall name="io_uring_setup" number="425"/>
+  <syscall name="io_uring_enter" number="426"/>
+  <syscall name="io_uring_register" number="427"/>
+  <syscall name="open_tree" number="428"/>
+  <syscall name="move_mount" number="429"/>
+  <syscall name="fsopen" number="430"/>
+  <syscall name="fsconfig" number="431"/>
+  <syscall name="fsmount" number="432"/>
+  <syscall name="fspick" number="433"/>
+  <syscall name="pidfd_open" number="434"/>
+  <syscall name="clone3" number="435"/>
+  <syscall name="close_range" number="436"/>
+  <syscall name="openat2" number="437"/>
+  <syscall name="pidfd_getfd" number="438"/>
+  <syscall name="faccessat2" number="439"/>
+  <syscall name="process_madvise" number="440"/>
+  <syscall name="epoll_pwait2" number="441"/>
+  <syscall name="mount_setattr" number="442"/>
+  <syscall name="quotactl_fd" number="443"/>
+  <syscall name="landlock_create_ruleset" number="444"/>
+  <syscall name="landlock_add_rule" number="445"/>
+  <syscall name="landlock_restrict_self" number="446"/>
+  <syscall name="memfd_secret" number="447"/>
+  <syscall name="process_mrelease" number="448"/>
+  <syscall name="futex_waitv" number="449"/>
+  <syscall name="set_mempolicy_home_node" number="450"/>
 </syscalls_info>
diff --git a/gdb/syscalls/amd64-linux.xml.in b/gdb/syscalls/amd64-linux.xml.in
index 3b0834b874b..404d445988e 100644
--- a/gdb/syscalls/amd64-linux.xml.in
+++ b/gdb/syscalls/amd64-linux.xml.in
@@ -8,11 +8,12 @@
 <!DOCTYPE feature SYSTEM "gdb-syscalls.dtd">
 
 <!-- This file was generated using the following file:
-     
-     /usr/src/linux/arch/x86/include/asm/unistd_64.h
+
+     <sys/syscall.h>
 
      The file mentioned above belongs to the Linux Kernel.  -->
 
+
 <syscalls_info>
   <syscall name="read" number="0"/>
   <syscall name="write" number="1"/>
@@ -311,4 +312,69 @@
   <syscall name="inotify_init1" number="294"/>
   <syscall name="preadv" number="295"/>
   <syscall name="pwritev" number="296"/>
+  <syscall name="rt_tgsigqueueinfo" number="297"/>
+  <syscall name="perf_event_open" number="298"/>
+  <syscall name="recvmmsg" number="299"/>
+  <syscall name="fanotify_init" number="300"/>
+  <syscall name="fanotify_mark" number="301"/>
+  <syscall name="prlimit64" number="302"/>
+  <syscall name="name_to_handle_at" number="303"/>
+  <syscall name="open_by_handle_at" number="304"/>
+  <syscall name="clock_adjtime" number="305"/>
+  <syscall name="syncfs" number="306"/>
+  <syscall name="sendmmsg" number="307"/>
+  <syscall name="setns" number="308"/>
+  <syscall name="getcpu" number="309"/>
+  <syscall name="process_vm_readv" number="310"/>
+  <syscall name="process_vm_writev" number="311"/>
+  <syscall name="kcmp" number="312"/>
+  <syscall name="finit_module" number="313"/>
+  <syscall name="sched_setattr" number="314"/>
+  <syscall name="sched_getattr" number="315"/>
+  <syscall name="renameat2" number="316"/>
+  <syscall name="seccomp" number="317"/>
+  <syscall name="getrandom" number="318"/>
+  <syscall name="memfd_create" number="319"/>
+  <syscall name="kexec_file_load" number="320"/>
+  <syscall name="bpf" number="321"/>
+  <syscall name="execveat" number="322"/>
+  <syscall name="userfaultfd" number="323"/>
+  <syscall name="membarrier" number="324"/>
+  <syscall name="mlock2" number="325"/>
+  <syscall name="copy_file_range" number="326"/>
+  <syscall name="preadv2" number="327"/>
+  <syscall name="pwritev2" number="328"/>
+  <syscall name="pkey_mprotect" number="329"/>
+  <syscall name="pkey_alloc" number="330"/>
+  <syscall name="pkey_free" number="331"/>
+  <syscall name="statx" number="332"/>
+  <syscall name="io_pgetevents" number="333"/>
+  <syscall name="rseq" number="334"/>
+  <syscall name="pidfd_send_signal" number="424"/>
+  <syscall name="io_uring_setup" number="425"/>
+  <syscall name="io_uring_enter" number="426"/>
+  <syscall name="io_uring_register" number="427"/>
+  <syscall name="open_tree" number="428"/>
+  <syscall name="move_mount" number="429"/>
+  <syscall name="fsopen" number="430"/>
+  <syscall name="fsconfig" number="431"/>
+  <syscall name="fsmount" number="432"/>
+  <syscall name="fspick" number="433"/>
+  <syscall name="pidfd_open" number="434"/>
+  <syscall name="clone3" number="435"/>
+  <syscall name="close_range" number="436"/>
+  <syscall name="openat2" number="437"/>
+  <syscall name="pidfd_getfd" number="438"/>
+  <syscall name="faccessat2" number="439"/>
+  <syscall name="process_madvise" number="440"/>
+  <syscall name="epoll_pwait2" number="441"/>
+  <syscall name="mount_setattr" number="442"/>
+  <syscall name="quotactl_fd" number="443"/>
+  <syscall name="landlock_create_ruleset" number="444"/>
+  <syscall name="landlock_add_rule" number="445"/>
+  <syscall name="landlock_restrict_self" number="446"/>
+  <syscall name="memfd_secret" number="447"/>
+  <syscall name="process_mrelease" number="448"/>
+  <syscall name="futex_waitv" number="449"/>
+  <syscall name="set_mempolicy_home_node" number="450"/>
 </syscalls_info>
diff --git a/gdb/syscalls/gen-header.py b/gdb/syscalls/gen-header.py
new file mode 100644
index 00000000000..d449688bd75
--- /dev/null
+++ b/gdb/syscalls/gen-header.py
@@ -0,0 +1,33 @@
+# Copyright (C) 2013-2022 Free Software Foundation, Inc.
+
+# Copying and distribution of this file, with or without modification,
+# are permitted in any medium without royalty provided the copyright
+# notice and this notice are preserved.  This file is offered as-is,
+# without any warranty.
+
+import sys
+import re
+import time
+
+infname = sys.argv[1]
+
+print(
+    """\
+<?xml version="1.0"?>
+<!-- Copyright (C) 2009-%s Free Software Foundation, Inc.
+
+     Copying and distribution of this file, with or without modification,
+     are permitted in any medium without royalty provided the copyright
+     notice and this notice are preserved.  -->
+
+<!DOCTYPE feature SYSTEM "gdb-syscalls.dtd">
+
+<!-- This file was generated using the following file:
+
+     %s
+
+     The file mentioned above belongs to the Linux Kernel.  -->
+
+"""
+    % (time.strftime("%Y"), infname)
+)
diff --git a/gdb/syscalls/i386-linux.xml b/gdb/syscalls/i386-linux.xml
index 4a7a2345186..c4b28111388 100644
--- a/gdb/syscalls/i386-linux.xml
+++ b/gdb/syscalls/i386-linux.xml
@@ -6,8 +6,8 @@
      are permitted in any medium without royalty provided the copyright
      notice and this notice are preserved.  -->
 <!-- This file was generated using the following file:
-     
-     /usr/src/linux/arch/x86/include/asm/unistd_32.h
+
+     <sys/syscall.h>
 
      The file mentioned above belongs to the Linux Kernel.  -->
 <syscalls_info>
@@ -231,9 +231,8 @@
   <syscall name="pivot_root" number="217" groups="file"/>
   <syscall name="mincore" number="218" groups="memory"/>
   <syscall name="madvise" number="219" groups="memory"/>
-  <syscall name="madvise1" number="220"/>
-  <syscall name="getdents64" number="221" groups="descriptor"/>
-  <syscall name="fcntl64" number="222" groups="descriptor"/>
+  <syscall name="getdents64" number="220" groups="descriptor"/>
+  <syscall name="fcntl64" number="221" groups="descriptor"/>
   <syscall name="gettid" number="224"/>
   <syscall name="readahead" number="225" groups="descriptor"/>
   <syscall name="setxattr" number="226" groups="file"/>
@@ -334,5 +333,122 @@
   <syscall name="eventfd" number="323" groups="descriptor"/>
   <syscall name="fallocate" number="324" groups="descriptor"/>
   <syscall name="timerfd_settime" number="325" groups="descriptor"/>
+  <syscall name="timerfd_gettime" number="326" groups="descriptor"/>
+  <syscall name="signalfd4" number="327" groups="descriptor,signal"/>
+  <syscall name="eventfd2" number="328" groups="descriptor"/>
+  <syscall name="epoll_create1" number="329" groups="descriptor"/>
+  <syscall name="dup3" number="330" groups="descriptor"/>
   <syscall name="pipe2" number="331" groups="descriptor"/>
+  <syscall name="inotify_init1" number="332" groups="descriptor"/>
+  <syscall name="preadv" number="333" groups="descriptor"/>
+  <syscall name="pwritev" number="334" groups="descriptor"/>
+  <syscall name="rt_tgsigqueueinfo" number="335" groups="process,signal"/>
+  <syscall name="perf_event_open" number="336" groups="descriptor"/>
+  <syscall name="recvmmsg" number="337" groups="network"/>
+  <syscall name="fanotify_init" number="338" groups="descriptor"/>
+  <syscall name="fanotify_mark" number="339" groups="descriptor,file"/>
+  <syscall name="prlimit64" number="340"/>
+  <syscall name="name_to_handle_at" number="341" groups="descriptor,file"/>
+  <syscall name="open_by_handle_at" number="342" groups="descriptor"/>
+  <syscall name="clock_adjtime" number="343"/>
+  <syscall name="syncfs" number="344" groups="descriptor"/>
+  <syscall name="sendmmsg" number="345" groups="network"/>
+  <syscall name="setns" number="346" groups="descriptor"/>
+  <syscall name="process_vm_readv" number="347"/>
+  <syscall name="process_vm_writev" number="348"/>
+  <syscall name="kcmp" number="349"/>
+  <syscall name="finit_module" number="350" groups="descriptor"/>
+  <syscall name="sched_setattr" number="351"/>
+  <syscall name="sched_getattr" number="352"/>
+  <syscall name="renameat2" number="353"/>
+  <syscall name="seccomp" number="354"/>
+  <syscall name="getrandom" number="355"/>
+  <syscall name="memfd_create" number="356"/>
+  <syscall name="bpf" number="357"/>
+  <syscall name="execveat" number="358"/>
+  <syscall name="socket" number="359" groups="network"/>
+  <syscall name="socketpair" number="360" groups="network"/>
+  <syscall name="bind" number="361" groups="network"/>
+  <syscall name="connect" number="362" groups="network"/>
+  <syscall name="listen" number="363" groups="network"/>
+  <syscall name="accept4" number="364" groups="network"/>
+  <syscall name="getsockopt" number="365" groups="network"/>
+  <syscall name="setsockopt" number="366" groups="network"/>
+  <syscall name="getsockname" number="367" groups="network"/>
+  <syscall name="getpeername" number="368" groups="network"/>
+  <syscall name="sendto" number="369" groups="network"/>
+  <syscall name="sendmsg" number="370" groups="network"/>
+  <syscall name="recvfrom" number="371" groups="network"/>
+  <syscall name="recvmsg" number="372" groups="network"/>
+  <syscall name="shutdown" number="373" groups="network"/>
+  <syscall name="userfaultfd" number="374"/>
+  <syscall name="membarrier" number="375"/>
+  <syscall name="mlock2" number="376"/>
+  <syscall name="copy_file_range" number="377"/>
+  <syscall name="preadv2" number="378"/>
+  <syscall name="pwritev2" number="379"/>
+  <syscall name="pkey_mprotect" number="380"/>
+  <syscall name="pkey_alloc" number="381"/>
+  <syscall name="pkey_free" number="382"/>
+  <syscall name="statx" number="383"/>
+  <syscall name="arch_prctl" number="384" groups="process"/>
+  <syscall name="io_pgetevents" number="385"/>
+  <syscall name="rseq" number="386"/>
+  <syscall name="semget" number="393" groups="ipc"/>
+  <syscall name="semctl" number="394" groups="ipc"/>
+  <syscall name="shmget" number="395" groups="ipc"/>
+  <syscall name="shmctl" number="396" groups="ipc"/>
+  <syscall name="shmat" number="397" groups="ipc,memory"/>
+  <syscall name="shmdt" number="398" groups="ipc,memory"/>
+  <syscall name="msgget" number="399" groups="ipc"/>
+  <syscall name="msgsnd" number="400" groups="ipc"/>
+  <syscall name="msgrcv" number="401" groups="ipc"/>
+  <syscall name="msgctl" number="402" groups="ipc"/>
+  <syscall name="clock_gettime64" number="403"/>
+  <syscall name="clock_settime64" number="404"/>
+  <syscall name="clock_adjtime64" number="405"/>
+  <syscall name="clock_getres_time64" number="406"/>
+  <syscall name="clock_nanosleep_time64" number="407"/>
+  <syscall name="timer_gettime64" number="408"/>
+  <syscall name="timer_settime64" number="409"/>
+  <syscall name="timerfd_gettime64" number="410"/>
+  <syscall name="timerfd_settime64" number="411"/>
+  <syscall name="utimensat_time64" number="412"/>
+  <syscall name="pselect6_time64" number="413"/>
+  <syscall name="ppoll_time64" number="414"/>
+  <syscall name="io_pgetevents_time64" number="416"/>
+  <syscall name="recvmmsg_time64" number="417"/>
+  <syscall name="mq_timedsend_time64" number="418"/>
+  <syscall name="mq_timedreceive_time64" number="419"/>
+  <syscall name="semtimedop_time64" number="420"/>
+  <syscall name="rt_sigtimedwait_time64" number="421"/>
+  <syscall name="futex_time64" number="422"/>
+  <syscall name="sched_rr_get_interval_time64" number="423"/>
+  <syscall name="pidfd_send_signal" number="424"/>
+  <syscall name="io_uring_setup" number="425"/>
+  <syscall name="io_uring_enter" number="426"/>
+  <syscall name="io_uring_register" number="427"/>
+  <syscall name="open_tree" number="428"/>
+  <syscall name="move_mount" number="429"/>
+  <syscall name="fsopen" number="430"/>
+  <syscall name="fsconfig" number="431"/>
+  <syscall name="fsmount" number="432"/>
+  <syscall name="fspick" number="433"/>
+  <syscall name="pidfd_open" number="434"/>
+  <syscall name="clone3" number="435"/>
+  <syscall name="close_range" number="436"/>
+  <syscall name="openat2" number="437"/>
+  <syscall name="pidfd_getfd" number="438"/>
+  <syscall name="faccessat2" number="439"/>
+  <syscall name="process_madvise" number="440"/>
+  <syscall name="epoll_pwait2" number="441"/>
+  <syscall name="mount_setattr" number="442"/>
+  <syscall name="quotactl_fd" number="443"/>
+  <syscall name="landlock_create_ruleset" number="444"/>
+  <syscall name="landlock_add_rule" number="445"/>
+  <syscall name="landlock_restrict_self" number="446"/>
+  <syscall name="memfd_secret" number="447"/>
+  <syscall name="process_mrelease" number="448"/>
+  <syscall name="futex_waitv" number="449"/>
+  <syscall name="set_mempolicy_home_node" number="450"/>
 </syscalls_info>
diff --git a/gdb/syscalls/i386-linux.xml.in b/gdb/syscalls/i386-linux.xml.in
index 13c4d1d99d4..549b59565f3 100644
--- a/gdb/syscalls/i386-linux.xml.in
+++ b/gdb/syscalls/i386-linux.xml.in
@@ -8,11 +8,12 @@
 <!DOCTYPE feature SYSTEM "gdb-syscalls.dtd">
 
 <!-- This file was generated using the following file:
-     
-     /usr/src/linux/arch/x86/include/asm/unistd_32.h
+
+     <sys/syscall.h>
 
      The file mentioned above belongs to the Linux Kernel.  -->
 
+
 <syscalls_info>
   <syscall name="restart_syscall" number="0"/>
   <syscall name="exit" number="1"/>
@@ -234,9 +235,8 @@
   <syscall name="pivot_root" number="217"/>
   <syscall name="mincore" number="218"/>
   <syscall name="madvise" number="219"/>
-  <syscall name="madvise1" number="220"/>
-  <syscall name="getdents64" number="221"/>
-  <syscall name="fcntl64" number="222"/>
+  <syscall name="getdents64" number="220"/>
+  <syscall name="fcntl64" number="221"/>
   <syscall name="gettid" number="224"/>
   <syscall name="readahead" number="225"/>
   <syscall name="setxattr" number="226"/>
@@ -337,5 +337,122 @@
   <syscall name="eventfd" number="323"/>
   <syscall name="fallocate" number="324"/>
   <syscall name="timerfd_settime" number="325"/>
+  <syscall name="timerfd_gettime" number="326"/>
+  <syscall name="signalfd4" number="327"/>
+  <syscall name="eventfd2" number="328"/>
+  <syscall name="epoll_create1" number="329"/>
+  <syscall name="dup3" number="330"/>
   <syscall name="pipe2" number="331"/>
+  <syscall name="inotify_init1" number="332"/>
+  <syscall name="preadv" number="333"/>
+  <syscall name="pwritev" number="334"/>
+  <syscall name="rt_tgsigqueueinfo" number="335"/>
+  <syscall name="perf_event_open" number="336"/>
+  <syscall name="recvmmsg" number="337"/>
+  <syscall name="fanotify_init" number="338"/>
+  <syscall name="fanotify_mark" number="339"/>
+  <syscall name="prlimit64" number="340"/>
+  <syscall name="name_to_handle_at" number="341"/>
+  <syscall name="open_by_handle_at" number="342"/>
+  <syscall name="clock_adjtime" number="343"/>
+  <syscall name="syncfs" number="344"/>
+  <syscall name="sendmmsg" number="345"/>
+  <syscall name="setns" number="346"/>
+  <syscall name="process_vm_readv" number="347"/>
+  <syscall name="process_vm_writev" number="348"/>
+  <syscall name="kcmp" number="349"/>
+  <syscall name="finit_module" number="350"/>
+  <syscall name="sched_setattr" number="351"/>
+  <syscall name="sched_getattr" number="352"/>
+  <syscall name="renameat2" number="353"/>
+  <syscall name="seccomp" number="354"/>
+  <syscall name="getrandom" number="355"/>
+  <syscall name="memfd_create" number="356"/>
+  <syscall name="bpf" number="357"/>
+  <syscall name="execveat" number="358"/>
+  <syscall name="socket" number="359"/>
+  <syscall name="socketpair" number="360"/>
+  <syscall name="bind" number="361"/>
+  <syscall name="connect" number="362"/>
+  <syscall name="listen" number="363"/>
+  <syscall name="accept4" number="364"/>
+  <syscall name="getsockopt" number="365"/>
+  <syscall name="setsockopt" number="366"/>
+  <syscall name="getsockname" number="367"/>
+  <syscall name="getpeername" number="368"/>
+  <syscall name="sendto" number="369"/>
+  <syscall name="sendmsg" number="370"/>
+  <syscall name="recvfrom" number="371"/>
+  <syscall name="recvmsg" number="372"/>
+  <syscall name="shutdown" number="373"/>
+  <syscall name="userfaultfd" number="374"/>
+  <syscall name="membarrier" number="375"/>
+  <syscall name="mlock2" number="376"/>
+  <syscall name="copy_file_range" number="377"/>
+  <syscall name="preadv2" number="378"/>
+  <syscall name="pwritev2" number="379"/>
+  <syscall name="pkey_mprotect" number="380"/>
+  <syscall name="pkey_alloc" number="381"/>
+  <syscall name="pkey_free" number="382"/>
+  <syscall name="statx" number="383"/>
+  <syscall name="arch_prctl" number="384"/>
+  <syscall name="io_pgetevents" number="385"/>
+  <syscall name="rseq" number="386"/>
+  <syscall name="semget" number="393"/>
+  <syscall name="semctl" number="394"/>
+  <syscall name="shmget" number="395"/>
+  <syscall name="shmctl" number="396"/>
+  <syscall name="shmat" number="397"/>
+  <syscall name="shmdt" number="398"/>
+  <syscall name="msgget" number="399"/>
+  <syscall name="msgsnd" number="400"/>
+  <syscall name="msgrcv" number="401"/>
+  <syscall name="msgctl" number="402"/>
+  <syscall name="clock_gettime64" number="403"/>
+  <syscall name="clock_settime64" number="404"/>
+  <syscall name="clock_adjtime64" number="405"/>
+  <syscall name="clock_getres_time64" number="406"/>
+  <syscall name="clock_nanosleep_time64" number="407"/>
+  <syscall name="timer_gettime64" number="408"/>
+  <syscall name="timer_settime64" number="409"/>
+  <syscall name="timerfd_gettime64" number="410"/>
+  <syscall name="timerfd_settime64" number="411"/>
+  <syscall name="utimensat_time64" number="412"/>
+  <syscall name="pselect6_time64" number="413"/>
+  <syscall name="ppoll_time64" number="414"/>
+  <syscall name="io_pgetevents_time64" number="416"/>
+  <syscall name="recvmmsg_time64" number="417"/>
+  <syscall name="mq_timedsend_time64" number="418"/>
+  <syscall name="mq_timedreceive_time64" number="419"/>
+  <syscall name="semtimedop_time64" number="420"/>
+  <syscall name="rt_sigtimedwait_time64" number="421"/>
+  <syscall name="futex_time64" number="422"/>
+  <syscall name="sched_rr_get_interval_time64" number="423"/>
+  <syscall name="pidfd_send_signal" number="424"/>
+  <syscall name="io_uring_setup" number="425"/>
+  <syscall name="io_uring_enter" number="426"/>
+  <syscall name="io_uring_register" number="427"/>
+  <syscall name="open_tree" number="428"/>
+  <syscall name="move_mount" number="429"/>
+  <syscall name="fsopen" number="430"/>
+  <syscall name="fsconfig" number="431"/>
+  <syscall name="fsmount" number="432"/>
+  <syscall name="fspick" number="433"/>
+  <syscall name="pidfd_open" number="434"/>
+  <syscall name="clone3" number="435"/>
+  <syscall name="close_range" number="436"/>
+  <syscall name="openat2" number="437"/>
+  <syscall name="pidfd_getfd" number="438"/>
+  <syscall name="faccessat2" number="439"/>
+  <syscall name="process_madvise" number="440"/>
+  <syscall name="epoll_pwait2" number="441"/>
+  <syscall name="mount_setattr" number="442"/>
+  <syscall name="quotactl_fd" number="443"/>
+  <syscall name="landlock_create_ruleset" number="444"/>
+  <syscall name="landlock_add_rule" number="445"/>
+  <syscall name="landlock_restrict_self" number="446"/>
+  <syscall name="memfd_secret" number="447"/>
+  <syscall name="process_mrelease" number="448"/>
+  <syscall name="futex_waitv" number="449"/>
+  <syscall name="set_mempolicy_home_node" number="450"/>
 </syscalls_info>
diff --git a/gdb/syscalls/update-linux.sh b/gdb/syscalls/update-linux.sh
new file mode 100755
index 00000000000..aadfdfccf81
--- /dev/null
+++ b/gdb/syscalls/update-linux.sh
@@ -0,0 +1,60 @@
+#!/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 <http://www.gnu.org/licenses/>.
+
+# Used to generate .xml.in files, like so:
+#
+# ./update-linux.sh amd64-linux.xml.in
+# ./update-linux.sh i386-linux.xml.in -m32
+
+
+if [ $# -lt 1 ]; then
+    echo "file argument needed"
+    exit 1
+fi
+
+f="$1"
+shift
+
+if [ ! -f $f ]; then
+    echo "cannot find $f"
+    exit 1
+fi
+
+(
+    python gen-header.py "<sys/syscall.h>"
+
+    tmp=$(mktemp)
+
+    echo '#include <sys/syscall.h>' \
+	| gcc -E - -dD "$@" \
+	| egrep '#define __NR_' \
+		> $tmp
+
+    echo '<syscalls_info>'
+
+    while read line; do
+	name=$(echo $line | awk '{print $2}' | sed 's/^__NR_//')
+	nr=$(echo $line | awk '{print $3}')
+	echo "  <syscall name=\"$name\" number=\"$nr\"/>"
+    done < $tmp
+
+    echo '</syscalls_info>'
+) > $f
+
+rm -f $tmp

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH][gdb] Add gdb/syscalls/Makefile
  2022-05-09 10:26       ` [PATCH][gdb] Add gdb/syscalls/Makefile Tom de Vries
@ 2022-05-09 14:41         ` Simon Marchi
  2022-05-09 14:46           ` Tom de Vries
  0 siblings, 1 reply; 22+ messages in thread
From: Simon Marchi @ 2022-05-09 14:41 UTC (permalink / raw)
  To: Tom de Vries, gdb-patches; +Cc: Sergio Durigan Junior

On 2022-05-09 06:26, Tom de Vries via Gdb-patches wrote:
> [ Re: [PATCH][gdb/tdep] Support catch syscall pipe2 for i386 ]
> 
> On 5/5/22 15:20, Simon Marchi wrote:
>>> [gdb/tdep] Support catch syscall pipe2 for i386
>>>
>>> With test-case gdb.base/catch-syscall.exp and target board unix/-m32, we run
>>> into:
>>> ...
>>> (gdb) catch syscall pipe2^M
>>> Unknown syscall name 'pipe2'.^M
>>> (gdb) FAIL: gdb.base/catch-syscall.exp: determine pipe syscall: catch syscall pipe2
>>> ...
>>>
>>> Fix this by:
>>> - adding a pipe2 entry in gdb/syscalls/i386-linux.xml.in, and
>>> - regenerating gdb/syscalls/i386-linux.xml using
>>>    "xsltproc --output i386-linux.xml apply-defaults.xsl i386-linux.xml.in".
>>     
>> The patch LGTM, assuming this is the right number for pipe2 :).
>>
> 
> Thanks for the review, committed.
> 
> And, I'd say, yes, the correct number:
> ...
> $ grep pipe2 ./arch/x86/entry/syscalls/syscall_32.tbl
> 331     i386    pipe2                   sys_pipe2
> ...
> 
>> I suppose we are missing more syscalls than that, given that new
>> syscalls are added regularly, e.g. rseq:
>>
>>    https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d7822b1e24f2
>>
>> As long as rseq is not listed in this file, it means a user wouldn't be
>> able to use "catch syscall rseq", I suppose?  We would need a procedure
>> to add new syscalls periodically.
>>
>> Could we add a simple Makefile (as a separate patch) that contains these
>> xslt commands?  I think you searched a little bit how those files were
>> originally generated, so it would be nice to save the trouble in the
>> future.
> 
> Good idea, how about this?
> 
> Thanks,
> - Tom

LGTM.  I would probably use a hand-written list of files in the Makefile
rather than the "shell ls", but it the end it doesn't matter much.

Simon

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH][gdb] Add gdb/syscalls/Makefile
  2022-05-09 14:41         ` Simon Marchi
@ 2022-05-09 14:46           ` Tom de Vries
  0 siblings, 0 replies; 22+ messages in thread
From: Tom de Vries @ 2022-05-09 14:46 UTC (permalink / raw)
  To: Simon Marchi, gdb-patches

On 5/9/22 16:41, Simon Marchi wrote:
> On 2022-05-09 06:26, Tom de Vries via Gdb-patches wrote:
>> [ Re: [PATCH][gdb/tdep] Support catch syscall pipe2 for i386 ]
>>
>> On 5/5/22 15:20, Simon Marchi wrote:
>>>> [gdb/tdep] Support catch syscall pipe2 for i386
>>>>
>>>> With test-case gdb.base/catch-syscall.exp and target board unix/-m32, we run
>>>> into:
>>>> ...
>>>> (gdb) catch syscall pipe2^M
>>>> Unknown syscall name 'pipe2'.^M
>>>> (gdb) FAIL: gdb.base/catch-syscall.exp: determine pipe syscall: catch syscall pipe2
>>>> ...
>>>>
>>>> Fix this by:
>>>> - adding a pipe2 entry in gdb/syscalls/i386-linux.xml.in, and
>>>> - regenerating gdb/syscalls/i386-linux.xml using
>>>>     "xsltproc --output i386-linux.xml apply-defaults.xsl i386-linux.xml.in".
>>>      
>>> The patch LGTM, assuming this is the right number for pipe2 :).
>>>
>>
>> Thanks for the review, committed.
>>
>> And, I'd say, yes, the correct number:
>> ...
>> $ grep pipe2 ./arch/x86/entry/syscalls/syscall_32.tbl
>> 331     i386    pipe2                   sys_pipe2
>> ...
>>
>>> I suppose we are missing more syscalls than that, given that new
>>> syscalls are added regularly, e.g. rseq:
>>>
>>>     https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d7822b1e24f2
>>>
>>> As long as rseq is not listed in this file, it means a user wouldn't be
>>> able to use "catch syscall rseq", I suppose?  We would need a procedure
>>> to add new syscalls periodically.
>>>
>>> Could we add a simple Makefile (as a separate patch) that contains these
>>> xslt commands?  I think you searched a little bit how those files were
>>> originally generated, so it would be nice to save the trouble in the
>>> future.
>>
>> Good idea, how about this?
>>
>> Thanks,
>> - Tom
> 
> LGTM.  I would probably use a hand-written list of files in the Makefile
> rather than the "shell ls", but it the end it doesn't matter much.

Ack, committed ... and CC-ing bfin authorized committer about the new 
gdb/syscalls/bfin-linux.xml file.

Thanks,
- Tom

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH][gdb] Update syscalls/{amd64,i386}-linux.xml
  2022-05-09 10:39       ` [PATCH][gdb] Update syscalls/{amd64,i386}-linux.xml Tom de Vries
@ 2022-05-09 14:48         ` Simon Marchi
  2022-05-09 15:29           ` Tom de Vries
  2022-05-09 17:19         ` Tom Tromey
  2022-05-10 11:53         ` Tom de Vries
  2 siblings, 1 reply; 22+ messages in thread
From: Simon Marchi @ 2022-05-09 14:48 UTC (permalink / raw)
  To: Tom de Vries, gdb-patches

On 2022-05-09 06:39, Tom de Vries wrote:
> [ was: Re: [PATCH][gdb/tdep] Support catch syscall pipe2 for i386 ]
> 
> On 5/5/22 15:20, Simon Marchi wrote:
>> I suppose we are missing more syscalls than that, given that new
>> syscalls are added regularly, e.g. rseq:
>>
>>    https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d7822b1e24f2
>>
>> As long as rseq is not listed in this file, it means a user wouldn't be
>> able to use "catch syscall rseq", I suppose?  We would need a procedure
>> to add new syscalls periodically.
>>
> 
> I've wrote a script gdb/syscalls/update-linux.sh that can be used to do the update automatically.  The idea being that target maintainers can run the script on their platform and do the update.
> 
> AFAICT, the previous approach was to generate directly from kernel sources.  The benefit there is that you don't need access to a specific platform to do the update (but you'd still need access to test I suppose).
> 
> [ FWIW, it seems the linux kernel migrated to some syscall.tbl approach, and perhaps generating from there could be an option. ]
> 
> Anyway, this script at least adds one option to do the update.
> 
> WDYT?

One flake8 warning:

gen-header.py:9:1: F401 're' imported but unused

I would also suggest running shellcheck on the .sh script and
fix the issues, it gives generally good suggestions.

LGTM otherwise.

So, was this:

-  <syscall name="madvise1" number="220"/>
-  <syscall name="getdents64" number="221" groups="descriptor"/>
-  <syscall name="fcntl64" number="222" groups="descriptor"/>
+  <syscall name="getdents64" number="220" groups="descriptor"/>
+  <syscall name="fcntl64" number="221" groups="descriptor"/>

an existing mistake in our syscall list?

Simon

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH][gdb] Update syscalls/{amd64,i386}-linux.xml
  2022-05-09 14:48         ` Simon Marchi
@ 2022-05-09 15:29           ` Tom de Vries
  2022-05-09 15:40             ` Andreas Schwab
  0 siblings, 1 reply; 22+ messages in thread
From: Tom de Vries @ 2022-05-09 15:29 UTC (permalink / raw)
  To: Simon Marchi, gdb-patches

[-- Attachment #1: Type: text/plain, Size: 2491 bytes --]

On 5/9/22 16:48, Simon Marchi wrote:
> On 2022-05-09 06:39, Tom de Vries wrote:
>> [ was: Re: [PATCH][gdb/tdep] Support catch syscall pipe2 for i386 ]
>>
>> On 5/5/22 15:20, Simon Marchi wrote:
>>> I suppose we are missing more syscalls than that, given that new
>>> syscalls are added regularly, e.g. rseq:
>>>
>>>     https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d7822b1e24f2
>>>
>>> As long as rseq is not listed in this file, it means a user wouldn't be
>>> able to use "catch syscall rseq", I suppose?  We would need a procedure
>>> to add new syscalls periodically.
>>>
>>
>> I've wrote a script gdb/syscalls/update-linux.sh that can be used to do the update automatically.  The idea being that target maintainers can run the script on their platform and do the update.
>>
>> AFAICT, the previous approach was to generate directly from kernel sources.  The benefit there is that you don't need access to a specific platform to do the update (but you'd still need access to test I suppose).
>>
>> [ FWIW, it seems the linux kernel migrated to some syscall.tbl approach, and perhaps generating from there could be an option. ]
>>
>> Anyway, this script at least adds one option to do the update.
>>
>> WDYT?
> 
> One flake8 warning:
> 
> gen-header.py:9:1: F401 're' imported but unused
> 
> I would also suggest running shellcheck on the .sh script and
> fix the issues, it gives generally good suggestions.
> 
> LGTM otherwise.
> 

Thanks for pointing those out, fixed.

> So, was this:
> 
> -  <syscall name="madvise1" number="220"/>
> -  <syscall name="getdents64" number="221" groups="descriptor"/>
> -  <syscall name="fcntl64" number="222" groups="descriptor"/>
> +  <syscall name="getdents64" number="220" groups="descriptor"/>
> +  <syscall name="fcntl64" number="221" groups="descriptor"/>
> 
> an existing mistake in our syscall list?
> 

That's my understanding, yes.

If you look at older linux sources, say v3.0, you find the file 
mentioned as generation source ( arch/x86/include/asm/unistd_32.h ) , 
and it contains:
...
#define __NR_madvise            219
#define __NR_madvise1           219     /* delete when C lib stub is 
removed */
#define __NR_getdents64         220
#define __NR_fcntl64            221
/* 223 is unused */
#define __NR_gettid             224
...

It's possible that the generation scripts that were used didn't deal 
correctly with the repetition of the syscall number.

Committed as attached.

Thanks,
- Tom

[-- Attachment #2: 0001-gdb-Update-syscalls-amd64-i386-linux.xml.patch --]
[-- Type: text/x-patch, Size: 26164 bytes --]

[gdb] Update syscalls/{amd64,i386}-linux.xml

- Add a script syscalls/gen-header.py, based on syscalls/arm-linux.py.
- Add a script syscalls/update-linux.sh (alongside update-freebsd.sh and
  update-netbsd.sh).
- Use syscalls/update-linux.sh to update syscalls/{amd64,i386}-linux.xml.in.
- Regenerate syscalls/{amd64,i386}-linux.xml using syscalls/Makefile.

In gdb/syscalls/i386-linux.xml.in, updating has the following notable effect:
...
-  <syscall name="madvise1" number="220"/>
-  <syscall name="getdents64" number="221"/>
-  <syscall name="fcntl64" number="222"/>
+  <syscall name="getdents64" number="220"/>
+  <syscall name="fcntl64" number="221"/>
...

I've verified in ./arch/x86/entry/syscalls/syscall_32.tbl that the numbers are
correct.

Tested on x86_64-linux.

---
 gdb/syscalls/amd64-linux.xml    |  69 +++++++++++++++++++++-
 gdb/syscalls/amd64-linux.xml.in |  70 +++++++++++++++++++++-
 gdb/syscalls/gen-header.py      |  32 ++++++++++
 gdb/syscalls/i386-linux.xml     | 126 +++++++++++++++++++++++++++++++++++++--
 gdb/syscalls/i386-linux.xml.in  | 127 ++++++++++++++++++++++++++++++++++++++--
 gdb/syscalls/update-linux.sh    |  60 +++++++++++++++++++
 6 files changed, 470 insertions(+), 14 deletions(-)

diff --git a/gdb/syscalls/amd64-linux.xml b/gdb/syscalls/amd64-linux.xml
index 481431d3121..231308b72b7 100644
--- a/gdb/syscalls/amd64-linux.xml
+++ b/gdb/syscalls/amd64-linux.xml
@@ -6,8 +6,8 @@
      are permitted in any medium without royalty provided the copyright
      notice and this notice are preserved.  -->
 <!-- This file was generated using the following file:
-     
-     /usr/src/linux/arch/x86/include/asm/unistd_64.h
+
+     <sys/syscall.h>
 
      The file mentioned above belongs to the Linux Kernel.  -->
 <syscalls_info>
@@ -308,4 +308,69 @@
   <syscall name="inotify_init1" number="294" groups="descriptor"/>
   <syscall name="preadv" number="295" groups="descriptor"/>
   <syscall name="pwritev" number="296" groups="descriptor"/>
+  <syscall name="rt_tgsigqueueinfo" number="297" groups="process,signal"/>
+  <syscall name="perf_event_open" number="298" groups="descriptor"/>
+  <syscall name="recvmmsg" number="299" groups="network"/>
+  <syscall name="fanotify_init" number="300" groups="descriptor"/>
+  <syscall name="fanotify_mark" number="301" groups="descriptor,file"/>
+  <syscall name="prlimit64" number="302"/>
+  <syscall name="name_to_handle_at" number="303" groups="descriptor,file"/>
+  <syscall name="open_by_handle_at" number="304" groups="descriptor"/>
+  <syscall name="clock_adjtime" number="305"/>
+  <syscall name="syncfs" number="306" groups="descriptor"/>
+  <syscall name="sendmmsg" number="307" groups="network"/>
+  <syscall name="setns" number="308" groups="descriptor"/>
+  <syscall name="getcpu" number="309"/>
+  <syscall name="process_vm_readv" number="310"/>
+  <syscall name="process_vm_writev" number="311"/>
+  <syscall name="kcmp" number="312"/>
+  <syscall name="finit_module" number="313" groups="descriptor"/>
+  <syscall name="sched_setattr" number="314"/>
+  <syscall name="sched_getattr" number="315"/>
+  <syscall name="renameat2" number="316"/>
+  <syscall name="seccomp" number="317"/>
+  <syscall name="getrandom" number="318"/>
+  <syscall name="memfd_create" number="319"/>
+  <syscall name="kexec_file_load" number="320"/>
+  <syscall name="bpf" number="321"/>
+  <syscall name="execveat" number="322"/>
+  <syscall name="userfaultfd" number="323"/>
+  <syscall name="membarrier" number="324"/>
+  <syscall name="mlock2" number="325"/>
+  <syscall name="copy_file_range" number="326"/>
+  <syscall name="preadv2" number="327"/>
+  <syscall name="pwritev2" number="328"/>
+  <syscall name="pkey_mprotect" number="329"/>
+  <syscall name="pkey_alloc" number="330"/>
+  <syscall name="pkey_free" number="331"/>
+  <syscall name="statx" number="332"/>
+  <syscall name="io_pgetevents" number="333"/>
+  <syscall name="rseq" number="334"/>
+  <syscall name="pidfd_send_signal" number="424"/>
+  <syscall name="io_uring_setup" number="425"/>
+  <syscall name="io_uring_enter" number="426"/>
+  <syscall name="io_uring_register" number="427"/>
+  <syscall name="open_tree" number="428"/>
+  <syscall name="move_mount" number="429"/>
+  <syscall name="fsopen" number="430"/>
+  <syscall name="fsconfig" number="431"/>
+  <syscall name="fsmount" number="432"/>
+  <syscall name="fspick" number="433"/>
+  <syscall name="pidfd_open" number="434"/>
+  <syscall name="clone3" number="435"/>
+  <syscall name="close_range" number="436"/>
+  <syscall name="openat2" number="437"/>
+  <syscall name="pidfd_getfd" number="438"/>
+  <syscall name="faccessat2" number="439"/>
+  <syscall name="process_madvise" number="440"/>
+  <syscall name="epoll_pwait2" number="441"/>
+  <syscall name="mount_setattr" number="442"/>
+  <syscall name="quotactl_fd" number="443"/>
+  <syscall name="landlock_create_ruleset" number="444"/>
+  <syscall name="landlock_add_rule" number="445"/>
+  <syscall name="landlock_restrict_self" number="446"/>
+  <syscall name="memfd_secret" number="447"/>
+  <syscall name="process_mrelease" number="448"/>
+  <syscall name="futex_waitv" number="449"/>
+  <syscall name="set_mempolicy_home_node" number="450"/>
 </syscalls_info>
diff --git a/gdb/syscalls/amd64-linux.xml.in b/gdb/syscalls/amd64-linux.xml.in
index 3b0834b874b..404d445988e 100644
--- a/gdb/syscalls/amd64-linux.xml.in
+++ b/gdb/syscalls/amd64-linux.xml.in
@@ -8,11 +8,12 @@
 <!DOCTYPE feature SYSTEM "gdb-syscalls.dtd">
 
 <!-- This file was generated using the following file:
-     
-     /usr/src/linux/arch/x86/include/asm/unistd_64.h
+
+     <sys/syscall.h>
 
      The file mentioned above belongs to the Linux Kernel.  -->
 
+
 <syscalls_info>
   <syscall name="read" number="0"/>
   <syscall name="write" number="1"/>
@@ -311,4 +312,69 @@
   <syscall name="inotify_init1" number="294"/>
   <syscall name="preadv" number="295"/>
   <syscall name="pwritev" number="296"/>
+  <syscall name="rt_tgsigqueueinfo" number="297"/>
+  <syscall name="perf_event_open" number="298"/>
+  <syscall name="recvmmsg" number="299"/>
+  <syscall name="fanotify_init" number="300"/>
+  <syscall name="fanotify_mark" number="301"/>
+  <syscall name="prlimit64" number="302"/>
+  <syscall name="name_to_handle_at" number="303"/>
+  <syscall name="open_by_handle_at" number="304"/>
+  <syscall name="clock_adjtime" number="305"/>
+  <syscall name="syncfs" number="306"/>
+  <syscall name="sendmmsg" number="307"/>
+  <syscall name="setns" number="308"/>
+  <syscall name="getcpu" number="309"/>
+  <syscall name="process_vm_readv" number="310"/>
+  <syscall name="process_vm_writev" number="311"/>
+  <syscall name="kcmp" number="312"/>
+  <syscall name="finit_module" number="313"/>
+  <syscall name="sched_setattr" number="314"/>
+  <syscall name="sched_getattr" number="315"/>
+  <syscall name="renameat2" number="316"/>
+  <syscall name="seccomp" number="317"/>
+  <syscall name="getrandom" number="318"/>
+  <syscall name="memfd_create" number="319"/>
+  <syscall name="kexec_file_load" number="320"/>
+  <syscall name="bpf" number="321"/>
+  <syscall name="execveat" number="322"/>
+  <syscall name="userfaultfd" number="323"/>
+  <syscall name="membarrier" number="324"/>
+  <syscall name="mlock2" number="325"/>
+  <syscall name="copy_file_range" number="326"/>
+  <syscall name="preadv2" number="327"/>
+  <syscall name="pwritev2" number="328"/>
+  <syscall name="pkey_mprotect" number="329"/>
+  <syscall name="pkey_alloc" number="330"/>
+  <syscall name="pkey_free" number="331"/>
+  <syscall name="statx" number="332"/>
+  <syscall name="io_pgetevents" number="333"/>
+  <syscall name="rseq" number="334"/>
+  <syscall name="pidfd_send_signal" number="424"/>
+  <syscall name="io_uring_setup" number="425"/>
+  <syscall name="io_uring_enter" number="426"/>
+  <syscall name="io_uring_register" number="427"/>
+  <syscall name="open_tree" number="428"/>
+  <syscall name="move_mount" number="429"/>
+  <syscall name="fsopen" number="430"/>
+  <syscall name="fsconfig" number="431"/>
+  <syscall name="fsmount" number="432"/>
+  <syscall name="fspick" number="433"/>
+  <syscall name="pidfd_open" number="434"/>
+  <syscall name="clone3" number="435"/>
+  <syscall name="close_range" number="436"/>
+  <syscall name="openat2" number="437"/>
+  <syscall name="pidfd_getfd" number="438"/>
+  <syscall name="faccessat2" number="439"/>
+  <syscall name="process_madvise" number="440"/>
+  <syscall name="epoll_pwait2" number="441"/>
+  <syscall name="mount_setattr" number="442"/>
+  <syscall name="quotactl_fd" number="443"/>
+  <syscall name="landlock_create_ruleset" number="444"/>
+  <syscall name="landlock_add_rule" number="445"/>
+  <syscall name="landlock_restrict_self" number="446"/>
+  <syscall name="memfd_secret" number="447"/>
+  <syscall name="process_mrelease" number="448"/>
+  <syscall name="futex_waitv" number="449"/>
+  <syscall name="set_mempolicy_home_node" number="450"/>
 </syscalls_info>
diff --git a/gdb/syscalls/gen-header.py b/gdb/syscalls/gen-header.py
new file mode 100644
index 00000000000..78ccdddbff6
--- /dev/null
+++ b/gdb/syscalls/gen-header.py
@@ -0,0 +1,32 @@
+# Copyright (C) 2013-2022 Free Software Foundation, Inc.
+
+# Copying and distribution of this file, with or without modification,
+# are permitted in any medium without royalty provided the copyright
+# notice and this notice are preserved.  This file is offered as-is,
+# without any warranty.
+
+import sys
+import time
+
+infname = sys.argv[1]
+
+print(
+    """\
+<?xml version="1.0"?>
+<!-- Copyright (C) 2009-%s Free Software Foundation, Inc.
+
+     Copying and distribution of this file, with or without modification,
+     are permitted in any medium without royalty provided the copyright
+     notice and this notice are preserved.  -->
+
+<!DOCTYPE feature SYSTEM "gdb-syscalls.dtd">
+
+<!-- This file was generated using the following file:
+
+     %s
+
+     The file mentioned above belongs to the Linux Kernel.  -->
+
+"""
+    % (time.strftime("%Y"), infname)
+)
diff --git a/gdb/syscalls/i386-linux.xml b/gdb/syscalls/i386-linux.xml
index 4a7a2345186..c4b28111388 100644
--- a/gdb/syscalls/i386-linux.xml
+++ b/gdb/syscalls/i386-linux.xml
@@ -6,8 +6,8 @@
      are permitted in any medium without royalty provided the copyright
      notice and this notice are preserved.  -->
 <!-- This file was generated using the following file:
-     
-     /usr/src/linux/arch/x86/include/asm/unistd_32.h
+
+     <sys/syscall.h>
 
      The file mentioned above belongs to the Linux Kernel.  -->
 <syscalls_info>
@@ -231,9 +231,8 @@
   <syscall name="pivot_root" number="217" groups="file"/>
   <syscall name="mincore" number="218" groups="memory"/>
   <syscall name="madvise" number="219" groups="memory"/>
-  <syscall name="madvise1" number="220"/>
-  <syscall name="getdents64" number="221" groups="descriptor"/>
-  <syscall name="fcntl64" number="222" groups="descriptor"/>
+  <syscall name="getdents64" number="220" groups="descriptor"/>
+  <syscall name="fcntl64" number="221" groups="descriptor"/>
   <syscall name="gettid" number="224"/>
   <syscall name="readahead" number="225" groups="descriptor"/>
   <syscall name="setxattr" number="226" groups="file"/>
@@ -334,5 +333,122 @@
   <syscall name="eventfd" number="323" groups="descriptor"/>
   <syscall name="fallocate" number="324" groups="descriptor"/>
   <syscall name="timerfd_settime" number="325" groups="descriptor"/>
+  <syscall name="timerfd_gettime" number="326" groups="descriptor"/>
+  <syscall name="signalfd4" number="327" groups="descriptor,signal"/>
+  <syscall name="eventfd2" number="328" groups="descriptor"/>
+  <syscall name="epoll_create1" number="329" groups="descriptor"/>
+  <syscall name="dup3" number="330" groups="descriptor"/>
   <syscall name="pipe2" number="331" groups="descriptor"/>
+  <syscall name="inotify_init1" number="332" groups="descriptor"/>
+  <syscall name="preadv" number="333" groups="descriptor"/>
+  <syscall name="pwritev" number="334" groups="descriptor"/>
+  <syscall name="rt_tgsigqueueinfo" number="335" groups="process,signal"/>
+  <syscall name="perf_event_open" number="336" groups="descriptor"/>
+  <syscall name="recvmmsg" number="337" groups="network"/>
+  <syscall name="fanotify_init" number="338" groups="descriptor"/>
+  <syscall name="fanotify_mark" number="339" groups="descriptor,file"/>
+  <syscall name="prlimit64" number="340"/>
+  <syscall name="name_to_handle_at" number="341" groups="descriptor,file"/>
+  <syscall name="open_by_handle_at" number="342" groups="descriptor"/>
+  <syscall name="clock_adjtime" number="343"/>
+  <syscall name="syncfs" number="344" groups="descriptor"/>
+  <syscall name="sendmmsg" number="345" groups="network"/>
+  <syscall name="setns" number="346" groups="descriptor"/>
+  <syscall name="process_vm_readv" number="347"/>
+  <syscall name="process_vm_writev" number="348"/>
+  <syscall name="kcmp" number="349"/>
+  <syscall name="finit_module" number="350" groups="descriptor"/>
+  <syscall name="sched_setattr" number="351"/>
+  <syscall name="sched_getattr" number="352"/>
+  <syscall name="renameat2" number="353"/>
+  <syscall name="seccomp" number="354"/>
+  <syscall name="getrandom" number="355"/>
+  <syscall name="memfd_create" number="356"/>
+  <syscall name="bpf" number="357"/>
+  <syscall name="execveat" number="358"/>
+  <syscall name="socket" number="359" groups="network"/>
+  <syscall name="socketpair" number="360" groups="network"/>
+  <syscall name="bind" number="361" groups="network"/>
+  <syscall name="connect" number="362" groups="network"/>
+  <syscall name="listen" number="363" groups="network"/>
+  <syscall name="accept4" number="364" groups="network"/>
+  <syscall name="getsockopt" number="365" groups="network"/>
+  <syscall name="setsockopt" number="366" groups="network"/>
+  <syscall name="getsockname" number="367" groups="network"/>
+  <syscall name="getpeername" number="368" groups="network"/>
+  <syscall name="sendto" number="369" groups="network"/>
+  <syscall name="sendmsg" number="370" groups="network"/>
+  <syscall name="recvfrom" number="371" groups="network"/>
+  <syscall name="recvmsg" number="372" groups="network"/>
+  <syscall name="shutdown" number="373" groups="network"/>
+  <syscall name="userfaultfd" number="374"/>
+  <syscall name="membarrier" number="375"/>
+  <syscall name="mlock2" number="376"/>
+  <syscall name="copy_file_range" number="377"/>
+  <syscall name="preadv2" number="378"/>
+  <syscall name="pwritev2" number="379"/>
+  <syscall name="pkey_mprotect" number="380"/>
+  <syscall name="pkey_alloc" number="381"/>
+  <syscall name="pkey_free" number="382"/>
+  <syscall name="statx" number="383"/>
+  <syscall name="arch_prctl" number="384" groups="process"/>
+  <syscall name="io_pgetevents" number="385"/>
+  <syscall name="rseq" number="386"/>
+  <syscall name="semget" number="393" groups="ipc"/>
+  <syscall name="semctl" number="394" groups="ipc"/>
+  <syscall name="shmget" number="395" groups="ipc"/>
+  <syscall name="shmctl" number="396" groups="ipc"/>
+  <syscall name="shmat" number="397" groups="ipc,memory"/>
+  <syscall name="shmdt" number="398" groups="ipc,memory"/>
+  <syscall name="msgget" number="399" groups="ipc"/>
+  <syscall name="msgsnd" number="400" groups="ipc"/>
+  <syscall name="msgrcv" number="401" groups="ipc"/>
+  <syscall name="msgctl" number="402" groups="ipc"/>
+  <syscall name="clock_gettime64" number="403"/>
+  <syscall name="clock_settime64" number="404"/>
+  <syscall name="clock_adjtime64" number="405"/>
+  <syscall name="clock_getres_time64" number="406"/>
+  <syscall name="clock_nanosleep_time64" number="407"/>
+  <syscall name="timer_gettime64" number="408"/>
+  <syscall name="timer_settime64" number="409"/>
+  <syscall name="timerfd_gettime64" number="410"/>
+  <syscall name="timerfd_settime64" number="411"/>
+  <syscall name="utimensat_time64" number="412"/>
+  <syscall name="pselect6_time64" number="413"/>
+  <syscall name="ppoll_time64" number="414"/>
+  <syscall name="io_pgetevents_time64" number="416"/>
+  <syscall name="recvmmsg_time64" number="417"/>
+  <syscall name="mq_timedsend_time64" number="418"/>
+  <syscall name="mq_timedreceive_time64" number="419"/>
+  <syscall name="semtimedop_time64" number="420"/>
+  <syscall name="rt_sigtimedwait_time64" number="421"/>
+  <syscall name="futex_time64" number="422"/>
+  <syscall name="sched_rr_get_interval_time64" number="423"/>
+  <syscall name="pidfd_send_signal" number="424"/>
+  <syscall name="io_uring_setup" number="425"/>
+  <syscall name="io_uring_enter" number="426"/>
+  <syscall name="io_uring_register" number="427"/>
+  <syscall name="open_tree" number="428"/>
+  <syscall name="move_mount" number="429"/>
+  <syscall name="fsopen" number="430"/>
+  <syscall name="fsconfig" number="431"/>
+  <syscall name="fsmount" number="432"/>
+  <syscall name="fspick" number="433"/>
+  <syscall name="pidfd_open" number="434"/>
+  <syscall name="clone3" number="435"/>
+  <syscall name="close_range" number="436"/>
+  <syscall name="openat2" number="437"/>
+  <syscall name="pidfd_getfd" number="438"/>
+  <syscall name="faccessat2" number="439"/>
+  <syscall name="process_madvise" number="440"/>
+  <syscall name="epoll_pwait2" number="441"/>
+  <syscall name="mount_setattr" number="442"/>
+  <syscall name="quotactl_fd" number="443"/>
+  <syscall name="landlock_create_ruleset" number="444"/>
+  <syscall name="landlock_add_rule" number="445"/>
+  <syscall name="landlock_restrict_self" number="446"/>
+  <syscall name="memfd_secret" number="447"/>
+  <syscall name="process_mrelease" number="448"/>
+  <syscall name="futex_waitv" number="449"/>
+  <syscall name="set_mempolicy_home_node" number="450"/>
 </syscalls_info>
diff --git a/gdb/syscalls/i386-linux.xml.in b/gdb/syscalls/i386-linux.xml.in
index 13c4d1d99d4..549b59565f3 100644
--- a/gdb/syscalls/i386-linux.xml.in
+++ b/gdb/syscalls/i386-linux.xml.in
@@ -8,11 +8,12 @@
 <!DOCTYPE feature SYSTEM "gdb-syscalls.dtd">
 
 <!-- This file was generated using the following file:
-     
-     /usr/src/linux/arch/x86/include/asm/unistd_32.h
+
+     <sys/syscall.h>
 
      The file mentioned above belongs to the Linux Kernel.  -->
 
+
 <syscalls_info>
   <syscall name="restart_syscall" number="0"/>
   <syscall name="exit" number="1"/>
@@ -234,9 +235,8 @@
   <syscall name="pivot_root" number="217"/>
   <syscall name="mincore" number="218"/>
   <syscall name="madvise" number="219"/>
-  <syscall name="madvise1" number="220"/>
-  <syscall name="getdents64" number="221"/>
-  <syscall name="fcntl64" number="222"/>
+  <syscall name="getdents64" number="220"/>
+  <syscall name="fcntl64" number="221"/>
   <syscall name="gettid" number="224"/>
   <syscall name="readahead" number="225"/>
   <syscall name="setxattr" number="226"/>
@@ -337,5 +337,122 @@
   <syscall name="eventfd" number="323"/>
   <syscall name="fallocate" number="324"/>
   <syscall name="timerfd_settime" number="325"/>
+  <syscall name="timerfd_gettime" number="326"/>
+  <syscall name="signalfd4" number="327"/>
+  <syscall name="eventfd2" number="328"/>
+  <syscall name="epoll_create1" number="329"/>
+  <syscall name="dup3" number="330"/>
   <syscall name="pipe2" number="331"/>
+  <syscall name="inotify_init1" number="332"/>
+  <syscall name="preadv" number="333"/>
+  <syscall name="pwritev" number="334"/>
+  <syscall name="rt_tgsigqueueinfo" number="335"/>
+  <syscall name="perf_event_open" number="336"/>
+  <syscall name="recvmmsg" number="337"/>
+  <syscall name="fanotify_init" number="338"/>
+  <syscall name="fanotify_mark" number="339"/>
+  <syscall name="prlimit64" number="340"/>
+  <syscall name="name_to_handle_at" number="341"/>
+  <syscall name="open_by_handle_at" number="342"/>
+  <syscall name="clock_adjtime" number="343"/>
+  <syscall name="syncfs" number="344"/>
+  <syscall name="sendmmsg" number="345"/>
+  <syscall name="setns" number="346"/>
+  <syscall name="process_vm_readv" number="347"/>
+  <syscall name="process_vm_writev" number="348"/>
+  <syscall name="kcmp" number="349"/>
+  <syscall name="finit_module" number="350"/>
+  <syscall name="sched_setattr" number="351"/>
+  <syscall name="sched_getattr" number="352"/>
+  <syscall name="renameat2" number="353"/>
+  <syscall name="seccomp" number="354"/>
+  <syscall name="getrandom" number="355"/>
+  <syscall name="memfd_create" number="356"/>
+  <syscall name="bpf" number="357"/>
+  <syscall name="execveat" number="358"/>
+  <syscall name="socket" number="359"/>
+  <syscall name="socketpair" number="360"/>
+  <syscall name="bind" number="361"/>
+  <syscall name="connect" number="362"/>
+  <syscall name="listen" number="363"/>
+  <syscall name="accept4" number="364"/>
+  <syscall name="getsockopt" number="365"/>
+  <syscall name="setsockopt" number="366"/>
+  <syscall name="getsockname" number="367"/>
+  <syscall name="getpeername" number="368"/>
+  <syscall name="sendto" number="369"/>
+  <syscall name="sendmsg" number="370"/>
+  <syscall name="recvfrom" number="371"/>
+  <syscall name="recvmsg" number="372"/>
+  <syscall name="shutdown" number="373"/>
+  <syscall name="userfaultfd" number="374"/>
+  <syscall name="membarrier" number="375"/>
+  <syscall name="mlock2" number="376"/>
+  <syscall name="copy_file_range" number="377"/>
+  <syscall name="preadv2" number="378"/>
+  <syscall name="pwritev2" number="379"/>
+  <syscall name="pkey_mprotect" number="380"/>
+  <syscall name="pkey_alloc" number="381"/>
+  <syscall name="pkey_free" number="382"/>
+  <syscall name="statx" number="383"/>
+  <syscall name="arch_prctl" number="384"/>
+  <syscall name="io_pgetevents" number="385"/>
+  <syscall name="rseq" number="386"/>
+  <syscall name="semget" number="393"/>
+  <syscall name="semctl" number="394"/>
+  <syscall name="shmget" number="395"/>
+  <syscall name="shmctl" number="396"/>
+  <syscall name="shmat" number="397"/>
+  <syscall name="shmdt" number="398"/>
+  <syscall name="msgget" number="399"/>
+  <syscall name="msgsnd" number="400"/>
+  <syscall name="msgrcv" number="401"/>
+  <syscall name="msgctl" number="402"/>
+  <syscall name="clock_gettime64" number="403"/>
+  <syscall name="clock_settime64" number="404"/>
+  <syscall name="clock_adjtime64" number="405"/>
+  <syscall name="clock_getres_time64" number="406"/>
+  <syscall name="clock_nanosleep_time64" number="407"/>
+  <syscall name="timer_gettime64" number="408"/>
+  <syscall name="timer_settime64" number="409"/>
+  <syscall name="timerfd_gettime64" number="410"/>
+  <syscall name="timerfd_settime64" number="411"/>
+  <syscall name="utimensat_time64" number="412"/>
+  <syscall name="pselect6_time64" number="413"/>
+  <syscall name="ppoll_time64" number="414"/>
+  <syscall name="io_pgetevents_time64" number="416"/>
+  <syscall name="recvmmsg_time64" number="417"/>
+  <syscall name="mq_timedsend_time64" number="418"/>
+  <syscall name="mq_timedreceive_time64" number="419"/>
+  <syscall name="semtimedop_time64" number="420"/>
+  <syscall name="rt_sigtimedwait_time64" number="421"/>
+  <syscall name="futex_time64" number="422"/>
+  <syscall name="sched_rr_get_interval_time64" number="423"/>
+  <syscall name="pidfd_send_signal" number="424"/>
+  <syscall name="io_uring_setup" number="425"/>
+  <syscall name="io_uring_enter" number="426"/>
+  <syscall name="io_uring_register" number="427"/>
+  <syscall name="open_tree" number="428"/>
+  <syscall name="move_mount" number="429"/>
+  <syscall name="fsopen" number="430"/>
+  <syscall name="fsconfig" number="431"/>
+  <syscall name="fsmount" number="432"/>
+  <syscall name="fspick" number="433"/>
+  <syscall name="pidfd_open" number="434"/>
+  <syscall name="clone3" number="435"/>
+  <syscall name="close_range" number="436"/>
+  <syscall name="openat2" number="437"/>
+  <syscall name="pidfd_getfd" number="438"/>
+  <syscall name="faccessat2" number="439"/>
+  <syscall name="process_madvise" number="440"/>
+  <syscall name="epoll_pwait2" number="441"/>
+  <syscall name="mount_setattr" number="442"/>
+  <syscall name="quotactl_fd" number="443"/>
+  <syscall name="landlock_create_ruleset" number="444"/>
+  <syscall name="landlock_add_rule" number="445"/>
+  <syscall name="landlock_restrict_self" number="446"/>
+  <syscall name="memfd_secret" number="447"/>
+  <syscall name="process_mrelease" number="448"/>
+  <syscall name="futex_waitv" number="449"/>
+  <syscall name="set_mempolicy_home_node" number="450"/>
 </syscalls_info>
diff --git a/gdb/syscalls/update-linux.sh b/gdb/syscalls/update-linux.sh
new file mode 100755
index 00000000000..a6719077dc5
--- /dev/null
+++ b/gdb/syscalls/update-linux.sh
@@ -0,0 +1,60 @@
+#!/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 <http://www.gnu.org/licenses/>.
+
+# Used to generate .xml.in files, like so:
+#
+# ./update-linux.sh amd64-linux.xml.in
+# ./update-linux.sh i386-linux.xml.in -m32
+
+
+if [ $# -lt 1 ]; then
+    echo "file argument needed"
+    exit 1
+fi
+
+f="$1"
+shift
+
+if [ ! -f "$f" ]; then
+    echo "cannot find $f"
+    exit 1
+fi
+
+(
+    python gen-header.py "<sys/syscall.h>"
+
+    tmp=$(mktemp)
+
+    echo '#include <sys/syscall.h>' \
+	| gcc -E - -dD "$@" \
+	| grep -E '#define __NR_' \
+		> "$tmp"
+
+    echo '<syscalls_info>'
+
+    while read -r line; do
+	name=$(echo "$line" | awk '{print $2}' | sed 's/^__NR_//')
+	nr=$(echo "$line" | awk '{print $3}')
+	echo "  <syscall name=\"$name\" number=\"$nr\"/>"
+    done < "$tmp"
+
+    echo '</syscalls_info>'
+
+    rm -f "$tmp"
+) > "$f"

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH][gdb] Update syscalls/{amd64,i386}-linux.xml
  2022-05-09 15:29           ` Tom de Vries
@ 2022-05-09 15:40             ` Andreas Schwab
  2022-05-09 15:42               ` Tom de Vries
  0 siblings, 1 reply; 22+ messages in thread
From: Andreas Schwab @ 2022-05-09 15:40 UTC (permalink / raw)
  To: Tom de Vries via Gdb-patches; +Cc: Simon Marchi, Tom de Vries

On Mai 09 2022, Tom de Vries via Gdb-patches wrote:

> +    tmp=$(mktemp)
> +
> +    echo '#include <sys/syscall.h>' \
> +	| gcc -E - -dD "$@" \
> +	| grep -E '#define __NR_' \
> +		> "$tmp"
> +
> +    echo '<syscalls_info>'
> +
> +    while read -r line; do
> +	name=$(echo "$line" | awk '{print $2}' | sed 's/^__NR_//')
> +	nr=$(echo "$line" | awk '{print $3}')
> +	echo "  <syscall name=\"$name\" number=\"$nr\"/>"
> +    done < "$tmp"
> +
> +    echo '</syscalls_info>'
> +
> +    rm -f "$tmp"

There is no need for a temporary file, you can just pipe directly into
the loop.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510  2552 DF73 E780 A9DA AEC1
"And now for something completely different."

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH][gdb] Update syscalls/{amd64,i386}-linux.xml
  2022-05-09 15:40             ` Andreas Schwab
@ 2022-05-09 15:42               ` Tom de Vries
  2022-05-09 15:45                 ` Andreas Schwab
  0 siblings, 1 reply; 22+ messages in thread
From: Tom de Vries @ 2022-05-09 15:42 UTC (permalink / raw)
  To: Andreas Schwab, Tom de Vries via Gdb-patches; +Cc: Simon Marchi

On 5/9/22 17:40, Andreas Schwab wrote:
> On Mai 09 2022, Tom de Vries via Gdb-patches wrote:
> 
>> +    tmp=$(mktemp)
>> +
>> +    echo '#include <sys/syscall.h>' \
>> +	| gcc -E - -dD "$@" \
>> +	| grep -E '#define __NR_' \
>> +		> "$tmp"
>> +
>> +    echo '<syscalls_info>'
>> +
>> +    while read -r line; do
>> +	name=$(echo "$line" | awk '{print $2}' | sed 's/^__NR_//')
>> +	nr=$(echo "$line" | awk '{print $3}')
>> +	echo "  <syscall name=\"$name\" number=\"$nr\"/>"
>> +    done < "$tmp"
>> +
>> +    echo '</syscalls_info>'
>> +
>> +    rm -f "$tmp"
> 
> There is no need for a temporary file, you can just pipe directly into
> the loop.
> 

True, but I like the temporary file there, it makes it easy to 
investigate intermediate results.

Thanks,
- Tom

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH][gdb] Update syscalls/{amd64,i386}-linux.xml
  2022-05-09 15:42               ` Tom de Vries
@ 2022-05-09 15:45                 ` Andreas Schwab
  2022-05-09 16:04                   ` Tom de Vries
  0 siblings, 1 reply; 22+ messages in thread
From: Andreas Schwab @ 2022-05-09 15:45 UTC (permalink / raw)
  To: Tom de Vries; +Cc: Tom de Vries via Gdb-patches, Simon Marchi

It's easy enough to insert a tee into the pipe if you really need to
debug this.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510  2552 DF73 E780 A9DA AEC1
"And now for something completely different."

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH][gdb] Update syscalls/{amd64,i386}-linux.xml
  2022-05-09 15:45                 ` Andreas Schwab
@ 2022-05-09 16:04                   ` Tom de Vries
  0 siblings, 0 replies; 22+ messages in thread
From: Tom de Vries @ 2022-05-09 16:04 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: Tom de Vries via Gdb-patches, Simon Marchi

On 5/9/22 17:45, Andreas Schwab wrote:
> It's easy enough to insert a tee into the pipe if you really need to
> debug this.
> 

Hmm, indeed.  Somehow inserting a tee in a pipeline never occurred to me.

Thanks,
- Tom


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH][gdb] Update syscalls/{amd64,i386}-linux.xml
  2022-05-09 10:39       ` [PATCH][gdb] Update syscalls/{amd64,i386}-linux.xml Tom de Vries
  2022-05-09 14:48         ` Simon Marchi
@ 2022-05-09 17:19         ` Tom Tromey
  2022-05-10 11:39           ` Tom de Vries
  2022-05-10 11:53         ` Tom de Vries
  2 siblings, 1 reply; 22+ messages in thread
From: Tom Tromey @ 2022-05-09 17:19 UTC (permalink / raw)
  To: Tom de Vries via Gdb-patches; +Cc: Simon Marchi, Tom de Vries

>>>>> "Tom" == Tom de Vries via Gdb-patches <gdb-patches@sourceware.org> writes:

Tom> diff --git a/gdb/syscalls/gen-header.py b/gdb/syscalls/gen-header.py

Tom> +<!-- Copyright (C) 2009-%s Free Software Foundation, Inc.

Tom> +"""
Tom> +    % (time.strftime("%Y"), infname)

It seems like overkill to have a python script just for a "here
document" and "date +%Y".

Tom> +(
Tom> +    python gen-header.py "<sys/syscall.h>"
Tom> +
Tom> +    tmp=$(mktemp)
Tom> +
Tom> +    echo '#include <sys/syscall.h>' \
Tom> +	| gcc -E - -dD "$@" \
Tom> +	| egrep '#define __NR_' \
Tom> +		> $tmp
Tom> +
Tom> +    echo '<syscalls_info>'
Tom> +
Tom> +    while read line; do
Tom> +	name=$(echo $line | awk '{print $2}' | sed 's/^__NR_//')
Tom> +	nr=$(echo $line | awk '{print $3}')
Tom> +	echo "  <syscall name=\"$name\" number=\"$nr\"/>"
Tom> +    done < $tmp
Tom> +
Tom> +    echo '</syscalls_info>'

Alternatively doing the whole thing in Python would also be alright.

Tom

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH][gdb] Update syscalls/{amd64,i386}-linux.xml
  2022-05-09 17:19         ` Tom Tromey
@ 2022-05-10 11:39           ` Tom de Vries
  2022-05-12  9:00             ` Tom de Vries
  0 siblings, 1 reply; 22+ messages in thread
From: Tom de Vries @ 2022-05-10 11:39 UTC (permalink / raw)
  To: Tom Tromey, Tom de Vries via Gdb-patches; +Cc: Simon Marchi

[-- Attachment #1: Type: text/plain, Size: 1166 bytes --]

On 5/9/22 19:19, Tom Tromey wrote:
>>>>>> "Tom" == Tom de Vries via Gdb-patches <gdb-patches@sourceware.org> writes:
> 
> Tom> diff --git a/gdb/syscalls/gen-header.py b/gdb/syscalls/gen-header.py
> 
> Tom> +<!-- Copyright (C) 2009-%s Free Software Foundation, Inc.
> 
> Tom> +"""
> Tom> +    % (time.strftime("%Y"), infname)
> 
> It seems like overkill to have a python script just for a "here
> document" and "date +%Y".
> 

Ack, fixed.

> Tom> +(
> Tom> +    python gen-header.py "<sys/syscall.h>"
> Tom> +
> Tom> +    tmp=$(mktemp)
> Tom> +
> Tom> +    echo '#include <sys/syscall.h>' \
> Tom> +	| gcc -E - -dD "$@" \
> Tom> +	| egrep '#define __NR_' \
> Tom> +		> $tmp
> Tom> +
> Tom> +    echo '<syscalls_info>'
> Tom> +
> Tom> +    while read line; do
> Tom> +	name=$(echo $line | awk '{print $2}' | sed 's/^__NR_//')
> Tom> +	nr=$(echo $line | awk '{print $3}')
> Tom> +	echo "  <syscall name=\"$name\" number=\"$nr\"/>"
> Tom> +    done < $tmp
> Tom> +
> Tom> +    echo '</syscalls_info>'
> 
> Alternatively doing the whole thing in Python would also be alright.

I've done things in bash for now, that's easier for me.

Any further comments?

Thanks,
- Tom

[-- Attachment #2: 0006-gdb-tdep-Improve-gdb-syscalls-update-linux.sh.patch --]
[-- Type: text/x-patch, Size: 2817 bytes --]

[gdb/tdep] Improve gdb/syscalls/update-linux.sh

Fix two things in update-linux.sh:
- remove use of unnecessary tmp file
- inline gen-header.py into update-linux.sh

Tested on x86_64-linux.

---
 gdb/syscalls/gen-header.py   | 32 --------------------------------
 gdb/syscalls/update-linux.sh | 33 +++++++++++++++++++++++----------
 2 files changed, 23 insertions(+), 42 deletions(-)

diff --git a/gdb/syscalls/gen-header.py b/gdb/syscalls/gen-header.py
deleted file mode 100644
index 78ccdddbff6..00000000000
--- a/gdb/syscalls/gen-header.py
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright (C) 2013-2022 Free Software Foundation, Inc.
-
-# Copying and distribution of this file, with or without modification,
-# are permitted in any medium without royalty provided the copyright
-# notice and this notice are preserved.  This file is offered as-is,
-# without any warranty.
-
-import sys
-import time
-
-infname = sys.argv[1]
-
-print(
-    """\
-<?xml version="1.0"?>
-<!-- Copyright (C) 2009-%s Free Software Foundation, Inc.
-
-     Copying and distribution of this file, with or without modification,
-     are permitted in any medium without royalty provided the copyright
-     notice and this notice are preserved.  -->
-
-<!DOCTYPE feature SYSTEM "gdb-syscalls.dtd">
-
-<!-- This file was generated using the following file:
-
-     %s
-
-     The file mentioned above belongs to the Linux Kernel.  -->
-
-"""
-    % (time.strftime("%Y"), infname)
-)
diff --git a/gdb/syscalls/update-linux.sh b/gdb/syscalls/update-linux.sh
index a6719077dc5..e26ec4e92cb 100755
--- a/gdb/syscalls/update-linux.sh
+++ b/gdb/syscalls/update-linux.sh
@@ -36,25 +36,38 @@ if [ ! -f "$f" ]; then
     exit 1
 fi
 
+year=$(date +%Y)
+
 (
-    python gen-header.py "<sys/syscall.h>"
+    cat <<EOF
+<?xml version="1.0"?>
+<!-- Copyright (C) 2009-$year Free Software Foundation, Inc.
 
-    tmp=$(mktemp)
+     Copying and distribution of this file, with or without modification,
+     are permitted in any medium without royalty provided the copyright
+     notice and this notice are preserved.  -->
 
-    echo '#include <sys/syscall.h>' \
-	| gcc -E - -dD "$@" \
-	| grep -E '#define __NR_' \
-		> "$tmp"
+<!DOCTYPE feature SYSTEM "gdb-syscalls.dtd">
+
+<!-- This file was generated using the following file:
+
+     <sys/syscall.h>
+
+     The file mentioned above belongs to the Linux Kernel.  -->
+
+
+EOF
 
     echo '<syscalls_info>'
 
-    while read -r line; do
+    echo '#include <sys/syscall.h>' \
+	| gcc -E - -dD "$@" \
+	| grep -E '#define __NR_' \
+	| while read -r line; do
 	name=$(echo "$line" | awk '{print $2}' | sed 's/^__NR_//')
 	nr=$(echo "$line" | awk '{print $3}')
 	echo "  <syscall name=\"$name\" number=\"$nr\"/>"
-    done < "$tmp"
+    done
 
     echo '</syscalls_info>'
-
-    rm -f "$tmp"
 ) > "$f"

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH][gdb] Update syscalls/{amd64,i386}-linux.xml
  2022-05-09 10:39       ` [PATCH][gdb] Update syscalls/{amd64,i386}-linux.xml Tom de Vries
  2022-05-09 14:48         ` Simon Marchi
  2022-05-09 17:19         ` Tom Tromey
@ 2022-05-10 11:53         ` Tom de Vries
  2022-05-16 16:07           ` Tom Tromey
  2 siblings, 1 reply; 22+ messages in thread
From: Tom de Vries @ 2022-05-10 11:53 UTC (permalink / raw)
  To: Simon Marchi, gdb-patches

[-- Attachment #1: Type: text/plain, Size: 455 bytes --]

On 5/9/22 12:39, Tom de Vries wrote:
> [ FWIW, it seems the linux kernel migrated to some syscall.tbl approach, 
> and perhaps generating from there could be an option. ]

Well, I gave that a try, in a separate script update-linux-2.sh (haven't 
though of a good name yet).

Any comments?

In particular, there are a few new "reserved<n>" and "unused<n>" entries 
that don't look problematic to me, but perhaps these should be filtered out.

Thanks,
- Tom

[-- Attachment #2: 0007-gdb-tdep-Add-gdb-syscalls-update-linux-2.sh.patch --]
[-- Type: text/x-patch, Size: 79294 bytes --]

[gdb/tdep] Add gdb/syscalls/update-linux-2.sh

Add a new script gdb/syscalls/update-linux-2.sh, that can be used to generate
*-linux.xml.in files from linux kernel sources, like so:
...
$ ./update-linux-2.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    |  80 +++++++++++++++++-
 gdb/syscalls/mips-n32-linux.xml.in |  81 +++++++++++++++++-
 gdb/syscalls/mips-n64-linux.xml    |  62 +++++++++++++-
 gdb/syscalls/mips-n64-linux.xml.in |  63 +++++++++++++-
 gdb/syscalls/mips-o32-linux.xml    |  98 +++++++++++++++++++++-
 gdb/syscalls/mips-o32-linux.xml.in |  99 +++++++++++++++++++++-
 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-2.sh     | 168 +++++++++++++++++++++++++++++++++++++
 23 files changed, 1249 insertions(+), 34 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.  -->
 <!-- This file was generated using the following file:
 
-     <sys/syscall.h>
+     arch/x86/entry/syscalls/syscall_64.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 <syscalls_info>
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 @@
 
 <!-- This file was generated using the following file:
 
-     <sys/syscall.h>
+     arch/x86/entry/syscalls/syscall_64.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 
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.  -->
 <!-- This file was generated using the following file:
 
-     <sys/syscall.h>
+     arch/x86/entry/syscalls/syscall_32.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 <syscalls_info>
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 @@
 
 <!-- This file was generated using the following file:
 
-     <sys/syscall.h>
+     arch/x86/entry/syscalls/syscall_32.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 
diff --git a/gdb/syscalls/mips-n32-linux.xml b/gdb/syscalls/mips-n32-linux.xml
index d6cffc4e5aa..165c5a32142 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.  -->
 <!-- This file was generated using the following file:
-     
-     /usr/src/linux/arch/mips/include/asm/unistd.h
+
+     ./arch/mips/kernel/syscalls/syscall_n32.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 <syscalls_info>
@@ -313,4 +313,80 @@
   <syscall name="fanotify_init" number="6300" groups="descriptor"/>
   <syscall name="fanotify_mark" number="6301" groups="descriptor,file"/>
   <syscall name="prlimit64" number="6302"/>
+  <syscall name="name_to_handle_at" number="6303" groups="descriptor,file"/>
+  <syscall name="open_by_handle_at" number="6304" groups="descriptor"/>
+  <syscall name="clock_adjtime" number="6305"/>
+  <syscall name="syncfs" number="6306" groups="descriptor"/>
+  <syscall name="sendmmsg" number="6307" groups="network"/>
+  <syscall name="setns" number="6308" groups="descriptor"/>
+  <syscall name="process_vm_readv" number="6309"/>
+  <syscall name="process_vm_writev" number="6310"/>
+  <syscall name="kcmp" number="6311"/>
+  <syscall name="finit_module" number="6312" groups="descriptor"/>
+  <syscall name="sched_setattr" number="6313"/>
+  <syscall name="sched_getattr" number="6314"/>
+  <syscall name="renameat2" number="6315"/>
+  <syscall name="seccomp" number="6316"/>
+  <syscall name="getrandom" number="6317"/>
+  <syscall name="memfd_create" number="6318"/>
+  <syscall name="bpf" number="6319"/>
+  <syscall name="execveat" number="6320"/>
+  <syscall name="userfaultfd" number="6321"/>
+  <syscall name="membarrier" number="6322"/>
+  <syscall name="mlock2" number="6323"/>
+  <syscall name="copy_file_range" number="6324"/>
+  <syscall name="preadv2" number="6325"/>
+  <syscall name="pwritev2" number="6326"/>
+  <syscall name="pkey_mprotect" number="6327"/>
+  <syscall name="pkey_alloc" number="6328"/>
+  <syscall name="pkey_free" number="6329"/>
+  <syscall name="statx" number="6330"/>
+  <syscall name="rseq" number="6331"/>
+  <syscall name="io_pgetevents" number="6332"/>
+  <syscall name="clock_gettime64" number="6403"/>
+  <syscall name="clock_settime64" number="6404"/>
+  <syscall name="clock_adjtime64" number="6405"/>
+  <syscall name="clock_getres_time64" number="6406"/>
+  <syscall name="clock_nanosleep_time64" number="6407"/>
+  <syscall name="timer_gettime64" number="6408"/>
+  <syscall name="timer_settime64" number="6409"/>
+  <syscall name="timerfd_gettime64" number="6410"/>
+  <syscall name="timerfd_settime64" number="6411"/>
+  <syscall name="utimensat_time64" number="6412"/>
+  <syscall name="pselect6_time64" number="6413"/>
+  <syscall name="ppoll_time64" number="6414"/>
+  <syscall name="io_pgetevents_time64" number="6416"/>
+  <syscall name="recvmmsg_time64" number="6417"/>
+  <syscall name="mq_timedsend_time64" number="6418"/>
+  <syscall name="mq_timedreceive_time64" number="6419"/>
+  <syscall name="semtimedop_time64" number="6420"/>
+  <syscall name="rt_sigtimedwait_time64" number="6421"/>
+  <syscall name="futex_time64" number="6422"/>
+  <syscall name="sched_rr_get_interval_time64" number="6423"/>
+  <syscall name="pidfd_send_signal" number="6424"/>
+  <syscall name="io_uring_setup" number="6425"/>
+  <syscall name="io_uring_enter" number="6426"/>
+  <syscall name="io_uring_register" number="6427"/>
+  <syscall name="open_tree" number="6428"/>
+  <syscall name="move_mount" number="6429"/>
+  <syscall name="fsopen" number="6430"/>
+  <syscall name="fsconfig" number="6431"/>
+  <syscall name="fsmount" number="6432"/>
+  <syscall name="fspick" number="6433"/>
+  <syscall name="pidfd_open" number="6434"/>
+  <syscall name="clone3" number="6435"/>
+  <syscall name="close_range" number="6436"/>
+  <syscall name="openat2" number="6437"/>
+  <syscall name="pidfd_getfd" number="6438"/>
+  <syscall name="faccessat2" number="6439"/>
+  <syscall name="process_madvise" number="6440"/>
+  <syscall name="epoll_pwait2" number="6441"/>
+  <syscall name="mount_setattr" number="6442"/>
+  <syscall name="quotactl_fd" number="6443"/>
+  <syscall name="landlock_create_ruleset" number="6444"/>
+  <syscall name="landlock_add_rule" number="6445"/>
+  <syscall name="landlock_restrict_self" number="6446"/>
+  <syscall name="process_mrelease" number="6448"/>
+  <syscall name="futex_waitv" number="6449"/>
+  <syscall name="set_mempolicy_home_node" number="6450"/>
 </syscalls_info>
diff --git a/gdb/syscalls/mips-n32-linux.xml.in b/gdb/syscalls/mips-n32-linux.xml.in
index cbdf82e65a1..610e4e80dd4 100644
--- a/gdb/syscalls/mips-n32-linux.xml.in
+++ b/gdb/syscalls/mips-n32-linux.xml.in
@@ -8,11 +8,12 @@
 <!DOCTYPE feature SYSTEM "gdb-syscalls.dtd">
 
 <!-- This file was generated using the following file:
-     
-     /usr/src/linux/arch/mips/include/asm/unistd.h
+
+     arch/mips/kernel/syscalls/syscall_n32.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 
+
 <syscalls_info>
   <syscall name="read" number="6000"/>
   <syscall name="write" number="6001"/>
@@ -316,4 +317,80 @@
   <syscall name="fanotify_init" number="6300"/>
   <syscall name="fanotify_mark" number="6301"/>
   <syscall name="prlimit64" number="6302"/>
+  <syscall name="name_to_handle_at" number="6303"/>
+  <syscall name="open_by_handle_at" number="6304"/>
+  <syscall name="clock_adjtime" number="6305"/>
+  <syscall name="syncfs" number="6306"/>
+  <syscall name="sendmmsg" number="6307"/>
+  <syscall name="setns" number="6308"/>
+  <syscall name="process_vm_readv" number="6309"/>
+  <syscall name="process_vm_writev" number="6310"/>
+  <syscall name="kcmp" number="6311"/>
+  <syscall name="finit_module" number="6312"/>
+  <syscall name="sched_setattr" number="6313"/>
+  <syscall name="sched_getattr" number="6314"/>
+  <syscall name="renameat2" number="6315"/>
+  <syscall name="seccomp" number="6316"/>
+  <syscall name="getrandom" number="6317"/>
+  <syscall name="memfd_create" number="6318"/>
+  <syscall name="bpf" number="6319"/>
+  <syscall name="execveat" number="6320"/>
+  <syscall name="userfaultfd" number="6321"/>
+  <syscall name="membarrier" number="6322"/>
+  <syscall name="mlock2" number="6323"/>
+  <syscall name="copy_file_range" number="6324"/>
+  <syscall name="preadv2" number="6325"/>
+  <syscall name="pwritev2" number="6326"/>
+  <syscall name="pkey_mprotect" number="6327"/>
+  <syscall name="pkey_alloc" number="6328"/>
+  <syscall name="pkey_free" number="6329"/>
+  <syscall name="statx" number="6330"/>
+  <syscall name="rseq" number="6331"/>
+  <syscall name="io_pgetevents" number="6332"/>
+  <syscall name="clock_gettime64" number="6403"/>
+  <syscall name="clock_settime64" number="6404"/>
+  <syscall name="clock_adjtime64" number="6405"/>
+  <syscall name="clock_getres_time64" number="6406"/>
+  <syscall name="clock_nanosleep_time64" number="6407"/>
+  <syscall name="timer_gettime64" number="6408"/>
+  <syscall name="timer_settime64" number="6409"/>
+  <syscall name="timerfd_gettime64" number="6410"/>
+  <syscall name="timerfd_settime64" number="6411"/>
+  <syscall name="utimensat_time64" number="6412"/>
+  <syscall name="pselect6_time64" number="6413"/>
+  <syscall name="ppoll_time64" number="6414"/>
+  <syscall name="io_pgetevents_time64" number="6416"/>
+  <syscall name="recvmmsg_time64" number="6417"/>
+  <syscall name="mq_timedsend_time64" number="6418"/>
+  <syscall name="mq_timedreceive_time64" number="6419"/>
+  <syscall name="semtimedop_time64" number="6420"/>
+  <syscall name="rt_sigtimedwait_time64" number="6421"/>
+  <syscall name="futex_time64" number="6422"/>
+  <syscall name="sched_rr_get_interval_time64" number="6423"/>
+  <syscall name="pidfd_send_signal" number="6424"/>
+  <syscall name="io_uring_setup" number="6425"/>
+  <syscall name="io_uring_enter" number="6426"/>
+  <syscall name="io_uring_register" number="6427"/>
+  <syscall name="open_tree" number="6428"/>
+  <syscall name="move_mount" number="6429"/>
+  <syscall name="fsopen" number="6430"/>
+  <syscall name="fsconfig" number="6431"/>
+  <syscall name="fsmount" number="6432"/>
+  <syscall name="fspick" number="6433"/>
+  <syscall name="pidfd_open" number="6434"/>
+  <syscall name="clone3" number="6435"/>
+  <syscall name="close_range" number="6436"/>
+  <syscall name="openat2" number="6437"/>
+  <syscall name="pidfd_getfd" number="6438"/>
+  <syscall name="faccessat2" number="6439"/>
+  <syscall name="process_madvise" number="6440"/>
+  <syscall name="epoll_pwait2" number="6441"/>
+  <syscall name="mount_setattr" number="6442"/>
+  <syscall name="quotactl_fd" number="6443"/>
+  <syscall name="landlock_create_ruleset" number="6444"/>
+  <syscall name="landlock_add_rule" number="6445"/>
+  <syscall name="landlock_restrict_self" number="6446"/>
+  <syscall name="process_mrelease" number="6448"/>
+  <syscall name="futex_waitv" number="6449"/>
+  <syscall name="set_mempolicy_home_node" number="6450"/>
 </syscalls_info>
diff --git a/gdb/syscalls/mips-n64-linux.xml b/gdb/syscalls/mips-n64-linux.xml
index c7507537118..9e4798e741e 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.  -->
 <!-- This file was generated using the following file:
-     
-     /usr/src/linux/arch/mips/include/asm/unistd.h
+
+     ./arch/mips/kernel/syscalls/syscall_n64.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 <syscalls_info>
@@ -188,6 +188,7 @@
   <syscall name="getpmsg" number="5174"/>
   <syscall name="putpmsg" number="5175"/>
   <syscall name="afs_syscall" number="5176"/>
+  <syscall name="reserved177" number="5177"/>
   <syscall name="gettid" number="5178"/>
   <syscall name="readahead" number="5179" groups="descriptor"/>
   <syscall name="setxattr" number="5180" groups="file"/>
@@ -203,6 +204,7 @@
   <syscall name="lremovexattr" number="5190" groups="file"/>
   <syscall name="fremovexattr" number="5191" groups="descriptor"/>
   <syscall name="tkill" number="5192" groups="signal"/>
+  <syscall name="reserved193" number="5193"/>
   <syscall name="futex" number="5194"/>
   <syscall name="sched_setaffinity" number="5195"/>
   <syscall name="sched_getaffinity" number="5196"/>
@@ -306,4 +308,60 @@
   <syscall name="fanotify_init" number="5295" groups="descriptor"/>
   <syscall name="fanotify_mark" number="5296" groups="descriptor,file"/>
   <syscall name="prlimit64" number="5297"/>
+  <syscall name="name_to_handle_at" number="5298" groups="descriptor,file"/>
+  <syscall name="open_by_handle_at" number="5299" groups="descriptor"/>
+  <syscall name="clock_adjtime" number="5300"/>
+  <syscall name="syncfs" number="5301" groups="descriptor"/>
+  <syscall name="sendmmsg" number="5302" groups="network"/>
+  <syscall name="setns" number="5303" groups="descriptor"/>
+  <syscall name="process_vm_readv" number="5304"/>
+  <syscall name="process_vm_writev" number="5305"/>
+  <syscall name="kcmp" number="5306"/>
+  <syscall name="finit_module" number="5307" groups="descriptor"/>
+  <syscall name="getdents64" number="5308" groups="descriptor"/>
+  <syscall name="sched_setattr" number="5309"/>
+  <syscall name="sched_getattr" number="5310"/>
+  <syscall name="renameat2" number="5311"/>
+  <syscall name="seccomp" number="5312"/>
+  <syscall name="getrandom" number="5313"/>
+  <syscall name="memfd_create" number="5314"/>
+  <syscall name="bpf" number="5315"/>
+  <syscall name="execveat" number="5316"/>
+  <syscall name="userfaultfd" number="5317"/>
+  <syscall name="membarrier" number="5318"/>
+  <syscall name="mlock2" number="5319"/>
+  <syscall name="copy_file_range" number="5320"/>
+  <syscall name="preadv2" number="5321"/>
+  <syscall name="pwritev2" number="5322"/>
+  <syscall name="pkey_mprotect" number="5323"/>
+  <syscall name="pkey_alloc" number="5324"/>
+  <syscall name="pkey_free" number="5325"/>
+  <syscall name="statx" number="5326"/>
+  <syscall name="rseq" number="5327"/>
+  <syscall name="io_pgetevents" number="5328"/>
+  <syscall name="pidfd_send_signal" number="5424"/>
+  <syscall name="io_uring_setup" number="5425"/>
+  <syscall name="io_uring_enter" number="5426"/>
+  <syscall name="io_uring_register" number="5427"/>
+  <syscall name="open_tree" number="5428"/>
+  <syscall name="move_mount" number="5429"/>
+  <syscall name="fsopen" number="5430"/>
+  <syscall name="fsconfig" number="5431"/>
+  <syscall name="fsmount" number="5432"/>
+  <syscall name="fspick" number="5433"/>
+  <syscall name="pidfd_open" number="5434"/>
+  <syscall name="clone3" number="5435"/>
+  <syscall name="close_range" number="5436"/>
+  <syscall name="openat2" number="5437"/>
+  <syscall name="pidfd_getfd" number="5438"/>
+  <syscall name="faccessat2" number="5439"/>
+  <syscall name="process_madvise" number="5440"/>
+  <syscall name="epoll_pwait2" number="5441"/>
+  <syscall name="mount_setattr" number="5442"/>
+  <syscall name="quotactl_fd" number="5443"/>
+  <syscall name="landlock_create_ruleset" number="5444"/>
+  <syscall name="landlock_add_rule" number="5445"/>
+  <syscall name="landlock_restrict_self" number="5446"/>
+  <syscall name="process_mrelease" number="5448"/>
+  <syscall name="futex_waitv" number="5449"/>
 </syscalls_info>
diff --git a/gdb/syscalls/mips-n64-linux.xml.in b/gdb/syscalls/mips-n64-linux.xml.in
index 28ac1509d6f..133fd669b1f 100644
--- a/gdb/syscalls/mips-n64-linux.xml.in
+++ b/gdb/syscalls/mips-n64-linux.xml.in
@@ -8,11 +8,12 @@
 <!DOCTYPE feature SYSTEM "gdb-syscalls.dtd">
 
 <!-- This file was generated using the following file:
-     
-     /usr/src/linux/arch/mips/include/asm/unistd.h
+
+     arch/mips/kernel/syscalls/syscall_n64.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 
+
 <syscalls_info>
   <syscall name="read" number="5000"/>
   <syscall name="write" number="5001"/>
@@ -191,6 +192,7 @@
   <syscall name="getpmsg" number="5174"/>
   <syscall name="putpmsg" number="5175"/>
   <syscall name="afs_syscall" number="5176"/>
+  <syscall name="reserved177" number="5177"/>
   <syscall name="gettid" number="5178"/>
   <syscall name="readahead" number="5179"/>
   <syscall name="setxattr" number="5180"/>
@@ -206,6 +208,7 @@
   <syscall name="lremovexattr" number="5190"/>
   <syscall name="fremovexattr" number="5191"/>
   <syscall name="tkill" number="5192"/>
+  <syscall name="reserved193" number="5193"/>
   <syscall name="futex" number="5194"/>
   <syscall name="sched_setaffinity" number="5195"/>
   <syscall name="sched_getaffinity" number="5196"/>
@@ -309,4 +312,60 @@
   <syscall name="fanotify_init" number="5295"/>
   <syscall name="fanotify_mark" number="5296"/>
   <syscall name="prlimit64" number="5297"/>
+  <syscall name="name_to_handle_at" number="5298"/>
+  <syscall name="open_by_handle_at" number="5299"/>
+  <syscall name="clock_adjtime" number="5300"/>
+  <syscall name="syncfs" number="5301"/>
+  <syscall name="sendmmsg" number="5302"/>
+  <syscall name="setns" number="5303"/>
+  <syscall name="process_vm_readv" number="5304"/>
+  <syscall name="process_vm_writev" number="5305"/>
+  <syscall name="kcmp" number="5306"/>
+  <syscall name="finit_module" number="5307"/>
+  <syscall name="getdents64" number="5308"/>
+  <syscall name="sched_setattr" number="5309"/>
+  <syscall name="sched_getattr" number="5310"/>
+  <syscall name="renameat2" number="5311"/>
+  <syscall name="seccomp" number="5312"/>
+  <syscall name="getrandom" number="5313"/>
+  <syscall name="memfd_create" number="5314"/>
+  <syscall name="bpf" number="5315"/>
+  <syscall name="execveat" number="5316"/>
+  <syscall name="userfaultfd" number="5317"/>
+  <syscall name="membarrier" number="5318"/>
+  <syscall name="mlock2" number="5319"/>
+  <syscall name="copy_file_range" number="5320"/>
+  <syscall name="preadv2" number="5321"/>
+  <syscall name="pwritev2" number="5322"/>
+  <syscall name="pkey_mprotect" number="5323"/>
+  <syscall name="pkey_alloc" number="5324"/>
+  <syscall name="pkey_free" number="5325"/>
+  <syscall name="statx" number="5326"/>
+  <syscall name="rseq" number="5327"/>
+  <syscall name="io_pgetevents" number="5328"/>
+  <syscall name="pidfd_send_signal" number="5424"/>
+  <syscall name="io_uring_setup" number="5425"/>
+  <syscall name="io_uring_enter" number="5426"/>
+  <syscall name="io_uring_register" number="5427"/>
+  <syscall name="open_tree" number="5428"/>
+  <syscall name="move_mount" number="5429"/>
+  <syscall name="fsopen" number="5430"/>
+  <syscall name="fsconfig" number="5431"/>
+  <syscall name="fsmount" number="5432"/>
+  <syscall name="fspick" number="5433"/>
+  <syscall name="pidfd_open" number="5434"/>
+  <syscall name="clone3" number="5435"/>
+  <syscall name="close_range" number="5436"/>
+  <syscall name="openat2" number="5437"/>
+  <syscall name="pidfd_getfd" number="5438"/>
+  <syscall name="faccessat2" number="5439"/>
+  <syscall name="process_madvise" number="5440"/>
+  <syscall name="epoll_pwait2" number="5441"/>
+  <syscall name="mount_setattr" number="5442"/>
+  <syscall name="quotactl_fd" number="5443"/>
+  <syscall name="landlock_create_ruleset" number="5444"/>
+  <syscall name="landlock_add_rule" number="5445"/>
+  <syscall name="landlock_restrict_self" number="5446"/>
+  <syscall name="process_mrelease" number="5448"/>
+  <syscall name="futex_waitv" number="5449"/>
 </syscalls_info>
diff --git a/gdb/syscalls/mips-o32-linux.xml b/gdb/syscalls/mips-o32-linux.xml
index 1e845d6a4d1..435ae84e793 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.  -->
 <!-- This file was generated using the following file:
-     
-     /usr/src/linux/arch/mips/include/asm/unistd.h
+
+     ./arch/mips/kernel/syscalls/syscall_o32.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 <syscalls_info>
@@ -29,6 +29,7 @@
   <syscall name="chmod" number="4015" groups="file"/>
   <syscall name="lchown" number="4016" groups="file"/>
   <syscall name="break" number="4017" groups="memory"/>
+  <syscall name="unused18" number="4018"/>
   <syscall name="lseek" number="4019" groups="descriptor"/>
   <syscall name="getpid" number="4020"/>
   <syscall name="mount" number="4021" groups="file"/>
@@ -38,6 +39,7 @@
   <syscall name="stime" number="4025"/>
   <syscall name="ptrace" number="4026"/>
   <syscall name="alarm" number="4027"/>
+  <syscall name="unused28" number="4028"/>
   <syscall name="pause" number="4029" groups="signal"/>
   <syscall name="utime" number="4030" groups="file"/>
   <syscall name="stty" number="4031"/>
@@ -68,6 +70,7 @@
   <syscall name="mpx" number="4056"/>
   <syscall name="setpgid" number="4057"/>
   <syscall name="ulimit" number="4058"/>
+  <syscall name="unused59" number="4059"/>
   <syscall name="umask" number="4060"/>
   <syscall name="chroot" number="4061" groups="file"/>
   <syscall name="ustat" number="4062"/>
@@ -90,7 +93,9 @@
   <syscall name="settimeofday" number="4079"/>
   <syscall name="getgroups" number="4080"/>
   <syscall name="setgroups" number="4081"/>
+  <syscall name="reserved82" number="4082"/>
   <syscall name="symlink" number="4083" groups="file"/>
+  <syscall name="unused84" number="4084"/>
   <syscall name="readlink" number="4085" groups="file"/>
   <syscall name="uselib" number="4086" groups="file"/>
   <syscall name="swapon" number="4087" groups="file"/>
@@ -115,6 +120,7 @@
   <syscall name="stat" number="4106" groups="file"/>
   <syscall name="lstat" number="4107" groups="file"/>
   <syscall name="fstat" number="4108" groups="descriptor"/>
+  <syscall name="unused109" number="4109"/>
   <syscall name="iopl" number="4110"/>
   <syscall name="vhangup" number="4111"/>
   <syscall name="idle" number="4112"/>
@@ -155,6 +161,7 @@
   <syscall name="cacheflush" number="4147"/>
   <syscall name="cachectl" number="4148"/>
   <syscall name="sysmips" number="4149"/>
+  <syscall name="unused150" number="4150"/>
   <syscall name="getsid" number="4151"/>
   <syscall name="fdatasync" number="4152" groups="descriptor"/>
   <syscall name="_sysctl" number="4153"/>
@@ -225,6 +232,7 @@
   <syscall name="madvise" number="4218" groups="memory"/>
   <syscall name="getdents64" number="4219" groups="descriptor"/>
   <syscall name="fcntl64" number="4220" groups="descriptor"/>
+  <syscall name="reserved221" number="4221"/>
   <syscall name="gettid" number="4222"/>
   <syscall name="readahead" number="4223" groups="descriptor"/>
   <syscall name="setxattr" number="4224" groups="file"/>
@@ -341,4 +349,90 @@
   <syscall name="fanotify_init" number="4336" groups="descriptor"/>
   <syscall name="fanotify_mark" number="4337" groups="descriptor,file"/>
   <syscall name="prlimit64" number="4338"/>
+  <syscall name="name_to_handle_at" number="4339" groups="descriptor,file"/>
+  <syscall name="open_by_handle_at" number="4340" groups="descriptor"/>
+  <syscall name="clock_adjtime" number="4341"/>
+  <syscall name="syncfs" number="4342" groups="descriptor"/>
+  <syscall name="sendmmsg" number="4343" groups="network"/>
+  <syscall name="setns" number="4344" groups="descriptor"/>
+  <syscall name="process_vm_readv" number="4345"/>
+  <syscall name="process_vm_writev" number="4346"/>
+  <syscall name="kcmp" number="4347"/>
+  <syscall name="finit_module" number="4348" groups="descriptor"/>
+  <syscall name="sched_setattr" number="4349"/>
+  <syscall name="sched_getattr" number="4350"/>
+  <syscall name="renameat2" number="4351"/>
+  <syscall name="seccomp" number="4352"/>
+  <syscall name="getrandom" number="4353"/>
+  <syscall name="memfd_create" number="4354"/>
+  <syscall name="bpf" number="4355"/>
+  <syscall name="execveat" number="4356"/>
+  <syscall name="userfaultfd" number="4357"/>
+  <syscall name="membarrier" number="4358"/>
+  <syscall name="mlock2" number="4359"/>
+  <syscall name="copy_file_range" number="4360"/>
+  <syscall name="preadv2" number="4361"/>
+  <syscall name="pwritev2" number="4362"/>
+  <syscall name="pkey_mprotect" number="4363"/>
+  <syscall name="pkey_alloc" number="4364"/>
+  <syscall name="pkey_free" number="4365"/>
+  <syscall name="statx" number="4366"/>
+  <syscall name="rseq" number="4367"/>
+  <syscall name="io_pgetevents" number="4368"/>
+  <syscall name="semget" number="4393" groups="ipc"/>
+  <syscall name="semctl" number="4394" groups="ipc"/>
+  <syscall name="shmget" number="4395" groups="ipc"/>
+  <syscall name="shmctl" number="4396" groups="ipc"/>
+  <syscall name="shmat" number="4397" groups="ipc,memory"/>
+  <syscall name="shmdt" number="4398" groups="ipc,memory"/>
+  <syscall name="msgget" number="4399" groups="ipc"/>
+  <syscall name="msgsnd" number="4400" groups="ipc"/>
+  <syscall name="msgrcv" number="4401" groups="ipc"/>
+  <syscall name="msgctl" number="4402" groups="ipc"/>
+  <syscall name="clock_gettime64" number="4403"/>
+  <syscall name="clock_settime64" number="4404"/>
+  <syscall name="clock_adjtime64" number="4405"/>
+  <syscall name="clock_getres_time64" number="4406"/>
+  <syscall name="clock_nanosleep_time64" number="4407"/>
+  <syscall name="timer_gettime64" number="4408"/>
+  <syscall name="timer_settime64" number="4409"/>
+  <syscall name="timerfd_gettime64" number="4410"/>
+  <syscall name="timerfd_settime64" number="4411"/>
+  <syscall name="utimensat_time64" number="4412"/>
+  <syscall name="pselect6_time64" number="4413"/>
+  <syscall name="ppoll_time64" number="4414"/>
+  <syscall name="io_pgetevents_time64" number="4416"/>
+  <syscall name="recvmmsg_time64" number="4417"/>
+  <syscall name="mq_timedsend_time64" number="4418"/>
+  <syscall name="mq_timedreceive_time64" number="4419"/>
+  <syscall name="semtimedop_time64" number="4420"/>
+  <syscall name="rt_sigtimedwait_time64" number="4421"/>
+  <syscall name="futex_time64" number="4422"/>
+  <syscall name="sched_rr_get_interval_time64" number="4423"/>
+  <syscall name="pidfd_send_signal" number="4424"/>
+  <syscall name="io_uring_setup" number="4425"/>
+  <syscall name="io_uring_enter" number="4426"/>
+  <syscall name="io_uring_register" number="4427"/>
+  <syscall name="open_tree" number="4428"/>
+  <syscall name="move_mount" number="4429"/>
+  <syscall name="fsopen" number="4430"/>
+  <syscall name="fsconfig" number="4431"/>
+  <syscall name="fsmount" number="4432"/>
+  <syscall name="fspick" number="4433"/>
+  <syscall name="pidfd_open" number="4434"/>
+  <syscall name="clone3" number="4435"/>
+  <syscall name="close_range" number="4436"/>
+  <syscall name="openat2" number="4437"/>
+  <syscall name="pidfd_getfd" number="4438"/>
+  <syscall name="faccessat2" number="4439"/>
+  <syscall name="process_madvise" number="4440"/>
+  <syscall name="epoll_pwait2" number="4441"/>
+  <syscall name="mount_setattr" number="4442"/>
+  <syscall name="quotactl_fd" number="4443"/>
+  <syscall name="landlock_create_ruleset" number="4444"/>
+  <syscall name="landlock_add_rule" number="4445"/>
+  <syscall name="landlock_restrict_self" number="4446"/>
+  <syscall name="process_mrelease" number="4448"/>
+  <syscall name="futex_waitv" number="4449"/>
+  <syscall name="set_mempolicy_home_node" number="4450"/>
 </syscalls_info>
diff --git a/gdb/syscalls/mips-o32-linux.xml.in b/gdb/syscalls/mips-o32-linux.xml.in
index 98ba0638b8a..1d1df32e788 100644
--- a/gdb/syscalls/mips-o32-linux.xml.in
+++ b/gdb/syscalls/mips-o32-linux.xml.in
@@ -8,11 +8,12 @@
 <!DOCTYPE feature SYSTEM "gdb-syscalls.dtd">
 
 <!-- This file was generated using the following file:
-     
-     /usr/src/linux/arch/mips/include/asm/unistd.h
+
+     arch/mips/kernel/syscalls/syscall_o32.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 
+
 <syscalls_info>
   <syscall name="syscall" number="4000"/>
   <syscall name="exit" number="4001"/>
@@ -32,6 +33,7 @@
   <syscall name="chmod" number="4015"/>
   <syscall name="lchown" number="4016"/>
   <syscall name="break" number="4017"/>
+  <syscall name="unused18" number="4018"/>
   <syscall name="lseek" number="4019"/>
   <syscall name="getpid" number="4020"/>
   <syscall name="mount" number="4021"/>
@@ -41,6 +43,7 @@
   <syscall name="stime" number="4025"/>
   <syscall name="ptrace" number="4026"/>
   <syscall name="alarm" number="4027"/>
+  <syscall name="unused28" number="4028"/>
   <syscall name="pause" number="4029"/>
   <syscall name="utime" number="4030"/>
   <syscall name="stty" number="4031"/>
@@ -71,6 +74,7 @@
   <syscall name="mpx" number="4056"/>
   <syscall name="setpgid" number="4057"/>
   <syscall name="ulimit" number="4058"/>
+  <syscall name="unused59" number="4059"/>
   <syscall name="umask" number="4060"/>
   <syscall name="chroot" number="4061"/>
   <syscall name="ustat" number="4062"/>
@@ -93,7 +97,9 @@
   <syscall name="settimeofday" number="4079"/>
   <syscall name="getgroups" number="4080"/>
   <syscall name="setgroups" number="4081"/>
+  <syscall name="reserved82" number="4082"/>
   <syscall name="symlink" number="4083"/>
+  <syscall name="unused84" number="4084"/>
   <syscall name="readlink" number="4085"/>
   <syscall name="uselib" number="4086"/>
   <syscall name="swapon" number="4087"/>
@@ -118,6 +124,7 @@
   <syscall name="stat" number="4106"/>
   <syscall name="lstat" number="4107"/>
   <syscall name="fstat" number="4108"/>
+  <syscall name="unused109" number="4109"/>
   <syscall name="iopl" number="4110"/>
   <syscall name="vhangup" number="4111"/>
   <syscall name="idle" number="4112"/>
@@ -158,6 +165,7 @@
   <syscall name="cacheflush" number="4147"/>
   <syscall name="cachectl" number="4148"/>
   <syscall name="sysmips" number="4149"/>
+  <syscall name="unused150" number="4150"/>
   <syscall name="getsid" number="4151"/>
   <syscall name="fdatasync" number="4152"/>
   <syscall name="_sysctl" number="4153"/>
@@ -228,6 +236,7 @@
   <syscall name="madvise" number="4218"/>
   <syscall name="getdents64" number="4219"/>
   <syscall name="fcntl64" number="4220"/>
+  <syscall name="reserved221" number="4221"/>
   <syscall name="gettid" number="4222"/>
   <syscall name="readahead" number="4223"/>
   <syscall name="setxattr" number="4224"/>
@@ -344,4 +353,90 @@
   <syscall name="fanotify_init" number="4336"/>
   <syscall name="fanotify_mark" number="4337"/>
   <syscall name="prlimit64" number="4338"/>
+  <syscall name="name_to_handle_at" number="4339"/>
+  <syscall name="open_by_handle_at" number="4340"/>
+  <syscall name="clock_adjtime" number="4341"/>
+  <syscall name="syncfs" number="4342"/>
+  <syscall name="sendmmsg" number="4343"/>
+  <syscall name="setns" number="4344"/>
+  <syscall name="process_vm_readv" number="4345"/>
+  <syscall name="process_vm_writev" number="4346"/>
+  <syscall name="kcmp" number="4347"/>
+  <syscall name="finit_module" number="4348"/>
+  <syscall name="sched_setattr" number="4349"/>
+  <syscall name="sched_getattr" number="4350"/>
+  <syscall name="renameat2" number="4351"/>
+  <syscall name="seccomp" number="4352"/>
+  <syscall name="getrandom" number="4353"/>
+  <syscall name="memfd_create" number="4354"/>
+  <syscall name="bpf" number="4355"/>
+  <syscall name="execveat" number="4356"/>
+  <syscall name="userfaultfd" number="4357"/>
+  <syscall name="membarrier" number="4358"/>
+  <syscall name="mlock2" number="4359"/>
+  <syscall name="copy_file_range" number="4360"/>
+  <syscall name="preadv2" number="4361"/>
+  <syscall name="pwritev2" number="4362"/>
+  <syscall name="pkey_mprotect" number="4363"/>
+  <syscall name="pkey_alloc" number="4364"/>
+  <syscall name="pkey_free" number="4365"/>
+  <syscall name="statx" number="4366"/>
+  <syscall name="rseq" number="4367"/>
+  <syscall name="io_pgetevents" number="4368"/>
+  <syscall name="semget" number="4393"/>
+  <syscall name="semctl" number="4394"/>
+  <syscall name="shmget" number="4395"/>
+  <syscall name="shmctl" number="4396"/>
+  <syscall name="shmat" number="4397"/>
+  <syscall name="shmdt" number="4398"/>
+  <syscall name="msgget" number="4399"/>
+  <syscall name="msgsnd" number="4400"/>
+  <syscall name="msgrcv" number="4401"/>
+  <syscall name="msgctl" number="4402"/>
+  <syscall name="clock_gettime64" number="4403"/>
+  <syscall name="clock_settime64" number="4404"/>
+  <syscall name="clock_adjtime64" number="4405"/>
+  <syscall name="clock_getres_time64" number="4406"/>
+  <syscall name="clock_nanosleep_time64" number="4407"/>
+  <syscall name="timer_gettime64" number="4408"/>
+  <syscall name="timer_settime64" number="4409"/>
+  <syscall name="timerfd_gettime64" number="4410"/>
+  <syscall name="timerfd_settime64" number="4411"/>
+  <syscall name="utimensat_time64" number="4412"/>
+  <syscall name="pselect6_time64" number="4413"/>
+  <syscall name="ppoll_time64" number="4414"/>
+  <syscall name="io_pgetevents_time64" number="4416"/>
+  <syscall name="recvmmsg_time64" number="4417"/>
+  <syscall name="mq_timedsend_time64" number="4418"/>
+  <syscall name="mq_timedreceive_time64" number="4419"/>
+  <syscall name="semtimedop_time64" number="4420"/>
+  <syscall name="rt_sigtimedwait_time64" number="4421"/>
+  <syscall name="futex_time64" number="4422"/>
+  <syscall name="sched_rr_get_interval_time64" number="4423"/>
+  <syscall name="pidfd_send_signal" number="4424"/>
+  <syscall name="io_uring_setup" number="4425"/>
+  <syscall name="io_uring_enter" number="4426"/>
+  <syscall name="io_uring_register" number="4427"/>
+  <syscall name="open_tree" number="4428"/>
+  <syscall name="move_mount" number="4429"/>
+  <syscall name="fsopen" number="4430"/>
+  <syscall name="fsconfig" number="4431"/>
+  <syscall name="fsmount" number="4432"/>
+  <syscall name="fspick" number="4433"/>
+  <syscall name="pidfd_open" number="4434"/>
+  <syscall name="clone3" number="4435"/>
+  <syscall name="close_range" number="4436"/>
+  <syscall name="openat2" number="4437"/>
+  <syscall name="pidfd_getfd" number="4438"/>
+  <syscall name="faccessat2" number="4439"/>
+  <syscall name="process_madvise" number="4440"/>
+  <syscall name="epoll_pwait2" number="4441"/>
+  <syscall name="mount_setattr" number="4442"/>
+  <syscall name="quotactl_fd" number="4443"/>
+  <syscall name="landlock_create_ruleset" number="4444"/>
+  <syscall name="landlock_add_rule" number="4445"/>
+  <syscall name="landlock_restrict_self" number="4446"/>
+  <syscall name="process_mrelease" number="4448"/>
+  <syscall name="futex_waitv" number="4449"/>
+  <syscall name="set_mempolicy_home_node" number="4450"/>
 </syscalls_info>
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.  -->
 <!-- This file was generated using the following file:
 
-     <sys/syscall.h>
+     arch/powerpc/kernel/syscalls/syscall.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 <syscalls_info>
@@ -439,4 +439,7 @@
   <syscall name="landlock_create_ruleset" number="444"/>
   <syscall name="landlock_add_rule" number="445"/>
   <syscall name="landlock_restrict_self" number="446"/>
+  <syscall name="process_mrelease" number="448"/>
+  <syscall name="futex_waitv" number="449"/>
+  <syscall name="set_mempolicy_home_node" number="450"/>
 </syscalls_info>
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 @@
 
 <!-- This file was generated using the following file:
 
-     <sys/syscall.h>
+     arch/powerpc/kernel/syscalls/syscall.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 
@@ -443,4 +443,7 @@
   <syscall name="landlock_create_ruleset" number="444"/>
   <syscall name="landlock_add_rule" number="445"/>
   <syscall name="landlock_restrict_self" number="446"/>
+  <syscall name="process_mrelease" number="448"/>
+  <syscall name="futex_waitv" number="449"/>
+  <syscall name="set_mempolicy_home_node" number="450"/>
 </syscalls_info>
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.  -->
 <!-- This file was generated using the following file:
 
-     <sys/syscall.h>
+     arch/powerpc/kernel/syscalls/syscall.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 <syscalls_info>
@@ -411,4 +411,7 @@
   <syscall name="landlock_create_ruleset" number="444"/>
   <syscall name="landlock_add_rule" number="445"/>
   <syscall name="landlock_restrict_self" number="446"/>
+  <syscall name="process_mrelease" number="448"/>
+  <syscall name="futex_waitv" number="449"/>
+  <syscall name="set_mempolicy_home_node" number="450"/>
 </syscalls_info>
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 @@
 
 <!-- This file was generated using the following file:
 
-     <sys/syscall.h>
+     arch/powerpc/kernel/syscalls/syscall.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 
@@ -415,4 +415,7 @@
   <syscall name="landlock_create_ruleset" number="444"/>
   <syscall name="landlock_add_rule" number="445"/>
   <syscall name="landlock_restrict_self" number="446"/>
+  <syscall name="process_mrelease" number="448"/>
+  <syscall name="futex_waitv" number="449"/>
+  <syscall name="set_mempolicy_home_node" number="450"/>
 </syscalls_info>
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.  -->
 <!-- This file was generated using the following file:
 
-     /usr/include/asm/unistd.h
+     arch/s390/kernel/syscalls/syscall.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 <syscalls_info>
@@ -316,6 +316,8 @@
   <syscall name="pipe2" number="325" groups="descriptor"/>
   <syscall name="dup3" number="326" groups="descriptor"/>
   <syscall name="epoll_create1" number="327" groups="descriptor"/>
+  <syscall name="preadv" number="328" groups="descriptor"/>
+  <syscall name="pwritev" number="329" groups="descriptor"/>
   <syscall name="rt_tgsigqueueinfo" number="330" groups="process,signal"/>
   <syscall name="perf_event_open" number="331" groups="descriptor"/>
   <syscall name="fanotify_init" number="332" groups="descriptor"/>
@@ -361,4 +363,72 @@
   <syscall name="recvmsg" number="372" groups="network"/>
   <syscall name="shutdown" number="373" groups="network"/>
   <syscall name="mlock2" number="374"/>
+  <syscall name="copy_file_range" number="375"/>
+  <syscall name="preadv2" number="376"/>
+  <syscall name="pwritev2" number="377"/>
+  <syscall name="s390_guarded_storage" number="378"/>
+  <syscall name="statx" number="379"/>
+  <syscall name="s390_sthyi" number="380"/>
+  <syscall name="kexec_file_load" number="381"/>
+  <syscall name="io_pgetevents" number="382"/>
+  <syscall name="rseq" number="383"/>
+  <syscall name="pkey_mprotect" number="384"/>
+  <syscall name="pkey_alloc" number="385"/>
+  <syscall name="pkey_free" number="386"/>
+  <syscall name="semget" number="393" groups="ipc"/>
+  <syscall name="semctl" number="394" groups="ipc"/>
+  <syscall name="shmget" number="395" groups="ipc"/>
+  <syscall name="shmctl" number="396" groups="ipc"/>
+  <syscall name="shmat" number="397" groups="ipc,memory"/>
+  <syscall name="shmdt" number="398" groups="ipc,memory"/>
+  <syscall name="msgget" number="399" groups="ipc"/>
+  <syscall name="msgsnd" number="400" groups="ipc"/>
+  <syscall name="msgrcv" number="401" groups="ipc"/>
+  <syscall name="msgctl" number="402" groups="ipc"/>
+  <syscall name="clock_gettime64" number="403"/>
+  <syscall name="clock_settime64" number="404"/>
+  <syscall name="clock_adjtime64" number="405"/>
+  <syscall name="clock_getres_time64" number="406"/>
+  <syscall name="clock_nanosleep_time64" number="407"/>
+  <syscall name="timer_gettime64" number="408"/>
+  <syscall name="timer_settime64" number="409"/>
+  <syscall name="timerfd_gettime64" number="410"/>
+  <syscall name="timerfd_settime64" number="411"/>
+  <syscall name="utimensat_time64" number="412"/>
+  <syscall name="pselect6_time64" number="413"/>
+  <syscall name="ppoll_time64" number="414"/>
+  <syscall name="io_pgetevents_time64" number="416"/>
+  <syscall name="recvmmsg_time64" number="417"/>
+  <syscall name="mq_timedsend_time64" number="418"/>
+  <syscall name="mq_timedreceive_time64" number="419"/>
+  <syscall name="semtimedop_time64" number="420"/>
+  <syscall name="rt_sigtimedwait_time64" number="421"/>
+  <syscall name="futex_time64" number="422"/>
+  <syscall name="sched_rr_get_interval_time64" number="423"/>
+  <syscall name="pidfd_send_signal" number="424"/>
+  <syscall name="io_uring_setup" number="425"/>
+  <syscall name="io_uring_enter" number="426"/>
+  <syscall name="io_uring_register" number="427"/>
+  <syscall name="open_tree" number="428"/>
+  <syscall name="move_mount" number="429"/>
+  <syscall name="fsopen" number="430"/>
+  <syscall name="fsconfig" number="431"/>
+  <syscall name="fsmount" number="432"/>
+  <syscall name="fspick" number="433"/>
+  <syscall name="pidfd_open" number="434"/>
+  <syscall name="clone3" number="435"/>
+  <syscall name="close_range" number="436"/>
+  <syscall name="openat2" number="437"/>
+  <syscall name="pidfd_getfd" number="438"/>
+  <syscall name="faccessat2" number="439"/>
+  <syscall name="process_madvise" number="440"/>
+  <syscall name="epoll_pwait2" number="441"/>
+  <syscall name="mount_setattr" number="442"/>
+  <syscall name="quotactl_fd" number="443"/>
+  <syscall name="landlock_create_ruleset" number="444"/>
+  <syscall name="landlock_add_rule" number="445"/>
+  <syscall name="landlock_restrict_self" number="446"/>
+  <syscall name="process_mrelease" number="448"/>
+  <syscall name="futex_waitv" number="449"/>
+  <syscall name="set_mempolicy_home_node" number="450"/>
 </syscalls_info>
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 @@
 
 <!-- This file was generated using the following file:
 
-     /usr/include/asm/unistd.h
+     arch/s390/kernel/syscalls/syscall.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 
+
 <syscalls_info>
   <syscall name="exit" number="1"/>
   <syscall name="fork" number="2"/>
@@ -319,6 +320,8 @@
   <syscall name="pipe2" number="325"/>
   <syscall name="dup3" number="326"/>
   <syscall name="epoll_create1" number="327"/>
+  <syscall name="preadv" number="328"/>
+  <syscall name="pwritev" number="329"/>
   <syscall name="rt_tgsigqueueinfo" number="330"/>
   <syscall name="perf_event_open" number="331"/>
   <syscall name="fanotify_init" number="332"/>
@@ -364,4 +367,72 @@
   <syscall name="recvmsg" number="372"/>
   <syscall name="shutdown" number="373"/>
   <syscall name="mlock2" number="374"/>
+  <syscall name="copy_file_range" number="375"/>
+  <syscall name="preadv2" number="376"/>
+  <syscall name="pwritev2" number="377"/>
+  <syscall name="s390_guarded_storage" number="378"/>
+  <syscall name="statx" number="379"/>
+  <syscall name="s390_sthyi" number="380"/>
+  <syscall name="kexec_file_load" number="381"/>
+  <syscall name="io_pgetevents" number="382"/>
+  <syscall name="rseq" number="383"/>
+  <syscall name="pkey_mprotect" number="384"/>
+  <syscall name="pkey_alloc" number="385"/>
+  <syscall name="pkey_free" number="386"/>
+  <syscall name="semget" number="393"/>
+  <syscall name="semctl" number="394"/>
+  <syscall name="shmget" number="395"/>
+  <syscall name="shmctl" number="396"/>
+  <syscall name="shmat" number="397"/>
+  <syscall name="shmdt" number="398"/>
+  <syscall name="msgget" number="399"/>
+  <syscall name="msgsnd" number="400"/>
+  <syscall name="msgrcv" number="401"/>
+  <syscall name="msgctl" number="402"/>
+  <syscall name="clock_gettime64" number="403"/>
+  <syscall name="clock_settime64" number="404"/>
+  <syscall name="clock_adjtime64" number="405"/>
+  <syscall name="clock_getres_time64" number="406"/>
+  <syscall name="clock_nanosleep_time64" number="407"/>
+  <syscall name="timer_gettime64" number="408"/>
+  <syscall name="timer_settime64" number="409"/>
+  <syscall name="timerfd_gettime64" number="410"/>
+  <syscall name="timerfd_settime64" number="411"/>
+  <syscall name="utimensat_time64" number="412"/>
+  <syscall name="pselect6_time64" number="413"/>
+  <syscall name="ppoll_time64" number="414"/>
+  <syscall name="io_pgetevents_time64" number="416"/>
+  <syscall name="recvmmsg_time64" number="417"/>
+  <syscall name="mq_timedsend_time64" number="418"/>
+  <syscall name="mq_timedreceive_time64" number="419"/>
+  <syscall name="semtimedop_time64" number="420"/>
+  <syscall name="rt_sigtimedwait_time64" number="421"/>
+  <syscall name="futex_time64" number="422"/>
+  <syscall name="sched_rr_get_interval_time64" number="423"/>
+  <syscall name="pidfd_send_signal" number="424"/>
+  <syscall name="io_uring_setup" number="425"/>
+  <syscall name="io_uring_enter" number="426"/>
+  <syscall name="io_uring_register" number="427"/>
+  <syscall name="open_tree" number="428"/>
+  <syscall name="move_mount" number="429"/>
+  <syscall name="fsopen" number="430"/>
+  <syscall name="fsconfig" number="431"/>
+  <syscall name="fsmount" number="432"/>
+  <syscall name="fspick" number="433"/>
+  <syscall name="pidfd_open" number="434"/>
+  <syscall name="clone3" number="435"/>
+  <syscall name="close_range" number="436"/>
+  <syscall name="openat2" number="437"/>
+  <syscall name="pidfd_getfd" number="438"/>
+  <syscall name="faccessat2" number="439"/>
+  <syscall name="process_madvise" number="440"/>
+  <syscall name="epoll_pwait2" number="441"/>
+  <syscall name="mount_setattr" number="442"/>
+  <syscall name="quotactl_fd" number="443"/>
+  <syscall name="landlock_create_ruleset" number="444"/>
+  <syscall name="landlock_add_rule" number="445"/>
+  <syscall name="landlock_restrict_self" number="446"/>
+  <syscall name="process_mrelease" number="448"/>
+  <syscall name="futex_waitv" number="449"/>
+  <syscall name="set_mempolicy_home_node" number="450"/>
 </syscalls_info>
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.  -->
 <!-- This file was generated using the following file:
 
-     /usr/include/asm/unistd.h
+     arch/s390/kernel/syscalls/syscall.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 <syscalls_info>
@@ -283,6 +283,8 @@
   <syscall name="pipe2" number="325" groups="descriptor"/>
   <syscall name="dup3" number="326" groups="descriptor"/>
   <syscall name="epoll_create1" number="327" groups="descriptor"/>
+  <syscall name="preadv" number="328" groups="descriptor"/>
+  <syscall name="pwritev" number="329" groups="descriptor"/>
   <syscall name="rt_tgsigqueueinfo" number="330" groups="process,signal"/>
   <syscall name="perf_event_open" number="331" groups="descriptor"/>
   <syscall name="fanotify_init" number="332" groups="descriptor"/>
@@ -328,4 +330,53 @@
   <syscall name="recvmsg" number="372" groups="network"/>
   <syscall name="shutdown" number="373" groups="network"/>
   <syscall name="mlock2" number="374"/>
+  <syscall name="copy_file_range" number="375"/>
+  <syscall name="preadv2" number="376"/>
+  <syscall name="pwritev2" number="377"/>
+  <syscall name="s390_guarded_storage" number="378"/>
+  <syscall name="statx" number="379"/>
+  <syscall name="s390_sthyi" number="380"/>
+  <syscall name="kexec_file_load" number="381"/>
+  <syscall name="io_pgetevents" number="382"/>
+  <syscall name="rseq" number="383"/>
+  <syscall name="pkey_mprotect" number="384"/>
+  <syscall name="pkey_alloc" number="385"/>
+  <syscall name="pkey_free" number="386"/>
+  <syscall name="semtimedop" number="392" groups="ipc"/>
+  <syscall name="semget" number="393" groups="ipc"/>
+  <syscall name="semctl" number="394" groups="ipc"/>
+  <syscall name="shmget" number="395" groups="ipc"/>
+  <syscall name="shmctl" number="396" groups="ipc"/>
+  <syscall name="shmat" number="397" groups="ipc,memory"/>
+  <syscall name="shmdt" number="398" groups="ipc,memory"/>
+  <syscall name="msgget" number="399" groups="ipc"/>
+  <syscall name="msgsnd" number="400" groups="ipc"/>
+  <syscall name="msgrcv" number="401" groups="ipc"/>
+  <syscall name="msgctl" number="402" groups="ipc"/>
+  <syscall name="pidfd_send_signal" number="424"/>
+  <syscall name="io_uring_setup" number="425"/>
+  <syscall name="io_uring_enter" number="426"/>
+  <syscall name="io_uring_register" number="427"/>
+  <syscall name="open_tree" number="428"/>
+  <syscall name="move_mount" number="429"/>
+  <syscall name="fsopen" number="430"/>
+  <syscall name="fsconfig" number="431"/>
+  <syscall name="fsmount" number="432"/>
+  <syscall name="fspick" number="433"/>
+  <syscall name="pidfd_open" number="434"/>
+  <syscall name="clone3" number="435"/>
+  <syscall name="close_range" number="436"/>
+  <syscall name="openat2" number="437"/>
+  <syscall name="pidfd_getfd" number="438"/>
+  <syscall name="faccessat2" number="439"/>
+  <syscall name="process_madvise" number="440"/>
+  <syscall name="epoll_pwait2" number="441"/>
+  <syscall name="mount_setattr" number="442"/>
+  <syscall name="quotactl_fd" number="443"/>
+  <syscall name="landlock_create_ruleset" number="444"/>
+  <syscall name="landlock_add_rule" number="445"/>
+  <syscall name="landlock_restrict_self" number="446"/>
+  <syscall name="process_mrelease" number="448"/>
+  <syscall name="futex_waitv" number="449"/>
+  <syscall name="set_mempolicy_home_node" number="450"/>
 </syscalls_info>
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 @@
 
 <!-- This file was generated using the following file:
 
-     /usr/include/asm/unistd.h
+     arch/s390/kernel/syscalls/syscall.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 
+
 <syscalls_info>
   <syscall name="exit" number="1"/>
   <syscall name="fork" number="2"/>
@@ -286,6 +287,8 @@
   <syscall name="pipe2" number="325"/>
   <syscall name="dup3" number="326"/>
   <syscall name="epoll_create1" number="327"/>
+  <syscall name="preadv" number="328"/>
+  <syscall name="pwritev" number="329"/>
   <syscall name="rt_tgsigqueueinfo" number="330"/>
   <syscall name="perf_event_open" number="331"/>
   <syscall name="fanotify_init" number="332"/>
@@ -331,4 +334,53 @@
   <syscall name="recvmsg" number="372"/>
   <syscall name="shutdown" number="373"/>
   <syscall name="mlock2" number="374"/>
+  <syscall name="copy_file_range" number="375"/>
+  <syscall name="preadv2" number="376"/>
+  <syscall name="pwritev2" number="377"/>
+  <syscall name="s390_guarded_storage" number="378"/>
+  <syscall name="statx" number="379"/>
+  <syscall name="s390_sthyi" number="380"/>
+  <syscall name="kexec_file_load" number="381"/>
+  <syscall name="io_pgetevents" number="382"/>
+  <syscall name="rseq" number="383"/>
+  <syscall name="pkey_mprotect" number="384"/>
+  <syscall name="pkey_alloc" number="385"/>
+  <syscall name="pkey_free" number="386"/>
+  <syscall name="semtimedop" number="392"/>
+  <syscall name="semget" number="393"/>
+  <syscall name="semctl" number="394"/>
+  <syscall name="shmget" number="395"/>
+  <syscall name="shmctl" number="396"/>
+  <syscall name="shmat" number="397"/>
+  <syscall name="shmdt" number="398"/>
+  <syscall name="msgget" number="399"/>
+  <syscall name="msgsnd" number="400"/>
+  <syscall name="msgrcv" number="401"/>
+  <syscall name="msgctl" number="402"/>
+  <syscall name="pidfd_send_signal" number="424"/>
+  <syscall name="io_uring_setup" number="425"/>
+  <syscall name="io_uring_enter" number="426"/>
+  <syscall name="io_uring_register" number="427"/>
+  <syscall name="open_tree" number="428"/>
+  <syscall name="move_mount" number="429"/>
+  <syscall name="fsopen" number="430"/>
+  <syscall name="fsconfig" number="431"/>
+  <syscall name="fsmount" number="432"/>
+  <syscall name="fspick" number="433"/>
+  <syscall name="pidfd_open" number="434"/>
+  <syscall name="clone3" number="435"/>
+  <syscall name="close_range" number="436"/>
+  <syscall name="openat2" number="437"/>
+  <syscall name="pidfd_getfd" number="438"/>
+  <syscall name="faccessat2" number="439"/>
+  <syscall name="process_madvise" number="440"/>
+  <syscall name="epoll_pwait2" number="441"/>
+  <syscall name="mount_setattr" number="442"/>
+  <syscall name="quotactl_fd" number="443"/>
+  <syscall name="landlock_create_ruleset" number="444"/>
+  <syscall name="landlock_add_rule" number="445"/>
+  <syscall name="landlock_restrict_self" number="446"/>
+  <syscall name="process_mrelease" number="448"/>
+  <syscall name="futex_waitv" number="449"/>
+  <syscall name="set_mempolicy_home_node" number="450"/>
 </syscalls_info>
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.  -->
 <!-- This file was generated using the following file:
-     
-     /usr/src/linux/arch/sparc/include/asm/unistd.h
+
+     arch/sparc/kernel/syscalls/syscall.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 <syscalls_info>
@@ -338,4 +338,96 @@
   <syscall name="rt_tgsigqueueinfo" number="326" groups="process,signal"/>
   <syscall name="perf_event_open" number="327" groups="descriptor"/>
   <syscall name="recvmmsg" number="328" groups="network"/>
+  <syscall name="fanotify_init" number="329" groups="descriptor"/>
+  <syscall name="fanotify_mark" number="330" groups="descriptor,file"/>
+  <syscall name="prlimit64" number="331"/>
+  <syscall name="name_to_handle_at" number="332" groups="descriptor,file"/>
+  <syscall name="open_by_handle_at" number="333" groups="descriptor"/>
+  <syscall name="clock_adjtime" number="334"/>
+  <syscall name="syncfs" number="335" groups="descriptor"/>
+  <syscall name="sendmmsg" number="336" groups="network"/>
+  <syscall name="setns" number="337" groups="descriptor"/>
+  <syscall name="process_vm_readv" number="338"/>
+  <syscall name="process_vm_writev" number="339"/>
+  <syscall name="kern_features" number="340"/>
+  <syscall name="kcmp" number="341"/>
+  <syscall name="finit_module" number="342" groups="descriptor"/>
+  <syscall name="sched_setattr" number="343"/>
+  <syscall name="sched_getattr" number="344"/>
+  <syscall name="renameat2" number="345"/>
+  <syscall name="seccomp" number="346"/>
+  <syscall name="getrandom" number="347"/>
+  <syscall name="memfd_create" number="348"/>
+  <syscall name="bpf" number="349"/>
+  <syscall name="execveat" number="350"/>
+  <syscall name="membarrier" number="351"/>
+  <syscall name="userfaultfd" number="352"/>
+  <syscall name="bind" number="353" groups="network"/>
+  <syscall name="listen" number="354" groups="network"/>
+  <syscall name="setsockopt" number="355" groups="network"/>
+  <syscall name="mlock2" number="356"/>
+  <syscall name="copy_file_range" number="357"/>
+  <syscall name="preadv2" number="358"/>
+  <syscall name="pwritev2" number="359"/>
+  <syscall name="statx" number="360"/>
+  <syscall name="io_pgetevents" number="361"/>
+  <syscall name="pkey_mprotect" number="362"/>
+  <syscall name="pkey_alloc" number="363"/>
+  <syscall name="pkey_free" number="364"/>
+  <syscall name="rseq" number="365"/>
+  <syscall name="semget" number="393" groups="ipc"/>
+  <syscall name="semctl" number="394" groups="ipc"/>
+  <syscall name="shmget" number="395" groups="ipc"/>
+  <syscall name="shmctl" number="396" groups="ipc"/>
+  <syscall name="shmat" number="397" groups="ipc,memory"/>
+  <syscall name="shmdt" number="398" groups="ipc,memory"/>
+  <syscall name="msgget" number="399" groups="ipc"/>
+  <syscall name="msgsnd" number="400" groups="ipc"/>
+  <syscall name="msgrcv" number="401" groups="ipc"/>
+  <syscall name="msgctl" number="402" groups="ipc"/>
+  <syscall name="clock_gettime64" number="403"/>
+  <syscall name="clock_settime64" number="404"/>
+  <syscall name="clock_adjtime64" number="405"/>
+  <syscall name="clock_getres_time64" number="406"/>
+  <syscall name="clock_nanosleep_time64" number="407"/>
+  <syscall name="timer_gettime64" number="408"/>
+  <syscall name="timer_settime64" number="409"/>
+  <syscall name="timerfd_gettime64" number="410"/>
+  <syscall name="timerfd_settime64" number="411"/>
+  <syscall name="utimensat_time64" number="412"/>
+  <syscall name="pselect6_time64" number="413"/>
+  <syscall name="ppoll_time64" number="414"/>
+  <syscall name="io_pgetevents_time64" number="416"/>
+  <syscall name="recvmmsg_time64" number="417"/>
+  <syscall name="mq_timedsend_time64" number="418"/>
+  <syscall name="mq_timedreceive_time64" number="419"/>
+  <syscall name="semtimedop_time64" number="420"/>
+  <syscall name="rt_sigtimedwait_time64" number="421"/>
+  <syscall name="futex_time64" number="422"/>
+  <syscall name="sched_rr_get_interval_time64" number="423"/>
+  <syscall name="pidfd_send_signal" number="424"/>
+  <syscall name="io_uring_setup" number="425"/>
+  <syscall name="io_uring_enter" number="426"/>
+  <syscall name="io_uring_register" number="427"/>
+  <syscall name="open_tree" number="428"/>
+  <syscall name="move_mount" number="429"/>
+  <syscall name="fsopen" number="430"/>
+  <syscall name="fsconfig" number="431"/>
+  <syscall name="fsmount" number="432"/>
+  <syscall name="fspick" number="433"/>
+  <syscall name="pidfd_open" number="434"/>
+  <syscall name="close_range" number="436"/>
+  <syscall name="openat2" number="437"/>
+  <syscall name="pidfd_getfd" number="438"/>
+  <syscall name="faccessat2" number="439"/>
+  <syscall name="process_madvise" number="440"/>
+  <syscall name="epoll_pwait2" number="441"/>
+  <syscall name="mount_setattr" number="442"/>
+  <syscall name="quotactl_fd" number="443"/>
+  <syscall name="landlock_create_ruleset" number="444"/>
+  <syscall name="landlock_add_rule" number="445"/>
+  <syscall name="landlock_restrict_self" number="446"/>
+  <syscall name="process_mrelease" number="448"/>
+  <syscall name="futex_waitv" number="449"/>
+  <syscall name="set_mempolicy_home_node" number="450"/>
 </syscalls_info>
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 @@
 <!DOCTYPE feature SYSTEM "gdb-syscalls.dtd">
 
 <!-- This file was generated using the following file:
-     
-     /usr/src/linux/arch/sparc/include/asm/unistd.h
+
+     arch/sparc/kernel/syscalls/syscall.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 
+
 <syscalls_info>
   <syscall name="restart_syscall" number="0"/>
   <syscall name="exit" number="1"/>
@@ -27,7 +28,7 @@
   <syscall name="unlink" number="10"/>
   <syscall name="execv" number="11"/>
   <syscall name="chdir" number="12"/>
-  <syscall name="chown"	number="13"/>
+  <syscall name="chown" number="13"/>
   <syscall name="mknod" number="14"/>
   <syscall name="chmod" number="15"/>
   <syscall name="lchown" number="16"/>
@@ -341,4 +342,96 @@
   <syscall name="rt_tgsigqueueinfo" number="326"/>
   <syscall name="perf_event_open" number="327"/>
   <syscall name="recvmmsg" number="328"/>
+  <syscall name="fanotify_init" number="329"/>
+  <syscall name="fanotify_mark" number="330"/>
+  <syscall name="prlimit64" number="331"/>
+  <syscall name="name_to_handle_at" number="332"/>
+  <syscall name="open_by_handle_at" number="333"/>
+  <syscall name="clock_adjtime" number="334"/>
+  <syscall name="syncfs" number="335"/>
+  <syscall name="sendmmsg" number="336"/>
+  <syscall name="setns" number="337"/>
+  <syscall name="process_vm_readv" number="338"/>
+  <syscall name="process_vm_writev" number="339"/>
+  <syscall name="kern_features" number="340"/>
+  <syscall name="kcmp" number="341"/>
+  <syscall name="finit_module" number="342"/>
+  <syscall name="sched_setattr" number="343"/>
+  <syscall name="sched_getattr" number="344"/>
+  <syscall name="renameat2" number="345"/>
+  <syscall name="seccomp" number="346"/>
+  <syscall name="getrandom" number="347"/>
+  <syscall name="memfd_create" number="348"/>
+  <syscall name="bpf" number="349"/>
+  <syscall name="execveat" number="350"/>
+  <syscall name="membarrier" number="351"/>
+  <syscall name="userfaultfd" number="352"/>
+  <syscall name="bind" number="353"/>
+  <syscall name="listen" number="354"/>
+  <syscall name="setsockopt" number="355"/>
+  <syscall name="mlock2" number="356"/>
+  <syscall name="copy_file_range" number="357"/>
+  <syscall name="preadv2" number="358"/>
+  <syscall name="pwritev2" number="359"/>
+  <syscall name="statx" number="360"/>
+  <syscall name="io_pgetevents" number="361"/>
+  <syscall name="pkey_mprotect" number="362"/>
+  <syscall name="pkey_alloc" number="363"/>
+  <syscall name="pkey_free" number="364"/>
+  <syscall name="rseq" number="365"/>
+  <syscall name="semget" number="393"/>
+  <syscall name="semctl" number="394"/>
+  <syscall name="shmget" number="395"/>
+  <syscall name="shmctl" number="396"/>
+  <syscall name="shmat" number="397"/>
+  <syscall name="shmdt" number="398"/>
+  <syscall name="msgget" number="399"/>
+  <syscall name="msgsnd" number="400"/>
+  <syscall name="msgrcv" number="401"/>
+  <syscall name="msgctl" number="402"/>
+  <syscall name="clock_gettime64" number="403"/>
+  <syscall name="clock_settime64" number="404"/>
+  <syscall name="clock_adjtime64" number="405"/>
+  <syscall name="clock_getres_time64" number="406"/>
+  <syscall name="clock_nanosleep_time64" number="407"/>
+  <syscall name="timer_gettime64" number="408"/>
+  <syscall name="timer_settime64" number="409"/>
+  <syscall name="timerfd_gettime64" number="410"/>
+  <syscall name="timerfd_settime64" number="411"/>
+  <syscall name="utimensat_time64" number="412"/>
+  <syscall name="pselect6_time64" number="413"/>
+  <syscall name="ppoll_time64" number="414"/>
+  <syscall name="io_pgetevents_time64" number="416"/>
+  <syscall name="recvmmsg_time64" number="417"/>
+  <syscall name="mq_timedsend_time64" number="418"/>
+  <syscall name="mq_timedreceive_time64" number="419"/>
+  <syscall name="semtimedop_time64" number="420"/>
+  <syscall name="rt_sigtimedwait_time64" number="421"/>
+  <syscall name="futex_time64" number="422"/>
+  <syscall name="sched_rr_get_interval_time64" number="423"/>
+  <syscall name="pidfd_send_signal" number="424"/>
+  <syscall name="io_uring_setup" number="425"/>
+  <syscall name="io_uring_enter" number="426"/>
+  <syscall name="io_uring_register" number="427"/>
+  <syscall name="open_tree" number="428"/>
+  <syscall name="move_mount" number="429"/>
+  <syscall name="fsopen" number="430"/>
+  <syscall name="fsconfig" number="431"/>
+  <syscall name="fsmount" number="432"/>
+  <syscall name="fspick" number="433"/>
+  <syscall name="pidfd_open" number="434"/>
+  <syscall name="close_range" number="436"/>
+  <syscall name="openat2" number="437"/>
+  <syscall name="pidfd_getfd" number="438"/>
+  <syscall name="faccessat2" number="439"/>
+  <syscall name="process_madvise" number="440"/>
+  <syscall name="epoll_pwait2" number="441"/>
+  <syscall name="mount_setattr" number="442"/>
+  <syscall name="quotactl_fd" number="443"/>
+  <syscall name="landlock_create_ruleset" number="444"/>
+  <syscall name="landlock_add_rule" number="445"/>
+  <syscall name="landlock_restrict_self" number="446"/>
+  <syscall name="process_mrelease" number="448"/>
+  <syscall name="futex_waitv" number="449"/>
+  <syscall name="set_mempolicy_home_node" number="450"/>
 </syscalls_info>
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.  -->
 <!-- This file was generated using the following file:
-     
-     /usr/src/linux/arch/sparc/include/asm/unistd.h
+
+     arch/sparc/kernel/syscalls/syscall.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 <syscalls_info>
@@ -320,4 +320,77 @@
   <syscall name="rt_tgsigqueueinfo" number="326" groups="process,signal"/>
   <syscall name="perf_event_open" number="327" groups="descriptor"/>
   <syscall name="recvmmsg" number="328" groups="network"/>
+  <syscall name="fanotify_init" number="329" groups="descriptor"/>
+  <syscall name="fanotify_mark" number="330" groups="descriptor,file"/>
+  <syscall name="prlimit64" number="331"/>
+  <syscall name="name_to_handle_at" number="332" groups="descriptor,file"/>
+  <syscall name="open_by_handle_at" number="333" groups="descriptor"/>
+  <syscall name="clock_adjtime" number="334"/>
+  <syscall name="syncfs" number="335" groups="descriptor"/>
+  <syscall name="sendmmsg" number="336" groups="network"/>
+  <syscall name="setns" number="337" groups="descriptor"/>
+  <syscall name="process_vm_readv" number="338"/>
+  <syscall name="process_vm_writev" number="339"/>
+  <syscall name="kern_features" number="340"/>
+  <syscall name="kcmp" number="341"/>
+  <syscall name="finit_module" number="342" groups="descriptor"/>
+  <syscall name="sched_setattr" number="343"/>
+  <syscall name="sched_getattr" number="344"/>
+  <syscall name="renameat2" number="345"/>
+  <syscall name="seccomp" number="346"/>
+  <syscall name="getrandom" number="347"/>
+  <syscall name="memfd_create" number="348"/>
+  <syscall name="bpf" number="349"/>
+  <syscall name="execveat" number="350"/>
+  <syscall name="membarrier" number="351"/>
+  <syscall name="userfaultfd" number="352"/>
+  <syscall name="bind" number="353" groups="network"/>
+  <syscall name="listen" number="354" groups="network"/>
+  <syscall name="setsockopt" number="355" groups="network"/>
+  <syscall name="mlock2" number="356"/>
+  <syscall name="copy_file_range" number="357"/>
+  <syscall name="preadv2" number="358"/>
+  <syscall name="pwritev2" number="359"/>
+  <syscall name="statx" number="360"/>
+  <syscall name="io_pgetevents" number="361"/>
+  <syscall name="pkey_mprotect" number="362"/>
+  <syscall name="pkey_alloc" number="363"/>
+  <syscall name="pkey_free" number="364"/>
+  <syscall name="rseq" number="365"/>
+  <syscall name="semtimedop" number="392" groups="ipc"/>
+  <syscall name="semget" number="393" groups="ipc"/>
+  <syscall name="semctl" number="394" groups="ipc"/>
+  <syscall name="shmget" number="395" groups="ipc"/>
+  <syscall name="shmctl" number="396" groups="ipc"/>
+  <syscall name="shmat" number="397" groups="ipc,memory"/>
+  <syscall name="shmdt" number="398" groups="ipc,memory"/>
+  <syscall name="msgget" number="399" groups="ipc"/>
+  <syscall name="msgsnd" number="400" groups="ipc"/>
+  <syscall name="msgrcv" number="401" groups="ipc"/>
+  <syscall name="msgctl" number="402" groups="ipc"/>
+  <syscall name="pidfd_send_signal" number="424"/>
+  <syscall name="io_uring_setup" number="425"/>
+  <syscall name="io_uring_enter" number="426"/>
+  <syscall name="io_uring_register" number="427"/>
+  <syscall name="open_tree" number="428"/>
+  <syscall name="move_mount" number="429"/>
+  <syscall name="fsopen" number="430"/>
+  <syscall name="fsconfig" number="431"/>
+  <syscall name="fsmount" number="432"/>
+  <syscall name="fspick" number="433"/>
+  <syscall name="pidfd_open" number="434"/>
+  <syscall name="close_range" number="436"/>
+  <syscall name="openat2" number="437"/>
+  <syscall name="pidfd_getfd" number="438"/>
+  <syscall name="faccessat2" number="439"/>
+  <syscall name="process_madvise" number="440"/>
+  <syscall name="epoll_pwait2" number="441"/>
+  <syscall name="mount_setattr" number="442"/>
+  <syscall name="quotactl_fd" number="443"/>
+  <syscall name="landlock_create_ruleset" number="444"/>
+  <syscall name="landlock_add_rule" number="445"/>
+  <syscall name="landlock_restrict_self" number="446"/>
+  <syscall name="process_mrelease" number="448"/>
+  <syscall name="futex_waitv" number="449"/>
+  <syscall name="set_mempolicy_home_node" number="450"/>
 </syscalls_info>
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 @@
 <!DOCTYPE feature SYSTEM "gdb-syscalls.dtd">
 
 <!-- This file was generated using the following file:
-     
-     /usr/src/linux/arch/sparc/include/asm/unistd.h
+
+     arch/sparc/kernel/syscalls/syscall.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 
+
 <syscalls_info>
   <syscall name="restart_syscall" number="0"/>
   <syscall name="exit" number="1"/>
@@ -27,7 +28,7 @@
   <syscall name="unlink" number="10"/>
   <syscall name="execv" number="11"/>
   <syscall name="chdir" number="12"/>
-  <syscall name="chown"	number="13"/>
+  <syscall name="chown" number="13"/>
   <syscall name="mknod" number="14"/>
   <syscall name="chmod" number="15"/>
   <syscall name="lchown" number="16"/>
@@ -323,4 +324,77 @@
   <syscall name="rt_tgsigqueueinfo" number="326"/>
   <syscall name="perf_event_open" number="327"/>
   <syscall name="recvmmsg" number="328"/>
+  <syscall name="fanotify_init" number="329"/>
+  <syscall name="fanotify_mark" number="330"/>
+  <syscall name="prlimit64" number="331"/>
+  <syscall name="name_to_handle_at" number="332"/>
+  <syscall name="open_by_handle_at" number="333"/>
+  <syscall name="clock_adjtime" number="334"/>
+  <syscall name="syncfs" number="335"/>
+  <syscall name="sendmmsg" number="336"/>
+  <syscall name="setns" number="337"/>
+  <syscall name="process_vm_readv" number="338"/>
+  <syscall name="process_vm_writev" number="339"/>
+  <syscall name="kern_features" number="340"/>
+  <syscall name="kcmp" number="341"/>
+  <syscall name="finit_module" number="342"/>
+  <syscall name="sched_setattr" number="343"/>
+  <syscall name="sched_getattr" number="344"/>
+  <syscall name="renameat2" number="345"/>
+  <syscall name="seccomp" number="346"/>
+  <syscall name="getrandom" number="347"/>
+  <syscall name="memfd_create" number="348"/>
+  <syscall name="bpf" number="349"/>
+  <syscall name="execveat" number="350"/>
+  <syscall name="membarrier" number="351"/>
+  <syscall name="userfaultfd" number="352"/>
+  <syscall name="bind" number="353"/>
+  <syscall name="listen" number="354"/>
+  <syscall name="setsockopt" number="355"/>
+  <syscall name="mlock2" number="356"/>
+  <syscall name="copy_file_range" number="357"/>
+  <syscall name="preadv2" number="358"/>
+  <syscall name="pwritev2" number="359"/>
+  <syscall name="statx" number="360"/>
+  <syscall name="io_pgetevents" number="361"/>
+  <syscall name="pkey_mprotect" number="362"/>
+  <syscall name="pkey_alloc" number="363"/>
+  <syscall name="pkey_free" number="364"/>
+  <syscall name="rseq" number="365"/>
+  <syscall name="semtimedop" number="392"/>
+  <syscall name="semget" number="393"/>
+  <syscall name="semctl" number="394"/>
+  <syscall name="shmget" number="395"/>
+  <syscall name="shmctl" number="396"/>
+  <syscall name="shmat" number="397"/>
+  <syscall name="shmdt" number="398"/>
+  <syscall name="msgget" number="399"/>
+  <syscall name="msgsnd" number="400"/>
+  <syscall name="msgrcv" number="401"/>
+  <syscall name="msgctl" number="402"/>
+  <syscall name="pidfd_send_signal" number="424"/>
+  <syscall name="io_uring_setup" number="425"/>
+  <syscall name="io_uring_enter" number="426"/>
+  <syscall name="io_uring_register" number="427"/>
+  <syscall name="open_tree" number="428"/>
+  <syscall name="move_mount" number="429"/>
+  <syscall name="fsopen" number="430"/>
+  <syscall name="fsconfig" number="431"/>
+  <syscall name="fsmount" number="432"/>
+  <syscall name="fspick" number="433"/>
+  <syscall name="pidfd_open" number="434"/>
+  <syscall name="close_range" number="436"/>
+  <syscall name="openat2" number="437"/>
+  <syscall name="pidfd_getfd" number="438"/>
+  <syscall name="faccessat2" number="439"/>
+  <syscall name="process_madvise" number="440"/>
+  <syscall name="epoll_pwait2" number="441"/>
+  <syscall name="mount_setattr" number="442"/>
+  <syscall name="quotactl_fd" number="443"/>
+  <syscall name="landlock_create_ruleset" number="444"/>
+  <syscall name="landlock_add_rule" number="445"/>
+  <syscall name="landlock_restrict_self" number="446"/>
+  <syscall name="process_mrelease" number="448"/>
+  <syscall name="futex_waitv" number="449"/>
+  <syscall name="set_mempolicy_home_node" number="450"/>
 </syscalls_info>
diff --git a/gdb/syscalls/update-linux-2.sh b/gdb/syscalls/update-linux-2.sh
new file mode 100755
index 00000000000..907ff9eb54d
--- /dev/null
+++ b/gdb/syscalls/update-linux-2.sh
@@ -0,0 +1,168 @@
+#!/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 <http://www.gnu.org/licenses/>.
+
+# Used to generate .xml.in files, like so:
+# $ ./update-linux-2.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
+<?xml version="1.0"?>
+<!-- Copyright (C) $start_date-$year Free Software Foundation, Inc.
+
+     Copying and distribution of this file, with or without modification,
+     are permitted in any medium without royalty provided the copyright
+     notice and this notice are preserved.  -->
+
+<!DOCTYPE feature SYSTEM "gdb-syscalls.dtd">
+
+<!-- This file was generated using the following file:
+
+     $f
+
+     The file mentioned above belongs to the Linux Kernel.  -->
+
+
+EOF
+
+    echo '<syscalls_info>'
+}
+
+
+post ()
+{
+    echo '</syscalls_info>'
+}
+
+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" \
+	| awk "{printf \"  <syscall name=\\\"%s\\\" number=\\\"%s\\\"/>\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

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH][gdb] Update syscalls/{amd64,i386}-linux.xml
  2022-05-10 11:39           ` Tom de Vries
@ 2022-05-12  9:00             ` Tom de Vries
  0 siblings, 0 replies; 22+ messages in thread
From: Tom de Vries @ 2022-05-12  9:00 UTC (permalink / raw)
  To: Tom Tromey, Tom de Vries via Gdb-patches; +Cc: Simon Marchi

On 5/10/22 13:39, Tom de Vries wrote:
> Subject:
> Re: [PATCH][gdb] Update syscalls/{amd64,i386}-linux.xml
> From:
> Tom de Vries <tdevries@suse.de>
> Date:
> 5/10/22, 13:39
> 
> To:
> Tom Tromey <tom@tromey.com>, Tom de Vries via Gdb-patches 
> <gdb-patches@sourceware.org>
> CC:
> Simon Marchi <simark@simark.ca>
> 
> 
> On 5/9/22 19:19, Tom Tromey wrote:
>>>>>>> "Tom" == Tom de Vries via Gdb-patches 
>>>>>>> <gdb-patches@sourceware.org> writes:
>>
>> Tom> diff --git a/gdb/syscalls/gen-header.py b/gdb/syscalls/gen-header.py
>>
>> Tom> +<!-- Copyright (C) 2009-%s Free Software Foundation, Inc.
>>
>> Tom> +"""
>> Tom> +    % (time.strftime("%Y"), infname)
>>
>> It seems like overkill to have a python script just for a "here
>> document" and "date +%Y".
>>
> 
> Ack, fixed.
> 
>> Tom> +(
>> Tom> +    python gen-header.py "<sys/syscall.h>"
>> Tom> +
>> Tom> +    tmp=$(mktemp)
>> Tom> +
>> Tom> +    echo '#include <sys/syscall.h>' \
>> Tom> +    | gcc -E - -dD "$@" \
>> Tom> +    | egrep '#define __NR_' \
>> Tom> +        > $tmp
>> Tom> +
>> Tom> +    echo '<syscalls_info>'
>> Tom> +
>> Tom> +    while read line; do
>> Tom> +    name=$(echo $line | awk '{print $2}' | sed 's/^__NR_//')
>> Tom> +    nr=$(echo $line | awk '{print $3}')
>> Tom> +    echo "  <syscall name=\"$name\" number=\"$nr\"/>"
>> Tom> +    done < $tmp
>> Tom> +
>> Tom> +    echo '</syscalls_info>'
>>
>> Alternatively doing the whole thing in Python would also be alright.
> 
> I've done things in bash for now, that's easier for me.
> 
> Any further comments?
> 

I've committed this fixup patch.

Thanks,
- Tom

> Attachments:
> 
> 0006-gdb-tdep-Improve-gdb-syscalls-update-linux.sh.patch	2.8 KB
> 

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH][gdb] Update syscalls/{amd64,i386}-linux.xml
  2022-05-10 11:53         ` Tom de Vries
@ 2022-05-16 16:07           ` Tom Tromey
  2022-05-18  9:58             ` [committed][gdb/tdep] Add gdb/syscalls/update-linux-from-src.sh Tom de Vries
  0 siblings, 1 reply; 22+ messages in thread
From: Tom Tromey @ 2022-05-16 16:07 UTC (permalink / raw)
  To: Tom de Vries via Gdb-patches; +Cc: Simon Marchi, Tom de Vries

>>>>> "Tom" == Tom de Vries via Gdb-patches <gdb-patches@sourceware.org> writes:

Tom> On 5/9/22 12:39, Tom de Vries wrote:
>> [ FWIW, it seems the linux kernel migrated to some syscall.tbl
>> approach, and perhaps generating from there could be an option. ]

Tom> Well, I gave that a try, in a separate script update-linux-2.sh
Tom> (haven't though of a good name yet).

Tom> Any comments?

Maybe it should just replace update-linux.sh?

Tom> In particular, there are a few new "reserved<n>" and "unused<n>"
Tom> entries that don't look problematic to me, but perhaps these should be
Tom> filtered out.

I think it seems better to skip them.

Anyway if this is the direction Linux is going, like if this .tbl file
is some authoritative source, then I think it makes the most sense for
gdb to follow.

Tom

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [committed][gdb/tdep] Add gdb/syscalls/update-linux-from-src.sh
  2022-05-16 16:07           ` Tom Tromey
@ 2022-05-18  9:58             ` Tom de Vries
  0 siblings, 0 replies; 22+ messages in thread
From: Tom de Vries @ 2022-05-18  9:58 UTC (permalink / raw)
  To: Tom Tromey, Tom de Vries via Gdb-patches; +Cc: Simon Marchi

[-- Attachment #1: Type: text/plain, Size: 1773 bytes --]

[ was : Re: [PATCH][gdb] Update syscalls/{amd64,i386}-linux.xml ]

On 5/16/22 18:07, Tom Tromey wrote:
>>>>>> "Tom" == Tom de Vries via Gdb-patches <gdb-patches@sourceware.org> writes:
> 
> Tom> On 5/9/22 12:39, Tom de Vries wrote:
>>> [ FWIW, it seems the linux kernel migrated to some syscall.tbl
>>> approach, and perhaps generating from there could be an option. ]
> 
> Tom> Well, I gave that a try, in a separate script update-linux-2.sh
> Tom> (haven't though of a good name yet).
> 

I've renamed to update-linux-from-src.sh.

> Tom> Any comments?
> 
> Maybe it should just replace update-linux.sh?
> 

ATM, not all archs use this .tbl format, notable exception being aarch64.

Besides, for the archs where the .tbl file is available, I like the 
ability to double check.

This new script is more powerful because it can generate for multiple 
architectures, but in doing so it does interpretation of the .tbl files 
in the kernel sources: which file to pick, which abi.

The update-linux.sh script uses the documented interface to syscalls: 
sys/syscalls.h  It's just that you need to run it on the particular 
platform (or, using cross compiler + sysroot), but I imagine maintainers 
of particular targets have this available.

> Tom> In particular, there are a few new "reserved<n>" and "unused<n>"
> Tom> entries that don't look problematic to me, but perhaps these should be
> Tom> filtered out.
> 
> I think it seems better to skip them.
> 

Done.

> Anyway if this is the direction Linux is going, like if this .tbl file
> is some authoritative source, 

Yes, the kernel sources use scripts to generate things like syscall 
headers from these .tbl files.

> then I think it makes the most sense for
> gdb to follow.

Ack, committed as attached.

Thanks,
- Tom

[-- Attachment #2: 0001-gdb-tdep-Add-gdb-syscalls-update-linux-from-src.sh.patch --]
[-- Type: text/x-patch, Size: 74461 bytes --]

[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.  -->
 <!-- This file was generated using the following file:
 
-     <sys/syscall.h>
+     arch/x86/entry/syscalls/syscall_64.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 <syscalls_info>
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 @@
 
 <!-- This file was generated using the following file:
 
-     <sys/syscall.h>
+     arch/x86/entry/syscalls/syscall_64.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 
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.  -->
 <!-- This file was generated using the following file:
 
-     <sys/syscall.h>
+     arch/x86/entry/syscalls/syscall_32.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 <syscalls_info>
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 @@
 
 <!-- This file was generated using the following file:
 
-     <sys/syscall.h>
+     arch/x86/entry/syscalls/syscall_32.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 
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.  -->
 <!-- This file was generated using the following file:
-     
-     /usr/src/linux/arch/mips/include/asm/unistd.h
+
+     arch/mips/kernel/syscalls/syscall_n32.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 <syscalls_info>
@@ -188,7 +188,6 @@
   <syscall name="getpmsg" number="6174"/>
   <syscall name="putpmsg" number="6175"/>
   <syscall name="afs_syscall" number="6176"/>
-  <syscall name="reserved177" number="6177"/>
   <syscall name="gettid" number="6178"/>
   <syscall name="readahead" number="6179" groups="descriptor"/>
   <syscall name="setxattr" number="6180" groups="file"/>
@@ -204,7 +203,6 @@
   <syscall name="lremovexattr" number="6190" groups="file"/>
   <syscall name="fremovexattr" number="6191" groups="descriptor"/>
   <syscall name="tkill" number="6192" groups="signal"/>
-  <syscall name="reserved193" number="6193"/>
   <syscall name="futex" number="6194"/>
   <syscall name="sched_setaffinity" number="6195"/>
   <syscall name="sched_getaffinity" number="6196"/>
@@ -313,4 +311,80 @@
   <syscall name="fanotify_init" number="6300" groups="descriptor"/>
   <syscall name="fanotify_mark" number="6301" groups="descriptor,file"/>
   <syscall name="prlimit64" number="6302"/>
+  <syscall name="name_to_handle_at" number="6303" groups="descriptor,file"/>
+  <syscall name="open_by_handle_at" number="6304" groups="descriptor"/>
+  <syscall name="clock_adjtime" number="6305"/>
+  <syscall name="syncfs" number="6306" groups="descriptor"/>
+  <syscall name="sendmmsg" number="6307" groups="network"/>
+  <syscall name="setns" number="6308" groups="descriptor"/>
+  <syscall name="process_vm_readv" number="6309"/>
+  <syscall name="process_vm_writev" number="6310"/>
+  <syscall name="kcmp" number="6311"/>
+  <syscall name="finit_module" number="6312" groups="descriptor"/>
+  <syscall name="sched_setattr" number="6313"/>
+  <syscall name="sched_getattr" number="6314"/>
+  <syscall name="renameat2" number="6315"/>
+  <syscall name="seccomp" number="6316"/>
+  <syscall name="getrandom" number="6317"/>
+  <syscall name="memfd_create" number="6318"/>
+  <syscall name="bpf" number="6319"/>
+  <syscall name="execveat" number="6320"/>
+  <syscall name="userfaultfd" number="6321"/>
+  <syscall name="membarrier" number="6322"/>
+  <syscall name="mlock2" number="6323"/>
+  <syscall name="copy_file_range" number="6324"/>
+  <syscall name="preadv2" number="6325"/>
+  <syscall name="pwritev2" number="6326"/>
+  <syscall name="pkey_mprotect" number="6327"/>
+  <syscall name="pkey_alloc" number="6328"/>
+  <syscall name="pkey_free" number="6329"/>
+  <syscall name="statx" number="6330"/>
+  <syscall name="rseq" number="6331"/>
+  <syscall name="io_pgetevents" number="6332"/>
+  <syscall name="clock_gettime64" number="6403"/>
+  <syscall name="clock_settime64" number="6404"/>
+  <syscall name="clock_adjtime64" number="6405"/>
+  <syscall name="clock_getres_time64" number="6406"/>
+  <syscall name="clock_nanosleep_time64" number="6407"/>
+  <syscall name="timer_gettime64" number="6408"/>
+  <syscall name="timer_settime64" number="6409"/>
+  <syscall name="timerfd_gettime64" number="6410"/>
+  <syscall name="timerfd_settime64" number="6411"/>
+  <syscall name="utimensat_time64" number="6412"/>
+  <syscall name="pselect6_time64" number="6413"/>
+  <syscall name="ppoll_time64" number="6414"/>
+  <syscall name="io_pgetevents_time64" number="6416"/>
+  <syscall name="recvmmsg_time64" number="6417"/>
+  <syscall name="mq_timedsend_time64" number="6418"/>
+  <syscall name="mq_timedreceive_time64" number="6419"/>
+  <syscall name="semtimedop_time64" number="6420"/>
+  <syscall name="rt_sigtimedwait_time64" number="6421"/>
+  <syscall name="futex_time64" number="6422"/>
+  <syscall name="sched_rr_get_interval_time64" number="6423"/>
+  <syscall name="pidfd_send_signal" number="6424"/>
+  <syscall name="io_uring_setup" number="6425"/>
+  <syscall name="io_uring_enter" number="6426"/>
+  <syscall name="io_uring_register" number="6427"/>
+  <syscall name="open_tree" number="6428"/>
+  <syscall name="move_mount" number="6429"/>
+  <syscall name="fsopen" number="6430"/>
+  <syscall name="fsconfig" number="6431"/>
+  <syscall name="fsmount" number="6432"/>
+  <syscall name="fspick" number="6433"/>
+  <syscall name="pidfd_open" number="6434"/>
+  <syscall name="clone3" number="6435"/>
+  <syscall name="close_range" number="6436"/>
+  <syscall name="openat2" number="6437"/>
+  <syscall name="pidfd_getfd" number="6438"/>
+  <syscall name="faccessat2" number="6439"/>
+  <syscall name="process_madvise" number="6440"/>
+  <syscall name="epoll_pwait2" number="6441"/>
+  <syscall name="mount_setattr" number="6442"/>
+  <syscall name="quotactl_fd" number="6443"/>
+  <syscall name="landlock_create_ruleset" number="6444"/>
+  <syscall name="landlock_add_rule" number="6445"/>
+  <syscall name="landlock_restrict_self" number="6446"/>
+  <syscall name="process_mrelease" number="6448"/>
+  <syscall name="futex_waitv" number="6449"/>
+  <syscall name="set_mempolicy_home_node" number="6450"/>
 </syscalls_info>
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 @@
 <!DOCTYPE feature SYSTEM "gdb-syscalls.dtd">
 
 <!-- This file was generated using the following file:
-     
-     /usr/src/linux/arch/mips/include/asm/unistd.h
+
+     arch/mips/kernel/syscalls/syscall_n32.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 
+
 <syscalls_info>
   <syscall name="read" number="6000"/>
   <syscall name="write" number="6001"/>
@@ -191,7 +192,6 @@
   <syscall name="getpmsg" number="6174"/>
   <syscall name="putpmsg" number="6175"/>
   <syscall name="afs_syscall" number="6176"/>
-  <syscall name="reserved177" number="6177"/>
   <syscall name="gettid" number="6178"/>
   <syscall name="readahead" number="6179"/>
   <syscall name="setxattr" number="6180"/>
@@ -207,7 +207,6 @@
   <syscall name="lremovexattr" number="6190"/>
   <syscall name="fremovexattr" number="6191"/>
   <syscall name="tkill" number="6192"/>
-  <syscall name="reserved193" number="6193"/>
   <syscall name="futex" number="6194"/>
   <syscall name="sched_setaffinity" number="6195"/>
   <syscall name="sched_getaffinity" number="6196"/>
@@ -316,4 +315,80 @@
   <syscall name="fanotify_init" number="6300"/>
   <syscall name="fanotify_mark" number="6301"/>
   <syscall name="prlimit64" number="6302"/>
+  <syscall name="name_to_handle_at" number="6303"/>
+  <syscall name="open_by_handle_at" number="6304"/>
+  <syscall name="clock_adjtime" number="6305"/>
+  <syscall name="syncfs" number="6306"/>
+  <syscall name="sendmmsg" number="6307"/>
+  <syscall name="setns" number="6308"/>
+  <syscall name="process_vm_readv" number="6309"/>
+  <syscall name="process_vm_writev" number="6310"/>
+  <syscall name="kcmp" number="6311"/>
+  <syscall name="finit_module" number="6312"/>
+  <syscall name="sched_setattr" number="6313"/>
+  <syscall name="sched_getattr" number="6314"/>
+  <syscall name="renameat2" number="6315"/>
+  <syscall name="seccomp" number="6316"/>
+  <syscall name="getrandom" number="6317"/>
+  <syscall name="memfd_create" number="6318"/>
+  <syscall name="bpf" number="6319"/>
+  <syscall name="execveat" number="6320"/>
+  <syscall name="userfaultfd" number="6321"/>
+  <syscall name="membarrier" number="6322"/>
+  <syscall name="mlock2" number="6323"/>
+  <syscall name="copy_file_range" number="6324"/>
+  <syscall name="preadv2" number="6325"/>
+  <syscall name="pwritev2" number="6326"/>
+  <syscall name="pkey_mprotect" number="6327"/>
+  <syscall name="pkey_alloc" number="6328"/>
+  <syscall name="pkey_free" number="6329"/>
+  <syscall name="statx" number="6330"/>
+  <syscall name="rseq" number="6331"/>
+  <syscall name="io_pgetevents" number="6332"/>
+  <syscall name="clock_gettime64" number="6403"/>
+  <syscall name="clock_settime64" number="6404"/>
+  <syscall name="clock_adjtime64" number="6405"/>
+  <syscall name="clock_getres_time64" number="6406"/>
+  <syscall name="clock_nanosleep_time64" number="6407"/>
+  <syscall name="timer_gettime64" number="6408"/>
+  <syscall name="timer_settime64" number="6409"/>
+  <syscall name="timerfd_gettime64" number="6410"/>
+  <syscall name="timerfd_settime64" number="6411"/>
+  <syscall name="utimensat_time64" number="6412"/>
+  <syscall name="pselect6_time64" number="6413"/>
+  <syscall name="ppoll_time64" number="6414"/>
+  <syscall name="io_pgetevents_time64" number="6416"/>
+  <syscall name="recvmmsg_time64" number="6417"/>
+  <syscall name="mq_timedsend_time64" number="6418"/>
+  <syscall name="mq_timedreceive_time64" number="6419"/>
+  <syscall name="semtimedop_time64" number="6420"/>
+  <syscall name="rt_sigtimedwait_time64" number="6421"/>
+  <syscall name="futex_time64" number="6422"/>
+  <syscall name="sched_rr_get_interval_time64" number="6423"/>
+  <syscall name="pidfd_send_signal" number="6424"/>
+  <syscall name="io_uring_setup" number="6425"/>
+  <syscall name="io_uring_enter" number="6426"/>
+  <syscall name="io_uring_register" number="6427"/>
+  <syscall name="open_tree" number="6428"/>
+  <syscall name="move_mount" number="6429"/>
+  <syscall name="fsopen" number="6430"/>
+  <syscall name="fsconfig" number="6431"/>
+  <syscall name="fsmount" number="6432"/>
+  <syscall name="fspick" number="6433"/>
+  <syscall name="pidfd_open" number="6434"/>
+  <syscall name="clone3" number="6435"/>
+  <syscall name="close_range" number="6436"/>
+  <syscall name="openat2" number="6437"/>
+  <syscall name="pidfd_getfd" number="6438"/>
+  <syscall name="faccessat2" number="6439"/>
+  <syscall name="process_madvise" number="6440"/>
+  <syscall name="epoll_pwait2" number="6441"/>
+  <syscall name="mount_setattr" number="6442"/>
+  <syscall name="quotactl_fd" number="6443"/>
+  <syscall name="landlock_create_ruleset" number="6444"/>
+  <syscall name="landlock_add_rule" number="6445"/>
+  <syscall name="landlock_restrict_self" number="6446"/>
+  <syscall name="process_mrelease" number="6448"/>
+  <syscall name="futex_waitv" number="6449"/>
+  <syscall name="set_mempolicy_home_node" number="6450"/>
 </syscalls_info>
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.  -->
 <!-- This file was generated using the following file:
-     
-     /usr/src/linux/arch/mips/include/asm/unistd.h
+
+     arch/mips/kernel/syscalls/syscall_n64.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 <syscalls_info>
@@ -306,4 +306,60 @@
   <syscall name="fanotify_init" number="5295" groups="descriptor"/>
   <syscall name="fanotify_mark" number="5296" groups="descriptor,file"/>
   <syscall name="prlimit64" number="5297"/>
+  <syscall name="name_to_handle_at" number="5298" groups="descriptor,file"/>
+  <syscall name="open_by_handle_at" number="5299" groups="descriptor"/>
+  <syscall name="clock_adjtime" number="5300"/>
+  <syscall name="syncfs" number="5301" groups="descriptor"/>
+  <syscall name="sendmmsg" number="5302" groups="network"/>
+  <syscall name="setns" number="5303" groups="descriptor"/>
+  <syscall name="process_vm_readv" number="5304"/>
+  <syscall name="process_vm_writev" number="5305"/>
+  <syscall name="kcmp" number="5306"/>
+  <syscall name="finit_module" number="5307" groups="descriptor"/>
+  <syscall name="getdents64" number="5308" groups="descriptor"/>
+  <syscall name="sched_setattr" number="5309"/>
+  <syscall name="sched_getattr" number="5310"/>
+  <syscall name="renameat2" number="5311"/>
+  <syscall name="seccomp" number="5312"/>
+  <syscall name="getrandom" number="5313"/>
+  <syscall name="memfd_create" number="5314"/>
+  <syscall name="bpf" number="5315"/>
+  <syscall name="execveat" number="5316"/>
+  <syscall name="userfaultfd" number="5317"/>
+  <syscall name="membarrier" number="5318"/>
+  <syscall name="mlock2" number="5319"/>
+  <syscall name="copy_file_range" number="5320"/>
+  <syscall name="preadv2" number="5321"/>
+  <syscall name="pwritev2" number="5322"/>
+  <syscall name="pkey_mprotect" number="5323"/>
+  <syscall name="pkey_alloc" number="5324"/>
+  <syscall name="pkey_free" number="5325"/>
+  <syscall name="statx" number="5326"/>
+  <syscall name="rseq" number="5327"/>
+  <syscall name="io_pgetevents" number="5328"/>
+  <syscall name="pidfd_send_signal" number="5424"/>
+  <syscall name="io_uring_setup" number="5425"/>
+  <syscall name="io_uring_enter" number="5426"/>
+  <syscall name="io_uring_register" number="5427"/>
+  <syscall name="open_tree" number="5428"/>
+  <syscall name="move_mount" number="5429"/>
+  <syscall name="fsopen" number="5430"/>
+  <syscall name="fsconfig" number="5431"/>
+  <syscall name="fsmount" number="5432"/>
+  <syscall name="fspick" number="5433"/>
+  <syscall name="pidfd_open" number="5434"/>
+  <syscall name="clone3" number="5435"/>
+  <syscall name="close_range" number="5436"/>
+  <syscall name="openat2" number="5437"/>
+  <syscall name="pidfd_getfd" number="5438"/>
+  <syscall name="faccessat2" number="5439"/>
+  <syscall name="process_madvise" number="5440"/>
+  <syscall name="epoll_pwait2" number="5441"/>
+  <syscall name="mount_setattr" number="5442"/>
+  <syscall name="quotactl_fd" number="5443"/>
+  <syscall name="landlock_create_ruleset" number="5444"/>
+  <syscall name="landlock_add_rule" number="5445"/>
+  <syscall name="landlock_restrict_self" number="5446"/>
+  <syscall name="process_mrelease" number="5448"/>
+  <syscall name="futex_waitv" number="5449"/>
 </syscalls_info>
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 @@
 <!DOCTYPE feature SYSTEM "gdb-syscalls.dtd">
 
 <!-- This file was generated using the following file:
-     
-     /usr/src/linux/arch/mips/include/asm/unistd.h
+
+     arch/mips/kernel/syscalls/syscall_n64.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 
+
 <syscalls_info>
   <syscall name="read" number="5000"/>
   <syscall name="write" number="5001"/>
@@ -309,4 +310,60 @@
   <syscall name="fanotify_init" number="5295"/>
   <syscall name="fanotify_mark" number="5296"/>
   <syscall name="prlimit64" number="5297"/>
+  <syscall name="name_to_handle_at" number="5298"/>
+  <syscall name="open_by_handle_at" number="5299"/>
+  <syscall name="clock_adjtime" number="5300"/>
+  <syscall name="syncfs" number="5301"/>
+  <syscall name="sendmmsg" number="5302"/>
+  <syscall name="setns" number="5303"/>
+  <syscall name="process_vm_readv" number="5304"/>
+  <syscall name="process_vm_writev" number="5305"/>
+  <syscall name="kcmp" number="5306"/>
+  <syscall name="finit_module" number="5307"/>
+  <syscall name="getdents64" number="5308"/>
+  <syscall name="sched_setattr" number="5309"/>
+  <syscall name="sched_getattr" number="5310"/>
+  <syscall name="renameat2" number="5311"/>
+  <syscall name="seccomp" number="5312"/>
+  <syscall name="getrandom" number="5313"/>
+  <syscall name="memfd_create" number="5314"/>
+  <syscall name="bpf" number="5315"/>
+  <syscall name="execveat" number="5316"/>
+  <syscall name="userfaultfd" number="5317"/>
+  <syscall name="membarrier" number="5318"/>
+  <syscall name="mlock2" number="5319"/>
+  <syscall name="copy_file_range" number="5320"/>
+  <syscall name="preadv2" number="5321"/>
+  <syscall name="pwritev2" number="5322"/>
+  <syscall name="pkey_mprotect" number="5323"/>
+  <syscall name="pkey_alloc" number="5324"/>
+  <syscall name="pkey_free" number="5325"/>
+  <syscall name="statx" number="5326"/>
+  <syscall name="rseq" number="5327"/>
+  <syscall name="io_pgetevents" number="5328"/>
+  <syscall name="pidfd_send_signal" number="5424"/>
+  <syscall name="io_uring_setup" number="5425"/>
+  <syscall name="io_uring_enter" number="5426"/>
+  <syscall name="io_uring_register" number="5427"/>
+  <syscall name="open_tree" number="5428"/>
+  <syscall name="move_mount" number="5429"/>
+  <syscall name="fsopen" number="5430"/>
+  <syscall name="fsconfig" number="5431"/>
+  <syscall name="fsmount" number="5432"/>
+  <syscall name="fspick" number="5433"/>
+  <syscall name="pidfd_open" number="5434"/>
+  <syscall name="clone3" number="5435"/>
+  <syscall name="close_range" number="5436"/>
+  <syscall name="openat2" number="5437"/>
+  <syscall name="pidfd_getfd" number="5438"/>
+  <syscall name="faccessat2" number="5439"/>
+  <syscall name="process_madvise" number="5440"/>
+  <syscall name="epoll_pwait2" number="5441"/>
+  <syscall name="mount_setattr" number="5442"/>
+  <syscall name="quotactl_fd" number="5443"/>
+  <syscall name="landlock_create_ruleset" number="5444"/>
+  <syscall name="landlock_add_rule" number="5445"/>
+  <syscall name="landlock_restrict_self" number="5446"/>
+  <syscall name="process_mrelease" number="5448"/>
+  <syscall name="futex_waitv" number="5449"/>
 </syscalls_info>
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.  -->
 <!-- This file was generated using the following file:
-     
-     /usr/src/linux/arch/mips/include/asm/unistd.h
+
+     arch/mips/kernel/syscalls/syscall_o32.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 <syscalls_info>
@@ -341,4 +341,90 @@
   <syscall name="fanotify_init" number="4336" groups="descriptor"/>
   <syscall name="fanotify_mark" number="4337" groups="descriptor,file"/>
   <syscall name="prlimit64" number="4338"/>
+  <syscall name="name_to_handle_at" number="4339" groups="descriptor,file"/>
+  <syscall name="open_by_handle_at" number="4340" groups="descriptor"/>
+  <syscall name="clock_adjtime" number="4341"/>
+  <syscall name="syncfs" number="4342" groups="descriptor"/>
+  <syscall name="sendmmsg" number="4343" groups="network"/>
+  <syscall name="setns" number="4344" groups="descriptor"/>
+  <syscall name="process_vm_readv" number="4345"/>
+  <syscall name="process_vm_writev" number="4346"/>
+  <syscall name="kcmp" number="4347"/>
+  <syscall name="finit_module" number="4348" groups="descriptor"/>
+  <syscall name="sched_setattr" number="4349"/>
+  <syscall name="sched_getattr" number="4350"/>
+  <syscall name="renameat2" number="4351"/>
+  <syscall name="seccomp" number="4352"/>
+  <syscall name="getrandom" number="4353"/>
+  <syscall name="memfd_create" number="4354"/>
+  <syscall name="bpf" number="4355"/>
+  <syscall name="execveat" number="4356"/>
+  <syscall name="userfaultfd" number="4357"/>
+  <syscall name="membarrier" number="4358"/>
+  <syscall name="mlock2" number="4359"/>
+  <syscall name="copy_file_range" number="4360"/>
+  <syscall name="preadv2" number="4361"/>
+  <syscall name="pwritev2" number="4362"/>
+  <syscall name="pkey_mprotect" number="4363"/>
+  <syscall name="pkey_alloc" number="4364"/>
+  <syscall name="pkey_free" number="4365"/>
+  <syscall name="statx" number="4366"/>
+  <syscall name="rseq" number="4367"/>
+  <syscall name="io_pgetevents" number="4368"/>
+  <syscall name="semget" number="4393" groups="ipc"/>
+  <syscall name="semctl" number="4394" groups="ipc"/>
+  <syscall name="shmget" number="4395" groups="ipc"/>
+  <syscall name="shmctl" number="4396" groups="ipc"/>
+  <syscall name="shmat" number="4397" groups="ipc,memory"/>
+  <syscall name="shmdt" number="4398" groups="ipc,memory"/>
+  <syscall name="msgget" number="4399" groups="ipc"/>
+  <syscall name="msgsnd" number="4400" groups="ipc"/>
+  <syscall name="msgrcv" number="4401" groups="ipc"/>
+  <syscall name="msgctl" number="4402" groups="ipc"/>
+  <syscall name="clock_gettime64" number="4403"/>
+  <syscall name="clock_settime64" number="4404"/>
+  <syscall name="clock_adjtime64" number="4405"/>
+  <syscall name="clock_getres_time64" number="4406"/>
+  <syscall name="clock_nanosleep_time64" number="4407"/>
+  <syscall name="timer_gettime64" number="4408"/>
+  <syscall name="timer_settime64" number="4409"/>
+  <syscall name="timerfd_gettime64" number="4410"/>
+  <syscall name="timerfd_settime64" number="4411"/>
+  <syscall name="utimensat_time64" number="4412"/>
+  <syscall name="pselect6_time64" number="4413"/>
+  <syscall name="ppoll_time64" number="4414"/>
+  <syscall name="io_pgetevents_time64" number="4416"/>
+  <syscall name="recvmmsg_time64" number="4417"/>
+  <syscall name="mq_timedsend_time64" number="4418"/>
+  <syscall name="mq_timedreceive_time64" number="4419"/>
+  <syscall name="semtimedop_time64" number="4420"/>
+  <syscall name="rt_sigtimedwait_time64" number="4421"/>
+  <syscall name="futex_time64" number="4422"/>
+  <syscall name="sched_rr_get_interval_time64" number="4423"/>
+  <syscall name="pidfd_send_signal" number="4424"/>
+  <syscall name="io_uring_setup" number="4425"/>
+  <syscall name="io_uring_enter" number="4426"/>
+  <syscall name="io_uring_register" number="4427"/>
+  <syscall name="open_tree" number="4428"/>
+  <syscall name="move_mount" number="4429"/>
+  <syscall name="fsopen" number="4430"/>
+  <syscall name="fsconfig" number="4431"/>
+  <syscall name="fsmount" number="4432"/>
+  <syscall name="fspick" number="4433"/>
+  <syscall name="pidfd_open" number="4434"/>
+  <syscall name="clone3" number="4435"/>
+  <syscall name="close_range" number="4436"/>
+  <syscall name="openat2" number="4437"/>
+  <syscall name="pidfd_getfd" number="4438"/>
+  <syscall name="faccessat2" number="4439"/>
+  <syscall name="process_madvise" number="4440"/>
+  <syscall name="epoll_pwait2" number="4441"/>
+  <syscall name="mount_setattr" number="4442"/>
+  <syscall name="quotactl_fd" number="4443"/>
+  <syscall name="landlock_create_ruleset" number="4444"/>
+  <syscall name="landlock_add_rule" number="4445"/>
+  <syscall name="landlock_restrict_self" number="4446"/>
+  <syscall name="process_mrelease" number="4448"/>
+  <syscall name="futex_waitv" number="4449"/>
+  <syscall name="set_mempolicy_home_node" number="4450"/>
 </syscalls_info>
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 @@
 <!DOCTYPE feature SYSTEM "gdb-syscalls.dtd">
 
 <!-- This file was generated using the following file:
-     
-     /usr/src/linux/arch/mips/include/asm/unistd.h
+
+     arch/mips/kernel/syscalls/syscall_o32.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 
+
 <syscalls_info>
   <syscall name="syscall" number="4000"/>
   <syscall name="exit" number="4001"/>
@@ -344,4 +345,90 @@
   <syscall name="fanotify_init" number="4336"/>
   <syscall name="fanotify_mark" number="4337"/>
   <syscall name="prlimit64" number="4338"/>
+  <syscall name="name_to_handle_at" number="4339"/>
+  <syscall name="open_by_handle_at" number="4340"/>
+  <syscall name="clock_adjtime" number="4341"/>
+  <syscall name="syncfs" number="4342"/>
+  <syscall name="sendmmsg" number="4343"/>
+  <syscall name="setns" number="4344"/>
+  <syscall name="process_vm_readv" number="4345"/>
+  <syscall name="process_vm_writev" number="4346"/>
+  <syscall name="kcmp" number="4347"/>
+  <syscall name="finit_module" number="4348"/>
+  <syscall name="sched_setattr" number="4349"/>
+  <syscall name="sched_getattr" number="4350"/>
+  <syscall name="renameat2" number="4351"/>
+  <syscall name="seccomp" number="4352"/>
+  <syscall name="getrandom" number="4353"/>
+  <syscall name="memfd_create" number="4354"/>
+  <syscall name="bpf" number="4355"/>
+  <syscall name="execveat" number="4356"/>
+  <syscall name="userfaultfd" number="4357"/>
+  <syscall name="membarrier" number="4358"/>
+  <syscall name="mlock2" number="4359"/>
+  <syscall name="copy_file_range" number="4360"/>
+  <syscall name="preadv2" number="4361"/>
+  <syscall name="pwritev2" number="4362"/>
+  <syscall name="pkey_mprotect" number="4363"/>
+  <syscall name="pkey_alloc" number="4364"/>
+  <syscall name="pkey_free" number="4365"/>
+  <syscall name="statx" number="4366"/>
+  <syscall name="rseq" number="4367"/>
+  <syscall name="io_pgetevents" number="4368"/>
+  <syscall name="semget" number="4393"/>
+  <syscall name="semctl" number="4394"/>
+  <syscall name="shmget" number="4395"/>
+  <syscall name="shmctl" number="4396"/>
+  <syscall name="shmat" number="4397"/>
+  <syscall name="shmdt" number="4398"/>
+  <syscall name="msgget" number="4399"/>
+  <syscall name="msgsnd" number="4400"/>
+  <syscall name="msgrcv" number="4401"/>
+  <syscall name="msgctl" number="4402"/>
+  <syscall name="clock_gettime64" number="4403"/>
+  <syscall name="clock_settime64" number="4404"/>
+  <syscall name="clock_adjtime64" number="4405"/>
+  <syscall name="clock_getres_time64" number="4406"/>
+  <syscall name="clock_nanosleep_time64" number="4407"/>
+  <syscall name="timer_gettime64" number="4408"/>
+  <syscall name="timer_settime64" number="4409"/>
+  <syscall name="timerfd_gettime64" number="4410"/>
+  <syscall name="timerfd_settime64" number="4411"/>
+  <syscall name="utimensat_time64" number="4412"/>
+  <syscall name="pselect6_time64" number="4413"/>
+  <syscall name="ppoll_time64" number="4414"/>
+  <syscall name="io_pgetevents_time64" number="4416"/>
+  <syscall name="recvmmsg_time64" number="4417"/>
+  <syscall name="mq_timedsend_time64" number="4418"/>
+  <syscall name="mq_timedreceive_time64" number="4419"/>
+  <syscall name="semtimedop_time64" number="4420"/>
+  <syscall name="rt_sigtimedwait_time64" number="4421"/>
+  <syscall name="futex_time64" number="4422"/>
+  <syscall name="sched_rr_get_interval_time64" number="4423"/>
+  <syscall name="pidfd_send_signal" number="4424"/>
+  <syscall name="io_uring_setup" number="4425"/>
+  <syscall name="io_uring_enter" number="4426"/>
+  <syscall name="io_uring_register" number="4427"/>
+  <syscall name="open_tree" number="4428"/>
+  <syscall name="move_mount" number="4429"/>
+  <syscall name="fsopen" number="4430"/>
+  <syscall name="fsconfig" number="4431"/>
+  <syscall name="fsmount" number="4432"/>
+  <syscall name="fspick" number="4433"/>
+  <syscall name="pidfd_open" number="4434"/>
+  <syscall name="clone3" number="4435"/>
+  <syscall name="close_range" number="4436"/>
+  <syscall name="openat2" number="4437"/>
+  <syscall name="pidfd_getfd" number="4438"/>
+  <syscall name="faccessat2" number="4439"/>
+  <syscall name="process_madvise" number="4440"/>
+  <syscall name="epoll_pwait2" number="4441"/>
+  <syscall name="mount_setattr" number="4442"/>
+  <syscall name="quotactl_fd" number="4443"/>
+  <syscall name="landlock_create_ruleset" number="4444"/>
+  <syscall name="landlock_add_rule" number="4445"/>
+  <syscall name="landlock_restrict_self" number="4446"/>
+  <syscall name="process_mrelease" number="4448"/>
+  <syscall name="futex_waitv" number="4449"/>
+  <syscall name="set_mempolicy_home_node" number="4450"/>
 </syscalls_info>
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.  -->
 <!-- This file was generated using the following file:
 
-     <sys/syscall.h>
+     arch/powerpc/kernel/syscalls/syscall.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 <syscalls_info>
@@ -439,4 +439,7 @@
   <syscall name="landlock_create_ruleset" number="444"/>
   <syscall name="landlock_add_rule" number="445"/>
   <syscall name="landlock_restrict_self" number="446"/>
+  <syscall name="process_mrelease" number="448"/>
+  <syscall name="futex_waitv" number="449"/>
+  <syscall name="set_mempolicy_home_node" number="450"/>
 </syscalls_info>
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 @@
 
 <!-- This file was generated using the following file:
 
-     <sys/syscall.h>
+     arch/powerpc/kernel/syscalls/syscall.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 
@@ -443,4 +443,7 @@
   <syscall name="landlock_create_ruleset" number="444"/>
   <syscall name="landlock_add_rule" number="445"/>
   <syscall name="landlock_restrict_self" number="446"/>
+  <syscall name="process_mrelease" number="448"/>
+  <syscall name="futex_waitv" number="449"/>
+  <syscall name="set_mempolicy_home_node" number="450"/>
 </syscalls_info>
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.  -->
 <!-- This file was generated using the following file:
 
-     <sys/syscall.h>
+     arch/powerpc/kernel/syscalls/syscall.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 <syscalls_info>
@@ -411,4 +411,7 @@
   <syscall name="landlock_create_ruleset" number="444"/>
   <syscall name="landlock_add_rule" number="445"/>
   <syscall name="landlock_restrict_self" number="446"/>
+  <syscall name="process_mrelease" number="448"/>
+  <syscall name="futex_waitv" number="449"/>
+  <syscall name="set_mempolicy_home_node" number="450"/>
 </syscalls_info>
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 @@
 
 <!-- This file was generated using the following file:
 
-     <sys/syscall.h>
+     arch/powerpc/kernel/syscalls/syscall.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 
@@ -415,4 +415,7 @@
   <syscall name="landlock_create_ruleset" number="444"/>
   <syscall name="landlock_add_rule" number="445"/>
   <syscall name="landlock_restrict_self" number="446"/>
+  <syscall name="process_mrelease" number="448"/>
+  <syscall name="futex_waitv" number="449"/>
+  <syscall name="set_mempolicy_home_node" number="450"/>
 </syscalls_info>
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.  -->
 <!-- This file was generated using the following file:
 
-     /usr/include/asm/unistd.h
+     arch/s390/kernel/syscalls/syscall.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 <syscalls_info>
@@ -316,6 +316,8 @@
   <syscall name="pipe2" number="325" groups="descriptor"/>
   <syscall name="dup3" number="326" groups="descriptor"/>
   <syscall name="epoll_create1" number="327" groups="descriptor"/>
+  <syscall name="preadv" number="328" groups="descriptor"/>
+  <syscall name="pwritev" number="329" groups="descriptor"/>
   <syscall name="rt_tgsigqueueinfo" number="330" groups="process,signal"/>
   <syscall name="perf_event_open" number="331" groups="descriptor"/>
   <syscall name="fanotify_init" number="332" groups="descriptor"/>
@@ -361,4 +363,72 @@
   <syscall name="recvmsg" number="372" groups="network"/>
   <syscall name="shutdown" number="373" groups="network"/>
   <syscall name="mlock2" number="374"/>
+  <syscall name="copy_file_range" number="375"/>
+  <syscall name="preadv2" number="376"/>
+  <syscall name="pwritev2" number="377"/>
+  <syscall name="s390_guarded_storage" number="378"/>
+  <syscall name="statx" number="379"/>
+  <syscall name="s390_sthyi" number="380"/>
+  <syscall name="kexec_file_load" number="381"/>
+  <syscall name="io_pgetevents" number="382"/>
+  <syscall name="rseq" number="383"/>
+  <syscall name="pkey_mprotect" number="384"/>
+  <syscall name="pkey_alloc" number="385"/>
+  <syscall name="pkey_free" number="386"/>
+  <syscall name="semget" number="393" groups="ipc"/>
+  <syscall name="semctl" number="394" groups="ipc"/>
+  <syscall name="shmget" number="395" groups="ipc"/>
+  <syscall name="shmctl" number="396" groups="ipc"/>
+  <syscall name="shmat" number="397" groups="ipc,memory"/>
+  <syscall name="shmdt" number="398" groups="ipc,memory"/>
+  <syscall name="msgget" number="399" groups="ipc"/>
+  <syscall name="msgsnd" number="400" groups="ipc"/>
+  <syscall name="msgrcv" number="401" groups="ipc"/>
+  <syscall name="msgctl" number="402" groups="ipc"/>
+  <syscall name="clock_gettime64" number="403"/>
+  <syscall name="clock_settime64" number="404"/>
+  <syscall name="clock_adjtime64" number="405"/>
+  <syscall name="clock_getres_time64" number="406"/>
+  <syscall name="clock_nanosleep_time64" number="407"/>
+  <syscall name="timer_gettime64" number="408"/>
+  <syscall name="timer_settime64" number="409"/>
+  <syscall name="timerfd_gettime64" number="410"/>
+  <syscall name="timerfd_settime64" number="411"/>
+  <syscall name="utimensat_time64" number="412"/>
+  <syscall name="pselect6_time64" number="413"/>
+  <syscall name="ppoll_time64" number="414"/>
+  <syscall name="io_pgetevents_time64" number="416"/>
+  <syscall name="recvmmsg_time64" number="417"/>
+  <syscall name="mq_timedsend_time64" number="418"/>
+  <syscall name="mq_timedreceive_time64" number="419"/>
+  <syscall name="semtimedop_time64" number="420"/>
+  <syscall name="rt_sigtimedwait_time64" number="421"/>
+  <syscall name="futex_time64" number="422"/>
+  <syscall name="sched_rr_get_interval_time64" number="423"/>
+  <syscall name="pidfd_send_signal" number="424"/>
+  <syscall name="io_uring_setup" number="425"/>
+  <syscall name="io_uring_enter" number="426"/>
+  <syscall name="io_uring_register" number="427"/>
+  <syscall name="open_tree" number="428"/>
+  <syscall name="move_mount" number="429"/>
+  <syscall name="fsopen" number="430"/>
+  <syscall name="fsconfig" number="431"/>
+  <syscall name="fsmount" number="432"/>
+  <syscall name="fspick" number="433"/>
+  <syscall name="pidfd_open" number="434"/>
+  <syscall name="clone3" number="435"/>
+  <syscall name="close_range" number="436"/>
+  <syscall name="openat2" number="437"/>
+  <syscall name="pidfd_getfd" number="438"/>
+  <syscall name="faccessat2" number="439"/>
+  <syscall name="process_madvise" number="440"/>
+  <syscall name="epoll_pwait2" number="441"/>
+  <syscall name="mount_setattr" number="442"/>
+  <syscall name="quotactl_fd" number="443"/>
+  <syscall name="landlock_create_ruleset" number="444"/>
+  <syscall name="landlock_add_rule" number="445"/>
+  <syscall name="landlock_restrict_self" number="446"/>
+  <syscall name="process_mrelease" number="448"/>
+  <syscall name="futex_waitv" number="449"/>
+  <syscall name="set_mempolicy_home_node" number="450"/>
 </syscalls_info>
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 @@
 
 <!-- This file was generated using the following file:
 
-     /usr/include/asm/unistd.h
+     arch/s390/kernel/syscalls/syscall.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 
+
 <syscalls_info>
   <syscall name="exit" number="1"/>
   <syscall name="fork" number="2"/>
@@ -319,6 +320,8 @@
   <syscall name="pipe2" number="325"/>
   <syscall name="dup3" number="326"/>
   <syscall name="epoll_create1" number="327"/>
+  <syscall name="preadv" number="328"/>
+  <syscall name="pwritev" number="329"/>
   <syscall name="rt_tgsigqueueinfo" number="330"/>
   <syscall name="perf_event_open" number="331"/>
   <syscall name="fanotify_init" number="332"/>
@@ -364,4 +367,72 @@
   <syscall name="recvmsg" number="372"/>
   <syscall name="shutdown" number="373"/>
   <syscall name="mlock2" number="374"/>
+  <syscall name="copy_file_range" number="375"/>
+  <syscall name="preadv2" number="376"/>
+  <syscall name="pwritev2" number="377"/>
+  <syscall name="s390_guarded_storage" number="378"/>
+  <syscall name="statx" number="379"/>
+  <syscall name="s390_sthyi" number="380"/>
+  <syscall name="kexec_file_load" number="381"/>
+  <syscall name="io_pgetevents" number="382"/>
+  <syscall name="rseq" number="383"/>
+  <syscall name="pkey_mprotect" number="384"/>
+  <syscall name="pkey_alloc" number="385"/>
+  <syscall name="pkey_free" number="386"/>
+  <syscall name="semget" number="393"/>
+  <syscall name="semctl" number="394"/>
+  <syscall name="shmget" number="395"/>
+  <syscall name="shmctl" number="396"/>
+  <syscall name="shmat" number="397"/>
+  <syscall name="shmdt" number="398"/>
+  <syscall name="msgget" number="399"/>
+  <syscall name="msgsnd" number="400"/>
+  <syscall name="msgrcv" number="401"/>
+  <syscall name="msgctl" number="402"/>
+  <syscall name="clock_gettime64" number="403"/>
+  <syscall name="clock_settime64" number="404"/>
+  <syscall name="clock_adjtime64" number="405"/>
+  <syscall name="clock_getres_time64" number="406"/>
+  <syscall name="clock_nanosleep_time64" number="407"/>
+  <syscall name="timer_gettime64" number="408"/>
+  <syscall name="timer_settime64" number="409"/>
+  <syscall name="timerfd_gettime64" number="410"/>
+  <syscall name="timerfd_settime64" number="411"/>
+  <syscall name="utimensat_time64" number="412"/>
+  <syscall name="pselect6_time64" number="413"/>
+  <syscall name="ppoll_time64" number="414"/>
+  <syscall name="io_pgetevents_time64" number="416"/>
+  <syscall name="recvmmsg_time64" number="417"/>
+  <syscall name="mq_timedsend_time64" number="418"/>
+  <syscall name="mq_timedreceive_time64" number="419"/>
+  <syscall name="semtimedop_time64" number="420"/>
+  <syscall name="rt_sigtimedwait_time64" number="421"/>
+  <syscall name="futex_time64" number="422"/>
+  <syscall name="sched_rr_get_interval_time64" number="423"/>
+  <syscall name="pidfd_send_signal" number="424"/>
+  <syscall name="io_uring_setup" number="425"/>
+  <syscall name="io_uring_enter" number="426"/>
+  <syscall name="io_uring_register" number="427"/>
+  <syscall name="open_tree" number="428"/>
+  <syscall name="move_mount" number="429"/>
+  <syscall name="fsopen" number="430"/>
+  <syscall name="fsconfig" number="431"/>
+  <syscall name="fsmount" number="432"/>
+  <syscall name="fspick" number="433"/>
+  <syscall name="pidfd_open" number="434"/>
+  <syscall name="clone3" number="435"/>
+  <syscall name="close_range" number="436"/>
+  <syscall name="openat2" number="437"/>
+  <syscall name="pidfd_getfd" number="438"/>
+  <syscall name="faccessat2" number="439"/>
+  <syscall name="process_madvise" number="440"/>
+  <syscall name="epoll_pwait2" number="441"/>
+  <syscall name="mount_setattr" number="442"/>
+  <syscall name="quotactl_fd" number="443"/>
+  <syscall name="landlock_create_ruleset" number="444"/>
+  <syscall name="landlock_add_rule" number="445"/>
+  <syscall name="landlock_restrict_self" number="446"/>
+  <syscall name="process_mrelease" number="448"/>
+  <syscall name="futex_waitv" number="449"/>
+  <syscall name="set_mempolicy_home_node" number="450"/>
 </syscalls_info>
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.  -->
 <!-- This file was generated using the following file:
 
-     /usr/include/asm/unistd.h
+     arch/s390/kernel/syscalls/syscall.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 <syscalls_info>
@@ -283,6 +283,8 @@
   <syscall name="pipe2" number="325" groups="descriptor"/>
   <syscall name="dup3" number="326" groups="descriptor"/>
   <syscall name="epoll_create1" number="327" groups="descriptor"/>
+  <syscall name="preadv" number="328" groups="descriptor"/>
+  <syscall name="pwritev" number="329" groups="descriptor"/>
   <syscall name="rt_tgsigqueueinfo" number="330" groups="process,signal"/>
   <syscall name="perf_event_open" number="331" groups="descriptor"/>
   <syscall name="fanotify_init" number="332" groups="descriptor"/>
@@ -328,4 +330,53 @@
   <syscall name="recvmsg" number="372" groups="network"/>
   <syscall name="shutdown" number="373" groups="network"/>
   <syscall name="mlock2" number="374"/>
+  <syscall name="copy_file_range" number="375"/>
+  <syscall name="preadv2" number="376"/>
+  <syscall name="pwritev2" number="377"/>
+  <syscall name="s390_guarded_storage" number="378"/>
+  <syscall name="statx" number="379"/>
+  <syscall name="s390_sthyi" number="380"/>
+  <syscall name="kexec_file_load" number="381"/>
+  <syscall name="io_pgetevents" number="382"/>
+  <syscall name="rseq" number="383"/>
+  <syscall name="pkey_mprotect" number="384"/>
+  <syscall name="pkey_alloc" number="385"/>
+  <syscall name="pkey_free" number="386"/>
+  <syscall name="semtimedop" number="392" groups="ipc"/>
+  <syscall name="semget" number="393" groups="ipc"/>
+  <syscall name="semctl" number="394" groups="ipc"/>
+  <syscall name="shmget" number="395" groups="ipc"/>
+  <syscall name="shmctl" number="396" groups="ipc"/>
+  <syscall name="shmat" number="397" groups="ipc,memory"/>
+  <syscall name="shmdt" number="398" groups="ipc,memory"/>
+  <syscall name="msgget" number="399" groups="ipc"/>
+  <syscall name="msgsnd" number="400" groups="ipc"/>
+  <syscall name="msgrcv" number="401" groups="ipc"/>
+  <syscall name="msgctl" number="402" groups="ipc"/>
+  <syscall name="pidfd_send_signal" number="424"/>
+  <syscall name="io_uring_setup" number="425"/>
+  <syscall name="io_uring_enter" number="426"/>
+  <syscall name="io_uring_register" number="427"/>
+  <syscall name="open_tree" number="428"/>
+  <syscall name="move_mount" number="429"/>
+  <syscall name="fsopen" number="430"/>
+  <syscall name="fsconfig" number="431"/>
+  <syscall name="fsmount" number="432"/>
+  <syscall name="fspick" number="433"/>
+  <syscall name="pidfd_open" number="434"/>
+  <syscall name="clone3" number="435"/>
+  <syscall name="close_range" number="436"/>
+  <syscall name="openat2" number="437"/>
+  <syscall name="pidfd_getfd" number="438"/>
+  <syscall name="faccessat2" number="439"/>
+  <syscall name="process_madvise" number="440"/>
+  <syscall name="epoll_pwait2" number="441"/>
+  <syscall name="mount_setattr" number="442"/>
+  <syscall name="quotactl_fd" number="443"/>
+  <syscall name="landlock_create_ruleset" number="444"/>
+  <syscall name="landlock_add_rule" number="445"/>
+  <syscall name="landlock_restrict_self" number="446"/>
+  <syscall name="process_mrelease" number="448"/>
+  <syscall name="futex_waitv" number="449"/>
+  <syscall name="set_mempolicy_home_node" number="450"/>
 </syscalls_info>
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 @@
 
 <!-- This file was generated using the following file:
 
-     /usr/include/asm/unistd.h
+     arch/s390/kernel/syscalls/syscall.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 
+
 <syscalls_info>
   <syscall name="exit" number="1"/>
   <syscall name="fork" number="2"/>
@@ -286,6 +287,8 @@
   <syscall name="pipe2" number="325"/>
   <syscall name="dup3" number="326"/>
   <syscall name="epoll_create1" number="327"/>
+  <syscall name="preadv" number="328"/>
+  <syscall name="pwritev" number="329"/>
   <syscall name="rt_tgsigqueueinfo" number="330"/>
   <syscall name="perf_event_open" number="331"/>
   <syscall name="fanotify_init" number="332"/>
@@ -331,4 +334,53 @@
   <syscall name="recvmsg" number="372"/>
   <syscall name="shutdown" number="373"/>
   <syscall name="mlock2" number="374"/>
+  <syscall name="copy_file_range" number="375"/>
+  <syscall name="preadv2" number="376"/>
+  <syscall name="pwritev2" number="377"/>
+  <syscall name="s390_guarded_storage" number="378"/>
+  <syscall name="statx" number="379"/>
+  <syscall name="s390_sthyi" number="380"/>
+  <syscall name="kexec_file_load" number="381"/>
+  <syscall name="io_pgetevents" number="382"/>
+  <syscall name="rseq" number="383"/>
+  <syscall name="pkey_mprotect" number="384"/>
+  <syscall name="pkey_alloc" number="385"/>
+  <syscall name="pkey_free" number="386"/>
+  <syscall name="semtimedop" number="392"/>
+  <syscall name="semget" number="393"/>
+  <syscall name="semctl" number="394"/>
+  <syscall name="shmget" number="395"/>
+  <syscall name="shmctl" number="396"/>
+  <syscall name="shmat" number="397"/>
+  <syscall name="shmdt" number="398"/>
+  <syscall name="msgget" number="399"/>
+  <syscall name="msgsnd" number="400"/>
+  <syscall name="msgrcv" number="401"/>
+  <syscall name="msgctl" number="402"/>
+  <syscall name="pidfd_send_signal" number="424"/>
+  <syscall name="io_uring_setup" number="425"/>
+  <syscall name="io_uring_enter" number="426"/>
+  <syscall name="io_uring_register" number="427"/>
+  <syscall name="open_tree" number="428"/>
+  <syscall name="move_mount" number="429"/>
+  <syscall name="fsopen" number="430"/>
+  <syscall name="fsconfig" number="431"/>
+  <syscall name="fsmount" number="432"/>
+  <syscall name="fspick" number="433"/>
+  <syscall name="pidfd_open" number="434"/>
+  <syscall name="clone3" number="435"/>
+  <syscall name="close_range" number="436"/>
+  <syscall name="openat2" number="437"/>
+  <syscall name="pidfd_getfd" number="438"/>
+  <syscall name="faccessat2" number="439"/>
+  <syscall name="process_madvise" number="440"/>
+  <syscall name="epoll_pwait2" number="441"/>
+  <syscall name="mount_setattr" number="442"/>
+  <syscall name="quotactl_fd" number="443"/>
+  <syscall name="landlock_create_ruleset" number="444"/>
+  <syscall name="landlock_add_rule" number="445"/>
+  <syscall name="landlock_restrict_self" number="446"/>
+  <syscall name="process_mrelease" number="448"/>
+  <syscall name="futex_waitv" number="449"/>
+  <syscall name="set_mempolicy_home_node" number="450"/>
 </syscalls_info>
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.  -->
 <!-- This file was generated using the following file:
-     
-     /usr/src/linux/arch/sparc/include/asm/unistd.h
+
+     arch/sparc/kernel/syscalls/syscall.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 <syscalls_info>
@@ -338,4 +338,96 @@
   <syscall name="rt_tgsigqueueinfo" number="326" groups="process,signal"/>
   <syscall name="perf_event_open" number="327" groups="descriptor"/>
   <syscall name="recvmmsg" number="328" groups="network"/>
+  <syscall name="fanotify_init" number="329" groups="descriptor"/>
+  <syscall name="fanotify_mark" number="330" groups="descriptor,file"/>
+  <syscall name="prlimit64" number="331"/>
+  <syscall name="name_to_handle_at" number="332" groups="descriptor,file"/>
+  <syscall name="open_by_handle_at" number="333" groups="descriptor"/>
+  <syscall name="clock_adjtime" number="334"/>
+  <syscall name="syncfs" number="335" groups="descriptor"/>
+  <syscall name="sendmmsg" number="336" groups="network"/>
+  <syscall name="setns" number="337" groups="descriptor"/>
+  <syscall name="process_vm_readv" number="338"/>
+  <syscall name="process_vm_writev" number="339"/>
+  <syscall name="kern_features" number="340"/>
+  <syscall name="kcmp" number="341"/>
+  <syscall name="finit_module" number="342" groups="descriptor"/>
+  <syscall name="sched_setattr" number="343"/>
+  <syscall name="sched_getattr" number="344"/>
+  <syscall name="renameat2" number="345"/>
+  <syscall name="seccomp" number="346"/>
+  <syscall name="getrandom" number="347"/>
+  <syscall name="memfd_create" number="348"/>
+  <syscall name="bpf" number="349"/>
+  <syscall name="execveat" number="350"/>
+  <syscall name="membarrier" number="351"/>
+  <syscall name="userfaultfd" number="352"/>
+  <syscall name="bind" number="353" groups="network"/>
+  <syscall name="listen" number="354" groups="network"/>
+  <syscall name="setsockopt" number="355" groups="network"/>
+  <syscall name="mlock2" number="356"/>
+  <syscall name="copy_file_range" number="357"/>
+  <syscall name="preadv2" number="358"/>
+  <syscall name="pwritev2" number="359"/>
+  <syscall name="statx" number="360"/>
+  <syscall name="io_pgetevents" number="361"/>
+  <syscall name="pkey_mprotect" number="362"/>
+  <syscall name="pkey_alloc" number="363"/>
+  <syscall name="pkey_free" number="364"/>
+  <syscall name="rseq" number="365"/>
+  <syscall name="semget" number="393" groups="ipc"/>
+  <syscall name="semctl" number="394" groups="ipc"/>
+  <syscall name="shmget" number="395" groups="ipc"/>
+  <syscall name="shmctl" number="396" groups="ipc"/>
+  <syscall name="shmat" number="397" groups="ipc,memory"/>
+  <syscall name="shmdt" number="398" groups="ipc,memory"/>
+  <syscall name="msgget" number="399" groups="ipc"/>
+  <syscall name="msgsnd" number="400" groups="ipc"/>
+  <syscall name="msgrcv" number="401" groups="ipc"/>
+  <syscall name="msgctl" number="402" groups="ipc"/>
+  <syscall name="clock_gettime64" number="403"/>
+  <syscall name="clock_settime64" number="404"/>
+  <syscall name="clock_adjtime64" number="405"/>
+  <syscall name="clock_getres_time64" number="406"/>
+  <syscall name="clock_nanosleep_time64" number="407"/>
+  <syscall name="timer_gettime64" number="408"/>
+  <syscall name="timer_settime64" number="409"/>
+  <syscall name="timerfd_gettime64" number="410"/>
+  <syscall name="timerfd_settime64" number="411"/>
+  <syscall name="utimensat_time64" number="412"/>
+  <syscall name="pselect6_time64" number="413"/>
+  <syscall name="ppoll_time64" number="414"/>
+  <syscall name="io_pgetevents_time64" number="416"/>
+  <syscall name="recvmmsg_time64" number="417"/>
+  <syscall name="mq_timedsend_time64" number="418"/>
+  <syscall name="mq_timedreceive_time64" number="419"/>
+  <syscall name="semtimedop_time64" number="420"/>
+  <syscall name="rt_sigtimedwait_time64" number="421"/>
+  <syscall name="futex_time64" number="422"/>
+  <syscall name="sched_rr_get_interval_time64" number="423"/>
+  <syscall name="pidfd_send_signal" number="424"/>
+  <syscall name="io_uring_setup" number="425"/>
+  <syscall name="io_uring_enter" number="426"/>
+  <syscall name="io_uring_register" number="427"/>
+  <syscall name="open_tree" number="428"/>
+  <syscall name="move_mount" number="429"/>
+  <syscall name="fsopen" number="430"/>
+  <syscall name="fsconfig" number="431"/>
+  <syscall name="fsmount" number="432"/>
+  <syscall name="fspick" number="433"/>
+  <syscall name="pidfd_open" number="434"/>
+  <syscall name="close_range" number="436"/>
+  <syscall name="openat2" number="437"/>
+  <syscall name="pidfd_getfd" number="438"/>
+  <syscall name="faccessat2" number="439"/>
+  <syscall name="process_madvise" number="440"/>
+  <syscall name="epoll_pwait2" number="441"/>
+  <syscall name="mount_setattr" number="442"/>
+  <syscall name="quotactl_fd" number="443"/>
+  <syscall name="landlock_create_ruleset" number="444"/>
+  <syscall name="landlock_add_rule" number="445"/>
+  <syscall name="landlock_restrict_self" number="446"/>
+  <syscall name="process_mrelease" number="448"/>
+  <syscall name="futex_waitv" number="449"/>
+  <syscall name="set_mempolicy_home_node" number="450"/>
 </syscalls_info>
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 @@
 <!DOCTYPE feature SYSTEM "gdb-syscalls.dtd">
 
 <!-- This file was generated using the following file:
-     
-     /usr/src/linux/arch/sparc/include/asm/unistd.h
+
+     arch/sparc/kernel/syscalls/syscall.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 
+
 <syscalls_info>
   <syscall name="restart_syscall" number="0"/>
   <syscall name="exit" number="1"/>
@@ -27,7 +28,7 @@
   <syscall name="unlink" number="10"/>
   <syscall name="execv" number="11"/>
   <syscall name="chdir" number="12"/>
-  <syscall name="chown"	number="13"/>
+  <syscall name="chown" number="13"/>
   <syscall name="mknod" number="14"/>
   <syscall name="chmod" number="15"/>
   <syscall name="lchown" number="16"/>
@@ -341,4 +342,96 @@
   <syscall name="rt_tgsigqueueinfo" number="326"/>
   <syscall name="perf_event_open" number="327"/>
   <syscall name="recvmmsg" number="328"/>
+  <syscall name="fanotify_init" number="329"/>
+  <syscall name="fanotify_mark" number="330"/>
+  <syscall name="prlimit64" number="331"/>
+  <syscall name="name_to_handle_at" number="332"/>
+  <syscall name="open_by_handle_at" number="333"/>
+  <syscall name="clock_adjtime" number="334"/>
+  <syscall name="syncfs" number="335"/>
+  <syscall name="sendmmsg" number="336"/>
+  <syscall name="setns" number="337"/>
+  <syscall name="process_vm_readv" number="338"/>
+  <syscall name="process_vm_writev" number="339"/>
+  <syscall name="kern_features" number="340"/>
+  <syscall name="kcmp" number="341"/>
+  <syscall name="finit_module" number="342"/>
+  <syscall name="sched_setattr" number="343"/>
+  <syscall name="sched_getattr" number="344"/>
+  <syscall name="renameat2" number="345"/>
+  <syscall name="seccomp" number="346"/>
+  <syscall name="getrandom" number="347"/>
+  <syscall name="memfd_create" number="348"/>
+  <syscall name="bpf" number="349"/>
+  <syscall name="execveat" number="350"/>
+  <syscall name="membarrier" number="351"/>
+  <syscall name="userfaultfd" number="352"/>
+  <syscall name="bind" number="353"/>
+  <syscall name="listen" number="354"/>
+  <syscall name="setsockopt" number="355"/>
+  <syscall name="mlock2" number="356"/>
+  <syscall name="copy_file_range" number="357"/>
+  <syscall name="preadv2" number="358"/>
+  <syscall name="pwritev2" number="359"/>
+  <syscall name="statx" number="360"/>
+  <syscall name="io_pgetevents" number="361"/>
+  <syscall name="pkey_mprotect" number="362"/>
+  <syscall name="pkey_alloc" number="363"/>
+  <syscall name="pkey_free" number="364"/>
+  <syscall name="rseq" number="365"/>
+  <syscall name="semget" number="393"/>
+  <syscall name="semctl" number="394"/>
+  <syscall name="shmget" number="395"/>
+  <syscall name="shmctl" number="396"/>
+  <syscall name="shmat" number="397"/>
+  <syscall name="shmdt" number="398"/>
+  <syscall name="msgget" number="399"/>
+  <syscall name="msgsnd" number="400"/>
+  <syscall name="msgrcv" number="401"/>
+  <syscall name="msgctl" number="402"/>
+  <syscall name="clock_gettime64" number="403"/>
+  <syscall name="clock_settime64" number="404"/>
+  <syscall name="clock_adjtime64" number="405"/>
+  <syscall name="clock_getres_time64" number="406"/>
+  <syscall name="clock_nanosleep_time64" number="407"/>
+  <syscall name="timer_gettime64" number="408"/>
+  <syscall name="timer_settime64" number="409"/>
+  <syscall name="timerfd_gettime64" number="410"/>
+  <syscall name="timerfd_settime64" number="411"/>
+  <syscall name="utimensat_time64" number="412"/>
+  <syscall name="pselect6_time64" number="413"/>
+  <syscall name="ppoll_time64" number="414"/>
+  <syscall name="io_pgetevents_time64" number="416"/>
+  <syscall name="recvmmsg_time64" number="417"/>
+  <syscall name="mq_timedsend_time64" number="418"/>
+  <syscall name="mq_timedreceive_time64" number="419"/>
+  <syscall name="semtimedop_time64" number="420"/>
+  <syscall name="rt_sigtimedwait_time64" number="421"/>
+  <syscall name="futex_time64" number="422"/>
+  <syscall name="sched_rr_get_interval_time64" number="423"/>
+  <syscall name="pidfd_send_signal" number="424"/>
+  <syscall name="io_uring_setup" number="425"/>
+  <syscall name="io_uring_enter" number="426"/>
+  <syscall name="io_uring_register" number="427"/>
+  <syscall name="open_tree" number="428"/>
+  <syscall name="move_mount" number="429"/>
+  <syscall name="fsopen" number="430"/>
+  <syscall name="fsconfig" number="431"/>
+  <syscall name="fsmount" number="432"/>
+  <syscall name="fspick" number="433"/>
+  <syscall name="pidfd_open" number="434"/>
+  <syscall name="close_range" number="436"/>
+  <syscall name="openat2" number="437"/>
+  <syscall name="pidfd_getfd" number="438"/>
+  <syscall name="faccessat2" number="439"/>
+  <syscall name="process_madvise" number="440"/>
+  <syscall name="epoll_pwait2" number="441"/>
+  <syscall name="mount_setattr" number="442"/>
+  <syscall name="quotactl_fd" number="443"/>
+  <syscall name="landlock_create_ruleset" number="444"/>
+  <syscall name="landlock_add_rule" number="445"/>
+  <syscall name="landlock_restrict_self" number="446"/>
+  <syscall name="process_mrelease" number="448"/>
+  <syscall name="futex_waitv" number="449"/>
+  <syscall name="set_mempolicy_home_node" number="450"/>
 </syscalls_info>
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.  -->
 <!-- This file was generated using the following file:
-     
-     /usr/src/linux/arch/sparc/include/asm/unistd.h
+
+     arch/sparc/kernel/syscalls/syscall.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 <syscalls_info>
@@ -320,4 +320,77 @@
   <syscall name="rt_tgsigqueueinfo" number="326" groups="process,signal"/>
   <syscall name="perf_event_open" number="327" groups="descriptor"/>
   <syscall name="recvmmsg" number="328" groups="network"/>
+  <syscall name="fanotify_init" number="329" groups="descriptor"/>
+  <syscall name="fanotify_mark" number="330" groups="descriptor,file"/>
+  <syscall name="prlimit64" number="331"/>
+  <syscall name="name_to_handle_at" number="332" groups="descriptor,file"/>
+  <syscall name="open_by_handle_at" number="333" groups="descriptor"/>
+  <syscall name="clock_adjtime" number="334"/>
+  <syscall name="syncfs" number="335" groups="descriptor"/>
+  <syscall name="sendmmsg" number="336" groups="network"/>
+  <syscall name="setns" number="337" groups="descriptor"/>
+  <syscall name="process_vm_readv" number="338"/>
+  <syscall name="process_vm_writev" number="339"/>
+  <syscall name="kern_features" number="340"/>
+  <syscall name="kcmp" number="341"/>
+  <syscall name="finit_module" number="342" groups="descriptor"/>
+  <syscall name="sched_setattr" number="343"/>
+  <syscall name="sched_getattr" number="344"/>
+  <syscall name="renameat2" number="345"/>
+  <syscall name="seccomp" number="346"/>
+  <syscall name="getrandom" number="347"/>
+  <syscall name="memfd_create" number="348"/>
+  <syscall name="bpf" number="349"/>
+  <syscall name="execveat" number="350"/>
+  <syscall name="membarrier" number="351"/>
+  <syscall name="userfaultfd" number="352"/>
+  <syscall name="bind" number="353" groups="network"/>
+  <syscall name="listen" number="354" groups="network"/>
+  <syscall name="setsockopt" number="355" groups="network"/>
+  <syscall name="mlock2" number="356"/>
+  <syscall name="copy_file_range" number="357"/>
+  <syscall name="preadv2" number="358"/>
+  <syscall name="pwritev2" number="359"/>
+  <syscall name="statx" number="360"/>
+  <syscall name="io_pgetevents" number="361"/>
+  <syscall name="pkey_mprotect" number="362"/>
+  <syscall name="pkey_alloc" number="363"/>
+  <syscall name="pkey_free" number="364"/>
+  <syscall name="rseq" number="365"/>
+  <syscall name="semtimedop" number="392" groups="ipc"/>
+  <syscall name="semget" number="393" groups="ipc"/>
+  <syscall name="semctl" number="394" groups="ipc"/>
+  <syscall name="shmget" number="395" groups="ipc"/>
+  <syscall name="shmctl" number="396" groups="ipc"/>
+  <syscall name="shmat" number="397" groups="ipc,memory"/>
+  <syscall name="shmdt" number="398" groups="ipc,memory"/>
+  <syscall name="msgget" number="399" groups="ipc"/>
+  <syscall name="msgsnd" number="400" groups="ipc"/>
+  <syscall name="msgrcv" number="401" groups="ipc"/>
+  <syscall name="msgctl" number="402" groups="ipc"/>
+  <syscall name="pidfd_send_signal" number="424"/>
+  <syscall name="io_uring_setup" number="425"/>
+  <syscall name="io_uring_enter" number="426"/>
+  <syscall name="io_uring_register" number="427"/>
+  <syscall name="open_tree" number="428"/>
+  <syscall name="move_mount" number="429"/>
+  <syscall name="fsopen" number="430"/>
+  <syscall name="fsconfig" number="431"/>
+  <syscall name="fsmount" number="432"/>
+  <syscall name="fspick" number="433"/>
+  <syscall name="pidfd_open" number="434"/>
+  <syscall name="close_range" number="436"/>
+  <syscall name="openat2" number="437"/>
+  <syscall name="pidfd_getfd" number="438"/>
+  <syscall name="faccessat2" number="439"/>
+  <syscall name="process_madvise" number="440"/>
+  <syscall name="epoll_pwait2" number="441"/>
+  <syscall name="mount_setattr" number="442"/>
+  <syscall name="quotactl_fd" number="443"/>
+  <syscall name="landlock_create_ruleset" number="444"/>
+  <syscall name="landlock_add_rule" number="445"/>
+  <syscall name="landlock_restrict_self" number="446"/>
+  <syscall name="process_mrelease" number="448"/>
+  <syscall name="futex_waitv" number="449"/>
+  <syscall name="set_mempolicy_home_node" number="450"/>
 </syscalls_info>
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 @@
 <!DOCTYPE feature SYSTEM "gdb-syscalls.dtd">
 
 <!-- This file was generated using the following file:
-     
-     /usr/src/linux/arch/sparc/include/asm/unistd.h
+
+     arch/sparc/kernel/syscalls/syscall.tbl
 
      The file mentioned above belongs to the Linux Kernel.  -->
 
+
 <syscalls_info>
   <syscall name="restart_syscall" number="0"/>
   <syscall name="exit" number="1"/>
@@ -27,7 +28,7 @@
   <syscall name="unlink" number="10"/>
   <syscall name="execv" number="11"/>
   <syscall name="chdir" number="12"/>
-  <syscall name="chown"	number="13"/>
+  <syscall name="chown" number="13"/>
   <syscall name="mknod" number="14"/>
   <syscall name="chmod" number="15"/>
   <syscall name="lchown" number="16"/>
@@ -323,4 +324,77 @@
   <syscall name="rt_tgsigqueueinfo" number="326"/>
   <syscall name="perf_event_open" number="327"/>
   <syscall name="recvmmsg" number="328"/>
+  <syscall name="fanotify_init" number="329"/>
+  <syscall name="fanotify_mark" number="330"/>
+  <syscall name="prlimit64" number="331"/>
+  <syscall name="name_to_handle_at" number="332"/>
+  <syscall name="open_by_handle_at" number="333"/>
+  <syscall name="clock_adjtime" number="334"/>
+  <syscall name="syncfs" number="335"/>
+  <syscall name="sendmmsg" number="336"/>
+  <syscall name="setns" number="337"/>
+  <syscall name="process_vm_readv" number="338"/>
+  <syscall name="process_vm_writev" number="339"/>
+  <syscall name="kern_features" number="340"/>
+  <syscall name="kcmp" number="341"/>
+  <syscall name="finit_module" number="342"/>
+  <syscall name="sched_setattr" number="343"/>
+  <syscall name="sched_getattr" number="344"/>
+  <syscall name="renameat2" number="345"/>
+  <syscall name="seccomp" number="346"/>
+  <syscall name="getrandom" number="347"/>
+  <syscall name="memfd_create" number="348"/>
+  <syscall name="bpf" number="349"/>
+  <syscall name="execveat" number="350"/>
+  <syscall name="membarrier" number="351"/>
+  <syscall name="userfaultfd" number="352"/>
+  <syscall name="bind" number="353"/>
+  <syscall name="listen" number="354"/>
+  <syscall name="setsockopt" number="355"/>
+  <syscall name="mlock2" number="356"/>
+  <syscall name="copy_file_range" number="357"/>
+  <syscall name="preadv2" number="358"/>
+  <syscall name="pwritev2" number="359"/>
+  <syscall name="statx" number="360"/>
+  <syscall name="io_pgetevents" number="361"/>
+  <syscall name="pkey_mprotect" number="362"/>
+  <syscall name="pkey_alloc" number="363"/>
+  <syscall name="pkey_free" number="364"/>
+  <syscall name="rseq" number="365"/>
+  <syscall name="semtimedop" number="392"/>
+  <syscall name="semget" number="393"/>
+  <syscall name="semctl" number="394"/>
+  <syscall name="shmget" number="395"/>
+  <syscall name="shmctl" number="396"/>
+  <syscall name="shmat" number="397"/>
+  <syscall name="shmdt" number="398"/>
+  <syscall name="msgget" number="399"/>
+  <syscall name="msgsnd" number="400"/>
+  <syscall name="msgrcv" number="401"/>
+  <syscall name="msgctl" number="402"/>
+  <syscall name="pidfd_send_signal" number="424"/>
+  <syscall name="io_uring_setup" number="425"/>
+  <syscall name="io_uring_enter" number="426"/>
+  <syscall name="io_uring_register" number="427"/>
+  <syscall name="open_tree" number="428"/>
+  <syscall name="move_mount" number="429"/>
+  <syscall name="fsopen" number="430"/>
+  <syscall name="fsconfig" number="431"/>
+  <syscall name="fsmount" number="432"/>
+  <syscall name="fspick" number="433"/>
+  <syscall name="pidfd_open" number="434"/>
+  <syscall name="close_range" number="436"/>
+  <syscall name="openat2" number="437"/>
+  <syscall name="pidfd_getfd" number="438"/>
+  <syscall name="faccessat2" number="439"/>
+  <syscall name="process_madvise" number="440"/>
+  <syscall name="epoll_pwait2" number="441"/>
+  <syscall name="mount_setattr" number="442"/>
+  <syscall name="quotactl_fd" number="443"/>
+  <syscall name="landlock_create_ruleset" number="444"/>
+  <syscall name="landlock_add_rule" number="445"/>
+  <syscall name="landlock_restrict_self" number="446"/>
+  <syscall name="process_mrelease" number="448"/>
+  <syscall name="futex_waitv" number="449"/>
+  <syscall name="set_mempolicy_home_node" number="450"/>
 </syscalls_info>
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 <http://www.gnu.org/licenses/>.
+
+# 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
+<?xml version="1.0"?>
+<!-- Copyright (C) $start_date-$year Free Software Foundation, Inc.
+
+     Copying and distribution of this file, with or without modification,
+     are permitted in any medium without royalty provided the copyright
+     notice and this notice are preserved.  -->
+
+<!DOCTYPE feature SYSTEM "gdb-syscalls.dtd">
+
+<!-- This file was generated using the following file:
+
+     $f
+
+     The file mentioned above belongs to the Linux Kernel.  -->
+
+
+EOF
+
+    echo '<syscalls_info>'
+}
+
+
+post ()
+{
+    echo '</syscalls_info>'
+}
+
+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 \"  <syscall name=\\\"%s\\\" number=\\\"%s\\\"/>\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

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2022-05-18  9:58 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-03 14:57 [PATCH][gdb/testsuite] Handle pipe2 syscall in gdb.base/catch-syscall.exp Tom de Vries
2022-05-05 11:47 ` [PATCH, v2][gdb/testsuite] " Tom de Vries
2022-05-05 11:49   ` [PATCH][gdb/tdep] Support catch syscall pipe2 for i386 Tom de Vries
2022-05-05 13:20     ` Simon Marchi
2022-05-09 10:26       ` [PATCH][gdb] Add gdb/syscalls/Makefile Tom de Vries
2022-05-09 14:41         ` Simon Marchi
2022-05-09 14:46           ` Tom de Vries
2022-05-09 10:39       ` [PATCH][gdb] Update syscalls/{amd64,i386}-linux.xml Tom de Vries
2022-05-09 14:48         ` Simon Marchi
2022-05-09 15:29           ` Tom de Vries
2022-05-09 15:40             ` Andreas Schwab
2022-05-09 15:42               ` Tom de Vries
2022-05-09 15:45                 ` Andreas Schwab
2022-05-09 16:04                   ` Tom de Vries
2022-05-09 17:19         ` Tom Tromey
2022-05-10 11:39           ` Tom de Vries
2022-05-12  9:00             ` Tom de Vries
2022-05-10 11:53         ` Tom de Vries
2022-05-16 16:07           ` Tom Tromey
2022-05-18  9:58             ` [committed][gdb/tdep] Add gdb/syscalls/update-linux-from-src.sh Tom de Vries
2022-05-05 13:23   ` [PATCH, v2][gdb/testsuite] Handle pipe2 syscall in gdb.base/catch-syscall.exp Simon Marchi
2022-05-09 10:18     ` Tom de Vries

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).