[PATCH v3] gdbserver: uclinux: pull in ptrace offset definitions from asm/ptrace.h

Pedro Alves palves@redhat.com
Thu Apr 26 18:53:00 GMT 2012


On 04/26/2012 07:33 PM, Will Deacon wrote:

> On Thu, Apr 26, 2012 at 07:31:05PM +0100, Pedro Alves wrote:
>> On 04/26/2012 07:27 PM, Mike Frysinger wrote:
>>
>>> On Thursday 26 April 2012 14:14:59 Pedro Alves wrote:
>>>> On 04/26/2012 07:12 PM, Mike Frysinger wrote:
>>>>> On Thursday 26 April 2012 14:03:00 Will Deacon wrote:
>>>>>>> +/* PTRACE_TEXT_ADDR and friends.  */
>>>>>>> +#include <asm/ptrace.h>
>>>>>
>>>>> check for asm/ptrace.h in configure.ac and then just depend on
>>>>> HAVE_ASM_PTRACE_H ?  although this is fine too since uClibc is
>>>>> realistically the only C library being used with no-mmu Linux systems.
>>>>
>>>> Was there a time Linux didn't have this header?  When we include it GDB, we
>>>> include it unconditionally (though we don't include it in all ports), and
>>>> in current mainline, it seems that all 27 ports under arch/ have it.
>>>
>>> it's not so much a matter of whether it's provided, but whether it can be 
>>> safely included.  ia64 has a history of being a pita to include their ptrace 
>>> headers, but maybe that doesn't matter to gdbserver.
>>
>>
>> There are ia64 boxes on the gcc compile farm.  Let me give that a try.
> 
> The ordering of includes probably also comes into play here. I guess we
> want:
> 
> <asm/ptrace.h>
> <sys/ptrace.h>
> "linux-ptrace.h"
> 
> and then we hope they all play nicely together with their own namespaces.
> 


Bah, they don't...  Before sys/ptrace.h.

gcc -c  -g3 -O0    -I. -I../../../src/gdb/gdbserver -I../../../src/gdb/gdbserver/../common -I../../../src/gdb/gdbserver/../regformats -I../../../src/gdb/gdbserver/../../include -Wall -Wdeclaration-after-statement -Wpointer-arith -Wformat-nonliteral -Wno-char-subscripts -Werror ../../../src/gdb/gdbserver/linux-low.c
In file included from /usr/include/asm/ptrace.h:58,
                 from ../../../src/gdb/gdbserver/linux-low.c:27:
/usr/include/asm/fpu.h:57: error: redefinition of ‘struct ia64_fpreg’
In file included from ../../../src/gdb/gdbserver/linux-low.c:28:
/usr/include/sys/ptrace.h:75: error: expected identifier before numeric constant
/usr/include/sys/ptrace.h:117: error: redefinition of ‘struct pt_all_user_regs’
../../../src/gdb/gdbserver/linux-low.c: In function ‘linux_attach_lwp_1’:
../../../src/gdb/gdbserver/linux-low.c:669: error: ‘PTRACE_ATTACH’ undeclared (first use in this function)
../../../src/gdb/gdbserver/linux-low.c:669: error: (Each undeclared identifier is reported only once
../../../src/gdb/gdbserver/linux-low.c:669: error: for each function it appears in.)
../../../src/gdb/gdbserver/linux-low.c: In function ‘linux_detach_one_lwp’:
../../../src/gdb/gdbserver/linux-low.c:1139: error: ‘PTRACE_DETACH’ undeclared (first use in this function)
make: *** [linux-low.o] Error 1

After sys/ptrace.h.

gcc -c  -g3 -O0    -I. -I../../../src/gdb/gdbserver -I../../../src/gdb/gdbserver/../common -I../../../src/gdb/gdbserver/../regformats -I../../../src/gdb/gdbserver/../../include -Wall -Wdeclaration-after-statement -Wpointer-arith -Wformat-nonliteral -Wno-char-subscripts -Werror ../../../src/gdb/gdbserver/linux-low.c
In file included from /usr/include/asm/ptrace.h:58,
                 from ../../../src/gdb/gdbserver/linux-low.c:28:
/usr/include/asm/fpu.h:57: error: redefinition of ‘struct ia64_fpreg’
In file included from ../../../src/gdb/gdbserver/linux-low.c:28:
/usr/include/asm/ptrace.h:208: error: redefinition of ‘struct pt_all_user_regs’
make: *** [linux-low.o] Error 1

-- 
Pedro Alves



More information about the Gdb-patches mailing list