提交 01b01827 编写于 作者: M mchung

Merge

...@@ -45,3 +45,4 @@ a952aafd5181af953b0ef3010dbd2fcc28460e8a jdk7-b67 ...@@ -45,3 +45,4 @@ a952aafd5181af953b0ef3010dbd2fcc28460e8a jdk7-b67
b23d905cb5d3b382295240d28ab0bfb266b4503c jdk7-b68 b23d905cb5d3b382295240d28ab0bfb266b4503c jdk7-b68
226b20019b1f020c09ea97d137d98e011ce65d76 jdk7-b69 226b20019b1f020c09ea97d137d98e011ce65d76 jdk7-b69
893bcca951b747ddcf6986362b877f0e1dbb835b jdk7-b70 893bcca951b747ddcf6986362b877f0e1dbb835b jdk7-b70
b3f3240135f0c10b9f2481c174b81b7fcf0daa60 jdk7-b71
...@@ -201,7 +201,10 @@ endif ...@@ -201,7 +201,10 @@ endif
ifeq ($(JAVAC_WARNINGS_FATAL), true) ifeq ($(JAVAC_WARNINGS_FATAL), true)
BOOT_JAVACFLAGS += -Werror BOOT_JAVACFLAGS += -Werror
endif endif
BOOT_JAVACFLAGS += -encoding ascii
BOOT_SOURCE_LANGUAGE_VERSION = 6
BOOT_TARGET_CLASS_VERSION = 6
BOOT_JAVACFLAGS += -encoding ascii -source $(BOOT_SOURCE_LANGUAGE_VERSION) -target $(BOOT_TARGET_CLASS_VERSION)
BOOT_JAR_JFLAGS += $(JAR_JFLAGS) BOOT_JAR_JFLAGS += $(JAR_JFLAGS)
BOOT_JAVACFLAGS += $(NO_PROPRIETARY_API_WARNINGS) BOOT_JAVACFLAGS += $(NO_PROPRIETARY_API_WARNINGS)
......
...@@ -28,16 +28,21 @@ BUILDDIR = ../.. ...@@ -28,16 +28,21 @@ BUILDDIR = ../..
include $(BUILDDIR)/common/Defs.gmk include $(BUILDDIR)/common/Defs.gmk
# Default name # Default name
FT_TEST = $(BUILDTOOLBINDIR)/freetype_versioncheck$(EXE_SUFFIX) PROGRAM = freetype_versioncheck
FT_OBJ = $(BUILDTOOLBINDIR)/$(PROGRAM).$(OBJECT_SUFFIX)
FT_TEST = $(BUILDTOOLBINDIR)/$(PROGRAM)$(EXE_SUFFIX)
# Used on openjdk only # Used on openjdk only
ifeq ($(OPENJDK),true) ifeq ($(OPENJDK),true)
# Start with CFLAGS (which gets us the required -xarch setting on solaris) # Start with CFLAGS (which gets us the required -xarch setting on solaris)
ifeq ($(PLATFORM), windows) ifeq ($(PLATFORM), windows)
FT_OPTIONS = /nologo $(CC_OBJECT_OUTPUT_FLAG)$(TEMPDIR) FT_OPTIONS = /nologo /c
FREETYPE_DLL = $(FREETYPE_LIB_PATH)/freetype.dll FREETYPE_DLL = $(FREETYPE_LIB_PATH)/freetype.dll
FT_LD_OPTIONS = $(FREETYPE_LIB_PATH)/freetype.lib FT_LD_OPTIONS = $(FREETYPE_LIB_PATH)/freetype.lib
ifdef MT
FT_LD_OPTIONS += /manifest
endif
else else
FT_OPTIONS = $(CFLAGS) FT_OPTIONS = $(CFLAGS)
FT_LD_OPTIONS = -L$(FREETYPE_LIB_PATH) FT_LD_OPTIONS = -L$(FREETYPE_LIB_PATH)
...@@ -55,15 +60,22 @@ FT_LD_OPTIONS += $(LFLAGS_$(COMPILER_VERSION)) ...@@ -55,15 +60,22 @@ FT_LD_OPTIONS += $(LFLAGS_$(COMPILER_VERSION))
# Create test program # Create test program
all: $(FT_TEST) all: $(FT_TEST)
@$(FT_TEST) $(FT_TEST)
# On windows we need to copy dll to test dir to ensure it will be found # On windows we need to copy dll to test dir to ensure it will be found
# at runtime # at runtime
$(FT_TEST): freetypecheck.c $(FT_TEST): freetypecheck.c
@$(prep-target) $(prep-target)
@$(CC) $(FT_OPTIONS) $(CC_PROGRAM_OUTPUT_FLAG)$@ $< $(FT_LD_OPTIONS)
ifeq ($(PLATFORM), windows) ifeq ($(PLATFORM), windows)
@$(CP) $(FREETYPE_DLL) `dirname $@` $(CC) $(FT_OPTIONS) $(CC_OBJECT_OUTPUT_FLAG)$(FT_OBJ) $<
$(LINK) $(FT_LD_OPTIONS) /OUT:$(FT_TEST) $(FT_OBJ)
$(CP) $(FREETYPE_DLL) $(@D)/
ifdef MT
$(CP) $(MSVCRNN_DLL_PATH)/$(MSVCRNN_DLL) $(@D)/
$(MT) /manifest $(FT_TEST).manifest /outputresource:$(FT_TEST);#1
endif
else
@$(CC) $(FT_OPTIONS) $(CC_PROGRAM_OUTPUT_FLAG)$@ $< $(FT_LD_OPTIONS)
endif endif
else else
......
...@@ -32,6 +32,45 @@ ...@@ -32,6 +32,45 @@
#include "ft2build.h" #include "ft2build.h"
#include FT_FREETYPE_H #include FT_FREETYPE_H
#ifdef _MSC_VER
#if _MSC_VER > 1400
/*
* When building for Microsoft Windows, your program has a dependency
* on msvcr??.dll.
*
* When using Visual Studio 2005 or later, that must be recorded in
* the <program>.exe.manifest file.
*
* Reference:
* C:/Program Files/Microsoft SDKs/Windows/v6.1/include/crtdefs.h
*/
#include <crtassem.h>
#ifdef _M_IX86
#pragma comment(linker,"/manifestdependency:\"type='win32' " \
"name='" __LIBRARIES_ASSEMBLY_NAME_PREFIX ".CRT' " \
"version='" _CRT_ASSEMBLY_VERSION "' " \
"processorArchitecture='x86' " \
"publicKeyToken='" _VC_ASSEMBLY_PUBLICKEYTOKEN "'\"")
#endif /* _M_IX86 */
//This may not be necessary yet for the Windows 64-bit build, but it
//will be when that build environment is updated. Need to test to see
//if it is harmless:
#ifdef _M_AMD64
#pragma comment(linker,"/manifestdependency:\"type='win32' " \
"name='" __LIBRARIES_ASSEMBLY_NAME_PREFIX ".CRT' " \
"version='" _CRT_ASSEMBLY_VERSION "' " \
"processorArchitecture='amd64' " \
"publicKeyToken='" _VC_ASSEMBLY_PUBLICKEYTOKEN "'\"")
#endif /* _M_AMD64 */
#endif /* _MSC_VER > 1400 */
#endif /* _MSC_VER */
#define QUOTEMACRO(x) QUOTEME(x) #define QUOTEMACRO(x) QUOTEME(x)
#define QUOTEME(x) #x #define QUOTEME(x) #x
......
...@@ -133,10 +133,11 @@ public final class Files { ...@@ -133,10 +133,11 @@ public final class Files {
* <p> This method walks a file tree rooted at a given starting file. The * <p> This method walks a file tree rooted at a given starting file. The
* file tree traversal is <em>depth-first</em> with the given {@link * file tree traversal is <em>depth-first</em> with the given {@link
* FileVisitor} invoked for each file encountered. File tree traversal * FileVisitor} invoked for each file encountered. File tree traversal
* completes when all accessible files in the tree have been visited, a * completes when all accessible files in the tree have been visited, or a
* visitor returns a result of {@link FileVisitResult#TERMINATE TERMINATE}, * visit method returns a result of {@link FileVisitResult#TERMINATE
* or the visitor terminates due to an uncaught {@code Error} or {@code * TERMINATE}. Where a visit method terminates due an uncaught error or
* RuntimeException}. * runtime exception then the traversal is terminated and the error or
* exception is propagated to the caller of this method.
* *
* <p> For each file encountered this method attempts to gets its {@link * <p> For each file encountered this method attempts to gets its {@link
* java.nio.file.attribute.BasicFileAttributes}. If the file is not a * java.nio.file.attribute.BasicFileAttributes}. If the file is not a
......
...@@ -124,8 +124,8 @@ public class SimpleFileVisitor<T> implements FileVisitor<T> { ...@@ -124,8 +124,8 @@ public class SimpleFileVisitor<T> implements FileVisitor<T> {
* cause. * cause.
* *
* @throws IOError * @throws IOError
* if iteration of the directory completed prematurely due to an * with the I/O exception thrown when iteration of the directory
* I/O error * completed prematurely due to an I/O error
*/ */
@Override @Override
public FileVisitResult postVisitDirectory(T dir, IOException exc) { public FileVisitResult postVisitDirectory(T dir, IOException exc) {
......
...@@ -57,9 +57,9 @@ public class Xdd { ...@@ -57,9 +57,9 @@ public class Xdd {
Path file = (args.length == 1) ? Path file = (args.length == 1) ?
Paths.get(args[0]) : Paths.get(args[2]); Paths.get(args[0]) : Paths.get(args[2]);
// check that user defined attributes are supported by the file system // check that user defined attributes are supported by the file store
FileStore store = file.getFileStore(); FileStore store = file.getFileStore();
if (!store.supportsFileAttributeView("user")) { if (!store.supportsFileAttributeView(UserDefinedFileAttributeView.class)) {
System.err.format("UserDefinedFileAttributeView not supported on %s\n", store); System.err.format("UserDefinedFileAttributeView not supported on %s\n", store);
System.exit(-1); System.exit(-1);
......
...@@ -134,15 +134,16 @@ setOptions(int fd) ...@@ -134,15 +134,16 @@ setOptions(int fd)
static jdwpTransportError static jdwpTransportError
handshake(int fd, jlong timeout) { handshake(int fd, jlong timeout) {
char *hello = "JDWP-Handshake"; const char *hello = "JDWP-Handshake";
char b[16]; char b[16];
int rv, received, i; int rv, helloLen, received;
if (timeout > 0) { if (timeout > 0) {
dbgsysConfigureBlocking(fd, JNI_FALSE); dbgsysConfigureBlocking(fd, JNI_FALSE);
} }
helloLen = (int)strlen(hello);
received = 0; received = 0;
while (received < (int)strlen(hello)) { while (received < helloLen) {
int n; int n;
char *buf; char *buf;
if (timeout > 0) { if (timeout > 0) {
...@@ -154,7 +155,7 @@ handshake(int fd, jlong timeout) { ...@@ -154,7 +155,7 @@ handshake(int fd, jlong timeout) {
} }
buf = b; buf = b;
buf += received; buf += received;
n = dbgsysRecv(fd, buf, (int)strlen(hello)-received, 0); n = dbgsysRecv(fd, buf, helloLen-received, 0);
if (n == 0) { if (n == 0) {
setLastError(0, "handshake failed - connection prematurally closed"); setLastError(0, "handshake failed - connection prematurally closed");
return JDWPTRANSPORT_ERROR_IO_ERROR; return JDWPTRANSPORT_ERROR_IO_ERROR;
...@@ -167,20 +168,19 @@ handshake(int fd, jlong timeout) { ...@@ -167,20 +168,19 @@ handshake(int fd, jlong timeout) {
if (timeout > 0) { if (timeout > 0) {
dbgsysConfigureBlocking(fd, JNI_TRUE); dbgsysConfigureBlocking(fd, JNI_TRUE);
} }
for (i=0; i<(int)strlen(hello); i++) { if (strncmp(b, hello, received) != 0) {
if (b[i] != hello[i]) { char msg[80+2*16];
char msg[64]; b[received] = '\0';
strcpy(msg, "handshake failed - received >"); /*
strncat(msg, b, strlen(hello)); * We should really use snprintf here but it's not available on Windows.
strcat(msg, "< - excepted >"); * We can't use jio_snprintf without linking the transport against the VM.
strcat(msg, hello); */
strcat(msg, "<"); sprintf(msg, "handshake failed - received >%s< - expected >%s<", b, hello);
setLastError(0, msg); setLastError(0, msg);
return JDWPTRANSPORT_ERROR_IO_ERROR; return JDWPTRANSPORT_ERROR_IO_ERROR;
}
} }
if (dbgsysSend(fd, hello, (int)strlen(hello), 0) != (int)strlen(hello)) { if (dbgsysSend(fd, (char*)hello, helloLen, 0) != helloLen) {
RETURN_IO_ERROR("send failed during handshake"); RETURN_IO_ERROR("send failed during handshake");
} }
return JDWPTRANSPORT_ERROR_NONE; return JDWPTRANSPORT_ERROR_NONE;
......
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
package sun.nio.fs; package sun.nio.fs;
import java.nio.file.attribute.*;
import java.util.*; import java.util.*;
import java.io.IOException; import java.io.IOException;
...@@ -113,10 +114,12 @@ class LinuxFileStore ...@@ -113,10 +114,12 @@ class LinuxFileStore
} }
@Override @Override
public boolean supportsFileAttributeView(String name) { public boolean supportsFileAttributeView(Class<? extends FileAttributeView> type) {
// support DosFileAttributeView and UserDefinedAttributeView if extended // support DosFileAttributeView and UserDefinedAttributeView if extended
// attributes enabled // attributes enabled
if (name.equals("dos") || name.equals("user")) { if (type == DosFileAttributeView.class ||
type == UserDefinedFileAttributeView.class)
{
// lookup fstypes.properties // lookup fstypes.properties
FeatureStatus status = checkIfFeaturePresent("user_xattr"); FeatureStatus status = checkIfFeaturePresent("user_xattr");
if (status == FeatureStatus.PRESENT) if (status == FeatureStatus.PRESENT)
...@@ -142,7 +145,15 @@ class LinuxFileStore ...@@ -142,7 +145,15 @@ class LinuxFileStore
} }
return xattrEnabled; return xattrEnabled;
} }
return super.supportsFileAttributeView(type);
}
@Override
public boolean supportsFileAttributeView(String name) {
if (name.equals("dos"))
return supportsFileAttributeView(DosFileAttributeView.class);
if (name.equals("user"))
return supportsFileAttributeView(UserDefinedFileAttributeView.class);
return super.supportsFileAttributeView(name); return super.supportsFileAttributeView(name);
} }
......
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
package sun.nio.fs; package sun.nio.fs;
import java.nio.file.attribute.*;
import java.io.IOException; import java.io.IOException;
import static sun.nio.fs.UnixNativeDispatcher.*; import static sun.nio.fs.UnixNativeDispatcher.*;
...@@ -72,27 +73,39 @@ class SolarisFileStore ...@@ -72,27 +73,39 @@ class SolarisFileStore
} }
@Override @Override
public boolean supportsFileAttributeView(String name) { public boolean supportsFileAttributeView(Class<? extends FileAttributeView> type) {
if (name.equals("acl")) { if (type == AclFileAttributeView.class) {
// lookup fstypes.properties // lookup fstypes.properties
FeatureStatus status = checkIfFeaturePresent("nfsv4acl"); FeatureStatus status = checkIfFeaturePresent("nfsv4acl");
if (status == FeatureStatus.PRESENT) switch (status) {
return true; case PRESENT : return true;
if (status == FeatureStatus.NOT_PRESENT) case NOT_PRESENT : return false;
return false; default :
// AclFileAttributeView available on ZFS // AclFileAttributeView available on ZFS
return (type().equals("zfs")); return (type().equals("zfs"));
}
} }
if (name.equals("user")) { if (type == UserDefinedFileAttributeView.class) {
// lookup fstypes.properties // lookup fstypes.properties
FeatureStatus status = checkIfFeaturePresent("xattr"); FeatureStatus status = checkIfFeaturePresent("xattr");
if (status == FeatureStatus.PRESENT) switch (status) {
return true; case PRESENT : return true;
if (status == FeatureStatus.NOT_PRESENT) case NOT_PRESENT : return false;
return false; default :
return xattrEnabled; // UserDefinedFileAttributeView available if extended
// attributes supported
return xattrEnabled;
}
} }
return super.supportsFileAttributeView(type);
}
@Override
public boolean supportsFileAttributeView(String name) {
if (name.equals("acl"))
return supportsFileAttributeView(AclFileAttributeView.class);
if (name.equals("user"))
return supportsFileAttributeView(UserDefinedFileAttributeView.class);
return super.supportsFileAttributeView(name); return super.supportsFileAttributeView(name);
} }
......
...@@ -145,9 +145,8 @@ abstract class UnixFileStore ...@@ -145,9 +145,8 @@ abstract class UnixFileStore
{ {
// lookup fstypes.properties // lookup fstypes.properties
FeatureStatus status = checkIfFeaturePresent("posix"); FeatureStatus status = checkIfFeaturePresent("posix");
if (status == FeatureStatus.NOT_PRESENT) // assume supported if UNKNOWN
return false; return (status != FeatureStatus.NOT_PRESENT);
return true;
} }
return false; return false;
} }
......
...@@ -153,7 +153,7 @@ class WindowsFileStore ...@@ -153,7 +153,7 @@ class WindowsFileStore
public boolean supportsFileAttributeView(Class<? extends FileAttributeView> type) { public boolean supportsFileAttributeView(Class<? extends FileAttributeView> type) {
if (type == null) if (type == null)
throw new NullPointerException(); throw new NullPointerException();
if (type == BasicFileAttributeView.class) if (type == BasicFileAttributeView.class || type == DosFileAttributeView.class)
return true; return true;
if (type == AclFileAttributeView.class || type == FileOwnerAttributeView.class) if (type == AclFileAttributeView.class || type == FileOwnerAttributeView.class)
return ((volInfo.flags() & FILE_PERSISTENT_ACLS) != 0); return ((volInfo.flags() & FILE_PERSISTENT_ACLS) != 0);
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
*/ */
/* @test /* @test
* @bug 6306165 * @bug 6306165 6432567
* @summary Check that a bad handshake doesn't cause a debuggee to abort * @summary Check that a bad handshake doesn't cause a debuggee to abort
* *
* @build VMConnection BadHandshakeTest Exit0 * @build VMConnection BadHandshakeTest Exit0
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
*/ */
/* @test /* @test
* @bug 4313887 * @bug 4313887 6873621
* @summary Unit test for java.nio.file.FileStore * @summary Unit test for java.nio.file.FileStore
* @library .. * @library ..
*/ */
...@@ -67,6 +67,15 @@ public class Basic { ...@@ -67,6 +67,15 @@ public class Basic {
* Test: File and FileStore attributes * Test: File and FileStore attributes
*/ */
assertTrue(store1.supportsFileAttributeView("basic")); assertTrue(store1.supportsFileAttributeView("basic"));
assertTrue(store1.supportsFileAttributeView(BasicFileAttributeView.class));
assertTrue(store1.supportsFileAttributeView("posix") ==
store1.supportsFileAttributeView(PosixFileAttributeView.class));
assertTrue(store1.supportsFileAttributeView("dos") ==
store1.supportsFileAttributeView(DosFileAttributeView.class));
assertTrue(store1.supportsFileAttributeView("acl") ==
store1.supportsFileAttributeView(AclFileAttributeView.class));
assertTrue(store1.supportsFileAttributeView("user") ==
store1.supportsFileAttributeView(UserDefinedFileAttributeView.class));
/** /**
* Test: Enumerate all FileStores * Test: Enumerate all FileStores
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册