aboutsummaryrefslogtreecommitdiff
path: root/gnu/usr.bin
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/usr.bin')
-rw-r--r--gnu/usr.bin/binutils/gdb/i386/freebsd-nat.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/gnu/usr.bin/binutils/gdb/i386/freebsd-nat.c b/gnu/usr.bin/binutils/gdb/i386/freebsd-nat.c
index 78c8f9635eae..386f522b48c4 100644
--- a/gnu/usr.bin/binutils/gdb/i386/freebsd-nat.c
+++ b/gnu/usr.bin/binutils/gdb/i386/freebsd-nat.c
@@ -136,7 +136,11 @@ fetch_core_registers (core_reg_sect, core_reg_size, which, reg_addr)
error ("Register %s not found in core file.", gdb_register_names[bad_reg]);
}
+#if __FreeBSD_version >= 500022
+ addr = offsetof (struct user, u_pcb) + offsetof (struct pcb, pcb_save);
+#else
addr = offsetof (struct user, u_pcb) + offsetof (struct pcb, pcb_savefpu);
+#endif
memcpy (&pcb_savefpu, core_reg_sect + addr, sizeof pcb_savefpu);
}
@@ -166,7 +170,11 @@ extern void print_387_control_word (); /* i387-tdep.h */
extern void print_387_status_word ();
#define fpstate save87
+#if __FreeBSD_version >= 500022
+#define U_FPSTATE(u) u.u_pcb.pcb_save.sv_87
+#else
#define U_FPSTATE(u) u.u_pcb.pcb_savefpu
+#endif
static void
i387_to_double (from, to)