[...] checking libiptc/libiptc.h usability... no checking libiptc/libiptc.h presence... yes configure: WARNING: libiptc/libiptc.h: present but cannot be compiled configure: WARNING: libiptc/libiptc.h: check for missing prerequisite headers? configure: WARNING: libiptc/libiptc.h: see the Autoconf documentation configure: WARNING: libiptc/libiptc.h: section "Present But Cannot Be Compiled" configure: WARNING: libiptc/libiptc.h: proceeding with the compiler's result checking for libiptc/libiptc.h... no checking libiptc/libip6tc.h usability... no checking libiptc/libip6tc.h presence... yes configure: WARNING: libiptc/libip6tc.h: present but cannot be compiled configure: WARNING: libiptc/libip6tc.h: check for missing prerequisite headers? configure: WARNING: libiptc/libip6tc.h: see the Autoconf documentation configure: WARNING: libiptc/libip6tc.h: section "Present But Cannot Be Compiled" configure: WARNING: libiptc/libip6tc.h: proceeding with the compiler's result checking for libiptc/libip6tc.h... no [...] libiptc . . . . . . . no (header file missing) [...] iptables . . . . . . no (dependency error) [...] configure: error: "Some plugins are missing dependencies - see the summary above for details" Not sure what this is causing at the moment because it was working when collectd-5.5.1 was added. Candidates: - autoconf-2.69-r2 - pkgconfig-0.29.1 - linux-header-4.4
OK, it works with <sys-kernel/linux-headers-4.5.
Problem is > configure:21786: checking libiptc/libiptc.h usability > configure:21786: x86_64-pc-linux-gnu-gcc -c -O2 -pipe -march=ivybridge -mtune=ivybridge -mno-xsaveopt conftest.c >&5 > In file included from /usr/include/libiptc/ipt_kernel_headers.h:13:0, > from /usr/include/libiptc/libiptc.h:6, > from conftest.c:231: > /usr/include/linux/if.h:71:2: error: redeclaration of enumerator 'IFF_UP' > IFF_UP = 1<<0, /* sysfs */ > ^ > /usr/include/net/if.h:44:5: note: previous definition of 'IFF_UP' was here > IFF_UP = 0x1, /* Interface is up. */ > ^ > /usr/include/linux/if.h:72:2: error: redeclaration of enumerator 'IFF_BROADCAST' > IFF_BROADCAST = 1<<1, /* __volatile__ */ > ^ > /usr/include/net/if.h:46:5: note: previous definition of 'IFF_BROADCAST' was here > IFF_BROADCAST = 0x2, /* Broadcast address valid. */ > ^ > /usr/include/linux/if.h:73:2: error: redeclaration of enumerator 'IFF_DEBUG' > IFF_DEBUG = 1<<2, /* sysfs */ > ^ > /usr/include/net/if.h:48:5: note: previous definition of 'IFF_DEBUG' was here > IFF_DEBUG = 0x4, /* Turn on debugging. */ > ^ > /usr/include/linux/if.h:74:2: error: redeclaration of enumerator 'IFF_LOOPBACK' > IFF_LOOPBACK = 1<<3, /* __volatile__ */ > ^ > /usr/include/net/if.h:50:5: note: previous definition of 'IFF_LOOPBACK' was here > IFF_LOOPBACK = 0x8, /* Is a loopback net. */ > ^ > /usr/include/linux/if.h:75:2: error: redeclaration of enumerator 'IFF_POINTOPOINT' > IFF_POINTOPOINT = 1<<4, /* __volatile__ */ > ^ > /usr/include/net/if.h:52:5: note: previous definition of 'IFF_POINTOPOINT' was here > IFF_POINTOPOINT = 0x10, /* Interface is point-to-point link. */ > ^ > /usr/include/linux/if.h:76:2: error: redeclaration of enumerator 'IFF_NOTRAILERS' > IFF_NOTRAILERS = 1<<5, /* sysfs */ > ^ > /usr/include/net/if.h:54:5: note: previous definition of 'IFF_NOTRAILERS' was here > IFF_NOTRAILERS = 0x20, /* Avoid use of trailers. */ > ^ > /usr/include/linux/if.h:77:2: error: redeclaration of enumerator 'IFF_RUNNING' > IFF_RUNNING = 1<<6, /* __volatile__ */ > ^ > /usr/include/net/if.h:56:5: note: previous definition of 'IFF_RUNNING' was here > IFF_RUNNING = 0x40, /* Resources allocated. */ > ^ > /usr/include/linux/if.h:78:2: error: redeclaration of enumerator 'IFF_NOARP' > IFF_NOARP = 1<<7, /* sysfs */ > ^ > /usr/include/net/if.h:58:5: note: previous definition of 'IFF_NOARP' was here > IFF_NOARP = 0x80, /* No address resolution protocol. */ > ^ > /usr/include/linux/if.h:79:2: error: redeclaration of enumerator 'IFF_PROMISC' > IFF_PROMISC = 1<<8, /* sysfs */ > ^ > /usr/include/net/if.h:60:5: note: previous definition of 'IFF_PROMISC' was here > IFF_PROMISC = 0x100, /* Receive all packets. */ > ^ > /usr/include/linux/if.h:80:2: error: redeclaration of enumerator 'IFF_ALLMULTI' > IFF_ALLMULTI = 1<<9, /* sysfs */ > ^ > /usr/include/net/if.h:64:5: note: previous definition of 'IFF_ALLMULTI' was here > IFF_ALLMULTI = 0x200, /* Receive all multicast packets. */ > ^ > /usr/include/linux/if.h:81:2: error: redeclaration of enumerator 'IFF_MASTER' > IFF_MASTER = 1<<10, /* __volatile__ */ > ^ > /usr/include/net/if.h:67:5: note: previous definition of 'IFF_MASTER' was here > IFF_MASTER = 0x400, /* Master of a load balancer. */ > ^ > /usr/include/linux/if.h:82:2: error: redeclaration of enumerator 'IFF_SLAVE' > IFF_SLAVE = 1<<11, /* __volatile__ */ > ^ > /usr/include/net/if.h:69:5: note: previous definition of 'IFF_SLAVE' was here > IFF_SLAVE = 0x800, /* Slave of a load balancer. */ > ^ > /usr/include/linux/if.h:83:2: error: redeclaration of enumerator 'IFF_MULTICAST' > IFF_MULTICAST = 1<<12, /* sysfs */ > ^ > /usr/include/net/if.h:72:5: note: previous definition of 'IFF_MULTICAST' was here > IFF_MULTICAST = 0x1000, /* Supports multicast. */ > ^ > /usr/include/linux/if.h:84:2: error: redeclaration of enumerator 'IFF_PORTSEL' > IFF_PORTSEL = 1<<13, /* sysfs */ > ^ > /usr/include/net/if.h:75:5: note: previous definition of 'IFF_PORTSEL' was here > IFF_PORTSEL = 0x2000, /* Can set media type. */ > ^ > /usr/include/linux/if.h:85:2: error: redeclaration of enumerator 'IFF_AUTOMEDIA' > IFF_AUTOMEDIA = 1<<14, /* sysfs */ > ^ > /usr/include/net/if.h:77:5: note: previous definition of 'IFF_AUTOMEDIA' was here > IFF_AUTOMEDIA = 0x4000, /* Auto media select active. */ > ^ > /usr/include/linux/if.h:86:2: error: redeclaration of enumerator 'IFF_DYNAMIC' > IFF_DYNAMIC = 1<<15, /* sysfs */ > ^ > /usr/include/net/if.h:79:5: note: previous definition of 'IFF_DYNAMIC' was here > IFF_DYNAMIC = 0x8000 /* Dialup device with changing addresses. */ > ^ > In file included from /usr/include/linux/netfilter_ipv4/ip_tables.h:20:0, > from /usr/include/libiptc/libiptc.h:12, > from conftest.c:231: > /usr/include/linux/if.h:169:8: error: redefinition of 'struct ifmap' > struct ifmap { > ^ > In file included from /usr/include/libiptc/ipt_kernel_headers.h:13:0, > from /usr/include/libiptc/libiptc.h:6, > from conftest.c:231: > /usr/include/net/if.h:111:8: note: originally defined here > struct ifmap > ^ > In file included from /usr/include/linux/netfilter_ipv4/ip_tables.h:20:0, > from /usr/include/libiptc/libiptc.h:12, > from conftest.c:231: > /usr/include/linux/if.h:203:8: error: redefinition of 'struct ifreq' > struct ifreq { > ^ > In file included from /usr/include/libiptc/ipt_kernel_headers.h:13:0, > from /usr/include/libiptc/libiptc.h:6, > from conftest.c:231: > /usr/include/net/if.h:126:8: note: originally defined here > struct ifreq > ^ > In file included from /usr/include/linux/netfilter_ipv4/ip_tables.h:20:0, > from /usr/include/libiptc/libiptc.h:12, > from conftest.c:231: > /usr/include/linux/if.h:252:8: error: redefinition of 'struct ifconf' > struct ifconf { > ^ > In file included from /usr/include/libiptc/ipt_kernel_headers.h:13:0, > from /usr/include/libiptc/libiptc.h:6, > from conftest.c:231: > /usr/include/net/if.h:176:8: note: originally defined here > struct ifconf > ^ Introduced with https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=1ffad83dffd675cd742286ae82dca7d746cb0da8
OK, I need some help where to start: a) Is it an issue from linux-4.5? I don't think so. The changes looks like a wanted change. See also https://bugzilla.redhat.com/show_bug.cgi?id=1300256 b) Is it a problem with net-firewall/iptables which is owning "/usr/include/libiptc/ipt_kernel_headers.h" and "/usr/include/libiptc/libiptc.h"? Does iptables need an adjustment due to the changed linux headers? c) Is it a problem with sys-libs/glibc (I am using 2.22-r2) which owns "/usr/include/net/if.h"? See https://sourceware.org/ml/libc-help/2016-02/msg00004.html d) Is it a problem within app-admin/collectd? e) Something else? CC'ing toolchain@gentoo.org (maintaining sys-libs/glibc and sys-kernel/linux-headers) and base-system@gentoo.org (maintaining net-firewall/iptables) to get some help. For me it looks like a sys-libs/glibc needs to pick up the kernel changes... PS: I also created an issue upstream at https://github.com/collectd/collectd/issues/1623
For upstream, the problem is in net-firewall/iptables, see https://bugzilla.redhat.com/show_bug.cgi?id=1239213 However I still see the problem in glibc. Also upstream run into the problem with linux-headers-4.2. However on Gentoo the latest working linux-headers version is =sys-kernel/linux-headers-4.4.
FYI: I rev-bumped the ebuild mainly to fix a build issue with recent xfsprogs-4.5.0. But I also set DEPEND="collectd_plugins_iptables? ( <=sys-kernel/linux-headers-4.4 )" to workaround this bug until we solve it in the right place. See https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5fb0a46e73890b4189cdeb73523e1dde0cea9429
@ Toolchain / Base-System team: Still waiting for feedback from you, see comment #3.
Looks like the problem was resolved upstream in >=linux-headers-4.6. I am no longer able to reproduce the problem with >=linux-headers-4.6 (still failing with linux-headers-4.5). I adjusted dependencies, https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=05af73379050733e8954653d02145b5c7abfe38b