diff options
Diffstat (limited to 'java/openjdk8/files/patch-bsd')
-rw-r--r-- | java/openjdk8/files/patch-bsd | 5699 |
1 files changed, 4806 insertions, 893 deletions
diff --git a/java/openjdk8/files/patch-bsd b/java/openjdk8/files/patch-bsd index fa4bb71fc78c..e1eb27e46983 100644 --- a/java/openjdk8/files/patch-bsd +++ b/java/openjdk8/files/patch-bsd @@ -1,58 +1,190 @@ ---- common/autoconf/build-performance.m4 -+++ common/autoconf/build-performance.m4 +--- ./.hgtags Wed Sep 17 11:23:18 2014 -0700 ++++ ./.hgtags Wed Nov 05 15:01:08 2014 -0800 +@@ -331,3 +331,4 @@ + 4429ea47ee6eca6b8a1dbda1950566ee821ba19d jdk8u25-b14 + 09eaef69f384ecf8ec0342b87a8b150740941140 jdk8u25-b15 + f0a48c214c46b7351ff8e6d6b6dc533463a4be21 jdk8u25-b16 ++d117f01bfb4f34668ac216c9837e88acead14dce jdk8u25-b17 +--- ./common/autoconf/build-performance.m4 Wed Sep 17 11:23:18 2014 -0700 ++++ ./common/autoconf/build-performance.m4 Wed Nov 05 15:01:08 2014 -0800 @@ -41,6 +41,10 @@ # Looks like a MacOSX system NUM_CORES=`/usr/sbin/system_profiler -detailLevel full SPHardwareDataType | grep 'Cores' | awk '{print [$]5}'` FOUND_CORES=yes -+ elif test "x$OPENJDK_BUILD_OS" = xbsd && test "x$(uname -s)" = xFreeBSD; then -+ # Looks like a FreeBSD system -+ NUM_CORES=`/sbin/sysctl -n kern.smp.cpus` ++ elif test "x$OPENJDK_BUILD_OS" = xbsd && test "x$(uname -s | grep -o BSD)" = xBSD; then ++ # Looks like a BSD system ++ NUM_CORES=`/sbin/sysctl -n hw.ncpu` + FOUND_CORES=yes - elif test -n "$NUMBER_OF_PROCESSORS"; then - # On windows, look in the env - NUM_CORES=$NUMBER_OF_PROCESSORS -@@ -76,6 +80,11 @@ + elif test "x$OPENJDK_BUILD_OS" = xaix ; then + NUM_CORES=`/usr/sbin/prtconf | grep "^Number Of Processors" | awk '{ print [$]4 }'` + FOUND_CORES=yes +@@ -79,6 +83,11 @@ MEMORY_SIZE=`/usr/sbin/system_profiler -detailLevel full SPHardwareDataType | grep 'Memory' | awk '{print [$]2}'` MEMORY_SIZE=`expr $MEMORY_SIZE \* 1024` FOUND_MEM=yes -+ elif test "x$OPENJDK_BUILD_OS" = xbsd && test "x$(uname -s)" = xFreeBSD; then -+ # Looks like a FreeBSD system ++ elif test "x$OPENJDK_BUILD_OS" = xbsd && test "x$(uname -s | grep -o BSD)" = xBSD; then ++ # Looks like a BSD system + MEMORY_SIZE=`/sbin/sysctl -n hw.physmem` + MEMORY_SIZE=`expr $MEMORY_SIZE / 1024 / 1024` + FOUND_MEM=yes elif test "x$OPENJDK_BUILD_OS" = xwindows; then # Windows, but without cygwin MEMORY_SIZE=`wmic computersystem get totalphysicalmemory -value | grep = | cut -d "=" -f 2-` ---- common/autoconf/libraries.m4 -+++ common/autoconf/libraries.m4 -@@ -63,9 +63,9 @@ +--- ./common/autoconf/generated-configure.sh Wed Sep 17 11:23:18 2014 -0700 ++++ ./common/autoconf/generated-configure.sh Wed Nov 05 15:01:08 2014 -0800 +@@ -1045,6 +1045,7 @@ + with_extra_cflags + with_extra_cxxflags + with_extra_ldflags ++with_package_path + enable_debug_symbols + enable_zip_debug_info + enable_macosx_runtime_support +@@ -1814,6 +1815,8 @@ + --with-extra-cflags extra flags to be used when compiling jdk c-files + --with-extra-cxxflags extra flags to be used when compiling jdk c++-files + --with-extra-ldflags extra flags to be used when linking jdk ++ --with-package-path package path to be used for location of third party ++ packages + --with-x use the X Window System + --with-cups specify prefix directory for the cups package + (expecting the headers under PATH/include) +@@ -6800,7 +6803,7 @@ + + # First argument is the cpu name from the trip/quad + case "$build_cpu" in +- x86_64) ++ amd64|x86_64) + VAR_CPU=x86_64 + VAR_CPU_ARCH=x86 + VAR_CPU_BITS=64 +@@ -6931,7 +6934,7 @@ + + # First argument is the cpu name from the trip/quad + case "$host_cpu" in +- x86_64) ++ amd64|x86_64) + VAR_CPU=x86_64 + VAR_CPU_ARCH=x86 + VAR_CPU_BITS=64 +@@ -20136,7 +20139,7 @@ + else + COMPILER_VERSION_TEST=`$COMPILER --version 2>&1 | $HEAD -n 1` + # Check that this is likely to be GCC. +- $COMPILER --version 2>&1 | $GREP "Free Software Foundation" > /dev/null ++ $COMPILER --version 2>&1 | $GREP -E "(Free Software Foundation|clang)" > /dev/null + if test $? -ne 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: The $COMPILER_NAME compiler (located as $COMPILER) does not seem to be the required GCC compiler." >&5 + $as_echo "$as_me: The $COMPILER_NAME compiler (located as $COMPILER) does not seem to be the required GCC compiler." >&6;} +@@ -21737,7 +21740,7 @@ + else + COMPILER_VERSION_TEST=`$COMPILER --version 2>&1 | $HEAD -n 1` + # Check that this is likely to be GCC. +- $COMPILER --version 2>&1 | $GREP "Free Software Foundation" > /dev/null ++ $COMPILER --version 2>&1 | $GREP -E "(Free Software Foundation|clang)" > /dev/null + if test $? -ne 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: The $COMPILER_NAME compiler (located as $COMPILER) does not seem to be the required GCC compiler." >&5 + $as_echo "$as_me: The $COMPILER_NAME compiler (located as $COMPILER) does not seem to be the required GCC compiler." >&6;} +@@ -27701,7 +27704,7 @@ + + # objcopy is used for moving debug symbols to separate files when + # full debug symbols are enabled. +- if test "x$OPENJDK_TARGET_OS" = xsolaris || test "x$OPENJDK_TARGET_OS" = xlinux; then ++ if test "x$OPENJDK_TARGET_OS" = xsolaris || test "x$OPENJDK_TARGET_OS" = xlinux || test "x$OPENJDK_TARGET_OS" = xbsd ; then + if test -n "$ac_tool_prefix"; then + for ac_prog in gobjcopy objcopy + do +@@ -29367,8 +29370,10 @@ + SET_SHARED_LIBRARY_NAME='-Xlinker -install_name -Xlinker @rpath/$1' + SET_SHARED_LIBRARY_MAPFILE='' + SET_SHARED_LIBRARY_ORIGIN='-Xlinker -rpath -Xlinker @loader_path/.' ++ POST_STRIP_CMD="$STRIP -S" ++ fi ++ if test "x$OPENJDK_TARGET_OS" = xbsd || test "x$OPENJDK_TARGET_OS" = xmacosx; then + SET_EXECUTABLE_ORIGIN="$SET_SHARED_LIBRARY_ORIGIN" +- POST_STRIP_CMD="$STRIP -S" + fi + else + if test "x$OPENJDK_TARGET_OS" = xsolaris; then +@@ -29794,22 +29799,37 @@ + CCXXFLAGS_JDK="$CCXXFLAGS_JDK $ADD_LP64" + + # The package path is used only on macosx? +- PACKAGE_PATH=/opt/local ++ ++# Check whether --with-package-path was given. ++if test "${with_package_path+set}" = set; then : ++ withval=$with_package_path; ++fi ++ ++ PACKAGE_PATH="$with_package_path" ++ if test "x$PACKAGE_PATH" = x; then ++ if test "`uname -s`" = "Darwin"; then ++ PACKAGE_PATH=/opt/local ++ fi ++ ++ if test "`uname -s`" = "FreeBSD"; then ++ PACKAGE_PATH=/usr/local ++ fi ++ ++ if test "`uname -s`" = "NetBSD"; then ++ PACKAGE_PATH=/usr/pkg ++ fi ++ ++ if test "`uname -s`" = "OpenBSD"; then ++ PACKAGE_PATH=/usr/local ++ fi ++ fi ++ + + + if test "x$OPENJDK_TARGET_CPU_ENDIAN" = xlittle; then +- # The macro _LITTLE_ENDIAN needs to be defined the same to avoid the +- # Sun C compiler warning message: warning: macro redefined: _LITTLE_ENDIAN +- # (The Solaris X86 system defines this in file /usr/include/sys/isa_defs.h). +- # Note: -Dmacro is the same as #define macro 1 +- # -Dmacro= is the same as #define macro +- if test "x$OPENJDK_TARGET_OS" = xsolaris; then +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_LITTLE_ENDIAN=" +- else +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_LITTLE_ENDIAN" +- fi +- else +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_BIG_ENDIAN" ++ CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DVM_LITTLE_ENDIAN" ++ else ++ CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DVM_BIG_ENDIAN" + fi + if test "x$OPENJDK_TARGET_OS" = xlinux; then + CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DLINUX" +@@ -30308,11 +30328,11 @@ fi if test "x$OPENJDK_TARGET_OS" = xbsd; then -- AC_MSG_CHECKING([what is not needed on bsd?]) +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking what is not needed on bsd?" >&5 +-$as_echo_n "checking what is not needed on bsd?... " >&6; } - ALSA_NOT_NEEDED=yes -- AC_MSG_RESULT([alsa]) -+ AC_MSG_CHECKING([what is not needed on BSD?]) +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: alsa" >&5 +-$as_echo "alsa" >&6; } ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking what is not needed on BSD?" >&5 ++$as_echo_n "checking what is not needed on BSD?... " >&6; } + PULSE_NOT_NEEDED=yes -+ AC_MSG_RESULT([pulse]) ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: pulse" >&5 ++$as_echo "pulse" >&6; } fi if test "x$OPENJDK" = "xfalse"; then -@@ -554,7 +554,7 @@ - fi +@@ -34581,7 +34601,7 @@ - if test "x${with_alsa}" != x; then -- ALSA_LIBS="-L${with_alsa}/lib -lalsa" -+ ALSA_LIBS="-L${with_alsa}/lib" - ALSA_CFLAGS="-I${with_alsa}/include" - ALSA_FOUND=yes - fi -@@ -563,9 +563,14 @@ - ALSA_FOUND=yes - fi - if test "x${with_alsa_lib}" != x; then -- ALSA_LIBS="-L${with_alsa_lib} -lalsa" -+ ALSA_LIBS="-L${with_alsa_lib}" + ############################################################################### + # +- # Check for alsa headers and libraries. Used on Linux/GNU systems. ++ # Check for alsa headers and libraries. Used on Linux/GNU and BSD systems. + # + + # Check whether --with-alsa was given. +@@ -34629,6 +34649,11 @@ + ALSA_LIBS="-L${with_alsa_lib} -lasound" ALSA_FOUND=yes fi + if test "x$OPENJDK_TARGET_OS" = xbsd; then @@ -61,9 +193,68 @@ + ALSA_LIBS="$ALSA_LIBS -lalsa" + fi if test "x$ALSA_FOUND" = xno; then - BDEPS_CHECK_MODULE(ALSA, alsa, xxx, [ALSA_FOUND=yes], [ALSA_FOUND=no]) - fi -@@ -877,5 +882,10 @@ + + +@@ -35619,6 +35644,11 @@ + LIBCXX="-lstdc++" + fi + ++ # TODO better (platform agnostic) test ++ if test "x$OPENJDK_TARGET_OS" = xbsd && test "x$LIBCXX" = x && test "x$GCC" = xyes; then ++ LIBCXX="-lstdc++" ++ fi ++ + + + +@@ -35692,6 +35722,10 @@ + # Looks like a MacOSX system + NUM_CORES=`/usr/sbin/system_profiler -detailLevel full SPHardwareDataType | grep 'Cores' | awk '{print $5}'` + FOUND_CORES=yes ++ elif test "x$OPENJDK_BUILD_OS" = xbsd && test "x$(uname -s | grep -o BSD)" = xBSD; then ++ # Looks like a BSD system ++ NUM_CORES=`/sbin/sysctl -n hw.ncpu` ++ FOUND_CORES=yes + elif test "x$OPENJDK_BUILD_OS" = xaix ; then + NUM_CORES=`/usr/sbin/prtconf | grep "^Number Of Processors" | awk '{ print $4 }'` + FOUND_CORES=yes +@@ -35747,6 +35781,11 @@ + MEMORY_SIZE=`/usr/sbin/system_profiler -detailLevel full SPHardwareDataType | grep 'Memory' | awk '{print $2}'` + MEMORY_SIZE=`expr $MEMORY_SIZE \* 1024` + FOUND_MEM=yes ++ elif test "x$OPENJDK_BUILD_OS" = xbsd && test "x$(uname -s | grep -o BSD)" = xBSD; then ++ # Looks like a BSD system ++ MEMORY_SIZE=`/sbin/sysctl -n hw.physmem` ++ MEMORY_SIZE=`expr $MEMORY_SIZE / 1024 / 1024` ++ FOUND_MEM=yes + elif test "x$OPENJDK_BUILD_OS" = xwindows; then + # Windows, but without cygwin + MEMORY_SIZE=`wmic computersystem get totalphysicalmemory -value | grep = | cut -d "=" -f 2-` +--- ./common/autoconf/libraries.m4 Wed Sep 17 11:23:18 2014 -0700 ++++ ./common/autoconf/libraries.m4 Wed Nov 05 15:01:08 2014 -0800 +@@ -71,9 +71,9 @@ + fi + + if test "x$OPENJDK_TARGET_OS" = xbsd; then +- AC_MSG_CHECKING([what is not needed on bsd?]) +- ALSA_NOT_NEEDED=yes +- AC_MSG_RESULT([alsa]) ++ AC_MSG_CHECKING([what is not needed on BSD?]) ++ PULSE_NOT_NEEDED=yes ++ AC_MSG_RESULT([pulse]) + fi + + if test "x$OPENJDK" = "xfalse"; then +@@ -538,7 +538,7 @@ + + ############################################################################### + # +- # Check for alsa headers and libraries. Used on Linux/GNU systems. ++ # Check for alsa headers and libraries. Used on Linux/GNU and BSD systems. + # + AC_ARG_WITH(alsa, [AS_HELP_STRING([--with-alsa], + [specify prefix directory for the alsa package +@@ -885,5 +885,10 @@ LIBCXX="-lstdc++" fi @@ -74,8 +265,8 @@ + AC_SUBST(LIBCXX) ]) ---- common/autoconf/platform.m4 -+++ common/autoconf/platform.m4 +--- ./common/autoconf/platform.m4 Wed Sep 17 11:23:18 2014 -0700 ++++ ./common/autoconf/platform.m4 Wed Nov 05 15:01:08 2014 -0800 @@ -30,7 +30,7 @@ [ # First argument is the cpu name from the trip/quad @@ -85,32 +276,31 @@ VAR_CPU=x86_64 VAR_CPU_ARCH=x86 VAR_CPU_BITS=64 -@@ -291,8 +291,8 @@ +@@ -302,8 +302,8 @@ # Setup OPENJDK_TARGET_CPU_OSARCH, which is used to set the os.arch Java system property OPENJDK_TARGET_CPU_OSARCH="$OPENJDK_TARGET_CPU" - if test "x$OPENJDK_TARGET_OS" = xlinux && test "x$OPENJDK_TARGET_CPU" = xx86; then - # On linux only, we replace x86 with i386. + if test "x$OPENJDK_TARGET_OS" = xbsd -o "x$OPENJDK_TARGET_OS" = xlinux && test "x$OPENJDK_TARGET_CPU" = xx86; then -+ # On bsd and linux only, we replace x86 with i386. ++ # On Linux and BSD, we replace x86 with i386. OPENJDK_TARGET_CPU_OSARCH="i386" elif test "x$OPENJDK_TARGET_OS" != xmacosx && test "x$OPENJDK_TARGET_CPU" = xx86_64; then # On all platforms except macosx, we replace x86_64 with amd64. -@@ -336,9 +336,9 @@ - - if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then - A_LP64="LP64:=" -- # -D_LP64=1 is only set on linux and mac. Setting on windows causes diff in -+ # -D_LP64=1 is only set on bsd, linux and mac. Setting on windows causes diff in - # unpack200.exe -- if test "x$OPENJDK_TARGET_OS" = xlinux || test "x$OPENJDK_TARGET_OS" = xmacosx; then -+ if test "x$OPENJDK_TARGET_OS" = xbsd -o "x$OPENJDK_TARGET_OS" = xlinux -o "x$OPENJDK_TARGET_OS" = xmacosx; then - ADD_LP64="-D_LP64=1" - fi - fi ---- common/autoconf/toolchain.m4 -+++ common/autoconf/toolchain.m4 -@@ -63,7 +63,7 @@ +--- ./common/autoconf/spec.gmk.in Wed Sep 17 11:23:18 2014 -0700 ++++ ./common/autoconf/spec.gmk.in Wed Nov 05 15:01:08 2014 -0800 +@@ -276,7 +276,7 @@ + ALSA_LIBS:=@ALSA_LIBS@ + ALSA_CFLAGS:=@ALSA_CFLAGS@ + +-PACKAGE_PATH=@PACKAGE_PATH@ ++PACKAGE_PATH:=@PACKAGE_PATH@ + + # Source file for cacerts + CACERTS_FILE=@CACERTS_FILE@ +--- ./common/autoconf/toolchain.m4 Wed Sep 17 11:23:18 2014 -0700 ++++ ./common/autoconf/toolchain.m4 Wed Nov 05 15:01:08 2014 -0800 +@@ -72,7 +72,7 @@ else COMPILER_VERSION_TEST=`$COMPILER --version 2>&1 | $HEAD -n 1` # Check that this is likely to be GCC. @@ -119,7 +309,7 @@ if test $? -ne 0; then AC_MSG_NOTICE([The $COMPILER_NAME compiler (located as $COMPILER) does not seem to be the required GCC compiler.]) AC_MSG_NOTICE([The result from running with --version was: "$COMPILER_VERSION_TEST"]) -@@ -458,7 +458,7 @@ +@@ -487,7 +487,7 @@ # objcopy is used for moving debug symbols to separate files when # full debug symbols are enabled. @@ -128,20 +318,44 @@ AC_CHECK_TOOLS(OBJCOPY, [gobjcopy objcopy]) # Only call fixup if objcopy was found. if test -n "$OBJCOPY"; then -@@ -526,9 +526,11 @@ +@@ -555,8 +555,10 @@ SET_SHARED_LIBRARY_NAME='-Xlinker -install_name -Xlinker @rpath/[$]1' SET_SHARED_LIBRARY_MAPFILE='' SET_SHARED_LIBRARY_ORIGIN='-Xlinker -rpath -Xlinker @loader_path/.' -- SET_EXECUTABLE_ORIGIN="$SET_SHARED_LIBRARY_ORIGIN" - POST_STRIP_CMD="$STRIP -S" - fi -+ if test "x$OPENJDK_TARGET_OS" = xbsd || test "x$OPENJDK_TARGET_OS" = xmacosx; then -+ SET_EXECUTABLE_ORIGIN="$SET_SHARED_LIBRARY_ORIGIN" ++ POST_STRIP_CMD="$STRIP -S" + fi ++ if test "x$OPENJDK_TARGET_OS" = xbsd || test "x$OPENJDK_TARGET_OS" = xmacosx; then + SET_EXECUTABLE_ORIGIN="$SET_SHARED_LIBRARY_ORIGIN" +- POST_STRIP_CMD="$STRIP -S" + fi else if test "x$OPENJDK_TARGET_OS" = xsolaris; then - # If it is not gcc, then assume it is the Oracle Solaris Studio Compiler -@@ -887,18 +889,9 @@ +@@ -960,22 +962,33 @@ + CCXXFLAGS_JDK="$CCXXFLAGS_JDK $ADD_LP64" + + # The package path is used only on macosx? +- PACKAGE_PATH=/opt/local ++ AC_ARG_WITH(package-path, [AS_HELP_STRING([--with-package-path], ++ [package path to be used for location of third party packages])]) ++ PACKAGE_PATH="$with_package_path" ++ if test "x$PACKAGE_PATH" = x; then ++ if test "`uname -s`" = "Darwin"; then ++ PACKAGE_PATH=/opt/local ++ fi ++ ++ if test "`uname -s`" = "FreeBSD"; then ++ PACKAGE_PATH=/usr/local ++ fi ++ ++ if test "`uname -s`" = "NetBSD"; then ++ PACKAGE_PATH=/usr/pkg ++ fi ++ ++ if test "`uname -s`" = "OpenBSD"; then ++ PACKAGE_PATH=/usr/local ++ fi ++ fi ++ AC_SUBST(PACKAGE_PATH) if test "x$OPENJDK_TARGET_CPU_ENDIAN" = xlittle; then @@ -162,8 +376,91 @@ fi if test "x$OPENJDK_TARGET_OS" = xlinux; then CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DLINUX" ---- hotspot/make/bsd/makefiles/build_vm_def.sh -+++ hotspot/make/bsd/makefiles/build_vm_def.sh +--- ./configure Wed Sep 17 11:23:18 2014 -0700 ++++ ./configure Wed Nov 05 15:01:08 2014 -0800 +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + # + # Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +--- ./make/Main.gmk Wed Sep 17 11:23:18 2014 -0700 ++++ ./make/Main.gmk Wed Nov 05 15:01:08 2014 -0800 +@@ -58,7 +58,11 @@ + + # Setup number of jobs to use. -jN is unfortunately not available for us to parse from the command line, + # hence this workaround. ++ifdef JOBS ++ifneq ($(JOBS),0) + MAKE_ARGS:=$(MAKE_ARGS) -j$(JOBS) ++endif ++endif + + ### Main targets + +--- ./make/common/MakeBase.gmk Wed Sep 17 11:23:18 2014 -0700 ++++ ./make/common/MakeBase.gmk Wed Nov 05 15:01:08 2014 -0800 +@@ -338,7 +338,7 @@ + # (and causing a crash on Cygwin). + # Default shell seems to always be /bin/sh. Must override with bash to get this to work on Solaris. + # Only use time if it's GNU time which supports format and output file. +- WRAPPER_SHELL:=/bin/bash $$(SRC_ROOT)/common/bin/shell-tracer.sh $$(if $$(findstring yes,$$(IS_GNU_TIME)),$$(TIME),-) $$(OUTPUT_ROOT)/build-trace-time.log /bin/bash ++ WRAPPER_SHELL:=bash $$(SRC_ROOT)/common/bin/shell-tracer.sh $$(if $$(findstring yes,$$(IS_GNU_TIME)),$$(TIME),-) $$(OUTPUT_ROOT)/build-trace-time.log bash + SHELL=$$(warning $$(if $$@,Building $$@,Running shell command) $$(if $$<, (from $$<))$$(if $$?, ($$(wordlist 1, 20, $$?) $$(if $$(wordlist 21, 22, $$?), ... [in total $$(words $$?) files]) newer)))$$(WRAPPER_SHELL) + endif + # Never remove warning messages; this is just for completeness +@@ -365,8 +365,8 @@ + + # This is to be called by all SetupFoo macros + define LogSetupMacroEntry +- $(if $(27),$(error Internal makefile error: Too many arguments to LogSetupMacroEntry, please update MakeBase.gmk)) +- $(if $(findstring $(LOG_LEVEL),debug trace), $(info $1 $(foreach i,2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26,$(if $($i),$(NEWLINE) $(strip [$i] $($i)))))) ++ $(if $(30),$(error Internal makefile error: Too many arguments to LogSetupMacroEntry, please update MakeBase.gmk)) ++ $(if $(findstring $(LOG_LEVEL),debug trace), $(info $1 $(foreach i,2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29,$(if $($i),$(NEWLINE) $(strip [$i] $($i)))))) + endef + + # Make directory without forking mkdir if not needed +--- ./make/common/NativeCompilation.gmk Wed Sep 17 11:23:18 2014 -0700 ++++ ./make/common/NativeCompilation.gmk Wed Nov 05 15:01:08 2014 -0800 +@@ -151,9 +151,9 @@ + # CC the compiler to use, default is $(CC) + # LDEXE the linker to use for linking executables, default is $(LDEXE) + # OPTIMIZATION sets optimization level to NONE, LOW, HIGH, HIGHEST +- $(foreach i,2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26, $(if $($i),$1_$(strip $($i)))$(NEWLINE)) +- $(call LogSetupMacroEntry,SetupNativeCompilation($1),$2,$3,$4,$5,$6,$7,$8,$9,$(10),$(11),$(12),$(13),$(14),$(15),$(16),$(17),$(18),$(19),$(20),$(21),$(22),$(23),$(24),$(25),$(26)) +- $(if $(27),$(error Internal makefile error: Too many arguments to SetupNativeCompilation, please update NativeCompilation.gmk)) ++ $(foreach i,2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29, $(if $($i),$1_$(strip $($i)))$(NEWLINE)) ++ $(call LogSetupMacroEntry,SetupNativeCompilation($1),$2,$3,$4,$5,$6,$7,$8,$9,$(10),$(11),$(12),$(13),$(14),$(15),$(16),$(17),$(18),$(19),$(20),$(21),$(22),$(23),$(24),$(25),$(26),$(27),$(28),$(29)) ++ $(if $(30),$(error Internal makefile error: Too many arguments to SetupNativeCompilation, please update NativeCompilation.gmk)) + + ifneq (,$$($1_BIN)) + $$(error BIN has been replaced with OBJECT_DIR) +--- ./corba/.hgtags Mon Sep 08 12:34:37 2014 -0700 ++++ ./corba/.hgtags Wed Sep 17 11:55:37 2014 -0700 +@@ -329,3 +329,4 @@ + 7e9a2027d0214019d66325fa7ca59cf8281fb43e jdk8u25-b14 + 5b2cb4935667cd02d7974b3b6fb6bf4092b5acae jdk8u25-b15 + 28d7f90e04e46ce8c633a2fbf0157d9e77db17c3 jdk8u25-b16 ++f46df0af2ca8c7d896de375c8edac8ce09318318 jdk8u25-b17 +--- ./hotspot/.hgtags Mon Sep 08 12:35:01 2014 -0700 ++++ ./hotspot/.hgtags Wed Nov 05 15:01:44 2014 -0800 +@@ -518,3 +518,4 @@ + c77d5db189422e2eef0443ee212644e497113b18 jdk8u25-b14 + e62c06b887310b5bd23be9b817a9a6f0daf0d0e1 jdk8u25-b15 + 6467bdd4d22d8b140844dc847c43b9ba7cb0bbd1 jdk8u25-b16 ++28b50d07f6f8c5a567b6a25e95a423948114a004 jdk8u25-b17 +--- ./hotspot/make/bsd/makefiles/adjust-mflags.sh Mon Sep 08 12:35:01 2014 -0700 ++++ ./hotspot/make/bsd/makefiles/adjust-mflags.sh Wed Nov 05 15:01:44 2014 -0800 +@@ -64,7 +64,6 @@ + echo "$MFLAGS" \ + | sed ' + s/^-/ -/ +- s/ -\([^ ][^ ]*\)j/ -\1 -j/ + s/ -j[0-9][0-9]*/ -j/ + s/ -j\([^ ]\)/ -j -\1/ + s/ -j/ -j'${HOTSPOT_BUILD_JOBS:-${default_build_jobs}}'/ +--- ./hotspot/make/bsd/makefiles/build_vm_def.sh Mon Sep 08 12:35:01 2014 -0700 ++++ ./hotspot/make/bsd/makefiles/build_vm_def.sh Wed Nov 05 15:01:44 2014 -0800 @@ -1,12 +1,28 @@ #!/bin/sh @@ -199,8 +496,8 @@ + if ($3 ~ /^_ZN9Arguments17SharedArchivePathE$/) print "\t" $3 ";" + }' | sort -u ;; +esac ---- hotspot/make/bsd/makefiles/debug.make -+++ hotspot/make/bsd/makefiles/debug.make +--- ./hotspot/make/bsd/makefiles/debug.make Mon Sep 08 12:35:01 2014 -0700 ++++ ./hotspot/make/bsd/makefiles/debug.make Wed Nov 05 15:01:44 2014 -0800 @@ -35,7 +35,10 @@ # to inhibit the effect of the previous line on CFLAGS. @@ -213,19 +510,8 @@ VERSION = debug SYSDEFS += -DASSERT ---- hotspot/make/bsd/makefiles/defs.make -+++ hotspot/make/bsd/makefiles/defs.make -@@ -254,7 +254,7 @@ - endif # BUILD_FLAVOR - endif # JDK_6_OR_EARLIER - --JDK_INCLUDE_SUBDIR=bsd -+JDK_INCLUDE_SUBDIR=$(shell uname -s | ${TR} "[:upper:]" "[:lower:]") - - # Library suffix - ifeq ($(OS_VENDOR),Darwin) ---- hotspot/make/bsd/makefiles/fastdebug.make -+++ hotspot/make/bsd/makefiles/fastdebug.make +--- ./hotspot/make/bsd/makefiles/fastdebug.make Mon Sep 08 12:35:01 2014 -0700 ++++ ./hotspot/make/bsd/makefiles/fastdebug.make Wed Nov 05 15:01:44 2014 -0800 @@ -56,7 +56,10 @@ # to inhibit the effect of the previous line on CFLAGS. @@ -238,20 +524,19 @@ VERSION = fastdebug SYSDEFS += -DASSERT -DCHECK_UNHANDLED_OOPS ---- hotspot/make/bsd/makefiles/gcc.make -+++ hotspot/make/bsd/makefiles/gcc.make -@@ -168,6 +168,10 @@ +--- ./hotspot/make/bsd/makefiles/gcc.make Mon Sep 08 12:35:01 2014 -0700 ++++ ./hotspot/make/bsd/makefiles/gcc.make Wed Nov 05 15:01:44 2014 -0800 +@@ -168,6 +168,9 @@ CFLAGS += -DDONT_USE_PRECOMPILED_HEADER endif -+ifeq ($(OS_VENDOR), FreeBSD) -+ CFLAGS+= -DPACKAGE_PATH=\"$(PACKAGE_PATH)\" -+endif ++# Allow for where third party packages are located ++CFLAGS+= -DPACKAGE_PATH=\"$(PACKAGE_PATH)\" + #------------------------------------------------------------------------ # Compiler flags -@@ -201,12 +205,15 @@ +@@ -201,12 +204,15 @@ endif ifeq ($(USE_CLANG), true) @@ -273,8 +558,17 @@ endif endif ---- hotspot/make/bsd/makefiles/launcher.make -+++ hotspot/make/bsd/makefiles/launcher.make +@@ -265,7 +271,7 @@ + ifeq "$(shell expr \( $(CC_VER_MAJOR) \> 4 \) \| \( \( $(CC_VER_MAJOR) = 4 \) \& \( $(CC_VER_MINOR) \>= 3 \) \))" "0" + # Since GCC 4.3, -Wconversion has changed its meanings to warn these implicit + # conversions which might affect the values. Only enable it in earlier versions. +- WARNING_FLAGS = -Wunused-function ++# WARNING_FLAGS = -Wunused-function + ifeq ($(USE_CLANG),) + WARNING_FLAGS += -Wconversion + endif +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ ./hotspot/make/bsd/makefiles/launcher.make Wed Nov 05 15:01:44 2014 -0800 @@ -0,0 +1,117 @@ +# +# Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. @@ -393,30 +687,1490 @@ + $(QUIETLY) sed -e 's/@@LIBARCH@@/$(LIBARCH)/g' $< > $@ + $(QUIETLY) chmod +x $@ + ---- hotspot/make/bsd/makefiles/mapfile-vers-debug -+++ hotspot/make/bsd/makefiles/mapfile-vers-debug -@@ -242,7 +242,7 @@ - JVM_UnloadLibrary; - JVM_Write; - JVM_Yield; -- JVM_handle_linux_signal; +--- ./hotspot/make/bsd/makefiles/mapfile-vers-debug Mon Sep 08 12:35:01 2014 -0700 ++++ ./hotspot/make/bsd/makefiles/mapfile-vers-debug Wed Nov 05 15:01:44 2014 -0800 +@@ -21,243 +21,251 @@ + # questions. + # + # +-# Only used for OSX/Darwin builds + + # Define public interface. ++ ++SUNWprivate_1.1 { ++ global: + # _JNI +- _JNI_CreateJavaVM +- _JNI_GetCreatedJavaVMs +- _JNI_GetDefaultJavaVMInitArgs ++ JNI_CreateJavaVM; ++ JNI_GetCreatedJavaVMs; ++ JNI_GetDefaultJavaVMInitArgs; + +- # _JVM +- _JVM_Accept +- _JVM_ActiveProcessorCount +- _JVM_AllocateNewArray +- _JVM_AllocateNewObject +- _JVM_ArrayCopy +- _JVM_AssertionStatusDirectives +- _JVM_Available +- _JVM_Bind +- _JVM_ClassDepth +- _JVM_ClassLoaderDepth +- _JVM_Clone +- _JVM_Close +- _JVM_CX8Field +- _JVM_CompileClass +- _JVM_CompileClasses +- _JVM_CompilerCommand +- _JVM_Connect +- _JVM_ConstantPoolGetClassAt +- _JVM_ConstantPoolGetClassAtIfLoaded +- _JVM_ConstantPoolGetDoubleAt +- _JVM_ConstantPoolGetFieldAt +- _JVM_ConstantPoolGetFieldAtIfLoaded +- _JVM_ConstantPoolGetFloatAt +- _JVM_ConstantPoolGetIntAt +- _JVM_ConstantPoolGetLongAt +- _JVM_ConstantPoolGetMethodAt +- _JVM_ConstantPoolGetMethodAtIfLoaded +- _JVM_ConstantPoolGetMemberRefInfoAt +- _JVM_ConstantPoolGetSize +- _JVM_ConstantPoolGetStringAt +- _JVM_ConstantPoolGetUTF8At +- _JVM_CountStackFrames +- _JVM_CurrentClassLoader +- _JVM_CurrentLoadedClass +- _JVM_CurrentThread +- _JVM_CurrentTimeMillis +- _JVM_DefineClass +- _JVM_DefineClassWithSource +- _JVM_DefineClassWithSourceCond +- _JVM_DesiredAssertionStatus +- _JVM_DisableCompiler +- _JVM_DoPrivileged +- _JVM_DTraceGetVersion +- _JVM_DTraceActivate +- _JVM_DTraceIsProbeEnabled +- _JVM_DTraceIsSupported +- _JVM_DTraceDispose +- _JVM_DumpAllStacks +- _JVM_DumpThreads +- _JVM_EnableCompiler +- _JVM_Exit +- _JVM_FillInStackTrace +- _JVM_FindClassFromCaller +- _JVM_FindClassFromClass +- _JVM_FindClassFromClassLoader +- _JVM_FindClassFromBootLoader +- _JVM_FindLibraryEntry +- _JVM_FindLoadedClass +- _JVM_FindPrimitiveClass +- _JVM_FindSignal +- _JVM_FreeMemory +- _JVM_GC +- _JVM_GetAllThreads +- _JVM_GetArrayElement +- _JVM_GetArrayLength +- _JVM_GetCPClassNameUTF +- _JVM_GetCPFieldClassNameUTF +- _JVM_GetCPFieldModifiers +- _JVM_GetCPFieldNameUTF +- _JVM_GetCPFieldSignatureUTF +- _JVM_GetCPMethodClassNameUTF +- _JVM_GetCPMethodModifiers +- _JVM_GetCPMethodNameUTF +- _JVM_GetCPMethodSignatureUTF +- _JVM_GetCallerClass +- _JVM_GetClassAccessFlags +- _JVM_GetClassAnnotations +- _JVM_GetClassCPEntriesCount +- _JVM_GetClassCPTypes +- _JVM_GetClassConstantPool +- _JVM_GetClassContext +- _JVM_GetClassDeclaredConstructors +- _JVM_GetClassDeclaredFields +- _JVM_GetClassDeclaredMethods +- _JVM_GetClassFieldsCount +- _JVM_GetClassInterfaces +- _JVM_GetClassLoader +- _JVM_GetClassMethodsCount +- _JVM_GetClassModifiers +- _JVM_GetClassName +- _JVM_GetClassNameUTF +- _JVM_GetClassSignature +- _JVM_GetClassSigners +- _JVM_GetClassTypeAnnotations +- _JVM_GetComponentType +- _JVM_GetDeclaredClasses +- _JVM_GetDeclaringClass +- _JVM_GetEnclosingMethodInfo +- _JVM_GetFieldAnnotations +- _JVM_GetFieldIxModifiers +- _JVM_GetFieldTypeAnnotations +- _JVM_GetHostName +- _JVM_GetInheritedAccessControlContext +- _JVM_GetInterfaceVersion +- _JVM_GetLastErrorString +- _JVM_GetManagement +- _JVM_GetMethodAnnotations +- _JVM_GetMethodDefaultAnnotationValue +- _JVM_GetMethodIxArgsSize +- _JVM_GetMethodIxByteCode +- _JVM_GetMethodIxByteCodeLength +- _JVM_GetMethodIxExceptionIndexes +- _JVM_GetMethodIxExceptionTableEntry +- _JVM_GetMethodIxExceptionTableLength +- _JVM_GetMethodIxExceptionsCount +- _JVM_GetMethodIxLocalsCount +- _JVM_GetMethodIxMaxStack +- _JVM_GetMethodIxModifiers +- _JVM_GetMethodIxNameUTF +- _JVM_GetMethodIxSignatureUTF +- _JVM_GetMethodParameterAnnotations +- _JVM_GetMethodParameters +- _JVM_GetMethodTypeAnnotations +- _JVM_GetPrimitiveArrayElement +- _JVM_GetProtectionDomain +- _JVM_GetSockName +- _JVM_GetSockOpt +- _JVM_GetStackAccessControlContext +- _JVM_GetStackTraceDepth +- _JVM_GetStackTraceElement +- _JVM_GetSystemPackage +- _JVM_GetSystemPackages +- _JVM_GetTemporaryDirectory +- _JVM_GetThreadStateNames +- _JVM_GetThreadStateValues +- _JVM_GetVersionInfo +- _JVM_Halt +- _JVM_HoldsLock +- _JVM_IHashCode +- _JVM_InitAgentProperties +- _JVM_InitProperties +- _JVM_InitializeCompiler +- _JVM_InitializeSocketLibrary +- _JVM_InternString +- _JVM_Interrupt +- _JVM_InvokeMethod +- _JVM_IsArrayClass +- _JVM_IsConstructorIx +- _JVM_IsInterface +- _JVM_IsInterrupted +- _JVM_IsNaN +- _JVM_IsPrimitiveClass +- _JVM_IsSameClassPackage +- _JVM_IsSilentCompiler +- _JVM_IsSupportedJNIVersion +- _JVM_IsThreadAlive +- _JVM_IsVMGeneratedMethodIx +- _JVM_LatestUserDefinedLoader +- _JVM_Listen +- _JVM_LoadClass0 +- _JVM_LoadLibrary +- _JVM_Lseek +- _JVM_MaxObjectInspectionAge +- _JVM_MaxMemory +- _JVM_MonitorNotify +- _JVM_MonitorNotifyAll +- _JVM_MonitorWait +- _JVM_NanoTime +- _JVM_NativePath +- _JVM_NewArray +- _JVM_NewInstanceFromConstructor +- _JVM_NewMultiArray +- _JVM_OnExit +- _JVM_Open +- _JVM_RaiseSignal +- _JVM_RawMonitorCreate +- _JVM_RawMonitorDestroy +- _JVM_RawMonitorEnter +- _JVM_RawMonitorExit +- _JVM_Read +- _JVM_Recv +- _JVM_RecvFrom +- _JVM_RegisterSignal +- _JVM_ReleaseUTF +- _JVM_ResolveClass +- _JVM_ResumeThread +- _JVM_Send +- _JVM_SendTo +- _JVM_SetArrayElement +- _JVM_SetClassSigners +- _JVM_SetLength +- _JVM_SetNativeThreadName +- _JVM_SetPrimitiveArrayElement +- _JVM_SetSockOpt +- _JVM_SetThreadPriority +- _JVM_Sleep +- _JVM_Socket +- _JVM_SocketAvailable +- _JVM_SocketClose +- _JVM_SocketShutdown +- _JVM_StartThread +- _JVM_StopThread +- _JVM_SuspendThread +- _JVM_SupportsCX8 +- _JVM_Sync +- _JVM_Timeout +- _JVM_TotalMemory +- _JVM_TraceInstructions +- _JVM_TraceMethodCalls +- _JVM_UnloadLibrary +- _JVM_Write +- _JVM_Yield +- _JVM_handle_bsd_signal ++ # JVM ++ JVM_Accept; ++ JVM_ActiveProcessorCount; ++ JVM_AllocateNewArray; ++ JVM_AllocateNewObject; ++ JVM_ArrayCopy; ++ JVM_AssertionStatusDirectives; ++ JVM_Available; ++ JVM_Bind; ++ JVM_ClassDepth; ++ JVM_ClassLoaderDepth; ++ JVM_Clone; ++ JVM_Close; ++ JVM_CX8Field; ++ JVM_CompileClass; ++ JVM_CompileClasses; ++ JVM_CompilerCommand; ++ JVM_Connect; ++ JVM_ConstantPoolGetClassAt; ++ JVM_ConstantPoolGetClassAtIfLoaded; ++ JVM_ConstantPoolGetDoubleAt; ++ JVM_ConstantPoolGetFieldAt; ++ JVM_ConstantPoolGetFieldAtIfLoaded; ++ JVM_ConstantPoolGetFloatAt; ++ JVM_ConstantPoolGetIntAt; ++ JVM_ConstantPoolGetLongAt; ++ JVM_ConstantPoolGetMethodAt; ++ JVM_ConstantPoolGetMethodAtIfLoaded; ++ JVM_ConstantPoolGetMemberRefInfoAt; ++ JVM_ConstantPoolGetSize; ++ JVM_ConstantPoolGetStringAt; ++ JVM_ConstantPoolGetUTF8At; ++ JVM_CountStackFrames; ++ JVM_CurrentClassLoader; ++ JVM_CurrentLoadedClass; ++ JVM_CurrentThread; ++ JVM_CurrentTimeMillis; ++ JVM_DefineClass; ++ JVM_DefineClassWithSource; ++ JVM_DefineClassWithSourceCond; ++ JVM_DesiredAssertionStatus; ++ JVM_DisableCompiler; ++ JVM_DoPrivileged; ++ JVM_DTraceGetVersion; ++ JVM_DTraceActivate; ++ JVM_DTraceIsProbeEnabled; ++ JVM_DTraceIsSupported; ++ JVM_DTraceDispose; ++ JVM_DumpAllStacks; ++ JVM_DumpThreads; ++ JVM_EnableCompiler; ++ JVM_Exit; ++ JVM_FillInStackTrace; ++ JVM_FindClassFromCaller; ++ JVM_FindClassFromClass; ++ JVM_FindClassFromClassLoader; ++ JVM_FindClassFromBootLoader; ++ JVM_FindLibraryEntry; ++ JVM_FindLoadedClass; ++ JVM_FindPrimitiveClass; ++ JVM_FindSignal; ++ JVM_FreeMemory; ++ JVM_GC; ++ JVM_GetAllThreads; ++ JVM_GetArrayElement; ++ JVM_GetArrayLength; ++ JVM_GetCPClassNameUTF; ++ JVM_GetCPFieldClassNameUTF; ++ JVM_GetCPFieldModifiers; ++ JVM_GetCPFieldNameUTF; ++ JVM_GetCPFieldSignatureUTF; ++ JVM_GetCPMethodClassNameUTF; ++ JVM_GetCPMethodModifiers; ++ JVM_GetCPMethodNameUTF; ++ JVM_GetCPMethodSignatureUTF; ++ JVM_GetCallerClass; ++ JVM_GetClassAccessFlags; ++ JVM_GetClassAnnotations; ++ JVM_GetClassCPEntriesCount; ++ JVM_GetClassCPTypes; ++ JVM_GetClassConstantPool; ++ JVM_GetClassContext; ++ JVM_GetClassDeclaredConstructors; ++ JVM_GetClassDeclaredFields; ++ JVM_GetClassDeclaredMethods; ++ JVM_GetClassFieldsCount; ++ JVM_GetClassInterfaces; ++ JVM_GetClassLoader; ++ JVM_GetClassMethodsCount; ++ JVM_GetClassModifiers; ++ JVM_GetClassName; ++ JVM_GetClassNameUTF; ++ JVM_GetClassSignature; ++ JVM_GetClassSigners; ++ JVM_GetClassTypeAnnotations; ++ JVM_GetComponentType; ++ JVM_GetDeclaredClasses; ++ JVM_GetDeclaringClass; ++ JVM_GetEnclosingMethodInfo; ++ JVM_GetFieldAnnotations; ++ JVM_GetFieldIxModifiers; ++ JVM_GetFieldTypeAnnotations; ++ JVM_GetHostName; ++ JVM_GetInheritedAccessControlContext; ++ JVM_GetInterfaceVersion; ++ JVM_GetLastErrorString; ++ JVM_GetManagement; ++ JVM_GetMethodAnnotations; ++ JVM_GetMethodDefaultAnnotationValue; ++ JVM_GetMethodIxArgsSize; ++ JVM_GetMethodIxByteCode; ++ JVM_GetMethodIxByteCodeLength; ++ JVM_GetMethodIxExceptionIndexes; ++ JVM_GetMethodIxExceptionTableEntry; ++ JVM_GetMethodIxExceptionTableLength; ++ JVM_GetMethodIxExceptionsCount; ++ JVM_GetMethodIxLocalsCount; ++ JVM_GetMethodIxMaxStack; ++ JVM_GetMethodIxModifiers; ++ JVM_GetMethodIxNameUTF; ++ JVM_GetMethodIxSignatureUTF; ++ JVM_GetMethodParameterAnnotations; ++ JVM_GetMethodParameters; ++ JVM_GetMethodTypeAnnotations; ++ JVM_GetPrimitiveArrayElement; ++ JVM_GetProtectionDomain; ++ JVM_GetSockName; ++ JVM_GetSockOpt; ++ JVM_GetStackAccessControlContext; ++ JVM_GetStackTraceDepth; ++ JVM_GetStackTraceElement; ++ JVM_GetSystemPackage; ++ JVM_GetSystemPackages; ++ JVM_GetTemporaryDirectory; ++ JVM_GetThreadStateNames; ++ JVM_GetThreadStateValues; ++ JVM_GetVersionInfo; ++ JVM_Halt; ++ JVM_HoldsLock; ++ JVM_IHashCode; ++ JVM_InitAgentProperties; ++ JVM_InitProperties; ++ JVM_InitializeCompiler; ++ JVM_InitializeSocketLibrary; ++ JVM_InternString; ++ JVM_Interrupt; ++ JVM_InvokeMethod; ++ JVM_IsArrayClass; ++ JVM_IsConstructorIx; ++ JVM_IsInterface; ++ JVM_IsInterrupted; ++ JVM_IsNaN; ++ JVM_IsPrimitiveClass; ++ JVM_IsSameClassPackage; ++ JVM_IsSilentCompiler; ++ JVM_IsSupportedJNIVersion; ++ JVM_IsThreadAlive; ++ JVM_IsVMGeneratedMethodIx; ++ JVM_LatestUserDefinedLoader; ++ JVM_Listen; ++ JVM_LoadClass0; ++ JVM_LoadLibrary; ++ JVM_Lseek; ++ JVM_MaxObjectInspectionAge; ++ JVM_MaxMemory; ++ JVM_MonitorNotify; ++ JVM_MonitorNotifyAll; ++ JVM_MonitorWait; ++ JVM_NanoTime; ++ JVM_NativePath; ++ JVM_NewArray; ++ JVM_NewInstanceFromConstructor; ++ JVM_NewMultiArray; ++ JVM_OnExit; ++ JVM_Open; ++ JVM_RaiseSignal; ++ JVM_RawMonitorCreate; ++ JVM_RawMonitorDestroy; ++ JVM_RawMonitorEnter; ++ JVM_RawMonitorExit; ++ JVM_Read; ++ JVM_Recv; ++ JVM_RecvFrom; ++ JVM_RegisterSignal; ++ JVM_ReleaseUTF; ++ JVM_ResolveClass; ++ JVM_ResumeThread; ++ JVM_Send; ++ JVM_SendTo; ++ JVM_SetArrayElement; ++ JVM_SetClassSigners; ++ JVM_SetLength; ++ JVM_SetNativeThreadName; ++ JVM_SetPrimitiveArrayElement; ++ JVM_SetSockOpt; ++ JVM_SetThreadPriority; ++ JVM_Sleep; ++ JVM_Socket; ++ JVM_SocketAvailable; ++ JVM_SocketClose; ++ JVM_SocketShutdown; ++ JVM_StartThread; ++ JVM_StopThread; ++ JVM_SuspendThread; ++ JVM_SupportsCX8; ++ JVM_Sync; ++ JVM_Timeout; ++ JVM_TotalMemory; ++ JVM_TraceInstructions; ++ JVM_TraceMethodCalls; ++ JVM_UnloadLibrary; ++ JVM_Write; ++ JVM_Yield; + JVM_handle_bsd_signal; - # debug JVM - JVM_AccessVMBooleanFlag; ---- hotspot/make/bsd/makefiles/mapfile-vers-product -+++ hotspot/make/bsd/makefiles/mapfile-vers-product -@@ -242,7 +242,7 @@ - JVM_UnloadLibrary; - JVM_Write; - JVM_Yield; -- JVM_handle_linux_signal; +- # debug _JVM +- _JVM_AccessVMBooleanFlag +- _JVM_AccessVMIntFlag +- _JVM_VMBreakPoint ++ # debug JVM ++ JVM_AccessVMBooleanFlag; ++ JVM_AccessVMIntFlag; ++ JVM_VMBreakPoint; + + # miscellaneous functions +- _jio_fprintf +- _jio_printf +- _jio_snprintf +- _jio_vfprintf +- _jio_vsnprintf ++ jio_fprintf; ++ jio_printf; ++ jio_snprintf; ++ jio_vfprintf; ++ jio_vsnprintf; ++ fork1; ++ numa_warn; ++ numa_error; + + # This is for Forte Analyzer profiling support. +- _AsyncGetCallTrace ++ AsyncGetCallTrace; + + # INSERT VTABLE SYMBOLS HERE + ++ local: ++ *; ++}; +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ ./hotspot/make/bsd/makefiles/mapfile-vers-debug.macosx Wed Nov 05 15:01:44 2014 -0800 +@@ -0,0 +1,263 @@ ++# ++# Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved. ++# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++# ++# This code is free software; you can redistribute it and/or modify it ++# under the terms of the GNU General Public License version 2 only, as ++# published by the Free Software Foundation. ++# ++# This code is distributed in the hope that it will be useful, but WITHOUT ++# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++# version 2 for more details (a copy is included in the LICENSE file that ++# accompanied this code). ++# ++# You should have received a copy of the GNU General Public License version ++# 2 along with this work; if not, write to the Free Software Foundation, ++# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++# ++# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++# or visit www.oracle.com if you need additional information or have any ++# questions. ++# ++# ++# Only used for OSX/Darwin builds ++ ++# Define public interface. ++ # _JNI ++ _JNI_CreateJavaVM ++ _JNI_GetCreatedJavaVMs ++ _JNI_GetDefaultJavaVMInitArgs ++ ++ # _JVM ++ _JVM_Accept ++ _JVM_ActiveProcessorCount ++ _JVM_AllocateNewArray ++ _JVM_AllocateNewObject ++ _JVM_ArrayCopy ++ _JVM_AssertionStatusDirectives ++ _JVM_Available ++ _JVM_Bind ++ _JVM_ClassDepth ++ _JVM_ClassLoaderDepth ++ _JVM_Clone ++ _JVM_Close ++ _JVM_CX8Field ++ _JVM_CompileClass ++ _JVM_CompileClasses ++ _JVM_CompilerCommand ++ _JVM_Connect ++ _JVM_ConstantPoolGetClassAt ++ _JVM_ConstantPoolGetClassAtIfLoaded ++ _JVM_ConstantPoolGetDoubleAt ++ _JVM_ConstantPoolGetFieldAt ++ _JVM_ConstantPoolGetFieldAtIfLoaded ++ _JVM_ConstantPoolGetFloatAt ++ _JVM_ConstantPoolGetIntAt ++ _JVM_ConstantPoolGetLongAt ++ _JVM_ConstantPoolGetMethodAt ++ _JVM_ConstantPoolGetMethodAtIfLoaded ++ _JVM_ConstantPoolGetMemberRefInfoAt ++ _JVM_ConstantPoolGetSize ++ _JVM_ConstantPoolGetStringAt ++ _JVM_ConstantPoolGetUTF8At ++ _JVM_CountStackFrames ++ _JVM_CurrentClassLoader ++ _JVM_CurrentLoadedClass ++ _JVM_CurrentThread ++ _JVM_CurrentTimeMillis ++ _JVM_DefineClass ++ _JVM_DefineClassWithSource ++ _JVM_DefineClassWithSourceCond ++ _JVM_DesiredAssertionStatus ++ _JVM_DisableCompiler ++ _JVM_DoPrivileged ++ _JVM_DTraceGetVersion ++ _JVM_DTraceActivate ++ _JVM_DTraceIsProbeEnabled ++ _JVM_DTraceIsSupported ++ _JVM_DTraceDispose ++ _JVM_DumpAllStacks ++ _JVM_DumpThreads ++ _JVM_EnableCompiler ++ _JVM_Exit ++ _JVM_FillInStackTrace ++ _JVM_FindClassFromCaller ++ _JVM_FindClassFromClass ++ _JVM_FindClassFromClassLoader ++ _JVM_FindClassFromBootLoader ++ _JVM_FindLibraryEntry ++ _JVM_FindLoadedClass ++ _JVM_FindPrimitiveClass ++ _JVM_FindSignal ++ _JVM_FreeMemory ++ _JVM_GC ++ _JVM_GetAllThreads ++ _JVM_GetArrayElement ++ _JVM_GetArrayLength ++ _JVM_GetCPClassNameUTF ++ _JVM_GetCPFieldClassNameUTF ++ _JVM_GetCPFieldModifiers ++ _JVM_GetCPFieldNameUTF ++ _JVM_GetCPFieldSignatureUTF ++ _JVM_GetCPMethodClassNameUTF ++ _JVM_GetCPMethodModifiers ++ _JVM_GetCPMethodNameUTF ++ _JVM_GetCPMethodSignatureUTF ++ _JVM_GetCallerClass ++ _JVM_GetClassAccessFlags ++ _JVM_GetClassAnnotations ++ _JVM_GetClassCPEntriesCount ++ _JVM_GetClassCPTypes ++ _JVM_GetClassConstantPool ++ _JVM_GetClassContext ++ _JVM_GetClassDeclaredConstructors ++ _JVM_GetClassDeclaredFields ++ _JVM_GetClassDeclaredMethods ++ _JVM_GetClassFieldsCount ++ _JVM_GetClassInterfaces ++ _JVM_GetClassLoader ++ _JVM_GetClassMethodsCount ++ _JVM_GetClassModifiers ++ _JVM_GetClassName ++ _JVM_GetClassNameUTF ++ _JVM_GetClassSignature ++ _JVM_GetClassSigners ++ _JVM_GetClassTypeAnnotations ++ _JVM_GetComponentType ++ _JVM_GetDeclaredClasses ++ _JVM_GetDeclaringClass ++ _JVM_GetEnclosingMethodInfo ++ _JVM_GetFieldAnnotations ++ _JVM_GetFieldIxModifiers ++ _JVM_GetFieldTypeAnnotations ++ _JVM_GetHostName ++ _JVM_GetInheritedAccessControlContext ++ _JVM_GetInterfaceVersion ++ _JVM_GetLastErrorString ++ _JVM_GetManagement ++ _JVM_GetMethodAnnotations ++ _JVM_GetMethodDefaultAnnotationValue ++ _JVM_GetMethodIxArgsSize ++ _JVM_GetMethodIxByteCode ++ _JVM_GetMethodIxByteCodeLength ++ _JVM_GetMethodIxExceptionIndexes ++ _JVM_GetMethodIxExceptionTableEntry ++ _JVM_GetMethodIxExceptionTableLength ++ _JVM_GetMethodIxExceptionsCount ++ _JVM_GetMethodIxLocalsCount ++ _JVM_GetMethodIxMaxStack ++ _JVM_GetMethodIxModifiers ++ _JVM_GetMethodIxNameUTF ++ _JVM_GetMethodIxSignatureUTF ++ _JVM_GetMethodParameterAnnotations ++ _JVM_GetMethodParameters ++ _JVM_GetMethodTypeAnnotations ++ _JVM_GetPrimitiveArrayElement ++ _JVM_GetProtectionDomain ++ _JVM_GetSockName ++ _JVM_GetSockOpt ++ _JVM_GetStackAccessControlContext ++ _JVM_GetStackTraceDepth ++ _JVM_GetStackTraceElement ++ _JVM_GetSystemPackage ++ _JVM_GetSystemPackages ++ _JVM_GetTemporaryDirectory ++ _JVM_GetThreadStateNames ++ _JVM_GetThreadStateValues ++ _JVM_GetVersionInfo ++ _JVM_Halt ++ _JVM_HoldsLock ++ _JVM_IHashCode ++ _JVM_InitAgentProperties ++ _JVM_InitProperties ++ _JVM_InitializeCompiler ++ _JVM_InitializeSocketLibrary ++ _JVM_InternString ++ _JVM_Interrupt ++ _JVM_InvokeMethod ++ _JVM_IsArrayClass ++ _JVM_IsConstructorIx ++ _JVM_IsInterface ++ _JVM_IsInterrupted ++ _JVM_IsNaN ++ _JVM_IsPrimitiveClass ++ _JVM_IsSameClassPackage ++ _JVM_IsSilentCompiler ++ _JVM_IsSupportedJNIVersion ++ _JVM_IsThreadAlive ++ _JVM_IsVMGeneratedMethodIx ++ _JVM_LatestUserDefinedLoader ++ _JVM_Listen ++ _JVM_LoadClass0 ++ _JVM_LoadLibrary ++ _JVM_Lseek ++ _JVM_MaxObjectInspectionAge ++ _JVM_MaxMemory ++ _JVM_MonitorNotify ++ _JVM_MonitorNotifyAll ++ _JVM_MonitorWait ++ _JVM_NanoTime ++ _JVM_NativePath ++ _JVM_NewArray ++ _JVM_NewInstanceFromConstructor ++ _JVM_NewMultiArray ++ _JVM_OnExit ++ _JVM_Open ++ _JVM_RaiseSignal ++ _JVM_RawMonitorCreate ++ _JVM_RawMonitorDestroy ++ _JVM_RawMonitorEnter ++ _JVM_RawMonitorExit ++ _JVM_Read ++ _JVM_Recv ++ _JVM_RecvFrom ++ _JVM_RegisterSignal ++ _JVM_ReleaseUTF ++ _JVM_ResolveClass ++ _JVM_ResumeThread ++ _JVM_Send ++ _JVM_SendTo ++ _JVM_SetArrayElement ++ _JVM_SetClassSigners ++ _JVM_SetLength ++ _JVM_SetNativeThreadName ++ _JVM_SetPrimitiveArrayElement ++ _JVM_SetSockOpt ++ _JVM_SetThreadPriority ++ _JVM_Sleep ++ _JVM_Socket ++ _JVM_SocketAvailable ++ _JVM_SocketClose ++ _JVM_SocketShutdown ++ _JVM_StartThread ++ _JVM_StopThread ++ _JVM_SuspendThread ++ _JVM_SupportsCX8 ++ _JVM_Sync ++ _JVM_Timeout ++ _JVM_TotalMemory ++ _JVM_TraceInstructions ++ _JVM_TraceMethodCalls ++ _JVM_UnloadLibrary ++ _JVM_Write ++ _JVM_Yield ++ _JVM_handle_bsd_signal ++ ++ # debug _JVM ++ _JVM_AccessVMBooleanFlag ++ _JVM_AccessVMIntFlag ++ _JVM_VMBreakPoint ++ ++ # miscellaneous functions ++ _jio_fprintf ++ _jio_printf ++ _jio_snprintf ++ _jio_vfprintf ++ _jio_vsnprintf ++ ++ # This is for Forte Analyzer profiling support. ++ _AsyncGetCallTrace ++ ++ # INSERT VTABLE SYMBOLS HERE ++ +--- ./hotspot/make/bsd/makefiles/mapfile-vers-product Mon Sep 08 12:35:01 2014 -0700 ++++ ./hotspot/make/bsd/makefiles/mapfile-vers-product Wed Nov 05 15:01:44 2014 -0800 +@@ -21,238 +21,246 @@ + # questions. + # + # +-# Only used for OSX/Darwin builds + + # Define public interface. ++ ++SUNWprivate_1.1 { ++ global: + # _JNI +- _JNI_CreateJavaVM +- _JNI_GetCreatedJavaVMs +- _JNI_GetDefaultJavaVMInitArgs ++ JNI_CreateJavaVM; ++ JNI_GetCreatedJavaVMs; ++ JNI_GetDefaultJavaVMInitArgs; + +- # _JVM +- _JVM_Accept +- _JVM_ActiveProcessorCount +- _JVM_AllocateNewArray +- _JVM_AllocateNewObject +- _JVM_ArrayCopy +- _JVM_AssertionStatusDirectives +- _JVM_Available +- _JVM_Bind +- _JVM_ClassDepth +- _JVM_ClassLoaderDepth +- _JVM_Clone +- _JVM_Close +- _JVM_CX8Field +- _JVM_CompileClass +- _JVM_CompileClasses +- _JVM_CompilerCommand +- _JVM_Connect +- _JVM_ConstantPoolGetClassAt +- _JVM_ConstantPoolGetClassAtIfLoaded +- _JVM_ConstantPoolGetDoubleAt +- _JVM_ConstantPoolGetFieldAt +- _JVM_ConstantPoolGetFieldAtIfLoaded +- _JVM_ConstantPoolGetFloatAt +- _JVM_ConstantPoolGetIntAt +- _JVM_ConstantPoolGetLongAt +- _JVM_ConstantPoolGetMethodAt +- _JVM_ConstantPoolGetMethodAtIfLoaded +- _JVM_ConstantPoolGetMemberRefInfoAt +- _JVM_ConstantPoolGetSize +- _JVM_ConstantPoolGetStringAt +- _JVM_ConstantPoolGetUTF8At +- _JVM_CountStackFrames +- _JVM_CurrentClassLoader +- _JVM_CurrentLoadedClass +- _JVM_CurrentThread +- _JVM_CurrentTimeMillis +- _JVM_DefineClass +- _JVM_DefineClassWithSource +- _JVM_DefineClassWithSourceCond +- _JVM_DesiredAssertionStatus +- _JVM_DisableCompiler +- _JVM_DoPrivileged +- _JVM_DTraceGetVersion +- _JVM_DTraceActivate +- _JVM_DTraceIsProbeEnabled +- _JVM_DTraceIsSupported +- _JVM_DTraceDispose +- _JVM_DumpAllStacks +- _JVM_DumpThreads +- _JVM_EnableCompiler +- _JVM_Exit +- _JVM_FillInStackTrace +- _JVM_FindClassFromCaller +- _JVM_FindClassFromClass +- _JVM_FindClassFromClassLoader +- _JVM_FindClassFromBootLoader +- _JVM_FindLibraryEntry +- _JVM_FindLoadedClass +- _JVM_FindPrimitiveClass +- _JVM_FindSignal +- _JVM_FreeMemory +- _JVM_GC +- _JVM_GetAllThreads +- _JVM_GetArrayElement +- _JVM_GetArrayLength +- _JVM_GetCPClassNameUTF +- _JVM_GetCPFieldClassNameUTF +- _JVM_GetCPFieldModifiers +- _JVM_GetCPFieldNameUTF +- _JVM_GetCPFieldSignatureUTF +- _JVM_GetCPMethodClassNameUTF +- _JVM_GetCPMethodModifiers +- _JVM_GetCPMethodNameUTF +- _JVM_GetCPMethodSignatureUTF +- _JVM_GetCallerClass +- _JVM_GetClassAccessFlags +- _JVM_GetClassAnnotations +- _JVM_GetClassCPEntriesCount +- _JVM_GetClassCPTypes +- _JVM_GetClassConstantPool +- _JVM_GetClassContext +- _JVM_GetClassDeclaredConstructors +- _JVM_GetClassDeclaredFields +- _JVM_GetClassDeclaredMethods +- _JVM_GetClassFieldsCount +- _JVM_GetClassInterfaces +- _JVM_GetClassLoader +- _JVM_GetClassMethodsCount +- _JVM_GetClassModifiers +- _JVM_GetClassName +- _JVM_GetClassNameUTF +- _JVM_GetClassSignature +- _JVM_GetClassSigners +- _JVM_GetClassTypeAnnotations +- _JVM_GetComponentType +- _JVM_GetDeclaredClasses +- _JVM_GetDeclaringClass +- _JVM_GetEnclosingMethodInfo +- _JVM_GetFieldAnnotations +- _JVM_GetFieldIxModifiers +- _JVM_GetFieldTypeAnnotations +- _JVM_GetHostName +- _JVM_GetInheritedAccessControlContext +- _JVM_GetInterfaceVersion +- _JVM_GetLastErrorString +- _JVM_GetManagement +- _JVM_GetMethodAnnotations +- _JVM_GetMethodDefaultAnnotationValue +- _JVM_GetMethodIxArgsSize +- _JVM_GetMethodIxByteCode +- _JVM_GetMethodIxByteCodeLength +- _JVM_GetMethodIxExceptionIndexes +- _JVM_GetMethodIxExceptionTableEntry +- _JVM_GetMethodIxExceptionTableLength +- _JVM_GetMethodIxExceptionsCount +- _JVM_GetMethodIxLocalsCount +- _JVM_GetMethodIxMaxStack +- _JVM_GetMethodIxModifiers +- _JVM_GetMethodIxNameUTF +- _JVM_GetMethodIxSignatureUTF +- _JVM_GetMethodParameterAnnotations +- _JVM_GetMethodParameters +- _JVM_GetMethodTypeAnnotations +- _JVM_GetPrimitiveArrayElement +- _JVM_GetProtectionDomain +- _JVM_GetSockName +- _JVM_GetSockOpt +- _JVM_GetStackAccessControlContext +- _JVM_GetStackTraceDepth +- _JVM_GetStackTraceElement +- _JVM_GetSystemPackage +- _JVM_GetSystemPackages +- _JVM_GetTemporaryDirectory +- _JVM_GetThreadStateNames +- _JVM_GetThreadStateValues +- _JVM_GetVersionInfo +- _JVM_Halt +- _JVM_HoldsLock +- _JVM_IHashCode +- _JVM_InitAgentProperties +- _JVM_InitProperties +- _JVM_InitializeCompiler +- _JVM_InitializeSocketLibrary +- _JVM_InternString +- _JVM_Interrupt +- _JVM_InvokeMethod +- _JVM_IsArrayClass +- _JVM_IsConstructorIx +- _JVM_IsInterface +- _JVM_IsInterrupted +- _JVM_IsNaN +- _JVM_IsPrimitiveClass +- _JVM_IsSameClassPackage +- _JVM_IsSilentCompiler +- _JVM_IsSupportedJNIVersion +- _JVM_IsThreadAlive +- _JVM_IsVMGeneratedMethodIx +- _JVM_LatestUserDefinedLoader +- _JVM_Listen +- _JVM_LoadClass0 +- _JVM_LoadLibrary +- _JVM_Lseek +- _JVM_MaxObjectInspectionAge +- _JVM_MaxMemory +- _JVM_MonitorNotify +- _JVM_MonitorNotifyAll +- _JVM_MonitorWait +- _JVM_NanoTime +- _JVM_NativePath +- _JVM_NewArray +- _JVM_NewInstanceFromConstructor +- _JVM_NewMultiArray +- _JVM_OnExit +- _JVM_Open +- _JVM_RaiseSignal +- _JVM_RawMonitorCreate +- _JVM_RawMonitorDestroy +- _JVM_RawMonitorEnter +- _JVM_RawMonitorExit +- _JVM_Read +- _JVM_Recv +- _JVM_RecvFrom +- _JVM_RegisterSignal +- _JVM_ReleaseUTF +- _JVM_ResolveClass +- _JVM_ResumeThread +- _JVM_Send +- _JVM_SendTo +- _JVM_SetArrayElement +- _JVM_SetClassSigners +- _JVM_SetLength +- _JVM_SetNativeThreadName +- _JVM_SetPrimitiveArrayElement +- _JVM_SetSockOpt +- _JVM_SetThreadPriority +- _JVM_Sleep +- _JVM_Socket +- _JVM_SocketAvailable +- _JVM_SocketClose +- _JVM_SocketShutdown +- _JVM_StartThread +- _JVM_StopThread +- _JVM_SuspendThread +- _JVM_SupportsCX8 +- _JVM_Sync +- _JVM_Timeout +- _JVM_TotalMemory +- _JVM_TraceInstructions +- _JVM_TraceMethodCalls +- _JVM_UnloadLibrary +- _JVM_Write +- _JVM_Yield +- _JVM_handle_bsd_signal ++ # JVM ++ JVM_Accept; ++ JVM_ActiveProcessorCount; ++ JVM_AllocateNewArray; ++ JVM_AllocateNewObject; ++ JVM_ArrayCopy; ++ JVM_AssertionStatusDirectives; ++ JVM_Available; ++ JVM_Bind; ++ JVM_ClassDepth; ++ JVM_ClassLoaderDepth; ++ JVM_Clone; ++ JVM_Close; ++ JVM_CX8Field; ++ JVM_CompileClass; ++ JVM_CompileClasses; ++ JVM_CompilerCommand; ++ JVM_Connect; ++ JVM_ConstantPoolGetClassAt; ++ JVM_ConstantPoolGetClassAtIfLoaded; ++ JVM_ConstantPoolGetDoubleAt; ++ JVM_ConstantPoolGetFieldAt; ++ JVM_ConstantPoolGetFieldAtIfLoaded; ++ JVM_ConstantPoolGetFloatAt; ++ JVM_ConstantPoolGetIntAt; ++ JVM_ConstantPoolGetLongAt; ++ JVM_ConstantPoolGetMethodAt; ++ JVM_ConstantPoolGetMethodAtIfLoaded; ++ JVM_ConstantPoolGetMemberRefInfoAt; ++ JVM_ConstantPoolGetSize; ++ JVM_ConstantPoolGetStringAt; ++ JVM_ConstantPoolGetUTF8At; ++ JVM_CountStackFrames; ++ JVM_CurrentClassLoader; ++ JVM_CurrentLoadedClass; ++ JVM_CurrentThread; ++ JVM_CurrentTimeMillis; ++ JVM_DefineClass; ++ JVM_DefineClassWithSource; ++ JVM_DefineClassWithSourceCond; ++ JVM_DesiredAssertionStatus; ++ JVM_DisableCompiler; ++ JVM_DoPrivileged; ++ JVM_DTraceGetVersion; ++ JVM_DTraceActivate; ++ JVM_DTraceIsProbeEnabled; ++ JVM_DTraceIsSupported; ++ JVM_DTraceDispose; ++ JVM_DumpAllStacks; ++ JVM_DumpThreads; ++ JVM_EnableCompiler; ++ JVM_Exit; ++ JVM_FillInStackTrace; ++ JVM_FindClassFromCaller; ++ JVM_FindClassFromClass; ++ JVM_FindClassFromClassLoader; ++ JVM_FindClassFromBootLoader; ++ JVM_FindLibraryEntry; ++ JVM_FindLoadedClass; ++ JVM_FindPrimitiveClass; ++ JVM_FindSignal; ++ JVM_FreeMemory; ++ JVM_GC; ++ JVM_GetAllThreads; ++ JVM_GetArrayElement; ++ JVM_GetArrayLength; ++ JVM_GetCPClassNameUTF; ++ JVM_GetCPFieldClassNameUTF; ++ JVM_GetCPFieldModifiers; ++ JVM_GetCPFieldNameUTF; ++ JVM_GetCPFieldSignatureUTF; ++ JVM_GetCPMethodClassNameUTF; ++ JVM_GetCPMethodModifiers; ++ JVM_GetCPMethodNameUTF; ++ JVM_GetCPMethodSignatureUTF; ++ JVM_GetCallerClass; ++ JVM_GetClassAccessFlags; ++ JVM_GetClassAnnotations; ++ JVM_GetClassCPEntriesCount; ++ JVM_GetClassCPTypes; ++ JVM_GetClassConstantPool; ++ JVM_GetClassContext; ++ JVM_GetClassDeclaredConstructors; ++ JVM_GetClassDeclaredFields; ++ JVM_GetClassDeclaredMethods; ++ JVM_GetClassFieldsCount; ++ JVM_GetClassInterfaces; ++ JVM_GetClassLoader; ++ JVM_GetClassMethodsCount; ++ JVM_GetClassModifiers; ++ JVM_GetClassName; ++ JVM_GetClassNameUTF; ++ JVM_GetClassSignature; ++ JVM_GetClassSigners; ++ JVM_GetClassTypeAnnotations; ++ JVM_GetComponentType; ++ JVM_GetDeclaredClasses; ++ JVM_GetDeclaringClass; ++ JVM_GetEnclosingMethodInfo; ++ JVM_GetFieldAnnotations; ++ JVM_GetFieldIxModifiers; ++ JVM_GetFieldTypeAnnotations; ++ JVM_GetHostName; ++ JVM_GetInheritedAccessControlContext; ++ JVM_GetInterfaceVersion; ++ JVM_GetLastErrorString; ++ JVM_GetManagement; ++ JVM_GetMethodAnnotations; ++ JVM_GetMethodDefaultAnnotationValue; ++ JVM_GetMethodIxArgsSize; ++ JVM_GetMethodIxByteCode; ++ JVM_GetMethodIxByteCodeLength; ++ JVM_GetMethodIxExceptionIndexes; ++ JVM_GetMethodIxExceptionTableEntry; ++ JVM_GetMethodIxExceptionTableLength; ++ JVM_GetMethodIxExceptionsCount; ++ JVM_GetMethodIxLocalsCount; ++ JVM_GetMethodIxMaxStack; ++ JVM_GetMethodIxModifiers; ++ JVM_GetMethodIxNameUTF; ++ JVM_GetMethodIxSignatureUTF; ++ JVM_GetMethodParameterAnnotations; ++ JVM_GetMethodParameters; ++ JVM_GetMethodTypeAnnotations; ++ JVM_GetPrimitiveArrayElement; ++ JVM_GetProtectionDomain; ++ JVM_GetSockName; ++ JVM_GetSockOpt; ++ JVM_GetStackAccessControlContext; ++ JVM_GetStackTraceDepth; ++ JVM_GetStackTraceElement; ++ JVM_GetSystemPackage; ++ JVM_GetSystemPackages; ++ JVM_GetTemporaryDirectory; ++ JVM_GetThreadStateNames; ++ JVM_GetThreadStateValues; ++ JVM_GetVersionInfo; ++ JVM_Halt; ++ JVM_HoldsLock; ++ JVM_IHashCode; ++ JVM_InitAgentProperties; ++ JVM_InitProperties; ++ JVM_InitializeCompiler; ++ JVM_InitializeSocketLibrary; ++ JVM_InternString; ++ JVM_Interrupt; ++ JVM_InvokeMethod; ++ JVM_IsArrayClass; ++ JVM_IsConstructorIx; ++ JVM_IsInterface; ++ JVM_IsInterrupted; ++ JVM_IsNaN; ++ JVM_IsPrimitiveClass; ++ JVM_IsSameClassPackage; ++ JVM_IsSilentCompiler; ++ JVM_IsSupportedJNIVersion; ++ JVM_IsThreadAlive; ++ JVM_IsVMGeneratedMethodIx; ++ JVM_LatestUserDefinedLoader; ++ JVM_Listen; ++ JVM_LoadClass0; ++ JVM_LoadLibrary; ++ JVM_Lseek; ++ JVM_MaxObjectInspectionAge; ++ JVM_MaxMemory; ++ JVM_MonitorNotify; ++ JVM_MonitorNotifyAll; ++ JVM_MonitorWait; ++ JVM_NanoTime; ++ JVM_NativePath; ++ JVM_NewArray; ++ JVM_NewInstanceFromConstructor; ++ JVM_NewMultiArray; ++ JVM_OnExit; ++ JVM_Open; ++ JVM_RaiseSignal; ++ JVM_RawMonitorCreate; ++ JVM_RawMonitorDestroy; ++ JVM_RawMonitorEnter; ++ JVM_RawMonitorExit; ++ JVM_Read; ++ JVM_Recv; ++ JVM_RecvFrom; ++ JVM_RegisterSignal; ++ JVM_ReleaseUTF; ++ JVM_ResolveClass; ++ JVM_ResumeThread; ++ JVM_Send; ++ JVM_SendTo; ++ JVM_SetArrayElement; ++ JVM_SetClassSigners; ++ JVM_SetLength; ++ JVM_SetNativeThreadName; ++ JVM_SetPrimitiveArrayElement; ++ JVM_SetSockOpt; ++ JVM_SetThreadPriority; ++ JVM_Sleep; ++ JVM_Socket; ++ JVM_SocketAvailable; ++ JVM_SocketClose; ++ JVM_SocketShutdown; ++ JVM_StartThread; ++ JVM_StopThread; ++ JVM_SuspendThread; ++ JVM_SupportsCX8; ++ JVM_Sync; ++ JVM_Timeout; ++ JVM_TotalMemory; ++ JVM_TraceInstructions; ++ JVM_TraceMethodCalls; ++ JVM_UnloadLibrary; ++ JVM_Write; ++ JVM_Yield; + JVM_handle_bsd_signal; # miscellaneous functions - jio_fprintf; ---- hotspot/make/bsd/makefiles/optimized.make -+++ hotspot/make/bsd/makefiles/optimized.make +- _jio_fprintf +- _jio_printf +- _jio_snprintf +- _jio_vfprintf +- _jio_vsnprintf ++ jio_fprintf; ++ jio_printf; ++ jio_snprintf; ++ jio_vfprintf; ++ jio_vsnprintf; ++ fork1; ++ numa_warn; ++ numa_error; + + # This is for Forte Analyzer profiling support. +- _AsyncGetCallTrace ++ AsyncGetCallTrace; + + # INSERT VTABLE SYMBOLS HERE + ++ local: ++ *; ++}; +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ ./hotspot/make/bsd/makefiles/mapfile-vers-product.macosx Wed Nov 05 15:01:44 2014 -0800 +@@ -0,0 +1,258 @@ ++# ++# Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved. ++# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++# ++# This code is free software; you can redistribute it and/or modify it ++# under the terms of the GNU General Public License version 2 only, as ++# published by the Free Software Foundation. ++# ++# This code is distributed in the hope that it will be useful, but WITHOUT ++# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++# version 2 for more details (a copy is included in the LICENSE file that ++# accompanied this code). ++# ++# You should have received a copy of the GNU General Public License version ++# 2 along with this work; if not, write to the Free Software Foundation, ++# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++# ++# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++# or visit www.oracle.com if you need additional information or have any ++# questions. ++# ++# ++# Only used for OSX/Darwin builds ++ ++# Define public interface. ++ # _JNI ++ _JNI_CreateJavaVM ++ _JNI_GetCreatedJavaVMs ++ _JNI_GetDefaultJavaVMInitArgs ++ ++ # _JVM ++ _JVM_Accept ++ _JVM_ActiveProcessorCount ++ _JVM_AllocateNewArray ++ _JVM_AllocateNewObject ++ _JVM_ArrayCopy ++ _JVM_AssertionStatusDirectives ++ _JVM_Available ++ _JVM_Bind ++ _JVM_ClassDepth ++ _JVM_ClassLoaderDepth ++ _JVM_Clone ++ _JVM_Close ++ _JVM_CX8Field ++ _JVM_CompileClass ++ _JVM_CompileClasses ++ _JVM_CompilerCommand ++ _JVM_Connect ++ _JVM_ConstantPoolGetClassAt ++ _JVM_ConstantPoolGetClassAtIfLoaded ++ _JVM_ConstantPoolGetDoubleAt ++ _JVM_ConstantPoolGetFieldAt ++ _JVM_ConstantPoolGetFieldAtIfLoaded ++ _JVM_ConstantPoolGetFloatAt ++ _JVM_ConstantPoolGetIntAt ++ _JVM_ConstantPoolGetLongAt ++ _JVM_ConstantPoolGetMethodAt ++ _JVM_ConstantPoolGetMethodAtIfLoaded ++ _JVM_ConstantPoolGetMemberRefInfoAt ++ _JVM_ConstantPoolGetSize ++ _JVM_ConstantPoolGetStringAt ++ _JVM_ConstantPoolGetUTF8At ++ _JVM_CountStackFrames ++ _JVM_CurrentClassLoader ++ _JVM_CurrentLoadedClass ++ _JVM_CurrentThread ++ _JVM_CurrentTimeMillis ++ _JVM_DefineClass ++ _JVM_DefineClassWithSource ++ _JVM_DefineClassWithSourceCond ++ _JVM_DesiredAssertionStatus ++ _JVM_DisableCompiler ++ _JVM_DoPrivileged ++ _JVM_DTraceGetVersion ++ _JVM_DTraceActivate ++ _JVM_DTraceIsProbeEnabled ++ _JVM_DTraceIsSupported ++ _JVM_DTraceDispose ++ _JVM_DumpAllStacks ++ _JVM_DumpThreads ++ _JVM_EnableCompiler ++ _JVM_Exit ++ _JVM_FillInStackTrace ++ _JVM_FindClassFromCaller ++ _JVM_FindClassFromClass ++ _JVM_FindClassFromClassLoader ++ _JVM_FindClassFromBootLoader ++ _JVM_FindLibraryEntry ++ _JVM_FindLoadedClass ++ _JVM_FindPrimitiveClass ++ _JVM_FindSignal ++ _JVM_FreeMemory ++ _JVM_GC ++ _JVM_GetAllThreads ++ _JVM_GetArrayElement ++ _JVM_GetArrayLength ++ _JVM_GetCPClassNameUTF ++ _JVM_GetCPFieldClassNameUTF ++ _JVM_GetCPFieldModifiers ++ _JVM_GetCPFieldNameUTF ++ _JVM_GetCPFieldSignatureUTF ++ _JVM_GetCPMethodClassNameUTF ++ _JVM_GetCPMethodModifiers ++ _JVM_GetCPMethodNameUTF ++ _JVM_GetCPMethodSignatureUTF ++ _JVM_GetCallerClass ++ _JVM_GetClassAccessFlags ++ _JVM_GetClassAnnotations ++ _JVM_GetClassCPEntriesCount ++ _JVM_GetClassCPTypes ++ _JVM_GetClassConstantPool ++ _JVM_GetClassContext ++ _JVM_GetClassDeclaredConstructors ++ _JVM_GetClassDeclaredFields ++ _JVM_GetClassDeclaredMethods ++ _JVM_GetClassFieldsCount ++ _JVM_GetClassInterfaces ++ _JVM_GetClassLoader ++ _JVM_GetClassMethodsCount ++ _JVM_GetClassModifiers ++ _JVM_GetClassName ++ _JVM_GetClassNameUTF ++ _JVM_GetClassSignature ++ _JVM_GetClassSigners ++ _JVM_GetClassTypeAnnotations ++ _JVM_GetComponentType ++ _JVM_GetDeclaredClasses ++ _JVM_GetDeclaringClass ++ _JVM_GetEnclosingMethodInfo ++ _JVM_GetFieldAnnotations ++ _JVM_GetFieldIxModifiers ++ _JVM_GetFieldTypeAnnotations ++ _JVM_GetHostName ++ _JVM_GetInheritedAccessControlContext ++ _JVM_GetInterfaceVersion ++ _JVM_GetLastErrorString ++ _JVM_GetManagement ++ _JVM_GetMethodAnnotations ++ _JVM_GetMethodDefaultAnnotationValue ++ _JVM_GetMethodIxArgsSize ++ _JVM_GetMethodIxByteCode ++ _JVM_GetMethodIxByteCodeLength ++ _JVM_GetMethodIxExceptionIndexes ++ _JVM_GetMethodIxExceptionTableEntry ++ _JVM_GetMethodIxExceptionTableLength ++ _JVM_GetMethodIxExceptionsCount ++ _JVM_GetMethodIxLocalsCount ++ _JVM_GetMethodIxMaxStack ++ _JVM_GetMethodIxModifiers ++ _JVM_GetMethodIxNameUTF ++ _JVM_GetMethodIxSignatureUTF ++ _JVM_GetMethodParameterAnnotations ++ _JVM_GetMethodParameters ++ _JVM_GetMethodTypeAnnotations ++ _JVM_GetPrimitiveArrayElement ++ _JVM_GetProtectionDomain ++ _JVM_GetSockName ++ _JVM_GetSockOpt ++ _JVM_GetStackAccessControlContext ++ _JVM_GetStackTraceDepth ++ _JVM_GetStackTraceElement ++ _JVM_GetSystemPackage ++ _JVM_GetSystemPackages ++ _JVM_GetTemporaryDirectory ++ _JVM_GetThreadStateNames ++ _JVM_GetThreadStateValues ++ _JVM_GetVersionInfo ++ _JVM_Halt ++ _JVM_HoldsLock ++ _JVM_IHashCode ++ _JVM_InitAgentProperties ++ _JVM_InitProperties ++ _JVM_InitializeCompiler ++ _JVM_InitializeSocketLibrary ++ _JVM_InternString ++ _JVM_Interrupt ++ _JVM_InvokeMethod ++ _JVM_IsArrayClass ++ _JVM_IsConstructorIx ++ _JVM_IsInterface ++ _JVM_IsInterrupted ++ _JVM_IsNaN ++ _JVM_IsPrimitiveClass ++ _JVM_IsSameClassPackage ++ _JVM_IsSilentCompiler ++ _JVM_IsSupportedJNIVersion ++ _JVM_IsThreadAlive ++ _JVM_IsVMGeneratedMethodIx ++ _JVM_LatestUserDefinedLoader ++ _JVM_Listen ++ _JVM_LoadClass0 ++ _JVM_LoadLibrary ++ _JVM_Lseek ++ _JVM_MaxObjectInspectionAge ++ _JVM_MaxMemory ++ _JVM_MonitorNotify ++ _JVM_MonitorNotifyAll ++ _JVM_MonitorWait ++ _JVM_NanoTime ++ _JVM_NativePath ++ _JVM_NewArray ++ _JVM_NewInstanceFromConstructor ++ _JVM_NewMultiArray ++ _JVM_OnExit ++ _JVM_Open ++ _JVM_RaiseSignal ++ _JVM_RawMonitorCreate ++ _JVM_RawMonitorDestroy ++ _JVM_RawMonitorEnter ++ _JVM_RawMonitorExit ++ _JVM_Read ++ _JVM_Recv ++ _JVM_RecvFrom ++ _JVM_RegisterSignal ++ _JVM_ReleaseUTF ++ _JVM_ResolveClass ++ _JVM_ResumeThread ++ _JVM_Send ++ _JVM_SendTo ++ _JVM_SetArrayElement ++ _JVM_SetClassSigners ++ _JVM_SetLength ++ _JVM_SetNativeThreadName ++ _JVM_SetPrimitiveArrayElement ++ _JVM_SetSockOpt ++ _JVM_SetThreadPriority ++ _JVM_Sleep ++ _JVM_Socket ++ _JVM_SocketAvailable ++ _JVM_SocketClose ++ _JVM_SocketShutdown ++ _JVM_StartThread ++ _JVM_StopThread ++ _JVM_SuspendThread ++ _JVM_SupportsCX8 ++ _JVM_Sync ++ _JVM_Timeout ++ _JVM_TotalMemory ++ _JVM_TraceInstructions ++ _JVM_TraceMethodCalls ++ _JVM_UnloadLibrary ++ _JVM_Write ++ _JVM_Yield ++ _JVM_handle_bsd_signal ++ ++ # miscellaneous functions ++ _jio_fprintf ++ _jio_printf ++ _jio_snprintf ++ _jio_vfprintf ++ _jio_vsnprintf ++ ++ # This is for Forte Analyzer profiling support. ++ _AsyncGetCallTrace ++ ++ # INSERT VTABLE SYMBOLS HERE ++ +--- ./hotspot/make/bsd/makefiles/optimized.make Mon Sep 08 12:35:01 2014 -0700 ++++ ./hotspot/make/bsd/makefiles/optimized.make Wed Nov 05 15:01:44 2014 -0800 @@ -38,6 +38,9 @@ # to inhibit the effect of the previous line on CFLAGS. @@ -428,8 +2182,8 @@ +MAPFILE = $(GAMMADIR)/make/bsd/makefiles/mapfile-vers-debug$(MAPSUFX) VERSION = optimized ---- hotspot/make/bsd/makefiles/product.make -+++ hotspot/make/bsd/makefiles/product.make +--- ./hotspot/make/bsd/makefiles/product.make Mon Sep 08 12:35:01 2014 -0700 ++++ ./hotspot/make/bsd/makefiles/product.make Wed Nov 05 15:01:44 2014 -0800 @@ -38,7 +38,10 @@ # to inhibit the effect of the previous line on CFLAGS. @@ -442,8 +2196,8 @@ SYSDEFS += -DPRODUCT VERSION = optimized ---- hotspot/make/bsd/makefiles/rules.make -+++ hotspot/make/bsd/makefiles/rules.make +--- ./hotspot/make/bsd/makefiles/rules.make Mon Sep 08 12:35:01 2014 -0700 ++++ ./hotspot/make/bsd/makefiles/rules.make Wed Nov 05 15:01:44 2014 -0800 @@ -34,7 +34,7 @@ CC_COMPILE = $(CC) $(CXXFLAGS) $(CFLAGS) CXX_COMPILE = $(CXX) $(CXXFLAGS) $(CFLAGS) @@ -453,22 +2207,8 @@ COMPILE.CC = $(CC_COMPILE) -c GENASM.CC = $(CC_COMPILE) -S ---- hotspot/src/cpu/x86/vm/globals_x86.hpp -+++ hotspot/src/cpu/x86/vm/globals_x86.hpp -@@ -70,11 +70,7 @@ - define_pd_global(bool, RewriteBytecodes, true); - define_pd_global(bool, RewriteFrequentPairs, true); - --#ifdef _ALLBSD_SOURCE --define_pd_global(bool, UseMembar, true); --#else - define_pd_global(bool, UseMembar, false); --#endif - - // GC Ergo Flags - define_pd_global(uintx, CMSYoungGenPerWorker, 64*M); // default max size of CMS young gen, per GC worker thread ---- hotspot/src/cpu/x86/vm/jni_x86.h -+++ hotspot/src/cpu/x86/vm/jni_x86.h +--- ./hotspot/src/cpu/x86/vm/jni_x86.h Mon Sep 08 12:35:01 2014 -0700 ++++ ./hotspot/src/cpu/x86/vm/jni_x86.h Wed Nov 05 15:01:44 2014 -0800 @@ -34,7 +34,7 @@ #ifndef __has_attribute #define __has_attribute(x) 0 @@ -478,34 +2218,8 @@ #define JNIEXPORT __attribute__((visibility("default"))) #define JNIIMPORT __attribute__((visibility("default"))) #else ---- hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp -+++ hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp -@@ -107,10 +107,6 @@ - return Address(rsp, Interpreter::expr_offset_in_bytes(2)); - } - --static inline Address at_tos_p3() { -- return Address(rsp, Interpreter::expr_offset_in_bytes(3)); --} -- - // Condition conversion - static Assembler::Condition j_not(TemplateTable::Condition cc) { - switch (cc) { ---- hotspot/src/cpu/x86/vm/x86_32.ad -+++ hotspot/src/cpu/x86/vm/x86_32.ad -@@ -1201,8 +1201,9 @@ - if( dst_second_rc == rc_int && src_second_rc == rc_stack ) - return impl_helper(cbuf,do_size,true ,ra_->reg2offset(src_second),dst_second,0x8B,"MOV ",size, st); - -- -+ assert(0," foo "); - Unimplemented(); -+ return 0; - } - - #ifndef PRODUCT ---- hotspot/src/os/bsd/vm/decoder_bsd.cpp -+++ hotspot/src/os/bsd/vm/decoder_bsd.cpp +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ ./hotspot/src/os/bsd/vm/decoder_bsd.cpp Wed Nov 05 15:01:44 2014 -0800 @@ -0,0 +1,47 @@ +/* + * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. @@ -554,25 +2268,22 @@ + return false; +} +#endif ---- hotspot/src/os/bsd/vm/jsig.c -+++ hotspot/src/os/bsd/vm/jsig.c -@@ -140,9 +140,13 @@ +--- ./hotspot/src/os/bsd/vm/jsig.c Mon Sep 08 12:35:01 2014 -0700 ++++ ./hotspot/src/os/bsd/vm/jsig.c Wed Nov 05 15:01:44 2014 -0800 +@@ -140,9 +140,8 @@ } sa_handler_t sigset(int sig, sa_handler_t disp) { -+#ifdef __FreeBSD__ -+ return set_signal(sig, disp, true); -+#else - printf("sigset() is not supported by BSD"); - exit(0); +- printf("sigset() is not supported by BSD"); +- exit(0); - } -+#endif ++ return set_signal(sig, disp, true); +} static int call_os_sigaction(int sig, const struct sigaction *act, struct sigaction *oact) { ---- hotspot/src/os/bsd/vm/jvm_bsd.cpp -+++ hotspot/src/os/bsd/vm/jvm_bsd.cpp +--- ./hotspot/src/os/bsd/vm/jvm_bsd.cpp Mon Sep 08 12:35:01 2014 -0700 ++++ ./hotspot/src/os/bsd/vm/jvm_bsd.cpp Wed Nov 05 15:01:44 2014 -0800 @@ -50,6 +50,7 @@ case INTERRUPT_SIGNAL: case SIGFPE: @@ -682,8 +2393,8 @@ + jio_snprintf(buf, len, "SIG%s", signame); + return true; } ---- hotspot/src/os/bsd/vm/jvm_bsd.h -+++ hotspot/src/os/bsd/vm/jvm_bsd.h +--- ./hotspot/src/os/bsd/vm/jvm_bsd.h Mon Sep 08 12:35:01 2014 -0700 ++++ ./hotspot/src/os/bsd/vm/jvm_bsd.h Wed Nov 05 15:01:44 2014 -0800 @@ -112,20 +112,6 @@ #define SHUTDOWN2_SIGNAL SIGINT #define SHUTDOWN3_SIGNAL SIGTERM @@ -705,8 +2416,8 @@ #endif /* JVM_MD_H */ #endif // OS_BSD_VM_JVM_BSD_H ---- hotspot/src/os/bsd/vm/osThread_bsd.cpp -+++ hotspot/src/os/bsd/vm/osThread_bsd.cpp +--- ./hotspot/src/os/bsd/vm/osThread_bsd.cpp Mon Sep 08 12:35:01 2014 -0700 ++++ ./hotspot/src/os/bsd/vm/osThread_bsd.cpp Wed Nov 05 15:01:44 2014 -0800 @@ -30,7 +30,7 @@ void OSThread::pd_initialize() { @@ -716,8 +2427,8 @@ _thread_id = 0; #else _thread_id = NULL; ---- hotspot/src/os/bsd/vm/os_bsd.cpp -+++ hotspot/src/os/bsd/vm/os_bsd.cpp +--- ./hotspot/src/os/bsd/vm/os_bsd.cpp Mon Sep 08 12:35:01 2014 -0700 ++++ ./hotspot/src/os/bsd/vm/os_bsd.cpp Wed Nov 05 15:01:44 2014 -0800 @@ -102,6 +102,16 @@ # include <sys/ioctl.h> # include <sys/syscall.h> @@ -735,7 +2446,7 @@ #if defined(__FreeBSD__) || defined(__NetBSD__) # include <elf.h> #endif -@@ -161,6 +171,28 @@ +@@ -168,6 +178,27 @@ // available here means free julong os::Bsd::available_memory() { @@ -749,8 +2460,7 @@ + julong free_pages; + u_int i, npages; + -+ for (i = 0, free_pages = 0; i < sizeof(vm_stats) / sizeof(vm_stats[0]); i++) -+{ ++ for (i = 0, free_pages = 0; i < sizeof(vm_stats) / sizeof(vm_stats[0]); i++) { + size = sizeof(npages); + if (sysctlbyname(vm_stats[i], &npages, &size, NULL, 0) == -1) { + free_pages = 0; @@ -764,7 +2474,7 @@ uint64_t available = physical_memory() >> 2; #ifdef __APPLE__ mach_msg_type_number_t count = HOST_VM_INFO64_COUNT; -@@ -200,7 +232,7 @@ +@@ -207,7 +238,7 @@ static bool init = false; static bool privileges = false; if (!init) { @@ -773,48 +2483,29 @@ init = true; } return privileges; -@@ -240,6 +272,19 @@ - - - void os::Bsd::initialize_system_info() { -+#ifdef __FreeBSD__ -+ int cpu_val = sysconf(_SC_NPROCESSORS_CONF); -+ if (cpu_val >= 1) -+ set_processor_count(cpu_val); -+ else -+ set_processor_count(1); // fallback -+ -+ long phys_pages = sysconf(_SC_PHYS_PAGES); -+ if (phys_pages > 0) -+ _physical_memory = (julong)phys_pages * _page_size; -+ else -+ _physical_memory = 256*M; // fallback -+#else - int mib[2]; - size_t len; - int cpu_val; -@@ -289,6 +334,7 @@ - _physical_memory = MIN2(_physical_memory, (julong)limits.rlim_cur); - } - #endif -+#endif - } - - #ifdef __APPLE__ -@@ -434,8 +480,12 @@ - #else - ld_library_path = (char *) malloc(sizeof(REG_DIR) + sizeof("/lib/") + - strlen(cpu_arch) + sizeof(DEFAULT_LIBPATH)); -+#ifdef __FreeBSD__ -+ sprintf(ld_library_path, DEFAULT_LIBPATH ":" PACKAGE_PATH "/lib"); +@@ -410,12 +441,21 @@ + const char *v = ::getenv("LD_LIBRARY_PATH"); + const char *v_colon = ":"; + if (v == NULL) { v = ""; v_colon = ""; } ++#ifdef __APPLE__ + // That's +1 for the colon and +1 for the trailing '\0'. + char *ld_library_path = (char *)NEW_C_HEAP_ARRAY(char, + strlen(v) + 1 + + sizeof(SYS_EXT_DIR) + sizeof("/lib/") + strlen(cpu_arch) + sizeof(DEFAULT_LIBPATH) + 1, + mtInternal); + sprintf(ld_library_path, "%s%s" SYS_EXT_DIR "/lib/%s:" DEFAULT_LIBPATH, v, v_colon, cpu_arch); +#else - sprintf(ld_library_path, REG_DIR "/lib/%s:" DEFAULT_LIBPATH, cpu_arch); - #endif ++ // That's +1 for the colon and +1 for the trailing '\0'. ++ char *ld_library_path = (char *)NEW_C_HEAP_ARRAY(char, ++ strlen(v) + 1 + ++ sizeof(PACKAGE_PATH) + sizeof("/lib") + 1, ++ mtInternal); ++ sprintf(ld_library_path, "%s%s" PACKAGE_PATH "/lib", v, v_colon); +#endif - - /* - * Get the user setting of LD_LIBRARY_PATH, and prepended it. It -@@ -1148,7 +1198,13 @@ + Arguments::set_library_path(ld_library_path); + FREE_C_HEAP_ARRAY(char, ld_library_path, mtInternal); + } +@@ -1197,7 +1237,13 @@ return retval; #elif __FreeBSD__ @@ -829,7 +2520,7 @@ #elif __OpenBSD__ retval = syscall(SYS_getthrid); #elif __NetBSD__ -@@ -1158,11 +1214,14 @@ +@@ -1207,11 +1253,14 @@ if (retval == -1) { return getpid(); } @@ -845,32 +2536,7 @@ #else return (intx)::pthread_self(); #endif -@@ -1562,24 +1621,6 @@ - return dlsym(handle, name); - } - -- --static bool _print_ascii_file(const char* filename, outputStream* st) { -- int fd = ::open(filename, O_RDONLY); -- if (fd == -1) { -- return false; -- } -- -- char buf[32]; -- int bytes; -- while ((bytes = ::read(fd, buf, sizeof(buf))) > 0) { -- st->print_raw(buf, bytes); -- } -- -- ::close(fd); -- -- return true; --} -- - void os::print_dll_info(outputStream *st) { - st->print_cr("Dynamic libraries:"); - #ifdef RTLD_DI_LINKMAP -@@ -1629,14 +1670,14 @@ +@@ -1689,14 +1738,14 @@ } void os::print_os_info_brief(outputStream* st) { @@ -887,7 +2553,7 @@ os::Posix::print_uname_info(st); -@@ -1649,6 +1690,29 @@ +@@ -1709,6 +1758,29 @@ // Nothing to do for now. } @@ -917,7 +2583,7 @@ void os::print_memory_info(outputStream* st) { st->print("Memory:"); -@@ -1658,11 +1722,14 @@ +@@ -1718,11 +1790,14 @@ os::physical_memory() >> 10); st->print("(" UINT64_FORMAT "k free)", os::available_memory() >> 10); @@ -937,25 +2603,7 @@ st->cr(); } -@@ -1675,7 +1742,7 @@ - - const char *fpe_names[] = { "FPE0", "FPE_INTDIV", "FPE_INTOVF", "FPE_FLTDIV", - "FPE_FLTOVF", "FPE_FLTUND", "FPE_FLTRES", -- "FPE_FLTINV", "FPE_FLTSUB", "FPE_FLTDEN" }; -+ "FPE_FLTINV", "FPE_FLTSUB" }; - - const char *segv_names[] = { "SEGV0", "SEGV_MAPERR", "SEGV_ACCERR" }; - -@@ -1701,7 +1768,7 @@ - st->print(", si_addr=" PTR_FORMAT, si->si_addr); - break; - case SIGFPE: -- st->print(", si_code=%d (%s)", c, c > 9 ? "" : fpe_names[c]); -+ st->print(", si_code=%d (%s)", c, c > 8 ? "" : fpe_names[c]); - st->print(", si_addr=" PTR_FORMAT, si->si_addr); - break; - case SIGSEGV: -@@ -1943,7 +2010,7 @@ +@@ -1958,7 +2033,7 @@ os_semaphore_t _semaphore; }; @@ -964,7 +2612,7 @@ SEM_INIT(_semaphore, 0); } -@@ -2128,7 +2195,7 @@ +@@ -2146,7 +2221,7 @@ if (::write(fd, "", 1) == 1) { mmap(base, size, PROT_READ|PROT_WRITE|PROT_EXEC, @@ -973,7 +2621,7 @@ } } ::close(fd); -@@ -2238,7 +2305,7 @@ +@@ -2256,7 +2331,7 @@ return ::mprotect(addr, size, PROT_NONE) == 0; #else uintptr_t res = (uintptr_t) ::mmap(addr, size, PROT_NONE, @@ -982,7 +2630,7 @@ return res != (uintptr_t) MAP_FAILED; #endif } -@@ -2265,7 +2332,7 @@ +@@ -2283,7 +2358,7 @@ char * addr; int flags; @@ -991,7 +2639,7 @@ if (fixed) { assert((uintptr_t)requested_addr % os::Bsd::page_size() == 0, "unaligned address"); flags |= MAP_FIXED; -@@ -2743,6 +2810,7 @@ +@@ -2770,6 +2845,7 @@ return OS_OK; #elif defined(__FreeBSD__) int ret = pthread_setprio(thread->osthread()->pthread_id(), newpri); @@ -999,7 +2647,7 @@ #elif defined(__APPLE__) || defined(__NetBSD__) struct sched_param sp; int policy; -@@ -3340,18 +3408,6 @@ +@@ -3364,18 +3440,6 @@ } } @@ -1018,7 +2666,7 @@ static const char* get_signal_handler_name(address handler, char* buf, int buflen) { int offset; -@@ -3375,9 +3431,6 @@ +@@ -3399,9 +3463,6 @@ sigaction(sig, NULL, &sa); @@ -1028,7 +2676,7 @@ st->print("%s: ", os::exception_name(sig, buf, buflen)); address handler = (sa.sa_flags & SA_SIGINFO) -@@ -3398,7 +3451,7 @@ +@@ -3423,7 +3484,7 @@ // May be, handler was resetted by VMError? if(rh != NULL) { handler = rh; @@ -1036,8 +2684,8 @@ + sa.sa_flags = VMError::get_resetted_sigflags(sig); } - st->print(", sa_flags=" PTR32_FORMAT, sa.sa_flags); -@@ -3473,8 +3526,6 @@ + st->print(", sa_flags="); +@@ -3499,8 +3560,6 @@ os_sigaction(sig, (struct sigaction*)NULL, &act); @@ -1046,7 +2694,7 @@ address thisHandler = (act.sa_flags & SA_SIGINFO) ? CAST_FROM_FN_PTR(address, act.sa_sigaction) : CAST_FROM_FN_PTR(address, act.sa_handler) ; -@@ -3534,6 +3585,14 @@ +@@ -3560,6 +3619,14 @@ extern bool signal_name(int signo, char* buf, size_t len); @@ -1061,7 +2709,7 @@ const char* os::exception_name(int exception_code, char* buf, size_t size) { if (0 < exception_code && exception_code <= SIGRTMAX) { // signal -@@ -3733,6 +3792,19 @@ +@@ -3759,6 +3826,19 @@ }; int os::active_processor_count() { @@ -1081,7 +2729,7 @@ return _processor_count; } -@@ -3943,7 +4015,10 @@ +@@ -3970,7 +4050,10 @@ } int fd; int o_delete = (oflag & O_DELETE); @@ -1093,7 +2741,7 @@ fd = ::open(path, oflag, mode); if (fd == -1) return -1; -@@ -3988,7 +4063,7 @@ +@@ -4015,7 +4098,7 @@ * 4843136: (process) pipe file descriptor from Runtime.exec not being closed * 6339493: (process) Runtime.exec does not close all file descriptors on Solaris 9 */ @@ -1102,8 +2750,8 @@ { int flags = ::fcntl(fd, F_GETFD); if (flags != -1) ---- hotspot/src/os/bsd/vm/vmError_bsd.cpp -+++ hotspot/src/os/bsd/vm/vmError_bsd.cpp +--- ./hotspot/src/os/bsd/vm/vmError_bsd.cpp Mon Sep 08 12:35:01 2014 -0700 ++++ ./hotspot/src/os/bsd/vm/vmError_bsd.cpp Wed Nov 05 15:01:44 2014 -0800 @@ -44,7 +44,7 @@ jio_snprintf(p, buflen - len, "\n\n" @@ -1122,50 +2770,9 @@ os::current_process_id(), os::current_process_id()); os::fork_and_exec(buf); ---- hotspot/src/os_cpu/bsd_x86/vm/globals_bsd_x86.hpp -+++ hotspot/src/os_cpu/bsd_x86/vm/globals_bsd_x86.hpp -@@ -42,7 +42,6 @@ - #endif // AMD64 - - define_pd_global(intx, CompilerThreadStackSize, 0); --define_pd_global(uintx, SurvivorRatio, 8); - - define_pd_global(uintx, JVMInvokeMethodSlack, 8192); - ---- hotspot/src/share/vm/code/relocInfo.hpp -+++ hotspot/src/share/vm/code/relocInfo.hpp -@@ -364,7 +364,7 @@ - // "immediate" in the prefix header word itself. This optimization - // is invisible outside this module.) - -- inline friend relocInfo prefix_relocInfo(int datalen = 0); -+ inline friend relocInfo prefix_relocInfo(int datalen); - - protected: - // an immediate relocInfo optimizes a prefix with one 10-bit unsigned value -@@ -459,7 +459,7 @@ - return relocInfo(relocInfo::none, relocInfo::offset_limit() - relocInfo::offset_unit); - } - --inline relocInfo prefix_relocInfo(int datalen) { -+inline relocInfo prefix_relocInfo(int datalen = 0) { - assert(relocInfo::fits_into_immediate(datalen), "datalen in limits"); - return relocInfo(relocInfo::data_prefix_tag, relocInfo::RAW_BITS, relocInfo::datalen_tag | datalen); - } ---- hotspot/src/share/vm/gc_implementation/shared/gcTraceSend.cpp -+++ hotspot/src/share/vm/gc_implementation/shared/gcTraceSend.cpp -@@ -110,7 +110,7 @@ - if (e.should_commit()) { - e.set_gcId(_shared_gc_info.id()); - e.set_data(to_trace_struct(pf_info)); -- e.set_thread(pf_info.thread()->thread_id()); -+ e.set_thread((uintptr_t) pf_info.thread()->thread_id()); - e.commit(); - } - } ---- hotspot/src/share/vm/opto/node.cpp -+++ hotspot/src/share/vm/opto/node.cpp -@@ -285,6 +285,10 @@ +--- ./hotspot/src/share/vm/opto/node.cpp Mon Sep 08 12:35:01 2014 -0700 ++++ ./hotspot/src/share/vm/opto/node.cpp Wed Nov 05 15:01:44 2014 -0800 +@@ -286,6 +286,10 @@ #ifdef _MSC_VER // the IDX_INIT hack falls foul of warning C4355 #pragma warning( disable:4355 ) // 'this' : used in base member initializer list #endif @@ -1176,7 +2783,7 @@ // Out-of-line code from node constructors. // Executed only when extra debug info. is being passed around. -@@ -468,6 +472,10 @@ +@@ -469,6 +473,10 @@ _in[6] = n6; if (n6 != NULL) n6->add_out((Node *)this); } @@ -1187,45 +2794,8 @@ //------------------------------clone------------------------------------------ // Clone a Node. ---- hotspot/src/share/vm/prims/jvmtiTagMap.cpp -+++ hotspot/src/share/vm/prims/jvmtiTagMap.cpp -@@ -2790,6 +2790,7 @@ - return true; - } - -+#ifdef ASSERT - // verify that a static oop field is in range - static inline bool verify_static_oop(InstanceKlass* ik, - oop mirror, int offset) { -@@ -2804,6 +2805,7 @@ - return false; - } - } -+#endif // #ifdef ASSERT - - // a class references its super class, interfaces, class loader, ... - // and finally its static fields ---- hotspot/src/share/vm/runtime/mutex.cpp -+++ hotspot/src/share/vm/runtime/mutex.cpp -@@ -280,16 +280,6 @@ - return x & 0x7FFFFFFF ; - } - --static inline jint MarsagliaXOR (jint * const a) { -- jint x = *a ; -- if (x == 0) x = UNS(a)|1 ; -- x ^= x << 6; -- x ^= ((unsigned)x) >> 21; -- x ^= x << 7 ; -- *a = x ; -- return x & 0x7FFFFFFF ; --} -- - static int Stall (int its) { - static volatile jint rv = 1 ; - volatile int OnFrame = 0 ; ---- hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp -+++ hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp +--- ./hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp Mon Sep 08 12:35:01 2014 -0700 ++++ ./hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp Wed Nov 05 15:01:44 2014 -0800 @@ -261,7 +261,7 @@ #endif @@ -1235,19 +2805,40 @@ #define CAN_USE_NAN_DEFINE 1 #endif ---- jdk/make/CompileDemos.gmk -+++ jdk/make/CompileDemos.gmk -@@ -313,7 +313,7 @@ - $(eval $(call SetupJVMTIDemo,heapViewer, agent_util)) +--- ./jaxp/.hgtags Mon Sep 08 12:36:00 2014 -0700 ++++ ./jaxp/.hgtags Wed Sep 17 11:56:44 2014 -0700 +@@ -331,3 +331,4 @@ + 90f3b8b970a8bb3173083111248372afdc61652d jdk8u25-b14 + f5ac2e242bb95be0a3deddf37362178202086137 jdk8u25-b15 + df68b132a471ed1e825a79bd1d8acb47d2bcc04f jdk8u25-b16 ++7a721e57b38ff6c1d34af0b86f6482540a815d90 jdk8u25-b17 +--- ./jaxws/.hgtags Mon Sep 08 12:36:09 2014 -0700 ++++ ./jaxws/.hgtags Wed Sep 17 11:56:51 2014 -0700 +@@ -329,3 +329,4 @@ + 392a9579cc95d27806c1dde16eee776524a49761 jdk8u25-b14 + d3a96bbb88521188a3af1a34dd9523f13afa521d jdk8u25-b15 + 4570a7d00aa9bd3df028f52d6f9d8c434163b689 jdk8u25-b16 ++d47a47f961ee423ce03623098f62d79254c6f328 jdk8u25-b17 +--- ./jdk/.hgtags Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/.hgtags Wed Nov 05 12:14:24 2014 -0800 +@@ -332,3 +332,4 @@ + 0000000000000000000000000000000000000000 jdk8u25-b16 + 0000000000000000000000000000000000000000 jdk8u25-b16 + d067890f970f3a712f870f6311d20f3359b6eaf0 jdk8u25-b16 ++67b22a82345bfa1ae1492679bdf3c4d54f4eacde jdk8u25-b17 +--- ./jdk/make/CompileDemos.gmk Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/make/CompileDemos.gmk Wed Nov 05 12:14:24 2014 -0800 +@@ -323,7 +323,7 @@ $(eval $(call SetupJVMTIDemo,hprof, java_crw_demo, \ - -I$(JDK_TOPDIR)/src/share/npt -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/npt, C, \ -- -ldl, ws2_32.lib winmm.lib, -lsocket -lnsl, -lpthread)) -+ $(LIBDL), ws2_32.lib winmm.lib, -lsocket -lnsl, -lpthread)) + -I$(JDK_TOPDIR)/src/share/npt -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/npt \ + $(BUILD_LIBHPROF_AIX_EXTRA_CFLAGS), C, \ +- -ldl, ws2_32.lib winmm.lib, -lsocket -lnsl, -lpthread, $(BUILD_LIBHPROF_AIX_EXTRA_SRC))) ++ $(LIBDL), ws2_32.lib winmm.lib, -lsocket -lnsl, -lpthread, $(BUILD_LIBHPROF_AIX_EXTRA_SRC))) $(eval $(call SetupJVMTIDemo,minst, agent_util java_crw_demo)) $(eval $(call SetupJVMTIDemo,mtrace, agent_util java_crw_demo)) ---- jdk/make/CompileJavaClasses.gmk -+++ jdk/make/CompileJavaClasses.gmk +--- ./jdk/make/CompileJavaClasses.gmk Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/make/CompileJavaClasses.gmk Wed Nov 05 12:14:24 2014 -0800 @@ -125,23 +125,32 @@ sun/nio/fs/LinuxFileStore.java \ sun/nio/fs/LinuxFileSystem.java \ @@ -1285,19 +2876,19 @@ sun/tools/attach/BsdAttachProvider.java \ sun/tools/attach/BsdVirtualMachine.java endif -@@ -217,9 +226,9 @@ +@@ -228,9 +237,9 @@ # Exclude another implicitly not included file. EXFILES += sun/util/locale/AsciiUtil.java --ifeq (, $(filter $(OPENJDK_TARGET_OS), solaris macosx)) -+ifeq (, $(filter $(OPENJDK_TARGET_OS), solaris bsd macosx)) +-ifeq (, $(filter $(OPENJDK_TARGET_OS), solaris macosx aix)) ++ifeq (, $(filter $(OPENJDK_TARGET_OS), solaris bsd macosx aix)) # -- # only solaris and macosx -+ # only solaris and BSD +- # only solaris, macosx and aix ++ # only solaris, BSD, macosx and aix # EXFILES += sun/nio/fs/PollingWatchService.java endif -@@ -259,21 +268,26 @@ +@@ -270,21 +279,26 @@ $(JDK_TOPDIR)/src/closed/$(OPENJDK_TARGET_OS_API_DIR)/classes endif @@ -1331,16 +2922,15 @@ endif # The security classes should not end up in the classes directory as that will prevent them -@@ -312,7 +326,7 @@ - SETUP:=GENERATE_JDKBYTECODE,\ +@@ -334,6 +348,7 @@ SRC:=$(JDK_TOPDIR)/src/share/classes \ $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/classes \ -- $(MACOSX_SRC_DIRS) \ + $(MACOSX_SRC_DIRS) \ + $(BSD_SRC_DIRS) \ + $(AIX_SRC_DIRS) \ $(JDK_OUTPUTDIR)/gensrc \ $(JDK_OUTPUTDIR)/gensrc_no_srczip \ - $(CLOSED_SRC_DIRS),\ -@@ -331,7 +345,7 @@ +@@ -353,7 +368,7 @@ SETUP := GENERATE_JDKBYTECODE, \ SRC := $(JDK_TOPDIR)/src/share/classes \ $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/classes \ @@ -1349,8 +2939,8 @@ $(CLOSED_SRC_DIRS), \ INCLUDES := $(SECURITY_PKGS), \ EXCLUDES := $(EXCLUDES), \ ---- jdk/make/CompileLaunchers.gmk -+++ jdk/make/CompileLaunchers.gmk +--- ./jdk/make/CompileLaunchers.gmk Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/make/CompileLaunchers.gmk Wed Nov 05 12:14:24 2014 -0800 @@ -49,7 +49,7 @@ ORIGIN_ROOT := /.. endif @@ -1382,7 +2972,7 @@ ifeq ($(OPENJDK_TARGET_OS), macosx) $1_PLIST_FILE := Info-cmdline.plist ifneq ($(11), ) -@@ -147,9 +153,11 @@ +@@ -162,9 +168,11 @@ -DLIBARCHNAME='"$(OPENJDK_TARGET_CPU_LEGACY)"' \ -DLAUNCHER_NAME='"$(LAUNCHER_NAME)"' \ -DPROGNAME='"$1"' $(DPACKAGEPATH) \ @@ -1394,24 +2984,24 @@ LDFLAGS := $(LDFLAGS_JDKEXE) \ $(ORIGIN_ARG) \ $$($1_LDFLAGS), \ -@@ -180,7 +188,7 @@ +@@ -195,7 +203,7 @@ BUILD_LAUNCHERS += $$(BUILD_LAUNCHER_$1) -- ifeq ($(OPENJDK_TARGET_OS), macosx) -+ ifneq ($(findstring $(OPENJDK_TARGET_OS), bsd macosx), ) +- ifneq (,$(filter $(OPENJDK_TARGET_OS), macosx aix)) ++ ifneq (,$(filter $(OPENJDK_TARGET_OS), bsd macosx aix)) $$(BUILD_LAUNCHER_$1): $(JDK_OUTPUTDIR)/objs/libjli_static.a endif -@@ -456,6 +464,7 @@ +@@ -481,6 +489,7 @@ CFLAGS_release := -DPRODUCT, \ CFLAGS_linux := -fPIC, \ CFLAGS_solaris := -KPIC, \ + CFLAGS_bsd := -fPIC, \ CFLAGS_macosx := -fPIC, \ - MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libunpack/mapfile-vers-unpack200, \ + MAPFILE := $(UNPACK_MAPFILE),\ LDFLAGS := $(UNPACKEXE_ZIPOBJS), \ -@@ -518,7 +527,7 @@ +@@ -543,7 +552,7 @@ endif endif @@ -1420,7 +3010,7 @@ BUILD_JEXEC := 1 endif # OPENJDK_TARGET_OS -@@ -554,6 +563,7 @@ +@@ -579,6 +588,7 @@ $(BUILD_JEXEC_INC), \ CFLAGS_linux := -fPIC, \ CFLAGS_solaris := -KPIC, \ @@ -1428,7 +3018,7 @@ LDFLAGS := $(LDFLAGS_JDKEXE) \ $(call SET_SHARED_LIBRARY_NAME,$(LIBRARY_PREFIX)$(SHARED_LIBRARY_SUFFIX)), \ OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/jexec_obj, \ -@@ -570,10 +580,7 @@ +@@ -595,10 +605,7 @@ # The java-rmi.cgi script in bin/ only gets delivered in certain situations # JAVA_RMI_CGI := $(JDK_OUTPUTDIR)/bin$(OUTPUT_SUBDIR)/java-rmi.cgi @@ -1440,17 +3030,17 @@ BUILD_LAUNCHERS += $(JAVA_RMI_CGI) endif -@@ -601,7 +608,7 @@ +@@ -626,7 +633,7 @@ LINK_JSPAWNHELPER_OBJECTS := $(JDK_OUTPUTDIR)/objs/libjava/childproc.o LINK_JSPAWNHELPER_FLAGS := --ifneq ($(findstring $(OPENJDK_TARGET_OS), macosx solaris), ) -+ifneq ($(findstring $(OPENJDK_TARGET_OS), macosx solaris bsd), ) +-ifneq ($(findstring $(OPENJDK_TARGET_OS), macosx solaris aix), ) ++ifneq ($(findstring $(OPENJDK_TARGET_OS), bsd macosx solaris aix), ) BUILD_JSPAWNHELPER := 1 endif ---- jdk/make/CopyFiles.gmk -+++ jdk/make/CopyFiles.gmk +--- ./jdk/make/CopyFiles.gmk Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/make/CopyFiles.gmk Wed Nov 05 12:14:24 2014 -0800 @@ -29,6 +29,8 @@ ifeq ($(OPENJDK_TARGET_OS), windows) @@ -1493,8 +3083,8 @@ endif endif endif ---- jdk/make/Images.gmk -+++ jdk/make/Images.gmk +--- ./jdk/make/Images.gmk Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/make/Images.gmk Wed Nov 05 12:14:24 2014 -0800 @@ -234,11 +234,11 @@ endif @@ -1532,7 +3122,7 @@ $(ECHO) $(LOG_INFO) Creating $(patsubst $(OUTPUT_ROOT)/%,%,$@) $(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja - endif -- + - ifeq ($(OPENJDK_TARGET_OS), macosx) - $(JRE_IMAGE_DIR)/man/ja: - $(ECHO) $(LOG_INFO) Creating $(patsubst $(OUTPUT_ROOT)/%,%,$@) @@ -1542,7 +3132,7 @@ - $(ECHO) $(LOG_INFO) Creating $(patsubst $(OUTPUT_ROOT)/%,%,$@) - $(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja - endif - +- - ifeq ($(OPENJDK_TARGET_OS), linux) JRE_MAN_PAGE_LIST = $(addprefix $(JRE_IMAGE_DIR)/man/man1/, $(JRE_MAN_PAGES)) \ $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JRE_MAN_PAGES)) \ @@ -1564,8 +3154,8 @@ endif # Windows ################################################################################ ---- jdk/make/data/classlist/classlist.bsd -+++ jdk/make/data/classlist/classlist.bsd +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ ./jdk/make/data/classlist/classlist.bsd Wed Nov 05 12:14:24 2014 -0800 @@ -0,0 +1,2803 @@ +com/sun/java/swing/SwingUtilities3 +com/sun/java/swing/plaf/windows/WindowsTabbedPaneUI @@ -4370,10 +5960,10 @@ +sun/util/resources/en/TimeZoneNames_en +sun/util/spi/CalendarProvider +# ca392e7ee7285d72 ---- jdk/make/gendata/GendataFontConfig.gmk -+++ jdk/make/gendata/GendataFontConfig.gmk -@@ -66,6 +66,13 @@ - GENDATA_FONT_CONFIG_SRC_PREFIX := macosx. +--- ./jdk/make/gendata/GendataFontConfig.gmk Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/make/gendata/GendataFontConfig.gmk Wed Nov 05 12:14:24 2014 -0800 +@@ -73,6 +73,13 @@ + GENDATA_FONT_CONFIG_SRC_PREFIX := aix. endif +ifeq ($(OPENJDK_TARGET_OS), bsd) @@ -4386,8 +5976,8 @@ ### $(GENDATA_FONT_CONFIG_DST)/%.src: \ ---- jdk/make/gensrc/GensrcMisc.gmk -+++ jdk/make/gensrc/GensrcMisc.gmk +--- ./jdk/make/gensrc/GensrcMisc.gmk Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/make/gensrc/GensrcMisc.gmk Wed Nov 05 12:14:24 2014 -0800 @@ -64,9 +64,6 @@ ifeq ($(OPENJDK_TARGET_OS_API), posix) @@ -4398,26 +5988,26 @@ # UNIXProcess.java is different for solaris and linux. We need to copy # the correct UNIXProcess.java over to $(JDK_OUTPUTDIR)/gensrc/java/lang/. ---- jdk/make/lib/Awt2dLibraries.gmk -+++ jdk/make/lib/Awt2dLibraries.gmk -@@ -305,7 +305,7 @@ +--- ./jdk/make/lib/Awt2dLibraries.gmk Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/make/lib/Awt2dLibraries.gmk Wed Nov 05 12:14:24 2014 -0800 +@@ -309,7 +309,7 @@ debug_trace.c \ debug_util.c --ifneq (, $(filter $(OPENJDK_TARGET_OS), solaris linux)) -+ifneq (, $(filter $(OPENJDK_TARGET_OS), solaris linux bsd)) +-ifneq (, $(filter $(OPENJDK_TARGET_OS), solaris linux aix)) ++ifneq (, $(filter $(OPENJDK_TARGET_OS), bsd solaris linux aix)) LIBAWT_FILES += awt_LoadLibrary.c initIDs.c img_colors.c endif -@@ -473,6 +473,7 @@ - LDFLAGS_solaris := -R/usr/dt/lib$(OPENJDK_TARGET_CPU_ISADIR) -R$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR), \ +@@ -482,6 +482,7 @@ LDFLAGS_SUFFIX_linux := -ljvm $(LIBM) $(LIBDL) -ljava, \ LDFLAGS_SUFFIX_solaris := -ljvm $(LIBM) $(LIBDL) -ljava -lc, \ + LDFLAGS_SUFFIX_aix :=-ljvm $(LIBM) $(LIBDL) -ljava -lm,\ + LDFLAGS_SUFFIX_bsd := -ljvm $(LIBM) -ljava, \ LDFLAGS_SUFFIX_macosx := -lmlib_image -ljvm $(LIBM) \ -framework Cocoa \ -framework OpenGL \ -@@ -550,6 +551,16 @@ +@@ -559,6 +560,16 @@ endif endif @@ -4434,7 +6024,7 @@ ifeq ($(MILESTONE), internal) LIBAWT_XAWT_CFLAGS += -DINTERNAL_BUILD endif -@@ -619,6 +630,11 @@ +@@ -628,6 +639,11 @@ LIBAWT_XAWT_LDFLAGS += -lpthread endif @@ -4446,23 +6036,23 @@ $(eval $(call SetupNativeCompilation,BUILD_LIBAWT_XAWT, \ LIBRARY := awt_xawt, \ OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ -@@ -681,6 +697,7 @@ - LDFLAGS_SUFFIX_solaris := -lawt -ljava -ljvm -lc, \ +@@ -691,6 +707,7 @@ LDFLAGS_SUFFIX_macosx := $(LIBM) -lawt -ljava -ljvm, \ LDFLAGS_SUFFIX_linux := -lm -lawt -ljava -ljvm, \ + LDFLAGS_SUFFIX_aix := -lm -lawt -ljava -ljvm,\ + LDFLAGS_SUFFIX_bsd := -lm -lawt -ljava -ljvm, \ VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ RC_FLAGS := $(RC_FLAGS) \ -D "JDK_FNAME=lcms.dll" \ -@@ -819,6 +836,7 @@ - LDFLAGS_SUFFIX := $(BUILD_LIBFONTMANAGER_FONTLIB), \ +@@ -830,6 +847,7 @@ LDFLAGS_SUFFIX_linux := -lawt $(LIBM) $(LIBCXX) -ljava -ljvm -lc, \ LDFLAGS_SUFFIX_solaris := -lawt -lawt_xawt -lc $(LIBM) $(LIBCXX) -ljava -ljvm, \ + LDFLAGS_SUFFIX_aix := -lawt -lawt_xawt $(LIBM) $(LIBCXX) -ljava -ljvm,\ + LDFLAGS_SUFFIX_bsd := -lawt $(LIBM) $(LIBCXX) -ljava -ljvm -lc, \ LDFLAGS_SUFFIX_macosx := -lawt $(LIBM) $(LIBCXX) -undefined dynamic_lookup \ -ljava -ljvm, \ LDFLAGS_SUFFIX_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib gdi32.lib \ -@@ -962,6 +980,7 @@ +@@ -973,6 +991,7 @@ OPTIMIZATION := LOW, \ CFLAGS := $(CFLAGS_JDKLIB), \ CFLAGS_linux := $(HEADLESS_CFLAG), \ @@ -4470,34 +6060,43 @@ CFLAGS_macosx := -I$(JDK_TOPDIR)/src/solaris/native/sun/awt, \ MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjawt/mapfile-vers, \ LDFLAGS := $(LDFLAGS_JDKLIB) \ -@@ -969,6 +988,7 @@ - LDFLAGS_solaris := -L$(OPENWIN_HOME)/sfw/lib$(OPENJDK_TARGET_CPU_ISADIR) -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR), \ +@@ -981,6 +1000,7 @@ LDFLAGS_SUFFIX_linux := $(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX), \ + LDFLAGS_SUFFIX_aix := $(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX),\ LDFLAGS_SUFFIX_solaris := $(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX) -lXrender, \ + LDFLAGS_SUFFIX_bsd := $(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX), \ LDFLAGS_SUFFIX_macosx := -Xlinker -rpath -Xlinker @loader_path $(JAWT_LIBS) \ -framework Cocoa $(LDFLAGS_JDKLIB_SUFFIX), \ OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjawt, \ -@@ -1169,6 +1189,7 @@ - REORDER := $(LIBAWT_HEADLESS_REORDER), \ +@@ -1182,6 +1202,7 @@ LDFLAGS_SUFFIX_linux := -ljvm -lawt -lm $(LIBDL) -ljava, \ + LDFLAGS_SUFFIX_aix := -ljvm -lawt -ljava,\ LDFLAGS_SUFFIX_solaris := $(LIBDL) -ljvm -lawt -lm -ljava $(LIBCXX) -lc, \ + LDFLAGS_SUFFIX_bsd := -ljvm -lawt -lm -ljava, \ OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libawt_headless, \ DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) -@@ -1245,6 +1266,8 @@ +@@ -1235,6 +1256,8 @@ + LIBSPLASHSCREEN_CFLAGS += -DWITH_WIN32 + else ifeq ($(OPENJDK_TARGET_OS), solaris) + LIBSPLASHSCREEN_CFLAGS += -DWITH_X11 -I$(OPENWIN_HOME)/include -I$(OPENWIN_HOME)/include/X11/extensions ++ else ifeq ($(OPENJDK_TARGET_OS), bsd) ++ LIBSPLASHSCREEN_CFLAGS += -DWITH_X11 $(X_CFLAGS) -DLIBICONV_PLUG + else + LIBSPLASHSCREEN_CFLAGS += -DWITH_X11 $(X_CFLAGS) + endif +@@ -1258,6 +1281,8 @@ else ifeq ($(OPENJDK_TARGET_OS), solaris) # Solaris still uses OPENWIN_LIB .. LIBSPLASHSCREEN_LDFLAGS_SUFFIX += -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -lX11 -lXext $(LIBM) -lpthread + else ifeq ($(OPENJDK_TARGET_OS), bsd) -+ LIBSPLASHSCREEN_LDFLAGS_SUFFIX += $(X_LIBS) -lX11 -lXext $(LIBM) -liconv -pthread ++ LIBSPLASHSCREEN_LDFLAGS_SUFFIX += $(X_LIBS) -lX11 -lXext $(LIBM) -pthread else # .. all other Unixes can use X_LIBS LIBSPLASHSCREEN_LDFLAGS_SUFFIX += $(X_LIBS) -lX11 -lXext $(LIBM) -lpthread endif ---- jdk/make/lib/CoreLibraries.gmk -+++ jdk/make/lib/CoreLibraries.gmk -@@ -81,7 +81,7 @@ +--- ./jdk/make/lib/CoreLibraries.gmk Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/make/lib/CoreLibraries.gmk Wed Nov 05 12:14:24 2014 -0800 +@@ -82,7 +82,7 @@ endif LIBVERIFY_OPTIMIZATION := HIGH @@ -4506,23 +6105,23 @@ ifeq ($(ENABLE_DEBUG_SYMBOLS), true) LIBVERIFY_OPTIMIZATION := LOW endif -@@ -198,6 +198,7 @@ - LDFLAGS_SUFFIX_posix := -ljvm -lverify, \ +@@ -200,6 +200,7 @@ LDFLAGS_SUFFIX_solaris := -lsocket -lnsl -lscf $(LIBDL) $(BUILD_LIBFDLIBM) -lc, \ LDFLAGS_SUFFIX_linux := $(LIBDL) $(BUILD_LIBFDLIBM), \ + LDFLAGS_SUFFIX_aix := $(LIBDL) $(BUILD_LIBFDLIBM) -lm,\ + LDFLAGS_SUFFIX_bsd := $(BUILD_LIBFDLIBM), \ LDFLAGS_SUFFIX_macosx := -L$(JDK_OUTPUTDIR)/objs/ -lfdlibm \ -framework CoreFoundation \ -framework Foundation \ -@@ -266,6 +267,7 @@ - $(WIN_JAVA_LIB), \ +@@ -269,6 +270,7 @@ LDFLAGS_SUFFIX_linux := -ljvm -ljava $(LIBZ), \ LDFLAGS_SUFFIX_solaris := -ljvm -ljava $(LIBZ) -lc, \ + LDFLAGS_SUFFIX_aix := -ljvm -ljava $(LIBZ),\ + LDFLAGS_SUFFIX_bsd := -ljvm -ljava $(LIBZ), \ LDFLAGS_SUFFIX_macosx := $(LIBZ) -ljava -ljvm, \ VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ RC_FLAGS := $(RC_FLAGS) \ -@@ -376,7 +378,7 @@ +@@ -379,7 +381,7 @@ # Append defines depending on target platform LIBJLI_CFLAGS += $(OPENJDK_TARGET_CPU_JLI_CFLAGS) @@ -4531,7 +6130,7 @@ LIBJLI_CFLAGS += -DPACKAGE_PATH=\"$(PACKAGE_PATH)\" endif -@@ -411,10 +413,12 @@ +@@ -414,11 +416,13 @@ $(call SET_SHARED_LIBRARY_ORIGIN), \ LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \ LDFLAGS_solaris := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \ @@ -4539,12 +6138,13 @@ LDFLAGS_macosx := -framework Cocoa -framework Security -framework ApplicationServices, \ LDFLAGS_SUFFIX_solaris := $(LIBZ) $(LIBDL) -lc, \ LDFLAGS_SUFFIX_linux := $(LIBZ) $(LIBDL) -lc -lpthread, \ + LDFLAGS_SUFFIX_aix := $(LIBZ) $(LIBDL),\ LDFLAGS_SUFFIX_macosx := $(LIBZ), \ + LDFLAGS_SUFFIX_bsd := $(LIBZ) -pthread, \ LDFLAGS_SUFFIX_windows := \ -export:JLI_Launch \ -export:JLI_ManifestIterate \ -@@ -458,9 +462,9 @@ +@@ -462,9 +466,9 @@ BUILD_LIBRARIES += $(BUILD_LIBJLI_STATIC) @@ -4556,16 +6156,20 @@ # code it here...rather than add support to NativeCompilation # as this is first time I see it $(eval $(call SetupNativeCompilation,BUILD_LIBJLI_STATIC, \ -@@ -495,6 +499,7 @@ +@@ -512,9 +516,11 @@ + CFLAGS := $(CFLAGS_JDKLIB) \ + -I$(JDK_TOPDIR)/src/share/npt \ + -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/npt, \ ++ CFLAGS_bsd := -DLIBICONV_PLUG, \ MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libnpt/mapfile-vers, \ LDFLAGS := $(LDFLAGS_JDKLIB) \ $(call SET_SHARED_LIBRARY_ORIGIN), \ -+ LDFLAGS_bsd := -liconv, \ ++ LDFLAGS_bsd := , \ LDFLAGS_macosx := -liconv, \ LDFLAGS_SUFFIX_windows := -export:nptInitialize -export:nptTerminate, \ LDFLAGS_SUFFIX_solaris := -lc, \ ---- jdk/make/lib/NetworkingLibraries.gmk -+++ jdk/make/lib/NetworkingLibraries.gmk +--- ./jdk/make/lib/NetworkingLibraries.gmk Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/make/lib/NetworkingLibraries.gmk Wed Nov 05 12:14:24 2014 -0800 @@ -42,7 +42,7 @@ LIBNET_EXCLUDE_FILES += linux_close.c endif @@ -4575,17 +6179,17 @@ LIBNET_EXCLUDE_FILES += bsd_close.c endif -@@ -69,6 +69,7 @@ - LDFLAGS_SUFFIX_macosx := -ljvm -ljava, \ +@@ -74,6 +74,7 @@ LDFLAGS_SUFFIX_solaris := -ljvm -ljava -lnsl -lsocket $(LIBDL) -lc, \ LDFLAGS_SUFFIX_linux := $(LIBDL) -ljvm -lpthread -ljava, \ + LDFLAGS_SUFFIX_aix := $(LIBDL) -ljvm -ljava,\ + LDFLAGS_SUFFIX_bsd := -ljvm -pthread -ljava, \ LDFLAGS_SUFFIX_windows := ws2_32.lib jvm.lib secur32.lib iphlpapi.lib \ delayimp.lib $(WIN_JAVA_LIB) advapi32.lib \ -DELAYLOAD:secur32.dll -DELAYLOAD:iphlpapi.dll, \ ---- jdk/make/lib/NioLibraries.gmk -+++ jdk/make/lib/NioLibraries.gmk -@@ -77,9 +77,26 @@ +--- ./jdk/make/lib/NioLibraries.gmk Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/make/lib/NioLibraries.gmk Wed Nov 05 12:14:24 2014 -0800 +@@ -77,9 +77,27 @@ UnixNativeDispatcher.c endif @@ -4610,10 +6214,11 @@ ifeq ($(OPENJDK_TARGET_OS), macosx) BUILD_LIBNIO_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libnio/mapfile-$(OPENJDK_TARGET_OS) - BUILD_LIBNIO_SRC += $(JDK_TOPDIR)/src/macosx/native/sun/nio/ch ++ BUILD_LIBNIO_SRC += $(JDK_TOPDIR)/src/bsd/native/sun/nio/ch BUILD_LIBNIO_FILES += \ InheritedChannel.c \ NativeThread.c \ -@@ -130,6 +147,7 @@ +@@ -149,6 +167,7 @@ LDFLAGS_SUFFIX_windows := jvm.lib ws2_32.lib $(WIN_JAVA_LIB) \ $(JDK_OUTPUTDIR)/objs/libnet/net.lib \ advapi32.lib, \ @@ -4621,7 +6226,7 @@ LDFLAGS_SUFFIX_macosx := -ljava -lnet -pthread -framework CoreFoundation, \ LDFLAGS_SUFFIX :=, \ VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ -@@ -175,6 +193,7 @@ +@@ -194,6 +213,7 @@ LDFLAGS_SUFFIX_linux := -lpthread $(LIBDL) -ljava -ljvm, \ LDFLAGS_SUFFIX_posix := -lnio -lnet, \ LDFLAGS_SUFFIX_solaris := -lsocket -ljava -ljvm -lc, \ @@ -4629,8 +6234,8 @@ LDFLAGS_SUFFIX_macosx := -ljava -ljvm, \ OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libsctp, \ DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) ---- jdk/make/lib/ServiceabilityLibraries.gmk -+++ jdk/make/lib/ServiceabilityLibraries.gmk +--- ./jdk/make/lib/ServiceabilityLibraries.gmk Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/make/lib/ServiceabilityLibraries.gmk Wed Nov 05 12:14:24 2014 -0800 @@ -30,7 +30,7 @@ ifneq ($(OPENJDK_TARGET_OS), linux) LIBATTACH_EXCLUDE_FILES += LinuxVirtualMachine.c @@ -4639,8 +6244,8 @@ +ifeq (,$(findstring $(OPENJDK_TARGET_OS), bsd macosx)) LIBATTACH_EXCLUDE_FILES += BsdVirtualMachine.c endif - -@@ -82,6 +82,7 @@ + ifneq ($(OPENJDK_TARGET_OS),aix) +@@ -90,6 +90,7 @@ $(call SET_SHARED_LIBRARY_ORIGIN), \ LDFLAGS_SUFFIX_linux := -lpthread, \ LDFLAGS_SUFFIX_solaris := -lnsl -lsocket -lc, \ @@ -4648,7 +6253,14 @@ LDFLAGS_SUFFIX_windows := $(LDFLAGS_JDKLIB_SUFFIX) -export:jdwpTransport_OnLoad ws2_32.lib, \ VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ RC_FLAGS := $(RC_FLAGS) \ -@@ -249,12 +250,15 @@ +@@ -251,12 +252,15 @@ + CFLAGS := $(LIBINSTRUMENT_CFLAGS), \ + CFLAGS_debug := -DJPLIS_LOGGING, \ + CFLAGS_release := -DNO_JPLIS_LOGGING, \ ++ CFLAGS_bsd := -DLIBICONV_PLUG, \ + MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libinstrument/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN) \ $(LIBINSTRUMENT_LDFLAGS), \ LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN,/jli), \ LDFLAGS_solaris := $(call SET_SHARED_LIBRARY_ORIGIN,/jli), \ @@ -4657,23 +6269,24 @@ LDFLAGS_macosx := -Xlinker -all_load $(JDK_OUTPUTDIR)/objs/libjli_static.a \ -framework Cocoa -framework Security -framework ApplicationServices, \ LDFLAGS_SUFFIX := $(LIBINSTRUMENT_LDFLAGS_SUFFIX), \ - LDFLAGS_SUFFIX_macosx := -liconv $(LIBZ), \ +@@ -264,6 +268,7 @@ LDFLAGS_SUFFIX_solaris := $(LIBZ) -L $(INSTALL_LIBRARIES_HERE)/jli -ljli $(LIBDL) -lc, \ LDFLAGS_SUFFIX_linux := $(LIBZ) -L $(INSTALL_LIBRARIES_HERE)/jli -ljli $(LIBDL), \ -+ LDFLAGS_SUFFIX_bsd := -liconv $(LIBZ), \ + LDFLAGS_SUFFIX_aix := $(LIBZ) -L$(JDK_OUTPUTDIR)/objs -ljli_static $(LIBDL),\ ++ LDFLAGS_SUFFIX_bsd := $(LIBZ), \ VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ RC_FLAGS := $(RC_FLAGS) \ -D "JDK_FNAME=instrument.dll" \ -@@ -263,7 +267,7 @@ +@@ -272,7 +277,7 @@ OBJECT_DIR := $(LIBINSTRUMENT_DIR), \ DEBUG_SYMBOLS := true)) --ifneq (, $(findstring $(OPENJDK_TARGET_OS), macosx windows)) -+ifneq (, $(findstring $(OPENJDK_TARGET_OS), bsd macosx windows)) +-ifneq (, $(findstring $(OPENJDK_TARGET_OS), macosx windows aix)) ++ifneq (, $(findstring $(OPENJDK_TARGET_OS), bsd macosx windows aix)) $(BUILD_LIBINSTRUMENT): $(JDK_OUTPUTDIR)/objs/$(LIBRARY_PREFIX)jli_static$(STATIC_LIBRARY_SUFFIX) else $(BUILD_LIBINSTRUMENT): $(INSTALL_LIBRARIES_HERE)/jli/$(LIBRARY_PREFIX)jli$(SHARED_LIBRARY_SUFFIX) -@@ -289,12 +293,16 @@ +@@ -298,12 +303,16 @@ BUILD_LIBMANAGEMENT_EXCLUDES += LinuxOperatingSystem.c endif @@ -4691,7 +6304,7 @@ ifeq ($(ENABLE_DEBUG_SYMBOLS), true) LIBMANAGEMENT_OPTIMIZATION := LOW endif -@@ -337,7 +345,7 @@ +@@ -352,7 +361,7 @@ BUILD_LIBHPROF_LDFLAGS := LIBHPROF_OPTIMIZATION := HIGHEST @@ -4700,11 +6313,11 @@ ifeq ($(ENABLE_DEBUG_SYMBOLS), true) LIBHPROF_OPTIMIZATION := LOW endif ---- jdk/make/lib/SoundLibraries.gmk -+++ jdk/make/lib/SoundLibraries.gmk -@@ -71,6 +71,11 @@ - LIBJSOUND_CFLAGS += -DX_PLATFORM=X_LINUX - endif # OPENJDK_TARGET_OS linux +--- ./jdk/make/lib/SoundLibraries.gmk Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/make/lib/SoundLibraries.gmk Wed Nov 05 12:14:24 2014 -0800 +@@ -75,6 +75,11 @@ + LIBJSOUND_CFLAGS += -DX_PLATFORM=X_AIX + endif # OPENJDK_TARGET_OS aix +ifeq ($(OPENJDK_TARGET_OS), bsd) + EXTRA_SOUND_JNI_LIBS += jsoundalsa @@ -4714,7 +6327,7 @@ ifeq ($(OPENJDK_TARGET_OS), macosx) LIBJSOUND_LANG := C++ LIBJSOUND_CFLAGS += -DX_PLATFORM=X_MACOSX \ -@@ -188,12 +193,14 @@ +@@ -196,12 +201,14 @@ CFLAGS := $(CFLAGS_JDKLIB) $(ALSA_CFLAGS) \ $(LIBJSOUND_CFLAGS) \ -DUSE_DAUDIO=TRUE \ @@ -4731,8 +6344,8 @@ LDFLAGS_SUFFIX := $(ALSA_LIBS) -ljava -ljvm, \ OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjsoundalsa, \ DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) ---- jdk/make/mapfiles/launchers/mapfile-x86 -+++ jdk/make/mapfiles/launchers/mapfile-x86 +--- ./jdk/make/mapfiles/launchers/mapfile-x86 Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/make/mapfiles/launchers/mapfile-x86 Wed Nov 05 12:14:24 2014 -0800 @@ -33,6 +33,7 @@ environ; # Public symbols and required by Java run time _environ; @@ -4741,8 +6354,8 @@ ___Argv; # The following are private, but as they are _start; # exported from ctr1/crtn, the clever hacker _init; # might know about them. However note, that ---- jdk/make/mapfiles/launchers/mapfile-x86_64 -+++ jdk/make/mapfiles/launchers/mapfile-x86_64 +--- ./jdk/make/mapfiles/launchers/mapfile-x86_64 Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/make/mapfiles/launchers/mapfile-x86_64 Wed Nov 05 12:14:24 2014 -0800 @@ -33,6 +33,7 @@ environ; # Public symbols and required by Java run time _environ; @@ -4751,8 +6364,8 @@ local: *; ---- jdk/make/mapfiles/libattach/mapfile-bsd -+++ jdk/make/mapfiles/libattach/mapfile-bsd +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ ./jdk/make/mapfiles/libattach/mapfile-bsd Wed Nov 05 12:14:24 2014 -0800 @@ -0,0 +1,42 @@ +# +# Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. @@ -4796,8 +6409,8 @@ + local: + *; +}; ---- jdk/make/mapfiles/libnio/mapfile-bsd -+++ jdk/make/mapfiles/libnio/mapfile-bsd +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ ./jdk/make/mapfiles/libnio/mapfile-bsd Wed Nov 05 12:14:24 2014 -0800 @@ -0,0 +1,189 @@ +# +# Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved. @@ -4988,8 +6601,8 @@ + local: + *; +}; ---- jdk/make/mapfiles/libunpack/mapfile-vers-unpack200 -+++ jdk/make/mapfiles/libunpack/mapfile-vers-unpack200 +--- ./jdk/make/mapfiles/libunpack/mapfile-vers-unpack200 Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/make/mapfiles/libunpack/mapfile-vers-unpack200 Wed Nov 05 12:14:24 2014 -0800 @@ -26,6 +26,9 @@ # Define library interface. @@ -5000,8 +6613,8 @@ local: *; }; ---- jdk/make/netbeans/common/bsd-sources.ent -+++ jdk/make/netbeans/common/bsd-sources.ent +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ ./jdk/make/netbeans/common/bsd-sources.ent Wed Nov 05 12:14:24 2014 -0800 @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="UTF-8"?> + @@ -5048,8 +6661,8 @@ + <label>Sources for BSD Platform</label> + <location>${root}/src/bsd/classes</location> +</source-folder> ---- jdk/make/netbeans/common/bsd-view.ent -+++ jdk/make/netbeans/common/bsd-view.ent +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ ./jdk/make/netbeans/common/bsd-view.ent Wed Nov 05 12:14:24 2014 -0800 @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="UTF-8"?> + @@ -5090,8 +6703,8 @@ + <includes>${includes}</includes> + <excludes>${excludes}</excludes> +</source-folder> ---- jdk/make/netbeans/common/java-data-native.ent -+++ jdk/make/netbeans/common/java-data-native.ent +--- ./jdk/make/netbeans/common/java-data-native.ent Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/make/netbeans/common/java-data-native.ent Wed Nov 05 12:14:24 2014 -0800 @@ -34,6 +34,7 @@ <java-data xmlns="http://www.netbeans.org/ns/freeform-project-java/4"> <compilation-unit> @@ -5100,8 +6713,8 @@ <package-root>${root}/src/macosx/classes</package-root> <package-root>${root}/src/solaris/classes</package-root> <package-root>${root}/src/windows/classes</package-root> ---- jdk/make/netbeans/common/make.xml -+++ jdk/make/netbeans/common/make.xml +--- ./jdk/make/netbeans/common/make.xml Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/make/netbeans/common/make.xml Wed Nov 05 12:14:24 2014 -0800 @@ -32,16 +32,21 @@ --> @@ -5136,8 +6749,8 @@ <macrodef name="make-run"> <attribute name="target"/> <attribute name="dir"/> ---- jdk/make/netbeans/j2se/nbproject/project.xml -+++ jdk/make/netbeans/j2se/nbproject/project.xml +--- ./jdk/make/netbeans/j2se/nbproject/project.xml Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/make/netbeans/j2se/nbproject/project.xml Wed Nov 05 12:14:24 2014 -0800 @@ -34,6 +34,7 @@ <!DOCTYPE project [ <!ENTITY properties SYSTEM "../../common/properties.ent"> @@ -5170,8 +6783,8 @@ &macosx-view; &unix-view; &windows-view; ---- jdk/make/netbeans/world/nbproject/project.xml -+++ jdk/make/netbeans/world/nbproject/project.xml +--- ./jdk/make/netbeans/world/nbproject/project.xml Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/make/netbeans/world/nbproject/project.xml Wed Nov 05 12:14:24 2014 -0800 @@ -34,12 +34,14 @@ <!DOCTYPE project [ <!ENTITY properties SYSTEM "../../common/properties.ent"> @@ -5203,8 +6816,1730 @@ &macosx-view; &unix-view; &windows-view; ---- jdk/src/share/bin/jli_util.h -+++ jdk/src/share/bin/jli_util.h +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ ./jdk/src/bsd/classes/java/net/DefaultInterface.java Wed Nov 05 12:14:24 2014 -0800 +@@ -0,0 +1,97 @@ ++/* ++ * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++package java.net; ++ ++/** ++ * Choose a network interface to be the default for ++ * outgoing IPv6 traffic that does not specify a scope_id (and which needs one). ++ * We choose the first interface that is up and is (in order of preference): ++ * 1. neither loopback nor point to point ++ * 2. point to point ++ * 3. loopback ++ * 4. none. ++ * Platforms that do not require a default interface implement a dummy ++ * that returns null. ++ */ ++ ++import java.util.Enumeration; ++import java.io.IOException; ++ ++class DefaultInterface { ++ ++ private final static NetworkInterface defaultInterface = ++ chooseDefaultInterface(); ++ ++ static NetworkInterface getDefault() { ++ return defaultInterface; ++ } ++ ++ /** ++ * Choose a default interface. This method returns an interface that is ++ * both "up" and supports multicast. This method choses an interface in ++ * order of preference: ++ * 1. neither loopback nor point to point ++ * 2. point to point ++ * 3. loopback ++ * ++ * @return the chosen interface or {@code null} if there isn't a suitable ++ * default ++ */ ++ private static NetworkInterface chooseDefaultInterface() { ++ Enumeration<NetworkInterface> nifs; ++ ++ try { ++ nifs = NetworkInterface.getNetworkInterfaces(); ++ } catch (IOException ignore) { ++ // unable to enumate network interfaces ++ return null; ++ } ++ ++ NetworkInterface ppp = null; ++ NetworkInterface loopback = null; ++ ++ while (nifs.hasMoreElements()) { ++ NetworkInterface ni = nifs.nextElement(); ++ try { ++ if (ni.isUp() && ni.supportsMulticast()) { ++ boolean isLoopback = ni.isLoopback(); ++ boolean isPPP = ni.isPointToPoint(); ++ if (!isLoopback && !isPPP) { ++ // found an interface that is not the loopback or a ++ // point-to-point interface ++ return ni; ++ } ++ if (ppp == null && isPPP) ++ ppp = ni; ++ if (loopback == null && isLoopback) ++ loopback = ni; ++ } ++ } catch (IOException skip) { } ++ } ++ ++ return (ppp != null) ? ppp : loopback; ++ } ++} +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ ./jdk/src/bsd/classes/sun/nio/ch/DefaultSelectorProvider.java Wed Nov 05 12:14:24 2014 -0800 +@@ -0,0 +1,48 @@ ++/* ++ * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++package sun.nio.ch; ++ ++import java.nio.channels.spi.SelectorProvider; ++ ++/** ++ * Creates this platform's default SelectorProvider ++ */ ++ ++public class DefaultSelectorProvider { ++ ++ /** ++ * Prevent instantiation. ++ */ ++ private DefaultSelectorProvider() { } ++ ++ /** ++ * Returns the default SelectorProvider. ++ */ ++ public static SelectorProvider create() { ++ return new sun.nio.ch.KQueueSelectorProvider(); ++ } ++ ++} +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ ./jdk/src/bsd/classes/sun/nio/ch/KQueueArrayWrapper.java Wed Nov 05 12:14:24 2014 -0800 +@@ -0,0 +1,213 @@ ++/* ++ * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++/* ++ * KQueueArrayWrapper.java ++ * Implementation of Selector using FreeBSD / Mac OS X kqueues ++ * Derived from Sun's DevPollArrayWrapper ++ */ ++ ++package sun.nio.ch; ++ ++import sun.misc.*; ++import java.io.IOException; ++import java.io.FileDescriptor; ++import java.util.Iterator; ++import java.util.LinkedList; ++ ++/* ++ * struct kevent { // 32-bit 64-bit ++ * uintptr_t ident; // 4 8 ++ * short filter; // 2 2 ++ * u_short flags; // 2 2 ++ * u_int fflags; // 4 4 ++ * intptr_t data; // 4 8 ++ * void *udata; // 4 8 ++ * } // Total: 20 32 ++ * ++ * The implementation works in 32-bit and 64-bit world. We do this by calling a ++ * native function that actually sets the sizes and offsets of the fields based ++ * on which mode we're in. ++ */ ++ ++class KQueueArrayWrapper { ++ // kevent filters ++ static short EVFILT_READ; ++ static short EVFILT_WRITE; ++ ++ // kevent struct ++ // These fields are now set by initStructSizes in the static initializer. ++ static short SIZEOF_KEVENT; ++ static short FD_OFFSET; ++ static short FILTER_OFFSET; ++ ++ // kevent array size ++ static final int NUM_KEVENTS = 128; ++ ++ // Are we in a 64-bit VM? ++ static boolean is64bit = false; ++ ++ // The kevent array (used for outcoming events only) ++ private AllocatedNativeObject keventArray = null; ++ private long keventArrayAddress; ++ ++ // The kqueue fd ++ private int kq = -1; ++ ++ // The fd of the interrupt line going out ++ private int outgoingInterruptFD; ++ ++ // The fd of the interrupt line coming in ++ private int incomingInterruptFD; ++ ++ static { ++ IOUtil.load(); ++ initStructSizes(); ++ String datamodel = java.security.AccessController.doPrivileged( ++ new sun.security.action.GetPropertyAction("sun.arch.data.model") ++ ); ++ is64bit = datamodel.equals("64"); ++ } ++ ++ KQueueArrayWrapper() { ++ int allocationSize = SIZEOF_KEVENT * NUM_KEVENTS; ++ keventArray = new AllocatedNativeObject(allocationSize, true); ++ keventArrayAddress = keventArray.address(); ++ kq = init(); ++ } ++ ++ // Used to update file description registrations ++ private static class Update { ++ SelChImpl channel; ++ int events; ++ Update(SelChImpl channel, int events) { ++ this.channel = channel; ++ this.events = events; ++ } ++ } ++ ++ private LinkedList<Update> updateList = new LinkedList<Update>(); ++ ++ void initInterrupt(int fd0, int fd1) { ++ outgoingInterruptFD = fd1; ++ incomingInterruptFD = fd0; ++ register0(kq, fd0, 1, 0); ++ } ++ ++ int getReventOps(int index) { ++ int result = 0; ++ int offset = SIZEOF_KEVENT*index + FILTER_OFFSET; ++ short filter = keventArray.getShort(offset); ++ ++ // This is all that's necessary based on inspection of usage: ++ // SinkChannelImpl, SourceChannelImpl, DatagramChannelImpl, ++ // ServerSocketChannelImpl, SocketChannelImpl ++ if (filter == EVFILT_READ) { ++ result |= Net.POLLIN; ++ } else if (filter == EVFILT_WRITE) { ++ result |= Net.POLLOUT; ++ } ++ ++ return result; ++ } ++ ++ int getDescriptor(int index) { ++ int offset = SIZEOF_KEVENT*index + FD_OFFSET; ++ /* The ident field is 8 bytes in 64-bit world, however the API wants us ++ * to return an int. Hence read the 8 bytes but return as an int. ++ */ ++ if (is64bit) { ++ long fd = keventArray.getLong(offset); ++ assert fd <= Integer.MAX_VALUE; ++ return (int) fd; ++ } else { ++ return keventArray.getInt(offset); ++ } ++ } ++ ++ void setInterest(SelChImpl channel, int events) { ++ synchronized (updateList) { ++ // update existing registration ++ updateList.add(new Update(channel, events)); ++ } ++ } ++ ++ void release(SelChImpl channel) { ++ synchronized (updateList) { ++ // flush any pending updates ++ for (Iterator<Update> it = updateList.iterator(); it.hasNext();) { ++ if (it.next().channel == channel) { ++ it.remove(); ++ } ++ } ++ ++ // remove ++ register0(kq, channel.getFDVal(), 0, 0); ++ } ++ } ++ ++ void updateRegistrations() { ++ synchronized (updateList) { ++ Update u = null; ++ while ((u = updateList.poll()) != null) { ++ SelChImpl ch = u.channel; ++ if (!ch.isOpen()) ++ continue; ++ ++ register0(kq, ch.getFDVal(), u.events & Net.POLLIN, u.events & Net.POLLOUT); ++ } ++ } ++ } ++ ++ ++ void close() throws IOException { ++ if (keventArray != null) { ++ keventArray.free(); ++ keventArray = null; ++ } ++ if (kq >= 0) { ++ FileDispatcherImpl.closeIntFD(kq); ++ kq = -1; ++ } ++ } ++ ++ int poll(long timeout) { ++ updateRegistrations(); ++ int updated = kevent0(kq, keventArrayAddress, NUM_KEVENTS, timeout); ++ return updated; ++ } ++ ++ void interrupt() { ++ interrupt(outgoingInterruptFD); ++ } ++ ++ private native int init(); ++ private static native void initStructSizes(); ++ ++ private native void register0(int kq, int fd, int read, int write); ++ private native int kevent0(int kq, long keventAddress, int keventCount, ++ long timeout); ++ private static native void interrupt(int fd); ++} +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ ./jdk/src/bsd/classes/sun/nio/ch/KQueueSelectorImpl.java Wed Nov 05 12:14:24 2014 -0800 +@@ -0,0 +1,249 @@ ++/* ++ * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++/* ++ * KQueueSelectorImpl.java ++ * Implementation of Selector using FreeBSD / Mac OS X kqueues ++ * Derived from Sun's DevPollSelectorImpl ++ */ ++ ++package sun.nio.ch; ++ ++import java.io.IOException; ++import java.io.FileDescriptor; ++import java.nio.channels.*; ++import java.nio.channels.spi.*; ++import java.util.*; ++import sun.misc.*; ++ ++class KQueueSelectorImpl ++ extends SelectorImpl ++{ ++ // File descriptors used for interrupt ++ protected int fd0; ++ protected int fd1; ++ ++ // The kqueue manipulator ++ KQueueArrayWrapper kqueueWrapper; ++ ++ // Count of registered descriptors (including interrupt) ++ private int totalChannels; ++ ++ // Map from a file descriptor to an entry containing the selection key ++ private HashMap<Integer,MapEntry> fdMap; ++ ++ // True if this Selector has been closed ++ private boolean closed = false; ++ ++ // Lock for interrupt triggering and clearing ++ private Object interruptLock = new Object(); ++ private boolean interruptTriggered = false; ++ ++ // used by updateSelectedKeys to handle cases where the same file ++ // descriptor is polled by more than one filter ++ private long updateCount; ++ ++ // Used to map file descriptors to a selection key and "update count" ++ // (see updateSelectedKeys for usage). ++ private static class MapEntry { ++ SelectionKeyImpl ski; ++ long updateCount; ++ MapEntry(SelectionKeyImpl ski) { ++ this.ski = ski; ++ } ++ } ++ ++ /** ++ * Package private constructor called by factory method in ++ * the abstract superclass Selector. ++ */ ++ KQueueSelectorImpl(SelectorProvider sp) { ++ super(sp); ++ long fds = IOUtil.makePipe(false); ++ fd0 = (int)(fds >>> 32); ++ fd1 = (int)fds; ++ kqueueWrapper = new KQueueArrayWrapper(); ++ kqueueWrapper.initInterrupt(fd0, fd1); ++ fdMap = new HashMap<>(); ++ totalChannels = 1; ++ } ++ ++ ++ protected int doSelect(long timeout) ++ throws IOException ++ { ++ int entries = 0; ++ if (closed) ++ throw new ClosedSelectorException(); ++ processDeregisterQueue(); ++ try { ++ begin(); ++ entries = kqueueWrapper.poll(timeout); ++ } finally { ++ end(); ++ } ++ processDeregisterQueue(); ++ return updateSelectedKeys(entries); ++ } ++ ++ /** ++ * Update the keys whose fd's have been selected by kqueue. ++ * Add the ready keys to the selected key set. ++ * If the interrupt fd has been selected, drain it and clear the interrupt. ++ */ ++ private int updateSelectedKeys(int entries) ++ throws IOException ++ { ++ int numKeysUpdated = 0; ++ boolean interrupted = false; ++ ++ // A file descriptor may be registered with kqueue with more than one ++ // filter and so there may be more than one event for a fd. The update ++ // count in the MapEntry tracks when the fd was last updated and this ++ // ensures that the ready ops are updated rather than replaced by a ++ // second or subsequent event. ++ updateCount++; ++ ++ for (int i = 0; i < entries; i++) { ++ int nextFD = kqueueWrapper.getDescriptor(i); ++ if (nextFD == fd0) { ++ interrupted = true; ++ } else { ++ MapEntry me = fdMap.get(Integer.valueOf(nextFD)); ++ ++ // entry is null in the case of an interrupt ++ if (me != null) { ++ int rOps = kqueueWrapper.getReventOps(i); ++ SelectionKeyImpl ski = me.ski; ++ if (selectedKeys.contains(ski)) { ++ // first time this file descriptor has been encountered on this ++ // update? ++ if (me.updateCount != updateCount) { ++ if (ski.channel.translateAndSetReadyOps(rOps, ski)) { ++ numKeysUpdated++; ++ me.updateCount = updateCount; ++ } ++ } else { ++ // ready ops have already been set on this update ++ ski.channel.translateAndUpdateReadyOps(rOps, ski); ++ } ++ } else { ++ ski.channel.translateAndSetReadyOps(rOps, ski); ++ if ((ski.nioReadyOps() & ski.nioInterestOps()) != 0) { ++ selectedKeys.add(ski); ++ numKeysUpdated++; ++ me.updateCount = updateCount; ++ } ++ } ++ } ++ } ++ } ++ ++ if (interrupted) { ++ // Clear the wakeup pipe ++ synchronized (interruptLock) { ++ IOUtil.drain(fd0); ++ interruptTriggered = false; ++ } ++ } ++ return numKeysUpdated; ++ } ++ ++ ++ protected void implClose() throws IOException { ++ if (!closed) { ++ closed = true; ++ ++ // prevent further wakeup ++ synchronized (interruptLock) { ++ interruptTriggered = true; ++ } ++ ++ FileDispatcherImpl.closeIntFD(fd0); ++ FileDispatcherImpl.closeIntFD(fd1); ++ if (kqueueWrapper != null) { ++ kqueueWrapper.close(); ++ kqueueWrapper = null; ++ selectedKeys = null; ++ ++ // Deregister channels ++ Iterator<SelectionKey> i = keys.iterator(); ++ while (i.hasNext()) { ++ SelectionKeyImpl ski = (SelectionKeyImpl)i.next(); ++ deregister(ski); ++ SelectableChannel selch = ski.channel(); ++ if (!selch.isOpen() && !selch.isRegistered()) ++ ((SelChImpl)selch).kill(); ++ i.remove(); ++ } ++ totalChannels = 0; ++ } ++ fd0 = -1; ++ fd1 = -1; ++ } ++ } ++ ++ ++ protected void implRegister(SelectionKeyImpl ski) { ++ if (closed) ++ throw new ClosedSelectorException(); ++ int fd = IOUtil.fdVal(ski.channel.getFD()); ++ fdMap.put(Integer.valueOf(fd), new MapEntry(ski)); ++ totalChannels++; ++ keys.add(ski); ++ } ++ ++ ++ protected void implDereg(SelectionKeyImpl ski) throws IOException { ++ int fd = ski.channel.getFDVal(); ++ fdMap.remove(Integer.valueOf(fd)); ++ kqueueWrapper.release(ski.channel); ++ totalChannels--; ++ keys.remove(ski); ++ selectedKeys.remove(ski); ++ deregister((AbstractSelectionKey)ski); ++ SelectableChannel selch = ski.channel(); ++ if (!selch.isOpen() && !selch.isRegistered()) ++ ((SelChImpl)selch).kill(); ++ } ++ ++ ++ public void putEventOps(SelectionKeyImpl ski, int ops) { ++ if (closed) ++ throw new ClosedSelectorException(); ++ kqueueWrapper.setInterest(ski.channel, ops); ++ } ++ ++ ++ public Selector wakeup() { ++ synchronized (interruptLock) { ++ if (!interruptTriggered) { ++ kqueueWrapper.interrupt(); ++ interruptTriggered = true; ++ } ++ } ++ return this; ++ } ++} +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ ./jdk/src/bsd/classes/sun/nio/ch/KQueueSelectorProvider.java Wed Nov 05 12:14:24 2014 -0800 +@@ -0,0 +1,44 @@ ++/* ++ * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++/* ++ * KQueueSelectorProvider.java ++ * Implementation of Selector using FreeBSD / Mac OS X kqueues ++ * Derived from Sun's DevPollSelectorProvider ++ */ ++ ++package sun.nio.ch; ++ ++import java.io.IOException; ++import java.nio.channels.*; ++import java.nio.channels.spi.*; ++ ++public class KQueueSelectorProvider ++extends SelectorProviderImpl ++{ ++ public AbstractSelector openSelector() throws IOException { ++ return new KQueueSelectorImpl(this); ++ } ++} +--- ./jdk/src/bsd/doc/man/javah.1 Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/bsd/doc/man/javah.1 Wed Nov 05 12:14:24 2014 -0800 +@@ -110,7 +110,7 @@ + + \&.:\fIyour-path\fR + +-Example: \f3\&.:/home/avh/classes:/usr/local/java/classes\fR ++Example: \f3\&.:/home/avh/classes:/usr/local/share/java/classes\fR + + \fIWindows\fR: + +--- ./jdk/src/bsd/doc/man/rmic.1 Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/bsd/doc/man/rmic.1 Wed Nov 05 12:14:24 2014 -0800 +@@ -93,7 +93,7 @@ + .TP + -classpath path + .br +-Specifies the path the \f3rmic\fR command uses to look up classes\&. This option overrides the default or the \f3CLASSPATH\fR environment variable when it is set\&. Directories are separated by colons\&. The general format for path is: \f3\&.:<your_path>\fR, for example: \f3\&.:/usr/local/java/classes\fR\&. ++Specifies the path the \f3rmic\fR command uses to look up classes\&. This option overrides the default or the \f3CLASSPATH\fR environment variable when it is set\&. Directories are separated by colons\&. The general format for path is: \f3\&.:<your_path>\fR, for example: \f3\&.:/usr/local/share/java/classes\fR\&. + .TP + -d \fIdirectory\fR + .br +@@ -207,7 +207,7 @@ + .SH ENVIRONMENT\ VARIABLES + .TP + CLASSPATH +-Used to provide the system a path to user-defined classes\&. Directories are separated by colons, for example: \f3\&.:/usr/local/java/classes\fR\&. ++Used to provide the system a path to user-defined classes\&. Directories are separated by colons, for example: \f3\&.:/usr/local/share/java/classes\fR\&. + .SH SEE\ ALSO + .TP 0.2i + \(bu +--- ./jdk/src/bsd/doc/man/rmid.1 Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/bsd/doc/man/rmid.1 Wed Nov 05 12:14:24 2014 -0800 +@@ -301,7 +301,7 @@ + .SH ENVIRONMENT\ VARIABLES + .TP + CLASSPATH +-Used to provide the system a path to user-defined classes\&. Directories are separated by colons, for example: \f3\&.:/usr/local/java/classes\fR\&. ++Used to provide the system a path to user-defined classes\&. Directories are separated by colons, for example: \f3\&.:/usr/local/share/java/classes\fR\&. + .SH SEE\ ALSO + .TP 0.2i + \(bu +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ ./jdk/src/bsd/native/sun/nio/ch/KQueueArrayWrapper.c Wed Nov 05 12:14:24 2014 -0800 +@@ -0,0 +1,171 @@ ++/* ++ * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++/* ++ * KQueueArrayWrapper.c ++ * Implementation of Selector using FreeBSD / Mac OS X kqueues ++ * Derived from Sun's DevPollArrayWrapper ++ */ ++ ++ ++#include "jni.h" ++#include "jni_util.h" ++#include "jvm.h" ++#include "jlong.h" ++ ++#include <sys/types.h> ++#include <sys/event.h> ++#include <sys/time.h> ++ ++JNIEXPORT void JNICALL ++Java_sun_nio_ch_KQueueArrayWrapper_initStructSizes(JNIEnv *env, jclass clazz) ++{ ++#define CHECK_EXCEPTION() { \ ++ if ((*env)->ExceptionCheck(env)) { \ ++ goto exceptionOccurred; \ ++ } \ ++} ++ ++#define CHECK_ERROR_AND_EXCEPTION(_field) { \ ++ if (_field == NULL) { \ ++ goto badField; \ ++ } \ ++ CHECK_EXCEPTION(); \ ++} ++ ++ ++ jfieldID field; ++ ++ field = (*env)->GetStaticFieldID(env, clazz, "EVFILT_READ", "S"); ++ CHECK_ERROR_AND_EXCEPTION(field); ++ (*env)->SetStaticShortField(env, clazz, field, EVFILT_READ); ++ CHECK_EXCEPTION(); ++ ++ field = (*env)->GetStaticFieldID(env, clazz, "EVFILT_WRITE", "S"); ++ CHECK_ERROR_AND_EXCEPTION(field); ++ (*env)->SetStaticShortField(env, clazz, field, EVFILT_WRITE); ++ CHECK_EXCEPTION(); ++ ++ field = (*env)->GetStaticFieldID(env, clazz, "SIZEOF_KEVENT", "S"); ++ CHECK_ERROR_AND_EXCEPTION(field); ++ (*env)->SetStaticShortField(env, clazz, field, (short) sizeof(struct kevent)); ++ CHECK_EXCEPTION(); ++ ++ field = (*env)->GetStaticFieldID(env, clazz, "FD_OFFSET", "S"); ++ CHECK_ERROR_AND_EXCEPTION(field); ++ (*env)->SetStaticShortField(env, clazz, field, (short) offsetof(struct kevent, ident)); ++ CHECK_EXCEPTION(); ++ ++ field = (*env)->GetStaticFieldID(env, clazz, "FILTER_OFFSET", "S"); ++ CHECK_ERROR_AND_EXCEPTION(field); ++ (*env)->SetStaticShortField(env, clazz, field, (short) offsetof(struct kevent, filter)); ++ CHECK_EXCEPTION(); ++ return; ++ ++badField: ++ return; ++ ++exceptionOccurred: ++ return; ++ ++#undef CHECK_EXCEPTION ++#undef CHECK_ERROR_AND_EXCEPTION ++} ++ ++JNIEXPORT jint JNICALL ++Java_sun_nio_ch_KQueueArrayWrapper_init(JNIEnv *env, jobject this) ++{ ++ int kq = kqueue(); ++ if (kq < 0) { ++ JNU_ThrowIOExceptionWithLastError(env, "KQueueArrayWrapper: kqueue() failed"); ++ } ++ return kq; ++} ++ ++ ++JNIEXPORT void JNICALL ++Java_sun_nio_ch_KQueueArrayWrapper_register0(JNIEnv *env, jobject this, ++ jint kq, jint fd, jint r, jint w) ++{ ++ struct kevent changes[2]; ++ struct kevent errors[2]; ++ struct timespec dontBlock = {0, 0}; ++ ++ // if (r) then { register for read } else { unregister for read } ++ // if (w) then { register for write } else { unregister for write } ++ // Ignore errors - they're probably complaints about deleting non- ++ // added filters - but provide an error array anyway because ++ // kqueue behaves erratically if some of its registrations fail. ++ EV_SET(&changes[0], fd, EVFILT_READ, r ? EV_ADD : EV_DELETE, 0, 0, 0); ++ EV_SET(&changes[1], fd, EVFILT_WRITE, w ? EV_ADD : EV_DELETE, 0, 0, 0); ++ kevent(kq, changes, 2, errors, 2, &dontBlock); ++} ++ ++ ++JNIEXPORT jint JNICALL ++Java_sun_nio_ch_KQueueArrayWrapper_kevent0(JNIEnv *env, jobject this, jint kq, ++ jlong kevAddr, jint kevCount, ++ jlong timeout) ++{ ++ struct kevent *kevs = (struct kevent *)jlong_to_ptr(kevAddr); ++ struct timespec ts; ++ struct timespec *tsp; ++ int result; ++ ++ // Java timeout is in milliseconds. Convert to struct timespec. ++ // Java timeout == -1 : wait forever : timespec timeout of NULL ++ // Java timeout == 0 : return immediately : timespec timeout of zero ++ if (timeout >= 0) { ++ ts.tv_sec = timeout / 1000; ++ ts.tv_nsec = (timeout % 1000) * 1000000; //nanosec = 1 million millisec ++ tsp = &ts; ++ } else { ++ tsp = NULL; ++ } ++ ++ result = kevent(kq, NULL, 0, kevs, kevCount, tsp); ++ ++ if (result < 0) { ++ if (errno == EINTR) { ++ // ignore EINTR, pretend nothing was selected ++ result = 0; ++ } else { ++ JNU_ThrowIOExceptionWithLastError(env, "KQueueArrayWrapper: kqueue failed"); ++ } ++ } ++ ++ return result; ++} ++ ++ ++JNIEXPORT void JNICALL ++Java_sun_nio_ch_KQueueArrayWrapper_interrupt(JNIEnv *env, jclass cls, jint fd) ++{ ++ char c = 1; ++ if (1 != write(fd, &c, 1)) { ++ JNU_ThrowIOExceptionWithLastError(env, "KQueueArrayWrapper: interrupt failed"); ++ } ++} ++ +--- ./jdk/src/macosx/classes/java/net/DefaultInterface.java Tue Sep 09 12:00:58 2014 -0700 ++++ /dev/null Thu Jan 01 00:00:00 1970 +0000 +@@ -1,97 +0,0 @@ +-/* +- * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. +- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +- * +- * This code is free software; you can redistribute it and/or modify it +- * under the terms of the GNU General Public License version 2 only, as +- * published by the Free Software Foundation. Oracle designates this +- * particular file as subject to the "Classpath" exception as provided +- * by Oracle in the LICENSE file that accompanied this code. +- * +- * This code is distributed in the hope that it will be useful, but WITHOUT +- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +- * version 2 for more details (a copy is included in the LICENSE file that +- * accompanied this code). +- * +- * You should have received a copy of the GNU General Public License version +- * 2 along with this work; if not, write to the Free Software Foundation, +- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +- * +- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +- * or visit www.oracle.com if you need additional information or have any +- * questions. +- */ +- +-package java.net; +- +-/** +- * Choose a network interface to be the default for +- * outgoing IPv6 traffic that does not specify a scope_id (and which needs one). +- * We choose the first interface that is up and is (in order of preference): +- * 1. neither loopback nor point to point +- * 2. point to point +- * 3. loopback +- * 4. none. +- * Platforms that do not require a default interface implement a dummy +- * that returns null. +- */ +- +-import java.util.Enumeration; +-import java.io.IOException; +- +-class DefaultInterface { +- +- private final static NetworkInterface defaultInterface = +- chooseDefaultInterface(); +- +- static NetworkInterface getDefault() { +- return defaultInterface; +- } +- +- /** +- * Choose a default interface. This method returns an interface that is +- * both "up" and supports multicast. This method choses an interface in +- * order of preference: +- * 1. neither loopback nor point to point +- * 2. point to point +- * 3. loopback +- * +- * @return the chosen interface or {@code null} if there isn't a suitable +- * default +- */ +- private static NetworkInterface chooseDefaultInterface() { +- Enumeration<NetworkInterface> nifs; +- +- try { +- nifs = NetworkInterface.getNetworkInterfaces(); +- } catch (IOException ignore) { +- // unable to enumate network interfaces +- return null; +- } +- +- NetworkInterface ppp = null; +- NetworkInterface loopback = null; +- +- while (nifs.hasMoreElements()) { +- NetworkInterface ni = nifs.nextElement(); +- try { +- if (ni.isUp() && ni.supportsMulticast()) { +- boolean isLoopback = ni.isLoopback(); +- boolean isPPP = ni.isPointToPoint(); +- if (!isLoopback && !isPPP) { +- // found an interface that is not the loopback or a +- // point-to-point interface +- return ni; +- } +- if (ppp == null && isPPP) +- ppp = ni; +- if (loopback == null && isLoopback) +- loopback = ni; +- } +- } catch (IOException skip) { } +- } +- +- return (ppp != null) ? ppp : loopback; +- } +-} +--- ./jdk/src/macosx/classes/sun/nio/ch/DefaultSelectorProvider.java Tue Sep 09 12:00:58 2014 -0700 ++++ /dev/null Thu Jan 01 00:00:00 1970 +0000 +@@ -1,48 +0,0 @@ +-/* +- * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. +- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +- * +- * This code is free software; you can redistribute it and/or modify it +- * under the terms of the GNU General Public License version 2 only, as +- * published by the Free Software Foundation. Oracle designates this +- * particular file as subject to the "Classpath" exception as provided +- * by Oracle in the LICENSE file that accompanied this code. +- * +- * This code is distributed in the hope that it will be useful, but WITHOUT +- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +- * version 2 for more details (a copy is included in the LICENSE file that +- * accompanied this code). +- * +- * You should have received a copy of the GNU General Public License version +- * 2 along with this work; if not, write to the Free Software Foundation, +- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +- * +- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +- * or visit www.oracle.com if you need additional information or have any +- * questions. +- */ +- +-package sun.nio.ch; +- +-import java.nio.channels.spi.SelectorProvider; +- +-/** +- * Creates this platform's default SelectorProvider +- */ +- +-public class DefaultSelectorProvider { +- +- /** +- * Prevent instantiation. +- */ +- private DefaultSelectorProvider() { } +- +- /** +- * Returns the default SelectorProvider. +- */ +- public static SelectorProvider create() { +- return new sun.nio.ch.KQueueSelectorProvider(); +- } +- +-} +--- ./jdk/src/macosx/classes/sun/nio/ch/KQueueArrayWrapper.java Tue Sep 09 12:00:58 2014 -0700 ++++ /dev/null Thu Jan 01 00:00:00 1970 +0000 +@@ -1,213 +0,0 @@ +-/* +- * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. +- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +- * +- * This code is free software; you can redistribute it and/or modify it +- * under the terms of the GNU General Public License version 2 only, as +- * published by the Free Software Foundation. Oracle designates this +- * particular file as subject to the "Classpath" exception as provided +- * by Oracle in the LICENSE file that accompanied this code. +- * +- * This code is distributed in the hope that it will be useful, but WITHOUT +- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +- * version 2 for more details (a copy is included in the LICENSE file that +- * accompanied this code). +- * +- * You should have received a copy of the GNU General Public License version +- * 2 along with this work; if not, write to the Free Software Foundation, +- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +- * +- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +- * or visit www.oracle.com if you need additional information or have any +- * questions. +- */ +- +-/* +- * KQueueArrayWrapper.java +- * Implementation of Selector using FreeBSD / Mac OS X kqueues +- * Derived from Sun's DevPollArrayWrapper +- */ +- +-package sun.nio.ch; +- +-import sun.misc.*; +-import java.io.IOException; +-import java.io.FileDescriptor; +-import java.util.Iterator; +-import java.util.LinkedList; +- +-/* +- * struct kevent { // 32-bit 64-bit +- * uintptr_t ident; // 4 8 +- * short filter; // 2 2 +- * u_short flags; // 2 2 +- * u_int fflags; // 4 4 +- * intptr_t data; // 4 8 +- * void *udata; // 4 8 +- * } // Total: 20 32 +- * +- * The implementation works in 32-bit and 64-bit world. We do this by calling a +- * native function that actually sets the sizes and offsets of the fields based +- * on which mode we're in. +- */ +- +-class KQueueArrayWrapper { +- // kevent filters +- static short EVFILT_READ; +- static short EVFILT_WRITE; +- +- // kevent struct +- // These fields are now set by initStructSizes in the static initializer. +- static short SIZEOF_KEVENT; +- static short FD_OFFSET; +- static short FILTER_OFFSET; +- +- // kevent array size +- static final int NUM_KEVENTS = 128; +- +- // Are we in a 64-bit VM? +- static boolean is64bit = false; +- +- // The kevent array (used for outcoming events only) +- private AllocatedNativeObject keventArray = null; +- private long keventArrayAddress; +- +- // The kqueue fd +- private int kq = -1; +- +- // The fd of the interrupt line going out +- private int outgoingInterruptFD; +- +- // The fd of the interrupt line coming in +- private int incomingInterruptFD; +- +- static { +- IOUtil.load(); +- initStructSizes(); +- String datamodel = java.security.AccessController.doPrivileged( +- new sun.security.action.GetPropertyAction("sun.arch.data.model") +- ); +- is64bit = datamodel.equals("64"); +- } +- +- KQueueArrayWrapper() { +- int allocationSize = SIZEOF_KEVENT * NUM_KEVENTS; +- keventArray = new AllocatedNativeObject(allocationSize, true); +- keventArrayAddress = keventArray.address(); +- kq = init(); +- } +- +- // Used to update file description registrations +- private static class Update { +- SelChImpl channel; +- int events; +- Update(SelChImpl channel, int events) { +- this.channel = channel; +- this.events = events; +- } +- } +- +- private LinkedList<Update> updateList = new LinkedList<Update>(); +- +- void initInterrupt(int fd0, int fd1) { +- outgoingInterruptFD = fd1; +- incomingInterruptFD = fd0; +- register0(kq, fd0, 1, 0); +- } +- +- int getReventOps(int index) { +- int result = 0; +- int offset = SIZEOF_KEVENT*index + FILTER_OFFSET; +- short filter = keventArray.getShort(offset); +- +- // This is all that's necessary based on inspection of usage: +- // SinkChannelImpl, SourceChannelImpl, DatagramChannelImpl, +- // ServerSocketChannelImpl, SocketChannelImpl +- if (filter == EVFILT_READ) { +- result |= Net.POLLIN; +- } else if (filter == EVFILT_WRITE) { +- result |= Net.POLLOUT; +- } +- +- return result; +- } +- +- int getDescriptor(int index) { +- int offset = SIZEOF_KEVENT*index + FD_OFFSET; +- /* The ident field is 8 bytes in 64-bit world, however the API wants us +- * to return an int. Hence read the 8 bytes but return as an int. +- */ +- if (is64bit) { +- long fd = keventArray.getLong(offset); +- assert fd <= Integer.MAX_VALUE; +- return (int) fd; +- } else { +- return keventArray.getInt(offset); +- } +- } +- +- void setInterest(SelChImpl channel, int events) { +- synchronized (updateList) { +- // update existing registration +- updateList.add(new Update(channel, events)); +- } +- } +- +- void release(SelChImpl channel) { +- synchronized (updateList) { +- // flush any pending updates +- for (Iterator<Update> it = updateList.iterator(); it.hasNext();) { +- if (it.next().channel == channel) { +- it.remove(); +- } +- } +- +- // remove +- register0(kq, channel.getFDVal(), 0, 0); +- } +- } +- +- void updateRegistrations() { +- synchronized (updateList) { +- Update u = null; +- while ((u = updateList.poll()) != null) { +- SelChImpl ch = u.channel; +- if (!ch.isOpen()) +- continue; +- +- register0(kq, ch.getFDVal(), u.events & Net.POLLIN, u.events & Net.POLLOUT); +- } +- } +- } +- +- +- void close() throws IOException { +- if (keventArray != null) { +- keventArray.free(); +- keventArray = null; +- } +- if (kq >= 0) { +- FileDispatcherImpl.closeIntFD(kq); +- kq = -1; +- } +- } +- +- int poll(long timeout) { +- updateRegistrations(); +- int updated = kevent0(kq, keventArrayAddress, NUM_KEVENTS, timeout); +- return updated; +- } +- +- void interrupt() { +- interrupt(outgoingInterruptFD); +- } +- +- private native int init(); +- private static native void initStructSizes(); +- +- private native void register0(int kq, int fd, int read, int write); +- private native int kevent0(int kq, long keventAddress, int keventCount, +- long timeout); +- private static native void interrupt(int fd); +-} +--- ./jdk/src/macosx/classes/sun/nio/ch/KQueueSelectorImpl.java Tue Sep 09 12:00:58 2014 -0700 ++++ /dev/null Thu Jan 01 00:00:00 1970 +0000 +@@ -1,249 +0,0 @@ +-/* +- * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. +- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +- * +- * This code is free software; you can redistribute it and/or modify it +- * under the terms of the GNU General Public License version 2 only, as +- * published by the Free Software Foundation. Oracle designates this +- * particular file as subject to the "Classpath" exception as provided +- * by Oracle in the LICENSE file that accompanied this code. +- * +- * This code is distributed in the hope that it will be useful, but WITHOUT +- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +- * version 2 for more details (a copy is included in the LICENSE file that +- * accompanied this code). +- * +- * You should have received a copy of the GNU General Public License version +- * 2 along with this work; if not, write to the Free Software Foundation, +- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +- * +- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +- * or visit www.oracle.com if you need additional information or have any +- * questions. +- */ +- +-/* +- * KQueueSelectorImpl.java +- * Implementation of Selector using FreeBSD / Mac OS X kqueues +- * Derived from Sun's DevPollSelectorImpl +- */ +- +-package sun.nio.ch; +- +-import java.io.IOException; +-import java.io.FileDescriptor; +-import java.nio.channels.*; +-import java.nio.channels.spi.*; +-import java.util.*; +-import sun.misc.*; +- +-class KQueueSelectorImpl +- extends SelectorImpl +-{ +- // File descriptors used for interrupt +- protected int fd0; +- protected int fd1; +- +- // The kqueue manipulator +- KQueueArrayWrapper kqueueWrapper; +- +- // Count of registered descriptors (including interrupt) +- private int totalChannels; +- +- // Map from a file descriptor to an entry containing the selection key +- private HashMap<Integer,MapEntry> fdMap; +- +- // True if this Selector has been closed +- private boolean closed = false; +- +- // Lock for interrupt triggering and clearing +- private Object interruptLock = new Object(); +- private boolean interruptTriggered = false; +- +- // used by updateSelectedKeys to handle cases where the same file +- // descriptor is polled by more than one filter +- private long updateCount; +- +- // Used to map file descriptors to a selection key and "update count" +- // (see updateSelectedKeys for usage). +- private static class MapEntry { +- SelectionKeyImpl ski; +- long updateCount; +- MapEntry(SelectionKeyImpl ski) { +- this.ski = ski; +- } +- } +- +- /** +- * Package private constructor called by factory method in +- * the abstract superclass Selector. +- */ +- KQueueSelectorImpl(SelectorProvider sp) { +- super(sp); +- long fds = IOUtil.makePipe(false); +- fd0 = (int)(fds >>> 32); +- fd1 = (int)fds; +- kqueueWrapper = new KQueueArrayWrapper(); +- kqueueWrapper.initInterrupt(fd0, fd1); +- fdMap = new HashMap<>(); +- totalChannels = 1; +- } +- +- +- protected int doSelect(long timeout) +- throws IOException +- { +- int entries = 0; +- if (closed) +- throw new ClosedSelectorException(); +- processDeregisterQueue(); +- try { +- begin(); +- entries = kqueueWrapper.poll(timeout); +- } finally { +- end(); +- } +- processDeregisterQueue(); +- return updateSelectedKeys(entries); +- } +- +- /** +- * Update the keys whose fd's have been selected by kqueue. +- * Add the ready keys to the selected key set. +- * If the interrupt fd has been selected, drain it and clear the interrupt. +- */ +- private int updateSelectedKeys(int entries) +- throws IOException +- { +- int numKeysUpdated = 0; +- boolean interrupted = false; +- +- // A file descriptor may be registered with kqueue with more than one +- // filter and so there may be more than one event for a fd. The update +- // count in the MapEntry tracks when the fd was last updated and this +- // ensures that the ready ops are updated rather than replaced by a +- // second or subsequent event. +- updateCount++; +- +- for (int i = 0; i < entries; i++) { +- int nextFD = kqueueWrapper.getDescriptor(i); +- if (nextFD == fd0) { +- interrupted = true; +- } else { +- MapEntry me = fdMap.get(Integer.valueOf(nextFD)); +- +- // entry is null in the case of an interrupt +- if (me != null) { +- int rOps = kqueueWrapper.getReventOps(i); +- SelectionKeyImpl ski = me.ski; +- if (selectedKeys.contains(ski)) { +- // first time this file descriptor has been encountered on this +- // update? +- if (me.updateCount != updateCount) { +- if (ski.channel.translateAndSetReadyOps(rOps, ski)) { +- numKeysUpdated++; +- me.updateCount = updateCount; +- } +- } else { +- // ready ops have already been set on this update +- ski.channel.translateAndUpdateReadyOps(rOps, ski); +- } +- } else { +- ski.channel.translateAndSetReadyOps(rOps, ski); +- if ((ski.nioReadyOps() & ski.nioInterestOps()) != 0) { +- selectedKeys.add(ski); +- numKeysUpdated++; +- me.updateCount = updateCount; +- } +- } +- } +- } +- } +- +- if (interrupted) { +- // Clear the wakeup pipe +- synchronized (interruptLock) { +- IOUtil.drain(fd0); +- interruptTriggered = false; +- } +- } +- return numKeysUpdated; +- } +- +- +- protected void implClose() throws IOException { +- if (!closed) { +- closed = true; +- +- // prevent further wakeup +- synchronized (interruptLock) { +- interruptTriggered = true; +- } +- +- FileDispatcherImpl.closeIntFD(fd0); +- FileDispatcherImpl.closeIntFD(fd1); +- if (kqueueWrapper != null) { +- kqueueWrapper.close(); +- kqueueWrapper = null; +- selectedKeys = null; +- +- // Deregister channels +- Iterator<SelectionKey> i = keys.iterator(); +- while (i.hasNext()) { +- SelectionKeyImpl ski = (SelectionKeyImpl)i.next(); +- deregister(ski); +- SelectableChannel selch = ski.channel(); +- if (!selch.isOpen() && !selch.isRegistered()) +- ((SelChImpl)selch).kill(); +- i.remove(); +- } +- totalChannels = 0; +- } +- fd0 = -1; +- fd1 = -1; +- } +- } +- +- +- protected void implRegister(SelectionKeyImpl ski) { +- if (closed) +- throw new ClosedSelectorException(); +- int fd = IOUtil.fdVal(ski.channel.getFD()); +- fdMap.put(Integer.valueOf(fd), new MapEntry(ski)); +- totalChannels++; +- keys.add(ski); +- } +- +- +- protected void implDereg(SelectionKeyImpl ski) throws IOException { +- int fd = ski.channel.getFDVal(); +- fdMap.remove(Integer.valueOf(fd)); +- kqueueWrapper.release(ski.channel); +- totalChannels--; +- keys.remove(ski); +- selectedKeys.remove(ski); +- deregister((AbstractSelectionKey)ski); +- SelectableChannel selch = ski.channel(); +- if (!selch.isOpen() && !selch.isRegistered()) +- ((SelChImpl)selch).kill(); +- } +- +- +- public void putEventOps(SelectionKeyImpl ski, int ops) { +- if (closed) +- throw new ClosedSelectorException(); +- kqueueWrapper.setInterest(ski.channel, ops); +- } +- +- +- public Selector wakeup() { +- synchronized (interruptLock) { +- if (!interruptTriggered) { +- kqueueWrapper.interrupt(); +- interruptTriggered = true; +- } +- } +- return this; +- } +-} +--- ./jdk/src/macosx/classes/sun/nio/ch/KQueueSelectorProvider.java Tue Sep 09 12:00:58 2014 -0700 ++++ /dev/null Thu Jan 01 00:00:00 1970 +0000 +@@ -1,44 +0,0 @@ +-/* +- * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. +- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +- * +- * This code is free software; you can redistribute it and/or modify it +- * under the terms of the GNU General Public License version 2 only, as +- * published by the Free Software Foundation. Oracle designates this +- * particular file as subject to the "Classpath" exception as provided +- * by Oracle in the LICENSE file that accompanied this code. +- * +- * This code is distributed in the hope that it will be useful, but WITHOUT +- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +- * version 2 for more details (a copy is included in the LICENSE file that +- * accompanied this code). +- * +- * You should have received a copy of the GNU General Public License version +- * 2 along with this work; if not, write to the Free Software Foundation, +- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +- * +- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +- * or visit www.oracle.com if you need additional information or have any +- * questions. +- */ +- +-/* +- * KQueueSelectorProvider.java +- * Implementation of Selector using FreeBSD / Mac OS X kqueues +- * Derived from Sun's DevPollSelectorProvider +- */ +- +-package sun.nio.ch; +- +-import java.io.IOException; +-import java.nio.channels.*; +-import java.nio.channels.spi.*; +- +-public class KQueueSelectorProvider +-extends SelectorProviderImpl +-{ +- public AbstractSelector openSelector() throws IOException { +- return new KQueueSelectorImpl(this); +- } +-} +--- ./jdk/src/macosx/native/sun/nio/ch/KQueueArrayWrapper.c Tue Sep 09 12:00:58 2014 -0700 ++++ /dev/null Thu Jan 01 00:00:00 1970 +0000 +@@ -1,171 +0,0 @@ +-/* +- * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. +- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +- * +- * This code is free software; you can redistribute it and/or modify it +- * under the terms of the GNU General Public License version 2 only, as +- * published by the Free Software Foundation. Oracle designates this +- * particular file as subject to the "Classpath" exception as provided +- * by Oracle in the LICENSE file that accompanied this code. +- * +- * This code is distributed in the hope that it will be useful, but WITHOUT +- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +- * version 2 for more details (a copy is included in the LICENSE file that +- * accompanied this code). +- * +- * You should have received a copy of the GNU General Public License version +- * 2 along with this work; if not, write to the Free Software Foundation, +- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +- * +- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +- * or visit www.oracle.com if you need additional information or have any +- * questions. +- */ +- +-/* +- * KQueueArrayWrapper.c +- * Implementation of Selector using FreeBSD / Mac OS X kqueues +- * Derived from Sun's DevPollArrayWrapper +- */ +- +- +-#include "jni.h" +-#include "jni_util.h" +-#include "jvm.h" +-#include "jlong.h" +- +-#include <sys/types.h> +-#include <sys/event.h> +-#include <sys/time.h> +- +-JNIEXPORT void JNICALL +-Java_sun_nio_ch_KQueueArrayWrapper_initStructSizes(JNIEnv *env, jclass clazz) +-{ +-#define CHECK_EXCEPTION() { \ +- if ((*env)->ExceptionCheck(env)) { \ +- goto exceptionOccurred; \ +- } \ +-} +- +-#define CHECK_ERROR_AND_EXCEPTION(_field) { \ +- if (_field == NULL) { \ +- goto badField; \ +- } \ +- CHECK_EXCEPTION(); \ +-} +- +- +- jfieldID field; +- +- field = (*env)->GetStaticFieldID(env, clazz, "EVFILT_READ", "S"); +- CHECK_ERROR_AND_EXCEPTION(field); +- (*env)->SetStaticShortField(env, clazz, field, EVFILT_READ); +- CHECK_EXCEPTION(); +- +- field = (*env)->GetStaticFieldID(env, clazz, "EVFILT_WRITE", "S"); +- CHECK_ERROR_AND_EXCEPTION(field); +- (*env)->SetStaticShortField(env, clazz, field, EVFILT_WRITE); +- CHECK_EXCEPTION(); +- +- field = (*env)->GetStaticFieldID(env, clazz, "SIZEOF_KEVENT", "S"); +- CHECK_ERROR_AND_EXCEPTION(field); +- (*env)->SetStaticShortField(env, clazz, field, (short) sizeof(struct kevent)); +- CHECK_EXCEPTION(); +- +- field = (*env)->GetStaticFieldID(env, clazz, "FD_OFFSET", "S"); +- CHECK_ERROR_AND_EXCEPTION(field); +- (*env)->SetStaticShortField(env, clazz, field, (short) offsetof(struct kevent, ident)); +- CHECK_EXCEPTION(); +- +- field = (*env)->GetStaticFieldID(env, clazz, "FILTER_OFFSET", "S"); +- CHECK_ERROR_AND_EXCEPTION(field); +- (*env)->SetStaticShortField(env, clazz, field, (short) offsetof(struct kevent, filter)); +- CHECK_EXCEPTION(); +- return; +- +-badField: +- return; +- +-exceptionOccurred: +- return; +- +-#undef CHECK_EXCEPTION +-#undef CHECK_ERROR_AND_EXCEPTION +-} +- +-JNIEXPORT jint JNICALL +-Java_sun_nio_ch_KQueueArrayWrapper_init(JNIEnv *env, jobject this) +-{ +- int kq = kqueue(); +- if (kq < 0) { +- JNU_ThrowIOExceptionWithLastError(env, "KQueueArrayWrapper: kqueue() failed"); +- } +- return kq; +-} +- +- +-JNIEXPORT void JNICALL +-Java_sun_nio_ch_KQueueArrayWrapper_register0(JNIEnv *env, jobject this, +- jint kq, jint fd, jint r, jint w) +-{ +- struct kevent changes[2]; +- struct kevent errors[2]; +- struct timespec dontBlock = {0, 0}; +- +- // if (r) then { register for read } else { unregister for read } +- // if (w) then { register for write } else { unregister for write } +- // Ignore errors - they're probably complaints about deleting non- +- // added filters - but provide an error array anyway because +- // kqueue behaves erratically if some of its registrations fail. +- EV_SET(&changes[0], fd, EVFILT_READ, r ? EV_ADD : EV_DELETE, 0, 0, 0); +- EV_SET(&changes[1], fd, EVFILT_WRITE, w ? EV_ADD : EV_DELETE, 0, 0, 0); +- kevent(kq, changes, 2, errors, 2, &dontBlock); +-} +- +- +-JNIEXPORT jint JNICALL +-Java_sun_nio_ch_KQueueArrayWrapper_kevent0(JNIEnv *env, jobject this, jint kq, +- jlong kevAddr, jint kevCount, +- jlong timeout) +-{ +- struct kevent *kevs = (struct kevent *)jlong_to_ptr(kevAddr); +- struct timespec ts; +- struct timespec *tsp; +- int result; +- +- // Java timeout is in milliseconds. Convert to struct timespec. +- // Java timeout == -1 : wait forever : timespec timeout of NULL +- // Java timeout == 0 : return immediately : timespec timeout of zero +- if (timeout >= 0) { +- ts.tv_sec = timeout / 1000; +- ts.tv_nsec = (timeout % 1000) * 1000000; //nanosec = 1 million millisec +- tsp = &ts; +- } else { +- tsp = NULL; +- } +- +- result = kevent(kq, NULL, 0, kevs, kevCount, tsp); +- +- if (result < 0) { +- if (errno == EINTR) { +- // ignore EINTR, pretend nothing was selected +- result = 0; +- } else { +- JNU_ThrowIOExceptionWithLastError(env, "KQueueArrayWrapper: kqueue failed"); +- } +- } +- +- return result; +-} +- +- +-JNIEXPORT void JNICALL +-Java_sun_nio_ch_KQueueArrayWrapper_interrupt(JNIEnv *env, jclass cls, jint fd) +-{ +- char c = 1; +- if (1 != write(fd, &c, 1)) { +- JNU_ThrowIOExceptionWithLastError(env, "KQueueArrayWrapper: interrupt failed"); +- } +-} +- +--- ./jdk/src/share/bin/jli_util.h Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/share/bin/jli_util.h Wed Nov 05 12:14:24 2014 -0800 @@ -82,7 +82,7 @@ #define _LARGFILE64_SOURCE #define JLI_Lseek lseek64 @@ -5213,9 +8548,9 @@ +#ifdef _ALLBSD_SOURCE #define JLI_Lseek lseek #endif - #endif /* _WIN32 */ ---- jdk/src/share/classes/sun/awt/FontConfiguration.java -+++ jdk/src/share/classes/sun/awt/FontConfiguration.java + #ifdef _AIX +--- ./jdk/src/share/classes/sun/awt/FontConfiguration.java Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/share/classes/sun/awt/FontConfiguration.java Wed Nov 05 12:14:24 2014 -0800 @@ -1146,7 +1146,7 @@ */ HashMap<String, Boolean> existsMap; @@ -5225,8 +8560,8 @@ return false; } else if (existsMap == null) { existsMap = new HashMap<String, Boolean>(); ---- jdk/src/share/classes/sun/awt/OSInfo.java -+++ jdk/src/share/classes/sun/awt/OSInfo.java +--- ./jdk/src/share/classes/sun/awt/OSInfo.java Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/share/classes/sun/awt/OSInfo.java Wed Nov 05 12:14:24 2014 -0800 @@ -39,6 +39,7 @@ WINDOWS, LINUX, @@ -5246,8 +8581,8 @@ if (osName.contains("OS X")) { return MACOSX; } ---- jdk/src/share/classes/sun/font/FontUtilities.java -+++ jdk/src/share/classes/sun/font/FontUtilities.java +--- ./jdk/src/share/classes/sun/font/FontUtilities.java Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/share/classes/sun/font/FontUtilities.java Wed Nov 05 12:14:24 2014 -0800 @@ -48,6 +48,8 @@ public static boolean isLinux; @@ -5266,8 +8601,8 @@ isMacOSX = osName.contains("OS X"); // TODO: MacOSX String t2kStr = System.getProperty("sun.java2d.font.scaler"); ---- jdk/src/share/classes/sun/font/SunFontManager.java -+++ jdk/src/share/classes/sun/font/SunFontManager.java +--- ./jdk/src/share/classes/sun/font/SunFontManager.java Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/share/classes/sun/font/SunFontManager.java Wed Nov 05 12:14:24 2014 -0800 @@ -418,7 +418,7 @@ * registerFonts method as on-screen these JRE fonts * always go through the T2K rasteriser. @@ -5277,19 +8612,19 @@ /* Linux font configuration uses these fonts */ registerFontDir(jreFontDirName); } ---- jdk/src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java -+++ jdk/src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java +--- ./jdk/src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java Wed Nov 05 12:14:24 2014 -0800 @@ -1298,7 +1298,7 @@ String osName = AccessController.doPrivileged( new GetPropertyAction("os.name")); - if ("SunOS".equals(osName) || "Linux".equals(osName) + if ("SunOS".equals(osName) || "Linux".equals(osName) || "AIX".equals(osName) - || osName.contains("OS X")) { + || osName.endsWith("BSD") || osName.contains("OS X")) { charset("x-COMPOUND_TEXT", "COMPOUND_TEXT", new String[] { "COMPOUND_TEXT", // JDK historical ---- jdk/src/share/classes/sun/print/PSPrinterJob.java -+++ jdk/src/share/classes/sun/print/PSPrinterJob.java +--- ./jdk/src/share/classes/sun/print/PSPrinterJob.java Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/share/classes/sun/print/PSPrinterJob.java Wed Nov 05 12:14:24 2014 -0800 @@ -1587,7 +1587,7 @@ } @@ -5299,8 +8634,8 @@ execCmd = new String[ncomps]; execCmd[n++] = "/usr/bin/lpr"; if ((pFlags & PRINTER) != 0) { ---- jdk/src/share/classes/sun/security/jgss/GSSManagerImpl.java -+++ jdk/src/share/classes/sun/security/jgss/GSSManagerImpl.java +--- ./jdk/src/share/classes/sun/security/jgss/GSSManagerImpl.java Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/share/classes/sun/security/jgss/GSSManagerImpl.java Wed Nov 05 12:14:24 2014 -0800 @@ -48,6 +48,7 @@ public Boolean run() { String osname = System.getProperty("os.name"); @@ -5309,8 +8644,8 @@ osname.contains("OS X") || osname.startsWith("Linux")) { return new Boolean(System.getProperty ---- jdk/src/share/classes/sun/security/jgss/wrapper/SunNativeProvider.java -+++ jdk/src/share/classes/sun/security/jgss/wrapper/SunNativeProvider.java +--- ./jdk/src/share/classes/sun/security/jgss/wrapper/SunNativeProvider.java Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/share/classes/sun/security/jgss/wrapper/SunNativeProvider.java Wed Nov 05 12:14:24 2014 -0800 @@ -90,6 +90,12 @@ "libgssapi_krb5.so", "libgssapi_krb5.so.2", @@ -5324,8 +8659,8 @@ } else if (osname.contains("OS X")) { gssLibs = new String[]{ "libgssapi_krb5.dylib", ---- jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java -+++ jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java +--- ./jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java Wed Nov 05 12:14:24 2014 -0800 @@ -403,7 +403,8 @@ long uid = 0; @@ -5336,16 +8671,17 @@ try { Class<?> c = Class.forName ("com.sun.security.auth.module.UnixSystem"); ---- jdk/src/share/classes/sun/tools/attach/META-INF/services/com.sun.tools.attach.spi.AttachProvider -+++ jdk/src/share/classes/sun/tools/attach/META-INF/services/com.sun.tools.attach.spi.AttachProvider -@@ -31,3 +31,4 @@ +--- ./jdk/src/share/classes/sun/tools/attach/META-INF/services/com.sun.tools.attach.spi.AttachProvider Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/share/classes/sun/tools/attach/META-INF/services/com.sun.tools.attach.spi.AttachProvider Wed Nov 05 12:14:24 2014 -0800 +@@ -31,4 +31,5 @@ #[windows]sun.tools.attach.WindowsAttachProvider #[linux]sun.tools.attach.LinuxAttachProvider #[macosx]sun.tools.attach.BsdAttachProvider +#[bsd]sun.tools.attach.BsdAttachProvider ---- jdk/src/share/lib/security/java.security-bsd -+++ jdk/src/share/lib/security/java.security-bsd -@@ -0,0 +1,500 @@ + #[aix]sun.tools.attach.AixAttachProvider +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ ./jdk/src/share/lib/security/java.security-bsd Wed Nov 05 12:14:24 2014 -0800 +@@ -0,0 +1,498 @@ +# +# This is the "master security properties file". +# @@ -5561,7 +8897,6 @@ + jdk.nashorn.tools.,\ + com.sun.activation.registries. + -+ +# +# List of comma-separated packages that start with or equal this string +# will cause a security exception to be thrown when @@ -5609,7 +8944,6 @@ + jdk.nashorn.tools.,\ + com.sun.activation.registries. + -+ +# +# Determines whether this properties file can be appended to +# or overridden on the command line via -Djava.security.properties @@ -5846,8 +9180,8 @@ +# +# Example: +# jdk.tls.disabledAlgorithms=MD5, SHA1, DSA, RSA keySize < 2048 ---- jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp -+++ jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp +--- ./jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp Wed Nov 05 12:14:24 2014 -0800 @@ -62,7 +62,7 @@ #endif // End of ZLIB @@ -5857,9 +9191,9 @@ #define SWAP_BYTES(a) \ ((((a) << 8) & 0xff00) | 0x00ff) & (((a) >> 8) | 0xff00) #else ---- jdk/src/share/native/com/sun/media/sound/DirectAudioDevice.c -+++ jdk/src/share/native/com/sun/media/sound/DirectAudioDevice.c -@@ -120,7 +120,7 @@ +--- ./jdk/src/share/native/com/sun/media/sound/DirectAudioDevice.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/share/native/com/sun/media/sound/DirectAudioDevice.c Wed Nov 05 12:14:24 2014 -0800 +@@ -121,7 +121,7 @@ } /* conversion from/to 16 bit signed little endian to native endian samples */ @@ -5868,7 +9202,7 @@ #define MAP_LE_SHORT2SAMPLE(sh) ((MAP_Sample) (sh)) #define MAP_SAMPLE2LE_SHORT(sample) (sample) #define MAP_SAMPLE2LE_SHORT_CLIP(sample) MAP_ClipAndConvertToShort(sample) -@@ -131,7 +131,7 @@ +@@ -132,7 +132,7 @@ #endif /* conversion from/to 16 bit signed big endian to native endian samples */ @@ -5877,7 +9211,7 @@ #define MAP_BE_SHORT2SAMPLE(sh) ((MAP_Sample) (sh)) #define MAP_SAMPLE2BE_SHORT(sample) (sample) #define MAP_SAMPLE2BE_SHORT_CLIP(sample) MAP_ClipAndConvertToShort(sample) -@@ -150,7 +150,7 @@ +@@ -151,7 +151,7 @@ #define MAP_SAMPLE2INT8_CLIP(sample) MAP_ClipAndConvertToByte(sample) /* macros for endian conversion */ @@ -5886,8 +9220,8 @@ #define MAP_NATIVE2LE16(a) (a) #define MAP_NATIVE2BE16(a) MAP_SWAP16_impl(a) #define MAP_NATIVE2LE32(a) (a) ---- jdk/src/share/native/com/sun/media/sound/Utilities.c -+++ jdk/src/share/native/com/sun/media/sound/Utilities.c +--- ./jdk/src/share/native/com/sun/media/sound/Utilities.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/share/native/com/sun/media/sound/Utilities.c Wed Nov 05 12:14:24 2014 -0800 @@ -28,7 +28,7 @@ @@ -5897,8 +9231,8 @@ return 0; #else return 1; ---- jdk/src/share/native/java/lang/fdlibm/include/fdlibm.h -+++ jdk/src/share/native/java/lang/fdlibm/include/fdlibm.h +--- ./jdk/src/share/native/java/lang/fdlibm/include/fdlibm.h Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/share/native/java/lang/fdlibm/include/fdlibm.h Wed Nov 05 12:14:24 2014 -0800 @@ -40,7 +40,7 @@ #endif #endif @@ -5908,9 +9242,9 @@ #define __HI(x) *(1+(int*)&x) #define __LO(x) *(int*)&x #define __HIp(x) *(1+(int*)x) ---- jdk/src/share/native/sun/awt/image/awt_parseImage.c -+++ jdk/src/share/native/sun/awt/image/awt_parseImage.c -@@ -599,7 +599,7 @@ +--- ./jdk/src/share/native/sun/awt/image/awt_parseImage.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/share/native/sun/awt/image/awt_parseImage.c Wed Nov 05 12:14:24 2014 -0800 +@@ -623,7 +623,7 @@ switch(type) { case java_awt_image_BufferedImage_TYPE_INT_ARGB: case java_awt_image_BufferedImage_TYPE_INT_ARGB_PRE: @@ -5919,7 +9253,7 @@ colorOrder[0] = 2; colorOrder[1] = 1; colorOrder[2] = 0; -@@ -612,7 +612,7 @@ +@@ -636,7 +636,7 @@ #endif break; case java_awt_image_BufferedImage_TYPE_INT_BGR: @@ -5928,7 +9262,7 @@ colorOrder[0] = 0; colorOrder[1] = 1; colorOrder[2] = 2; -@@ -623,7 +623,7 @@ +@@ -647,7 +647,7 @@ #endif break; case java_awt_image_BufferedImage_TYPE_INT_RGB: @@ -5937,9 +9271,9 @@ colorOrder[0] = 2; colorOrder[1] = 1; colorOrder[2] = 0; ---- jdk/src/share/native/sun/awt/medialib/awt_ImagingLib.c -+++ jdk/src/share/native/sun/awt/medialib/awt_ImagingLib.c -@@ -1175,7 +1175,7 @@ +--- ./jdk/src/share/native/sun/awt/medialib/awt_ImagingLib.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/share/native/sun/awt/medialib/awt_ImagingLib.c Wed Nov 05 12:14:24 2014 -0800 +@@ -1176,7 +1176,7 @@ #define NLUT 8 @@ -5948,8 +9282,8 @@ #define INDEXES { 3, 2, 1, 0, 7, 6, 5, 4 } #else #define INDEXES { 0, 1, 2, 3, 4, 5, 6, 7 } ---- jdk/src/share/native/sun/awt/medialib/mlib_ImageConv2x2_f.c -+++ jdk/src/share/native/sun/awt/medialib/mlib_ImageConv2x2_f.c +--- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv2x2_f.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv2x2_f.c Wed Nov 05 12:14:24 2014 -0800 @@ -86,7 +86,7 @@ #endif /* MLIB_USE_FTOI_CLAMPING */ @@ -5989,8 +9323,8 @@ #endif /* _NO_LONGLONG */ ---- jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_16ext.c -+++ jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_16ext.c +--- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_16ext.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_16ext.c Wed Nov 05 12:14:24 2014 -0800 @@ -126,7 +126,7 @@ #define D2I(x) CLAMP_S32((x) SAT_OFF) @@ -6030,8 +9364,8 @@ #endif /* _NO_LONGLONG */ /***************************************************************/ ---- jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_16nw.c -+++ jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_16nw.c +--- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_16nw.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_16nw.c Wed Nov 05 12:14:24 2014 -0800 @@ -94,7 +94,7 @@ #define D2I(x) CLAMP_S32((x) SAT_OFF) @@ -6071,8 +9405,8 @@ #endif /* _NO_LONGLONG */ /***************************************************************/ ---- jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_8ext.c -+++ jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_8ext.c +--- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_8ext.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_8ext.c Wed Nov 05 12:14:24 2014 -0800 @@ -126,7 +126,7 @@ #define D2I(x) CLAMP_S32((x) SAT_OFF) @@ -6112,8 +9446,8 @@ #endif /* _NO_LONGLONG */ /***************************************************************/ ---- jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_8nw.c -+++ jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_8nw.c +--- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_8nw.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_8nw.c Wed Nov 05 12:14:24 2014 -0800 @@ -95,7 +95,7 @@ #define D2I(x) CLAMP_S32((x) SAT_OFF) @@ -6153,8 +9487,8 @@ #endif /* _NO_LONGLONG */ /***************************************************************/ ---- jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_u16ext.c -+++ jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_u16ext.c +--- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_u16ext.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_u16ext.c Wed Nov 05 12:14:24 2014 -0800 @@ -126,7 +126,7 @@ #define D2I(x) CLAMP_S32((x) SAT_OFF) @@ -6194,8 +9528,8 @@ #endif /* _NO_LONGLONG */ /***************************************************************/ ---- jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_u16nw.c -+++ jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_u16nw.c +--- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_u16nw.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_u16nw.c Wed Nov 05 12:14:24 2014 -0800 @@ -94,7 +94,7 @@ #define D2I(x) CLAMP_S32((x) SAT_OFF) @@ -6235,8 +9569,8 @@ #endif /* _NO_LONGLONG */ /***************************************************************/ ---- jdk/src/share/native/sun/awt/medialib/mlib_ImageCopy_Bit.c -+++ jdk/src/share/native/sun/awt/medialib/mlib_ImageCopy_Bit.c +--- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageCopy_Bit.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageCopy_Bit.c Wed Nov 05 12:14:24 2014 -0800 @@ -95,7 +95,7 @@ dst = dp[0]; if (ld_offset + size < 32) { @@ -6456,8 +9790,8 @@ } #else /* _LONGLONG */ ---- jdk/src/share/native/sun/awt/medialib/mlib_ImageLookUp_64.c -+++ jdk/src/share/native/sun/awt/medialib/mlib_ImageLookUp_64.c +--- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageLookUp_64.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageLookUp_64.c Wed Nov 05 12:14:24 2014 -0800 @@ -168,7 +168,7 @@ } @@ -6738,8 +10072,8 @@ dp[12] = t0; dp[13] = t1; dp[14] = t2; ---- jdk/src/share/native/sun/awt/medialib/mlib_ImageLookUp_Bit.c -+++ jdk/src/share/native/sun/awt/medialib/mlib_ImageLookUp_Bit.c +--- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageLookUp_Bit.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageLookUp_Bit.c Wed Nov 05 12:14:24 2014 -0800 @@ -88,7 +88,7 @@ } d64_2_f32; @@ -6891,8 +10225,8 @@ ((mlib_u32*)lh)[0] = l; ((mlib_u32*)lh)[1] = l; ((mlib_u32*)lh)[2] = l; ((mlib_u32*)lh)[3] = h; ---- jdk/src/share/native/sun/awt/medialib/mlib_ImageUtils.c -+++ jdk/src/share/native/sun/awt/medialib/mlib_ImageUtils.c +--- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageUtils.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageUtils.c Wed Nov 05 12:14:24 2014 -0800 @@ -30,7 +30,7 @@ typedef union { mlib_d64 db; @@ -6902,8 +10236,8 @@ mlib_s32 int1, int0; #else mlib_s32 int0, int1; ---- jdk/src/share/native/sun/awt/medialib/mlib_c_ImageCopy.c -+++ jdk/src/share/native/sun/awt/medialib/mlib_c_ImageCopy.c +--- ./jdk/src/share/native/sun/awt/medialib/mlib_c_ImageCopy.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_c_ImageCopy.c Wed Nov 05 12:14:24 2014 -0800 @@ -275,11 +275,11 @@ for (i = 0; j <= (b_size - 4); j += 4, i++) { src0 = src1; @@ -7002,8 +10336,8 @@ s0 = s1; dp += SIZE; sp += SIZE; ---- jdk/src/share/native/sun/awt/medialib/mlib_c_ImageLookUp_f.c -+++ jdk/src/share/native/sun/awt/medialib/mlib_c_ImageLookUp_f.c +--- ./jdk/src/share/native/sun/awt/medialib/mlib_c_ImageLookUp_f.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_c_ImageLookUp_f.c Wed Nov 05 12:14:24 2014 -0800 @@ -120,7 +120,7 @@ } \ } @@ -8236,8 +11570,8 @@ dp[12] = t0; dp[13] = t1; dp[14] = t2; ---- jdk/src/share/native/sun/awt/medialib/mlib_image.h -+++ jdk/src/share/native/sun/awt/medialib/mlib_image.h +--- ./jdk/src/share/native/sun/awt/medialib/mlib_image.h Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_image.h Wed Nov 05 12:14:24 2014 -0800 @@ -27,9 +27,6 @@ #ifndef MLIB_IMAGE_H #define MLIB_IMAGE_H @@ -8248,8 +11582,8 @@ #include <mlib_types.h> #include <mlib_status.h> #include <mlib_sys.h> ---- jdk/src/share/native/sun/awt/medialib/mlib_sys.c -+++ jdk/src/share/native/sun/awt/medialib/mlib_sys.c +--- ./jdk/src/share/native/sun/awt/medialib/mlib_sys.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_sys.c Wed Nov 05 12:14:24 2014 -0800 @@ -29,7 +29,7 @@ #ifdef MACOSX #include <unistd.h> @@ -8259,7 +11593,7 @@ #include <malloc.h> #endif #include <mlib_types.h> -@@ -94,6 +94,9 @@ +@@ -97,6 +97,9 @@ return (void *) malloc(size); #elif defined(MACOSX) return valloc(size); @@ -8269,8 +11603,8 @@ #else return (void *) memalign(8, size); #endif /* _MSC_VER */ ---- jdk/src/share/native/sun/font/layout/LEStandalone.h -+++ jdk/src/share/native/sun/font/layout/LEStandalone.h +--- ./jdk/src/share/native/sun/font/layout/LEStandalone.h Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/share/native/sun/font/layout/LEStandalone.h Wed Nov 05 12:14:24 2014 -0800 @@ -136,7 +136,7 @@ #define U_CAPI extern "C" @@ -8280,8 +11614,8 @@ #define U_IS_BIG_ENDIAN 0 #endif #endif ---- jdk/src/share/native/sun/java2d/cmm/lcms/LCMS.c -+++ jdk/src/share/native/sun/java2d/cmm/lcms/LCMS.c +--- ./jdk/src/share/native/sun/java2d/cmm/lcms/LCMS.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/share/native/sun/java2d/cmm/lcms/LCMS.c Wed Nov 05 12:14:24 2014 -0800 @@ -182,7 +182,7 @@ return 0L; } @@ -8291,8 +11625,8 @@ /* Reversing data packed into int for LE archs */ if (isInIntPacked) { inFormatter ^= DOSWAP_SH(1); ---- jdk/src/share/native/sun/java2d/cmm/lcms/lcms2.h -+++ jdk/src/share/native/sun/java2d/cmm/lcms/lcms2.h +--- ./jdk/src/share/native/sun/java2d/cmm/lcms/lcms2.h Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/share/native/sun/java2d/cmm/lcms/lcms2.h Wed Nov 05 12:14:24 2014 -0800 @@ -202,7 +202,7 @@ // Try to detect big endian platforms. This list can be endless, so only some checks are performed over here. // you can pass this toggle to the compiler by using -DCMS_USE_BIG_ENDIAN or something similar @@ -8302,9 +11636,9 @@ # define CMS_USE_BIG_ENDIAN 1 #endif ---- jdk/src/share/native/sun/management/DiagnosticCommandImpl.c -+++ jdk/src/share/native/sun/management/DiagnosticCommandImpl.c -@@ -26,6 +26,7 @@ +--- ./jdk/src/share/native/sun/management/DiagnosticCommandImpl.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/share/native/sun/management/DiagnosticCommandImpl.c Wed Nov 05 12:14:24 2014 -0800 +@@ -27,6 +27,7 @@ #include <jni.h> #include "management.h" #include "sun_management_DiagnosticCommandImpl.h" @@ -8312,8 +11646,8 @@ JNIEXPORT void JNICALL Java_sun_management_DiagnosticCommandImpl_setNotificationEnabled (JNIEnv *env, jobject dummy, jboolean enabled) { ---- jdk/src/solaris/back/util_md.h -+++ jdk/src/solaris/back/util_md.h +--- ./jdk/src/solaris/back/util_md.h Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/solaris/back/util_md.h Wed Nov 05 12:14:24 2014 -0800 @@ -51,7 +51,7 @@ /* On little endian machines, convert java big endian numbers. */ @@ -8323,8 +11657,8 @@ #define HOST_TO_JAVA_CHAR(x) (((x & 0xff) << 8) | ((x >> 8) & (0xff))) #define HOST_TO_JAVA_SHORT(x) (((x & 0xff) << 8) | ((x >> 8) & (0xff))) ---- jdk/src/solaris/bin/ergo_i586.c -+++ jdk/src/solaris/bin/ergo_i586.c +--- ./jdk/src/solaris/bin/ergo_i586.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/solaris/bin/ergo_i586.c Wed Nov 05 12:14:24 2014 -0800 @@ -106,7 +106,7 @@ #endif /* __solaris__ */ @@ -8334,9 +11668,18 @@ /* * A utility method for asking the CPU about itself. ---- jdk/src/solaris/bin/java_md_solinux.c -+++ jdk/src/solaris/bin/java_md_solinux.c -@@ -297,9 +297,9 @@ +@@ -197,7 +197,7 @@ + (result == JNI_TRUE ? "true" : "false")); + return result; + } +-#endif /* __linux__ */ ++#endif /* __linux__ || _ALLBSD_SOURCE */ + + /* + * Routines shared by solaris-i586 and linux-i586. +--- ./jdk/src/solaris/bin/java_md_solinux.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/solaris/bin/java_md_solinux.c Wed Nov 05 12:14:24 2014 -0800 +@@ -306,9 +306,9 @@ if (llp == NULL && dmllp == NULL) { return JNI_FALSE; } @@ -8348,7 +11691,7 @@ * LD_LIBRARY_PATH to the empty string for security purposes. (In contrast, * on Solaris the LD_LIBRARY_PATH variable for a privileged binary does not * lose its settings; but the dynamic linker does apply more scrutiny to the -@@ -310,12 +310,18 @@ +@@ -319,12 +319,18 @@ * libraries will be handled by the RPATH. In reality, this check is * redundant, as the previous check for a non-null LD_LIBRARY_PATH will * return back to the calling function forthwith, it is left here to safe @@ -8369,7 +11712,7 @@ /* * Prevent recursions. Since LD_LIBRARY_PATH is the one which will be set by -@@ -900,8 +906,9 @@ +@@ -919,8 +925,9 @@ * onwards the filename returned in DL_info structure from dladdr is * an absolute pathname so technically realpath isn't required. * On Linux we read the executable name from /proc/self/exe. @@ -8381,7 +11724,7 @@ */ const char* SetExecname(char **argv) -@@ -928,9 +935,13 @@ +@@ -947,9 +954,13 @@ } } } @@ -8396,7 +11739,7 @@ char buf[PATH_MAX+1]; int len = readlink(self, buf, PATH_MAX); if (len >= 0) { -@@ -938,7 +949,7 @@ +@@ -957,7 +968,7 @@ exec_path = JLI_StringDup(buf); } } @@ -8405,34 +11748,7 @@ { /* Not implemented */ } -@@ -1000,7 +1011,7 @@ - int - ContinueInNewThread0(int (JNICALL *continuation)(void *), jlong stack_size, void * args) { - int rslt; --#ifdef __linux__ -+#ifndef __solaris__ - pthread_t tid; - pthread_attr_t attr; - pthread_attr_init(&attr); -@@ -1025,7 +1036,7 @@ - } - - pthread_attr_destroy(&attr); --#else /* ! __linux__ */ -+#else /* __solaris__ */ - thread_t tid; - long flags = 0; - if (thr_create(NULL, stack_size, (void *(*)(void *))continuation, args, flags, &tid) == 0) { -@@ -1036,7 +1047,7 @@ - /* See above. Continue in current thread if thr_create() failed */ - rslt = continuation(args); - } --#endif /* __linux__ */ -+#endif /* ! __solaris__ */ - return rslt; - } - -@@ -1044,13 +1055,13 @@ +@@ -1063,13 +1074,13 @@ #define MAX_PID_STR_SZ 20 void SetJavaLauncherPlatformProps() { @@ -8449,8 +11765,8 @@ } int ---- jdk/src/solaris/bin/java_md_solinux.h -+++ jdk/src/solaris/bin/java_md_solinux.h +--- ./jdk/src/solaris/bin/java_md_solinux.h Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/solaris/bin/java_md_solinux.h Wed Nov 05 12:14:24 2014 -0800 @@ -26,17 +26,26 @@ #ifndef JAVA_MD_SOLINUX_H #define JAVA_MD_SOLINUX_H @@ -8481,31 +11797,18 @@ /* pointer to environment */ extern char **environ; -@@ -48,16 +57,19 @@ - #ifdef __linux__ - static const char *system_dir = "/usr/java"; - static const char *user_dir = "/java"; +@@ -48,6 +57,9 @@ + #ifdef __solaris__ + static const char *system_dir = "/usr/jdk"; + static const char *user_dir = "/jdk"; +#elif defined(__FreeBSD__) +static const char *system_dir = PACKAGE_PATH "/openjdk8"; +static const char *user_dir = "/java"; - #else /* Solaris */ - static const char *system_dir = "/usr/jdk"; - static const char *user_dir = "/jdk"; - #endif - - #include <dlfcn.h> --#ifdef __linux__ --#include <pthread.h> --#else -+#ifdef __solaris__ - #include <thread.h> -+#else -+#include <pthread.h> - #endif - - #define JVM_DLL "libjvm.so" ---- jdk/src/solaris/classes/java/lang/UNIXProcess.java.bsd -+++ jdk/src/solaris/classes/java/lang/UNIXProcess.java.bsd + #else /* !__solaris__, i.e. Linux, AIX,.. */ + static const char *system_dir = "/usr/java"; + static const char *user_dir = "/java"; +--- ./jdk/src/solaris/classes/java/lang/UNIXProcess.java.bsd Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/solaris/classes/java/lang/UNIXProcess.java.bsd Wed Nov 05 12:14:24 2014 -0800 @@ -94,8 +94,9 @@ { public LaunchMechanism run() { @@ -8517,8 +11820,419 @@ String s = System.getProperty( "jdk.lang.Process.launchMechanism", "posix_spawn"); ---- jdk/src/solaris/classes/sun/awt/X11FontManager.java -+++ jdk/src/solaris/classes/sun/awt/X11FontManager.java +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ ./jdk/src/solaris/classes/java/lang/UNIXProcess.java.macosx Wed Nov 05 12:14:24 2014 -0800 +@@ -0,0 +1,408 @@ ++/* ++ * Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++package java.lang; ++ ++import java.io.BufferedInputStream; ++import java.io.BufferedOutputStream; ++import java.io.ByteArrayInputStream; ++import java.io.FileDescriptor; ++import java.io.FileInputStream; ++import java.io.FileOutputStream; ++import java.io.IOException; ++import java.io.InputStream; ++import java.io.OutputStream; ++import java.util.Arrays; ++import java.util.concurrent.Executors; ++import java.util.concurrent.Executor; ++import java.util.concurrent.ThreadFactory; ++import java.util.concurrent.TimeUnit; ++import java.security.AccessController; ++import static java.security.AccessController.doPrivileged; ++import java.security.PrivilegedAction; ++import java.security.PrivilegedActionException; ++import java.security.PrivilegedExceptionAction; ++ ++/** ++ * java.lang.Process subclass in the UNIX environment. ++ * ++ * @author Mario Wolczko and Ross Knippel. ++ * @author Konstantin Kladko (ported to Bsd) ++ * @author Martin Buchholz ++ */ ++final class UNIXProcess extends Process { ++ private static final sun.misc.JavaIOFileDescriptorAccess fdAccess ++ = sun.misc.SharedSecrets.getJavaIOFileDescriptorAccess(); ++ ++ private final int pid; ++ private int exitcode; ++ private boolean hasExited; ++ ++ private /* final */ OutputStream stdin; ++ private /* final */ InputStream stdout; ++ private /* final */ InputStream stderr; ++ ++ private static enum LaunchMechanism { ++ FORK(1), ++ POSIX_SPAWN(2); ++ ++ private int value; ++ LaunchMechanism(int x) {value = x;} ++ }; ++ ++ /* On BSD, the default is to spawn */ ++ private static final LaunchMechanism launchMechanism; ++ private static byte[] helperpath; ++ ++ private static byte[] toCString(String s) { ++ if (s == null) ++ return null; ++ byte[] bytes = s.getBytes(); ++ byte[] result = new byte[bytes.length + 1]; ++ System.arraycopy(bytes, 0, ++ result, 0, ++ bytes.length); ++ result[result.length-1] = (byte)0; ++ return result; ++ } ++ ++ static { ++ launchMechanism = AccessController.doPrivileged( ++ new PrivilegedAction<LaunchMechanism>() ++ { ++ public LaunchMechanism run() { ++ String javahome = System.getProperty("java.home"); ++ ++ helperpath = toCString(javahome + "/lib/jspawnhelper"); ++ String s = System.getProperty( ++ "jdk.lang.Process.launchMechanism", "posix_spawn"); ++ ++ try { ++ return LaunchMechanism.valueOf(s.toUpperCase()); ++ } catch (IllegalArgumentException e) { ++ throw new Error(s + " is not a supported " + ++ "process launch mechanism on this platform."); ++ } ++ } ++ }); ++ } ++ ++ /* this is for the reaping thread */ ++ private native int waitForProcessExit(int pid); ++ ++ /** ++ * Create a process. Depending on the mode flag, this is done by ++ * one of the following mechanisms. ++ * - fork(2) and exec(2) ++ * - posix_spawn(2) ++ * ++ * @param fds an array of three file descriptors. ++ * Indexes 0, 1, and 2 correspond to standard input, ++ * standard output and standard error, respectively. On ++ * input, a value of -1 means to create a pipe to connect ++ * child and parent processes. On output, a value which ++ * is not -1 is the parent pipe fd corresponding to the ++ * pipe which has been created. An element of this array ++ * is -1 on input if and only if it is <em>not</em> -1 on ++ * output. ++ * @return the pid of the subprocess ++ */ ++ private native int forkAndExec(int mode, byte[] helperpath, ++ byte[] prog, ++ byte[] argBlock, int argc, ++ byte[] envBlock, int envc, ++ byte[] dir, ++ int[] fds, ++ boolean redirectErrorStream) ++ throws IOException; ++ ++ /** ++ * The thread factory used to create "process reaper" daemon threads. ++ */ ++ private static class ProcessReaperThreadFactory implements ThreadFactory { ++ private final static ThreadGroup group = getRootThreadGroup(); ++ ++ private static ThreadGroup getRootThreadGroup() { ++ return doPrivileged(new PrivilegedAction<ThreadGroup> () { ++ public ThreadGroup run() { ++ ThreadGroup root = Thread.currentThread().getThreadGroup(); ++ while (root.getParent() != null) ++ root = root.getParent(); ++ return root; ++ }}); ++ } ++ ++ public Thread newThread(Runnable grimReaper) { ++ // Our thread stack requirement is quite modest. ++ Thread t = new Thread(group, grimReaper, "process reaper", 32768); ++ t.setDaemon(true); ++ // A small attempt (probably futile) to avoid priority inversion ++ t.setPriority(Thread.MAX_PRIORITY); ++ return t; ++ } ++ } ++ ++ /** ++ * The thread pool of "process reaper" daemon threads. ++ */ ++ private static final Executor processReaperExecutor = ++ doPrivileged(new PrivilegedAction<Executor>() { ++ public Executor run() { ++ return Executors.newCachedThreadPool ++ (new ProcessReaperThreadFactory()); ++ }}); ++ ++ UNIXProcess(final byte[] prog, ++ final byte[] argBlock, final int argc, ++ final byte[] envBlock, final int envc, ++ final byte[] dir, ++ final int[] fds, ++ final boolean redirectErrorStream) ++ throws IOException { ++ ++ pid = forkAndExec(launchMechanism.value, ++ helperpath, ++ prog, ++ argBlock, argc, ++ envBlock, envc, ++ dir, ++ fds, ++ redirectErrorStream); ++ ++ try { ++ doPrivileged(new PrivilegedExceptionAction<Void>() { ++ public Void run() throws IOException { ++ initStreams(fds); ++ return null; ++ }}); ++ } catch (PrivilegedActionException ex) { ++ throw (IOException) ex.getException(); ++ } ++ } ++ ++ static FileDescriptor newFileDescriptor(int fd) { ++ FileDescriptor fileDescriptor = new FileDescriptor(); ++ fdAccess.set(fileDescriptor, fd); ++ return fileDescriptor; ++ } ++ ++ void initStreams(int[] fds) throws IOException { ++ stdin = (fds[0] == -1) ? ++ ProcessBuilder.NullOutputStream.INSTANCE : ++ new ProcessPipeOutputStream(fds[0]); ++ ++ stdout = (fds[1] == -1) ? ++ ProcessBuilder.NullInputStream.INSTANCE : ++ new ProcessPipeInputStream(fds[1]); ++ ++ stderr = (fds[2] == -1) ? ++ ProcessBuilder.NullInputStream.INSTANCE : ++ new ProcessPipeInputStream(fds[2]); ++ ++ processReaperExecutor.execute(new Runnable() { ++ public void run() { ++ int exitcode = waitForProcessExit(pid); ++ UNIXProcess.this.processExited(exitcode); ++ }}); ++ } ++ ++ void processExited(int exitcode) { ++ synchronized (this) { ++ this.exitcode = exitcode; ++ hasExited = true; ++ notifyAll(); ++ } ++ ++ if (stdout instanceof ProcessPipeInputStream) ++ ((ProcessPipeInputStream) stdout).processExited(); ++ ++ if (stderr instanceof ProcessPipeInputStream) ++ ((ProcessPipeInputStream) stderr).processExited(); ++ ++ if (stdin instanceof ProcessPipeOutputStream) ++ ((ProcessPipeOutputStream) stdin).processExited(); ++ } ++ ++ public OutputStream getOutputStream() { ++ return stdin; ++ } ++ ++ public InputStream getInputStream() { ++ return stdout; ++ } ++ ++ public InputStream getErrorStream() { ++ return stderr; ++ } ++ ++ public synchronized int waitFor() throws InterruptedException { ++ while (!hasExited) { ++ wait(); ++ } ++ return exitcode; ++ } ++ ++ @Override ++ public synchronized boolean waitFor(long timeout, TimeUnit unit) ++ throws InterruptedException ++ { ++ if (hasExited) return true; ++ if (timeout <= 0) return false; ++ ++ long timeoutAsNanos = unit.toNanos(timeout); ++ long startTime = System.nanoTime(); ++ long rem = timeoutAsNanos; ++ ++ while (!hasExited && (rem > 0)) { ++ wait(Math.max(TimeUnit.NANOSECONDS.toMillis(rem), 1)); ++ rem = timeoutAsNanos - (System.nanoTime() - startTime); ++ } ++ return hasExited; ++ } ++ ++ public synchronized int exitValue() { ++ if (!hasExited) { ++ throw new IllegalThreadStateException("process hasn't exited"); ++ } ++ return exitcode; ++ } ++ ++ private static native void destroyProcess(int pid, boolean force); ++ private void destroy(boolean force) { ++ // There is a risk that pid will be recycled, causing us to ++ // kill the wrong process! So we only terminate processes ++ // that appear to still be running. Even with this check, ++ // there is an unavoidable race condition here, but the window ++ // is very small, and OSes try hard to not recycle pids too ++ // soon, so this is quite safe. ++ synchronized (this) { ++ if (!hasExited) ++ destroyProcess(pid, force); ++ } ++ try { stdin.close(); } catch (IOException ignored) {} ++ try { stdout.close(); } catch (IOException ignored) {} ++ try { stderr.close(); } catch (IOException ignored) {} ++ } ++ ++ public void destroy() { ++ destroy(false); ++ } ++ ++ @Override ++ public Process destroyForcibly() { ++ destroy(true); ++ return this; ++ } ++ ++ @Override ++ public synchronized boolean isAlive() { ++ return !hasExited; ++ } ++ ++ private static native void init(); ++ ++ static { ++ init(); ++ } ++ ++ /** ++ * A buffered input stream for a subprocess pipe file descriptor ++ * that allows the underlying file descriptor to be reclaimed when ++ * the process exits, via the processExited hook. ++ * ++ * This is tricky because we do not want the user-level InputStream to be ++ * closed until the user invokes close(), and we need to continue to be ++ * able to read any buffered data lingering in the OS pipe buffer. ++ */ ++ static class ProcessPipeInputStream extends BufferedInputStream { ++ private final Object closeLock = new Object(); ++ ++ ProcessPipeInputStream(int fd) { ++ super(new FileInputStream(newFileDescriptor(fd))); ++ } ++ private static byte[] drainInputStream(InputStream in) ++ throws IOException { ++ int n = 0; ++ int j; ++ byte[] a = null; ++ while ((j = in.available()) > 0) { ++ a = (a == null) ? new byte[j] : Arrays.copyOf(a, n + j); ++ n += in.read(a, n, j); ++ } ++ return (a == null || n == a.length) ? a : Arrays.copyOf(a, n); ++ } ++ ++ /** Called by the process reaper thread when the process exits. */ ++ synchronized void processExited() { ++ synchronized (closeLock) { ++ try { ++ InputStream in = this.in; ++ // this stream is closed if and only if: in == null ++ if (in != null) { ++ byte[] stragglers = drainInputStream(in); ++ in.close(); ++ this.in = (stragglers == null) ? ++ ProcessBuilder.NullInputStream.INSTANCE : ++ new ByteArrayInputStream(stragglers); ++ } ++ } catch (IOException ignored) {} ++ } ++ } ++ ++ @Override ++ public void close() throws IOException { ++ // BufferedInputStream#close() is not synchronized unlike most other methods. ++ // Synchronizing helps avoid race with processExited(). ++ synchronized (closeLock) { ++ super.close(); ++ } ++ } ++ } ++ ++ /** ++ * A buffered output stream for a subprocess pipe file descriptor ++ * that allows the underlying file descriptor to be reclaimed when ++ * the process exits, via the processExited hook. ++ */ ++ static class ProcessPipeOutputStream extends BufferedOutputStream { ++ ProcessPipeOutputStream(int fd) { ++ super(new FileOutputStream(newFileDescriptor(fd))); ++ } ++ ++ /** Called by the process reaper thread when the process exits. */ ++ synchronized void processExited() { ++ OutputStream out = this.out; ++ if (out != null) { ++ try { ++ out.close(); ++ } catch (IOException ignored) { ++ // We know of no reason to get an IOException, but if ++ // we do, there's nothing else to do but carry on. ++ } ++ this.out = ProcessBuilder.NullOutputStream.INSTANCE; ++ } ++ } ++ } ++} +--- ./jdk/src/solaris/classes/sun/awt/X11FontManager.java Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/solaris/classes/sun/awt/X11FontManager.java Wed Nov 05 12:14:24 2014 -0800 @@ -213,7 +213,7 @@ if (fontID != null) { fileName = (String)fontNameMap.get(fontID); @@ -8546,8 +12260,272 @@ (!mFontConfig.foundOsSpecificFile() || !mFontConfig.fontFilesArePresent()) || (FontUtilities.isSolaris && !mFontConfig.fontFilesArePresent()))) { ---- jdk/src/solaris/classes/sun/net/PortConfig.java -+++ jdk/src/solaris/classes/sun/net/PortConfig.java +--- ./jdk/src/solaris/classes/sun/awt/fontconfigs/bsd.fontconfig.properties Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/solaris/classes/sun/awt/fontconfigs/bsd.fontconfig.properties Wed Nov 05 12:14:24 2014 -0800 +@@ -26,134 +26,134 @@ + + # Version + +-# Uses Fedora Core 6 fonts and file paths. ++# Uses FreeBSD ports Tree fonts and file paths. + version=1 + + # Component Font Mappings + +-dialog.plain.latin-1=DejaVu LGC Sans ++dialog.plain.latin-1=DejaVu Sans + dialog.plain.japanese-x0208=Sazanami Gothic +-dialog.plain.korean=Baekmuk Gulim +-dialog.plain.chinese-big5=AR PL ShanHeiSun Uni +-dialog.plain.chinese-gb18030=AR PL ShanHeiSun Uni ++dialog.plain.korean=NanumGothic ++dialog.plain.chinese-big5=AR PL UMing ++dialog.plain.chinese-gb18030=AR PL UMing + +-dialog.bold.latin-1=DejaVu LGC Sans Bold ++dialog.bold.latin-1=DejaVu Sans Bold + dialog.bold.japanese-x0208=Sazanami Gothic +-dialog.bold.korean=Baekmuk Gulim +-dialog.bold.chinese-big5=AR PL ShanHeiSun Uni +-dialog.bold.chinese-gb18030=AR PL ShanHeiSun Uni ++dialog.bold.korean=NanumGothic Bold ++dialog.bold.chinese-big5=AR PL UMing ++dialog.bold.chinese-gb18030=AR PL UMing + +-dialog.italic.latin-1=DejaVu LGC Sans Oblique ++dialog.italic.latin-1=DejaVu Sans Oblique + dialog.italic.japanese-x0208=Sazanami Gothic +-dialog.italic.korean=Baekmuk Gulim +-dialog.italic.chinese-big5=AR PL ShanHeiSun Uni +-dialog.italic.chinese-gb18030=AR PL ShanHeiSun Uni ++dialog.italic.korean=NanumGothic ++dialog.italic.chinese-big5=AR PL UMing ++dialog.italic.chinese-gb18030=AR PL UMing + +-dialog.bolditalic.latin-1=DejaVu LGC Sans Bold Oblique ++dialog.bolditalic.latin-1=DejaVu Sans Bold Oblique + dialog.bolditalic.japanese-x0208=Sazanami Gothic +-dialog.bolditalic.korean=Baekmuk Gulim +-dialog.bolditalic.chinese-big5=AR PL ShanHeiSun Uni +-dialog.bolditalic.chinese-gb18030=AR PL ShanHeiSun Uni ++dialog.bolditalic.korean=NanumGothic Bold ++dialog.bolditalic.chinese-big5=AR PL UMing ++dialog.bolditalic.chinese-gb18030=AR PL UMing + + +-sansserif.plain.latin-1=DejaVu LGC Sans ++sansserif.plain.latin-1=DejaVu Sans + sansserif.plain.japanese-x0208=Sazanami Gothic +-sansserif.plain.korean=Baekmuk Gulim +-sansserif.plain.chinese-big5=AR PL ShanHeiSun Uni +-sansserif.plain.chinese-gb18030=AR PL ShanHeiSun Uni ++sansserif.plain.korean=NanumGothic ++sansserif.plain.chinese-big5=AR PL UMing ++sansserif.plain.chinese-gb18030=AR PL UMing + +-sansserif.bold.latin-1=DejaVu LGC Sans Bold ++sansserif.bold.latin-1=DejaVu Sans Bold + sansserif.bold.japanese-x0208=Sazanami Gothic +-sansserif.bold.korean=Baekmuk Gulim +-sansserif.bold.chinese-big5=AR PL ShanHeiSun Uni +-sansserif.bold.chinese-gb18030=AR PL ShanHeiSun Uni ++sansserif.bold.korean=NanumGothic Bold ++sansserif.bold.chinese-big5=AR PL UMing ++sansserif.bold.chinese-gb18030=AR PL UMing + +-sansserif.italic.latin-1=DejaVu LGC Sans Oblique ++sansserif.italic.latin-1=DejaVu Sans Oblique + sansserif.italic.japanese-x0208=Sazanami Gothic +-sansserif.italic.korean=Baekmuk Gulim +-sansserif.italic.chinese-big5=AR PL ShanHeiSun Uni +-sansserif.italic.chinese-gb18030=AR PL ShanHeiSun Uni ++sansserif.italic.korean=NanumGothic ++sansserif.italic.chinese-big5=AR PL UMing ++sansserif.italic.chinese-gb18030=AR PL UMing + +-sansserif.bolditalic.latin-1=DejaVu LGC Sans Bold Oblique ++sansserif.bolditalic.latin-1=DejaVu Sans Bold Oblique + sansserif.bolditalic.japanese-x0208=Sazanami Gothic +-sansserif.bolditalic.korean=Baekmuk Gulim +-sansserif.bolditalic.chinese-big5=AR PL ShanHeiSun Uni +-sansserif.bolditalic.chinese-gb18030=AR PL ShanHeiSun Uni ++sansserif.bolditalic.korean=NanumGothic Bold ++sansserif.bolditalic.chinese-big5=AR PL UMing ++sansserif.bolditalic.chinese-gb18030=AR PL UMing + + +-serif.plain.latin-1=DejaVu LGC Serif ++serif.plain.latin-1=DejaVu Serif + serif.plain.japanese-x0208=Sazanami Mincho +-serif.plain.korean=Baekmuk Batang +-serif.plain.chinese-big5=AR PL ZenKai Uni +-serif.plain.chinese-gb18030=AR PL ZenKai Uni ++serif.plain.korean=NanumMyeongjo ++serif.plain.chinese-big5=AR PL UKai ++serif.plain.chinese-gb18030=AR PL UKai + +-serif.bold.latin-1=DejaVu LGC Serif Bold ++serif.bold.latin-1=DejaVu Serif Bold + serif.bold.japanese-x0208=Sazanami Mincho +-serif.bold.korean=Baekmuk Batang +-serif.bold.chinese-big5=AR PL ZenKai Uni +-serif.bold.chinese-gb18030=AR PL ZenKai Uni ++serif.bold.korean=NanumMyeongjo Bold ++serif.bold.chinese-big5=AR PL UKai ++serif.bold.chinese-gb18030=AR PL UKai + +-serif.italic.latin-1=DejaVu LGC Serif Oblique ++serif.italic.latin-1=DejaVu Serif Italic + serif.italic.japanese-x0208=Sazanami Mincho +-serif.italic.korean=Baekmuk Batang +-serif.italic.chinese-big5=AR PL ZenKai Uni +-serif.italic.chinese-gb18030=AR PL ZenKai Uni ++serif.italic.korean=NanumMyeongjo ++serif.italic.chinese-big5=AR PL UKai ++serif.italic.chinese-gb18030=AR PL UKai + +-serif.bolditalic.latin-1=DejaVu LGC Serif Bold Oblique ++serif.bolditalic.latin-1=DejaVu Serif Bold Italic + serif.bolditalic.japanese-x0208=Sazanami Mincho +-serif.bolditalic.korean=Baekmuk Batang +-serif.bolditalic.chinese-big5=AR PL ZenKai Uni +-serif.bolditalic.chinese-gb18030=AR PL ZenKai Uni ++serif.bolditalic.korean=NanumMyeongjo Bold ++serif.bolditalic.chinese-big5=AR PL UKai ++serif.bolditalic.chinese-gb18030=AR PL UKai + + +-monospaced.plain.latin-1=DejaVu LGC Sans Mono ++monospaced.plain.latin-1=DejaVu Sans Mono + monospaced.plain.japanese-x0208=Sazanami Gothic +-monospaced.plain.korean=Baekmuk Gulim +-monospaced.plain.chinese-big5=AR PL ShanHeiSun Uni +-monospaced.plain.chinese-gb18030=AR PL ShanHeiSun Uni ++monospaced.plain.korean=NanumGothic ++monospaced.plain.chinese-big5=AR PL UMing ++monospaced.plain.chinese-gb18030=AR PL UMing + +-monospaced.bold.latin-1=DejaVu LGC Sans Mono Bold ++monospaced.bold.latin-1=DejaVu Sans Mono Bold + monospaced.bold.japanese-x0208=Sazanami Gothic +-monospaced.bold.korean=Baekmuk Gulim +-monospaced.bold.chinese-big5=AR PL ShanHeiSun Uni +-monospaced.bold.chinese-gb18030=AR PL ShanHeiSun Uni ++monospaced.bold.korean=NanumGothic Bold ++monospaced.bold.chinese-big5=AR PL UMing ++monospaced.bold.chinese-gb18030=AR PL UMing + +-monospaced.italic.latin-1=DejaVu LGC Sans Mono Oblique ++monospaced.italic.latin-1=DejaVu Sans Mono Oblique + monospaced.italic.japanese-x0208=Sazanami Gothic +-monospaced.italic.korean=Baekmuk Gulim +-monospaced.italic.chinese-big5=AR PL ShanHeiSun Uni +-monospaced.italic.chinese-gb18030=AR PL ShanHeiSun Uni ++monospaced.italic.korean=NanumGothic ++monospaced.italic.chinese-big5=AR PL UMing ++monospaced.italic.chinese-gb18030=AR PL UMing + +-monospaced.bolditalic.latin-1=DejaVu LGC Sans Mono Bold Oblique ++monospaced.bolditalic.latin-1=DejaVu Sans Mono Bold Oblique + monospaced.bolditalic.japanese-x0208=Sazanami Gothic +-monospaced.bolditalic.korean=Baekmuk Gulim +-monospaced.bolditalic.chinese-big5=AR PL ShanHeiSun Uni +-monospaced.bolditalic.chinese-gb18030=AR PL ShanHeiSun Uni ++monospaced.bolditalic.korean=NanumGothic Bold ++monospaced.bolditalic.chinese-big5=AR PL UMing ++monospaced.bolditalic.chinese-gb18030=AR PL UMing + + +-dialoginput.plain.latin-1=DejaVu LGC Sans Mono ++dialoginput.plain.latin-1=DejaVu Sans Mono + dialoginput.plain.japanese-x0208=Sazanami Gothic +-dialoginput.plain.korean=Baekmuk Gulim +-dialoginput.plain.chinese-big5=AR PL ShanHeiSun Uni +-dialoginput.plain.chinese-gb18030=AR PL ShanHeiSun Uni ++dialoginput.plain.korean=NanumGothic ++dialoginput.plain.chinese-big5=AR PL UMing ++dialoginput.plain.chinese-gb18030=AR PL UMing + +-dialoginput.bold.latin-1=DejaVu LGC Sans Mono Bold ++dialoginput.bold.latin-1=DejaVu Sans Mono Bold + dialoginput.bold.japanese-x0208=Sazanami Gothic +-dialoginput.bold.korean=Baekmuk Gulim +-dialoginput.bold.chinese-big5=AR PL ShanHeiSun Uni +-dialoginput.bold.chinese-gb18030=AR PL ShanHeiSun Uni ++dialoginput.bold.korean=NanumGothic Bold ++dialoginput.bold.chinese-big5=AR PL UMing ++dialoginput.bold.chinese-gb18030=AR PL UMing + +-dialoginput.italic.latin-1=DejaVu LGC Sans Mono Oblique ++dialoginput.italic.latin-1=DejaVu Sans Mono Oblique + dialoginput.italic.japanese-x0208=Sazanami Gothic +-dialoginput.italic.korean=Baekmuk Gulim +-dialoginput.italic.chinese-big5=AR PL ShanHeiSun Uni +-dialoginput.italic.chinese-gb18030=AR PL ShanHeiSun Uni ++dialoginput.italic.korean=NanumGothic ++dialoginput.italic.chinese-big5=AR PL UMing ++dialoginput.italic.chinese-gb18030=AR PL UMing + +-dialoginput.bolditalic.latin-1=DejaVu LGC Sans Mono Bold Oblique ++dialoginput.bolditalic.latin-1=DejaVu Sans Mono Bold Oblique + dialoginput.bolditalic.japanese-x0208=Sazanami Gothic +-dialoginput.bolditalic.korean=Baekmuk Gulim +-dialoginput.bolditalic.chinese-big5=AR PL ShanHeiSun Uni +-dialoginput.bolditalic.chinese-gb18030=AR PL ShanHeiSun Uni ++dialoginput.bolditalic.korean=NanumGothic Bold ++dialoginput.bolditalic.chinese-big5=AR PL UMing ++dialoginput.bolditalic.chinese-gb18030=AR PL UMing + + # Search Sequences + +@@ -166,24 +166,27 @@ + + # Font File Names + +-filename.DejaVu_LGC_Sans=/usr/share/fonts/dejavu-lgc/DejaVuLGCSans.ttf +-filename.DejaVu_LGC_Sans_Bold=/usr/share/fonts/dejavu-lgc/DejaVuLGCSans-Bold.ttf +-filename.DejaVu_LGC_Sans_Oblique=/usr/share/fonts/dejavu-lgc/DejaVuLGCSans-Oblique.ttf +-filename.DejaVu_LGC_Sans_Bold_Oblique=/usr/share/fonts/dejavu-lgc/DejaVuLGCSans-BoldOblique.ttf ++## FIXME: Should not hardcode /usr/local ++filename.DejaVu_Sans=/usr/local/lib/X11/fonts/dejavu/DejaVuSans.ttf ++filename.DejaVu_Sans_Bold=/usr/local/lib/X11/fonts/dejavu/DejaVuSans-Bold.ttf ++filename.DejaVu_Sans_Oblique=/usr/local/lib/X11/fonts/dejavu/DejaVuSans-Oblique.ttf ++filename.DejaVu_Sans_Bold_Oblique=/usr/local/lib/X11/fonts/dejavu/DejaVuSans-BoldOblique.ttf + +-filename.DejaVu_LGC_Sans_Mono=/usr/share/fonts/dejavu-lgc/DejaVuLGCSansMono.ttf +-filename.DejaVu_LGC_Sans_Mono_Bold=/usr/share/fonts/dejavu-lgc/DejaVuLGCSansMono-Bold.ttf +-filename.DejaVu_LGC_Sans_Mono_Oblique=/usr/share/fonts/dejavu-lgc/DejaVuLGCSansMono-Oblique.ttf +-filename.DejaVu_LGC_Sans_Mono_Bold_Oblique=/usr/share/fonts/dejavu-lgc/DejaVuLGCSansMono-BoldOblique.ttf ++filename.DejaVu_Sans_Mono=/usr/local/lib/X11/fonts/dejavu/DejaVuSansMono.ttf ++filename.DejaVu_Sans_Mono_Bold=/usr/local/lib/X11/fonts/dejavu/DejaVuSansMono-Bold.ttf ++filename.DejaVu_Sans_Mono_Oblique=/usr/local/lib/X11/fonts/dejavu/DejaVuSansMono-Oblique.ttf ++filename.DejaVu_Sans_Mono_Bold_Oblique=/usr/local/lib/X11/fonts/dejavu/DejaVuSansMono-BoldOblique.ttf + +-filename.DejaVu_LGC_Serif=/usr/share/fonts/dejavu-lgc/DejaVuLGCSerif.ttf +-filename.DejaVu_LGC_Serif_Bold=/usr/share/fonts/dejavu-lgc/DejaVuLGCSerif-Bold.ttf +-filename.DejaVu_LGC_Serif_Oblique=/usr/share/fonts/dejavu-lgc/DejaVuLGCSerif-Oblique.ttf +-filename.DejaVu_LGC_Serif_Bold_Oblique=/usr/share/fonts/dejavu-lgc/DejaVuLGCSerif-BoldOblique.ttf ++filename.DejaVu_Serif=/usr/local/lib/X11/fonts/dejavu/DejaVuSerif.ttf ++filename.DejaVu_Serif_Bold=/usr/local/lib/X11/fonts/dejavu/DejaVuSerif-Bold.ttf ++filename.DejaVu_Serif_Italic=/usr/local/lib/X11/fonts/dejavu/DejaVuSerif-Italic.ttf ++filename.DejaVu_Serif_Bold_Italic=/usr/local/lib/X11/fonts/dejavu/DejaVuSerif-BoldItalic.ttf + +-filename.Sazanami_Gothic=/usr/share/fonts/japanese/TrueType/sazanami-gothic.ttf +-filename.Sazanami_Mincho=/usr/share/fonts/japanese/TrueType/sazanami-mincho.ttf +-filename.AR_PL_ShanHeiSun_Uni=/usr/share/fonts/chinese/TrueType/uming.ttf +-filename.AR_PL_ZenKai_Uni=/usr/share/fonts/chinese/TrueType/ukai.ttf +-filename.Baekmuk_Gulim=/usr/share/fonts/korean/TrueType/gulim.ttf +-filename.Baekmuk_Batang=/usr/share/fonts/korean/TrueType/batang.ttf ++filename.Sazanami_Gothic=/usr/local/share/font-sazanami/sazanami-gothic.ttf ++filename.Sazanami_Mincho=/usr/local/share/font-sazanami/sazanami-mincho.ttf ++filename.AR_PL_ShanHeiSun_Uni=/usr/local/share/fonts/TrueType/uming.ttc ++filename.AR_PL_ZenKai_Uni=/usr/local/share/fonts/TrueType/ukai.ttc ++filename.NanumGothic=/usr/local/lib/X11/fonts/nanum-ttf/NanumGothic.ttf ++filename.NanumGothic_Bold=/usr/local/lib/X11/fonts/nanum-ttf/NanumGothicBold.ttf ++filename.NanumMyeongjo=/usr/local/lib/X11/fonts/nanum-ttf/NanumMyeongjo.ttf ++filename.NanumMyeongjo_Bold=/usr/local/lib/X11/fonts/nanum-ttf/NanumMyeongjoBold.ttf +--- ./jdk/src/solaris/classes/sun/net/PortConfig.java Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/solaris/classes/sun/net/PortConfig.java Wed Nov 05 12:14:24 2014 -0800 @@ -52,7 +52,7 @@ } else if (os.startsWith("SunOS")) { defaultLower = 32768; @@ -8556,9 +12534,9 @@ + } else if (os.endsWith("BSD") || os.contains("OS X")) { defaultLower = 49152; defaultUpper = 65535; - } else { ---- jdk/src/solaris/classes/sun/nio/ch/DefaultAsynchronousChannelProvider.java -+++ jdk/src/solaris/classes/sun/nio/ch/DefaultAsynchronousChannelProvider.java + } else if (os.startsWith("AIX")) { +--- ./jdk/src/solaris/classes/sun/nio/ch/DefaultAsynchronousChannelProvider.java Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/solaris/classes/sun/nio/ch/DefaultAsynchronousChannelProvider.java Wed Nov 05 12:14:24 2014 -0800 @@ -66,7 +66,7 @@ return createProvider("sun.nio.ch.SolarisAsynchronousChannelProvider"); if (osname.equals("Linux")) @@ -8566,10 +12544,10 @@ - if (osname.contains("OS X")) + if (osname.endsWith("BSD") || osname.contains("OS X")) return createProvider("sun.nio.ch.BsdAsynchronousChannelProvider"); - throw new InternalError("platform not recognized"); - } ---- jdk/src/solaris/classes/sun/nio/fs/BsdFileSystemProvider.java -+++ jdk/src/solaris/classes/sun/nio/fs/BsdFileSystemProvider.java + if (osname.equals("AIX")) + return createProvider("sun.nio.ch.AixAsynchronousChannelProvider"); +--- ./jdk/src/solaris/classes/sun/nio/fs/BsdFileSystemProvider.java Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/solaris/classes/sun/nio/fs/BsdFileSystemProvider.java Wed Nov 05 12:14:24 2014 -0800 @@ -25,10 +25,14 @@ package sun.nio.fs; @@ -8603,8 +12581,8 @@ + new MagicFileTypeDetector()); + } } ---- jdk/src/solaris/classes/sun/nio/fs/DefaultFileSystemProvider.java -+++ jdk/src/solaris/classes/sun/nio/fs/DefaultFileSystemProvider.java +--- ./jdk/src/solaris/classes/sun/nio/fs/DefaultFileSystemProvider.java Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/solaris/classes/sun/nio/fs/DefaultFileSystemProvider.java Wed Nov 05 12:14:24 2014 -0800 @@ -61,6 +61,8 @@ return createProvider("sun.nio.fs.SolarisFileSystemProvider"); if (osname.equals("Linux")) @@ -8613,10 +12591,10 @@ + return createProvider("sun.nio.fs.BsdFileSystemProvider"); if (osname.contains("OS X")) return createProvider("sun.nio.fs.MacOSXFileSystemProvider"); - throw new AssertionError("Platform not recognized"); ---- jdk/src/solaris/classes/sun/print/UnixPrintServiceLookup.java -+++ jdk/src/solaris/classes/sun/print/UnixPrintServiceLookup.java -@@ -130,6 +130,7 @@ + if (osname.equals("AIX")) +--- ./jdk/src/solaris/classes/sun/print/UnixPrintServiceLookup.java Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/solaris/classes/sun/print/UnixPrintServiceLookup.java Wed Nov 05 12:14:24 2014 -0800 +@@ -161,6 +161,7 @@ static boolean isBSD() { return (osname.equals("Linux") || @@ -8624,7 +12602,7 @@ osname.contains("OS X")); } -@@ -140,12 +141,12 @@ +@@ -175,12 +176,12 @@ static int cmdIndex = UNINITIALIZED; String[] lpcFirstCom = { @@ -8639,8 +12617,8 @@ "/usr/sbin/lpc status all | grep -E '^[ 0-9a-zA-Z_-]*@' | awk -F'@' '{print $1}' | sort" }; ---- jdk/src/solaris/classes/sun/tools/attach/BsdVirtualMachine.java -+++ jdk/src/solaris/classes/sun/tools/attach/BsdVirtualMachine.java +--- ./jdk/src/solaris/classes/sun/tools/attach/BsdVirtualMachine.java Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/solaris/classes/sun/tools/attach/BsdVirtualMachine.java Wed Nov 05 12:14:24 2014 -0800 @@ -266,7 +266,7 @@ try { b = s.getBytes("UTF-8"); @@ -8650,8 +12628,8 @@ } BsdVirtualMachine.write(fd, b, 0, b.length); } ---- jdk/src/solaris/native/com/sun/media/sound/PLATFORM_API_SolarisOS_PCM.c -+++ jdk/src/solaris/native/com/sun/media/sound/PLATFORM_API_SolarisOS_PCM.c +--- ./jdk/src/solaris/native/com/sun/media/sound/PLATFORM_API_SolarisOS_PCM.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/solaris/native/com/sun/media/sound/PLATFORM_API_SolarisOS_PCM.c Wed Nov 05 12:14:24 2014 -0800 @@ -140,7 +140,7 @@ (float) ((int) sr->samp_rates[s]), DAUDIO_PCM, /* encoding - let's only do PCM */ @@ -8661,8 +12639,8 @@ FALSE /* little endian */ #else (bits[b] > 8)?TRUE:FALSE /* big endian */ ---- jdk/src/solaris/native/common/jni_util_md.c -+++ jdk/src/solaris/native/common/jni_util_md.c +--- ./jdk/src/solaris/native/common/jni_util_md.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/solaris/native/common/jni_util_md.c Wed Nov 05 12:14:24 2014 -0800 @@ -28,6 +28,7 @@ #include "jni.h" #include "jni_util.h" @@ -8671,8 +12649,8 @@ jstring nativeNewStringPlatform(JNIEnv *env, const char *str) { return NULL; ---- jdk/src/solaris/native/java/lang/java_props_md.c -+++ jdk/src/solaris/native/java/lang/java_props_md.c +--- ./jdk/src/solaris/native/java/lang/java_props_md.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/solaris/native/java/lang/java_props_md.c Wed Nov 05 12:14:24 2014 -0800 @@ -151,7 +151,7 @@ lc = setlocale(cat, NULL); #endif @@ -8707,8 +12685,8 @@ /* user properties */ { ---- jdk/src/solaris/native/java/net/Inet4AddressImpl.c -+++ jdk/src/solaris/native/java/net/Inet4AddressImpl.c +--- ./jdk/src/solaris/native/java/net/Inet4AddressImpl.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/solaris/native/java/net/Inet4AddressImpl.c Wed Nov 05 12:14:24 2014 -0800 @@ -36,20 +36,13 @@ #include <stdlib.h> #include <ctype.h> @@ -9027,8 +13005,8 @@ #define SET_NONBLOCKING(fd) { \ int flags = fcntl(fd, F_GETFL); \ flags |= O_NONBLOCK; \ ---- jdk/src/solaris/native/java/net/Inet6AddressImpl.c -+++ jdk/src/solaris/native/java/net/Inet6AddressImpl.c +--- ./jdk/src/solaris/native/java/net/Inet6AddressImpl.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/solaris/native/java/net/Inet6AddressImpl.c Wed Nov 05 12:14:24 2014 -0800 @@ -33,7 +33,7 @@ #include <strings.h> #include <stdlib.h> @@ -9059,9 +13037,9 @@ /* * If we're looking up the local machine, attempt to get the address * from getifaddrs. This ensures we get an IPv6 address for the local ---- jdk/src/solaris/native/java/net/NetworkInterface.c -+++ jdk/src/solaris/native/java/net/NetworkInterface.c -@@ -60,14 +60,18 @@ +--- ./jdk/src/solaris/native/java/net/NetworkInterface.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/solaris/native/java/net/NetworkInterface.c Wed Nov 05 12:14:24 2014 -0800 +@@ -67,14 +67,18 @@ #include <sys/param.h> #include <sys/ioctl.h> #include <sys/sockio.h> @@ -9082,9 +13060,9 @@ #include "jvm.h" #include "jni_util.h" ---- jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c -+++ jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c -@@ -2176,7 +2176,7 @@ +--- ./jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c Wed Nov 05 12:14:24 2014 -0800 +@@ -2184,7 +2184,7 @@ } } #endif @@ -9093,8 +13071,8 @@ if (family == AF_INET6 && index == 0) { index = getDefaultScopeID(env); } ---- jdk/src/solaris/native/java/net/net_util_md.c -+++ jdk/src/solaris/native/java/net/net_util_md.c +--- ./jdk/src/solaris/native/java/net/net_util_md.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/solaris/native/java/net/net_util_md.c Wed Nov 05 12:14:24 2014 -0800 @@ -87,7 +87,7 @@ void setDefaultScopeID(JNIEnv *env, struct sockaddr *him) @@ -9104,19 +13082,19 @@ static jclass ni_class = NULL; static jfieldID ni_defaultIndexID; if (ni_class == NULL) { ---- jdk/src/solaris/native/java/net/net_util_md.h -+++ jdk/src/solaris/native/java/net/net_util_md.h -@@ -37,7 +37,7 @@ - #endif - - --#if defined(__linux__) || defined(MACOSX) -+#if defined(__linux__) || defined(_ALLBSD_SOURCE) +--- ./jdk/src/solaris/native/java/net/net_util_md.h Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/solaris/native/java/net/net_util_md.h Wed Nov 05 12:14:24 2014 -0800 +@@ -47,7 +47,7 @@ + close subroutine does not return until the select call returns. + ... + */ +-#if defined(__linux__) || defined(MACOSX) || defined (_AIX) ++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined (_AIX) extern int NET_Timeout(int s, long timeout); extern int NET_Read(int s, void* buf, size_t len); extern int NET_RecvFrom(int s, void *buf, int len, unsigned int flags, ---- jdk/src/solaris/native/java/util/TimeZone_md.c -+++ jdk/src/solaris/native/java/util/TimeZone_md.c +--- ./jdk/src/solaris/native/java/util/TimeZone_md.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/solaris/native/java/util/TimeZone_md.c Wed Nov 05 12:14:24 2014 -0800 @@ -52,7 +52,11 @@ #if defined(__linux__) || defined(_ALLBSD_SOURCE) @@ -9129,16 +13107,16 @@ static const char *ZONEINFO_DIR = "/usr/share/zoneinfo"; static const char *DEFAULT_ZONEINFO_FILE = "/etc/localtime"; #else -@@ -123,7 +127,7 @@ +@@ -126,7 +130,7 @@ return NULL; } --#if defined(__linux__) || defined(MACOSX) || (defined(__solaris__) \ -+#if defined(__linux__) || defined(_ALLBSD_SOURCE) || (defined(__solaris__) \ +-#if defined(_AIX) || defined(__linux__) || defined(MACOSX) || (defined(__solaris__) \ ++#if defined(_AIX) || defined(__linux__) || defined(_ALLBSD_SOURCE) || (defined(__solaris__) \ && (defined(_POSIX_PTHREAD_SEMANTICS) || defined(_LP64))) while (readdir_r(dirp, entry, &dp) == 0 && dp != NULL) { #else -@@ -211,7 +215,7 @@ +@@ -214,7 +218,7 @@ return tz; } @@ -9147,16 +13125,16 @@ /* * Performs Linux specific mapping and returns a zone ID -@@ -227,7 +231,7 @@ +@@ -230,7 +234,7 @@ char *buf; size_t size; -#ifdef __linux__ -+#if defined(__linux__) || defined(__FreeBSD__) ++#if defined(__linux__) || defined(_ALLBSD_SOURCE) /* * Try reading the /etc/timezone file for Debian distros. There's * no spec of the file format available. This parsing assumes that -@@ -251,7 +255,7 @@ +@@ -254,7 +258,7 @@ return tz; } } @@ -9165,7 +13143,7 @@ /* * Next, try /etc/localtime to find the zone ID. -@@ -677,7 +681,7 @@ +@@ -719,7 +723,7 @@ * Returns a GMT-offset-based zone ID. (e.g., "GMT-08:00") */ @@ -9174,7 +13152,7 @@ char * getGMTOffsetID() -@@ -693,10 +697,10 @@ +@@ -735,10 +739,10 @@ local_tm = localtime(&clock); if (local_tm->tm_gmtoff >= 0) { offset = (time_t) local_tm->tm_gmtoff; @@ -9187,15 +13165,23 @@ } sprintf(buf, (const char *)"GMT%c%02d:%02d", sign, (int)(offset/3600), (int)((offset%3600)/60)); -@@ -738,4 +742,4 @@ +@@ -780,7 +784,7 @@ sign, (int)(offset/3600), (int)((offset%3600)/60)); return strdup(buf); } -#endif /* MACOSX */ +#endif /* _ALLBSD_SOURCE */ ---- jdk/src/solaris/native/sun/awt/awt_Font.c -+++ jdk/src/solaris/native/sun/awt/awt_Font.c -@@ -260,7 +260,7 @@ + + #ifdef _AIX + static char * +@@ -878,4 +882,3 @@ + return javatz; + } + #endif +- +--- ./jdk/src/solaris/native/sun/awt/awt_Font.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/solaris/native/sun/awt/awt_Font.c Wed Nov 05 12:14:24 2014 -0800 +@@ -255,7 +255,7 @@ if (strcmp(style, "regular") == 0) { altstyle = "roman"; } @@ -9204,8 +13190,8 @@ if (!strcmp(family, "lucidasans")) { family = "lucida"; } ---- jdk/src/solaris/native/sun/awt/awt_GraphicsEnv.c -+++ jdk/src/solaris/native/sun/awt/awt_GraphicsEnv.c +--- ./jdk/src/solaris/native/sun/awt/awt_GraphicsEnv.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/solaris/native/sun/awt/awt_GraphicsEnv.c Wed Nov 05 12:14:24 2014 -0800 @@ -120,7 +120,7 @@ */ @@ -9215,7 +13201,7 @@ typedef struct { int screen_number; short x_org; -@@ -423,20 +423,15 @@ +@@ -426,20 +426,15 @@ if (XQueryExtension(awt_display, "RENDER", &major_opcode, &first_event, &first_error)) { @@ -9240,7 +13226,7 @@ if (xrenderLibHandle == NULL) { xrenderLibHandle = dlopen("/usr/sfw/lib/libXrender.so.1", RTLD_LAZY | RTLD_GLOBAL); -@@ -580,7 +575,7 @@ +@@ -583,7 +578,7 @@ } #ifndef HEADLESS @@ -9249,7 +13235,7 @@ static void xinerama_init_linux() { void* libHandle = NULL; -@@ -631,7 +626,7 @@ +@@ -634,7 +629,7 @@ } } #endif @@ -9258,7 +13244,7 @@ static void xinerama_init_solaris() { void* libHandle = NULL; -@@ -691,11 +686,11 @@ +@@ -694,11 +689,11 @@ } DTRACE_PRINTLN("Xinerama extension is available"); @@ -9272,7 +13258,7 @@ } #endif /* HEADLESS */ -@@ -1589,7 +1584,7 @@ +@@ -1592,7 +1587,7 @@ { jobject point = NULL; #ifndef HEADLESS /* return NULL in HEADLESS, Linux */ @@ -9281,7 +13267,7 @@ int x,y; AWT_LOCK(); -@@ -1602,7 +1597,7 @@ +@@ -1605,7 +1600,7 @@ DTRACE_PRINTLN("unable to call XineramaSolarisCenterFunc: symbol is null"); } AWT_FLUSH_UNLOCK(); @@ -9290,8 +13276,8 @@ #endif /* HEADLESS */ return point; } ---- jdk/src/solaris/native/sun/awt/awt_InputMethod.c -+++ jdk/src/solaris/native/sun/awt/awt_InputMethod.c +--- ./jdk/src/solaris/native/sun/awt/awt_InputMethod.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/solaris/native/sun/awt/awt_InputMethod.c Wed Nov 05 12:14:24 2014 -0800 @@ -52,7 +52,7 @@ XIMPreeditDrawCallbackStruct *); static void PreeditCaretCallback(XIC, XPointer, @@ -9336,7 +13322,7 @@ StatusWindow *statusWindow; /* our own status window */ #endif char *lookup_buf; /* buffer used for XmbLookupString */ -@@ -369,7 +369,7 @@ +@@ -370,7 +370,7 @@ static void freeX11InputMethodData(JNIEnv *env, X11InputMethodData *pX11IMData) { @@ -9345,7 +13331,7 @@ if (pX11IMData->statusWindow != NULL){ StatusWindow *sw = pX11IMData->statusWindow; XFreeGC(awt_display, sw->lightGC); -@@ -472,7 +472,7 @@ +@@ -473,7 +473,7 @@ pX11IMData = getX11InputMethodData(env, currentX11InputMethodInstance); if (pX11IMData == NULL) { @@ -9354,7 +13340,7 @@ return False; #else return result; -@@ -480,7 +480,7 @@ +@@ -481,7 +481,7 @@ } if ((ic = pX11IMData->current_ic) == (XIC)0){ @@ -9363,7 +13349,7 @@ return False; #else return result; -@@ -572,7 +572,7 @@ +@@ -573,7 +573,7 @@ return result; } @@ -9372,7 +13358,7 @@ static StatusWindow *createStatusWindow( Window parent) { StatusWindow *statusWindow; -@@ -885,7 +885,7 @@ +@@ -886,7 +886,7 @@ } } } @@ -9381,7 +13367,7 @@ /* * Creates two XICs, one for active clients and the other for passive * clients. All information on those XICs are stored in the -@@ -929,7 +929,7 @@ +@@ -930,7 +930,7 @@ return FALSE ; } @@ -9390,7 +13376,7 @@ on_the_spot_styles |= XIMStatusNothing; /*kinput does not support XIMPreeditCallbacks and XIMStatusArea -@@ -942,9 +942,9 @@ +@@ -943,9 +943,9 @@ break; } } @@ -9402,7 +13388,7 @@ for (i = 0; i < im_styles->count_styles; i++) { active_styles |= im_styles->supported_styles[i] & on_the_spot_styles; -@@ -992,7 +992,7 @@ +@@ -993,7 +993,7 @@ NULL); if (preedit == (XVaNestedList)NULL) goto err; @@ -9411,7 +13397,7 @@ /*always try XIMStatusCallbacks for active client...*/ { status = (XVaNestedList)XVaCreateNestedList(0, -@@ -1014,7 +1014,7 @@ +@@ -1015,7 +1015,7 @@ XFree((void *)status); XFree((void *)preedit); } @@ -9420,7 +13406,7 @@ pX11IMData->ic_active = XCreateIC(X11im, XNClientWindow, w, XNFocusWindow, w, -@@ -1022,7 +1022,7 @@ +@@ -1023,7 +1023,7 @@ XNPreeditAttributes, preedit, NULL); XFree((void *)preedit); @@ -9429,7 +13415,7 @@ pX11IMData->ic_passive = XCreateIC(X11im, XNClientWindow, w, XNFocusWindow, w, -@@ -1181,7 +1181,7 @@ +@@ -1189,7 +1189,7 @@ } @@ -9438,7 +13424,7 @@ static void StatusStartCallback(XIC ic, XPointer client_data, XPointer call_data) { -@@ -1249,7 +1249,7 @@ +@@ -1257,7 +1257,7 @@ finally: AWT_UNLOCK(); } @@ -9447,7 +13433,7 @@ static void CommitStringCallback(XIC ic, XPointer client_data, XPointer call_data) { JNIEnv *env = GetJNIEnv(); -@@ -1346,14 +1346,14 @@ +@@ -1354,14 +1354,14 @@ /* Use IMInstantiate call back only on Linux, as there is a bug in Solaris (4768335) */ @@ -9464,7 +13450,7 @@ } #endif -@@ -1388,9 +1388,9 @@ +@@ -1396,9 +1396,9 @@ globalRef = (*env)->NewGlobalRef(env, this); pX11IMData->x11inputmethod = globalRef; @@ -9476,7 +13462,7 @@ pX11IMData->lookup_buf = 0; pX11IMData->lookup_buf_len = 0; -@@ -1437,14 +1437,14 @@ +@@ -1448,14 +1448,14 @@ setXICFocus(pX11IMData->current_ic, req); currentX11InputMethodInstance = pX11IMData->x11inputmethod; currentFocusWindow = w; @@ -9493,7 +13479,7 @@ onoffStatusWindow(pX11IMData, 0, False); if (pX11IMData->current_ic != NULL) #endif -@@ -1461,7 +1461,7 @@ +@@ -1472,7 +1472,7 @@ Java_sun_awt_X11InputMethod_turnoffStatusWindow(JNIEnv *env, jobject this) { @@ -9502,7 +13488,7 @@ X11InputMethodData *pX11IMData; StatusWindow *statusWindow; -@@ -1629,7 +1629,7 @@ +@@ -1640,7 +1640,7 @@ JNIEXPORT void JNICALL Java_sun_awt_X11_XInputMethod_adjustStatusWindow (JNIEnv *env, jobject this, jlong window) { @@ -9511,8 +13497,8 @@ AWT_LOCK(); adjustStatusWindow(window); AWT_UNLOCK(); ---- jdk/src/solaris/native/sun/awt/awt_Robot.c -+++ jdk/src/solaris/native/sun/awt/awt_Robot.c +--- ./jdk/src/solaris/native/sun/awt/awt_Robot.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/solaris/native/sun/awt/awt_Robot.c Wed Nov 05 12:14:24 2014 -0800 @@ -45,7 +45,7 @@ #include "wsutils.h" #include "list.h" @@ -9522,8 +13508,8 @@ #include <sys/socket.h> #endif ---- jdk/src/solaris/native/sun/awt/extutil.h -+++ jdk/src/solaris/native/sun/awt/extutil.h +--- ./jdk/src/solaris/native/sun/awt/extutil.h Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/solaris/native/sun/awt/extutil.h Wed Nov 05 12:14:24 2014 -0800 @@ -58,7 +58,7 @@ */ /* $XFree86: xc/include/extensions/extutil.h,v 1.5 2001/01/17 17:53:20 dawes Exp $ */ @@ -9539,8 +13525,8 @@ -#endif /* __linux__ || MACOSX */ +#endif /* __linux__ || _ALLBSD_SOURCE */ ---- jdk/src/solaris/native/sun/awt/fontpath.c -+++ jdk/src/solaris/native/sun/awt/fontpath.c +--- ./jdk/src/solaris/native/sun/awt/fontpath.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/solaris/native/sun/awt/fontpath.c Wed Nov 05 12:14:24 2014 -0800 @@ -23,9 +23,9 @@ * questions. */ @@ -9553,19 +13539,18 @@ #include <stdio.h> #include <stdlib.h> #include <strings.h> -@@ -64,7 +64,7 @@ - - #define MAXFDIRS 512 /* Max number of directories that contain fonts */ - --#if !defined(__linux__) -+#if !defined(__linux__) && !defined(_ALLBSD_SOURCE) - /* - * This can be set in the makefile to "/usr/X11" if so desired. - */ -@@ -114,6 +114,21 @@ +@@ -113,7 +113,6 @@ + OPENWINHOMELIB "locale/ar/X11/fonts/Type1", + NULL, /* terminates the list */ + }; +- + #elif defined( __linux__) + /* All the known interesting locations we have discovered on + * various flavors of Linux +@@ -140,6 +139,20 @@ + "/usr/lpp/X11/lib/X11/fonts/TrueType", /* from X11.fnt.ucs.ttf */ NULL, /* terminates the list */ }; - +#elif defined(_ALLBSD_SOURCE) +static char *fullBSDFontPath[] = { + PACKAGE_PATH "/lib/X11/fonts/TrueType", @@ -9580,11 +13565,10 @@ + PACKAGE_PATH "/share/fonts/Type1", + NULL, /* terminates the list */ +}; -+ - #else /* __linux */ - /* All the known interesting locations we have discovered on - * various flavors of Linux -@@ -370,7 +385,7 @@ + #endif + + static char **getFontConfigLocations(); +@@ -381,7 +394,7 @@ #endif /* !HEADLESS */ @@ -9593,16 +13577,16 @@ /* from awt_LoadLibrary.c */ JNIEXPORT jboolean JNICALL AWTIsHeadless(); #endif -@@ -497,6 +512,8 @@ - - #if defined(__linux__) - knowndirs = fullLinuxFontPath; +@@ -512,6 +525,8 @@ + knowndirs = fullSolarisFontPath; + #elif defined(_AIX) + knowndirs = fullAixFontPath; +#elif defined(_ALLBSD_SOURCE) + knowndirs = fullBSDFontPath; - #else /* IF SOLARIS */ - knowndirs = fullSolarisFontPath; #endif -@@ -507,8 +524,8 @@ + /* REMIND: this code requires to be executed when the GraphicsEnvironment + * is already initialised. That is always true, but if it were not so, +@@ -519,8 +534,8 @@ * be initialised. */ #ifndef HEADLESS @@ -9613,7 +13597,7 @@ if (!AWTIsHeadless()) { /* .. so need to call a function to check */ #endif /* Using the X11 font path to locate font files is now a fallback -@@ -523,7 +540,7 @@ +@@ -535,7 +550,7 @@ x11dirs = getX11FontPath(); } AWT_UNLOCK(); @@ -9622,17 +13606,17 @@ } #endif #endif /* !HEADLESS */ -@@ -1203,7 +1220,7 @@ +@@ -1230,7 +1245,7 @@ */ if (fontformat != NULL && (strcmp((char*)fontformat, "TrueType") != 0) --#ifdef __linux__ -+#if defined(__linux__) || defined(_ALLBSD_SOURCE) +-#if defined(__linux__) || defined(_AIX) ++#if defined(__linux__) || defined(_AIX) || defined(_ALLBSD_SOURCE) && (strcmp((char*)fontformat, "Type 1") != 0) #endif ) { ---- jdk/src/solaris/native/sun/java2d/j2d_md.h -+++ jdk/src/solaris/native/sun/java2d/j2d_md.h +--- ./jdk/src/solaris/native/sun/java2d/j2d_md.h Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/solaris/native/sun/java2d/j2d_md.h Wed Nov 05 12:14:24 2014 -0800 @@ -28,11 +28,11 @@ #include <sys/types.h> @@ -9648,8 +13632,8 @@ typedef unsigned char jubyte; typedef unsigned short jushort; ---- jdk/src/solaris/native/sun/java2d/loops/mlib_ImageZoom_NN.c -+++ jdk/src/solaris/native/sun/java2d/loops/mlib_ImageZoom_NN.c +--- ./jdk/src/solaris/native/sun/java2d/loops/mlib_ImageZoom_NN.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/solaris/native/sun/java2d/loops/mlib_ImageZoom_NN.c Wed Nov 05 12:14:24 2014 -0800 @@ -63,9 +63,6 @@ * MLIB_EDGE_SRC_PADDED */ @@ -9754,8 +13738,8 @@ LOGIC(da[0], dtmp, dtmp1, |); } else { /* aligned */ ---- jdk/src/solaris/native/sun/java2d/loops/vis_FuncArray.c -+++ jdk/src/solaris/native/sun/java2d/loops/vis_FuncArray.c +--- ./jdk/src/solaris/native/sun/java2d/loops/vis_FuncArray.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/solaris/native/sun/java2d/loops/vis_FuncArray.c Wed Nov 05 12:14:24 2014 -0800 @@ -804,7 +804,7 @@ static int initialized; static int usevis = JNI_TRUE; @@ -9765,8 +13749,8 @@ # define ULTRA_CHIP "sparc64" #else # define ULTRA_CHIP "sun4u" ---- jdk/src/solaris/native/sun/management/OperatingSystemImpl.c -+++ jdk/src/solaris/native/sun/management/OperatingSystemImpl.c +--- ./jdk/src/solaris/native/sun/management/OperatingSystemImpl.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/solaris/native/sun/management/OperatingSystemImpl.c Wed Nov 05 12:14:24 2014 -0800 @@ -56,6 +56,9 @@ #include <limits.h> #include <stdlib.h> @@ -9775,9 +13759,9 @@ +#include <vm/vm_param.h> +#endif - static jlong page_size = 0; - -@@ -164,6 +167,25 @@ + #if defined(_AIX) + #include <libperfstat.h> +@@ -168,6 +171,25 @@ throw_internal_error(env, "sysctlbyname failed"); } return available ? (jlong)vmusage.xsu_avail : (jlong)vmusage.xsu_total; @@ -9803,7 +13787,7 @@ #else /* _ALLBSD_SOURCE */ /* * XXXBSD: there's no way available to get swap info in -@@ -239,11 +261,30 @@ +@@ -243,11 +265,30 @@ throw_internal_error(env, "task_info failed"); } return t_info.virtual_size; @@ -9836,7 +13820,7 @@ return (64 * MB); #endif } -@@ -320,11 +361,27 @@ +@@ -324,11 +365,27 @@ return -1; } return (jlong)vm_stats.free_count * page_size; @@ -9864,9 +13848,9 @@ - // throw_internal_error(env, "unimplemented in FreeBSD") + // throw_internal_error(env, "unimplemented in BSD") return (128 * MB); - #else // solaris / linux - jlong num_avail_physical_pages = sysconf(_SC_AVPHYS_PAGES); -@@ -336,13 +393,19 @@ + #elif defined(_AIX) + perfstat_memory_total_t memory_info; +@@ -346,13 +403,19 @@ Java_sun_management_OperatingSystemImpl_getTotalPhysicalMemorySize (JNIEnv *env, jobject mbean) { @@ -9887,7 +13871,7 @@ rlen = sizeof(result); if (sysctl(mib, 2, &result, &rlen, NULL, 0) != 0) { throw_internal_error(env, "sysctl failed"); -@@ -356,6 +419,11 @@ +@@ -372,6 +435,11 @@ } @@ -9899,7 +13883,7 @@ JNIEXPORT jlong JNICALL Java_sun_management_OperatingSystemImpl_getOpenFileDescriptorCount -@@ -405,21 +473,15 @@ +@@ -421,12 +489,6 @@ free(fds); return nfiles; @@ -9912,70 +13896,17 @@ #else /* solaris/linux */ DIR *dirp; struct dirent dbuf; - struct dirent* dentp; - jlong fds = 0; +@@ -444,7 +506,7 @@ -- dirp = opendir("/proc/self/fd"); -+ dirp = opendir(FD_DIR); + dirp = opendir(FD_DIR); if (dirp == NULL) { - throw_internal_error(env, "Unable to open directory /proc/self/fd"); + throw_internal_error(env, "Unable to open directory " FD_DIR); return -1; } ---- jdk/src/solaris/native/sun/nio/ch/NativeThread.c -+++ jdk/src/solaris/native/sun/nio/ch/NativeThread.c -@@ -33,12 +33,20 @@ - #include "nio_util.h" - - --#ifdef __linux__ -+#if defined(__linux__) || defined(_ALLBSD_SOURCE) -+#if defined(__linux__) - #include <pthread.h> - #include <sys/signal.h> - - /* Also defined in src/solaris/native/java/net/linux_close.c */ - #define INTERRUPT_SIGNAL (__SIGRTMAX - 2) -+#else -+#include <pthread.h> -+#include <signal.h> -+ -+/* Also defined in src/solaris/native/java/net/bsd_close.c */ -+#define INTERRUPT_SIGNAL SIGIO -+#endif - - static void - nullHandler(int sig) -@@ -51,7 +59,7 @@ - JNIEXPORT void JNICALL - Java_sun_nio_ch_NativeThread_init(JNIEnv *env, jclass cl) - { --#ifdef __linux__ -+#if defined(__linux__) || defined(_ALLBSD_SOURCE) - - /* Install the null handler for INTERRUPT_SIGNAL. This might overwrite the - * handler previously installed by java/net/linux_close.c, but that's okay -@@ -74,7 +82,7 @@ - JNIEXPORT jlong JNICALL - Java_sun_nio_ch_NativeThread_current(JNIEnv *env, jclass cl) - { --#ifdef __linux__ -+#if defined(__linux__) || defined(_ALLBSD_SOURCE) - return (long)pthread_self(); - #else - return -1; -@@ -84,7 +92,7 @@ - JNIEXPORT void JNICALL - Java_sun_nio_ch_NativeThread_signal(JNIEnv *env, jclass cl, jlong thread) - { --#ifdef __linux__ -+#if defined(__linux__) || defined(_ALLBSD_SOURCE) - if (pthread_kill((pthread_t)thread, INTERRUPT_SIGNAL)) - JNU_ThrowIOExceptionWithLastError(env, "Thread signal failed"); - #endif ---- jdk/src/solaris/native/sun/nio/ch/sctp/Sctp.h -+++ jdk/src/solaris/native/sun/nio/ch/sctp/Sctp.h +--- ./jdk/src/solaris/native/sun/nio/ch/sctp/Sctp.h Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/solaris/native/sun/nio/ch/sctp/Sctp.h Wed Nov 05 12:14:24 2014 -0800 @@ -67,7 +67,7 @@ @@ -10024,8 +13955,8 @@ jboolean loadSocketExtensionFuncs(JNIEnv* env); #endif /* !SUN_NIO_CH_SCTP_H */ ---- jdk/src/solaris/native/sun/nio/ch/sctp/SctpNet.c -+++ jdk/src/solaris/native/sun/nio/ch/sctp/SctpNet.c +--- ./jdk/src/solaris/native/sun/nio/ch/sctp/SctpNet.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/solaris/native/sun/nio/ch/sctp/SctpNet.c Wed Nov 05 12:14:24 2014 -0800 @@ -58,6 +58,7 @@ */ jboolean loadSocketExtensionFuncs @@ -10042,8 +13973,8 @@ funcsLoaded = JNI_TRUE; return JNI_TRUE; ---- jdk/src/solaris/native/sun/nio/fs/MagicFileTypeDetector.c -+++ jdk/src/solaris/native/sun/nio/fs/MagicFileTypeDetector.c +--- ./jdk/src/solaris/native/sun/nio/fs/MagicFileTypeDetector.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/solaris/native/sun/nio/fs/MagicFileTypeDetector.c Wed Nov 05 12:14:24 2014 -0800 @@ -31,6 +31,12 @@ #include <dlfcn.h> #include <string.h> @@ -10066,8 +13997,8 @@ if (magic_handle == NULL) { return JNI_FALSE; } ---- jdk/src/solaris/native/sun/tools/attach/BsdVirtualMachine.c -+++ jdk/src/solaris/native/sun/tools/attach/BsdVirtualMachine.c +--- ./jdk/src/solaris/native/sun/tools/attach/BsdVirtualMachine.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/solaris/native/sun/tools/attach/BsdVirtualMachine.c Wed Nov 05 12:14:24 2014 -0800 @@ -37,7 +37,9 @@ #include <sys/types.h> #include <sys/socket.h> @@ -10078,8 +14009,8 @@ #include <sys/un.h> #include <fcntl.h> ---- jdk/src/solaris/native/sun/xawt/XWindow.c -+++ jdk/src/solaris/native/sun/xawt/XWindow.c +--- ./jdk/src/solaris/native/sun/xawt/XWindow.c Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/solaris/native/sun/xawt/XWindow.c Wed Nov 05 12:14:24 2014 -0800 @@ -886,7 +886,7 @@ { KeySym originalKeysym = *keysym; @@ -10089,8 +14020,8 @@ /* The following code on Linux will cause the keypad keys * not to echo on JTextField when the NumLock is on. The * keysyms will be 0, because the last parameter 2 is not defined. ---- jdk/src/windows/native/com/sun/media/sound/PLATFORM_API_WinOS_DirectSound.cpp -+++ jdk/src/windows/native/com/sun/media/sound/PLATFORM_API_WinOS_DirectSound.cpp +--- ./jdk/src/windows/native/com/sun/media/sound/PLATFORM_API_WinOS_DirectSound.cpp Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/windows/native/com/sun/media/sound/PLATFORM_API_WinOS_DirectSound.cpp Wed Nov 05 12:14:24 2014 -0800 @@ -308,7 +308,7 @@ DAUDIO_PCM, (bitsArray[bitIndex]==8)?FALSE:TRUE, /* signed */ @@ -10109,45 +14040,27 @@ isBigEndian #else !isBigEndian ---- make/Main.gmk -+++ make/Main.gmk -@@ -58,7 +58,11 @@ - - # Setup number of jobs to use. -jN is unfortunately not available for us to parse from the command line, - # hence this workaround. -+ifdef JOBS -+ifneq ($(JOBS),0) - MAKE_ARGS:=$(MAKE_ARGS) -j$(JOBS) -+endif -+endif - - ### Main targets - ---- make/common/MakeBase.gmk -+++ make/common/MakeBase.gmk -@@ -365,8 +365,8 @@ - - # This is to be called by all SetupFoo macros - define LogSetupMacroEntry -- $(if $(27),$(error Internal makefile error: Too many arguments to LogSetupMacroEntry, please update MakeBase.gmk)) -- $(if $(findstring $(LOG_LEVEL),debug trace), $(info $1 $(foreach i,2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26,$(if $($i),$(NEWLINE) $(strip [$i] $($i)))))) -+ $(if $(30),$(error Internal makefile error: Too many arguments to LogSetupMacroEntry, please update MakeBase.gmk)) -+ $(if $(findstring $(LOG_LEVEL),debug trace), $(info $1 $(foreach i,2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29,$(if $($i),$(NEWLINE) $(strip [$i] $($i)))))) - endef - - # Make directory without forking mkdir if not needed ---- make/common/NativeCompilation.gmk -+++ make/common/NativeCompilation.gmk -@@ -151,9 +151,9 @@ - # CC the compiler to use, default is $(CC) - # LDEXE the linker to use for linking executables, default is $(LDEXE) - # OPTIMIZATION sets optimization level to NONE, LOW, HIGH, HIGHEST -- $(foreach i,2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26, $(if $($i),$1_$(strip $($i)))$(NEWLINE)) -- $(call LogSetupMacroEntry,SetupNativeCompilation($1),$2,$3,$4,$5,$6,$7,$8,$9,$(10),$(11),$(12),$(13),$(14),$(15),$(16),$(17),$(18),$(19),$(20),$(21),$(22),$(23),$(24),$(25),$(26)) -- $(if $(27),$(error Internal makefile error: Too many arguments to SetupNativeCompilation, please update NativeCompilation.gmk)) -+ $(foreach i,2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29, $(if $($i),$1_$(strip $($i)))$(NEWLINE)) -+ $(call LogSetupMacroEntry,SetupNativeCompilation($1),$2,$3,$4,$5,$6,$7,$8,$9,$(10),$(11),$(12),$(13),$(14),$(15),$(16),$(17),$(18),$(19),$(20),$(21),$(22),$(23),$(24),$(25),$(26),$(27),$(28),$(29)) -+ $(if $(30),$(error Internal makefile error: Too many arguments to SetupNativeCompilation, please update NativeCompilation.gmk)) - - ifneq (,$$($1_BIN)) - $$(error BIN has been replaced with OBJECT_DIR) +--- ./jdk/src/windows/native/sun/windows/awt_Component.cpp Tue Sep 09 12:00:58 2014 -0700 ++++ ./jdk/src/windows/native/sun/windows/awt_Component.cpp Wed Nov 05 12:14:24 2014 -0800 +@@ -3960,7 +3960,6 @@ + DASSERT(stringCls); + CHECK_NULL(stringCls); + clauseReading = env->NewObjectArray(cClause, stringCls, NULL); +- env->DeleteLocalRef(stringCls); + DASSERT(clauseReading); + CHECK_NULL(clauseReading); + for (int i=0; i<cClause; i++) env->SetObjectArrayElement(clauseReading, i, rgClauseReading[i]); +--- ./langtools/.hgtags Mon Sep 08 12:38:00 2014 -0700 ++++ ./langtools/.hgtags Wed Nov 05 12:14:12 2014 -0800 +@@ -329,3 +329,4 @@ + a340d68b020585cad7aa6e38d1aafb19ad0e4e07 jdk8u25-b14 + 6e0c19cd42d7c4d307bea26840ee831cbd14e2fc jdk8u25-b15 + 7fa6fa7cc204de988e224c6f8f75e62128fa84cd jdk8u25-b16 ++53ca196be1ae098466976c017b166d4ce180c36f jdk8u25-b17 +--- ./nashorn/.hgtags Mon Sep 08 12:38:15 2014 -0700 ++++ ./nashorn/.hgtags Wed Nov 05 12:14:13 2014 -0800 +@@ -317,3 +317,4 @@ + 6a93467eaa36f732b84ecd463e046c4066fef40c jdk8u25-b14 + 71e8403a2f8279315419adf5f4e9d6b232b6835c jdk8u25-b15 + 1500138ce513600457be6bfa10979ecce6515aa6 jdk8u25-b16 ++4b9cc65dd24d398c4f921c0beccfb8caeaaaf584 jdk8u25-b17 |