This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFC] missing #include in frame.h?



But shouldn't all .c files inculde defs.h first?  (Indeed, that's what
GDB Internals says.)  Which file were you compiling when you got this
error?  Probably that file should be fixed to include defs.h before
frame.h, instead of changing frame.h.

Ugh (excuse my French). If bla.h depends on defs.h, I think it is wrong
to ask all c files including bla.h to include defs.h first... But I come
from the Ada world, so maybe there is a good reason for this?

GDB's coding standard stipulates that all .c files include "defs.h" first; all other .h files can assume this.


I dug a bit further, as my conclusions were a bit premature. Here is one
include stack example when this happens:

        In file included from breakpoint.h:25,
                         from gdbthread.h:29,
                         from config/nm-lynx.h:49,
                         from nm.h:24,
                         from defs.h:767,
                         from frame.c:23:

I checked frame.c, and it does include defs.h before frame.h. What
actually happens is that nm.h is indirectly including frame.h before
defs.h has included gdbarch.h... (nm.h = config/i386/nm-i386lynx.h,
which is equivalent to config/nm-lynx.h).

Officially, "tm.h" and "nm.h" and "xm.h" are going away. HP/UX's "tm.h" is even worse at this.


My hunch is that, in reality, "nm.h" won't so much go away as be made an explicit include by the native files that actually need it.

Andrew



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]