From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30158 invoked by alias); 7 Aug 2013 11:39:52 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 30147 invoked by uid 89); 7 Aug 2013 11:39:52 -0000 X-Spam-SWARE-Status: No, score=-4.1 required=5.0 tests=AWL,BAYES_00,KHOP_THREADED,RCVD_IN_DNSWL_MED,RDNS_NONE,SPF_PASS autolearn=ham version=3.3.1 Received: from Unknown (HELO e28smtp07.in.ibm.com) (122.248.162.7) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Wed, 07 Aug 2013 11:39:21 +0000 Received: from /spool/local by e28smtp07.in.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Wed, 7 Aug 2013 17:00:41 +0530 Received: from d28dlp03.in.ibm.com (9.184.220.128) by e28smtp07.in.ibm.com (192.168.1.137) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Wed, 7 Aug 2013 17:00:39 +0530 Received: from d28relay05.in.ibm.com (d28relay05.in.ibm.com [9.184.220.62]) by d28dlp03.in.ibm.com (Postfix) with ESMTP id E98ED1258053 for ; Wed, 7 Aug 2013 17:08:45 +0530 (IST) Received: from d28av05.in.ibm.com (d28av05.in.ibm.com [9.184.220.67]) by d28relay05.in.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id r77Bd7c046858454 for ; Wed, 7 Aug 2013 17:09:07 +0530 Received: from d28av05.in.ibm.com (localhost [127.0.0.1]) by d28av05.in.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id r77Bd9ur024023 for ; Wed, 7 Aug 2013 17:09:10 +0530 Received: from d23ml188.in.ibm.com (d23ml188.in.ibm.com [9.182.8.144]) by d28av05.in.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with ESMTP id r77BcxE8022582; Wed, 7 Aug 2013 17:09:07 +0530 In-Reply-To: References: <201308011325.r71DPfva000959@glazunov.sibelius.xs4all.nl> Subject: [PATCH 4/5] powerpc64-aix ptrace64 when defined. X-KeepSent: 03184F86:3CF50663-65257BC0:003FC0F1; type=4; name=$KeepSent To: gdb-patches@sourceware.org Cc: brobecker@adacore.com, tromey@redhat.com, Mark Kettenis , Pedro Alves Message-ID: From: Raunaq 12 Date: Wed, 07 Aug 2013 11:39:00 -0000 MIME-Version: 1.0 Content-type: text/plain; charset=US-ASCII X-TM-AS-MML: No X-Content-Scanned: Fidelis XPS MAILER x-cbid: 13080711-8878-0000-0000-0000084A7921 X-SW-Source: 2013-08/txt/msg00190.txt.bz2 When GDB is compiled in 64 BIT mode ptrace and ptracex calls are not defined on AIX. So, instead we check if ptrace64 is defined, if it is then we call that instead of ptrace/x. --- ChangeLog :- * 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. --- Index: ./gdb/gdb_ptrace.h =================================================================== --- ./gdb.orig/gdb_ptrace.h +++ ./gdb/gdb_ptrace.h @@ -135,7 +135,15 @@ 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 */ Index: ./gdb/rs6000-nat.c =================================================================== --- ./gdb.orig/rs6000-nat.c +++ ./gdb/rs6000-nat.c @@ -66,7 +66,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 @@ -132,7 +132,11 @@ static int rs6000_ptrace32 (int req, int id, int *addr, int data, int *buf) { + #ifdef HAVE_PTRACE64 + int ret = ptrace64 (req, (long long) 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); @@ -146,7 +150,11 @@ rs6000_ptrace64 (int req, int id, long long addr, int data, void *buf) { #ifdef ARCH3264 + #ifdef HAVE_PTRACE64 + int ret = ptrace64 (req, (long long) id, addr, data, (int *)buf); + #else int ret = ptracex (req, id, addr, data, buf); + #endif #else int ret = 0; #endif Index: ./gdb/configure.ac =================================================================== --- ./gdb.orig/configure.ac +++ ./gdb/configure.ac @@ -1180,7 +1180,7 @@ 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 Index: ./gdb/config.in =================================================================== --- ./gdb.orig/config.in +++ ./gdb/config.in @@ -101,6 +101,9 @@ */ #undef HAVE_DECL_MALLOC +/* Define to 1 if you have the `ptrace64' function. */ +#undef HAVE_PTRACE64 + /* Define to 1 if you have the declaration of `ptrace', and to 0 if you don't. */ #undef HAVE_DECL_PTRACE