summaryrefslogtreecommitdiff
path: root/gdb/lin-thread.c
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@gnu.org>2000-04-14 10:13:50 +0000
committerMark Kettenis <kettenis@gnu.org>2000-04-14 10:13:50 +0000
commit8e91aae8ac4c3832701b08bd487b088583f11b67 (patch)
treeb3fda052f5b954956a20b842b11e48aaeca0cfcb /gdb/lin-thread.c
parent77838dec20012646c646d0c0c2a4493be82d9505 (diff)
downloadgdb-8e91aae8ac4c3832701b08bd487b088583f11b67.tar.gz
2000-04-13 Mark Kettenis <kettenis@gnu.org>
* acconfig.h (HAVE_PRGREGSET_T, HAVE_PRFPREGSET_T, HAVE_LWPID_T, HAVE_PSADDR_T): Add them here instead of in config.in. * acconfig.h (PRFPREGSET_T_BROKEN): New define. * configure.in: Add check for broken prfpregset_t type. * lin-thread.c (gdb_prfpregset): New typedef, depends on definition of PRFPREGSET_T_BROKEN. (ps_lgetfpregs, ps_lsetfpregs, p_td_thr_getfpregs, p_td_thr_setfpregs, thread_db_fetch_registers, thread_db_store_registers): Use gdb_prfpregset_t instead of prfpregset_t. * config.in: Regenerated. * configure: Regenerated.
Diffstat (limited to 'gdb/lin-thread.c')
-rw-r--r--gdb/lin-thread.c22
1 files changed, 16 insertions, 6 deletions
diff --git a/gdb/lin-thread.c b/gdb/lin-thread.c
index de530f68882..7f54e299540 100644
--- a/gdb/lin-thread.c
+++ b/gdb/lin-thread.c
@@ -170,6 +170,16 @@ typedef const void *gdb_ps_write_buf_t;
typedef size_t gdb_ps_size_t;
#endif
+/* Unfortunately glibc 2.1.3 was released with a broken prfpregset_t
+ type. We let configure check for this lossage, and make
+ appropriate typedefs here. */
+
+#ifdef PRFPREGSET_T_BROKEN
+typedef elf_fpregset_t gdb_prfpregset_t;
+#else
+typedef prfpregset_t gdb_prfpregset_t;
+#endif
+
/*
* proc_service callback functions, called by thread_db.
*/
@@ -392,7 +402,7 @@ ps_lsetregs (gdb_ps_prochandle_t ph, /* Set LWP general regs */
ps_err_e
ps_lgetfpregs (gdb_ps_prochandle_t ph, /* Get LWP float regs */
lwpid_t lwpid,
- prfpregset_t *fpregset)
+ gdb_prfpregset_t *fpregset)
{
struct cleanup *old_chain = save_inferior_pid ();
@@ -406,7 +416,7 @@ ps_lgetfpregs (gdb_ps_prochandle_t ph, /* Get LWP float regs */
ps_err_e
ps_lsetfpregs (gdb_ps_prochandle_t ph, /* Set LWP float regs */
lwpid_t lwpid,
- const prfpregset_t *fpregset)
+ const gdb_prfpregset_t *fpregset)
{
struct cleanup *old_chain = save_inferior_pid ();
@@ -508,10 +518,10 @@ static td_err_e (*p_td_thr_setgregs) (const td_thrhandle_t *th_p,
const prgregset_t regset);
static td_err_e (*p_td_thr_getfpregs) (const td_thrhandle_t *th_p,
- prfpregset_t *fpregset);
+ gdb_prfpregset_t *fpregset);
static td_err_e (*p_td_thr_setfpregs) (const td_thrhandle_t *th_p,
- const prfpregset_t *fpregset);
+ const gdb_prfpregset_t *fpregset);
static td_err_e (*p_td_ta_map_id2thr) (const td_thragent_t *ta_p,
thread_t tid,
@@ -1270,7 +1280,7 @@ thread_db_fetch_registers (regno)
int regno;
{
td_thrhandle_t thandle;
- prfpregset_t fpregset;
+ gdb_prfpregset_t fpregset;
prgregset_t gregset;
thread_t thread;
td_err_e ret;
@@ -1321,7 +1331,7 @@ thread_db_store_registers (regno)
int regno;
{
td_thrhandle_t thandle;
- prfpregset_t fpregset;
+ gdb_prfpregset_t fpregset;
prgregset_t gregset;
thread_t thread;
td_err_e ret;