Hello, I heard (on the Puppy Linux forums) that dnsmasq (http://www.thekelleys.org.uk/dnsmasq/) doesn't build with musl, so I checked. dnsmasq defines _GNU_SOURCE. 1. Needs netinet/in_systm.h Attached is one based on the version he provided. 2. Needs #define _PATH_LOG "/dev/log" This should be defined (at least for _GNU_SOURCE) when including syslog.h (glibc has it elsewhere but errors if it is directly included) Attached is a patch that will define it at the proper time (I also moved vsyslog out of the SYSLOG_NAMES guard, since glibc doesn't require that, and added _BSD_SOURCE because I was changing exactly that area anyhow) 3. After fixing the above, I get: musl-gcc -o dnsmasq cache.o rfc1035.o util.o option.o forward.o network.o dnsmasq.o dhcp.o lease.o rfc2131.o netlink.o dbus.o bpf.o helper.o tftp.o log.o conntrack.o dhcp6.o rfc3315.o dhcp-common.o outpacket.o radv.o slaac.o util.o: In function `sockaddr_isequal': util.c:(.text+0x8cd): undefined reference to `IN6_ARE_ADDR_EQUAL' network.o: In function `iface_check': network.c:(.text+0xfc9): undefined reference to `IN6_ARE_ADDR_EQUAL' dnsmasq.o: In function `main': dnsmasq.c:(.text+0x1285): undefined reference to `capget' dnsmasq.c:(.text+0x15d6): undefined reference to `capset' dnsmasq.c:(.text+0x1666): undefined reference to `capset' slaac.o: In function `slaac_ping_reply': slaac.c:(.text+0x109): undefined reference to `IN6_ARE_ADDR_EQUAL' slaac.o: In function `slaac_add_addrs': slaac.c:(.text+0x4a3): undefined reference to `IN6_ARE_ADDR_EQUAL' collect2: ld returned 1 exit status make[1]: *** [dnsmasq] Error 1 make[1]: Leaving directory `/home/ibid/misc/src/musl/dnsmasq/src' make: *** [all] Error 2 So dnsmasq needs capset & capget (which provide support for Linux capabilities). IN6_ARE_ADDR_EQUAL is a long macro from netinet/in.h in glibc. Reportedly it works if you patch them out, but that's an approach I'd avoid if at all possible because of the security implications. Isaac Dunham