aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Weigand <uweigand@de.ibm.com>2013-08-07 14:39:57 +0000
committerUlrich Weigand <uweigand@de.ibm.com>2013-08-07 14:39:57 +0000
commitb08ee99f15ab5b1a2bf4572f34fdd1322debecb8 (patch)
tree1ea1c86f2228d784f1d67c0c329f730200a88414
parentfecf803efafe6339bb45401ecbaef00b9a85295e (diff)
downloadgdb-b08ee99f15ab5b1a2bf4572f34fdd1322debecb8.zip
gdb-b08ee99f15ab5b1a2bf4572f34fdd1322debecb8.tar.gz
gdb-b08ee99f15ab5b1a2bf4572f34fdd1322debecb8.tar.bz2
2013-08-07 Raunaq Bathija <raunaq12@in.ibm.com>
Ulrich Weigand <uweigand@de.ibm.com> * gdb_ptrace.h: Use ptrace64 instead of ptrace if HAVE_PTRACE64 is defined. * rs6000-nat.c: Check for __ld_info64_ if compiling 64 BIT gdb. (rs6000_ptrace32): Call ptrace64 instead of ptrace if present. (rs6000_ptrace64): Call ptace64 instead of ptracex if present. * configure.ac: Check for ptrace64. * configure, config.in: Regenerate.
-rw-r--r--gdb/ChangeLog11
-rw-r--r--gdb/config.in3
-rwxr-xr-xgdb/configure2
-rw-r--r--gdb/configure.ac2
-rw-r--r--gdb/gdb_ptrace.h10
-rw-r--r--gdb/rs6000-nat.c10
6 files changed, 34 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 67f5cd4..e93af27 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,6 +1,17 @@
2013-08-07 Raunaq Bathija <raunaq12@in.ibm.com>
Ulrich Weigand <uweigand@de.ibm.com>
+ * gdb_ptrace.h: Use ptrace64 instead of ptrace if HAVE_PTRACE64
+ is defined.
+ * rs6000-nat.c: Check for __ld_info64_ if compiling 64 BIT gdb.
+ (rs6000_ptrace32): Call ptrace64 instead of ptrace if present.
+ (rs6000_ptrace64): Call ptace64 instead of ptracex if present.
+ * configure.ac: Check for ptrace64.
+ * configure, config.in: Regenerate.
+
+2013-08-07 Raunaq Bathija <raunaq12@in.ibm.com>
+ Ulrich Weigand <uweigand@de.ibm.com>
+
* aixthread.c: Call ptrace64 instead of ptracex if defined.
Call ptrace64 instead of ptrace if defined.
Add macro addr_ptr to take care of ptrace address argument.
diff --git a/gdb/config.in b/gdb/config.in
index 92c2789..76abd04 100644
--- a/gdb/config.in
+++ b/gdb/config.in
@@ -333,6 +333,9 @@
/* Define if <sys/procfs.h> has pstatus_t. */
#undef HAVE_PSTATUS_T
+/* Define to 1 if you have the `ptrace64' function. */
+#undef HAVE_PTRACE64
+
/* Define if sys/ptrace.h defines the PTRACE_GETFPXREGS request. */
#undef HAVE_PTRACE_GETFPXREGS
diff --git a/gdb/configure b/gdb/configure
index 4833297..8067825 100755
--- a/gdb/configure
+++ b/gdb/configure
@@ -10181,7 +10181,7 @@ for ac_func in canonicalize_file_name realpath getrusage getuid getgid \
sigaction sigprocmask sigsetmask socketpair syscall \
ttrace wborder wresize setlocale iconvlist libiconvlist btowc \
setrlimit getrlimit posix_madvise waitpid lstat \
- fdwalk pipe2
+ fdwalk pipe2 ptrace64
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
diff --git a/gdb/configure.ac b/gdb/configure.ac
index 48f37c8..667821f 100644
--- a/gdb/configure.ac
+++ b/gdb/configure.ac
@@ -1166,7 +1166,7 @@ AC_CHECK_FUNCS([canonicalize_file_name realpath getrusage getuid getgid \
sigaction sigprocmask sigsetmask socketpair syscall \
ttrace wborder wresize setlocale iconvlist libiconvlist btowc \
setrlimit getrlimit posix_madvise waitpid lstat \
- fdwalk pipe2])
+ fdwalk pipe2 ptrace64])
AM_LANGINFO_CODESET
# Check the return and argument types of ptrace. No canned test for
diff --git a/gdb/gdb_ptrace.h b/gdb/gdb_ptrace.h
index 5c2a433..053a718 100644
--- a/gdb/gdb_ptrace.h
+++ b/gdb/gdb_ptrace.h
@@ -135,7 +135,15 @@ extern PTRACE_TYPE_RET ptrace();
zero. */
#ifdef PTRACE_TYPE_ARG5
-# define ptrace(request, pid, addr, data) ptrace (request, pid, addr, data, 0)
+# ifdef HAVE_PTRACE64
+# define ptrace(request, pid, addr, data) \
+ ptrace64 (request, pid, addr, data, 0)
+# undef PTRACE_TYPE_ARG3
+# define PTRACE_TYPE_ARG3 long long
+# else
+# define ptrace(request, pid, addr, data) \
+ ptrace (request, pid, addr, data, 0)
+# endif
#endif
#endif /* gdb_ptrace.h */
diff --git a/gdb/rs6000-nat.c b/gdb/rs6000-nat.c
index 6769618..0953356 100644
--- a/gdb/rs6000-nat.c
+++ b/gdb/rs6000-nat.c
@@ -65,7 +65,7 @@
/* In 32-bit compilation mode (which is the only mode from which ptrace()
works on 4.3), __ld_info32 is #defined as equivalent to ld_info. */
-#ifdef __ld_info32
+#if defined (__ld_info32) || defined (__ld_info64)
# define ARCH3264
#endif
@@ -131,7 +131,11 @@ regmap (struct gdbarch *gdbarch, int regno, int *isfloat)
static int
rs6000_ptrace32 (int req, int id, int *addr, int data, int *buf)
{
+ #ifdef HAVE_PTRACE64
+ int ret = ptrace64 (req, id, (long long) addr, data, buf);
+ #else
int ret = ptrace (req, id, (int *)addr, data, buf);
+ #endif
#if 0
printf ("rs6000_ptrace32 (%d, %d, 0x%x, %08x, 0x%x) = 0x%x\n",
req, id, (unsigned int)addr, data, (unsigned int)buf, ret);
@@ -145,7 +149,11 @@ static int
rs6000_ptrace64 (int req, int id, long long addr, int data, void *buf)
{
#ifdef ARCH3264
+ #ifdef HAVE_PTRACE64
+ int ret = ptrace64 (req, id, addr, data, buf);
+ #else
int ret = ptracex (req, id, addr, data, buf);
+ #endif
#else
int ret = 0;
#endif