gdb: syscalls: Add some tips for LoongArch xml files

Message ID 20240321015510.31893-1-yangtiezhu@loongson.cn
State New
Headers
Series gdb: syscalls: Add some tips for LoongArch xml files |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_gdb_build--master-aarch64 success Testing passed
linaro-tcwg-bot/tcwg_gdb_build--master-arm success Testing passed
linaro-tcwg-bot/tcwg_gdb_check--master-arm success Testing passed
linaro-tcwg-bot/tcwg_gdb_check--master-aarch64 success Testing passed

Commit Message

Tiezhu Yang March 21, 2024, 1:55 a.m. UTC
  In commit a08dc2aa004b (gdb: syscalls: Add loongarch-linux.xml.in),
it needs special handling when generating xml file. This should at
least be mentioned in the file comment rather than git log to help
the next person who regenerates this file understand what needs to
be done, suggested by Pedro Alves, thank you.

At the beginning, I only added the tips in loongarch-linux.xml.in,
after executing the command "make" to generate loongarch-linux.xml
from loongarch-linux.xml.in, it generates the same tips in the file
loongarch-linux.xml automatically, so update loongarch-linux.xml.in
and loongarch-linux.xml together.

Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
---
 gdb/syscalls/loongarch-linux.xml    | 24 +++++++++++++++++++++++-
 gdb/syscalls/loongarch-linux.xml.in | 23 ++++++++++++++++++++++-
 2 files changed, 45 insertions(+), 2 deletions(-)
  

Comments

Pedro Alves March 21, 2024, 1:20 p.m. UTC | #1
On 2024-03-21 01:55, Tiezhu Yang wrote:
> In commit a08dc2aa004b (gdb: syscalls: Add loongarch-linux.xml.in),
> it needs special handling when generating xml file. This should at
> least be mentioned in the file comment rather than git log to help
> the next person who regenerates this file understand what needs to
> be done, suggested by Pedro Alves, thank you.
> 
> At the beginning, I only added the tips in loongarch-linux.xml.in,
> after executing the command "make" to generate loongarch-linux.xml
> from loongarch-linux.xml.in, it generates the same tips in the file
> loongarch-linux.xml automatically, so update loongarch-linux.xml.in
> and loongarch-linux.xml together.
> 
> Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>

Thanks!

Approved-by: Pedro Alves <pedro@palves.net>
  
Tiezhu Yang March 21, 2024, 2:19 p.m. UTC | #2
On 3/21/24 21:20, Pedro Alves wrote:
> On 2024-03-21 01:55, Tiezhu Yang wrote:
>> In commit a08dc2aa004b (gdb: syscalls: Add loongarch-linux.xml.in),
>> it needs special handling when generating xml file. This should at
>> least be mentioned in the file comment rather than git log to help
>> the next person who regenerates this file understand what needs to
>> be done, suggested by Pedro Alves, thank you.
>>
>> At the beginning, I only added the tips in loongarch-linux.xml.in,
>> after executing the command "make" to generate loongarch-linux.xml
>> from loongarch-linux.xml.in, it generates the same tips in the file
>> loongarch-linux.xml automatically, so update loongarch-linux.xml.in
>> and loongarch-linux.xml together.
>>
>> Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
> 
> Thanks!
> 
> Approved-by: Pedro Alves <pedro@palves.net>

Pushed.

Thanks,
Tiezhu
  

Patch

diff --git a/gdb/syscalls/loongarch-linux.xml b/gdb/syscalls/loongarch-linux.xml
index 91e7bbc9691..6e85dbd7166 100644
--- a/gdb/syscalls/loongarch-linux.xml
+++ b/gdb/syscalls/loongarch-linux.xml
@@ -9,7 +9,29 @@ 
 
      <sys/syscall.h>
 
-     The file mentioned above belongs to the Linux Kernel.  -->
+     The file mentioned above belongs to the Linux Kernel.
+
+     Note that the system header file /usr/include/asm-generic/unistd.h
+     may be different with the latest upstream Linux kernel uapi header
+     file include/uapi/asm-generic/unistd.h, it is better to copy the
+     upstream header file into the system header file when generating
+     loongarch-linux.xml.in.
+
+     There exist some __NR3264_ prefixed syscall numbers, replace them
+     with digital numbers according to /usr/include/asm-generic/unistd.h
+     and sort them by syscall number manually, maybe we can modify the
+     script to do it automatically in the future.
+
+     <syscall name="fcntl" number="__NR3264_fcntl"/>
+     <syscall name="statfs" number="__NR3264_statfs"/>
+     <syscall name="fstatfs" number="__NR3264_fstatfs"/>
+     <syscall name="truncate" number="__NR3264_truncate"/>
+     <syscall name="ftruncate" number="__NR3264_ftruncate"/>
+     <syscall name="lseek" number="__NR3264_lseek"/>
+     <syscall name="sendfile" number="__NR3264_sendfile"/>
+     <syscall name="mmap" number="__NR3264_mmap"/>
+     <syscall name="fadvise64" number="__NR3264_fadvise64"/>
+-->
 <syscalls_info>
   <syscall name="io_setup" number="0" groups="memory"/>
   <syscall name="io_destroy" number="1" groups="memory"/>
diff --git a/gdb/syscalls/loongarch-linux.xml.in b/gdb/syscalls/loongarch-linux.xml.in
index e6e17b3f2b6..cf38f311abe 100644
--- a/gdb/syscalls/loongarch-linux.xml.in
+++ b/gdb/syscalls/loongarch-linux.xml.in
@@ -11,8 +11,29 @@ 
 
      <sys/syscall.h>
 
-     The file mentioned above belongs to the Linux Kernel.  -->
+     The file mentioned above belongs to the Linux Kernel.
 
+     Note that the system header file /usr/include/asm-generic/unistd.h
+     may be different with the latest upstream Linux kernel uapi header
+     file include/uapi/asm-generic/unistd.h, it is better to copy the
+     upstream header file into the system header file when generating
+     loongarch-linux.xml.in.
+
+     There exist some __NR3264_ prefixed syscall numbers, replace them
+     with digital numbers according to /usr/include/asm-generic/unistd.h
+     and sort them by syscall number manually, maybe we can modify the
+     script to do it automatically in the future.
+
+     <syscall name="fcntl" number="__NR3264_fcntl"/>
+     <syscall name="statfs" number="__NR3264_statfs"/>
+     <syscall name="fstatfs" number="__NR3264_fstatfs"/>
+     <syscall name="truncate" number="__NR3264_truncate"/>
+     <syscall name="ftruncate" number="__NR3264_ftruncate"/>
+     <syscall name="lseek" number="__NR3264_lseek"/>
+     <syscall name="sendfile" number="__NR3264_sendfile"/>
+     <syscall name="mmap" number="__NR3264_mmap"/>
+     <syscall name="fadvise64" number="__NR3264_fadvise64"/>
+-->
 
 <syscalls_info>
   <syscall name="io_setup" number="0"/>