diff -urN dnsmasq-2.6/src/config.h dnsmasq-2.6-new/src/config.h
--- dnsmasq-2.6/src/config.h	2004-04-03 14:03:39.000000000 -0600
+++ dnsmasq-2.6-new/src/config.h	2004-04-03 19:56:01.000000000 -0600
@@ -74,6 +74,11 @@
 /* We assume that systems which don't have IPv6
    headers don't have ntop and pton either */
 
+#if defined(__UCLIBC__) && !defined(__UCLIBC_HAS_IPV6__)
+#  undef NO_IPV6
+#  define NO_IPV6
+#endif
+
 #if defined(INET6_ADDRSTRLEN) && !defined(NO_IPV6)
 #  define HAVE_IPV6
 #  define ADDRSTRLEN INET6_ADDRSTRLEN
@@ -191,7 +196,7 @@
 /* platform dependent options. */
 
 /* Must preceed __linux__ since uClinux defines __linux__ too. */
-#if defined(__uClinux__) || defined(__UCLIBC__)
+#if defined(__uClinux__)
 #undef HAVE_LINUX_IPV6_PROC
 #define HAVE_GETOPT_LONG
 #undef HAVE_ARC4RANDOM
@@ -205,6 +210,24 @@
 #  define NO_FORK
 #endif
 
+#elif defined(__linux__) && defined(__UCLIBC__)
+#  define HAVE_LINUX_IPV6_PROC
+#  if defined(__UCLIBC_HAS_GNU_GETOPT__) || \
+   ((__UCLIBC_MAJOR__==0) && (__UCLIBC_MINOR__==9) && (__UCLIBC_SUBLEVEL__<21))
+#    define HAVE_GETOPT_LONG
+#  else
+#    undef HAVE_GETOPT_LONG
+#  endif
+#undef HAVE_ARC4RANDOM
+#define HAVE_RANDOM
+#define HAVE_DEV_URANDOM
+#define HAVE_DEV_RANDOM
+#undef HAVE_SOCKADDR_SA_LEN
+#undef HAVE_PSELECT
+#if !defined(__ARCH_HAS_MMU__)
+#  define NO_FORK
+#endif
+
 /* libc5 - must precede __linux__ too */
 /* Note to build a libc5 binary on a modern Debian system:
    install the packages altgcc libc5 and libc5-altdev 
