From: Blue Swirl <blauwirbel@gmail.com>
To: qemu-devel <qemu-devel@nongnu.org>
Subject: [Qemu-devel] Compile files only once: some planning
Date: Tue, 23 Mar 2010 23:43:51 +0200 [thread overview]
Message-ID: <f43fc5581003231443x5492dd7eve541fd8104170a60@mail.gmail.com> (raw)
Hi,
Here's some planning for getting most files compiled as few times as
possible. Comments and suggestions are welcome.
I have now converted most of the easy cases which were compiled for
all targets, saving about 200 compiles for full build with default set
of targets (~1500 files compiled). For the easy files, the rules can
be just moved from Makefile.target to Makefile.objs without impact. If
the file was compiled conditionally, the rules may need to be added to
default-configs/*.mak. Some defines, like TARGET_PAGE_SIZE or
TARGET_WORDS_BIGENDIAN can be pushed to board level.
The target dependent cases should be next. On full build, each MIPS
device file gets compiled four times, PPC files three times and x86
twice. The devices for architectures that are compiled only once (ARM,
Cris, Sparc32 etc.) do not need to be touched.
I think it's better to add a new line for each device to
default-configs instead of adding just CONFIG_MIPS for example.
The harder cases are those where the device code depends somehow on
the architecture. Some thoughts follow.
vl.c: a lot of work. Maybe the CPUState stuff should be separated to a new file.
virtio-*.c: push TARGET_PAGE_SIZE to board level, it's not so easy though.
rtl8139.c, e1000.c: need to convert ldl/stl to cpu_physical_memory_read/write.
ide/core.c: win2k flag could be passed from board level, or the code
could just be enabled here because the flag is x86 only in vl.c.
pckbd.c, vmmouse.c, x86 CPU: On x86 only, vmmouse wants to insert key
events to pckbd buffer and pckbd is connected to x86 A20 line. The
solution could be to use qemu_irq signals to handle A20 line changes
and some code reorganization.
dma.c: DMA_schedule needs access to CPUState.
mc146818.c: coalesced IRQs only for x86, also APIC dependency.
fpu/softfloat.c, fpu/softfloat-native.c: may need some #define adjustment.
next reply other threads:[~2010-03-23 21:43 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-23 21:43 Blue Swirl [this message]
2010-03-24 9:17 ` [Qemu-devel] Re: Compile files only once: some planning Juan Quintela
2010-03-24 17:56 ` Blue Swirl
2010-03-24 19:28 ` Juan Quintela
2010-03-24 22:47 ` Paul Brook
2010-03-24 22:57 ` Anthony Liguori
2010-03-25 3:08 ` Jamie Lokier
2010-03-25 2:54 ` Jamie Lokier
2010-03-24 9:47 ` Paolo Bonzini
2010-03-24 11:19 ` Richard Henderson
2010-03-24 14:45 ` Paolo Bonzini
2010-03-24 14:56 ` Paul Brook
2010-03-24 16:18 ` Paolo Bonzini
2010-03-24 17:27 ` Paul Brook
2010-03-24 17:07 ` Richard Henderson
2010-03-24 20:12 ` Richard Henderson
2010-03-24 18:00 ` Blue Swirl
2010-03-24 19:39 ` Michael S. Tsirkin
2010-03-24 20:05 ` Blue Swirl
2010-03-24 20:08 ` Michael S. Tsirkin
2010-03-24 20:24 ` Blue Swirl
2010-03-24 20:24 ` Michael S. Tsirkin
2010-03-24 20:32 ` Blue Swirl
2010-03-24 20:28 ` Anthony Liguori
2010-03-24 21:00 ` Aurelien Jarno
2010-03-24 22:33 ` Paul Brook
2010-03-24 22:50 ` Anthony Liguori
2010-03-24 23:05 ` Paul Brook
2010-03-24 23:07 ` Anthony Liguori
2010-03-25 8:21 ` Michael S. Tsirkin
2010-03-25 12:01 ` Paul Brook
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=f43fc5581003231443x5492dd7eve541fd8104170a60@mail.gmail.com \
--to=blauwirbel@gmail.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).