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 --- gdb/s390-linux-nat.c | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/gdb/s390-linux-nat.c b/gdb/s390-linux-nat.c index 55a3899..84c304f 100644 --- a/gdb/s390-linux-nat.c +++ b/gdb/s390-linux-nat.c @@ -100,7 +100,7 @@ static const struct regset s390_64_gregset = 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 = get_regcache_arch (regcache); @@ -111,7 +111,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 @@ -126,7 +126,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 @@ -134,14 +134,15 @@ 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 = get_regcache_arch (regcache); 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) @@ -178,26 +179,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. */ @@ -217,7 +219,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); @@ -226,7 +228,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 @@ -234,7 +236,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); @@ -254,7 +256,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); @@ -263,7 +265,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 @@ -271,7 +273,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); -- 1.8.5.6