On NetBSD /usr/share/misc/style says:
/*
* Kernel include files come first.
*/
#include <sys/param.h> /* <sys/param.h> first, */
#include <sys/types.h> /* <sys/types.h> next, */
#include <sys/ioctl.h> /* and then the rest, */
#include <sys/socket.h> /* sorted lexicographically. */
#include <sys/stat.h>
#include <sys/wait.h> /* Non-local includes in brackets. */
* Kernel include files come first.
*/
#include <sys/param.h> /* <sys/param.h> first, */
#include <sys/types.h> /* <sys/types.h> next, */
#include <sys/ioctl.h> /* and then the rest, */
#include <sys/socket.h> /* sorted lexicographically. */
#include <sys/stat.h>
#include <sys/wait.h> /* Non-local includes in brackets. */
/*
* If it's a network program, put the network include files next.
* Group the includes files by subdirectory.
*/
#include <net/if.h>
#include <net/if_dl.h>
#include <net/route.h>
#include <netinet/in.h>
#include <protocols/rwhod.h>
* If it's a network program, put the network include files next.
* Group the includes files by subdirectory.
*/
#include <net/if.h>
#include <net/if_dl.h>
#include <net/route.h>
#include <netinet/in.h>
#include <protocols/rwhod.h>
/*
* Then there's a blank line, followed by the /usr include files.
* The /usr include files should be sorted lexicographically!
*/
#include <assert.h>
#include <errno.h>
#include <inttypes.h>
#include <stdio.h>
#include <stdlib.h>
* Then there's a blank line, followed by the /usr include files.
* The /usr include files should be sorted lexicographically!
*/
#include <assert.h>
#include <errno.h>
#include <inttypes.h>
#include <stdio.h>
#include <stdlib.h>
/*
* Global pathnames are defined in /usr/include/paths.h. Pathnames local
* to the program go in pathnames.h in the local directory.
*/
#include <paths.h>
* Global pathnames are defined in /usr/include/paths.h. Pathnames local
* to the program go in pathnames.h in the local directory.
*/
#include <paths.h>
/* Then, there's a blank line, and the user include files. */
#include "pathnames.h" /* Local includes in double quotes. */
#include "pathnames.h" /* Local includes in double quotes. */
While the order of standard C headers can be pretty arbitrary, the system ones shall be included in the above order.
It's crucial for <sys/param.h> and <sys/types.h> to be on a top as other headers may assume that they were
already included.
Sent: Wednesday, September 07, 2016 at 12:05 AM
From: "Dimitry Andric via lldb-commits" <lldb-commits@lists.llvm.org>
To: "Zachary Turner" <ztur...@google.com>
Cc: lldb-commits@lists.llvm.org
Subject: Re: [Lldb-commits] [lldb] r280755 - Reorder FreeBSD Host.cpp #includes to fix build
From: "Dimitry Andric via lldb-commits" <lldb-commits@lists.llvm.org>
To: "Zachary Turner" <ztur...@google.com>
Cc: lldb-commits@lists.llvm.org
Subject: Re: [Lldb-commits] [lldb] r280755 - Reorder FreeBSD Host.cpp #includes to fix build
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.
-Dimitry
On 07 Sep 2016, at 00:02, Zachary Turner via lldb-commits <lldb-commits@lists.llvm.org> wrote: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?_______________________________________________On Tue, Sep 6, 2016 at 2:33 PM Ed Maste via lldb-commits <lldb-commits@lists.llvm.org> wrote:Author: emaste
Date: Tue Sep 6 16:25:31 2016
New Revision: 280755
URL: http://llvm.org/viewvc/llvm-project?rev=280755&view=rev
Log:
Reorder FreeBSD Host.cpp #includes to fix build
Modified:
lldb/trunk/source/Host/freebsd/Host.cpp
Modified: lldb/trunk/source/Host/freebsd/Host.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/freebsd/Host.cpp?rev=280755&r1=280754&r2=280755&view=diff
==============================================================================
--- lldb/trunk/source/Host/freebsd/Host.cpp (original)
+++ lldb/trunk/source/Host/freebsd/Host.cpp Tue Sep 6 16:25:31 2016
@@ -9,17 +9,19 @@
//===----------------------------------------------------------------------===//
// C Includes
-#include <dlfcn.h>
-#include <execinfo.h>
-#include <stdio.h>
+#include <sys/types.h>
+
+#include <sys/exec.h>
#include <sys/proc.h>
+#include <sys/ptrace.h>
#include <sys/sysctl.h>
-#include <sys/types.h>
#include <sys/user.h>
#include <machine/elf.h>
-#include <sys/exec.h>
-#include <sys/ptrace.h>
+
+#include <dlfcn.h>
+#include <execinfo.h>
+#include <stdio.h>
// C++ Includes
// Other libraries and framework includes
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits