In file included from /usr/include/linux/ipv6.h:5:0, from socket.c:50: /usr/include/linux/in6.h:30:8: error: redefinition of ‘struct in6_addr’ /usr/include/netinet/in.h:198:8: note: originally defined here /usr/include/linux/in6.h:46:8: error: redefinition of ‘struct sockaddr_in6’ /usr/include/netinet/in.h:239:8: note: originally defined here /usr/include/linux/in6.h:54:8: error: redefinition of ‘struct ipv6_mreq’ /usr/include/netinet/in.h:275:8: note: originally defined here socket.c: In function ‘if_register_multicast’: socket.c:376:6: error: ‘struct ipv6_mreq’ has no member named ‘ipv6mr_interface’ socket.c:395:7: error: ‘struct ipv6_mreq’ has no member named ‘ipv6mr_interface’ socket.c: At top level: socket.c:585:9: error: conflicting types for ‘send_packet6’ ../includes/dhcpd.h:2167:9: note: previous declaration of ‘send_packet6’ was here socket.c:683:1: error: conflicting types for ‘receive_packet6’ ../includes/dhcpd.h:2190:9: note: previous declaration of ‘receive_packet6’ was here make[2]: *** [socket.o] Error 1 make[2]: *** Waiting for unfinished jobs.... mv -f .deps/upf.Tpo .deps/upf.Po mv -f .deps/heap.Tpo .deps/heap.Po make[2]: Leaving directory `/var/tmp/portage/net-misc/dhcp-4.1.0/work/dhcp-4.1.0/common' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/net-misc/dhcp-4.1.0/work/dhcp-4.1.0/common' make: *** [all-recursive] Error 1 emake failed Reproducible: Always
dhcp needs to decide whether it is going through the C library's networking API or talking directly to the kernel. it cant have it both ways.
I reproduced this bug.
Certainly there's a patch from another distribution or something that can be incorporated here...
dhcp-4.2.1 doesnt have this problem