All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefan Weil <weil@mail.berlios.de>
To: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] Use standard header for offsetof
Date: Fri, 06 Jun 2008 21:44:42 +0200	[thread overview]
Message-ID: <484993AA.2050603@mail.berlios.de> (raw)
In-Reply-To: <4845B6A4.2070301@codemonkey.ws>

Anthony Liguori schrieb:
> Stefan Weil wrote:
>> Anthony Liguori schrieb:
>>>
>>> I don't understand why you're adding #include <stdef.h> to files 
>>> that do not define offsetof.  What's the rationale for that?
>>>
>>> Regards,
>>>
>>> Anthony Liguori
>>>
>> There were several possible ways to replace the defines for offsetof.
>> After removing the defines, I could
>>
>> 1) include stddef.h at the places where offsetof was defined formerly
>
> This seems like the most logically thing to do to me.  Otherwise, 
> you're unnecessarily increasing the number of #include's in C files.
>

exec-all.h is one of these places. Adding #include <stddef.h> there 
reduces the number of #include statements
in C sources, but now all sources which need exec-all.h also include 
stddef.h during compilation.
So this increases the number of included headers during a compilation.

If you prefer source files without many includes, you can put all system 
includes in some central project headers.
Many projects do this, and Qemu's qemu-common.h is an example for this 
approach. You could add the #include
for stddef.h there.

I prefer minimized dependencies and short compile times, so I include 
system headers only at the places which need them.

The choice between both alternatives also depends on your compiler: 
nowadays most C compilers are clever enough
not to parse a system header file more than once while compiling a C 
source which has several references to it.
This is in favour of my prefered choice. But other compilers use 
precompiled headers, and for MS C with precompiled
headers, few large header files are better. So there is no clear winner 
for all situations.

Qemu has no clear strategy for header file inclusion: qemu-common.h is 
used by many source files and includes stdio.h,
but some files (for example osdep.h) include both qemu-common.h and stdio.h.

Regards
Stefan

  reply	other threads:[~2008-06-06 19:45 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-06-01 17:37 [Qemu-devel] [PATCH] Use standard header for offsetof Stefan Weil
2008-06-02  6:21 ` Johannes Schindelin
2008-06-03 19:08 ` Anthony Liguori
2008-06-03 21:03   ` Stefan Weil
2008-06-03 21:24     ` Anthony Liguori
2008-06-06 19:44       ` Stefan Weil [this message]
2008-06-06 19:58         ` Andreas Färber
2008-06-09 10:30           ` Ian Jackson
2008-06-06 20:32         ` Anthony Liguori

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=484993AA.2050603@mail.berlios.de \
    --to=weil@mail.berlios.de \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.