From: "Michael S. Tsirkin" <mst@redhat.com>
To: Kevin Wolf <kwolf@redhat.com>
Cc: "Peter Maydell" <peter.maydell@linaro.org>,
"Dmitry Fleytman" <dmitry.fleytman@gmail.com>,
"Pavel Dovgalyuk" <pavel.dovgaluk@ispras.ru>,
"Li Zhijian" <lizhijian@cn.fujitsu.com>,
"David Hildenbrand" <david@redhat.com>,
"Stefan Hajnoczi" <stefanha@redhat.com>,
qemu-devel@nongnu.org, "BALATON Zoltan" <balaton@eik.bme.hu>,
"Keith Busch" <keith.busch@intel.com>,
"Max Filippov" <jcmvbkbc@gmail.com>,
"Hannes Reinecke" <hare@suse.com>,
"Gerd Hoffmann" <kraxel@redhat.com>,
"Fam Zheng" <famz@redhat.com>, "Max Reitz" <mreitz@redhat.com>,
"Stefano Stabellini" <sstabellini@kernel.org>,
zhanghailiang <zhang.zhanghailiang@huawei.com>,
"Ben Warren" <ben@skyportsystems.com>,
"Stefan Berger" <stefanb@linux.vnet.ibm.com>,
"Yongbok Kim" <yongbok.kim@mips.com>,
"Michael Roth" <mdroth@linux.vnet.ibm.com>,
"Richard W.M. Jones" <rjones@redhat.com>,
"Christian Borntraeger" <borntraeger@de.ibm.com>
Subject: Re: [PATCH v2] qemu: replace "" with <> in headers
Date: Wed, 21 Mar 2018 17:58:49 +0200 [thread overview]
Message-ID: <20180321175452-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <20180321153439.GC3898@localhost.localdomain>
On Wed, Mar 21, 2018 at 04:34:39PM +0100, Kevin Wolf wrote:
> Am 21.03.2018 um 15:46 hat Michael S. Tsirkin geschrieben:
> > Our current scheme is to use
> > #include ""
> > for internal headers, and
> > #include <>
> > for external ones.
> >
> > Unfortunately this is not based on compiler support: from C point of
> > view, the "" form merely looks up headers in the current directory
> > and then falls back on <> directories.
> >
> > Thus, for example, a system header trace.h - should it be present - will
> > conflict with our local trace.h
>
> You're right that there is a conflict, even though only in one
> direction: "trace.h" is unambiguously the local trace.h in our source
> tree, but <trace.h> refers to the same local header rather than the
> system header as you would expect.
>
> An easy way to resolve this conflict would be using -iquote rather than
> -I for directories in the source tree, so that <trace.h> unambiguously
> refers to the system header and "trace.h" unambiguously refers to the
> QEMU header.
I posted patches to that effect for 2.12. It's all still very much
a non-standard convention and so less robust than
prefixing file name with a project-specifix prefix.
> > As another example of problems, a header by the same name in the source
> > directory will always be picked up first - before any headers in
> > the include directory.
> >
> > Let's change the scheme: make sure all headers that are not
> > in the source directory are included through a path
> > starting with qemu/ , thus:
> >
> > #include <>
> >
> > headers in the same directory as source are included with
> >
> > #include ""
> >
> > as per standard.
> >
> > This (untested) patch is just to start the discussion and does not
> > change all of the codebase. If there's agreement, this will be
> > run on all code to converting code to this scheme.
>
> Renaming files is always painful. If that's the fix, the cure might be
> worse than the disease. As far as I know, the conflict is only
> theoretical, so in that case I'd say: If it ain't broke, don't fix it.
>
> Kevin
It's broke I think, it's very hard for new people to contribute to QEMU.
Look e.g. at rdma which all has messed up includes - and that's from an
experienced conributor who just isn't an experienced maintainer.
Amount of time spent on teaching new people trivia about our
conventions just isn't funny. They should be self-documenting
and violations should cause the build to fail.
--
MST
next prev parent reply other threads:[~2018-03-21 15:58 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-21 14:46 [PATCH v2] qemu: replace "" with <> in headers Michael S. Tsirkin
2018-03-21 15:04 ` Paolo Bonzini
2018-03-21 15:11 ` Michael S. Tsirkin
2018-03-21 15:23 ` Paolo Bonzini
2018-03-21 15:19 ` Daniel P. Berrangé
2018-03-21 15:39 ` Michael S. Tsirkin
2018-03-21 15:54 ` Daniel P. Berrangé
2018-03-21 15:34 ` Kevin Wolf
2018-03-21 15:58 ` Michael S. Tsirkin [this message]
2018-03-21 16:22 ` Kevin Wolf
2018-03-22 19:29 ` Michael S. Tsirkin
2018-03-22 20:33 ` Paolo Bonzini
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=20180321175452-mutt-send-email-mst@kernel.org \
--to=mst@redhat.com \
--cc=balaton@eik.bme.hu \
--cc=ben@skyportsystems.com \
--cc=borntraeger@de.ibm.com \
--cc=david@redhat.com \
--cc=dmitry.fleytman@gmail.com \
--cc=famz@redhat.com \
--cc=hare@suse.com \
--cc=jcmvbkbc@gmail.com \
--cc=keith.busch@intel.com \
--cc=kraxel@redhat.com \
--cc=kwolf@redhat.com \
--cc=lizhijian@cn.fujitsu.com \
--cc=mdroth@linux.vnet.ibm.com \
--cc=mreitz@redhat.com \
--cc=pavel.dovgaluk@ispras.ru \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=rjones@redhat.com \
--cc=sstabellini@kernel.org \
--cc=stefanb@linux.vnet.ibm.com \
--cc=stefanha@redhat.com \
--cc=yongbok.kim@mips.com \
--cc=zhang.zhanghailiang@huawei.com \
/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