From: Anthony Liguori <aliguori@us.ibm.com>
To: qemu-devel@nongnu.org
Cc: Anthony Liguori <aliguori@us.ibm.com>,
Paul Brook <paul@codesourcery.com>
Subject: [Qemu-devel] [PATCH 0/4][RFC] Add module infrastructure to QEMU
Date: Mon, 11 May 2009 09:26:45 -0500 [thread overview]
Message-ID: <1242052009-27339-1-git-send-email-aliguori@us.ibm.com> (raw)
This is the current state of a patch set to introduce a module infrastructure to
QEMU. It depends on GCC constructors and GNU ld's --whole-archive.
The dependency on GNU ld's --whole-archive is a problem, but it can be addressed
in a number of ways:
1) Avoid creating a shared archive and just use object files. I see no real
downside to this except that we're just ignoring this problem.
2) Switch to using dynamic shared libraries. This has the benefit of reducing
the QEMU install size. This is attractive except for the fact that creating
dynamic shared libraries across multiple host architectures is a pain.
3) For platforms that don't use GNU ld (Solaris, AIX, ???), add platform
specific equivalents. For instance, -z allextract should work for Solaris.
I'm leaning toward #3 as I think it's a reasonable compromise.
This patch series introduces a number of other concepts though beyond
constructors. It decentralizes the block driver code and moves it to a separate
subdirectory. It also introduces also decentralizes the Makefile for the block
drivers.
Finally, it allows for a config file to be used during build time to
selectively choose what block drivers are compiled in. This is done in a
fashion similar to how the Linux kernel's build system works.
There are a number of reasons to allow this level of build customization. One
reason is that it makes per-platform support more understandable. Instead of
having #ifdefs all through the code, you have a central place to disable
features for particular platforms.
It also has the advantage of allowing an individual to build a minimal version
of QEMU to support a particular type of machine with a particular set of
functionality. This is useful for embedded environments and for security
sensitive environments.
I have additional patches that split up qemu-char.c and introduce a similar
structure there but they are not quite ready yet.
next reply other threads:[~2009-05-11 14:27 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-11 14:26 Anthony Liguori [this message]
2009-05-11 14:26 ` [Qemu-devel] [PATCH 1/4] Add module infrastructure to QEMU Anthony Liguori
2009-05-11 21:37 ` Jean-Christophe PLAGNIOL-VILLARD
2009-05-11 21:53 ` Anthony Liguori
2009-05-11 21:53 ` Jean-Christophe PLAGNIOL-VILLARD
2009-05-11 22:02 ` Anthony Liguori
2009-05-12 9:38 ` Gerd Hoffmann
2009-05-12 10:15 ` Paul Brook
2009-05-12 13:10 ` Anthony Liguori
[not found] ` <9EE414CC7AEE4488A45A263DE5B82EFE@jupiter>
2009-05-12 13:19 ` Anthony Liguori
2009-05-11 14:26 ` [Qemu-devel] [PATCH 2/4] Convert block infrastructure to use new module init functionality Anthony Liguori
2009-05-11 14:26 ` [Qemu-devel] [PATCH 3/4] Move block drivers into their own directory Anthony Liguori
2009-05-11 14:26 ` [Qemu-devel] [PATCH 4/4] Introduce global .config to selectively enable compile features Anthony Liguori
2009-05-11 15:22 ` Avi Kivity
2009-05-11 18:37 ` Anthony Liguori
2009-05-11 18:41 ` Avi Kivity
2009-05-11 14:48 ` [Qemu-devel] Re: [PATCH 0/4][RFC] Add module infrastructure to QEMU Paul Brook
2009-05-11 15:19 ` Avi Kivity
2009-05-11 16:10 ` [Qemu-devel] Re: [PATCH 0/4][RFC] Add module infrastructure toQEMU Anthony Liguori
2009-05-11 16:45 ` Avi Kivity
2009-05-11 16:05 ` [Qemu-devel] Re: [PATCH 0/4][RFC] Add module infrastructure to QEMU Anthony Liguori
2009-05-11 16:16 ` Paul Brook
2009-05-11 16:20 ` Anthony Liguori
2009-05-11 16:43 ` Paul Brook
[not found] ` <AEED36F4EA194EC2B57D5E4DB7D64896@jupiter>
2009-05-12 13:18 ` [Qemu-devel] " 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=1242052009-27339-1-git-send-email-aliguori@us.ibm.com \
--to=aliguori@us.ibm.com \
--cc=paul@codesourcery.com \
--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).