This is the mail archive of the gdb-patches@sourceware.org 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: [PATCH] Always include defs.h first.


On Thu, Nov 8, 2012 at 8:49 AM, Pedro Alves <palves@redhat.com> wrote:
> On 11/08/2012 01:34 AM, Doug Evans wrote:
>> On Wed, Nov 7, 2012 at 12:11 PM, Pedro Alves <palves@redhat.com> wrote:
>>> defs.h should always be the first included header in a .c file.  In
>>> turn, this means that a foo.h header should not need to include
>>> defs.h, as the .c file always includes defs.h before including foo.h.
>>
>> fwiw, I like the idea of header files including what they themselves
>> need, and not assuming the includer will do it for them, even for
>> defs.h.
>> It's something I'd like to see gdb move towards, but I'm not in a hurry. :-)
>
> Sorry, I hadn't imagined the change could be disagreeable.  Otherwise, I'd
> have waited.
>
> I'm also of the camp that advocates that header files should include what
> they themselves need.  OTOH, IMO, defs.h is special.
>
>  - It's defs.h that includes config.h.  Including config.h in headers
>    is bad practice.  Comparing to gcc, I'd say defs.h is currently a
>    kind of a mix of system.h and coretypes.h, and whatnot.
>  - It's needed practically _everywhere_.
>
> Also:
>
> $ ls gdb/*.h | wc -l
> 232
>
> since not including defs.h in headers is the de facto standard on the code
> base, where only 4 of those 232 had "#include defs.h" in them, and another
> include was being introduced exactly because the corresponding .c file was in
> error, I thought it best to just get rid of those 4 instances making the
> codebase a little bit less inconsistent.

Don't abort on my account - Consistency is Good.

Another thing to consider:
I'd like to move gdb to being more componentized (for lack of a better word).
i.e., made up of application independent pieces.
common/ is a minor step in this direction.
Note that gdbserver doesn't have defs.h and lots of files in common/ do the

#ifdef GDBSERVER
#include "server.h"
#else
#include "defs.h"
#endif

dance.

But again, don't abort on my account, Consistency Is Good, even if
there's also a long term plan to do something different.


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