This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH v2 13/13] gdb/linux-record: Fix struct sizes for x32
- From: Marcin KoÅcielnicki <koriakin at 0x04 dot net>
- To: palves at redhat dot com, qiyaoltc at gmail dot com
- Cc: gdb-patches at sourceware dot org, Marcin KoÅcielnicki <koriakin at 0x04 dot net>
- Date: Thu, 22 Oct 2015 15:39:26 +0200
- Subject: [PATCH v2 13/13] gdb/linux-record: Fix struct sizes for x32
- Authentication-results: sourceware.org; auth=none
- References: <5628E5D6 dot 5020706 at 0x04 dot net> <1445521166-14492-1-git-send-email-koriakin at 0x04 dot net>
While x32 syscall interface is mostly shared with x86_64, some syscalls
are truly 32-bit. Correct sizes accordingly.
gdb/ChangeLog:
* amd64-linux-tdep.c (amd64_x32_linux_init_abi): Fix size_msghdr,
size_stack_t, size_size_t, size_iovec.
---
gdb/ChangeLog | 5 +++++
gdb/amd64-linux-tdep.c | 8 ++++----
2 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 90364ce..2502fed 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,10 @@
2015-10-22 Marcin KoÅcielnicki <koriakin@0x04.net>
+ * amd64-linux-tdep.c (amd64_x32_linux_init_abi): Fix size_msghdr,
+ size_stack_t, size_size_t, size_iovec.
+
+2015-10-22 Marcin KoÅcielnicki <koriakin@0x04.net>
+
* aarch64-linux-tdep.c (aarch64_linux_init_abi): Fix size_termios.
* amd64-linux-tdep.c (amd64_linux_init_abi): Fix size_termios.
(amd64_x32_linux_init_abi): Fix size_termios.
diff --git a/gdb/amd64-linux-tdep.c b/gdb/amd64-linux-tdep.c
index b0950f2..ee21635 100644
--- a/gdb/amd64-linux-tdep.c
+++ b/gdb/amd64-linux-tdep.c
@@ -2133,7 +2133,7 @@ amd64_x32_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
= gdbarch_long_bit (gdbarch) / TARGET_CHAR_BIT;
amd64_x32_linux_record_tdep.size_ulong
= gdbarch_long_bit (gdbarch) / TARGET_CHAR_BIT;
- amd64_x32_linux_record_tdep.size_msghdr = 56;
+ amd64_x32_linux_record_tdep.size_msghdr = 28;
amd64_x32_linux_record_tdep.size_itimerval = 32;
amd64_x32_linux_record_tdep.size_stat = 144;
amd64_x32_linux_record_tdep.size_old_utsname = 325;
@@ -2154,7 +2154,7 @@ amd64_x32_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
amd64_x32_linux_record_tdep.size_sigset_t = 8;
amd64_x32_linux_record_tdep.size_siginfo_t = 128;
amd64_x32_linux_record_tdep.size_cap_user_data_t = 8;
- amd64_x32_linux_record_tdep.size_stack_t = 24;
+ amd64_x32_linux_record_tdep.size_stack_t = 12;
amd64_x32_linux_record_tdep.size_off_t = 8;
amd64_x32_linux_record_tdep.size_stat64 = 144;
amd64_x32_linux_record_tdep.size_gid_t = 4;
@@ -2174,8 +2174,8 @@ amd64_x32_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
amd64_x32_linux_record_tdep.size_serial_struct = 72;
amd64_x32_linux_record_tdep.size_serial_icounter_struct = 80;
amd64_x32_linux_record_tdep.size_hayes_esp_config = 12;
- amd64_x32_linux_record_tdep.size_size_t = 8;
- amd64_x32_linux_record_tdep.size_iovec = 16;
+ amd64_x32_linux_record_tdep.size_size_t = 4;
+ amd64_x32_linux_record_tdep.size_iovec = 8;
amd64_x32_linux_record_tdep.size_time_t = 8;
/* These values are the second argument of system call "sys_fcntl"
--
2.6.1