diff options
author | Tom de Vries <tdevries@suse.de> | 2025-03-18 08:45:54 +0100 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2025-03-18 08:45:54 +0100 |
commit | 57d2ceb311aaaf02fe6fae194e1280001a087b6f (patch) | |
tree | 8e18230f7e811b03ff47289f884c936d12711d90 /gdb | |
parent | 7b2a5f7183b946a0a2644a505892b7e0aefbbfd1 (diff) | |
download | binutils-57d2ceb311aaaf02fe6fae194e1280001a087b6f.zip binutils-57d2ceb311aaaf02fe6fae194e1280001a087b6f.tar.gz binutils-57d2ceb311aaaf02fe6fae194e1280001a087b6f.tar.bz2 |
[gdb/tdep] Use SYSCALL_MAP_RENAME for aarch64 and loongarch
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
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/aarch64-linux-tdep.c | 28 | ||||
-rw-r--r-- | gdb/loongarch-linux-tdep.c | 19 |
2 files changed, 32 insertions, 15 deletions
diff --git a/gdb/aarch64-linux-tdep.c b/gdb/aarch64-linux-tdep.c index 7f39619..0b4ae7f 100644 --- a/gdb/aarch64-linux-tdep.c +++ b/gdb/aarch64-linux-tdep.c @@ -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 diff --git a/gdb/loongarch-linux-tdep.c b/gdb/loongarch-linux-tdep.c index 2168ce6..bd42d09 100644 --- a/gdb/loongarch-linux-tdep.c +++ b/gdb/loongarch-linux-tdep.c @@ -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 } |