jdk netbsd fixes

Greg Lewis glewis at eyesbeyond.com
Sat Feb 14 08:32:08 PST 2009


On Fri, Feb 13, 2009 at 02:51:13PM -0500, Christos Zoulas wrote:
> Please, commit! I cannot.

These and the previous two are in.  Thanks for sending them!

> - 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,

-- 
Greg Lewis                          Email   : glewis at eyesbeyond.com
Eyes Beyond                         Web     : http://www.eyesbeyond.com
Information Technology              FreeBSD : glewis at FreeBSD.org



More information about the bsd-port-dev mailing list