On Fri, Sep 02, 2011 at 01:01:37PM -0700, Matthew Dempsky wrote: > Our sys/socket.h and netinet/in.h headers do require sys/types.h, so > it seems consistent to at least document that. ok matthew@ > > (POSIX requires headers to be self-sufficient, but we're a ways off from > that.) >
there was no diff attached, so i've no idea what the fix is. can you sort this as you see best, please? thanks, jmc > On Thu, Sep 1, 2011 at 11:42 PM, Jason McIntyre <j...@cava.myzen.co.uk> wrote: > > can a developer weigh in on this, please? > > jmc > > > > On Thu, Aug 25, 2011 at 02:44:21PM +0200, Thomas de Grivel wrote: > >> Hi, > >> > >> From ip(4) : > >> > >> SYNOPSIS > >> #include <sys/socket.h> > >> #include <netinet/in.h> > >> > >> However this fails : > >> > >> $ cat > ip.c > >> #include <sys/socket.h> > >> #include <netinet/in.h> > >> > >> int main() { > >> return 0; > >> } > >> ^D > >> $ gcc ip.c > >> In file included from ip.c:1: > >> /usr//include/sys/socket.h:105: error: expected specifier-qualifier-list > >> before 'off_t' > >> /usr//include/sys/socket.h:162: error: expected specifier-qualifier-list > >> before 'u_int8_t' > >> /usr//include/sys/socket.h:180: error: expected specifier-qualifier-list > >> before 'u_int8_t' > >> /usr//include/sys/socket.h:249: error: expected specifier-qualifier-list > >> before 'uid_t' > >> /usr//include/sys/socket.h:394: error: expected specifier-qualifier-list > >> before 'socklen_t' > >> /usr//include/sys/socket.h:420: error: expected specifier-qualifier-list > >> before 'socklen_t' > >> /usr//include/sys/socket.h:476: error: expected specifier-qualifier-list > >> before 'caddr_t' > >> In file included from ip.c:1: > >> /usr//include/sys/socket.h:491: error: expected declaration specifiers > >> or '...' before 'socklen_t' > >> /usr//include/sys/socket.h:492: error: expected declaration specifiers > >> or '...' before 'socklen_t' > >> /usr//include/sys/socket.h:493: error: expected declaration specifiers > >> or '...' before 'socklen_t' > >> /usr//include/sys/socket.h:494: error: expected declaration specifiers > >> or '...' before 'uid_t' > >> /usr//include/sys/socket.h:494: error: expected declaration specifiers > >> or '...' before 'gid_t' > >> /usr//include/sys/socket.h:495: error: expected declaration specifiers > >> or '...' before 'socklen_t' > >> /usr//include/sys/socket.h:496: error: expected declaration specifiers > >> or '...' before 'socklen_t' > >> /usr//include/sys/socket.h:497: error: expected declaration specifiers > >> or '...' before 'socklen_t' > >> /usr//include/sys/socket.h:499: error: expected '=', ',', ';', 'asm' or > >> '__attribute__' before 'recv' > >> /usr//include/sys/socket.h:500: error: expected '=', ',', ';', 'asm' or > >> '__attribute__' before 'recvfrom' > >> /usr//include/sys/socket.h:501: error: expected '=', ',', ';', 'asm' or > >> '__attribute__' before 'recvmsg' > >> /usr//include/sys/socket.h:502: error: expected '=', ',', ';', 'asm' or > >> '__attribute__' before 'send' > >> /usr//include/sys/socket.h:503: error: expected '=', ',', ';', 'asm' or > >> '__attribute__' before 'sendto' > >> /usr//include/sys/socket.h:505: error: expected '=', ',', ';', 'asm' or > >> '__attribute__' before 'sendmsg' > >> /usr//include/sys/socket.h:506: error: expected declaration specifiers > >> or '...' before 'socklen_t' > >> In file included from ip.c:2: > >> /usr//include/netinet/in.h:141: error: expected specifier-qualifier-list > >> before 'in_addr_t' > >> /usr//include/netinet/in.h:225: error: expected specifier-qualifier-list > >> before 'u_int8_t' > >> /usr//include/netinet/in.h:244: error: expected specifier-qualifier-list > >> before 'int8_t' > >> In file included from /usr//include/netinet/in.h:732, > >> from ip.c:2: > >> /usr//include/netinet6/in6.h:118: error: expected > >> specifier-qualifier-list before 'u_int8_t' > >> /usr//include/netinet6/in6.h:140: error: expected > >> specifier-qualifier-list before 'u_int8_t' > >> /usr//include/netinet6/in6.h:392: error: expected > >> specifier-qualifier-list before 'u_long' > >> /usr//include/netinet6/in6.h:515: error: expected > >> specifier-qualifier-list before 'u_int32_t' > >> /usr//include/netinet6/in6.h:799: error: expected ';', ',' or ')' before > >> '*' token > >> /usr//include/netinet6/in6.h:801: error: expected '=', ',', ';', 'asm' > >> or '__attribute__' before '*' token > >> /usr//include/netinet6/in6.h:802: error: expected declaration specifiers > >> or '...' before 'u_int8_t' > >> /usr//include/netinet6/in6.h:803: error: expected declaration specifiers > >> or '...' before 'u_int8_t' > >> /usr//include/netinet6/in6.h:805: error: expected '=', ',', ';', 'asm' > >> or '__attribute__' before 'inet6_rthdr_space' > >> /usr//include/netinet6/in6.h:817: error: expected declaration specifiers > >> or '...' before 'socklen_t' > >> /usr//include/netinet6/in6.h:818: error: expected declaration specifiers > >> or '...' before 'socklen_t' > >> /usr//include/netinet6/in6.h:818: error: expected declaration specifiers > >> or '...' before 'u_int8_t' > >> /usr//include/netinet6/in6.h:819: error: expected declaration specifiers > >> or '...' before 'socklen_t' > >> /usr//include/netinet6/in6.h:819: error: expected declaration specifiers > >> or '...' before 'u_int8_t' > >> /usr//include/netinet6/in6.h:820: error: expected declaration specifiers > >> or '...' before 'socklen_t' > >> /usr//include/netinet6/in6.h:821: error: expected declaration specifiers > >> or '...' before 'socklen_t' > >> /usr//include/netinet6/in6.h:823: error: expected declaration specifiers > >> or '...' before 'socklen_t' > >> /usr//include/netinet6/in6.h:823: error: expected declaration specifiers > >> or '...' before 'u_int8_t' > >> /usr//include/netinet6/in6.h:824: error: expected declaration specifiers > >> or '...' before 'socklen_t' > >> /usr//include/netinet6/in6.h:825: error: expected declaration specifiers > >> or '...' before 'socklen_t' > >> /usr//include/netinet6/in6.h:825: error: expected declaration specifiers > >> or '...' before 'u_int8_t' > >> /usr//include/netinet6/in6.h:826: error: expected declaration specifiers > >> or '...' before 'socklen_t' > >> /usr//include/netinet6/in6.h:827: error: expected declaration specifiers > >> or '...' before 'socklen_t' > >> /usr//include/netinet6/in6.h:829: error: expected '=', ',', ';', 'asm' > >> or '__attribute__' before 'inet6_rth_space' > >> /usr//include/netinet6/in6.h:830: error: expected declaration specifiers > >> or '...' before 'socklen_t' > >> > >> Including <sys/types.h> before <sys/socket.h> makes it ok. > >> So either the manual is wrong > >> or sys/socket.h or netinet/in.h is wrong. > >> > >> -- > >> Thomas de Grivel > >> http://b.lowh.net/billitch > >> > >> "I must plunge into the water of doubt again and again."