diff options
-rw-r--r-- | gdb/ChangeLog | 8 | ||||
-rwxr-xr-x | gdb/configure | 15 | ||||
-rw-r--r-- | gdb/configure.ac | 15 | ||||
-rw-r--r-- | gdb/irix5-nat.c | 11 |
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); } } |