107 lines
5.6 KiB
Text
107 lines
5.6 KiB
Text
|
Index: iwyu_include_picker.cc
|
||
|
--- iwyu_include_picker.cc.orig
|
||
|
+++ iwyu_include_picker.cc
|
||
|
@@ -133,8 +133,6 @@ const IncludeMapEntry libc_symbol_map[] = {
|
||
|
{ "imaxdiv_t", kPrivate, "<inttypes.h>", kPublic },
|
||
|
{ "intmax_t", kPrivate, "<stdint.h>", kPublic },
|
||
|
{ "uintmax_t", kPrivate, "<stdint.h>", kPublic },
|
||
|
- { "ino64_t", kPrivate, "<sys/types.h>", kPublic },
|
||
|
- { "ino64_t", kPrivate, "<dirent.h>", kPublic },
|
||
|
{ "ino_t", kPrivate, "<sys/types.h>", kPublic },
|
||
|
{ "ino_t", kPrivate, "<dirent.h>", kPublic },
|
||
|
{ "ino_t", kPrivate, "<sys/stat.h>", kPublic },
|
||
|
@@ -163,8 +161,6 @@ const IncludeMapEntry libc_symbol_map[] = {
|
||
|
{ "mode_t", kPrivate, "<sys/stat.h>", kPublic },
|
||
|
{ "nlink_t", kPrivate, "<sys/types.h>", kPublic },
|
||
|
{ "nlink_t", kPrivate, "<sys/stat.h>", kPublic },
|
||
|
- { "off64_t", kPrivate, "<sys/types.h>", kPublic },
|
||
|
- { "off64_t", kPrivate, "<unistd.h>", kPublic },
|
||
|
{ "off_t", kPrivate, "<sys/types.h>", kPublic },
|
||
|
{ "off_t", kPrivate, "<aio.h>", kPublic },
|
||
|
{ "off_t", kPrivate, "<fcntl.h>", kPublic },
|
||
|
@@ -195,13 +191,10 @@ const IncludeMapEntry libc_symbol_map[] = {
|
||
|
{ "sigevent", kPrivate, "<time.h>", kPublic },
|
||
|
{ "siginfo_t", kPrivate, "<signal.h>", kPublic },
|
||
|
{ "siginfo_t", kPrivate, "<sys/wait.h>", kPublic },
|
||
|
- { "sigset_t", kPrivate, "<signal.h>", kPublic },
|
||
|
- { "sigset_t", kPrivate, "<spawn.h>", kPublic },
|
||
|
{ "sigset_t", kPrivate, "<sys/select.h>", kPublic },
|
||
|
{ "sigval", kPrivate, "<signal.h>", kPublic },
|
||
|
{ "sockaddr", kPrivate, "<sys/socket.h>", kPublic },
|
||
|
{ "socklen_t", kPrivate, "<sys/socket.h>", kPublic },
|
||
|
- { "socklen_t", kPrivate, "<netdb.h>", kPublic },
|
||
|
{ "ssize_t", kPrivate, "<sys/types.h>", kPublic },
|
||
|
{ "ssize_t", kPrivate, "<aio.h>", kPublic },
|
||
|
{ "ssize_t", kPrivate, "<monetary.h>", kPublic },
|
||
|
@@ -282,6 +275,7 @@ const IncludeMapEntry libc_symbol_map[] = {
|
||
|
{ "size_t", kPrivate, "<unistd.h>", kPublic },
|
||
|
{ "size_t", kPrivate, "<wchar.h>", kPublic },
|
||
|
{ "size_t", kPrivate, "<wordexp.h>", kPublic },
|
||
|
+ { "size_t", kPrivate, "<sys/types.h>", kPublic },
|
||
|
// Macros that can be defined in more than one file, don't have the
|
||
|
// same __foo_defined guard that other types do, so the grep above
|
||
|
// doesn't discover them. Until I figure out a better way, I just
|
||
|
@@ -302,6 +296,10 @@ const IncludeMapEntry libc_symbol_map[] = {
|
||
|
{ "calloc", kPrivate, "<stdlib.h>", kPublic },
|
||
|
{ "realloc", kPrivate, "<stdlib.h>", kPublic },
|
||
|
{ "free", kPrivate, "<stdlib.h>", kPublic },
|
||
|
+ { "htonl", kPrivate, "<arpa/inet.h>", kPublic },
|
||
|
+ { "htons", kPrivate, "<arpa/inet.h>", kPublic },
|
||
|
+ { "ntohl", kPrivate, "<arpa/inet.h>", kPublic },
|
||
|
+ { "ntohs", kPrivate, "<arpa/inet.h>", kPublic },
|
||
|
// Entries for NULL
|
||
|
{ "NULL", kPrivate, "<stddef.h>", kPublic }, // 'canonical' location for NULL
|
||
|
{ "NULL", kPrivate, "<clocale>", kPublic },
|
||
|
@@ -354,7 +352,7 @@ const IncludeMapEntry libstdcpp_symbol_map[] = {
|
||
|
{ "std::size_t", kPrivate, "<cwchar>", kPublic },
|
||
|
};
|
||
|
|
||
|
-const IncludeMapEntry libc_include_map[] = {
|
||
|
+const IncludeMapEntry glibc_include_map[] = {
|
||
|
// Private -> public include mappings for GNU libc
|
||
|
// ( cd /usr/include && grep '^ *# *include' {sys/,net/,}* | perl -nle 'm/^([^:]+).*<([^>]+)>/ && print qq@ { "<$2>", kPrivate, "<$1>", kPublic },@' | grep bits/ | sort )
|
||
|
// When I saw more than one mapping for these, I typically picked
|
||
|
@@ -561,6 +559,42 @@ const IncludeMapEntry libc_include_map[] = {
|
||
|
{ "<sys/ucontext.h>", kPrivate, "<ucontext.h>", kPublic },
|
||
|
// Exports guaranteed by the C standard
|
||
|
{ "<stdint.h>", kPublic, "<inttypes.h>", kPublic },
|
||
|
+};
|
||
|
+
|
||
|
+// Private -> public include mappings for OpenBSD libc
|
||
|
+const IncludeMapEntry libc_include_map[] = {
|
||
|
+ { "<machine/_float.h>", kPrivate, "<float.h>", kPublic },
|
||
|
+ { "<machine/_types.h>", kPrivate, "<sys/_types.h>", kPrivate },
|
||
|
+ { "<machine/atomic.h>", kPrivate, "<sys/atomic.h>", kPublic },
|
||
|
+ { "<machine/cdefs.h>", kPrivate, "<sys/cdefs.h>", kPublic },
|
||
|
+ { "<machine/disklabel.h>", kPrivate, "<sys/disklabel.h>", kPublic },
|
||
|
+ { "<machine/endian.h>", kPrivate, "<sys/endian.h>", kPrivate },
|
||
|
+ { "<machine/limits.h>", kPrivate, "<sys/limits.h>", kPrivate },
|
||
|
+ { "<machine/param.h>", kPrivate, "<sys/param.h>", kPublic },
|
||
|
+ { "<machine/ptrace.h>", kPrivate, "<sys/ptrace.h>", kPublic },
|
||
|
+ { "<machine/signal.h>", kPrivate, "<sys/signal.h>", kPrivate },
|
||
|
+ { "<machine/stdarg.h>", kPrivate, "<sys/stdarg.h>", kPrivate },
|
||
|
+ { "<machine/stdint.h>", kPrivate, "<sys/stdint.h>", kPrivate },
|
||
|
+ { "<machine/varargs.h>", kPrivate, "<sys/varags.h>", kPrivate },
|
||
|
+ { "<netinet6/in6.h>", kPrivate, "<netinet/in.h>", kPublic },
|
||
|
+ { "<sys/_endian.h>", kPrivate, "<sys/endian.h>", kPrivate },
|
||
|
+ { "<sys/_time.h>", kPrivate, "<time.h>", kPublic },
|
||
|
+ { "<sys/_types.h>", kPrivate, "<sys/types.h>", kPublic },
|
||
|
+ { "<sys/endian.h>", kPrivate, "<endian.h>", kPublic },
|
||
|
+ { "<sys/dirent.h>", kPrivate, "<dirent.h>", kPublic },
|
||
|
+ { "<sys/errno.h>", kPrivate, "<errno.h>", kPublic },
|
||
|
+ { "<sys/fcntl.h>", kPrivate, "<fcntl.h>", kPublic },
|
||
|
+ { "<sys/limits.h>", kPrivate, "<limits.h>", kPublic },
|
||
|
+ { "<sys/poll.h>", kPrivate, "<poll.h>", kPublic },
|
||
|
+ { "<sys/signal.h>", kPrivate, "<signal.h>", kPublic },
|
||
|
+ { "<sys/stdarg.h>", kPrivate, "<stdarg.h>", kPublic },
|
||
|
+ { "<sys/stdint.h>", kPrivate, "<stdint.h>", kPublic },
|
||
|
+ { "<sys/syslimits.h>", kPrivate, "<limits.h>", kPublic },
|
||
|
+ { "<sys/syslog.h>", kPrivate, "<syslog.h>", kPublic },
|
||
|
+ { "<sys/termios.h>", kPrivate, "<termios.h>", kPublic },
|
||
|
+ { "<sys/unistd.h>", kPrivate, "<unistd.h>", kPublic },
|
||
|
+ { "<sys/uuid.h>", kPrivate, "<uuid.h>", kPublic },
|
||
|
+ { "<sys/varargs.h>", kPrivate, "<varargs.h>", kPublic },
|
||
|
};
|
||
|
|
||
|
const IncludeMapEntry stdlib_c_include_map[] = {
|