qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Thayne Harbaugh <thayne@c2.net>
To: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] qemu Makefile.target
Date: Tue, 09 Oct 2007 16:53:17 -0600	[thread overview]
Message-ID: <1191970397.31334.14.camel@phantasm.home.enterpriseandprosperity.com> (raw)
In-Reply-To: <1191923031.9976.75.camel@rapid>


On Tue, 2007-10-09 at 11:43 +0200, J. Mayer wrote:
> On Mon, 2007-10-08 at 21:33 +0200, Stefan Weil wrote:
> > Blue Swirl schrieb:
> > > On 6/1/07, Stefan Weil <weil@mail.berlios.de> wrote:
> > >> Wouldn't it be better to let the compiler create dependency files
> > >> which make can read? I posted a patch some time ago and use it
> > >> since many months for different QEMU target platforms.
> > >
> > > I don't know, the dependencies aren't changing very often.

With the many features that I have been adding to our private branch the
dependencies are changing and I've been considering how to make the
dependencies more automated.

> > The current Makefile.target contains a lot of dependencies,
> > and I think they change often, their number is growing and
> > nevertheless they are far from being complete.
> > 
> > The appended patch removes most explicit dependencies and
> > adds gcc flags which create dependency files during normal
> > compilation (so they are always up-to-date).
> 
> I arrived to the same conclusion, that hand coded dependencies are
> always bugged and/or incomplete.

I'm interested in seeing this, also.  I have begun building out new
features for linux-user emulation and auto-generating the dependencies
will be helpful - as well as ensure that the dependencies are
up-to-date.

>  I then was to propose a similar patch
> with a few small differences. As -MMD / -MP is a preprocessor option, it
> seems more logical to add them in CPPFLAGS. The second difference is
> that it seems better to use the following syntax to include dependency
> files:
> -include $(wildcard *.d)
> -include $(wildcard */*.d)
> (some also include /dev/null in the list then it's never empty...)
> 
> This patch has a great drawback; you are to recompile almost everything
> any time you change vl.h or target-xxx/cpu.h, for example. This, imho,
> should not prevent us to apply it but shows us that most headers should
> be splitted in a better way.

A similar example is linux-user/qemu.h.  I want to submit some patches
that will start breaking up the linux-user files.  The linux-user
emulation will benefit by breaking files up according to architecture
rather than #ifdef'ing all the archs in the same file.  If have also run
into problems with too many #include files causing collisions of
typedefs from system headers (yes, this indicates poorly constructed
system headers).

>  As an example, it seems strange to me to
> declare all devices prototypes in vl.h when those declaration should
> never be used outside of hw subdirectory, where all hardware devices
> emulation related stuff should stay. I guess we could find a lot of
> examples of declarations/prototypes globally exported but only used
> locally. Fixing this would make the code cleaner and, as a side effect,
> would avoid a lot of waste of time recompiling useless stuff when doing
> changes in headers.

I agree.

  reply	other threads:[~2007-10-09 23:00 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-06-01 16:44 [Qemu-devel] qemu Makefile.target Blue Swirl
2007-06-01 17:58 ` Stefan Weil
2007-06-01 18:27   ` Blue Swirl
2007-10-08 19:33     ` Stefan Weil
2007-10-09  9:43       ` J. Mayer
2007-10-09 22:53         ` Thayne Harbaugh [this message]
  -- strict thread matches above, loose matches on Subject: below --
2008-02-01 22:45 Paul Brook
2007-11-18 22:34 Thiemo Seufer
2007-11-11  1:18 Paul Brook
2007-10-28 13:07 Jocelyn Mayer
2007-10-29  1:26 ` andrzej zaborowski
2007-10-29  9:34   ` andrzej zaborowski
2007-10-29  9:59   ` J. Mayer
2007-10-07 14:25 Jocelyn Mayer
2007-09-29 13:20 Jocelyn Mayer
2007-09-29 12:15 Jocelyn Mayer
2007-09-13  3:24 Thiemo Seufer
2007-05-23  8:35 Thiemo Seufer
2007-04-11 22:46 Thiemo Seufer
2007-02-27 21:02 Paul Brook
2007-02-10 21:52 Thiemo Seufer
2007-01-31 12:24 Thiemo Seufer
2007-01-21 22:40 Thiemo Seufer
2006-10-28 12:19 Fabrice Bellard
2006-08-17 17:41 Fabrice Bellard
2006-07-13 23:00 Fabrice Bellard
2006-05-13 16:30 Paul Brook
2006-05-02 22:52 Fabrice Bellard
2005-12-06 21:42 Fabrice Bellard
2005-07-02 22:07 Fabrice Bellard
2005-04-26 20:34 Fabrice Bellard
2005-03-13 16:52 Fabrice Bellard
2003-11-13  1:46 Fabrice Bellard
2003-10-30  1:18 Fabrice Bellard
2003-10-28  0:48 Fabrice Bellard
2003-10-27 21:09 Fabrice Bellard

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=1191970397.31334.14.camel@phantasm.home.enterpriseandprosperity.com \
    --to=thayne@c2.net \
    --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).