Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 06 Jun 2006 15:20:04 +0900
From:      Hajimu UMEMOTO <ume@FreeBSD.org>
To:        Kris Kennaway <kris@obsecurity.org>, glewis@FreeBSD.org
Cc:        java@FreeBSD.org, ume@FreeBSD.org
Subject:   Re: [ports-i386@pointyhat.freebsd.org: jdk-1.3.1p9_6 failed on i386 7]
Message-ID:  <ygelksa4xgr.wl%ume@mahoroba.org>
In-Reply-To: <20060603134920.GE99129@xor.obsecurity.org>
References:  <20060603134920.GE99129@xor.obsecurity.org>

next in thread | previous in thread | raw e-mail | index | archive | help
--Multipart_Tue_Jun__6_15:20:04_2006-1
Content-Type: text/plain; charset=US-ASCII

Hi,

>>>>> On Sat, 3 Jun 2006 09:49:20 -0400
>>>>> Kris Kennaway <kris@obsecurity.org> said:

kris> cc -MM  -Di386 -DARCH='"i386"' -DSOLARIS2 -DRELEASE='"1.3.1-p9"' -DFULL_VERSION='"1.3.1-p9-root-060603-09:54"' -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -D_REENTRANT -DLOGGING -I../../../src/bsd/include -I. -I../../../build/bsd-i386/tmp/sun/java.net/net/CClassHeaders -I../../../src/solaris/javavm/export -I../../../src/share/javavm/export -I../../../src/share/native/common -I../../../src/solaris/native/common -I../../../src/share/native/java/net -I../../../src/solaris/native/java/net   ../../../src/share/native/java/net/InetAddress.c 2> /dev/null | \
kris>     /usr/bin/sed -e 's!InetAddress\.o!../../../build/bsd-i386/tmp/sun/java.net/net/obj/&!g' > ../../../build/bsd-i386/tmp/sun/java.net/net/obj/InetAddress.d
kris> cc  -O2 -fno-strict-aliasing -pipe  -W -Wall  -Wno-unused -Wno-parentheses    -Di386 -DARCH='"i386"' -DSOLARIS2 -DRELEASE='"1.3.1-p9"' -DFULL_VERSION='"1.3.1-p9-root-060603-09:54"' -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -D_REENTRANT -DLOGGING -I../../../src/bsd/include -I. -I../../../build/bsd-i386/tmp/sun/java.net/net/CClassHeaders -I../../../src/solaris/javavm/export -I../../../src/share/javavm/export -I../../../src/share/native/common -I../../../src/solaris/native/common -I../../../src/share/native/java/net -I../../../src/solaris/native/java/net    -c -o ../../../build/bsd-i386/tmp/sun/java.net/net/obj/InetAddressImpl.o ../../../src/solaris/native/java/net/InetAddressImpl.c
kris> ../../../src/solaris/native/java/net/InetAddressImpl.c:408: error: conflicting types for 'gethostent_r'
kris> /usr/include/netdb.h:235: error: previous declaration of 'gethostent_r' was here
kris> ../../../src/solaris/native/java/net/InetAddressImpl.c:408: error: conflicting types for 'gethostent_r'
kris> /usr/include/netdb.h:235: error: previous declaration of 'gethostent_r' was here
kris> gmake[3]: *** [../../../build/bsd-i386/tmp/sun/java.net/net/obj/InetAddressImpl.o] Error 1
kris> gmake[3]: Leaving directory `/work/a/ports/java/jdk13/work/j2sdk1.3.1/make/java/net'
kris> gmake[2]: *** [optimized] Error 2
kris> gmake[2]: Leaving directory `/work/a/ports/java/jdk13/work/j2sdk1.3.1/make/java/net'
kris> gmake[1]: *** [all] Error 1
kris> gmake[1]: Leaving directory `/work/a/ports/java/jdk13/work/j2sdk1.3.1/make/java'
kris> gmake: *** [all] Error 1
kris> *** Error code 2

kris> Stop in /a/ports/java/jdk13.

Perhaps, the attached patch should solve this problem.  However, I
couldn't build jdk13 port on my 7-CURRENT box because of other error.
So, I cannot test it actually.

Sincerely,

--Multipart_Tue_Jun__6_15:20:04_2006-1
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="patch-InetAddressImpl.c"
Content-Transfer-Encoding: 7bit

Index: ../src/solaris/native/java/net/InetAddressImpl.c
diff -u -p ../src/solaris/native/java/net/InetAddressImpl.c.orig ../src/solaris/native/java/net/InetAddressImpl.c
--- ../src/solaris/native/java/net/InetAddressImpl.c.orig	Tue Jun  6 14:38:22 2006
+++ ../src/solaris/native/java/net/InetAddressImpl.c	Tue Jun  6 15:13:29 2006
@@ -26,9 +26,13 @@
 #include "java_net_InetAddressImpl.h"
 
 #if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+#include <sys/param.h>
+#endif
+
+#if (defined(__FreeBSD__) && __FreeBSD_version < 700016) || \
+    defined(__NetBSD__) || defined(__OpenBSD__)
 /* reentrant BIND includes --billh */
 
-#include <sys/param.h>
 #include <port_before.h>
 #include <port_after.h>
 
@@ -100,7 +104,7 @@ Java_java_net_InetAddressImpl_getLocalHo
 	char buf2[HENT_BUF_SIZE];
 	int h_error=0;
 
-#ifdef __GLIBC__
+#if defined(__GLIBC__) || (defined(__FreeBSD__) && __FreeBSD_version >= 700016)
 	gethostbyname_r(hostname, &res, buf, sizeof(buf), &hp, &h_error);
 #elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
 	hp = __j_gethostbyname_r(hostname, &res, buf, sizeof(buf), &h_error);
@@ -108,7 +112,7 @@ Java_java_net_InetAddressImpl_getLocalHo
 	hp = gethostbyname_r(hostname, &res, buf, sizeof(buf), &h_error);
 #endif
 	if (hp) {
-#ifdef __GLIBC__
+#if defined(__GLIBC__) || (defined(__FreeBSD__) && __FreeBSD_version >= 700016)
 	    gethostbyaddr_r(hp->h_addr, hp->h_length, AF_INET,
 			    &res2, buf2, sizeof(buf2), &hp, &h_error);
 #elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
@@ -195,7 +199,7 @@ Java_java_net_InetAddressImpl_lookupAllH
     hostname = JNU_GetStringPlatformChars(env, host, JNI_FALSE);
 
     /* Try once, with our static buffer. */
-#ifdef __GLIBC__
+#if defined(__GLIBC__) || (defined(__FreeBSD__) && __FreeBSD_version >= 700016)
     gethostbyname_r(hostname, &res, buf, sizeof(buf), &hp, &h_error);
 #elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
     hp = __j_gethostbyname_r(hostname, &res, buf, sizeof(buf), &h_error);
@@ -210,7 +214,7 @@ Java_java_net_InetAddressImpl_lookupAllH
      */
     if (hp == NULL && errno == ERANGE) {
 	if ((tmp = (char*)malloc(BIG_HENT_BUF_SIZE))) {
-#ifdef __GLIBC__
+#if defined(__GLIBC__) || (defined(__FreeBSD__) && __FreeBSD_version >= 700016)
 	    gethostbyname_r(hostname, &res, tmp, BIG_HENT_BUF_SIZE,
 			    &hp, &h_error);
 #elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
@@ -293,7 +297,7 @@ Java_java_net_InetAddressImpl_getHostByA
      * 
      */
     addr = htonl(addr);
-#ifdef __GLIBC__
+#if defined(__GLIBC__) || (defined(__FreeBSD__) && __FreeBSD_version >= 700016)
     gethostbyaddr_r((char *)&addr, sizeof(addr), AF_INET, &hent,
 		    buf, sizeof(buf), &hp, &h_error);
 #elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
@@ -310,7 +314,7 @@ Java_java_net_InetAddressImpl_getHostByA
      */
     if (hp == NULL && errno == ERANGE) {
 	if ((tmp = (char*)malloc(BIG_HENT_BUF_SIZE))) {
-#ifdef __GLIBC__
+#if defined(__GLIBC__) || (defined(__FreeBSD__) && __FreeBSD_version >= 700016)
 	    gethostbyaddr_r((char *)&addr, sizeof(addr), AF_INET,
 			    &hent, tmp, BIG_HENT_BUF_SIZE, &hp, &h_error);
 #elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
@@ -338,7 +342,8 @@ Java_java_net_InetAddressImpl_getHostByA
 
 /* =============================== */
 
-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+#if (defined(__FreeBSD__) && __FreeBSD_version < 700016) || \
+    defined(__NetBSD__) || defined(__OpenBSD__)
 
 #if defined(LIBC_SCCS) && !defined(lint)
 static const char rcsid[] = "$Id: gethostent_r.c,v 8.5 2000/07/11 05:46:35 vixie Exp $";

--Multipart_Tue_Jun__6_15:20:04_2006-1
Content-Type: text/plain; charset=US-ASCII


--
Hajimu UMEMOTO @ Internet Mutual Aid Society Yokohama, Japan
ume@mahoroba.org  ume@{,jp.}FreeBSD.org
http://www.imasy.org/~ume/

--Multipart_Tue_Jun__6_15:20:04_2006-1--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?ygelksa4xgr.wl%ume>