gdb/linux-record: Fix struct sizes for x32
authorMarcin Kościelnicki <koriakin@0x04.net>
Fri, 30 Oct 2015 15:52:02 +0000 (15:52 +0000)
committerPedro Alves <palves@redhat.com>
Fri, 30 Oct 2015 15:52:02 +0000 (15:52 +0000)
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
gdb/amd64-linux-tdep.c

index 1149f497159d7f7daee0e7fdd8eadb2f137e47e3..acefa8ea2bced2d1d9bdd3d6b075347d89fd31a6 100644 (file)
@@ -1,3 +1,8 @@
+2015-10-30  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-30  Marcin Kościelnicki  <koriakin@0x04.net>
 
        * aarch64-linux-tdep.c (aarch64_linux_init_abi): Fix size_termios.
index b0950f2806790f6779870b9c7f46a44aef42d4dd..ee21635bbe18610959b93686cfd8c4c09bbe989e 100644 (file)
@@ -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"