Current net-next headers break build of iproute2. Looks like in.h needs the same libc-compat.h dance as was done in in6.h
$ gcc -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wold-style-definition -Wformat=2 -O2 -I../include -DRESOLVE_HOSTNAMES -DLIBDIR=\"/usr/lib\" -DCONFDIR=\"/etc/iproute2\" -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DHAVE_SETNS -DHAVE_ELF -DCONFIG_GACT -DCONFIG_GACT_PROB -DIPT_LIB_DIR=\"/lib/xtables\" -DYY_NO_INPUT $(pkg-config xtables --cflags) -c -o em_ipset.o em_ipset.c In file included from /usr/include/netdb.h:27:0, from em_ipset.c:20: ../include/linux/in.h:26:3: error: redeclaration of enumerator ‘IPPROTO_IP’ IPPROTO_IP = 0, /* Dummy protocol for TCP */ ^ /usr/include/netinet/in.h:42:5: note: previous definition of ‘IPPROTO_IP’ was here IPPROTO_IP = 0, /* Dummy protocol for TCP. */ ^ ../include/linux/in.h:28:3: error: redeclaration of enumerator ‘IPPROTO_ICMP’ IPPROTO_ICMP = 1, /* Internet Control Message Protocol */ ^ /usr/include/netinet/in.h:44:5: note: previous definition of ‘IPPROTO_ICMP’ was here IPPROTO_ICMP = 1, /* Internet Control Message Protocol. */ ^ ../include/linux/in.h:30:3: error: redeclaration of enumerator ‘IPPROTO_IGMP’ IPPROTO_IGMP = 2, /* Internet Group Management Protocol */ ^ /usr/include/netinet/in.h:46:5: note: previous definition of ‘IPPROTO_IGMP’ was here IPPROTO_IGMP = 2, /* Internet Group Management Protocol. */ ^ ../include/linux/in.h:32:3: error: redeclaration of enumerator ‘IPPROTO_IPIP’ IPPROTO_IPIP = 4, /* IPIP tunnels (older KA9Q tunnels use 94) */ ^ /usr/include/netinet/in.h:48:5: note: previous definition of ‘IPPROTO_IPIP’ was here IPPROTO_IPIP = 4, /* IPIP tunnels (older KA9Q tunnels use 94). */ ^ ../include/linux/in.h:34:3: error: redeclaration of enumerator ‘IPPROTO_TCP’ IPPROTO_TCP = 6, /* Transmission Control Protocol */ ^ /usr/include/netinet/in.h:50:5: note: previous definition of ‘IPPROTO_TCP’ was here IPPROTO_TCP = 6, /* Transmission Control Protocol. */ ^ ../include/linux/in.h:36:3: error: redeclaration of enumerator ‘IPPROTO_EGP’ IPPROTO_EGP = 8, /* Exterior Gateway Protocol */ ^ /usr/include/netinet/in.h:52:5: note: previous definition of ‘IPPROTO_EGP’ was here IPPROTO_EGP = 8, /* Exterior Gateway Protocol. */ ^ ../include/linux/in.h:38:3: error: redeclaration of enumerator ‘IPPROTO_PUP’ IPPROTO_PUP = 12, /* PUP protocol */ ^ /usr/include/netinet/in.h:54:5: note: previous definition of ‘IPPROTO_PUP’ was here IPPROTO_PUP = 12, /* PUP protocol. */ ^ ../include/linux/in.h:40:3: error: redeclaration of enumerator ‘IPPROTO_UDP’ IPPROTO_UDP = 17, /* User Datagram Protocol */ ^ /usr/include/netinet/in.h:56:5: note: previous definition of ‘IPPROTO_UDP’ was here IPPROTO_UDP = 17, /* User Datagram Protocol. */ ^ ../include/linux/in.h:42:3: error: redeclaration of enumerator ‘IPPROTO_IDP’ IPPROTO_IDP = 22, /* XNS IDP protocol */ ^ /usr/include/netinet/in.h:58:5: note: previous definition of ‘IPPROTO_IDP’ was here IPPROTO_IDP = 22, /* XNS IDP protocol. */ ^ ../include/linux/in.h:44:3: error: redeclaration of enumerator ‘IPPROTO_TP’ IPPROTO_TP = 29, /* SO Transport Protocol Class 4 */ ^ /usr/include/netinet/in.h:60:5: note: previous definition of ‘IPPROTO_TP’ was here IPPROTO_TP = 29, /* SO Transport Protocol Class 4. */ ^ ../include/linux/in.h:46:3: error: redeclaration of enumerator ‘IPPROTO_DCCP’ IPPROTO_DCCP = 33, /* Datagram Congestion Control Protocol */ ^ /usr/include/netinet/in.h:62:5: note: previous definition of ‘IPPROTO_DCCP’ was here IPPROTO_DCCP = 33, /* Datagram Congestion Control Protocol. */ ^ ../include/linux/in.h:48:3: error: redeclaration of enumerator ‘IPPROTO_IPV6’ IPPROTO_IPV6 = 41, /* IPv6-in-IPv4 tunnelling */ ^ /usr/include/netinet/in.h:64:5: note: previous definition of ‘IPPROTO_IPV6’ was here IPPROTO_IPV6 = 41, /* IPv6 header. */ ^ ../include/linux/in.h:50:3: error: redeclaration of enumerator ‘IPPROTO_RSVP’ IPPROTO_RSVP = 46, /* RSVP Protocol */ ^ /usr/include/netinet/in.h:66:5: note: previous definition of ‘IPPROTO_RSVP’ was here IPPROTO_RSVP = 46, /* Reservation Protocol. */ ^ ../include/linux/in.h:52:3: error: redeclaration of enumerator ‘IPPROTO_GRE’ IPPROTO_GRE = 47, /* Cisco GRE tunnels (rfc 1701,1702) */ ^ /usr/include/netinet/in.h:68:5: note: previous definition of ‘IPPROTO_GRE’ was here IPPROTO_GRE = 47, /* General Routing Encapsulation. */ ^ ../include/linux/in.h:54:3: error: redeclaration of enumerator ‘IPPROTO_ESP’ IPPROTO_ESP = 50, /* Encapsulation Security Payload protocol */ ^ /usr/include/netinet/in.h:70:5: note: previous definition of ‘IPPROTO_ESP’ was here IPPROTO_ESP = 50, /* encapsulating security payload. */ ^ ../include/linux/in.h:56:3: error: redeclaration of enumerator ‘IPPROTO_AH’ IPPROTO_AH = 51, /* Authentication Header protocol */ ^ /usr/include/netinet/in.h:72:5: note: previous definition of ‘IPPROTO_AH’ was here IPPROTO_AH = 51, /* authentication header. */ ^ ../include/linux/in.h:58:3: error: redeclaration of enumerator ‘IPPROTO_MTP’ IPPROTO_MTP = 92, /* Multicast Transport Protocol */ ^ /usr/include/netinet/in.h:74:5: note: previous definition of ‘IPPROTO_MTP’ was here IPPROTO_MTP = 92, /* Multicast Transport Protocol. */ ^ ../include/linux/in.h:60:3: error: redeclaration of enumerator ‘IPPROTO_BEETPH’ IPPROTO_BEETPH = 94, /* IP option pseudo header for BEET */ ^ /usr/include/netinet/in.h:76:5: note: previous definition of ‘IPPROTO_BEETPH’ was here IPPROTO_BEETPH = 94, /* IP option pseudo header for BEET. */ ^ ../include/linux/in.h:62:3: error: redeclaration of enumerator ‘IPPROTO_ENCAP’ IPPROTO_ENCAP = 98, /* Encapsulation Header */ ^ /usr/include/netinet/in.h:78:5: note: previous definition of ‘IPPROTO_ENCAP’ was here IPPROTO_ENCAP = 98, /* Encapsulation Header. */ ^ ../include/linux/in.h:64:3: error: redeclaration of enumerator ‘IPPROTO_PIM’ IPPROTO_PIM = 103, /* Protocol Independent Multicast */ ^ /usr/include/netinet/in.h:80:5: note: previous definition of ‘IPPROTO_PIM’ was here IPPROTO_PIM = 103, /* Protocol Independent Multicast. */ ^ ../include/linux/in.h:66:3: error: redeclaration of enumerator ‘IPPROTO_COMP’ IPPROTO_COMP = 108, /* Compression Header Protocol */ ^ /usr/include/netinet/in.h:82:5: note: previous definition of ‘IPPROTO_COMP’ was here IPPROTO_COMP = 108, /* Compression Header Protocol. */ ^ ../include/linux/in.h:68:3: error: redeclaration of enumerator ‘IPPROTO_SCTP’ IPPROTO_SCTP = 132, /* Stream Control Transport Protocol */ ^ /usr/include/netinet/in.h:84:5: note: previous definition of ‘IPPROTO_SCTP’ was here IPPROTO_SCTP = 132, /* Stream Control Transmission Protocol. */ ^ ../include/linux/in.h:70:3: error: redeclaration of enumerator ‘IPPROTO_UDPLITE’ IPPROTO_UDPLITE = 136, /* UDP-Lite (RFC 3828) */ ^ /usr/include/netinet/in.h:86:5: note: previous definition of ‘IPPROTO_UDPLITE’ was here IPPROTO_UDPLITE = 136, /* UDP-Lite protocol. */ ^ ../include/linux/in.h:74:3: error: redeclaration of enumerator ‘IPPROTO_RAW’ IPPROTO_RAW = 255, /* Raw IP packets */ ^ /usr/include/netinet/in.h:88:5: note: previous definition of ‘IPPROTO_RAW’ was here IPPROTO_RAW = 255, /* Raw IP packets. */ ^ In file included from ../include/linux/netfilter.h:7:0, from /usr/include/xtables.h:18, from em_ipset.c:26: ../include/linux/in.h:76:3: error: redeclaration of enumerator ‘IPPROTO_MAX’ IPPROTO_MAX ^ In file included from /usr/include/netdb.h:27:0, from em_ipset.c:20: /usr/include/netinet/in.h:90:5: note: previous definition of ‘IPPROTO_MAX’ was here IPPROTO_MAX ^ In file included from ../include/linux/netfilter.h:7:0, from /usr/include/xtables.h:18, from em_ipset.c:26: ../include/linux/in.h:81:8: error: redefinition of ‘struct in_addr’ struct in_addr { ^ In file included from /usr/include/netdb.h:27:0, from em_ipset.c:20: /usr/include/netinet/in.h:31:8: note: originally defined here struct in_addr ^ In file included from ../include/linux/netfilter.h:7:0, from /usr/include/xtables.h:18, from em_ipset.c:26: ../include/linux/in.h:161:8: error: redefinition of ‘struct ip_mreq’ struct ip_mreq { ^ In file included from /usr/include/netdb.h:27:0, from em_ipset.c:20: /usr/include/netinet/in.h:264:8: note: originally defined here struct ip_mreq ^ In file included from ../include/linux/netfilter.h:7:0, from /usr/include/xtables.h:18, from em_ipset.c:26: ../include/linux/in.h:166:8: error: redefinition of ‘struct ip_mreqn’ struct ip_mreqn { ^ In file included from /usr/include/netinet/in.h:37:0, from /usr/include/netdb.h:27, from em_ipset.c:20: /usr/include/x86_64-linux-gnu/bits/in.h:119:8: note: originally defined here struct ip_mreqn ^ In file included from ../include/linux/netfilter.h:7:0, from /usr/include/xtables.h:18, from em_ipset.c:26: ../include/linux/in.h:172:8: error: redefinition of ‘struct ip_mreq_source’ struct ip_mreq_source { ^ In file included from /usr/include/netdb.h:27:0, from em_ipset.c:20: /usr/include/netinet/in.h:273:8: note: originally defined here struct ip_mreq_source ^ In file included from ../include/linux/netfilter.h:7:0, from /usr/include/xtables.h:18, from em_ipset.c:26: ../include/linux/in.h:178:8: error: redefinition of ‘struct ip_msfilter’ struct ip_msfilter { ^ In file included from /usr/include/netdb.h:27:0, from em_ipset.c:20: /usr/include/netinet/in.h:323:8: note: originally defined here struct ip_msfilter ^ In file included from ../include/linux/netfilter.h:7:0, from /usr/include/xtables.h:18, from em_ipset.c:26: ../include/linux/in.h:190:8: error: redefinition of ‘struct group_req’ struct group_req { ^ In file included from /usr/include/netdb.h:27:0, from em_ipset.c:20: /usr/include/netinet/in.h:300:8: note: originally defined here struct group_req ^ In file included from ../include/linux/netfilter.h:7:0, from /usr/include/xtables.h:18, from em_ipset.c:26: ../include/linux/in.h:195:8: error: redefinition of ‘struct group_source_req’ struct group_source_req { ^ In file included from /usr/include/netdb.h:27:0, from em_ipset.c:20: /usr/include/netinet/in.h:309:8: note: originally defined here struct group_source_req ^ In file included from ../include/linux/netfilter.h:7:0, from /usr/include/xtables.h:18, from em_ipset.c:26: ../include/linux/in.h:201:8: error: redefinition of ‘struct group_filter’ struct group_filter { ^ In file included from /usr/include/netdb.h:27:0, from em_ipset.c:20: /usr/include/netinet/in.h:344:8: note: originally defined here struct group_filter ^ In file included from ../include/linux/netfilter.h:7:0, from /usr/include/xtables.h:18, from em_ipset.c:26: ../include/linux/in.h:213:8: error: redefinition of ‘struct in_pktinfo’ struct in_pktinfo { ^ In file included from /usr/include/netinet/in.h:37:0, from /usr/include/netdb.h:27, from em_ipset.c:20: /usr/include/x86_64-linux-gnu/bits/in.h:127:8: note: originally defined here struct in_pktinfo ^ In file included from ../include/linux/netfilter.h:7:0, from /usr/include/xtables.h:18, from em_ipset.c:26: ../include/linux/in.h:221:8: error: redefinition of ‘struct sockaddr_in’ struct sockaddr_in { ^ In file included from /usr/include/netinet/in.h:23:0, from /usr/include/netdb.h:27, from em_ipset.c:20: /usr/include/x86_64-linux-gnu/sys/socket.h:90:17: note: originally defined here typedef union { __SOCKADDR_ALLTYPES ^ -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html