Date: Sat, 19 Apr 2008 07:18:00 GMT From: Peter Jeremy <peterjeremy@optushome.com.au> To: freebsd-gnats-submit@FreeBSD.org Subject: ports/122904: [patch] jdk15/javaws fails on amd64 Message-ID: <200804190718.m3J7I09l049644@freefall.freebsd.org> Resent-Message-ID: <200804190720.m3J7K2mD049820@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 122904 >Category: ports >Synopsis: [patch] jdk15/javaws fails on amd64 >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sat Apr 19 07:20:02 UTC 2008 >Closed-Date: >Last-Modified: >Originator: Peter Jeremy >Release: 7.0-STABLE >Organization: n/a >Environment: FreeBSD turion.vk2pj.dyndns.org 7.0-STABLE FreeBSD 7.0-STABLE #21: Fri Mar 21 08:26:22 EST 2008 root@turion.vk2pj.dyndns.org:/usr/obj/usr/src/sys/turion amd64 >Description: javaws does not work on amd64 - it searches for deploy.jar in a nonsense pathname due to pointer truncation. See the thread starting http://lists.freebsd.org/pipermail/freebsd-java/2008-March/007267.html The attached patches partially correct the problem (I can run a reasonably complex commercial Java GUI application, though part of the local cache pathname is junk). Trivial applications (such as the typeahead example below) don't appear to have any problems. >How-To-Repeat: Run a JNLP file. eg: fetch http://www.devdaily.com/java/misc/TypeAhead/typeahead.jnlp sed -i '' '/codebase/s:jnlp:misc/TypeAhead:' typeahead.jnlp javaws typeahead.jnlp >Fix: Patch attached with submission follows: cat <<'End-Of-Patch' > patch-deploy:src:common:unix:native:MSystemProxyHandler.c --- ../../deploy/src/common/unix/native/MSystemProxyHandler.c~ 2007-10-05 17:28:59.000000000 +1000 +++ ../../deploy/src/common/unix/native/MSystemProxyHandler.c 2008-03-21 15:22:10.000000000 +1100 @@ -5,12 +5,7 @@ * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ -#ifdef __linux__ -#define _GNU_SOURCE #include <string.h> -#else -#include <strings.h> -#endif #include "jni.h" #include "com_sun_deploy_net_proxy_MSystemProxyHandler.h" End-Of-Patch cat <<'End-Of-Patch' > patch-deploy:src:javaws:share:native:configurationFile.c --- ../../deploy/src/javaws/share/native/configurationFile.c~ 2007-10-05 17:29:06.000000000 +1000 +++ ../../deploy/src/javaws/share/native/configurationFile.c 2008-03-21 15:22:10.000000000 +1100 @@ -72,7 +72,6 @@ char *argv[10]; int buflen = 1024; char *buf = NULL, *start, *end; - static char path[MAXPATHLEN]; buf = (char *)malloc(buflen); argv[0] = jre->path; @@ -225,7 +224,6 @@ /* now see if any unconfirmed registered jres exist */ for (j=0; j<nIndices; j++) { int index = indexArray[j].index; - char str[256]; if (isJRERegistered(index) && (indexArray[j].confirmed == 0)) { return_value = TRUE; } End-Of-Patch cat <<'End-Of-Patch' > patch-deploy:src:javaws:share:native:configurationFile.h --- ../../deploy/src/javaws/share/native/configurationFile.h~ 2007-10-05 17:29:06.000000000 +1000 +++ ../../deploy/src/javaws/share/native/configurationFile.h 2008-03-21 15:22:10.000000000 +1100 @@ -83,4 +83,14 @@ void SetJREEnabled(int i, char *value); void SetJRERegistered(int i, char *value); + +void UpdateJREInfo (JREDescription *jre); +int laterVersion(int index1, int index2); +int getUniqueIndexArrayIndex(); +void addToIndexArray(int newIndex); +char* GetJREJavaDebugCmd(int i); +int isJREEnabled(int i); +int laterVersion(int index1, int index2); +int isCurrentVersion(char *javaCmd); + #endif End-Of-Patch cat <<'End-Of-Patch' > patch-deploy:src:javaws:share:native:jpda.h --- ../../deploy/src/javaws/share/native/jpda.h~ 2007-10-05 17:29:06.000000000 +1000 +++ ../../deploy/src/javaws/share/native/jpda.h 2008-03-21 15:22:10.000000000 +1100 @@ -114,4 +114,4 @@ PortsPool* String2PortsPool (PortsPool*, char*, const char*); int GetAvailableServerPort (PortsPool*, int); -#endif JPDA_H +#endif /* JPDA_H */ End-Of-Patch cat <<'End-Of-Patch' > patch-deploy:src:javaws:share:native:launchFile.c --- ../../deploy/src/javaws/share/native/launchFile.c~ 2007-10-05 17:29:06.000000000 +1000 +++ ../../deploy/src/javaws/share/native/launchFile.c 2008-03-21 15:22:10.000000000 +1100 @@ -11,6 +11,7 @@ #include "propertyParser.h" #include "xmlparser.h" #include <ctype.h> +#include <wctype.h> /* Local methods */ static void ParseXMLLaunchFile(char* s, JNLFile* jnlfile); End-Of-Patch cat <<'End-Of-Patch' > patch-deploy:src:javaws:share:native:propertyParser.c --- ../../deploy/src/javaws/share/native/propertyParser.c~ 2007-10-05 17:29:06.000000000 +1000 +++ ../../deploy/src/javaws/share/native/propertyParser.c 2008-03-21 15:22:10.000000000 +1100 @@ -9,6 +9,7 @@ #include "util.h" #include "propertyParser.h" #include "configurationFile.h" +#include <wctype.h> /* Local methods definitions */ static char* GetNextOption(char* s, char** option, char **value); @@ -130,7 +131,6 @@ * Parses a string buffer as a property file */ PropertyFileEntry* parsePropertyStream(char *s, PropertyFileEntry* head) { - PropertyFileEntry* entry = NULL; char* key; char* value; End-Of-Patch cat <<'End-Of-Patch' > patch-deploy:src:javaws:share:native:secure.c --- ../../deploy/src/javaws/share/native/secure.c~ 2007-10-05 17:29:06.000000000 +1000 +++ ../../deploy/src/javaws/share/native/secure.c 2008-03-21 15:22:10.000000000 +1100 @@ -4,6 +4,8 @@ * Copyright 2004 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ +#include <string.h> +#include "system.h" /* * End-Of-Patch cat <<'End-Of-Patch' > patch-deploy:src:javaws:share:native:splashFile.c --- ../../deploy/src/javaws/share/native/splashFile.c~ 2007-10-05 17:29:06.000000000 +1000 +++ ../../deploy/src/javaws/share/native/splashFile.c 2008-03-21 15:22:10.000000000 +1100 @@ -16,7 +16,6 @@ */ static char path1[MAXPATHLEN]; -static char path2[MAXPATHLEN]; void getDefaultSplashFiles(int playerMode, char **splash1, char **splash2) { @@ -31,7 +30,7 @@ } -getAppSplashFiles(JNLFile *jnlFile, char **splash1, char **splash2) { +void getAppSplashFiles(JNLFile *jnlFile, char **splash1, char **splash2) { /* Try to get application defined splash screen */ *splash1 = getSplashFile(jnlFile->canonicalHome); *splash2 = NULL; End-Of-Patch cat <<'End-Of-Patch' > patch-deploy:src:javaws:share:native:splashFile.h --- ../../deploy/src/javaws/share/native/splashFile.h~ 2007-10-05 17:29:06.000000000 +1000 +++ ../../deploy/src/javaws/share/native/splashFile.h 2008-03-21 15:22:10.000000000 +1100 @@ -15,7 +15,8 @@ char *getDefaultSplashFiles(int playerMode, char **splash1, char **splash2); -char *getAppSplashFiles(JNLFile *jnlFile, char **splash1, char **splash2); +void getAppSplashFiles(JNLFile *jnlFile, char **splash1, char **splash2); +int endsWith(char *str1, char *str2); #endif End-Of-Patch cat <<'End-Of-Patch' > patch-deploy:src:javaws:share:native:system.c --- ../../deploy/src/javaws/share/native/system.c~ 2008-03-21 12:46:17.000000000 +1100 +++ ../../deploy/src/javaws/share/native/system.c 2008-03-21 15:22:10.000000000 +1100 @@ -9,6 +9,10 @@ * for all platforms. */ #include "system.h" +#include <sys/types.h> +#include <sys/socket.h> +#include <netinet/in.h> +#include <arpa/inet.h> /* * Create a loopback socket and set it up to listen on a dynamically @@ -19,10 +23,11 @@ { SOCKET server; SOCKADDR_IN iname = {0}; - int length = sizeof(iname); + socklen_t length = sizeof(iname); sysInitSocketLibrary(); + iname.sin_len = sizeof(iname); iname.sin_family = AF_INET; iname.sin_addr.s_addr = inet_addr("127.0.0.1"); @@ -55,10 +60,10 @@ { SOCKET server; SOCKADDR_IN iname = {0}; - int length = sizeof(iname); sysInitSocketLibrary(); + iname.sin_len = sizeof(iname); iname.sin_family = AF_INET; iname.sin_port = htons((u_short)port); iname.sin_addr.s_addr = inet_addr("127.0.0.1"); @@ -90,6 +95,7 @@ sysInitSocketLibrary(); + iname.sin_len = sizeof(iname); iname.sin_family = AF_INET; iname.sin_port = htons((u_short)port); iname.sin_addr.s_addr = inet_addr("127.0.0.1"); @@ -116,10 +122,11 @@ { SOCKET sock; SOCKADDR_IN iname = {0}; - int length = sizeof(iname); + socklen_t length = sizeof(iname); sysInitSocketLibrary(); + iname.sin_len = sizeof(iname); iname.sin_family = AF_INET; iname.sin_port = htons((u_short)*port); iname.sin_addr.s_addr = inet_addr("127.0.0.1"); @@ -318,7 +325,7 @@ i += 6; } - *theString++; + theString++; } return output; @@ -330,7 +337,7 @@ if (*orig == oldChar) { *orig = newChar; } - *orig++; + orig++; } } End-Of-Patch cat <<'End-Of-Patch' > patch-deploy:src:javaws:share:native:system.h --- ../../deploy/src/javaws/share/native/system.h~ 2008-03-21 12:46:17.000000000 +1100 +++ ../../deploy/src/javaws/share/native/system.h 2008-03-21 15:22:10.000000000 +1100 @@ -87,4 +87,12 @@ void sysSetEndTime (void); void sysPrintTimeUsed (char *filename); char* sysGetDebugJavaCmd (char *javaCmd); + +char* sysGetJarLib(void); +char* sysGetJavawsResourcesLib(void); +char* sysGetSecurityLib(void); +void sysReplaceChar(char* orig, char oldChar, char newChar); +int sysFindSiPort(char *canonicalHome); +void recursive_create_directory(char *path); + #endif End-Of-Patch cat <<'End-Of-Patch' > patch-deploy:src:javaws:share:native:versionId.c --- ../../deploy/src/javaws/share/native/versionId.c~ 2007-10-05 17:29:06.000000000 +1000 +++ ../../deploy/src/javaws/share/native/versionId.c 2008-03-21 15:22:10.000000000 +1100 @@ -6,6 +6,8 @@ */ #include "versionId.h" #include "system.h" +#include <ctype.h> +#include <wctype.h> /* Parse a string to a version ID. It assumes that integers are * used in version IDs. This might go horrible wrong, but should End-Of-Patch cat <<'End-Of-Patch' > patch-deploy:src:javaws:share:native:xmlparser.c --- ../../deploy/src/javaws/share/native/xmlparser.c~ 2007-10-05 17:29:06.000000000 +1000 +++ ../../deploy/src/javaws/share/native/xmlparser.c 2008-03-21 15:22:10.000000000 +1100 @@ -13,6 +13,7 @@ #include <sys/stat.h> #include <ctype.h> +#include <wctype.h> /* Internal declarations */ static XMLNode* ParseXMLElement(void); @@ -319,8 +320,6 @@ static XMLNode* ParseXMLElement(void) { XMLNode* node = NULL; - XMLNode* subnode = NULL; - XMLNode* nextnode = NULL; XMLAttribute* attr = NULL; if (CurTokenType == TOKEN_BEGIN_TAG) { @@ -490,7 +489,7 @@ if (node->_sub == NULL) { printf("/>\n"); } else { - printf(">", node->_name); + printf(">"); PrintXMLDocument(node->_sub, indt + 1); indent(indt); printf("</%s>", node->_name); End-Of-Patch cat <<'End-Of-Patch' > patch-deploy:src:javaws:solaris:native:splash_md.c --- ../../deploy/src/javaws/solaris/native/splash_md.c~ 2007-10-05 17:29:09.000000000 +1000 +++ ../../deploy/src/javaws/solaris/native/splash_md.c 2008-03-21 15:22:10.000000000 +1100 @@ -151,7 +151,7 @@ void splash_error_exit (j_common_ptr cinfo) { - struct splash_error_mgr *err = (struct splash_error_mgr *)cinfo->err; + /* struct splash_error_mgr *err = (struct splash_error_mgr *)cinfo->err; */ (*cinfo->err->output_message)(cinfo); errorExit(getMsgString(MSG_SPLASH_NOIMAGE)); /* longjmp(err->setjmp_buffer, 1); */ @@ -444,7 +444,6 @@ while (cinfo->output_scanline < cinfo->output_height) { int i; - unsigned long packed_pixel; jpeg_read_scanlines(cinfo, buffer, 1); for(i = 0; i < rowWidth; i += 3) { @@ -622,7 +621,7 @@ if (fds[1].revents & POLLIN) { SOCKADDR_IN iname = {0}; SOCKET client; - int length = sizeof(SOCKADDR_IN); + socklen_t length = sizeof(SOCKADDR_IN); char cmd[1]; if ((client = accept(server, (SOCKADDR *)&iname, &length)) == -1) { @@ -702,9 +701,6 @@ int port; unsigned char* mainJPEGImageData; unsigned char* localeJPEGImageData; - char *localeStr; - char filename[MAXPATHLEN]; - int i; size_t localeSize, mainSize; if (splashPort <= 0) { @@ -731,7 +727,6 @@ * to the parent as a 6 character string. */ { - SOCKADDR_IN iname = {0}; SOCKET parent; char data[6]; @@ -746,7 +741,7 @@ } /* Check for NO Splash mode */ - if (mainJPEGImageData == NULL && localeJPEGImageData == NULL) return; + if (mainJPEGImageData == NULL && localeJPEGImageData == NULL) return 0; if ((display = XOpenDisplay(NULL)) == 0) { errorExit(getMsgString(MSG_SPLASH_X11_CONNECT)); @@ -773,6 +768,7 @@ splashEventLoop(display, screen, window, server); } + return 0; } End-Of-Patch cat <<'End-Of-Patch' > patch-deploy:src:javaws:solaris:native:system_md.c --- ../../deploy/src/javaws/solaris/native/system_md.c~ 2008-03-21 12:46:17.000000000 +1100 +++ ../../deploy/src/javaws/solaris/native/system_md.c 2008-03-21 15:22:10.000000000 +1100 @@ -66,8 +66,6 @@ } void sysPrintTimeUsed(char *filename) { - long start_us; - long end_us; long used_us; char buffer[1024]; char* filepath = NULL; @@ -173,7 +171,6 @@ int sysExec(int type, char *path, char *argv[]) { int pid; - char **argvp; int ret = 0; if (type == SYS_EXEC_REPLACE) { @@ -181,7 +178,7 @@ } else { if ((pid = fork()) == 0) { - int err = execv(path, argv); + execv(path, argv); /* It's neccessary to call "_exit" here, rather than exit, see * the fork(2) manual page. */ @@ -300,7 +297,6 @@ /* relative path? */ if (strrchr(program, FILE_SEPARATOR) != 0) { - char buf[MAXPATHLEN+2]; return Resolve(getcwd(cwdbuf, sizeof(cwdbuf)), program); } @@ -730,8 +726,6 @@ char *out = NULL, *out2 = NULL; iconv_t cd; size_t oleft = MAXPATHLEN*2; - int i; - size_t count = 0; size_t len2 = len*2; /* get codeset (encoding) */ End-Of-Patch cat <<'End-Of-Patch' > patch-hotspot:src:os:bsd:launcher:java.c --- ../../hotspot/src/os/bsd/launcher/java.c~ 2008-03-21 12:46:20.000000000 +1100 +++ ../../hotspot/src/os/bsd/launcher/java.c 2008-03-21 15:22:10.000000000 +1100 @@ -172,7 +172,7 @@ if (debug) { end = CounterGet(); - printf("%ld micro seconds to InitializeJVM\n", + printf("%d micro seconds to InitializeJVM\n", (jint)Counter2Micros(end-start)); } @@ -420,10 +420,10 @@ if (debug) { int i = 0; printf("JavaVM args:\n "); - printf("version 0x%08lx, ", args.version); + printf("version 0x%08x, ", args.version); printf("ignoreUnrecognized is %s, ", args.ignoreUnrecognized ? "JNI_TRUE" : "JNI_FALSE"); - printf("nOptions is %ld\n", args.nOptions); + printf("nOptions is %d\n", args.nOptions); for (i = 0; i < numOptions; i++) printf(" option[%2d] = '%s'\n", i, args.options[i].optionString); @@ -524,7 +524,7 @@ if (debug) { end = CounterGet(); - printf("%ld micro seconds to load main class\n", + printf("%d micro seconds to load main class\n", (jint)Counter2Micros(end-start)); printf("----_JAVA_LAUNCHER_DEBUG----\n"); } End-Of-Patch cat <<'End-Of-Patch' > patch-j2se:src:share:back:log_messages.c --- ../../j2se/src/share/back/log_messages.c~ 2007-10-05 17:15:41.000000000 +1000 +++ ../../j2se/src/share/back/log_messages.c 2008-03-21 15:22:10.000000000 +1100 @@ -156,10 +156,10 @@ module = "jdwp"; /* FIXUP? */ messageID = ""; /* FIXUP: Unique message string ID? */ (void)snprintf(optional, sizeof(optional), - "LOC=%s;PID=%d;THR=t@%d", + "LOC=%s;PID=%d;THR=t@%ld", location_stamp, (int)processPid, - (int)tid); + (long int)tid); /* Construct message string. */ va_start(ap, format); End-Of-Patch cat <<'End-Of-Patch' > patch-j2se:src:share:classes:sun:jdbc:odbc:JdbcOdbc.c --- ../../j2se/src/share/classes/sun/jdbc/odbc/JdbcOdbc.c~ 2008-03-21 12:46:27.000000000 +1100 +++ ../../j2se/src/share/classes/sun/jdbc/odbc/JdbcOdbc.c 2008-03-21 15:22:10.000000000 +1100 @@ -4858,7 +4858,7 @@ memcpy(&dt, dataBufArr, sizeof(dt)); - if (dataBufArr) sprintf (pValue, "%04i-%02i-%02i %02i:%02i:%02i.%09li", + if (dataBufArr) sprintf (pValue, "%04i-%02i-%02i %02i:%02i:%02i.%09lu", dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second, dt.fraction); (*env)->ReleaseByteArrayElements(env, dataBuf, dataBufArr, 0); @@ -5072,7 +5072,7 @@ tm.year, tm.month, tm.day, tm.hour, tm.minute, tm.second); if (tm.fraction != 0) { - sprintf (&pValue[strlen ((LPCSTR) pValue)], ".%09li", + sprintf (&pValue[strlen ((LPCSTR) pValue)], ".%09lu", tm.fraction); } } @@ -5449,7 +5449,7 @@ UCHAR* errCode = (UCHAR*) (*env)->GetByteArrayElements(env, errorCode, 0); RETCODE rc; - UDWORD pBuf; + char * pBuf; jint param = -1; int i=0; End-Of-Patch cat <<'End-Of-Patch' > patch-j2se:src:share:native:com:sun:java:util:jar:pack:unpack.cpp --- ../../j2se/src/share/native/com/sun/java/util/jar/pack/unpack.cpp.orig 2007-10-05 17:22:36.000000000 +1000 +++ ../../j2se/src/share/native/com/sun/java/util/jar/pack/unpack.cpp 2008-03-21 18:14:29.000000000 +1100 @@ -19,7 +19,7 @@ #include <limits.h> #include <time.h> - +#include <sys/stdint.h> #include "defines.h" @@ -3186,7 +3186,7 @@ case CONSTANT_Long: case CONSTANT_Double: buf = getbuf(24); - sprintf((char*)buf.ptr, "0x%016llx", value.l); + sprintf((char*)buf.ptr, "0x%016jx", (uintmax_t)value.l); break; default: if (nrefs == 0) { End-Of-Patch cat <<'End-Of-Patch' > patch-j2se:src:share:native:sun:awt:cmm:splut.c --- ../../j2se/src/share/native/sun/awt/cmm/splut.c~ 2007-10-05 17:22:54.000000000 +1000 +++ ../../j2se/src/share/native/sun/awt/cmm/splut.c 2008-03-21 15:22:10.000000000 +1100 @@ -29,7 +29,7 @@ #if defined(_M_IA64) #define INTPTR __int64 #else - #define INTPTR int + #define INTPTR long int #endif /* Prototypes */ End-Of-Patch cat <<'End-Of-Patch' > patch-j2se:src:share:native:sun:font:t2k:shapet.c --- ../../j2se/src/share/native/sun/font/t2k/shapet.c~ 2007-10-05 17:23:13.000000000 +1000 +++ ../../j2se/src/share/native/sun/font/t2k/shapet.c 2008-03-21 15:22:10.000000000 +1100 @@ -151,8 +151,10 @@ tt_int32 countLessPhantoms, F26Dot6 *x, F26Dot6 *y, F26Dot6 boldLeftOffsetDot6, F26Dot6 boldIntegerAdvanceDot6) { tt_int32 n=countLessPhantoms,i; - for (i=0;i<n;i++) - *x++= *x + boldLeftOffsetDot6; + for (i=0;i<n;i++) { + *x = *x + boldLeftOffsetDot6; + x++; + } x++; /* skip over phantom for left side bearing- should remain 0,0 */ * x = *x+boldIntegerAdvanceDot6; /* add integer advance. */ } @@ -628,8 +630,10 @@ ) { tt_int32 index; /* loop through all points. */ - for (index=0;index<count;index++) - *xValues++=F26Dot6Fix28MulRoundSlant(*xValues, *yValues++,italicMultiplier); + for (index=0;index<count;index++) { + *xValues=F26Dot6Fix28MulRoundSlant(*xValues, *yValues++,italicMultiplier); + xValues++; + } } End-Of-Patch cat <<'End-Of-Patch' > patch-j2se:src:share:native:sun:font:t2k:t2k.c --- ../../j2se/src/share/native/sun/font/t2k/t2k.c~ 2007-10-05 17:23:13.000000000 +1000 +++ ../../j2se/src/share/native/sun/font/t2k/t2k.c 2008-03-21 15:22:10.000000000 +1100 @@ -671,8 +671,10 @@ F16Dot16 t11 = xfrm->t11; if ( t01 == 0 && t10 == 0 ) { for ( i = 0; i < count; i++ ) { - *xPtr++ = util_FixMul( * xPtr, t00); - *yPtr++ = util_FixMul( * yPtr, t11); + *xPtr = util_FixMul( * xPtr, t00); + *yPtr = util_FixMul( * yPtr, t11); + xPtr++; + yPtr++; } } else { End-Of-Patch cat <<'End-Of-Patch' > patch-j2se:src:solaris:native:java:util:TimeZone_md.c --- ../../j2se/src/solaris/native/java/util/TimeZone_md.c~ 2008-03-21 12:46:32.000000000 +1100 +++ ../../j2se/src/solaris/native/java/util/TimeZone_md.c 2008-03-21 15:22:10.000000000 +1100 @@ -566,10 +566,10 @@ local_tm = localtime(&clock); if (local_tm->tm_gmtoff >= 0) { offset = (time_t) local_tm->tm_gmtoff; - sign = "+"; + sign = '+'; } else { offset = (time_t) -local_tm->tm_gmtoff; - sign = "-"; + sign = '-'; } #else if (timezone == 0) { End-Of-Patch cat <<'End-Of-Patch' > patch-j2se:src:solaris:native:sun:net:spi:DefaultProxySelector.c --- ../../j2se/src/solaris/native/sun/net/spi/DefaultProxySelector.c~ 2007-10-05 17:24:30.000000000 +1000 +++ ../../j2se/src/solaris/native/sun/net/spi/DefaultProxySelector.c 2008-03-21 15:22:10.000000000 +1100 @@ -12,11 +12,7 @@ #include "sun_net_spi_DefaultProxySelector.h" #include <dlfcn.h> #include <stdio.h> -#ifdef __linux__ #include <string.h> -#else -#include <strings.h> -#endif /** * These functions are used by the sun.net.spi.DefaultProxySelector class End-Of-Patch >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200804190718.m3J7I09l049644>