<div dir="ltr">Thanks for clarifying.  That said, I think we should still follow the LLVM convention of putting system headers last.  (i.e. everything in <> comes after everything in "", but within <> you can still arrange according to the system rules).  This encourages "include what you use" as header files will be required to include any system headers they depend on, rather than relying on every TU that includes that header to do it.</div><br><div class="gmail_quote"><div dir="ltr">On Tue, Sep 6, 2016 at 3:17 PM Kamil Rytarowski <<a href="mailto:n54@gmx.com">n54@gmx.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_msg"><div style="font-family:Verdana;font-size:12.0px" class="gmail_msg"><div class="gmail_msg">On NetBSD /usr/share/misc/style says:</div>

<div class="gmail_msg"> </div>

<div class="gmail_msg">
<div class="gmail_msg">/*<br class="gmail_msg">
 * Kernel include files come first.<br class="gmail_msg">
 */<br class="gmail_msg">
#include <sys/param.h>          /* <sys/param.h> first, */<br class="gmail_msg">
#include <sys/types.h>          /*   <sys/types.h> next, */<br class="gmail_msg">
#include <sys/ioctl.h>          /*   and then the rest, */<br class="gmail_msg">
#include <sys/socket.h>         /*   sorted lexicographically.  */<br class="gmail_msg">
#include <sys/stat.h><br class="gmail_msg">
#include <sys/wait.h>           /* Non-local includes in brackets.  */</div>

<div class="gmail_msg">/*<br class="gmail_msg">
 * If it's a network program, put the network include files next.<br class="gmail_msg">
 * Group the includes files by subdirectory.<br class="gmail_msg">
 */<br class="gmail_msg">
#include <net/if.h><br class="gmail_msg">
#include <net/if_dl.h><br class="gmail_msg">
#include <net/route.h><br class="gmail_msg">
#include <netinet/in.h><br class="gmail_msg">
#include <protocols/rwhod.h></div>

<div class="gmail_msg">/*<br class="gmail_msg">
 * Then there's a blank line, followed by the /usr include files.<br class="gmail_msg">
 * The /usr include files should be sorted lexicographically!<br class="gmail_msg">
 */<br class="gmail_msg">
#include <assert.h><br class="gmail_msg">
#include <errno.h><br class="gmail_msg">
#include <inttypes.h><br class="gmail_msg">
#include <stdio.h><br class="gmail_msg">
#include <stdlib.h></div>

<div class="gmail_msg">/*<br class="gmail_msg">
 * Global pathnames are defined in /usr/include/paths.h.  Pathnames local<br class="gmail_msg">
 * to the program go in pathnames.h in the local directory.<br class="gmail_msg">
 */<br class="gmail_msg">
#include <paths.h></div>

<div class="gmail_msg">/* Then, there's a blank line, and the user include files. */<br class="gmail_msg">
#include "pathnames.h"          /* Local includes in double quotes. */</div>

<div class="gmail_msg"> </div>

<div class="gmail_msg">While the order of standard C headers can be pretty arbitrary, the system ones shall be included in the above order.</div>
</div>

<div class="gmail_msg">
<div class="gmail_msg">It's crucial for <sys/param.h> and <sys/types.h> to be on a top as other headers may assume that they were</div>

<div class="gmail_msg">already included.</div>

<div class="gmail_msg"> </div>

<div name="quote" style="margin:10px 5px 5px 10px;padding:10px 0 10px 10px;border-left:2px solid #c3d9e5;word-wrap:break-word" class="gmail_msg">
<div style="margin:0 0 10px 0" class="gmail_msg"><b class="gmail_msg">Sent:</b> Wednesday, September 07, 2016 at 12:05 AM<br class="gmail_msg">
<b class="gmail_msg">From:</b> "Dimitry Andric via lldb-commits" <<a href="mailto:lldb-commits@lists.llvm.org" class="gmail_msg" target="_blank">lldb-commits@lists.llvm.org</a>><br class="gmail_msg">
<b class="gmail_msg">To:</b> "Zachary Turner" <<a href="mailto:zturner@google.com" class="gmail_msg" target="_blank">zturner@google.com</a>><br class="gmail_msg">
<b class="gmail_msg">Cc:</b> <a href="mailto:lldb-commits@lists.llvm.org" class="gmail_msg" target="_blank">lldb-commits@lists.llvm.org</a><br class="gmail_msg">
<b class="gmail_msg">Subject:</b> Re: [Lldb-commits] [lldb] r280755 - Reorder FreeBSD Host.cpp #includes to fix build</div></div></div></div></div><div class="gmail_msg"><div style="font-family:Verdana;font-size:12.0px" class="gmail_msg"><div class="gmail_msg"><div name="quote" style="margin:10px 5px 5px 10px;padding:10px 0 10px 10px;border-left:2px solid #c3d9e5;word-wrap:break-word" class="gmail_msg">

<div name="quoted-content" class="gmail_msg">
<div class="gmail_msg">
<div class="gmail_msg">In general, <sys/*> and <machine/*> headers should be at the top, followed by standard headers such as <stdio.h>, then followed by application-specific headers.  IIRC this is also the case for Linux.</div>

<div class="gmail_msg"> </div>

<div class="gmail_msg">-Dimitry</div>
 

<div class="gmail_msg">
<blockquote class="gmail_msg">
<div class="gmail_msg">On 07 Sep 2016, at 00:02, Zachary Turner via lldb-commits <<a href="http://lldb-commits@lists.llvm.org" class="gmail_msg" target="_blank">lldb-commits@lists.llvm.org</a>> wrote:</div>
 

<div class="gmail_msg">
<div class="gmail_msg">Why was this causing a problem?  The only headers that were re-ordered are system headers.  Does FreeBSD's libraries have requirements about certain headers being included before other headers?</div>
 

<div class="gmail_quote gmail_msg">
<div class="gmail_msg">On Tue, Sep 6, 2016 at 2:33 PM Ed Maste via lldb-commits <<a href="http://lldb-commits@lists.llvm.org" class="gmail_msg" target="_blank">lldb-commits@lists.llvm.org</a>> wrote:</div>

<blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 0.8ex;border-left:1.0px rgb(204,204,204) solid;padding-left:1.0ex">Author: emaste<br class="gmail_msg">
Date: Tue Sep  6 16:25:31 2016<br class="gmail_msg">
New Revision: 280755<br class="gmail_msg">
<br class="gmail_msg">
URL: <a class="gmail_msg" href="http://llvm.org/viewvc/llvm-project?rev=280755&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=280755&view=rev</a><br class="gmail_msg">
Log:<br class="gmail_msg">
Reorder FreeBSD Host.cpp #includes to fix build<br class="gmail_msg">
<br class="gmail_msg">
Modified:<br class="gmail_msg">
    lldb/trunk/source/Host/freebsd/Host.cpp<br class="gmail_msg">
<br class="gmail_msg">
Modified: lldb/trunk/source/Host/freebsd/Host.cpp<br class="gmail_msg">
URL: <a class="gmail_msg" href="http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/freebsd/Host.cpp?rev=280755&r1=280754&r2=280755&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/freebsd/Host.cpp?rev=280755&r1=280754&r2=280755&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- lldb/trunk/source/Host/freebsd/Host.cpp (original)<br class="gmail_msg">
+++ lldb/trunk/source/Host/freebsd/Host.cpp Tue Sep  6 16:25:31 2016<br class="gmail_msg">
@@ -9,17 +9,19 @@<br class="gmail_msg">
 //===----------------------------------------------------------------------===//<br class="gmail_msg">
<br class="gmail_msg">
 // C Includes<br class="gmail_msg">
-#include <dlfcn.h><br class="gmail_msg">
-#include <execinfo.h><br class="gmail_msg">
-#include <stdio.h><br class="gmail_msg">
+#include <sys/types.h><br class="gmail_msg">
+<br class="gmail_msg">
+#include <sys/exec.h><br class="gmail_msg">
 #include <sys/proc.h><br class="gmail_msg">
+#include <sys/ptrace.h><br class="gmail_msg">
 #include <sys/sysctl.h><br class="gmail_msg">
-#include <sys/types.h><br class="gmail_msg">
 #include <sys/user.h><br class="gmail_msg">
<br class="gmail_msg">
 #include <machine/elf.h><br class="gmail_msg">
-#include <sys/exec.h><br class="gmail_msg">
-#include <sys/ptrace.h><br class="gmail_msg">
+<br class="gmail_msg">
+#include <dlfcn.h><br class="gmail_msg">
+#include <execinfo.h><br class="gmail_msg">
+#include <stdio.h><br class="gmail_msg">
<br class="gmail_msg">
 // C++ Includes<br class="gmail_msg">
 // Other libraries and framework includes<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
_______________________________________________<br class="gmail_msg">
lldb-commits mailing list<br class="gmail_msg">
<a class="gmail_msg" href="http://lldb-commits@lists.llvm.org" target="_blank">lldb-commits@lists.llvm.org</a><br class="gmail_msg">
<a class="gmail_msg" href="http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits</a></blockquote>
</div>
_______________________________________________<br class="gmail_msg">
lldb-commits mailing list<br class="gmail_msg">
<a href="http://lldb-commits@lists.llvm.org" class="gmail_msg" target="_blank">lldb-commits@lists.llvm.org</a><br class="gmail_msg">
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits" class="gmail_msg" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits</a></div>
</blockquote>
</div>
<br class="gmail_msg">
_______________________________________________ lldb-commits mailing list <a href="mailto:lldb-commits@lists.llvm.org" class="gmail_msg" target="_blank">lldb-commits@lists.llvm.org</a> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits" class="gmail_msg" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits</a></div>
</div>
</div></div></div></div></blockquote></div>