jdk netbsd fixes

Christos Zoulas christos at zoulas.com
Fri Feb 13 11:51:13 PST 2009


Please, commit! I cannot.

Thanks,

christos

- Makefile changes for -Wl,-R (NetBSD)
- Makefile changes for iconv. (NetBSD)
- Makefile changes for tools (NetBSD)
- socklen_t fixes for everyone
- isfoo() fixes for everyone

diff -r b89125f34e15 make/common/Defs.gmk
--- a/make/common/Defs.gmk	Wed Feb 11 21:25:20 2009 -0800
+++ b/make/common/Defs.gmk	Fri Feb 13 14:43:16 2009 -0500
@@ -176,7 +176,11 @@
   ifdef ALT_X11_PATH
     X11_PATH = $(ALT_X11_PATH)
   else
-    X11_PATH = /usr/X11R6
+    ifneq ($(OS_VENDOR), NetBSD)
+      X11_PATH = /usr/X11R6
+    else
+      X11_PATH = /usr/X11R7
+    endif
   endif 
 
   ifdef ALT_PACKAGE_PATH
@@ -188,7 +192,11 @@
       ifeq ($(OS_VENDOR), Apple)
         PACKAGE_PATH = /opt/local
       else
-        PACKAGE_PATH = /usr/local
+	ifeq ($(OS_NAME), netbsd)
+	  PACKAGE_PATH = /usr/pkg
+	else
+          PACKAGE_PATH = /usr/local
+	endif
       endif
     endif
   endif
diff -r b89125f34e15 make/common/shared/Defs-utils.gmk
--- a/make/common/shared/Defs-utils.gmk	Wed Feb 11 21:25:20 2009 -0800
+++ b/make/common/shared/Defs-utils.gmk	Fri Feb 13 14:43:16 2009 -0500
@@ -236,4 +236,9 @@
     CPIO       = $(UTILS_USR_BIN_PATH)cpio
     TAR        = $(UTILS_USR_BIN_PATH)tar
   endif
+  ifeq ($(OS_VENDOR), NetBSD)
+    NAWK       = $(UTILS_USR_BIN_PATH)awk
+    ZIPEXE     = $(UTILS_DEVTOOL_PATH)zip
+    UNZIP      = $(UTILS_DEVTOOL_PATH)unzip
+  endif
 endif
diff -r b89125f34e15 make/java/instrument/Makefile
--- a/make/java/instrument/Makefile	Wed Feb 11 21:25:20 2009 -0800
+++ b/make/java/instrument/Makefile	Fri Feb 13 14:43:16 2009 -0500
@@ -114,9 +114,12 @@
     ICONV_PATH = $(PACKAGE_PATH)
   endif
 
+  ifneq ($(OS_NAME), netbsd)
+    ICONV_PATH = $(PACKAGE_PATH)
 # Use CPPFLAGS instead of OTHER_INCLUDES to force this last
-  CPPFLAGS += -I$(ICONV_PATH)/include
-  OTHER_LDLIBS += -L$(ICONV_PATH)/lib -liconv
+    CPPFLAGS += -I$(ICONV_PATH)/include
+    OTHER_LDLIBS += -L$(ICONV_PATH)/lib -liconv
+  endif
 else
   LDFLAGS += -L $(LIBDIR)/$(LIBARCH)/jli
   OTHER_LDLIBS += -ljli
diff -r b89125f34e15 make/java/npt/Makefile
--- a/make/java/npt/Makefile	Wed Feb 11 21:25:20 2009 -0800
+++ b/make/java/npt/Makefile	Fri Feb 13 14:43:16 2009 -0500
@@ -72,8 +72,10 @@
   else
     ICONV_PATH = $(PACKAGE_PATH)
   endif
-  CPPFLAGS += -I$(ICONV_PATH)/include
-  OTHER_LDLIBS += -L$(ICONV_PATH)/lib -liconv
+  ifneq ($(OS_NAME), netbsd)
+    CPPFLAGS += -I$(ICONV_PATH)/include
+    OTHER_LDLIBS += -L$(ICONV_PATH)/lib -liconv
+  endif
 endif
 
 #
diff -r b89125f34e15 make/sun/awt/mawt.gmk
--- a/make/sun/awt/mawt.gmk	Wed Feb 11 21:25:20 2009 -0800
+++ b/make/sun/awt/mawt.gmk	Fri Feb 13 14:43:16 2009 -0500
@@ -200,6 +200,9 @@
 ifndef HEADLESS
 CPPFLAGS += -I$(OPENWIN_HOME)/include 
 LDFLAGS  += -L$(OPENWIN_LIB)
+ifeq ($(OS_NAME), netbsd)
+LDFLAGS  += -Wl,-R$(OPENWIN_LIB)
+endif
 
 endif # !HEADLESS
 
diff -r b89125f34e15 make/sun/splashscreen/Makefile
--- a/make/sun/splashscreen/Makefile	Wed Feb 11 21:25:20 2009 -0800
+++ b/make/sun/splashscreen/Makefile	Fri Feb 13 14:43:16 2009 -0500
@@ -75,12 +75,17 @@
     ifeq ($(OS_VENDOR), Apple)
       ICONV_PATH = /usr
     else
-      ICONV_PATH = $(PACKAGE_PATH)
+      ifneq ($(OS_NAME), netbsd)
+        ICONV_PATH = $(PACKAGE_PATH)
+        CPPFLAGS += -I$(ICONV_PATH)/include
+        OTHER_LDLIBS += -L$(ICONV_PATH)/lib -liconv
+      else
+        OTHER_LDLIBS += -Wl,-R$(OPENWIN_LIB)
+      endif
     endif
     CPPFLAGS += -I$(OPENWIN_HOME)/include \
-                -I$(OPENWIN_HOME)/include/X11/extensions \
-                -I$(ICONV_PATH)/include
-    OTHER_LDLIBS += -L$(OPENWIN_LIB) -lX11 -lXext -L$(ICONV_PATH)/lib -liconv $(LIBM) -pthread
+                -I$(OPENWIN_HOME)/include/X11/extensions
+    OTHER_LDLIBS += -L$(OPENWIN_LIB) -lX11 -lXext $(LIBM) -pthread
   else
     CPPFLAGS += -I$(OPENWIN_HOME)/include -I$(OPENWIN_HOME)/include/X11/extensions
     OTHER_LDLIBS += -L$(OPENWIN_LIB) -lX11 -lXext $(LIBM) -lpthread
diff -r b89125f34e15 make/sun/xawt/Makefile
--- a/make/sun/xawt/Makefile	Wed Feb 11 21:25:20 2009 -0800
+++ b/make/sun/xawt/Makefile	Fri Feb 13 14:43:16 2009 -0500
@@ -47,6 +47,9 @@
 AUTO_JAVA_PRUNE = WrapperGenerator.java
 
 LDFLAGS += -L$(OPENWIN_LIB)
+ifeq ($(OS_NAME), netbsd)
+LDFLAGS += -Wl,-R$(OPENWIN_LIB)
+endif
 
 ifeq ($(PLATFORM), linux)
 LDFLAGS += -lpthread
diff -r b89125f34e15 make/tools/freetypecheck/Makefile
--- a/make/tools/freetypecheck/Makefile	Wed Feb 11 21:25:20 2009 -0800
+++ b/make/tools/freetypecheck/Makefile	Fri Feb 13 14:43:16 2009 -0500
@@ -46,6 +46,9 @@
     FT_LD_OPTIONS += -R $(FREETYPE_LIB_PATH) -lfreetype
   else 
     ifeq ($(PLATFORM), bsd)
+      ifeq ($(OS_NAME), netbsd)
+        FT_LD_OPTIONS += -Wl,-R$(FREETYPE_LIB_PATH)
+      endif
       FT_LD_OPTIONS += -lfreetype -lz
     else # linux
       FT_LD_OPTIONS += -Wl,-rpath -Wl,$(FREETYPE_LIB_PATH) -lfreetype
diff -r b89125f34e15 src/solaris/native/java/lang/UNIXProcess_md.c
--- a/src/solaris/native/java/lang/UNIXProcess_md.c	Wed Feb 11 21:25:20 2009 -0800
+++ b/src/solaris/native/java/lang/UNIXProcess_md.c	Fri Feb 13 14:43:16 2009 -0500
@@ -377,7 +377,7 @@
      */
     while ((dirp = readdir(dp)) != NULL) {
         int fd;
-        if (isdigit(dirp->d_name[0]) &&
+        if (isdigit((unsigned char)dirp->d_name[0]) &&
             (fd = strtol(dirp->d_name, NULL, 10)) >= from_fd + 2)
             close(fd);
     }
diff -r b89125f34e15 src/solaris/native/java/net/Inet4AddressImpl.c
--- a/src/solaris/native/java/net/Inet4AddressImpl.c	Wed Feb 11 21:25:20 2009 -0800
+++ b/src/solaris/native/java/net/Inet4AddressImpl.c	Fri Feb 13 14:43:16 2009 -0500
@@ -155,7 +155,7 @@
      * Workaround for Solaris bug 4160367 - if a hostname contains a
      * white space then 0.0.0.0 is returned
      */
-    if (isspace(hostname[0])) {
+    if (isspace((unsigned char)hostname[0])) {
 	JNU_ThrowByName(env, JNU_JAVANETPKG "UnknownHostException",
 			(char *)hostname);
 	JNU_ReleaseStringPlatformChars(env, host, hostname);
@@ -172,7 +172,7 @@
 	return NULL;
     } else {
 	int i = 0;
-	struct addrinfo *itr, *last, *iterator = res;
+	struct addrinfo *itr, *last = NULL, *iterator = res;
 	while (iterator != NULL) {
 	    int skip = 0;
 	    itr = resNew;
@@ -603,7 +603,8 @@
 ping4(JNIEnv *env, jint fd, struct sockaddr_in* him, jint timeout,
       struct sockaddr_in* netif, jint ttl) {
     jint size;
-    jint n, len, hlen1, icmplen;
+    jint n, hlen1, icmplen;
+    socklen_t len;
     char sendbuf[1500];
     char recvbuf[1500];
     struct icmp *icmp;
diff -r b89125f34e15 src/solaris/native/java/net/NetworkInterface.c
--- a/src/solaris/native/java/net/NetworkInterface.c	Wed Feb 11 21:25:20 2009 -0800
+++ b/src/solaris/native/java/net/NetworkInterface.c	Fri Feb 13 14:43:16 2009 -0500
@@ -55,6 +55,8 @@
 #include <net/if_var.h>
 #elif defined(__OpenBSD__)
 #include <netinet/if_ether.h>
+#elif defined(__NetBSD__)
+#include <net/if_ether.h>
 #endif
 #include <net/if_dl.h>
 #include <netinet/in_var.h>
diff -r b89125f34e15 src/solaris/native/java/net/PlainDatagramSocketImpl.c
--- a/src/solaris/native/java/net/PlainDatagramSocketImpl.c	Wed Feb 11 21:25:20 2009 -0800
+++ b/src/solaris/native/java/net/PlainDatagramSocketImpl.c	Fri Feb 13 14:43:16 2009 -0500
@@ -1852,7 +1852,7 @@
     if (opt == java_net_SocketOptions_SO_BINDADDR) {
         /* find out local IP address */
         SOCKADDR him;
-        int len = 0;
+        socklen_t len;
         int port;
         jobject iaObj;
 
@@ -2233,7 +2233,7 @@
             {
                 struct in_addr in;
                 struct in_addr *inP = &in;
-                int len = sizeof(struct in_addr);
+                socklen_t len = sizeof(struct in_addr);
 
 #ifdef __linux__
                 struct ip_mreqn mreqn;
diff -r b89125f34e15 src/solaris/native/java/net/PlainSocketImpl.c
--- a/src/solaris/native/java/net/PlainSocketImpl.c	Wed Feb 11 21:25:20 2009 -0800
+++ b/src/solaris/native/java/net/PlainSocketImpl.c	Fri Feb 13 14:43:16 2009 -0500
@@ -987,7 +987,7 @@
      */
     if (cmd == java_net_SocketOptions_SO_BINDADDR) {
         SOCKADDR him;
-        socklen_t len = 0;
+        socklen_t len;
         int port;
         jobject iaObj;
         jclass iaCntrClass;
diff -r b89125f34e15 src/solaris/native/java/net/bsd_close.c
--- a/src/solaris/native/java/net/bsd_close.c	Wed Feb 11 21:25:20 2009 -0800
+++ b/src/solaris/native/java/net/bsd_close.c	Fri Feb 13 14:43:16 2009 -0500
@@ -280,7 +280,11 @@
 }
 
 int NET_Accept(int s, struct sockaddr *addr, int *addrlen) {
-    BLOCKING_IO_RETURN_INT( s, accept(s, addr, addrlen) );
+    socklen_t len = *addrlen;
+    int error = accept(s, addr, &len);
+    if (error != -1)
+	*addrlen = (int)len;
+    BLOCKING_IO_RETURN_INT( s, error );
 }
 
 int NET_Connect(int s, struct sockaddr *addr, int addrlen) {
diff -r b89125f34e15 src/solaris/native/java/net/net_util_md.c
--- a/src/solaris/native/java/net/net_util_md.c	Wed Feb 11 21:25:20 2009 -0800
+++ b/src/solaris/native/java/net/net_util_md.c	Fri Feb 13 14:43:16 2009 -0500
@@ -1107,15 +1107,11 @@
     }
 #endif
 
-#ifdef __solaris__
-    rv = getsockopt(fd, level, opt, result, len);
-#else
     {
         socklen_t socklen = *len;
         rv = getsockopt(fd, level, opt, result, &socklen);
         *len = socklen;
     }
-#endif
 
     if (rv < 0) {
         return rv;
@@ -1225,7 +1221,8 @@
 #ifdef __solaris__
     if (level == SOL_SOCKET) {
         if (opt == SO_SNDBUF || opt == SO_RCVBUF) {
-            int sotype, arglen;
+            int sotype;
+            socklen_t arglen;
             int *bufsize, maxbuf;
 
             if (!init_max_buf) {
@@ -1313,7 +1310,8 @@
      * SO_REUSEPORT as well for that combination.
      */
     if (level == SOL_SOCKET && opt == SO_REUSEADDR) {
-        int sotype, arglen;
+        int sotype;
+        socklen_t arglen;
 
         arglen = sizeof(sotype);
         if (getsockopt(fd, SOL_SOCKET, SO_TYPE, (void *)&sotype, &arglen) < 0) {
@@ -1391,7 +1389,8 @@
      * corresponding IPv4 port is in use.
      */
     if (ipv6_available()) {
-        int arg, len;
+        int arg;
+        socklen_t len;
 
         len = sizeof(arg);
         if (getsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (char *)&arg,



More information about the bsd-port-dev mailing list