[root@demo dhcp-4.1.0]# make
Making all in includes
make[1]: Entering directory `/scratch/dhcp-4.1.0/includes'
make all-am
make[2]: Entering directory `/scratch/dhcp-4.1.0/includes'
make[2]: Nothing to be done for `all-am'.
make[2]: Leaving directory `/scratch/dhcp-4.1.0/includes'
make[1]: Leaving directory `/scratch/dhcp-4.1.0/includes'
Making all in tests
make[1]: Entering directory `/scratch/dhcp-4.1.0/tests'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/scratch/dhcp-4.1.0/tests'
Making all in common
make[1]: Entering directory `/scratch/dhcp-4.1.0/common'
Making all in tests
make[2]: Entering directory `/scratch/dhcp-4.1.0/common/tests'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/scratch/dhcp-4.1.0/common/tests'
make[2]: Entering directory `/scratch/dhcp-4.1.0/common'
if gcc -DHAVE_CONFIG_H -I. -I. -I../includes -I.. -DLOCALSTATEDIR='"/var"' -static -MT alloc.o -MD -MP -MF ".deps/alloc.Tpo" -c -o alloc.o alloc.c; \
      then mv -f ".deps/alloc.Tpo" ".deps/alloc.Po"; else rm -f ".deps/alloc.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I../includes -I.. -DLOCALSTATEDIR='"/var"' -static -MT bpf.o -MD -MP -MF ".deps/bpf.Tpo" -c -o bpf.o bpf.c; \
      then mv -f ".deps/bpf.Tpo" ".deps/bpf.Po"; else rm -f ".deps/bpf.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I../includes -I.. -DLOCALSTATEDIR='"/var"' -static -MT comapi.o -MD -MP -MF ".deps/comapi.Tpo" -c -o comapi.o comapi.c; \
      then mv -f ".deps/comapi.Tpo" ".deps/comapi.Po"; else rm -f ".deps/comapi.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I../includes -I.. -DLOCALSTATEDIR='"/var"' -static -MT conflex.o -MD -MP -MF ".deps/conflex.Tpo" -c -o conflex.o conflex.c; \
      then mv -f ".deps/conflex.Tpo" ".deps/conflex.Po"; else rm -f ".deps/conflex.Tpo"; exit 1; fi\\ if gcc -DHAVE_CONFIG_H -I. -I. -I../includes -I.. -DLOCALSTATEDIR='"/var"' -static -MT ctrace.o -MD -MP -MF ".deps/ctrace.Tpo" -c -o ctrace.o ctrace.c; \
      then mv -f ".deps/ctrace.Tpo" ".deps/ctrace.Po"; else rm -f ".deps/ctrace.Tpo"; exit 1; fi\\ if gcc -DHAVE_CONFIG_H -I. -I. -I../includes -I.. -DLOCALSTATEDIR='"/var"' -static -MT discover.o -MD -MP -MF ".deps/discover.Tpo" -c -o discover.o discover.c; \
      then mv -f ".deps/discover.Tpo" ".deps/discover.Po"; else rm -f ".deps/discover.Tpo"; exit 1; fi\\ if gcc -DHAVE_CONFIG_H -I. -I. -I../includes -I.. -DLOCALSTATEDIR='"/var"' -static -MT dispatch.o -MD -MP -MF ".deps/dispatch.Tpo" -c -o dispatch.o dispatch.c; \
      then mv -f ".deps/dispatch.Tpo" ".deps/dispatch.Po"; else rm -f ".deps/dispatch.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I../includes -I.. -DLOCALSTATEDIR='"/var"' -static -MT dlpi.o -MD -MP -MF ".deps/dlpi.Tpo" -c -o dlpi.o dlpi.c; \
      then mv -f ".deps/dlpi.Tpo" ".deps/dlpi.Po"; else rm -f ".deps/dlpi.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I../includes -I.. -DLOCALSTATEDIR='"/var"' -static -MT dns.o -MD -MP -MF ".deps/dns.Tpo" -c -o dns.o dns.c; \
      then mv -f ".deps/dns.Tpo" ".deps/dns.Po"; else rm -f ".deps/dns.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I../includes -I.. -DLOCALSTATEDIR='"/var"' -static -MT ethernet.o -MD -MP -MF ".deps/ethernet.Tpo" -c -o ethernet.o ethernet.c; \
      then mv -f ".deps/ethernet.Tpo" ".deps/ethernet.Po"; else rm -f ".deps/ethernet.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I../includes -I.. -DLOCALSTATEDIR='"/var"' -static -MT execute.o -MD -MP -MF ".deps/execute.Tpo" -c -o execute.o execute.c; \
      then mv -f ".deps/execute.Tpo" ".deps/execute.Po"; else rm -f ".deps/execute.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I../includes -I.. -DLOCALSTATEDIR='"/var"' -static -MT fddi.o -MD -MP -MF ".deps/fddi.Tpo" -c -o fddi.o fddi.c; \
      then mv -f ".deps/fddi.Tpo" ".deps/fddi.Po"; else rm -f ".deps/fddi.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I../includes -I.. -DLOCALSTATEDIR='"/var"' -static -MT icmp.o -MD -MP -MF ".deps/icmp.Tpo" -c -o icmp.o icmp.c; \
      then mv -f ".deps/icmp.Tpo" ".deps/icmp.Po"; else rm -f ".deps/icmp.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I../includes -I.. -DLOCALSTATEDIR='"/var"' -static -MT inet.o -MD -MP -MF ".deps/inet.Tpo" -c -o inet.o inet.c; \
      then mv -f ".deps/inet.Tpo" ".deps/inet.Po"; else rm -f ".deps/inet.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I../includes -I.. -DLOCALSTATEDIR='"/var"' -static -MT lpf.o -MD -MP -MF ".deps/lpf.Tpo" -c -o lpf.o lpf.c; \
      then mv -f ".deps/lpf.Tpo" ".deps/lpf.Po"; else rm -f ".deps/lpf.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I../includes -I.. -DLOCALSTATEDIR='"/var"' -static -MT memory.o -MD -MP -MF ".deps/memory.Tpo" -c -o memory.o memory.c; \
      then mv -f ".deps/memory.Tpo" ".deps/memory.Po"; else rm -f ".deps/memory.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I../includes -I.. -DLOCALSTATEDIR='"/var"' -static -MT nit.o -MD -MP -MF ".deps/nit.Tpo" -c -o nit.o nit.c; \
      then mv -f ".deps/nit.Tpo" ".deps/nit.Po"; else rm -f ".deps/nit.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I../includes -I.. -DLOCALSTATEDIR='"/var"' -static -MT options.o -MD -MP -MF ".deps/options.Tpo" -c -o options.o options.c; \
      then mv -f ".deps/options.Tpo" ".deps/options.Po"; else rm -f ".deps/options.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I../includes -I.. -DLOCALSTATEDIR='"/var"' -static -MT packet.o -MD -MP -MF ".deps/packet.Tpo" -c -o packet.o packet.c; \
      then mv -f ".deps/packet.Tpo" ".deps/packet.Po"; else rm -f ".deps/packet.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I../includes -I.. -DLOCALSTATEDIR='"/var"' -static -MT parse.o -MD -MP -MF ".deps/parse.Tpo" -c -o parse.o parse.c; \
      then mv -f ".deps/parse.Tpo" ".deps/parse.Po"; else rm -f ".deps/parse.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I../includes -I.. -DLOCALSTATEDIR='"/var"' -static -MT print.o -MD -MP -MF ".deps/print.Tpo" -c -o print.o print.c; \
      then mv -f ".deps/print.Tpo" ".deps/print.Po"; else rm -f ".deps/print.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I../includes -I.. -DLOCALSTATEDIR='"/var"' -static -MT raw.o -MD -MP -MF ".deps/raw.Tpo" -c -o raw.o raw.c; \
      then mv -f ".deps/raw.Tpo" ".deps/raw.Po"; else rm -f ".deps/raw.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I../includes -I.. -DLOCALSTATEDIR='"/var"' -static -MT resolv.o -MD -MP -MF ".deps/resolv.Tpo" -c -o resolv.o resolv.c; \
      then mv -f ".deps/resolv.Tpo" ".deps/resolv.Po"; else rm -f ".deps/resolv.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I../includes -I.. -DLOCALSTATEDIR='"/var"' -static -MT socket.o -MD -MP -MF ".deps/socket.Tpo" -c -o socket.o socket.c; \
      then mv -f ".deps/socket.Tpo" ".deps/socket.Po"; else rm -f ".deps/socket.Tpo"; exit 1; fi
socket.c: In function 'send_packet6':
socket.c:591: error: invalid application of 'sizeof' to incomplete type 'struct in6_pktinfo'
socket.c:628: error: dereferencing pointer to incomplete type
socket.c:630: error: dereferencing pointer to incomplete type
socket.c:631: error: dereferencing pointer to incomplete type
socket.c: In function 'receive_packet6':
socket.c:692: error: invalid application of 'sizeof' to incomplete type 'struct in6_pktinfo'
socket.c:744: error: dereferencing pointer to incomplete type
socket.c:745: error: dereferencing pointer to incomplete type
make[2]: *** [socket.o] Error 1
make[2]: Leaving directory `/scratch/dhcp-4.1.0/common'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/scratch/dhcp-4.1.0/common'
make: *** [all-recursive] Error 1
[root@demo dhcp-4.1.0]#


I did some google searches and found what appeared to be a pretty promising fix here.[[http://bugs.gentoo.org/229183]]\\
< snip >
------- Comment #3 From Edward Killips 2008-07-28 00:58:49 0000 [reply] -------
Adding #include <linux/ipv6.h> to common/socket.c will fix the problem
< / snip >

So I executed "vi common/socket.c
I added "#include <linux/ipv6.h>" as stated. I then exexcuted "make".
[root@demo dhcp-4.1.0]# vi common/socket.c
[root@demo dhcp-4.1.0]# make
Making all in includes
make[1]: Entering directory `/scratch/dhcp-4.1.0/includes'
make all-am
make[2]: Entering directory `/scratch/dhcp-4.1.0/includes'
make[2]: Nothing to be done for `all-am'.
make[2]: Leaving directory `/scratch/dhcp-4.1.0/includes'
make[1]: Leaving directory `/scratch/dhcp-4.1.0/includes'
Making all in tests
make[1]: Entering directory `/scratch/dhcp-4.1.0/tests'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/scratch/dhcp-4.1.0/tests'
Making all in common
make[1]: Entering directory `/scratch/dhcp-4.1.0/common'
Making all in tests
make[2]: Entering directory `/scratch/dhcp-4.1.0/common/tests'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/scratch/dhcp-4.1.0/common/tests'
make[2]: Entering directory `/scratch/dhcp-4.1.0/common'
if gcc -DHAVE_CONFIG_H -I. -I. -I../includes -I.. -DLOCALSTATEDIR='"/var"' -static -MT socket.o -MD -MP -MF ".deps/socket.Tpo" -c -o socket.o socket.c; \
      then mv -f ".deps/socket.Tpo" ".deps/socket.Po"; else rm -f ".deps/socket.Tpo"; exit 1; fi
In file included from /usr/include/linux/ipv6.h:4,
                 from socket.c:48:
/usr/include/linux/in6.h:31: error: redefinition of 'struct in6_addr'
/usr/include/linux/in6.h:54: error: redefinition of 'struct sockaddr_in6'
/usr/include/linux/in6.h:62: error: redefinition of 'struct ipv6_mreq'
socket.c: In function 'if_register_multicast':
socket.c:372: error: 'struct ipv6_mreq' has no member named 'ipv6mr_interface'
socket.c:391: error: 'struct ipv6_mreq' has no member named 'ipv6mr_interface'
make[2]: *** [socket.o] Error 1
make[2]: Leaving directory `/scratch/dhcp-4.1.0/common'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/scratch/dhcp-4.1.0/common'
As you can tell by now, this created a new problem.