aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog8
-rwxr-xr-xgdb/configure15
-rw-r--r--gdb/configure.ac15
-rw-r--r--gdb/irix5-nat.c11
4 files changed, 44 insertions, 5 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 620cccc..379beb2 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,11 @@
+2010-12-14 Joel Brobecker <brobecker@adacore.com>
+
+ * irix5-nat.c: Replace fp_r, fp_regs and fp_scr by __fp_r, __fp_regs
+ and __fp_scr respectively throughout.
+ * configure.ac: Compile with -Dsiginfo=__siginfo if building with
+ Python using GCC on IRIX.
+ * configure: Regenerate.
+
2010-12-13 Kevin Buettner <kevinb@redhat.com>
* solib-svr4.c (enable_break): Don't attempt to place breakpoints,
diff --git a/gdb/configure b/gdb/configure
index 2bc49d6..6ea3f58 100755
--- a/gdb/configure
+++ b/gdb/configure
@@ -10964,6 +10964,21 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${PYTHON_CFLAGS}" >&5
$as_echo "${PYTHON_CFLAGS}" >&6; }
fi
+
+ # On IRIX, type siginfo is not defined. Instead, sys/siginfo.h provides:
+ # #if _SGIAPI
+ # #define siginfo __siginfo
+ # #endif
+ # The problem is that including Python causes some XOPEN macros to be
+ # unilaterally defined, and that in turn causes _SGIAPI to evaluate
+ # to false. So, we work around this issue by defining siginfo ourself
+ # though the command-line.
+ case "$gdb_host" in
+ irix*) if test "${GCC}" = yes; then
+ CPPFLAGS="$CPPFLAGS -Dsiginfo=__siginfo"
+ fi
+ ;;
+ esac
else
# Even if Python support is not compiled in, we need to have these files
# included.
diff --git a/gdb/configure.ac b/gdb/configure.ac
index cc750dc..e2bf45a 100644
--- a/gdb/configure.ac
+++ b/gdb/configure.ac
@@ -858,6 +858,21 @@ if test "${have_libpython}" != no; then
done
AC_MSG_RESULT(${PYTHON_CFLAGS})
fi
+
+ # On IRIX, type siginfo is not defined. Instead, sys/siginfo.h provides:
+ # #if _SGIAPI
+ # #define siginfo __siginfo
+ # #endif
+ # The problem is that including Python causes some XOPEN macros to be
+ # unilaterally defined, and that in turn causes _SGIAPI to evaluate
+ # to false. So, we work around this issue by defining siginfo ourself
+ # though the command-line.
+ case "$gdb_host" in
+ irix*) if test "${GCC}" = yes; then
+ CPPFLAGS="$CPPFLAGS -Dsiginfo=__siginfo"
+ fi
+ ;;
+ esac
else
# Even if Python support is not compiled in, we need to have these files
# included.
diff --git a/gdb/irix5-nat.c b/gdb/irix5-nat.c
index f7454dc..aff29d8 100644
--- a/gdb/irix5-nat.c
+++ b/gdb/irix5-nat.c
@@ -151,7 +151,7 @@ supply_fpregset (struct regcache *regcache, const fpregset_t *fpregsetp)
for (regi = 0; regi < 32; regi++)
regcache_raw_supply (regcache, gdbarch_fp0_regnum (gdbarch) + regi,
- (const char *) &fpregsetp->fp_r.fp_regs[regi]);
+ (const char *) &fpregsetp->__fp_r.__fp_regs[regi]);
/* We can't supply the FSR register directly to the regcache,
because there is a size issue: On one hand, fpregsetp->fp_csr
@@ -159,7 +159,7 @@ supply_fpregset (struct regcache *regcache, const fpregset_t *fpregsetp)
So we use a buffer of the correct size and copy into it the register
value at the proper location. */
memset (fsrbuf, 0, 4);
- memcpy (fsrbuf + 4, &fpregsetp->fp_csr, 4);
+ memcpy (fsrbuf + 4, &fpregsetp->__fp_csr, 4);
regcache_raw_supply (regcache,
mips_regnum (gdbarch)->fp_control_status, fsrbuf);
@@ -184,8 +184,9 @@ fill_fpregset (const struct regcache *regcache, fpregset_t *fpregsetp, int regno
{
if ((regno == -1) || (regno == regi))
{
- to = (char *) &(fpregsetp->fp_r.fp_regs[regi - gdbarch_fp0_regnum
- (gdbarch)]);
+ const int fp0_regnum = gdbarch_fp0_regnum (gdbarch);
+
+ to = (char *) &(fpregsetp->__fp_r.__fp_regs[regi - fp0_regnum]);
regcache_raw_collect (regcache, regi, to);
}
}
@@ -203,7 +204,7 @@ fill_fpregset (const struct regcache *regcache, fpregset_t *fpregsetp, int regno
regcache_raw_collect (regcache,
mips_regnum (gdbarch)->fp_control_status, fsrbuf);
- memcpy (&fpregsetp->fp_csr, fsrbuf + 4, 4);
+ memcpy (&fpregsetp->__fp_csr, fsrbuf + 4, 4);
}
}