Subject: Re: [GIT PATCH] NET: Fixes for net-2.6.19

From: Stephen Hemminger <[email-masked]>
Date: Thu, 28 Sep 2006 15:50:52 -0700

On Thu, 28 Sep 2006 14:33:04 -0700 (PDT)
David Miller <[email-masked]> wrote:

> From: Stephen Hemminger <[email-masked]>
> Date: Thu, 28 Sep 2006 08:36:45 -0700
> 
> > Please figure out how to keep rtnetlink.h useful from user space.
> > I tried putting the current sanitized version of rtnetlink.h into
> > iproute2 and the build fails. 
> 
> Please give the error so I have a chance of fixing this.

If I put 2.6.19 headers in:

In file included from ../include/linux/rtnetlink.h:5,
                 from ../include/libnetlink.h:6,
                 from ll_map.c:23:
/usr/include/linux/if.h:117: error: redefinition of ‘struct ifmap’
/usr/include/linux/if.h:153: error: redefinition of ‘struct ifreq’
/usr/include/linux/if.h:203: error: redefinition of ‘struct ifconf’
ll_map.c: In function ‘ll_remember_index’:
ll_map.c:45: error: ‘IFLA_MAX’ undeclared (first use in this function)
ll_map.c:45: error: (Each undeclared identifier is reported only once
ll_map.c:45: error: for each function it appears in.)
ll_map.c:55: warning: implicit declaration of function ‘IFLA_RTA’
ll_map.c:55: warning: implicit declaration of function ‘IFLA_PAYLOAD’
ll_map.c:55: warning: passing argument 3 of ‘parse_rtattr’ makes pointer from integer without a cast
ll_map.c:56: error: ‘IFLA_IFNAME’ undeclared (first use in this function)
ll_map.c:76: error: ‘IFLA_ADDRESS’ undeclared (first use in this function)
ll_map.c:45: warning: unused variable ‘tb’
make[1]: *** [ll_map.o] Error 1
utils.c: In function ‘inet_addr_match’:
utils.c:333: warning: initialization discards qualifiers from pointer target type
utils.c:334: warning: initialization discards qualifiers from pointer target type
make[1]: Target `all' not remade because of errors.
ipaddress.c: In function ‘print_linkinfo’:
ipaddress.c:135: error: ‘IFLA_MAX’ undeclared (first use in this function)
ipaddress.c:135: error: (Each undeclared identifier is reported only once
ipaddress.c:135: error: for each function it appears in.)
ipaddress.c:151: warning: implicit declaration of function ‘IFLA_RTA’
ipaddress.c:151: warning: passing argument 3 of ‘parse_rtattr’ makes pointer from integer without a cast
ipaddress.c:152: error: ‘IFLA_IFNAME’ undeclared (first use in this function)
ipaddress.c:167: error: ‘IFLA_LINK’ undeclared (first use in this function)
ipaddress.c:182: error: ‘IFLA_MTU’ undeclared (first use in this function)
ipaddress.c:184: error: ‘IFLA_QDISC’ undeclared (first use in this function)
ipaddress.c:200: error: ‘IFLA_ADDRESS’ undeclared (first use in this function)
ipaddress.c:206: error: ‘IFLA_BROADCAST’ undeclared (first use in this function)
ipaddress.c:217: error: ‘IFLA_STATS’ undeclared (first use in this function)
ipaddress.c:218: error: storage size of ‘slocal’ isn’t known
ipaddress.c:226: error: dereferencing pointer to incomplete type
ipaddress.c:228: error: dereferencing pointer to incomplete type
ipaddress.c:228: error: dereferencing pointer to incomplete type
ipaddress.c:228: error: dereferencing pointer to incomplete type
ipaddress.c:229: error: dereferencing pointer to incomplete type
ipaddress.c:229: error: dereferencing pointer to incomplete type
ipaddress.c:230: error: dereferencing pointer to incomplete type
ipaddress.c:232: error: dereferencing pointer to incomplete type
ipaddress.c:233: error: dereferencing pointer to incomplete type
ipaddress.c:238: error: dereferencing pointer to incomplete type
ipaddress.c:239: error: dereferencing pointer to incomplete type
ipaddress.c:240: error: dereferencing pointer to incomplete type
ipaddress.c:241: error: dereferencing pointer to incomplete type
ipaddress.c:242: error: dereferencing pointer to incomplete type
ipaddress.c:247: error: dereferencing pointer to incomplete type
ipaddress.c:249: error: dereferencing pointer to incomplete type
ipaddress.c:249: error: dereferencing pointer to incomplete type
ipaddress.c:249: error: dereferencing pointer to incomplete type
ipaddress.c:250: error: dereferencing pointer to incomplete type
ipaddress.c:250: error: dereferencing pointer to incomplete type
ipaddress.c:250: error: dereferencing pointer to incomplete type
ipaddress.c:251: error: dereferencing pointer to incomplete type
ipaddress.c:252: error: dereferencing pointer to incomplete type
ipaddress.c:257: error: dereferencing pointer to incomplete type
ipaddress.c:258: error: dereferencing pointer to incomplete type
ipaddress.c:259: error: dereferencing pointer to incomplete type
ipaddress.c:260: error: dereferencing pointer to incomplete type
ipaddress.c:218: warning: unused variable ‘slocal’
ipaddress.c:135: warning: unused variable ‘tb’
ipaddress.c: In function ‘print_addrinfo’:
ipaddress.c:285: error: ‘IFA_MAX’ undeclared (first use in this function)
ipaddress.c:291: error: dereferencing pointer to incomplete type
ipaddress.c:300: warning: implicit declaration of function ‘IFA_RTA’
ipaddress.c:300: error: dereferencing pointer to incomplete type
ipaddress.c:300: warning: passing argument 3 of ‘parse_rtattr’ makes pointer from integer without a cast
ipaddress.c:302: error: ‘IFA_LOCAL’ undeclared (first use in this function)
ipaddress.c:303: error: ‘IFA_ADDRESS’ undeclared (first use in this function)
ipaddress.c:307: error: dereferencing pointer to incomplete type
ipaddress.c:309: error: dereferencing pointer to incomplete type
ipaddress.c:311: error: dereferencing pointer to incomplete type
ipaddress.c:316: error: ‘IFA_LABEL’ undeclared (first use in this function)
ipaddress.c:319: error: dereferencing pointer to incomplete type
ipaddress.c:327: error: dereferencing pointer to incomplete type
ipaddress.c:334: error: dereferencing pointer to incomplete type
ipaddress.c:358: error: dereferencing pointer to incomplete type
ipaddress.c:358: error: dereferencing pointer to incomplete type
ipaddress.c:359: error: dereferencing pointer to incomplete type
ipaddress.c:361: error: dereferencing pointer to incomplete type
ipaddress.c:363: error: dereferencing pointer to incomplete type
ipaddress.c:365: error: dereferencing pointer to incomplete type
ipaddress.c:368: error: dereferencing pointer to incomplete type
ipaddress.c:371: error: dereferencing pointer to incomplete type
ipaddress.c:378: error: dereferencing pointer to incomplete type
ipaddress.c:381: error: dereferencing pointer to incomplete type
ipaddress.c:385: error: dereferencing pointer to incomplete type
ipaddress.c:389: error: ‘IFA_BROADCAST’ undeclared (first use in this function)
ipaddress.c:391: error: dereferencing pointer to incomplete type
ipaddress.c:396: error: ‘IFA_ANYCAST’ undeclared (first use in this function)
ipaddress.c:398: error: dereferencing pointer to incomplete type
ipaddress.c:403: error: dereferencing pointer to incomplete type
ipaddress.c:404: error: dereferencing pointer to incomplete type
ipaddress.c:404: error: ‘IFA_F_SECONDARY’ undeclared (first use in this function)
ipaddress.c:405: error: dereferencing pointer to incomplete type
ipaddress.c:408: error: dereferencing pointer to incomplete type
ipaddress.c:408: error: ‘IFA_F_TENTATIVE’ undeclared (first use in this function)
ipaddress.c:409: error: dereferencing pointer to incomplete type
ipaddress.c:412: error: dereferencing pointer to incomplete type
ipaddress.c:412: error: ‘IFA_F_DEPRECATED’ undeclared (first use in this function)
ipaddress.c:413: error: dereferencing pointer to incomplete type
ipaddress.c:416: error: dereferencing pointer to incomplete type
ipaddress.c:416: error: ‘IFA_F_PERMANENT’ undeclared (first use in this function)
ipaddress.c:419: error: dereferencing pointer to incomplete type
ipaddress.c:420: error: dereferencing pointer to incomplete type
ipaddress.c:421: error: dereferencing pointer to incomplete type
ipaddress.c:424: error: ‘IFA_CACHEINFO’ undeclared (first use in this function)
ipaddress.c:428: error: dereferencing pointer to incomplete type
ipaddress.c:431: error: dereferencing pointer to incomplete type
ipaddress.c:432: error: dereferencing pointer to incomplete type
ipaddress.c:435: error: dereferencing pointer to incomplete type
ipaddress.c:285: warning: unused variable ‘rta_tb’
ipaddress.c: In function ‘print_selected_addrinfo’:
ipaddress.c:462: error: dereferencing pointer to incomplete type
ipaddress.c:463: error: dereferencing pointer to incomplete type
ipaddress.c: In function ‘ipaddr_list_or_flush’:
ipaddress.c:538: error: ‘IFA_F_PERMANENT’ undeclared (first use in this function)
ipaddress.c:544: error: ‘IFA_F_SECONDARY’ undeclared (first use in this function)
ipaddress.c:550: error: ‘IFA_F_TENTATIVE’ undeclared (first use in this function)
ipaddress.c:553: error: ‘IFA_F_DEPRECATED’ undeclared (first use in this function)
ipaddress.c:655: error: dereferencing pointer to incomplete type
ipaddress.c:656: error: dereferencing pointer to incomplete type
ipaddress.c:658: error: dereferencing pointer to incomplete type
ipaddress.c:660: error: dereferencing pointer to incomplete type
ipaddress.c:663: error: ‘IFA_MAX’ undeclared (first use in this function)
ipaddress.c:664: warning: implicit declaration of function ‘IFA_PAYLOAD’
ipaddress.c:664: warning: passing argument 3 of ‘parse_rtattr’ makes pointer from integer without a cast
ipaddress.c:665: error: ‘IFA_LOCAL’ undeclared (first use in this function)
ipaddress.c:666: error: ‘IFA_ADDRESS’ undeclared (first use in this function)
ipaddress.c:671: error: dereferencing pointer to incomplete type
ipaddress.c:679: error: ‘IFA_LABEL’ undeclared (first use in this function)
ipaddress.c:682: error: dereferencing pointer to incomplete type
ipaddress.c:663: warning: unused variable ‘tb’
ipaddress.c: In function ‘ipaddr_modify’:
ipaddress.c:738: error: field ‘ifa’ has incomplete type
ipaddress.c:754: error: invalid application of ‘sizeof’ to incomplete type ‘struct ifaddrmsg’ 
ipaddress.c:770: error: ‘IFA_ADDRESS’ undeclared (first use in this function)
ipaddress.c:786: error: ‘IFA_BROADCAST’ undeclared (first use in this function)
ipaddress.c:797: error: ‘IFA_ANYCAST’ undeclared (first use in this function)
ipaddress.c:812: error: ‘IFA_LABEL’ undeclared (first use in this function)
ipaddress.c:825: error: ‘IFA_LOCAL’ undeclared (first use in this function)
make[1]: *** [ipaddress.o] Error 1
In file included from ../include/linux/rtnetlink.h:5,
                 from ../include/libnetlink.h:6,
                 from ../include/utils.h:7,
                 from ipneigh.c:30:
/usr/include/linux/if.h:117: error: redefinition of ‘struct ifmap’
/usr/include/linux/if.h:153: error: redefinition of ‘struct ifreq’
/usr/include/linux/if.h:203: error: redefinition of ‘struct ifconf’
ipneigh.c: In function ‘nud_state_a2n’:
ipneigh.c:63: error: ‘NUD_PERMANENT’ undeclared (first use in this function)
ipneigh.c:63: error: (Each undeclared identifier is reported only once
ipneigh.c:63: error: for each function it appears in.)
ipneigh.c:65: error: ‘NUD_REACHABLE’ undeclared (first use in this function)
ipneigh.c:67: error: ‘NUD_NOARP’ undeclared (first use in this function)
ipneigh.c:69: error: ‘NUD_NONE’ undeclared (first use in this function)
ipneigh.c:71: error: ‘NUD_STALE’ undeclared (first use in this function)
ipneigh.c:73: error: ‘NUD_INCOMPLETE’ undeclared (first use in this function)
ipneigh.c:75: error: ‘NUD_DELAY’ undeclared (first use in this function)
ipneigh.c:77: error: ‘NUD_PROBE’ undeclared (first use in this function)
ipneigh.c:79: error: ‘NUD_FAILED’ undeclared (first use in this function)
ipneigh.c: In function ‘ipneigh_modify’:
ipneigh.c:104: error: field ‘ndm’ has incomplete type
ipneigh.c:115: error: invalid application of ‘sizeof’ to incomplete type ‘struct ndmsg’ 
ipneigh.c:119: error: ‘NUD_PERMANENT’ undeclared (first use in this function)
ipneigh.c:142: error: ‘NTF_PROXY’ undeclared (first use in this function)
ipneigh.c:165: error: ‘NDA_DST’ undeclared (first use in this function)
ipneigh.c:172: error: ‘NDA_LLADDR’ undeclared (first use in this function)
ipneigh.c: In function ‘print_neigh’:
ipneigh.c:194: error: ‘NDA_MAX’ undeclared (first use in this function)
ipneigh.c:203: error: dereferencing pointer to incomplete type
ipneigh.c:212: error: dereferencing pointer to incomplete type
ipneigh.c:214: error: dereferencing pointer to incomplete type
ipneigh.c:216: error: dereferencing pointer to incomplete type
ipneigh.c:217: error: dereferencing pointer to incomplete type
ipneigh.c:218: error: dereferencing pointer to incomplete type
ipneigh.c:221: warning: implicit declaration of function ‘NDA_RTA’
ipneigh.c:221: error: dereferencing pointer to incomplete type
ipneigh.c:221: warning: passing argument 3 of ‘parse_rtattr’ makes pointer from integer without a cast
ipneigh.c:223: error: ‘NDA_DST’ undeclared (first use in this function)
ipneigh.c:227: error: dereferencing pointer to incomplete type
ipneigh.c:233: error: ‘NDA_CACHEINFO’ undeclared (first use in this function)
ipneigh.c:235: error: dereferencing pointer to incomplete type
ipneigh.c:258: error: dereferencing pointer to incomplete type
ipneigh.c:263: error: dereferencing pointer to incomplete type
ipneigh.c:264: error: dereferencing pointer to incomplete type
ipneigh.c:265: error: ‘NDA_LLADDR’ undeclared (first use in this function)
ipneigh.c:269: error: dereferencing pointer to incomplete type
ipneigh.c:272: error: dereferencing pointer to incomplete type
ipneigh.c:272: error: ‘NTF_ROUTER’ undeclared (first use in this function)
ipneigh.c:280: error: dereferencing pointer to incomplete type
ipneigh.c:281: error: dereferencing pointer to incomplete type
ipneigh.c:282: error: dereferencing pointer to incomplete type
ipneigh.c:283: error: dereferencing pointer to incomplete type
ipneigh.c:283: error: dereferencing pointer to incomplete type
ipneigh.c:293: error: dereferencing pointer to incomplete type
ipneigh.c:294: error: dereferencing pointer to incomplete type
ipneigh.c:299: error: ‘NUD_INCOMPLETE’ undeclared (first use in this function)
ipneigh.c:300: error: ‘NUD_REACHABLE’ undeclared (first use in this function)
ipneigh.c:301: error: ‘NUD_STALE’ undeclared (first use in this function)
ipneigh.c:302: error: ‘NUD_DELAY’ undeclared (first use in this function)
ipneigh.c:303: error: ‘NUD_PROBE’ undeclared (first use in this function)
ipneigh.c:304: error: ‘NUD_FAILED’ undeclared (first use in this function)
ipneigh.c:305: error: ‘NUD_NOARP’ undeclared (first use in this function)
ipneigh.c:306: error: ‘NUD_PERMANENT’ undeclared (first use in this function)
ipneigh.c:194: warning: unused variable ‘tb’
ipneigh.c: In function ‘do_show_or_flush’:
ipneigh.c:336: error: ‘NUD_PERMANENT’ undeclared (first use in this function)
ipneigh.c:336: error: ‘NUD_NOARP’ undeclared (first use in this function)
ipneigh.c:394: error: ‘NUD_FAILED’ undeclared (first use in this function)
make[1]: *** [ipneigh.o] Error 1
ipntable.c: In function ‘ipntable_modify’:
ipntable.c:67: error: field ‘ndtm’ has incomplete type
ipntable.c:79: error: invalid application of ‘sizeof’ to incomplete type ‘struct ndtmsg’ 
ipntable.c:89: error: ‘NDTA_PARMS’ undeclared (first use in this function)
ipntable.c:89: error: (Each undeclared identifier is reported only once
ipntable.c:89: error: for each function it appears in.)
ipntable.c:102: error: ‘NDTA_NAME’ undeclared (first use in this function)
ipntable.c:112: error: ‘NDTA_THRESH1’ undeclared (first use in this function)
ipntable.c:122: error: ‘NDTA_THRESH2’ undeclared (first use in this function)
ipntable.c:132: error: ‘NDTA_THRESH3’ undeclared (first use in this function)
ipntable.c:142: error: ‘NDTA_GC_INTERVAL’ undeclared (first use in this function)
ipntable.c:155: error: ‘NDTPA_IFINDEX’ undeclared (first use in this function)
ipntable.c:165: error: ‘NDTPA_BASE_REACHABLE_TIME’ undeclared (first use in this function)
ipntable.c:177: error: ‘NDTPA_RETRANS_TIME’ undeclared (first use in this function)
ipntable.c:189: error: ‘NDTPA_GC_STALETIME’ undeclared (first use in this function)
ipntable.c:201: error: ‘NDTPA_DELAY_PROBE_TIME’ undeclared (first use in this function)
ipntable.c:215: error: ‘NDTPA_QUEUE_LEN’ undeclared (first use in this function)
ipntable.c:226: error: ‘NDTPA_APP_PROBES’ undeclared (first use in this function)
ipntable.c:237: error: ‘NDTPA_UCAST_PROBES’ undeclared (first use in this function)
ipntable.c:248: error: ‘NDTPA_MCAST_PROBES’ undeclared (first use in this function)
ipntable.c:259: error: ‘NDTPA_ANYCAST_DELAY’ undeclared (first use in this function)
ipntable.c:271: error: ‘NDTPA_PROXY_DELAY’ undeclared (first use in this function)
ipntable.c:283: error: ‘NDTPA_PROXY_QLEN’ undeclared (first use in this function)
ipntable.c:294: error: ‘NDTPA_LOCKTIME’ undeclared (first use in this function)
ipntable.c: In function ‘print_ntable’:
ipntable.c:357: error: ‘NDTA_MAX’ undeclared (first use in this function)
ipntable.c:358: error: ‘NDTPA_MAX’ undeclared (first use in this function)
ipntable.c:366: error: dereferencing pointer to incomplete type
ipntable.c:372: error: dereferencing pointer to incomplete type
ipntable.c:375: warning: implicit declaration of function ‘NDTA_RTA’
ipntable.c:376: error: dereferencing pointer to incomplete type
ipntable.c:376: warning: passing argument 3 of ‘parse_rtattr’ makes pointer from integer without a cast
ipntable.c:378: error: ‘NDTA_NAME’ undeclared (first use in this function)
ipntable.c:384: error: ‘NDTA_PARMS’ undeclared (first use in this function)
ipntable.c:388: error: ‘NDTPA_IFINDEX’ undeclared (first use in this function)
ipntable.c:399: error: dereferencing pointer to incomplete type
ipntable.c:401: error: dereferencing pointer to incomplete type
ipntable.c:403: error: dereferencing pointer to incomplete type
ipntable.c:406: error: dereferencing pointer to incomplete type
ipntable.c:415: error: ‘NDTA_THRESH1’ undeclared (first use in this function)
ipntable.c:415: error: ‘NDTA_THRESH2’ undeclared (first use in this function)
ipntable.c:415: error: ‘NDTA_THRESH3’ undeclared (first use in this function)
ipntable.c:416: error: ‘NDTA_GC_INTERVAL’ undeclared (first use in this function)
ipntable.c:440: error: ‘NDTA_CONFIG’ undeclared (first use in this function)
ipntable.c:446: error: dereferencing pointer to incomplete type
ipntable.c:447: error: dereferencing pointer to incomplete type
ipntable.c:448: error: dereferencing pointer to incomplete type
ipntable.c:454: error: dereferencing pointer to incomplete type
ipntable.c:456: error: dereferencing pointer to incomplete type
ipntable.c:461: error: dereferencing pointer to incomplete type
ipntable.c:462: error: dereferencing pointer to incomplete type
ipntable.c:464: error: dereferencing pointer to incomplete type
ipntable.c:465: error: dereferencing pointer to incomplete type
ipntable.c:481: error: ‘NDTPA_REFCNT’ undeclared (first use in this function)
ipntable.c:485: error: ‘NDTPA_REACHABLE_TIME’ undeclared (first use in this function)
ipntable.c:489: error: ‘NDTPA_BASE_REACHABLE_TIME’ undeclared (first use in this function)
ipntable.c:493: error: ‘NDTPA_RETRANS_TIME’ undeclared (first use in this function)
ipntable.c:502: error: ‘NDTPA_GC_STALETIME’ undeclared (first use in this function)
ipntable.c:506: error: ‘NDTPA_DELAY_PROBE_TIME’ undeclared (first use in this function)
ipntable.c:510: error: ‘NDTPA_QUEUE_LEN’ undeclared (first use in this function)
ipntable.c:519: error: ‘NDTPA_APP_PROBES’ undeclared (first use in this function)
ipntable.c:523: error: ‘NDTPA_UCAST_PROBES’ undeclared (first use in this function)
ipntable.c:527: error: ‘NDTPA_MCAST_PROBES’ undeclared (first use in this function)
ipntable.c:536: error: ‘NDTPA_ANYCAST_DELAY’ undeclared (first use in this function)
ipntable.c:540: error: ‘NDTPA_PROXY_DELAY’ undeclared (first use in this function)
ipntable.c:544: error: ‘NDTPA_PROXY_QLEN’ undeclared (first use in this function)
ipntable.c:548: error: ‘NDTPA_LOCKTIME’ undeclared (first use in this function)
ipntable.c:556: error: ‘NDTA_STATS’ undeclared (first use in this function)
ipntable.c:562: error: dereferencing pointer to incomplete type
ipntable.c:563: error: dereferencing pointer to incomplete type
ipntable.c:564: error: dereferencing pointer to incomplete type
ipntable.c:569: error: dereferencing pointer to incomplete type
ipntable.c:570: error: dereferencing pointer to incomplete type
ipntable.c:571: error: dereferencing pointer to incomplete type
ipntable.c:576: error: dereferencing pointer to incomplete type
ipntable.c:577: error: dereferencing pointer to incomplete type
ipntable.c:582: error: dereferencing pointer to incomplete type
ipntable.c:583: error: dereferencing pointer to incomplete type
ipntable.c:358: warning: unused variable ‘tpb’
ipntable.c:357: warning: unused variable ‘tb’
make[1]: *** [ipntable.o] Error 1
In file included from ../include/linux/rtnetlink.h:5,
                 from ipxfrm.c:37:
/usr/include/linux/if.h:117: error: redefinition of ‘struct ifmap’
/usr/include/linux/if.h:153: error: redefinition of ‘struct ifreq’
/usr/include/linux/if.h:203: error: redefinition of ‘struct ifconf’
make[1]: *** [ipxfrm.o] Error 1
make[1]: *** No rule to make target `../lib/libnetlink.a', needed by `ip'.
In file included from ../include/linux/rtnetlink.h:5,
                 from ../include/libnetlink.h:6,
                 from ../include/utils.h:7,
                 from rtmon.c:26:
/usr/include/linux/if.h:117: error: redefinition of ‘struct ifmap’
/usr/include/linux/if.h:153: error: redefinition of ‘struct ifreq’
/usr/include/linux/if.h:203: error: redefinition of ‘struct ifconf’
make[1]: *** [rtmon.o] Error 1
make[1]: Target `all' not remade because of errors.
In file included from ../include/linux/rtnetlink.h:5,
                 from ../include/libnetlink.h:6,
                 from ../include/utils.h:7,
                 from tc_filter.c:27:
/usr/include/linux/if.h:117: error: redefinition of ‘struct ifmap’
/usr/include/linux/if.h:153: error: redefinition of ‘struct ifreq’
/usr/include/linux/if.h:203: error: redefinition of ‘struct ifconf’
make[1]: *** [tc_filter.o] Error 1
In file included from ../include/linux/rtnetlink.h:5,
                 from ../include/libnetlink.h:6,
                 from ../include/utils.h:7,
                 from m_ipt.c:22:
/usr/include/linux/if.h:117: error: redefinition of ‘struct ifmap’
/usr/include/linux/if.h:153: error: redefinition of ‘struct ifreq’
/usr/include/linux/if.h:203: error: redefinition of ‘struct ifconf’
make[1]: *** [m_ipt.o] Error 1
make[1]: *** No rule to make target `../lib/libnetlink.a', needed by `tc'.
make[1]: Target `all' not remade because of errors.
ssfilter.y: conflicts: 27 shift/reduce
/usr/bin/ld: cannot find -lnetlink
collect2: ld returned 1 exit status
make[1]: *** [ss] Error 1
gcc: ../lib/libnetlink.a: No such file or directory
ifstat.c: In function ‘get_nlmsg’:
ifstat.c:84: error: ‘IFLA_MAX’ undeclared (first use in this function)
ifstat.c:84: error: (Each undeclared identifier is reported only once
ifstat.c:84: error: for each function it appears in.)
ifstat.c:99: warning: implicit declaration of function ‘IFLA_RTA’
ifstat.c:99: warning: passing argument 3 of ‘parse_rtattr’ makes pointer from integer without a cast
ifstat.c:100: error: ‘IFLA_IFNAME’ undeclared (first use in this function)
ifstat.c:100: error: ‘IFLA_STATS’ undeclared (first use in this function)
ifstat.c:84: warning: unused variable ‘tb’
make[1]: *** [ifstat] Error 1
gcc: ../lib/libnetlink.a: No such file or directory
make[1]: *** [rtacct] Error 1
gcc: ../lib/libnetlink.a: No such file or directory
arpd.c: In function ‘respond_to_kernel’:
arpd.c:267: error: field ‘ndm’ has incomplete type
arpd.c:274: error: invalid application of ‘sizeof’ to incomplete type ‘struct ndmsg’ 
arpd.c:278: error: ‘NUD_STALE’ undeclared (first use in this function)
arpd.c:278: error: (Each undeclared identifier is reported only once
arpd.c:278: error: for each function it appears in.)
arpd.c:282: error: ‘NDA_DST’ undeclared (first use in this function)
arpd.c:283: error: ‘NDA_LLADDR’ undeclared (first use in this function)
arpd.c: In function ‘do_one_request’:
arpd.c:302: error: ‘NDA_MAX’ undeclared (first use in this function)
arpd.c:320: error: dereferencing pointer to incomplete type
arpd.c:324: error: dereferencing pointer to incomplete type
arpd.c:325: error: dereferencing pointer to incomplete type
arpd.c:326: error: dereferencing pointer to incomplete type
arpd.c:327: error: dereferencing pointer to incomplete type
arpd.c:328: error: dereferencing pointer to incomplete type
arpd.c:328: error: ‘NUD_NOARP’ undeclared (first use in this function)
arpd.c:331: warning: implicit declaration of function ‘NDA_RTA’
arpd.c:331: warning: passing argument 3 of ‘parse_rtattr’ makes pointer from integer without a cast
arpd.c:333: error: ‘NDA_DST’ undeclared (first use in this function)
arpd.c:336: error: dereferencing pointer to incomplete type
arpd.c:350: error: dereferencing pointer to incomplete type
arpd.c:350: error: ‘NUD_PROBE’ undeclared (first use in this function)
arpd.c:350: error: ‘NUD_INCOMPLETE’ undeclared (first use in this function)
arpd.c:355: error: dereferencing pointer to incomplete type
arpd.c:388: error: dereferencing pointer to incomplete type
arpd.c:397: error: dereferencing pointer to incomplete type
arpd.c:397: error: ‘NUD_FAILED’ undeclared (first use in this function)
arpd.c:411: error: ‘NDA_LLADDR’ undeclared (first use in this function)
arpd.c:302: warning: unused variable ‘tb’
m