From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39309) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eyf1L-00040m-7W for qemu-devel@nongnu.org; Wed, 21 Mar 2018 10:47:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eyf1F-0005EH-K9 for qemu-devel@nongnu.org; Wed, 21 Mar 2018 10:47:19 -0400 Date: Wed, 21 Mar 2018 16:46:32 +0200 From: "Michael S. Tsirkin" Message-ID: <1521642402-197739-1-git-send-email-mst@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Subject: [Qemu-devel] [PATCH v2] qemu: replace "" with <> in headers List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org, Daniel =?utf-8?B?UC4gQmVycmFuZ8Op?= Cc: Thomas Huth , Laurent Vivier , Peter Maydell , Dmitry Fleytman , Ronnie Sahlberg , Li Zhijian , David Hildenbrand , Jeff Cody , Zhang Chen , BALATON Zoltan , Keith Busch , Max Filippov , Gerd Hoffmann , Jiri Pirko , Subbaraya Sundeep , Eric Blake , Michael Roth , Marcelo Tosatti , Josh Durgin , Stefano Stabellini , Alberto Garcia , zhanghailiang , Ben Warren , Marcel Apfelbaum , Yongbok Kim , Markus Armbruster , Stefan Berger , Christian Borntraeger , kvm@vger.kernel.org, =?utf-8?B?SGVydsOp?= Poussineau , Shannon Zhao , Anthony Perard , Liu Yuan , David Gibson , Andrzej Zaborowski , Jason Wang , Artyom Tarasenko , Riku Voipio , Fam Zheng , Eduardo Habkost , Corey Minyard , Amit Shah , Pavel Dovgalyuk , Stefan Weil , Xie Changlong , Alistair Francis , Peter Lieven , "Dr. David Alan Gilbert" , Greg Kurz , =?utf-8?Q?Marc-Andr=C3=A9?= Lureau , Alex Williamson , qemu-arm@nongnu.org, Peter Chubb , Yuval Shaia , Stefan Hajnoczi , Paolo Bonzini , xen-devel@lists.xenproject.org, John Snow , Richard Henderson , Kevin Wolf , qemu-block@nongnu.org, Peter Crosthwaite , Hitoshi Mitake , Wen Congyang , qemu-s390x@nongnu.org, Cornelia Huck , "Richard W.M. Jones" , Juan Quintela , Max Reitz , Michael Walle , qemu-ppc@nongnu.org, Andreas =?utf-8?Q?F=C3=A4rber?= , Igor Mammedov , Hannes Reinecke , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= 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 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. Signed-off-by: Michael S. Tsirkin --- scripts/changeheaders.pl | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100755 scripts/changeheaders.pl diff --git a/scripts/changeheaders.pl b/scripts/changeheaders.pl new file mode 100755 index 0000000..22bd5b8 --- /dev/null +++ b/scripts/changeheaders.pl @@ -0,0 +1,20 @@ +#!/usr/bin/perl -pi + +if (m@^\s*#include\s+"([^"+]"@o) { + next; +} + +my $hdr = $1; +my $file = $ARGV; +$file =~ s@/[^/]+$@@g; +$file .= $hdr; + +if (-e $file) { + next; +} + +if (m@^\s*#include\s+"qemu/@o) { + s@^(\s*#include\s+)"qemu/([^"]+)"(.*)$@$1$3@o) { +} else { + s@^(\s*#include\s+)"([^"]+)"(.*)$@$1$3@o) { +} -- MST