[patch] Can't build ppc32 GDB

Mark Kettenis mark.kettenis@xs4all.nl
Tue Apr 25 19:38:00 GMT 2006


> From: PAUL GILLIAM <pgilliam@us.ibm.com>
> Date: Mon, 24 Apr 2006 17:23:13 -0700
> 
> Darn!  I forgot to 'trim' the patch'.
> 
> I have attached the 'trimmed' version.

Get rid of the PTRACE_XFER_TYPE and PTRACE_ARG3_TYPE.  Replace them
with PTRACE_TYPE_RET and PTRACE_TYPE_ARG3.  Or better yet, if the
prototype for ptrace(2) is consistent for all powerpc Linux variants,
simply replace them with the proper type (which is probably "long").

Oh and while you're there, get rid of PT_READ_U/PT_WRITE_U in favour
of PTRACE_PEEKUSR/PTRACE_POKEUSR.

Mark

> On Mon, 2006-04-24 at 17:18 -0700, PAUL GILLIAM wrote:
> > I don't know if all ppc systems have this problem.  But on a PowerPC-64
> > system, I get the following when I try to build a 32-bit gdb:
> > 
> > gcc -c -g -O2  -mminimal-toc  -I. -I.././gdb -I.././gdb/config
> > -DLOCALEDIR="\"/usr/local/share/locale\"" -DHAVE_CONFIG_H
> > -I.././gdb/../include/opcode -I.././gdb/../readline/.. -I../bfd
> > -I.././gdb/../bfd -I.././gdb/../include -I../intl -I.././gdb/../intl
> > -DMI_OUT=1 -DTUI=1 -Wimplicit -Wreturn-type -Wcomment -Wtrigraphs
> > -Wformat -Wparentheses -Wpointer-arith -Wformat-nonliteral
> > -Wunused-label -Wunused-function -Wno-pointer-sign -Wuninitialized
> > -Werror ppc-linux-nat.c
> > cc1: warnings being treated as errors
> > ppc-linux-nat.c: In function ‘fetch_register’:
> > ppc-linux-nat.c:396: warning: cast to pointer from integer of different
> > size
> > ppc-linux-nat.c: In function ‘store_register’:
> > ppc-linux-nat.c:691: warning: cast to pointer from integer of different
> > size
> > ppc-linux-nat.c: In function ‘ppc_linux_stopped_by_watchpoint’:
> > ppc-linux-nat.c:904: warning: cast from pointer to integer of different
> > size
> > make: *** [ppc-linux-nat.o] Error 1
> > 
> > 
> > So as a starting point, I have attached a patch that gets rid of the
> > warnings.
> > 
> > OK to commit? (not expecting a 'yes', but you never know unless you ask
> > 8-)
> > 
> > -=# Paul #=-
> > 
> > 
> 
> --=-vPdNruxeVr+2Uj34B6nP
> Content-Disposition: attachment; filename=cast.diff
> Content-Type: text/x-patch; name=cast.diff; charset=utf-8
> Content-Transfer-Encoding: 7bit
> 
> Index: ppc-linux-nat.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/ppc-linux-nat.c,v
> retrieving revision 1.60
> diff -a -u -r1.60 ppc-linux-nat.c
> --- ppc-linux-nat.c	24 Mar 2006 23:08:16 -0000	1.60
> +++ ppc-linux-nat.c	25 Apr 2006 00:10:12 -0000
> @@ -393,7 +393,7 @@
>      {
>        errno = 0;
>        *(PTRACE_XFER_TYPE *) & buf[bytes_transferred]
> -        = ptrace (PT_READ_U, tid, (PTRACE_ARG3_TYPE) regaddr, 0);
> +        = ptrace (PT_READ_U, tid, (PTRACE_ARG3_TYPE) (long) regaddr, 0);
>        regaddr += sizeof (PTRACE_XFER_TYPE);
>        if (errno != 0)
>  	{
> @@ -688,7 +688,7 @@
>    for (i = 0; i < bytes_to_transfer; i += sizeof (PTRACE_XFER_TYPE))
>      {
>        errno = 0;
> -      ptrace (PT_WRITE_U, tid, (PTRACE_ARG3_TYPE) regaddr,
> +      ptrace (PT_WRITE_U, tid, (PTRACE_ARG3_TYPE) (long) regaddr,
>  	      *(PTRACE_XFER_TYPE *) & buf[i]);
>        regaddr += sizeof (PTRACE_XFER_TYPE);
>  
> @@ -901,7 +901,7 @@
>        (siginfo.si_code & 0xffff) != 0x0004)
>      return 0;
>  
> -  last_stopped_data_address = (CORE_ADDR) siginfo.si_addr;
> +  last_stopped_data_address = (CORE_ADDR) (long) siginfo.si_addr;
>    return 1;
>  }
>  
> 
> --=-vPdNruxeVr+2Uj34B6nP--
> 
> 



More information about the Gdb-patches mailing list