From: Ulrich Weigand Date: Wed, 7 Aug 2013 14:39:57 +0000 (+0000) Subject: 2013-08-07 Raunaq Bathija X-Git-Tag: binutils-2_24-branchpoint~332 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b08ee99f15ab5b1a2bf4572f34fdd1322debecb8;p=external%2Fbinutils.git 2013-08-07 Raunaq Bathija Ulrich Weigand * 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. --- 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 Ulrich Weigand + * 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 + Ulrich Weigand + * 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 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