prgregset_t vs gdb_gregset_t on Linux: not the same!
H . J . Lu
hjl@lucon.org
Sun Jun 10 00:23:00 GMT 2001
On Sat, Jun 09, 2001 at 12:05:02PM -0400, Andrew Cagney wrote:
> >
> > #include "nm-linux.h"
> > #include "tm-linux.h"
> >
> > Otherwise, you may not get the header files you want since mips has
> > both liltle and big endians. Once you have done that, your problem
> > should go away.
>
>
> Just FYI, this isn't correct.
>
> GDB configurations don't have -Isrc/gdb/config/$MACHINE added to the
> include path (if one does then it is broken). Consequently "tm-linux.h"
> will find the header in src/gdb/config.
Here is the ticky part. It took me a while to understand what is
going on. For mipsel, I have mips/tm-littlelinux.h in config, which
has
----
#ifndef TM_MIPSLITTLELINUX_H
#define TM_MIPSLITTLELINUX_H
#define TARGET_BYTE_ORDER LITTLE_ENDIAN
#include "mips/tm-linux.h"
#endif /* TM_MIPSLITTLELINUX_H */
----
The gdb configure links/copies mips/tm-littlelinux.h to tm.h. Now
gdb/tm.h has
---
#ifndef TM_MIPSLITTLELINUX_H
#define TM_MIPSLITTLELINUX_H
#define TARGET_BYTE_ORDER LITTLE_ENDIAN
#include "mips/tm-linux.h"
---
If in mips/tm-linux.h, there are
#include "mips/tm-mips.h"
#include "tm-linux.h"
mips/tm-linux.h is found by -Isrc/gdb/config. But can you guess which
tm-linux.h is included from mips/tm-linux.h? It is mips/tm-linux.h
since
#include "tm-linux.h"
for gcc, "" means to search the current directory of the file even if
it is not listed with -I. Therefor, tm-linux.h in config/mips will be
included from mips/tm-linux.h. Here is an example
# make
gcc -M -I. foo.c
foo.o: foo.c tm.h mips/tm-linux.h
gcc -M -I. foo.c -DFIXED
foo.o: foo.c tm.h mips/tm-linux.h tm-linux.h
Did I miss something here?
H.J.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: cpp.tar.gz
Type: application/x-gzip
Size: 421 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/gdb/attachments/20010610/4c19b0ad/attachment.bin>
More information about the Gdb
mailing list