From: "Daniel P. Berrange" <berrange@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: qemu-devel@nongnu.org, patches@linaro.org
Subject: Re: [Qemu-devel] [PATCH 00/12] qemu-common.h/osdep.h refactoring
Date: Fri, 31 Jul 2015 13:54:09 +0100 [thread overview]
Message-ID: <20150731125409.GO2392@redhat.com> (raw)
In-Reply-To: <1437583451-9677-1-git-send-email-peter.maydell@linaro.org>
On Wed, Jul 22, 2015 at 05:43:59PM +0100, Peter Maydell wrote:
> This series makes a start at cleaning up some of our headers
> to avoid the common problem of header files including qemu-common.h
> (which then in turn can lead to awkward circular includes).
>
> One common cause of this is that we don't have any header
> which will include the basic things most header files require,
> except for qemu-common.h. This series fixes that by making
> 'osdep.h' that "common basic stuff" header. The idea is that:
> * osdep.h can be included from anywhere, since it doesn't
> include any other QEMU headers itself except a few very
> restricted special purpose ones (config-host.h, compiler.h, etc)
> * osdep.h provides:
> + things everybody needs, like NULL, int32_t, container_of,
> the CONFIG_* defines, etc
> + things that will cause subtle problems if they're not
> present everywhere (eg directly using system headers and
> not getting the portability fixups will result in something
> that builds on most but not all hosts)
>
> So most places can just include osdep.h, not the full qemu-common.h.
>
> (I initially thought about defining a new header for this
> purpose, "qemu/basics.h" or some such, but in fact osdep.h
> was already very close to what I wanted so it didn't really
> seem like it was very useful to switch everything over.)
>
> The series has some minor cleanups, some shuffling around of
> things between qemu-common.h, osdep.h and compiler.h, and
> a couple of patches at the end that use osdep.h to allow
> dropping a qemu-common.h include from various header files,
> as a demonstration.
>
> The real question here I guess is whether people like the
> direction I'm trying to go with this. If so, we can further
> reduce the number of qemu-common.h includes without too much
> difficulty with further patches.
I broadly like the direction of this change. I think it is
probably worth being strict about requiring #include of
osdep.h as the first header in every .c file. And validating
such a rule programmatically at make check time or equiv.
Regards,
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
next prev parent reply other threads:[~2015-07-31 12:54 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-22 16:43 [Qemu-devel] [PATCH 00/12] qemu-common.h/osdep.h refactoring Peter Maydell
2015-07-22 16:44 ` [Qemu-devel] [PATCH 01/12] qapi/qmp-event.c: Don't manually include os-win32.h/os-posix.h Peter Maydell
2015-07-31 12:46 ` Daniel P. Berrange
2015-07-22 16:44 ` [Qemu-devel] [PATCH 02/12] osdep.h: Remove qemu_printf Peter Maydell
2015-07-31 12:46 ` Daniel P. Berrange
2015-07-22 16:44 ` [Qemu-devel] [PATCH 03/12] osdep.h: Move some compiler-specific things to compiler.h Peter Maydell
2015-07-31 12:47 ` Daniel P. Berrange
2015-07-22 16:44 ` [Qemu-devel] [PATCH 04/12] compiler.h: Use glue() in QEMU_BUILD_BUG_ON define Peter Maydell
2015-07-31 12:48 ` Daniel P. Berrange
2015-07-22 16:44 ` [Qemu-devel] [PATCH 05/12] qemu-common.h: Move Win32 fixups into os-win32.h Peter Maydell
2015-07-31 12:49 ` Daniel P. Berrange
2015-07-22 16:44 ` [Qemu-devel] [PATCH 06/12] osdep.h: Move some OS header includes and fixups from qemu-common.h Peter Maydell
2015-07-31 12:50 ` Daniel P. Berrange
2015-07-22 16:44 ` [Qemu-devel] [PATCH 07/12] osdep.h: Add header comment Peter Maydell
2015-07-31 17:31 ` Daniel P. Berrange
2015-07-22 16:44 ` [Qemu-devel] [PATCH 08/12] qemu-common.h: Move muldiv64() to host-utils.h Peter Maydell
2015-07-31 17:32 ` Daniel P. Berrange
2015-07-22 16:44 ` [Qemu-devel] [PATCH 09/12] apic_internal.h: Include cpu.h directly Peter Maydell
2015-07-31 17:33 ` Daniel P. Berrange
2015-07-22 16:44 ` [Qemu-devel] [PATCH 10/12] timer.h: Don't include qemu-common.h Peter Maydell
2015-07-31 17:36 ` Daniel P. Berrange
2015-07-22 16:44 ` [Qemu-devel] [PATCH 11/12] event_notifier.h: " Peter Maydell
2015-07-22 16:44 ` [Qemu-devel] [PATCH 12/12] throttle.h: " Peter Maydell
2015-07-22 20:09 ` [Qemu-devel] [PATCH 00/12] qemu-common.h/osdep.h refactoring Paolo Bonzini
2015-07-23 15:44 ` Markus Armbruster
2015-07-31 12:54 ` Daniel P. Berrange [this message]
2015-07-31 12:57 ` Peter Maydell
2015-07-31 17:30 ` Daniel P. Berrange
2015-08-13 17:37 ` Peter Maydell
2015-08-19 18:18 ` Peter Maydell
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=20150731125409.GO2392@redhat.com \
--to=berrange@redhat.com \
--cc=patches@linaro.org \
--cc=peter.maydell@linaro.org \
--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.