--- jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c.orig	Fri Feb  1 11:16:47 2013
+++ jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c	Fri Feb  1 12:52:14 2013
@@ -1338,7 +1338,7 @@ static void setMulticastInterface(JNIEnv *env, jobject
         /*
          * value is an InetAddress.
          */
-#ifdef __solaris__
+#if defined(__solaris__) || defined(_ALLBSD_SOURCE)
         if (ipv6_available()) {
             mcast_set_if_by_addr_v6(env, this, fd, value);
         } else {
@@ -1357,7 +1357,7 @@ static void setMulticastInterface(JNIEnv *env, jobject
         /*
          * value is a NetworkInterface.
          */
-#ifdef __solaris__
+#if defined(__solaris__) || defined(_ALLBSD_SOURCE)
         if (ipv6_available()) {
             mcast_set_if_by_if_v6(env, this, fd, value);
         } else {
@@ -1434,7 +1434,7 @@ static void mcast_set_loop_v6(JNIEnv *env, jobject thi
  */
 static void setMulticastLoopbackMode(JNIEnv *env, jobject this, int fd,
                                   jint opt, jobject value) {
-#ifdef __solaris__
+#if defined(__solaris__) || defined(_ALLBSD_SOURCE)
     if (ipv6_available()) {
         mcast_set_loop_v6(env, this, fd, value);
     } else {
@@ -2002,7 +2002,7 @@ Java_java_net_PlainDatagramSocketImpl_setTimeToLive(JN
         fd = (*env)->GetIntField(env, fdObj, IO_fd_fdID);
     }
     /* setsockopt to be correct ttl */
-#ifdef __solaris__
+#if defined(__solaris__) || defined(_ALLBSD_SOURCE)
     if (ipv6_available()) {
         setHopLimit(env, fd, ttl);
     } else {
