]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
[gdb/tdep] Use SYSCALL_MAP_RENAME for aarch64 and loongarch
authorTom de Vries <tdevries@suse.de>
Tue, 18 Mar 2025 07:45:54 +0000 (08:45 +0100)
committerTom de Vries <tdevries@suse.de>
Tue, 18 Mar 2025 07:45:54 +0000 (08:45 +0100)
There are currently two functions using macros SYSCALL_MAP and
UNSUPPORTED_SYSCALL_MAP: aarch64_canonicalize_syscall, and
loongarch_canonicalize_syscall.

Here [1] I propose to do the same in i386_canonicalize_syscall, using one
additional macro: SYSCALL_MAP_RENAME.

Add the same macro in aarch64_canonicalize_syscall and
loongarch_canonicalize_syscall, and use it to map aarch64_sys_mmap and
loongarch_sys_mmap to gdb_sys_mmap2.

While we're at it:
- reformat the macro definitions to be more readable,
- add missing macro undefs in aarch64_canonicalize_syscall, and
- fix indentation in aarch64_canonicalize_syscall.

No functional changes.

Tested by rebuilding on x86_64-linux.

Reviewed-By: Alexandra Petlanova Hajkova <ahajkova@redhat.com>
[1] https://sourceware.org/pipermail/gdb-patches/2025-March/216230.html

gdb/aarch64-linux-tdep.c
gdb/loongarch-linux-tdep.c

index 7f396194867612ae7addc4138a9c28c2a65f7e79..0b4ae7f604c6d881969f92e9f2822d2829655462 100644 (file)
@@ -2038,11 +2038,17 @@ enum aarch64_syscall {
 static enum gdb_syscall
 aarch64_canonicalize_syscall (enum aarch64_syscall syscall_number)
 {
-#define SYSCALL_MAP(SYSCALL) case aarch64_sys_##SYSCALL: \
-  return gdb_sys_##SYSCALL
+#define SYSCALL_MAP(SYSCALL)                   \
+  case aarch64_sys_ ## SYSCALL:                        \
+    return gdb_sys_ ## SYSCALL
 
-#define UNSUPPORTED_SYSCALL_MAP(SYSCALL) case aarch64_sys_##SYSCALL: \
-  return gdb_sys_no_syscall
+#define SYSCALL_MAP_RENAME(SYSCALL, GDB_SYSCALL)       \
+  case aarch64_sys_ ## SYSCALL:                                \
+    return GDB_SYSCALL;
+
+#define UNSUPPORTED_SYSCALL_MAP(SYSCALL)       \
+  case aarch64_sys_ ## SYSCALL:                        \
+    return gdb_sys_no_syscall
 
   switch (syscall_number)
     {
@@ -2269,8 +2275,7 @@ aarch64_canonicalize_syscall (enum aarch64_syscall syscall_number)
       SYSCALL_MAP (clone);
       SYSCALL_MAP (execve);
 
-    case aarch64_sys_mmap:
-      return gdb_sys_mmap2;
+      SYSCALL_MAP_RENAME (mmap, gdb_sys_mmap2);
 
       SYSCALL_MAP (fadvise64);
       SYSCALL_MAP (swapon);
@@ -2312,9 +2317,14 @@ aarch64_canonicalize_syscall (enum aarch64_syscall syscall_number)
       UNSUPPORTED_SYSCALL_MAP (sched_setattr);
       UNSUPPORTED_SYSCALL_MAP (sched_getattr);
       SYSCALL_MAP (getrandom);
-  default:
-    return gdb_sys_no_syscall;
-  }
+
+    default:
+      return gdb_sys_no_syscall;
+    }
+
+#undef SYSCALL_MAP
+#undef SYSCALL_MAP_RENAME
+#undef UNSUPPORTED_SYSCALL_MAP
 }
 
 /* Retrieve the syscall number at a ptrace syscall-stop, either on syscall entry
index 2168ce642b9ec3f735a5d9e99568f88e4648c181..bd42d0990e89459929121958f1415e97e8afa8d9 100644 (file)
@@ -581,11 +581,17 @@ static linux_record_tdep loongarch_linux_record_tdep;
 static enum gdb_syscall
 loongarch_canonicalize_syscall (enum loongarch_syscall syscall_number)
 {
-#define SYSCALL_MAP(SYSCALL) case loongarch_sys_##SYSCALL:              \
-  return gdb_sys_##SYSCALL
+#define SYSCALL_MAP(SYSCALL)                   \
+  case loongarch_sys_ ## SYSCALL:              \
+    return gdb_sys_ ## SYSCALL
 
-#define UNSUPPORTED_SYSCALL_MAP(SYSCALL) case loongarch_sys_##SYSCALL:  \
-  return gdb_sys_no_syscall
+#define SYSCALL_MAP_RENAME(SYSCALL, GDB_SYSCALL)       \
+  case loongarch_sys_ ## SYSCALL:                      \
+    return GDB_SYSCALL;
+
+#define UNSUPPORTED_SYSCALL_MAP(SYSCALL)       \
+  case loongarch_sys_ ## SYSCALL:              \
+    return gdb_sys_no_syscall
 
   switch(syscall_number)
     {
@@ -806,8 +812,7 @@ loongarch_canonicalize_syscall (enum loongarch_syscall syscall_number)
       SYSCALL_MAP (clone);
       SYSCALL_MAP (execve);
 
-    case loongarch_sys_mmap:
-      return gdb_sys_mmap2;
+      SYSCALL_MAP_RENAME (mmap, gdb_sys_mmap2);
 
       SYSCALL_MAP (fadvise64);
       SYSCALL_MAP (swapon);
@@ -907,7 +912,9 @@ loongarch_canonicalize_syscall (enum loongarch_syscall syscall_number)
     default:
       return gdb_sys_no_syscall;
     }
+
 #undef SYSCALL_MAP
+#undef SYSCALL_MAP_RENAME
 #undef UNSUPPORTED_SYSCALL_MAP
 }