The s390 versions of fill_gregset / supply_gregset and fill_fpregset / supply_fpregset declare the data structure to be filled or supplied from as gregset_t and fpregset_t, respectively, instead of gdb_gregset_t and gdb_fpregset_t. This is incompatible with the declaration of these functions in gregset.h. gdb/ChangeLog: * s390-linux-nat.c (supply_gregset, fill_gregset, fetch_regs) (store_regs): Replace gregset_t by gdb_gregset_t. (supply_fpregset, fill_fpregset, fetch_fpregs, store_fpregs): Replace fpregset_t by gdb_fpregset_t. Credit to Andreas Arnez at IBM --- diff --git a/gdb/s390-linux-nat.c b/gdb/s390-linux-nat.c index 2c60562..c48a35a 100644 --- a/gdb/s390-linux-nat.c +++ b/gdb/s390-linux-nat.c @@ -153,7 +153,7 @@ static s390_linux_nat_target the_s390_linux_nat_target; make them look like 32-bit registers. */ void -supply_gregset (struct regcache *regcache, const gregset_t *regp) +supply_gregset (struct regcache *regcache, const gdb_gregset_t *regp) { #ifdef __s390x__ struct gdbarch *gdbarch = regcache->arch (); @@ -164,7 +164,7 @@ supply_gregset (struct regcache *regcache, const gregset_t *regp) gdb_byte buf[4]; regcache_supply_regset (&s390_64_gregset, regcache, -1, - regp, sizeof (gregset_t)); + regp, sizeof (gdb_gregset_t)); pswm = extract_unsigned_integer ((const gdb_byte *) regp + S390_PSWM_OFFSET, 8, byte_order); pswa = extract_unsigned_integer ((const gdb_byte *) regp @@ -179,7 +179,7 @@ supply_gregset (struct regcache *regcache, const gregset_t *regp) #endif regcache_supply_regset (&s390_gregset, regcache, -1, regp, - sizeof (gregset_t)); + sizeof (gdb_gregset_t)); } /* Fill register REGNO (if it is a general-purpose register) in @@ -187,14 +187,14 @@ supply_gregset (struct regcache *regcache, const gregset_t *regp) do this for all registers. */ void -fill_gregset (const struct regcache *regcache, gregset_t *regp, int regno) +fill_gregset (const struct regcache *regcache, gdb_gregset_t *regp, int regno) { #ifdef __s390x__ struct gdbarch *gdbarch = regcache->arch (); if (gdbarch_ptr_bit (gdbarch) == 32) { regcache_collect_regset (&s390_64_gregset, regcache, regno, - regp, sizeof (gregset_t)); + regp, sizeof (gdb_gregset_t)); if (regno == -1 || regno == S390_PSWM_REGNUM || regno == S390_PSWA_REGNUM) @@ -231,26 +231,27 @@ fill_gregset (const struct regcache *regcache, gregset_t *regp, int regno) #endif regcache_collect_regset (&s390_gregset, regcache, regno, regp, - sizeof (gregset_t)); + sizeof (gdb_gregset_t)); } /* Fill GDB's register array with the floating-point register values in *REGP. */ void -supply_fpregset (struct regcache *regcache, const fpregset_t *regp) +supply_fpregset (struct regcache *regcache, const gdb_fpregset_t *regp) { regcache_supply_regset (&s390_fpregset, regcache, -1, regp, - sizeof (fpregset_t)); + sizeof (gdb_fpregset_t)); } /* Fill register REGNO (if it is a general-purpose register) in *REGP with the value in GDB's register array. If REGNO is -1, do this for all registers. */ void -fill_fpregset (const struct regcache *regcache, fpregset_t *regp, int regno) +fill_fpregset (const struct regcache *regcache, gdb_fpregset_t *regp, + int regno) { regcache_collect_regset (&s390_fpregset, regcache, regno, regp, - sizeof (fpregset_t)); + sizeof (gdb_fpregset_t)); } /* Find the TID for the current inferior thread to use with ptrace. */ @@ -270,7 +271,7 @@ s390_inferior_tid (void) static void fetch_regs (struct regcache *regcache, int tid) { - gregset_t regs; + gdb_gregset_t regs; ptrace_area parea; parea.len = sizeof (regs); @@ -279,7 +280,7 @@ fetch_regs (struct regcache *regcache, int tid) if (ptrace (PTRACE_PEEKUSR_AREA, tid, (long) &parea, 0) < 0) perror_with_name (_("Couldn't get registers")); - supply_gregset (regcache, (const gregset_t *) ®s); + supply_gregset (regcache, (const gdb_gregset_t *) ®s); } /* Store all valid general-purpose registers in GDB's register cache @@ -287,7 +288,7 @@ fetch_regs (struct regcache *regcache, int tid) static void store_regs (const struct regcache *regcache, int tid, int regnum) { - gregset_t regs; + gdb_gregset_t regs; ptrace_area parea; parea.len = sizeof (regs); @@ -307,7 +308,7 @@ store_regs (const struct regcache *regcache, int tid, int regnum) static void fetch_fpregs (struct regcache *regcache, int tid) { - fpregset_t fpregs; + gdb_fpregset_t fpregs; ptrace_area parea; parea.len = sizeof (fpregs); @@ -316,7 +317,7 @@ fetch_fpregs (struct regcache *regcache, int tid) if (ptrace (PTRACE_PEEKUSR_AREA, tid, (long) &parea, 0) < 0) perror_with_name (_("Couldn't get floating point status")); - supply_fpregset (regcache, (const fpregset_t *) &fpregs); + supply_fpregset (regcache, (const gdb_fpregset_t *) &fpregs); } /* Store all valid floating-point registers in GDB's register cache @@ -324,7 +325,7 @@ fetch_fpregs (struct regcache *regcache, int tid) static void store_fpregs (const struct regcache *regcache, int tid, int regnum) { - fpregset_t fpregs; + gdb_fpregset_t fpregs; ptrace_area parea; parea.len = sizeof (fpregs);