qemu-devel.nongnu.org archive mirror
 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).