summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
authorJung-uk Kim <jkim@FreeBSD.org>2014-03-28 22:11:29 +0000
committerJung-uk Kim <jkim@FreeBSD.org>2014-03-28 22:11:29 +0000
commitaa8f38c3b67bc647eb1082c28adbf84a577ec664 (patch)
tree1b5de55f915e26fa07bf8ea7645eecd4f2478dd2 /java
parent- Update to 0.9.11 (diff)
Add a port of OpenJDK8.
Submitted by: Brian Gardner <openjdk@getsnappy.com> (preliminary version)
Notes
Notes: svn path=/head/; revision=349468
Diffstat (limited to 'java')
-rw-r--r--java/Makefile1
-rw-r--r--java/openjdk8/Makefile211
-rw-r--r--java/openjdk8/distinfo4
-rw-r--r--java/openjdk8/files/bsd.fontconfig.properties.in191
-rw-r--r--java/openjdk8/files/cacertsbin0 -> 82586 bytes
-rw-r--r--java/openjdk8/files/patch-bsd6843
-rw-r--r--java/openjdk8/files/patch-bsd-test1344
-rw-r--r--java/openjdk8/files/patch-configure10
-rw-r--r--java/openjdk8/files/patch-hotspot-src-os-bsd-vm-os_bsd.cpp11
-rw-r--r--java/openjdk8/files/patch-jdk-make-lib-CoreLibraries.gmk16
-rw-r--r--java/openjdk8/files/patch-jdk-make-lib-ServiceabilityLibraries.gmk19
-rw-r--r--java/openjdk8/files/patch-jdk-make-lib-SoundLibraries.gmk16
-rw-r--r--java/openjdk8/files/patch-jdk-src-share-classes-com-sun-java-swing-plaf-gtk-Metacity.java15
-rw-r--r--java/openjdk8/files/patch-jdk-src-solaris-bin-java_md_solinux.h12
-rw-r--r--java/openjdk8/files/patch-jdk-src-solaris-classes-sun-nio-fs-BsdFileSystemProvider.java30
-rw-r--r--java/openjdk8/files/patch-jdk-src-solaris-classes-sun-nio-fs-DefaultFileSystemProvider.java38
-rw-r--r--java/openjdk8/pkg-descr3
-rw-r--r--java/openjdk8/pkg-message16
18 files changed, 8780 insertions, 0 deletions
diff --git a/java/Makefile b/java/Makefile
index 37d753d5749b..db1215f75f81 100644
--- a/java/Makefile
+++ b/java/Makefile
@@ -128,6 +128,7 @@
SUBDIR += openjdk6
SUBDIR += openjdk6-jre
SUBDIR += openjdk7
+ SUBDIR += openjdk8
SUBDIR += phpeclipse
SUBDIR += poseidon
SUBDIR += proguard
diff --git a/java/openjdk8/Makefile b/java/openjdk8/Makefile
new file mode 100644
index 000000000000..b6b0c787e8d4
--- /dev/null
+++ b/java/openjdk8/Makefile
@@ -0,0 +1,211 @@
+# $FreeBSD$
+
+PORTNAME= openjdk
+PORTVERSION= ${JDK_MAJOR_VERSION}.${PORT_MINOR_VERSION}.${PORT_BUILD_NUMBER:S/^0//}
+CATEGORIES= java devel
+MASTER_SITES= http://download.java.net/openjdk/jdk8/promoted/b${JDK_BUILD_NUMBER}/:jdk \
+ https://adopt-openjdk.ci.cloudbees.com/job/jtreg/${JTREG_JENKINS_BUILD}/artifact/:jtreg \
+ LOCAL/jkim:jdk LOCAL/jkim:jtreg
+DISTNAME= ${PORTNAME}-${JDK_MAJOR_VERSION}-src-b${JDK_BUILD_NUMBER}-${JDK_BUILD_DATE}
+DISTFILES= ${DISTNAME}${EXTRACT_SUFX}:jdk
+
+MAINTAINER= java@FreeBSD.org
+COMMENT= Java Development Kit 8
+
+LICENSE= GPLv2
+
+BUILD_DEPENDS= zip:${PORTSDIR}/archivers/zip \
+ ${LOCALBASE}/include/cups/cups.h:${PORTSDIR}/print/cups-client \
+ bash:${PORTSDIR}/shells/bash
+LIB_DEPENDS= libasound.so:${PORTSDIR}/audio/alsa-lib \
+ libfreetype.so:${PORTSDIR}/print/freetype2 \
+ libgif.so:${PORTSDIR}/graphics/giflib
+RUN_DEPENDS= javavm:${PORTSDIR}/java/javavmwrapper \
+ ${LOCALBASE}/lib/X11/fonts/dejavu:${PORTSDIR}/x11-fonts/dejavu
+
+USES= compiler:features dos2unix gmake iconv pkgconfig shebangfix zip
+USE_AUTOTOOLS= autoconf
+USE_XORG= x11 xext xi xrender xt xtst
+
+LATEST_LINK= openjdk8
+ONLY_FOR_ARCHS= i386 amd64
+WRKSRC= ${WRKDIR}/${PORTNAME}
+
+DOS2UNIX_FILES= jdk/src/share/classes/com/sun/org/apache/xml/internal/security/resource/xmlsecurity_en.properties
+SHEBANG_FILES= configure
+
+_MAKE_JOBS= #
+CPPFLAGS+= -I${LOCALBASE}/include
+LDFLAGS+= -L${LOCALBASE}/lib
+MAKE_ENV= LANG="C" LC_ALL="C"
+MAKE_ENV+= CLASSPATH="" JAVA_HOME="" LD_LIBRARY_PATH="" MAKEFLAGS=""
+MAKE_ENV+= IGNORE_OLD_CONFIG=true
+
+JDK_BUILDDIR= ${WRKSRC}/build/${JDK_OSARCH}-normal-server-${JDK_BUILD_TYPE}
+JDK_IMAGEDIR= ${JDK_BUILDDIR}/images/j2sdk-image
+JDK_OSARCH= bsd-${ARCH:S/i386/x86/:S/amd64/x86_64/}
+INSTALLDIR= ${PREFIX}/${PORTNAME}${JDK_MAJOR_VERSION}
+
+NOPRECIOUSMAKEVARS= yes
+
+JDK_MAJOR_VERSION= 8
+JDK_BUILD_NUMBER= 132
+JDK_BUILD_DATE= 03_mar_2014
+JTREG_VERSION= 4.1
+JTREG_BUILD_NUMBER= b08
+JTREG_JENKINS_BUILD= 77
+PORT_MINOR_VERSION= 0
+PORT_BUILD_NUMBER= ${JDK_BUILD_NUMBER}
+
+CONFIGURE_ARGS= --with-boot-jdk=${BOOTSTRAPJDKDIR}
+CONFIGURE_ARGS+= --with-build-number="b${PORT_BUILD_NUMBER}"
+.if ${PORT_MINOR_VERSION} > 0
+CONFIGURE_ARGS+= --with-update-version=${PORT_MINOR_VERSION}
+.endif
+CONFIGURE_ARGS+= --disable-freetype-bundling \
+ --disable-zip-debug-info \
+ --with-alsa=${LOCALBASE} \
+ --with-cacerts-file=${FILESDIR}/cacerts \
+ --with-cups=${LOCALBASE} \
+ --with-debug-level=${JDK_BUILD_TYPE} \
+ --with-freetype=${LOCALBASE} \
+ --with-freetype-include=${LOCALBASE}/include/freetype2 \
+ --with-giflib=system \
+ --with-jobs=${MAKE_JOBS_NUMBER} \
+ --with-milestone=fcs \
+ --with-zlib=system
+CONFIGURE_SCRIPT= ../../configure
+CONFIGURE_WRKSRC= ${WRKSRC}/common/autoconf
+
+OPTIONS_DEFINE= POLICY TEST TZUPDATE
+OPTIONS_DEFAULT= POLICY RELEASE TZUPDATE
+OPTIONS_SINGLE= BUILD
+OPTIONS_SINGLE_BUILD= DEBUG DEBUGFAST RELEASE
+BUILD_DESC= Select OpenJDK build type
+DEBUG_DESC= Build for debugging (without optimizations)
+DEBUGFAST_DESC= Build for debugging (with optimizations)
+POLICY_DESC= Install the Unlimited Strength Policy Files
+RELEASE_DESC= Build for release (default)
+TEST_DESC= Run regression tests
+TZUPDATE_DESC= Update the time zone data
+
+POLICY_CONFIGURE_ENABLE=unlimited-crypto
+RELEASE_CONFIGURE_ON= --disable-debug-symbols
+TEST_ALL_TARGET= test
+TEST_CONFIGURE_ON= --with-jtreg=${WRKDIR}/jtreg
+TEST_DISTFILES= jtreg${JTREG_VERSION}-${JTREG_BUILD_NUMBER}.tar.gz:jtreg
+TZUPDATE_RUN_DEPENDS= ${LOCALBASE}/share/java/zi:${PORTSDIR}/java/java-zoneinfo:${PORTSDIR}/converters/libiconv
+
+.include <bsd.port.options.mk>
+
+.if ${PORT_OPTIONS:MDEBUG}
+JDK_BUILD_TYPE= slowdebug
+.elif ${PORT_OPTIONS:MDEBUGFAST}
+JDK_BUILD_TYPE= fastdebug
+.elif ${PORT_OPTIONS:MRELEASE}
+JDK_BUILD_TYPE= release
+.endif
+
+.include <bsd.port.pre.mk>
+
+BOOTSTRAP_JDKS= ${LOCALBASE}/openjdk8 \
+ ${LOCALBASE}/openjdk7
+
+# do we have valid native jdk installed?
+.for BJDK in ${BOOTSTRAP_JDKS}
+. if !defined(BOOTSTRAPJDKDIR) && exists(${BJDK}/bin/javac)
+BOOTSTRAPJDKDIR= ${BJDK}
+. endif
+.endfor
+
+# if no valid jdk found, set dependency
+.if !defined(BOOTSTRAPJDKDIR)
+BOOTSTRAPJDKDIR?= ${LOCALBASE}/openjdk7
+BUILD_DEPENDS+= ${BOOTSTRAPJDKDIR}/bin/javac:${PORTSDIR}/java/openjdk7
+.endif
+
+.if ${COMPILER_TYPE} == clang
+MAKE_ENV+= USE_CLANG=true
+.if ${COMPILER_FEATURES:Mlibc++}
+CONFIGURE_ENV= LIBCXX="-lc++"
+.endif
+.endif
+
+.if empty(ICONV_LIB)
+ICONV_CPPFLAGS= -DLIBICONV_PLUG
+.else
+ICONV_CPPFLAGS= -I${LOCALBASE}/include
+ICONV_LDFLAGS= -L${LOCALBASE}/lib ${ICONV_LIB}
+.endif
+
+post-extract:
+ @${MKDIR} ${WRKSRC}/jdk/src/bsd/classes/java/net \
+ ${WRKSRC}/jdk/src/bsd/classes/sun/nio/ch
+ @${MV} -f ${WRKSRC}/jdk/src/macosx/classes/java/net/DefaultInterface.java \
+ ${WRKSRC}/jdk/src/bsd/classes/java/net
+ @${MV} -f ${WRKSRC}/jdk/src/macosx/classes/sun/nio/ch/DefaultSelectorProvider.java \
+ ${WRKSRC}/jdk/src/bsd/classes/sun/nio/ch
+ @${MV} -f ${WRKSRC}/jdk/src/macosx/classes/sun/nio/ch/KQueue*.java \
+ ${WRKSRC}/jdk/src/solaris/classes/sun/nio/ch
+ @${MV} -f ${WRKSRC}/jdk/src/macosx/native/sun/nio/ch/KQueue*.c \
+ ${WRKSRC}/jdk/src/solaris/native/sun/nio/ch
+ @${RMDIR} ${WRKSRC}/jdk/src/macosx/classes/java/net \
+ ${WRKSRC}/jdk/src/macosx/native/sun/nio/ch \
+ ${WRKSRC}/jdk/src/macosx/native/sun/nio
+
+post-patch:
+ @${SED} -e 's|%%LOCALBASE%%|${LOCALBASE}|' \
+ ${FILESDIR}/bsd.fontconfig.properties.in > \
+ ${WRKSRC}/jdk/src/solaris/classes/sun/awt/fontconfigs/bsd.fontconfig.properties
+ @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' \
+ ${WRKSRC}/configure \
+ ${WRKSRC}/hotspot/src/os/bsd/vm/os_bsd.cpp \
+ ${WRKSRC}/jdk/make/lib/SoundLibraries.gmk \
+ ${WRKSRC}/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/Metacity.java \
+ ${WRKSRC}/jdk/src/solaris/bin/java_md_solinux.h \
+ ${WRKSRC}/jdk/src/solaris/classes/sun/nio/fs/BsdFileSystemProvider.java
+ @${REINPLACE_CMD} -e 's|%%ICONV_CPPFLAGS%%|${ICONV_CPPFLAGS}|' \
+ -e 's|%%ICONV_LDFLAGS%%|${ICONV_LDFLAGS}|' \
+ ${WRKSRC}/jdk/make/lib/CoreLibraries.gmk \
+ ${WRKSRC}/jdk/make/lib/ServiceabilityLibraries.gmk
+ @${CHMOD} 755 ${WRKSRC}/configure
+
+post-build:
+ @${JDK_IMAGEDIR}/bin/jar cfe \
+ ${JDK_IMAGEDIR}/jre/lib/compilefontconfig.jar \
+ build.tools.compilefontconfig.CompileFontConfig \
+ -C ${JDK_BUILDDIR}/jdk/btclasses build/tools/compilefontconfig
+ @${JDK_IMAGEDIR}/bin/jar cfe \
+ ${JDK_IMAGEDIR}/jre/lib/javazic.jar \
+ build.tools.tzdb.TzdbZoneRulesCompiler \
+ -C ${JDK_BUILDDIR}/jdk/btclasses build/tools/tzdb
+.if ${PORT_OPTIONS:MTZUPDATE}
+ @# Update time zones
+ @${RM} -rf ${JDK_IMAGEDIR}/jre/lib/zi
+ @${LN} -sf ${LOCALBASE}/share/java/zi ${JDK_IMAGEDIR}/jre/lib
+.endif
+
+do-install:
+ @${MKDIR} ${STAGEDIR}${INSTALLDIR}
+ @cd ${JDK_IMAGEDIR} && \
+ ${COPYTREE_SHARE} . ${STAGEDIR}${INSTALLDIR} \
+ "-not ( -type d -name bin -prune )"
+ @cd ${JDK_IMAGEDIR} && \
+ ${COPYTREE_BIN} "bin jre/bin" ${STAGEDIR}${INSTALLDIR}
+ @cd ${JDK_IMAGEDIR} && \
+ ${INSTALL_PROGRAM} jre/lib/jspawnhelper \
+ ${STAGEDIR}${INSTALLDIR}/jre/lib
+ @cd ${JDK_IMAGEDIR} && \
+ ${INSTALL_PROGRAM} jre/lib/${ARCH}/jexec \
+ ${STAGEDIR}${INSTALLDIR}/jre/lib/${ARCH}
+ @cd ${JDK_IMAGEDIR} && \
+ ${INSTALL_PROGRAM} lib/${ARCH}/jexec \
+ ${STAGEDIR}${INSTALLDIR}/lib/${ARCH}
+ @${ECHO} "@unexec ${LOCALBASE}/bin/unregistervm ${INSTALLDIR}/bin/java" >> ${TMPPLIST}
+ @${FIND} -s ${STAGEDIR}${INSTALLDIR} -not -type d | ${SORT} | \
+ ${SED} -e 's#^${STAGEDIR}${PREFIX}/##' >> ${TMPPLIST}
+ @${FIND} ${STAGEDIR}${INSTALLDIR} -type d | ${SORT} -r | \
+ ${SED} -e 's,^${STAGEDIR}${PREFIX}/,@dirrm ,' >> ${TMPPLIST}
+ @${ECHO} "@exec ${LOCALBASE}/bin/registervm '${INSTALLDIR}/bin/java # OpenJDK${JDK_MAJOR_VERSION}'" >> ${TMPPLIST}
+
+.include <bsd.port.post.mk>
diff --git a/java/openjdk8/distinfo b/java/openjdk8/distinfo
new file mode 100644
index 000000000000..9f52b48205d1
--- /dev/null
+++ b/java/openjdk8/distinfo
@@ -0,0 +1,4 @@
+SHA256 (openjdk-8-src-b132-03_mar_2014.zip) = ba651f9aa68fdc823b2ef55510710a013ab9f78fff291d5dc1c4d166f3e1e589
+SIZE (openjdk-8-src-b132-03_mar_2014.zip) = 124099402
+SHA256 (jtreg4.1-b08.tar.gz) = a9fbfac903313c12687e60978c4688c20189cdf873560125917d6ad53d55b30c
+SIZE (jtreg4.1-b08.tar.gz) = 6834252
diff --git a/java/openjdk8/files/bsd.fontconfig.properties.in b/java/openjdk8/files/bsd.fontconfig.properties.in
new file mode 100644
index 000000000000..8d5d4f6b4fc4
--- /dev/null
+++ b/java/openjdk8/files/bsd.fontconfig.properties.in
@@ -0,0 +1,191 @@
+#
+#
+# Copyright (c) 2007, 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.
+#
+
+# Version
+
+# Uses FreeBSD ports Tree fonts and file paths.
+version=1
+
+# Component Font Mappings
+
+dialog.plain.latin-1=DejaVu Sans
+dialog.plain.japanese-x0208=Sazanami Gothic
+dialog.plain.korean=NanumGothic
+dialog.plain.chinese-big5=AR PL UMing
+dialog.plain.chinese-gb18030=AR PL UMing
+
+dialog.bold.latin-1=DejaVu Sans Bold
+dialog.bold.japanese-x0208=Sazanami Gothic
+dialog.bold.korean=NanumGothic Bold
+dialog.bold.chinese-big5=AR PL UMing
+dialog.bold.chinese-gb18030=AR PL UMing
+
+dialog.italic.latin-1=DejaVu Sans Oblique
+dialog.italic.japanese-x0208=Sazanami Gothic
+dialog.italic.korean=NanumGothic
+dialog.italic.chinese-big5=AR PL UMing
+dialog.italic.chinese-gb18030=AR PL UMing
+
+dialog.bolditalic.latin-1=DejaVu Sans Bold Oblique
+dialog.bolditalic.japanese-x0208=Sazanami Gothic
+dialog.bolditalic.korean=NanumGothic Bold
+dialog.bolditalic.chinese-big5=AR PL UMing
+dialog.bolditalic.chinese-gb18030=AR PL UMing
+
+
+sansserif.plain.latin-1=DejaVu Sans
+sansserif.plain.japanese-x0208=Sazanami Gothic
+sansserif.plain.korean=NanumGothic
+sansserif.plain.chinese-big5=AR PL UMing
+sansserif.plain.chinese-gb18030=AR PL UMing
+
+sansserif.bold.latin-1=DejaVu Sans Bold
+sansserif.bold.japanese-x0208=Sazanami Gothic
+sansserif.bold.korean=NanumGothic Bold
+sansserif.bold.chinese-big5=AR PL UMing
+sansserif.bold.chinese-gb18030=AR PL UMing
+
+sansserif.italic.latin-1=DejaVu Sans Oblique
+sansserif.italic.japanese-x0208=Sazanami Gothic
+sansserif.italic.korean=NanumGothic
+sansserif.italic.chinese-big5=AR PL UMing
+sansserif.italic.chinese-gb18030=AR PL UMing
+
+sansserif.bolditalic.latin-1=DejaVu Sans Bold Oblique
+sansserif.bolditalic.japanese-x0208=Sazanami Gothic
+sansserif.bolditalic.korean=NanumGothic Bold
+sansserif.bolditalic.chinese-big5=AR PL UMing
+sansserif.bolditalic.chinese-gb18030=AR PL UMing
+
+
+serif.plain.latin-1=DejaVu Serif
+serif.plain.japanese-x0208=Sazanami Mincho
+serif.plain.korean=NanumMyeongjo
+serif.plain.chinese-big5=AR PL UKai
+serif.plain.chinese-gb18030=AR PL UKai
+
+serif.bold.latin-1=DejaVu Serif Bold
+serif.bold.japanese-x0208=Sazanami Mincho
+serif.bold.korean=NanumMyeongjo Bold
+serif.bold.chinese-big5=AR PL UKai
+serif.bold.chinese-gb18030=AR PL UKai
+
+serif.italic.latin-1=DejaVu Serif Italic
+serif.italic.japanese-x0208=Sazanami Mincho
+serif.italic.korean=NanumMyeongjo
+serif.italic.chinese-big5=AR PL UKai
+serif.italic.chinese-gb18030=AR PL UKai
+
+serif.bolditalic.latin-1=DejaVu Serif Bold Italic
+serif.bolditalic.japanese-x0208=Sazanami Mincho
+serif.bolditalic.korean=NanumMyeongjo Bold
+serif.bolditalic.chinese-big5=AR PL UKai
+serif.bolditalic.chinese-gb18030=AR PL UKai
+
+
+monospaced.plain.latin-1=DejaVu Sans Mono
+monospaced.plain.japanese-x0208=Sazanami Gothic
+monospaced.plain.korean=NanumGothic
+monospaced.plain.chinese-big5=AR PL UMing
+monospaced.plain.chinese-gb18030=AR PL UMing
+
+monospaced.bold.latin-1=DejaVu Sans Mono Bold
+monospaced.bold.japanese-x0208=Sazanami Gothic
+monospaced.bold.korean=NanumGothic Bold
+monospaced.bold.chinese-big5=AR PL UMing
+monospaced.bold.chinese-gb18030=AR PL UMing
+
+monospaced.italic.latin-1=DejaVu Sans Mono Oblique
+monospaced.italic.japanese-x0208=Sazanami Gothic
+monospaced.italic.korean=NanumGothic
+monospaced.italic.chinese-big5=AR PL UMing
+monospaced.italic.chinese-gb18030=AR PL UMing
+
+monospaced.bolditalic.latin-1=DejaVu Sans Mono Bold Oblique
+monospaced.bolditalic.japanese-x0208=Sazanami Gothic
+monospaced.bolditalic.korean=NanumGothic Bold
+monospaced.bolditalic.chinese-big5=AR PL UMing
+monospaced.bolditalic.chinese-gb18030=AR PL UMing
+
+
+dialoginput.plain.latin-1=DejaVu Sans Mono
+dialoginput.plain.japanese-x0208=Sazanami Gothic
+dialoginput.plain.korean=NanumGothic
+dialoginput.plain.chinese-big5=AR PL UMing
+dialoginput.plain.chinese-gb18030=AR PL UMing
+
+dialoginput.bold.latin-1=DejaVu Sans Mono Bold
+dialoginput.bold.japanese-x0208=Sazanami Gothic
+dialoginput.bold.korean=NanumGothic Bold
+dialoginput.bold.chinese-big5=AR PL UMing
+dialoginput.bold.chinese-gb18030=AR PL UMing
+
+dialoginput.italic.latin-1=DejaVu Sans Mono Oblique
+dialoginput.italic.japanese-x0208=Sazanami Gothic
+dialoginput.italic.korean=NanumGothic
+dialoginput.italic.chinese-big5=AR PL UMing
+dialoginput.italic.chinese-gb18030=AR PL UMing
+
+dialoginput.bolditalic.latin-1=DejaVu Sans Mono Bold Oblique
+dialoginput.bolditalic.japanese-x0208=Sazanami Gothic
+dialoginput.bolditalic.korean=NanumGothic Bold
+dialoginput.bolditalic.chinese-big5=AR PL UMing
+dialoginput.bolditalic.chinese-gb18030=AR PL UMing
+
+# Search Sequences
+
+sequence.allfonts=latin-1
+sequence.allfonts.Big5=chinese-big5,latin-1
+sequence.allfonts.x-euc-jp-bsd=japanese-x0208,latin-1
+sequence.allfonts.EUC-KR=korean,latin-1
+sequence.allfonts.GB18030=chinese-gb18030,latin-1
+sequence.fallback=chinese-big5,chinese-gb18030,japanese-x0208,korean
+
+# Font File Names
+
+filename.DejaVu_Sans=%%LOCALBASE%%/lib/X11/fonts/dejavu/DejaVuSans.ttf
+filename.DejaVu_Sans_Bold=%%LOCALBASE%%/lib/X11/fonts/dejavu/DejaVuSans-Bold.ttf
+filename.DejaVu_Sans_Oblique=%%LOCALBASE%%/lib/X11/fonts/dejavu/DejaVuSans-Oblique.ttf
+filename.DejaVu_Sans_Bold_Oblique=%%LOCALBASE%%/lib/X11/fonts/dejavu/DejaVuSans-BoldOblique.ttf
+
+filename.DejaVu_Sans_Mono=%%LOCALBASE%%/lib/X11/fonts/dejavu/DejaVuSansMono.ttf
+filename.DejaVu_Sans_Mono_Bold=%%LOCALBASE%%/lib/X11/fonts/dejavu/DejaVuSansMono-Bold.ttf
+filename.DejaVu_Sans_Mono_Oblique=%%LOCALBASE%%/lib/X11/fonts/dejavu/DejaVuSansMono-Oblique.ttf
+filename.DejaVu_Sans_Mono_Bold_Oblique=%%LOCALBASE%%/lib/X11/fonts/dejavu/DejaVuSansMono-BoldOblique.ttf
+
+filename.DejaVu_Serif=%%LOCALBASE%%/lib/X11/fonts/dejavu/DejaVuSerif.ttf
+filename.DejaVu_Serif_Bold=%%LOCALBASE%%/lib/X11/fonts/dejavu/DejaVuSerif-Bold.ttf
+filename.DejaVu_Serif_Italic=%%LOCALBASE%%/lib/X11/fonts/dejavu/DejaVuSerif-Italic.ttf
+filename.DejaVu_Serif_Bold_Italic=%%LOCALBASE%%/lib/X11/fonts/dejavu/DejaVuSerif-BoldItalic.ttf
+
+filename.Sazanami_Gothic=%%LOCALBASE%%/share/font-sazanami/sazanami-gothic.ttf
+filename.Sazanami_Mincho=%%LOCALBASE%%/share/font-sazanami/sazanami-mincho.ttf
+filename.AR_PL_ShanHeiSun_Uni=%%LOCALBASE%%/share/fonts/TrueType/uming.ttc
+filename.AR_PL_ZenKai_Uni=%%LOCALBASE%%/share/fonts/TrueType/ukai.ttc
+filename.NanumGothic=%%LOCALBASE%%/lib/X11/fonts/nanum-ttf/NanumGothic.ttf
+filename.NanumGothic_Bold=%%LOCALBASE%%/lib/X11/fonts/nanum-ttf/NanumGothicBold.ttf
+filename.NanumMyeongjo=%%LOCALBASE%%/lib/X11/fonts/nanum-ttf/NanumMyeongjo.ttf
+filename.NanumMyeongjo_Bold=%%LOCALBASE%%/lib/X11/fonts/nanum-ttf/NanumMyeongjoBold.ttf
diff --git a/java/openjdk8/files/cacerts b/java/openjdk8/files/cacerts
new file mode 100644
index 000000000000..0a37aa432dda
--- /dev/null
+++ b/java/openjdk8/files/cacerts
Binary files differ
diff --git a/java/openjdk8/files/patch-bsd b/java/openjdk8/files/patch-bsd
new file mode 100644
index 000000000000..6ea1296e0ca6
--- /dev/null
+++ b/java/openjdk8/files/patch-bsd
@@ -0,0 +1,6843 @@
+--- common/autoconf/build-performance.m4
++++ common/autoconf/build-performance.m4
+@@ -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`
++ 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 @@
+ 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
++ 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 @@
+ 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
+@@ -554,7 +554,7 @@
+ fi
+
+ 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}"
+ ALSA_FOUND=yes
+ fi
++ if test "x$OPENJDK_TARGET_OS" = xbsd; then
++ ALSA_LIBS="$ALSA_LIBS -lasound"
++ else
++ 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 @@
+ 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
++
+ AC_SUBST(LIBCXX)
+ ])
+--- common/autoconf/platform.m4
++++ common/autoconf/platform.m4
+@@ -30,7 +30,7 @@
+ [
+ # First argument is the cpu name from the trip/quad
+ case "$1" in
+- x86_64)
++ amd64|x86_64)
+ VAR_CPU=x86_64
+ VAR_CPU_ARCH=x86
+ VAR_CPU_BITS=64
+--- common/autoconf/toolchain.m4
++++ common/autoconf/toolchain.m4
+@@ -63,7 +63,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
+ 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 @@
+
+ # 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
+ AC_CHECK_TOOLS(OBJCOPY, [gobjcopy objcopy])
+ # Only call fixup if objcopy was found.
+ if test -n "$OBJCOPY"; then
+@@ -526,9 +526,11 @@
+ 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"
++ fi
+ else
+ if test "x$OPENJDK_TARGET_OS" = xsolaris; then
+ # If it is not gcc, then assume it is the Oracle Solaris Studio Compiler
+--- hotspot/make/bsd/makefiles/build_vm_def.sh
++++ hotspot/make/bsd/makefiles/build_vm_def.sh
+@@ -1,12 +1,21 @@
+ #!/bin/sh
+
+ # If we're cross compiling use that path for nm
+-if [ "$CROSS_COMPILE_ARCH" != "" ]; then
++if [ "$CROSS_COMPILE_ARCH" != "" ]; then
+ NM=$ALT_COMPILER_PATH/nm
+ else
+ NM=nm
+ fi
+
+-$NM -Uj $* | awk '
+- { if ($3 ~ /^_ZTV/ || $3 ~ /^gHotSpotVM/) print "\t" $3 }
+- '
++case `uname` in
++ *BSD )
++ $NM --defined-only $* | awk '
++ { if ($3 ~ /^_ZTV/ || $3 ~ /^gHotSpotVM/) print "\t" $3 ";" }
++ '
++ ;;
++ Darwin )
++ $NM -Uj $* | awk '
++ { if ($3 ~ /^_ZTV/ || $3 ~ /^gHotSpotVM/) print "\t" $3 }
++ '
++ ;;
++esac
+--- 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/gcc.make
++++ hotspot/make/bsd/makefiles/gcc.make
+@@ -201,12 +201,15 @@
+ endif
+
+ ifeq ($(USE_CLANG), true)
+- # Before Clang 3.1, we had to pass the stack alignment specification directly to llvm with the help of '-mllvm'
+- # Starting with version 3.1, Clang understands the '-mstack-alignment' (and rejects '-mllvm -stack-alignment')
+- ifneq "$(shell expr \( $(CC_VER_MAJOR) \> 3 \) \| \( \( $(CC_VER_MAJOR) = 3 \) \& \( $(CC_VER_MINOR) \>= 1 \) \))" "0"
+- STACK_ALIGNMENT_OPT = -mno-omit-leaf-frame-pointer -mstack-alignment=16
+- else
+- STACK_ALIGNMENT_OPT = -mno-omit-leaf-frame-pointer -mllvm -stack-alignment=16
++ STACK_ALIGNMENT_OPT = -mno-omit-leaf-frame-pointer
++ ifeq ($(OS_VENDOR), Darwin)
++ # Before Clang 3.1, we had to pass the stack alignment specification directly to llvm with the help of '-mllvm'
++ # Starting with version 3.1, Clang understands the '-mstack-alignment' (and rejects '-mllvm -stack-alignment')
++ ifneq "$(shell expr \( $(CC_VER_MAJOR) \> 3 \) \| \( \( $(CC_VER_MAJOR) = 3 \) \& \( $(CC_VER_MINOR) \>= 1 \) \))" "0"
++ STACK_ALIGNMENT_OPT += -mstack-alignment=16
++ else
++ STACK_ALIGNMENT_OPT += -mllvm -stack-alignment=16
++ endif
+ endif
+ endif
+
+--- hotspot/make/bsd/makefiles/launcher.make
++++ hotspot/make/bsd/makefiles/launcher.make
+@@ -0,0 +1,117 @@
++#
++# Copyright (c) 2005, 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.
++#
++# 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.
++#
++#
++
++# Rules to build gamma launcher, used by vm.make
++
++
++LAUNCHER_SCRIPT = hotspot
++LAUNCHER = gamma
++
++LAUNCHERDIR := $(GAMMADIR)/src/os/posix/launcher
++LAUNCHERDIR_SHARE := $(GAMMADIR)/src/share/tools/launcher
++LAUNCHERFLAGS := $(ARCHFLAG) \
++ -I$(LAUNCHERDIR) -I$(GAMMADIR)/src/share/vm/prims \
++ -I$(LAUNCHERDIR_SHARE) \
++ -DFULL_VERSION=\"$(HOTSPOT_RELEASE_VERSION)\" \
++ -DJDK_MAJOR_VERSION=\"$(JDK_MAJOR_VERSION)\" \
++ -DJDK_MINOR_VERSION=\"$(JDK_MINOR_VERSION)\" \
++ -DARCH=\"$(LIBARCH)\" \
++ -DGAMMA \
++ -DLAUNCHER_TYPE=\"gamma\" \
++ -DLINK_INTO_$(LINK_INTO) \
++ $(TARGET_DEFINES)
++# Give the launcher task_for_pid() privileges so that it can be used to run JStack, JInfo, et al.
++ifeq ($(OS_VENDOR), Darwin)
++LFLAGS_LAUNCHER += -sectcreate __TEXT __info_plist $(GAMMADIR)/src/os/bsd/launcher/Info-privileged.plist
++endif
++
++ifeq ($(LINK_INTO),AOUT)
++ LAUNCHER.o = launcher.o $(JVM_OBJ_FILES)
++ LAUNCHER_MAPFILE = mapfile_reorder
++ LFLAGS_LAUNCHER$(LDNOMAP) += $(MAPFLAG:FILENAME=$(LAUNCHER_MAPFILE))
++ LFLAGS_LAUNCHER += $(SONAMEFLAG:SONAME=$(LIBJVM)) $(STATIC_LIBGCC)
++ LIBS_LAUNCHER += $(STATIC_STDCXX) $(LIBS)
++else
++ LAUNCHER.o = launcher.o
++ LFLAGS_LAUNCHER += -L`pwd`
++
++ # The gamma launcher runs the JDK from $JAVA_HOME, overriding the JVM with a
++ # freshly built JVM at ./libjvm.{so|dylib}. This is accomplished by setting
++ # the library searchpath using ({DY}LD_LIBRARY_PATH) to find the local JVM
++ # first. Gamma dlopen()s libjava from $JAVA_HOME/jre/lib{/$arch}, which is
++ # statically linked with CoreFoundation framework libs. Unfortunately, gamma's
++ # unique searchpath results in some unresolved symbols in the framework
++ # libraries, because JDK libraries are inadvertently discovered first on the
++ # searchpath, e.g. libjpeg. On Mac OS X, filenames are case *insensitive*.
++ # So, the actual filename collision is libjpeg.dylib and libJPEG.dylib.
++ # To resolve this, gamma needs to also statically link with the CoreFoundation
++ # framework libraries.
++
++ ifeq ($(OS_VENDOR),Darwin)
++ LFLAGS_LAUNCHER += -framework CoreFoundation
++ endif
++
++ LIBS_LAUNCHER += -l$(JVM) $(LIBS)
++endif
++
++LINK_LAUNCHER = $(LINK.CC)
++
++LINK_LAUNCHER/PRE_HOOK = $(LINK_LIB.CXX/PRE_HOOK)
++LINK_LAUNCHER/POST_HOOK = $(LINK_LIB.CXX/POST_HOOK)
++
++LAUNCHER_OUT = launcher
++
++SUFFIXES += .d
++
++SOURCES := $(shell find $(LAUNCHERDIR) -name "*.c")
++SOURCES_SHARE := $(shell find $(LAUNCHERDIR_SHARE) -name "*.c")
++
++OBJS := $(patsubst $(LAUNCHERDIR)/%.c,$(LAUNCHER_OUT)/%.o,$(SOURCES)) $(patsubst $(LAUNCHERDIR_SHARE)/%.c,$(LAUNCHER_OUT)/%.o,$(SOURCES_SHARE))
++
++DEPFILES := $(patsubst %.o,%.d,$(OBJS))
++-include $(DEPFILES)
++
++$(LAUNCHER_OUT)/%.o: $(LAUNCHERDIR_SHARE)/%.c
++ $(QUIETLY) [ -d $(LAUNCHER_OUT) ] || { mkdir -p $(LAUNCHER_OUT); }
++ $(QUIETLY) $(CC) -g -o $@ -c $< -MMD $(LAUNCHERFLAGS) $(CXXFLAGS)
++
++$(LAUNCHER_OUT)/%.o: $(LAUNCHERDIR)/%.c
++ $(QUIETLY) [ -d $(LAUNCHER_OUT) ] || { mkdir -p $(LAUNCHER_OUT); }
++ $(QUIETLY) $(CC) -g -o $@ -c $< -MMD $(LAUNCHERFLAGS) $(CXXFLAGS)
++
++$(LAUNCHER): $(OBJS) $(LIBJVM) $(LAUNCHER_MAPFILE)
++ $(QUIETLY) echo Linking launcher...
++ $(QUIETLY) $(LINK_LAUNCHER/PRE_HOOK)
++ $(QUIETLY) $(LINK_LAUNCHER) $(LFLAGS_LAUNCHER) -o $@ $(sort $(OBJS)) $(LIBS_LAUNCHER)
++ $(QUIETLY) $(LINK_LAUNCHER/POST_HOOK)
++ # Sign the launcher with the development certificate (if present) so that it can be used
++ # to run JStack, JInfo, et al.
++ $(QUIETLY) -codesign -s openjdk_codesign $@
++
++$(LAUNCHER): $(LAUNCHER_SCRIPT)
++
++$(LAUNCHER_SCRIPT): $(LAUNCHERDIR)/launcher.script
++ $(QUIETLY) sed -e 's/@@LIBARCH@@/$(LIBARCH)/g' $< > $@
++ $(QUIETLY) chmod +x $@
++
+--- hotspot/make/bsd/makefiles/mapfile-vers-debug
++++ hotspot/make/bsd/makefiles/mapfile-vers-debug
+@@ -24,238 +24,245 @@
+ # 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_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_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
++
++SUNWprivate_1.1 {
++ global:
++ # 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_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_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
++ jio_fprintf;
++ jio_printf;
++ jio_snprintf;
++ jio_vfprintf;
++ jio_vsnprintf;
+
+ # This is for Forte Analyzer profiling support.
+- _AsyncGetCallTrace
++ AsyncGetCallTrace;
+
+ # INSERT VTABLE SYMBOLS HERE
+
++ local:
++ *;
++};
++
+--- hotspot/make/bsd/makefiles/mapfile-vers-product
++++ hotspot/make/bsd/makefiles/mapfile-vers-product
+@@ -24,233 +24,239 @@
+ # 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_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_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
++SUNWprivate_1.1 {
++ global:
++ # 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_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_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
++ jio_fprintf;
++ jio_printf;
++ jio_snprintf;
++ jio_vfprintf;
++ jio_vsnprintf;
+
+ # This is for Forte Analyzer profiling support.
+- _AsyncGetCallTrace
++ AsyncGetCallTrace;
+
+ # INSERT VTABLE SYMBOLS HERE
+
++ local:
++ *;
++};
++
+--- hotspot/make/bsd/makefiles/rules.make
++++ hotspot/make/bsd/makefiles/rules.make
+@@ -34,7 +34,7 @@
+ CC_COMPILE = $(CC) $(CXXFLAGS) $(CFLAGS)
+ CXX_COMPILE = $(CXX) $(CXXFLAGS) $(CFLAGS)
+
+-AS.S = $(AS) $(ASFLAGS)
++AS.S = $(AS) -x assembler-with-cpp $(ASFLAGS)
+
+ COMPILE.CC = $(CC_COMPILE) -c
+ GENASM.CC = $(CC_COMPILE) -S
+--- hotspot/src/cpu/x86/vm/jni_x86.h
++++ hotspot/src/cpu/x86/vm/jni_x86.h
+@@ -34,7 +34,7 @@
+ #ifndef __has_attribute
+ #define __has_attribute(x) 0
+ #endif
+-#if (defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4) && (__GNUC_MINOR__ > 2))) || __has_attribute(visibility)
++#if (defined(__clang__) || (defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4) && (__GNUC_MINOR__ > 2)))) || __has_attribute(visibility)
+ #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
+@@ -0,0 +1,47 @@
++/*
++ * Copyright (c) 1997, 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.
++ *
++ * 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.
++ *
++ */
++
++#ifndef __APPLE__
++#include "prims/jvm.h"
++#include "utilities/decoder_elf.hpp"
++
++#include <cxxabi.h>
++
++bool ElfDecoder::demangle(const char* symbol, char *buf, int buflen) {
++ int status;
++ char* result;
++ size_t size = (size_t)buflen;
++
++ // Don't pass buf to __cxa_demangle. In case of the 'buf' is too small,
++ // __cxa_demangle will call system "realloc" for additional memory, which
++ // may use different malloc/realloc mechanism that allocates 'buf'.
++ if ((result = abi::__cxa_demangle(symbol, NULL, NULL, &status)) != NULL) {
++ jio_snprintf(buf, buflen, "%s", result);
++ // call c library's free
++ ::free(result);
++ return true;
++ }
++ return false;
++}
++#endif
+--- hotspot/src/os/bsd/vm/osThread_bsd.cpp
++++ hotspot/src/os/bsd/vm/osThread_bsd.cpp
+@@ -30,7 +30,7 @@
+
+ void OSThread::pd_initialize() {
+ assert(this != NULL, "check");
+-#ifdef __APPLE__
++#if defined(__APPLE__) || defined(__FreeBSD__)
+ _thread_id = 0;
+ #else
+ _thread_id = NULL;
+--- hotspot/src/os/bsd/vm/os_bsd.cpp
++++ hotspot/src/os/bsd/vm/os_bsd.cpp
+@@ -102,6 +102,12 @@
+ # include <sys/ioctl.h>
+ # include <sys/syscall.h>
+
++#if __FreeBSD_version > 900030
++# include <pthread_np.h>
++#else
++# include <sys/thr.h>
++#endif
++
+ #if defined(__FreeBSD__) || defined(__NetBSD__)
+ # include <elf.h>
+ #endif
+@@ -434,8 +440,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 ":/usr/local/lib");
++#else
+ sprintf(ld_library_path, REG_DIR "/lib/%s:" DEFAULT_LIBPATH, cpu_arch);
+ #endif
++#endif
+
+ /*
+ * Get the user setting of LD_LIBRARY_PATH, and prepended it. It
+@@ -1148,7 +1158,13 @@
+ return retval;
+
+ #elif __FreeBSD__
+- retval = syscall(SYS_thr_self);
++#if __FreeBSD_version > 900030
++ return ::pthread_getthreadid_np();
++#else
++ long tid;
++ thr_self(&tid);
++ return (pid_t)tid;
++#endif
+ #elif __OpenBSD__
+ retval = syscall(SYS_getthrid);
+ #elif __NetBSD__
+@@ -1158,11 +1174,14 @@
+ if (retval == -1) {
+ return getpid();
+ }
++ return retval;
+ }
+
+ intx os::current_thread_id() {
+-#ifdef __APPLE__
++#if defined(__APPLE__)
+ return (intx)::pthread_mach_thread_np(::pthread_self());
++#elif defined(__FreeBSD__)
++ return os::Bsd::gettid();
+ #else
+ return (intx)::pthread_self();
+ #endif
+@@ -1562,24 +1581,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 +1630,14 @@
+ }
+
+ void os::print_os_info_brief(outputStream* st) {
+- st->print("Bsd");
++ st->print_cr("BSD");
+
+ os::Posix::print_uname_info(st);
+ }
+
+ void os::print_os_info(outputStream* st) {
+ st->print("OS:");
+- st->print("Bsd");
++ st->print_cr("BSD");
+
+ os::Posix::print_uname_info(st);
+
+@@ -1659,11 +1660,6 @@
+ st->print("(" UINT64_FORMAT "k free)",
+ os::available_memory() >> 10);
+ st->cr();
+-
+- // meminfo
+- st->print("\n/proc/meminfo:\n");
+- _print_ascii_file("/proc/meminfo", st);
+- st->cr();
+ }
+
+ // Taken from /usr/include/bits/siginfo.h Supposed to be architecture specific
+@@ -1943,7 +1939,7 @@
+ os_semaphore_t _semaphore;
+ };
+
+-Semaphore::Semaphore() : _semaphore(0) {
++Semaphore::Semaphore() {
+ SEM_INIT(_semaphore, 0);
+ }
+
+@@ -2746,6 +2742,7 @@
+ return OS_OK;
+ #elif defined(__FreeBSD__)
+ int ret = pthread_setprio(thread->osthread()->pthread_id(), newpri);
++ return (ret == 0) ? OS_OK : OS_ERR;
+ #elif defined(__APPLE__) || defined(__NetBSD__)
+ struct sched_param sp;
+ int policy;
+--- hotspot/src/os/bsd/vm/vmError_bsd.cpp
++++ hotspot/src/os/bsd/vm/vmError_bsd.cpp
+@@ -44,7 +44,7 @@
+ jio_snprintf(p, buflen - len,
+ "\n\n"
+ "Do you want to debug the problem?\n\n"
+- "To debug, run 'gdb /proc/%d/exe %d'; then switch to thread " INTX_FORMAT " (" INTPTR_FORMAT ")\n"
++ "To debug, run 'gdb /proc/%d/file %d'; then switch to thread " INTX_FORMAT " (" INTPTR_FORMAT ")\n"
+ "Enter 'yes' to launch gdb automatically (PATH must include gdb)\n"
+ "Otherwise, press RETURN to abort...",
+ os::current_process_id(), os::current_process_id(),
+@@ -54,7 +54,7 @@
+
+ if (yes) {
+ // yes, user asked VM to launch debugger
+- jio_snprintf(buf, buflen, "gdb /proc/%d/exe %d",
++ jio_snprintf(buf, buflen, "gdb /proc/%d/file %d",
+ os::current_process_id(), os::current_process_id());
+
+ os::fork_and_exec(buf);
+--- 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 @@
+ #ifdef _MSC_VER // the IDX_INIT hack falls foul of warning C4355
+ #pragma warning( disable:4355 ) // 'this' : used in base member initializer list
+ #endif
++#ifdef __clang__
++#pragma clang diagnostic push
++#pragma GCC diagnostic ignored "-Wuninitialized"
++#endif
+
+ // Out-of-line code from node constructors.
+ // Executed only when extra debug info. is being passed around.
+@@ -468,6 +472,10 @@
+ _in[6] = n6; if (n6 != NULL) n6->add_out((Node *)this);
+ }
+
++#ifdef __clang__
++#pragma clang diagnostic pop
++#endif
++
+
+ //------------------------------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
+@@ -261,7 +261,7 @@
+ #endif
+
+ // GCC 4.3 does not allow 0.0/0.0 to produce a NAN value
+-#if (__GNUC__ == 4) && (__GNUC_MINOR__ > 2)
++#if defined(__clang__) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 2))
+ #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))
+ $(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))
+
+ $(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
+@@ -125,23 +125,32 @@
+ sun/nio/fs/LinuxFileStore.java \
+ sun/nio/fs/LinuxFileSystem.java \
+ sun/nio/fs/LinuxFileSystemProvider.java \
+- sun/nio/fs/MagicFileTypeDetector.java \
+ sun/nio/fs/LinuxNativeDispatcher.java \
+ sun/nio/fs/LinuxUserDefinedFileAttributeView.java \
+ sun/nio/fs/LinuxWatchService.java
+ endif
+
++ifeq (, $(filter $(OPENJDK_TARGET_OS), linux bsd))
++ EXFILES += sun/nio/fs/MagicFileTypeDetector.java
++endif
++
+ ifneq ($(OPENJDK_TARGET_OS), macosx)
++ EXFILES += sun/nio/fs/MacOSXFileSystemProvider.java \
++ sun/nio/fs/MacOSXFileSystem.java \
++ sun/nio/fs/MacOSXNativeDispatcher.java
++endif
++
++ifeq (, $(filter $(OPENJDK_TARGET_OS), bsd macosx))
+ EXFILES += sun/nio/ch/BsdAsynchronousChannelProvider.java \
+ sun/nio/ch/KQueue.java \
++ sun/nio/ch/KQueueArrayWrapper.java \
+ sun/nio/ch/KQueuePort.java \
++ sun/nio/ch/KQueueSelectorImpl.java \
++ sun/nio/ch/KQueueSelectorProvider.java \
+ sun/nio/fs/BsdFileStore.java \
+ sun/nio/fs/BsdFileSystem.java \
+ sun/nio/fs/BsdFileSystemProvider.java \
+ sun/nio/fs/BsdNativeDispatcher.java \
+- sun/nio/fs/MacOSXFileSystemProvider.java \
+- sun/nio/fs/MacOSXFileSystem.java \
+- sun/nio/fs/MacOSXNativeDispatcher.java \
+ sun/tools/attach/BsdAttachProvider.java \
+ sun/tools/attach/BsdVirtualMachine.java
+ endif
+@@ -217,9 +226,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))
+ #
+- # only solaris and macosx
++ # only solaris and BSD
+ #
+ EXFILES += sun/nio/fs/PollingWatchService.java
+ endif
+@@ -259,21 +268,26 @@
+ $(JDK_TOPDIR)/src/closed/$(OPENJDK_TARGET_OS_API_DIR)/classes
+ endif
+
+-MACOSX_SRC_DIRS :=
++BSD_SRC_DIRS :=
++ifneq (, $(filter $(OPENJDK_TARGET_OS), bsd macosx))
++ BSD_SRC_DIRS += $(JDK_TOPDIR)/src/bsd/classes
++
++ # these files are duplicated in BSD_SRC_DIRS
++ EXFILES += $(JDK_TOPDIR)/src/solaris/classes/java/net/DefaultInterface.java \
++ $(JDK_TOPDIR)/src/solaris/classes/sun/nio/ch/DefaultSelectorProvider.java
++endif
++
+ ifeq ($(OPENJDK_TARGET_OS), macosx)
+- MACOSX_SRC_DIRS += $(JDK_TOPDIR)/src/macosx/classes
++ BSD_SRC_DIRS += $(JDK_TOPDIR)/src/macosx/classes
+
+- # this files are duplicated in MACOSX_SRC_DIRS
+- EXFILES += $(JDK_TOPDIR)/src/solaris/classes/sun/nio/ch/DefaultSelectorProvider.java \
+- $(JDK_TOPDIR)/src/solaris/classes/sun/java2d/BackBufferCapsProvider.java \
+- $(JDK_TOPDIR)/src/solaris/classes/java/net/DefaultInterface.java \
++ # these files are duplicated in BSD_SRC_DIRS
++ EXFILES += $(JDK_TOPDIR)/src/solaris/classes/sun/java2d/BackBufferCapsProvider.java \
+ $(JDK_TOPDIR)/src/solaris/classes/java/lang/ClassLoaderHelper.java \
+ $(JDK_TOPDIR)/src/solaris/classes/sun/util/locale/provider/HostLocaleProviderAdapterImpl.java \
+ $(JDK_TOPDIR)/src/solaris/classes/sun/nio/fs/GnomeFileTypeDetector.java \
+ $(JDK_TOPDIR)/src/solaris/classes/sun/nio/ch/sctp/SctpChannelImpl.java \
+ $(JDK_TOPDIR)/src/solaris/classes/sun/nio/ch/sctp/SctpMultiChannelImpl.java \
+ $(JDK_TOPDIR)/src/solaris/classes/sun/nio/ch/sctp/SctpServerChannelImpl.java
+-
+ endif
+
+ # The security classes should not end up in the classes directory as that will prevent them
+@@ -312,7 +326,7 @@
+ SETUP:=GENERATE_JDKBYTECODE,\
+ SRC:=$(JDK_TOPDIR)/src/share/classes \
+ $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/classes \
+- $(MACOSX_SRC_DIRS) \
++ $(BSD_SRC_DIRS) \
+ $(JDK_OUTPUTDIR)/gensrc \
+ $(JDK_OUTPUTDIR)/gensrc_no_srczip \
+ $(CLOSED_SRC_DIRS),\
+@@ -331,7 +345,7 @@
+ SETUP := GENERATE_JDKBYTECODE, \
+ SRC := $(JDK_TOPDIR)/src/share/classes \
+ $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/classes \
+- $(MACOSX_SRC_DIRS) \
++ $(BSD_SRC_DIRS) \
+ $(CLOSED_SRC_DIRS), \
+ INCLUDES := $(SECURITY_PKGS), \
+ EXCLUDES := $(EXCLUDES), \
+--- jdk/make/CompileLaunchers.gmk
++++ jdk/make/CompileLaunchers.gmk
+@@ -60,7 +60,7 @@
+ # System.loadLibrary("jawt") first. This was the behaviour described in the
+ # devloper documentation of JAWT and what worked with OpenJDK6.
+ #
+-ifneq ($(findstring $(OPENJDK_TARGET_OS), linux solaris), )
++ifneq ($(findstring $(OPENJDK_TARGET_OS), linux solaris bsd), )
+ ORIGIN_ARG += $(call SET_EXECUTABLE_ORIGIN,$(ORIGIN_ROOT)/lib$(OPENJDK_TARGET_CPU_LIBDIR))
+ endif
+
+@@ -150,11 +150,13 @@
+ $2, \
+ CFLAGS_linux := -fPIC, \
+ CFLAGS_solaris := -KPIC -DHAVE_GETHRTIME, \
++ CFLAGS_bsd := -fPIC, \
+ LDFLAGS := $(LDFLAGS_JDKEXE) \
+ $(ORIGIN_ARG) \
+ $$($1_LDFLAGS), \
+ LDFLAGS_macosx := $(call SET_SHARED_LIBRARY_NAME,$1), \
+ LDFLAGS_linux := -lpthread \
++ LDFLAGS_bsd := -pthread \
+ $(call SET_SHARED_LIBRARY_NAME,$(LIBRARY_PREFIX)$(SHARED_LIBRARY_SUFFIX)), \
+ LDFLAGS_solaris := $$($1_LDFLAGS_solaris) \
+ $(call SET_SHARED_LIBRARY_NAME,$(LIBRARY_PREFIX)$(SHARED_LIBRARY_SUFFIX)), \
+@@ -165,6 +167,7 @@
+ $(JDK_OUTPUTDIR)/objs/libjava/java.lib advapi32.lib $5, \
+ LDFLAGS_SUFFIX_linux := -L$(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/jli -ljli $(LIBDL) -lc, \
+ LDFLAGS_SUFFIX_solaris := -L$(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/jli -ljli -lthread $(LIBDL) -lc, \
++ LDFLAGS_SUFFIX_bsd := -L$(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/jli -ljli -lc, \
+ OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/$1_objs$(OUTPUT_SUBDIR), \
+ OUTPUT_DIR := $$($1_OUTPUT_DIR_ARG)$(OUTPUT_SUBDIR), \
+ PROGRAM := $1, \
+@@ -457,6 +460,7 @@
+ CFLAGS_linux := -fPIC, \
+ CFLAGS_solaris := -KPIC, \
+ CFLAGS_macosx := -fPIC, \
++ CFLAGS_bsd := -fPIC, \
+ MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libunpack/mapfile-vers-unpack200, \
+ LDFLAGS := $(UNPACKEXE_ZIPOBJS), \
+ LDFLAGS_windows := $(CXXFLAGS_JDKEXE), \
+@@ -465,6 +469,7 @@
+ $(call SET_SHARED_LIBRARY_ORIGIN), \
+ LDFLAGS_linux := -lc, \
+ LDFLAGS_solaris := $(UNPACKEXE_LDFLAGS_solaris) -lc, \
++ LDFLAGS_bsd := -lc, \
+ LDFLAGS_SUFFIX := $(LIBCXX), \
+ OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/unpackexe$(OUTPUT_SUBDIR), \
+ OUTPUT_DIR := $(JDK_OUTPUTDIR)/objs/unpackexe$(OUTPUT_SUBDIR), \
+@@ -522,6 +527,10 @@
+ BUILD_JEXEC := 1
+ endif # OPENJDK_TARGET_OS
+
++ifeq ($(OPENJDK_TARGET_OS), bsd)
++ BUILD_JEXEC := 1
++endif # OPENJDK_TARGET_OS
++
+ #
+ # jdk/make/java/jexec/Makefile
+ #
+@@ -554,6 +563,7 @@
+ $(BUILD_JEXEC_INC), \
+ CFLAGS_linux := -fPIC, \
+ CFLAGS_solaris := -KPIC, \
++ CFLAGS_bsd := -fPIC, \
+ LDFLAGS := $(LDFLAGS_JDKEXE) \
+ $(call SET_SHARED_LIBRARY_NAME,$(LIBRARY_PREFIX)$(SHARED_LIBRARY_SUFFIX)), \
+ OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/jexec_obj, \
+@@ -576,6 +586,9 @@
+ ifeq ($(OPENJDK_TARGET_OS), solaris)
+ BUILD_LAUNCHERS += $(JAVA_RMI_CGI)
+ endif
++ifeq ($(OPENJDK_TARGET_OS), bsd)
++ BUILD_LAUNCHERS += $(JAVA_RMI_CGI)
++endif
+
+ # TODO:
+ # On windows java-rmi.cgi shouldn't be bundled since Java 1.2, but has been built all
+@@ -601,11 +614,11 @@
+ 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), )
+ BUILD_JSPAWNHELPER := 1
+ endif
+
+-ifeq ($(OPENJDK_TARGET_OS), macosx)
++ifneq ($(findstring $(OPENJDK_TARGET_OS), macosx bsd), )
+ BUILD_JSPAWNHELPER_DST_DIR := $(JDK_OUTPUTDIR)/lib
+ endif
+
+--- jdk/make/CopyFiles.gmk
++++ jdk/make/CopyFiles.gmk
+@@ -31,6 +31,8 @@
+ OPENJDK_TARGET_OS_INCLUDE = $(INCLUDEDIR)/win32
+ else ifeq ($(OPENJDK_TARGET_OS), macosx)
+ OPENJDK_TARGET_OS_INCLUDE = $(INCLUDEDIR)/darwin
++else ifeq ($(OPENJDK_TARGET_OS), bsd)
++ OPENJDK_TARGET_OS_INCLUDE = $(INCLUDEDIR)/$(shell uname -s | ${TR} "[:upper:]" "[:lower:]")
+ endif
+
+ #
+@@ -323,23 +325,23 @@
+ $(RM) $(@)
+ # Now check for other permutations
+ ifeq ($(JVM_VARIANT_SERVER), true)
+- $(PRINTF) "-server KNOWN\n">>$(@)
+- $(PRINTF) "-client ALIASED_TO -server\n">>$(@)
++ $(PRINTF) -- "-server KNOWN\n">>$(@)
++ $(PRINTF) -- "-client ALIASED_TO -server\n">>$(@)
+ ifeq ($(JVM_VARIANT_MINIMAL1), true)
+- $(PRINTF) "-minimal KNOWN\n">>$(@)
++ $(PRINTF) -- "-minimal KNOWN\n">>$(@)
+ endif
+ else
+ ifeq ($(JVM_VARIANT_CLIENT), true)
+- $(PRINTF) "-client KNOWN\n">>$(@)
+- $(PRINTF) "-server ALIASED_TO -client\n">>$(@)
++ $(PRINTF) -- "-client KNOWN\n">>$(@)
++ $(PRINTF) -- "-server ALIASED_TO -client\n">>$(@)
+ ifeq ($(JVM_VARIANT_MINIMAL1), true)
+- $(PRINTF) "-minimal KNOWN\n">>$(@)
++ $(PRINTF) -- "-minimal KNOWN\n">>$(@)
+ endif
+ else
+ ifeq ($(JVM_VARIANT_MINIMAL1), true)
+- $(PRINTF) "-minimal KNOWN\n">>$(@)
+- $(PRINTF) "-server ALIASED_TO -minimal\n">>$(@)
+- $(PRINTF) "-client ALIASED_TO -minimal\n">>$(@)
++ $(PRINTF) -- "-minimal KNOWN\n">>$(@)
++ $(PRINTF) -- "-server ALIASED_TO -minimal\n">>$(@)
++ $(PRINTF) -- "-client ALIASED_TO -minimal\n">>$(@)
+ endif
+ endif
+ endif
+--- jdk/make/Images.gmk
++++ jdk/make/Images.gmk
+@@ -237,8 +237,11 @@
+ ifeq ($(OPENJDK_TARGET_OS), linux)
+ JDK_LIB_FILES += jexec
+ endif
++ifeq ($(OPENJDK_TARGET_OS), bsd)
++ JDK_LIB_FILES += jexec
++endif
+
+-ifneq ($(findstring $(OPENJDK_TARGET_OS), linux solaris),) # If Linux or Solaris
++ifneq ($(findstring $(OPENJDK_TARGET_OS), linux solaris bsd),) # If Linux, Solaris, or BSD
+ JDK_LIB_FILES += $(LIBRARY_PREFIX)jli$(SHARED_LIBRARY_SUFFIX) \
+ $(LIBRARY_PREFIX)jawt$(SHARED_LIBRARY_SUFFIX)
+ endif
+@@ -393,6 +396,10 @@
+ MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/bsd/doc
+ MAN1_SUBDIR = man
+ endif
++ ifeq ($(OPENJDK_TARGET_OS), bsd)
++ MAN_SRC_DIR := $(MAN_SRC_BASEDIR)/bsd/doc
++ MAN1_SUBDIR := man
++ endif
+
+ $(JRE_IMAGE_DIR)/man/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/%
+ $(ECHO) $(LOG_INFO) Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@)
+@@ -465,6 +472,16 @@
+ $(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja
+ endif
+
++ ifeq ($(OPENJDK_TARGET_OS), bsd)
++ $(JRE_IMAGE_DIR)/man/ja:
++ $(ECHO) $(LOG_INFO) Creating $(patsubst $(OUTPUT_ROOT)/%,%,$@)
++ $(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja
++
++ $(JDK_IMAGE_DIR)/man/ja:
++ $(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)) \
+@@ -497,6 +514,16 @@
+ $(JDK_IMAGE_DIR)/man/ja
+ endif
+
++ ifeq ($(OPENJDK_TARGET_OS), bsd)
++ 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)) \
++ $(JRE_IMAGE_DIR)/man/ja
++
++ JDK_MAN_PAGE_LIST := $(addprefix $(JDK_IMAGE_DIR)/man/man1/, $(JDK_MAN_PAGES)) \
++ $(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JDK_MAN_PAGES)) \
++ $(JDK_IMAGE_DIR)/man/ja
++ endif
++
+ endif # Windows
+
+ ################################################################################
+--- jdk/make/data/classlist/classlist.bsd
++++ jdk/make/data/classlist/classlist.bsd
+@@ -0,0 +1,2803 @@
++com/sun/java/swing/SwingUtilities3
++com/sun/java/swing/plaf/windows/WindowsTabbedPaneUI
++com/sun/swing/internal/plaf/basic/resources/basic
++com/sun/swing/internal/plaf/metal/resources/metal
++java/applet/Applet
++java/awt/AWTEvent
++java/awt/AWTEvent$1
++java/awt/AWTEvent$2
++java/awt/AWTEventMulticaster
++java/awt/AWTKeyStroke
++java/awt/AWTKeyStroke$1
++java/awt/ActiveEvent
++java/awt/Adjustable
++java/awt/AlphaComposite
++java/awt/BasicStroke
++java/awt/BorderLayout
++java/awt/BufferCapabilities
++java/awt/Canvas
++java/awt/CardLayout
++java/awt/CardLayout$Card
++java/awt/Color
++java/awt/Component
++java/awt/Component$1
++java/awt/Component$3
++java/awt/Component$AWTTreeLock
++java/awt/Component$AccessibleAWTComponent
++java/awt/Component$BaselineResizeBehavior
++java/awt/Component$BltBufferStrategy
++java/awt/Component$BltSubRegionBufferStrategy
++java/awt/Component$DummyRequestFocusController
++java/awt/Component$FlipBufferStrategy
++java/awt/ComponentOrientation
++java/awt/Composite
++java/awt/Conditional
++java/awt/Container
++java/awt/Container$1
++java/awt/Container$AccessibleAWTContainer
++java/awt/Container$EventTargetFilter
++java/awt/Container$MouseEventTargetFilter
++java/awt/ContainerOrderFocusTraversalPolicy
++java/awt/Cursor
++java/awt/Cursor$1
++java/awt/DefaultFocusTraversalPolicy
++java/awt/DefaultKeyboardFocusManager
++java/awt/DefaultKeyboardFocusManager$1
++java/awt/DefaultKeyboardFocusManager$DefaultKeyboardFocusManagerSentEvent
++java/awt/DefaultKeyboardFocusManager$TypeAheadMarker
++java/awt/Dialog
++java/awt/Dialog$1
++java/awt/Dialog$3
++java/awt/Dialog$ModalExclusionType
++java/awt/Dialog$ModalityType
++java/awt/Dimension
++java/awt/Event
++java/awt/EventDispatchThread
++java/awt/EventDispatchThread$1
++java/awt/EventDispatchThread$HierarchyEventFilter
++java/awt/EventFilter
++java/awt/EventFilter$FilterAction
++java/awt/EventQueue
++java/awt/EventQueue$1
++java/awt/EventQueue$1AWTInvocationLock
++java/awt/EventQueue$2
++java/awt/EventQueue$3
++java/awt/EventQueue$4
++java/awt/EventQueue$5
++java/awt/FlowLayout
++java/awt/FocusTraversalPolicy
++java/awt/Font
++java/awt/Font$FontAccessImpl
++java/awt/FontFormatException
++java/awt/FontMetrics
++java/awt/Frame
++java/awt/Frame$1
++java/awt/Graphics
++java/awt/Graphics2D
++java/awt/GraphicsCallback
++java/awt/GraphicsCallback$PaintCallback
++java/awt/GraphicsConfiguration
++java/awt/GraphicsDevice
++java/awt/GraphicsEnvironment
++java/awt/GraphicsEnvironment$1
++java/awt/GridLayout
++java/awt/Image
++java/awt/Image$1
++java/awt/ImageCapabilities
++java/awt/ImageMediaEntry
++java/awt/Insets
++java/awt/ItemSelectable
++java/awt/KeyEventDispatcher
++java/awt/KeyEventPostProcessor
++java/awt/KeyboardFocusManager
++java/awt/KeyboardFocusManager$1
++java/awt/KeyboardFocusManager$2
++java/awt/KeyboardFocusManager$3
++java/awt/KeyboardFocusManager$HeavyweightFocusRequest
++java/awt/KeyboardFocusManager$LightweightFocusRequest
++java/awt/Label
++java/awt/LayoutManager
++java/awt/LayoutManager2
++java/awt/LightweightDispatcher
++java/awt/LightweightDispatcher$1
++java/awt/LightweightDispatcher$2
++java/awt/MediaEntry
++java/awt/MediaTracker
++java/awt/MenuBar
++java/awt/MenuComponent
++java/awt/MenuContainer
++java/awt/ModalEventFilter
++java/awt/ModalEventFilter$1
++java/awt/ModalEventFilter$ApplicationModalEventFilter
++java/awt/Paint
++java/awt/Panel
++java/awt/Point
++java/awt/PrintGraphics
++java/awt/Queue
++java/awt/Rectangle
++java/awt/RenderingHints
++java/awt/RenderingHints$Key
++java/awt/SecondaryLoop
++java/awt/SentEvent
++java/awt/SequencedEvent
++java/awt/SequencedEvent$1
++java/awt/Shape
++java/awt/SplashScreen
++java/awt/Stroke
++java/awt/SystemColor
++java/awt/Toolkit
++java/awt/Toolkit$1
++java/awt/Toolkit$2
++java/awt/Toolkit$3
++java/awt/Toolkit$4
++java/awt/Toolkit$5
++java/awt/Toolkit$DesktopPropertyChangeSupport
++java/awt/Toolkit$DesktopPropertyChangeSupport$1
++java/awt/Toolkit$SelectiveAWTEventListener
++java/awt/Toolkit$ToolkitEventMulticaster
++java/awt/Transparency
++java/awt/TrayIcon
++java/awt/VKCollection
++java/awt/WaitDispatchSupport
++java/awt/WaitDispatchSupport$1
++java/awt/WaitDispatchSupport$2
++java/awt/WaitDispatchSupport$5
++java/awt/Window
++java/awt/Window$1
++java/awt/Window$1DisposeAction
++java/awt/Window$Type
++java/awt/Window$WindowDisposerRecord
++java/awt/color/ColorSpace
++java/awt/color/ICC_ColorSpace
++java/awt/color/ICC_Profile
++java/awt/color/ICC_Profile$1
++java/awt/color/ICC_ProfileRGB
++java/awt/datatransfer/Clipboard
++java/awt/datatransfer/ClipboardOwner
++java/awt/datatransfer/DataFlavor
++java/awt/datatransfer/FlavorMap
++java/awt/datatransfer/FlavorTable
++java/awt/datatransfer/MimeType
++java/awt/datatransfer/MimeTypeParameterList
++java/awt/datatransfer/MimeTypeParseException
++java/awt/datatransfer/SystemFlavorMap
++java/awt/datatransfer/SystemFlavorMap$1
++java/awt/datatransfer/SystemFlavorMap$2
++java/awt/datatransfer/Transferable
++java/awt/dnd/DropTarget
++java/awt/dnd/DropTargetContext
++java/awt/dnd/DropTargetListener
++java/awt/dnd/peer/DragSourceContextPeer
++java/awt/dnd/peer/DropTargetContextPeer
++java/awt/dnd/peer/DropTargetPeer
++java/awt/event/AWTEventListener
++java/awt/event/AWTEventListenerProxy
++java/awt/event/ActionEvent
++java/awt/event/ActionListener
++java/awt/event/AdjustmentEvent
++java/awt/event/AdjustmentListener
++java/awt/event/ComponentAdapter
++java/awt/event/ComponentEvent
++java/awt/event/ComponentListener
++java/awt/event/ContainerEvent
++java/awt/event/ContainerListener
++java/awt/event/FocusAdapter
++java/awt/event/FocusEvent
++java/awt/event/FocusListener
++java/awt/event/HierarchyBoundsListener
++java/awt/event/HierarchyEvent
++java/awt/event/HierarchyListener
++java/awt/event/InputEvent
++java/awt/event/InputEvent$1
++java/awt/event/InputMethodEvent
++java/awt/event/InputMethodListener
++java/awt/event/InvocationEvent
++java/awt/event/InvocationEvent$1
++java/awt/event/ItemEvent
++java/awt/event/ItemListener
++java/awt/event/KeyAdapter
++java/awt/event/KeyEvent
++java/awt/event/KeyEvent$1
++java/awt/event/KeyListener
++java/awt/event/MouseAdapter
++java/awt/event/MouseEvent
++java/awt/event/MouseListener
++java/awt/event/MouseMotionAdapter
++java/awt/event/MouseMotionListener
++java/awt/event/MouseWheelEvent
++java/awt/event/MouseWheelListener
++java/awt/event/NativeLibLoader
++java/awt/event/NativeLibLoader$1
++java/awt/event/PaintEvent
++java/awt/event/TextListener
++java/awt/event/WindowAdapter
++java/awt/event/WindowEvent
++java/awt/event/WindowFocusListener
++java/awt/event/WindowListener
++java/awt/event/WindowStateListener
++java/awt/font/FontRenderContext
++java/awt/font/GlyphVector
++java/awt/font/LineMetrics
++java/awt/font/TextAttribute
++java/awt/geom/AffineTransform
++java/awt/geom/Dimension2D
++java/awt/geom/GeneralPath
++java/awt/geom/Line2D
++java/awt/geom/Line2D$Float
++java/awt/geom/Path2D
++java/awt/geom/Path2D$Float
++java/awt/geom/Path2D$Float$CopyIterator
++java/awt/geom/Path2D$Iterator
++java/awt/geom/PathIterator
++java/awt/geom/Point2D
++java/awt/geom/Point2D$Double
++java/awt/geom/Point2D$Float
++java/awt/geom/RectIterator
++java/awt/geom/Rectangle2D
++java/awt/geom/Rectangle2D$Double
++java/awt/geom/Rectangle2D$Float
++java/awt/geom/RectangularShape
++java/awt/im/InputContext
++java/awt/im/InputMethodRequests
++java/awt/im/spi/InputMethod
++java/awt/im/spi/InputMethodContext
++java/awt/im/spi/InputMethodDescriptor
++java/awt/image/BufferStrategy
++java/awt/image/BufferedImage
++java/awt/image/BufferedImage$1
++java/awt/image/ColorModel
++java/awt/image/ColorModel$1
++java/awt/image/ComponentSampleModel
++java/awt/image/DataBuffer
++java/awt/image/DataBuffer$1
++java/awt/image/DataBufferByte
++java/awt/image/DataBufferInt
++java/awt/image/DirectColorModel
++java/awt/image/FilteredImageSource
++java/awt/image/ImageConsumer
++java/awt/image/ImageFilter
++java/awt/image/ImageObserver
++java/awt/image/ImageProducer
++java/awt/image/IndexColorModel
++java/awt/image/PackedColorModel
++java/awt/image/PixelInterleavedSampleModel
++java/awt/image/RGBImageFilter
++java/awt/image/Raster
++java/awt/image/RenderedImage
++java/awt/image/SampleModel
++java/awt/image/SinglePixelPackedSampleModel
++java/awt/image/VolatileImage
++java/awt/image/WritableRaster
++java/awt/image/WritableRenderedImage
++java/awt/peer/CanvasPeer
++java/awt/peer/ComponentPeer
++java/awt/peer/ContainerPeer
++java/awt/peer/DialogPeer
++java/awt/peer/FramePeer
++java/awt/peer/KeyboardFocusManagerPeer
++java/awt/peer/LabelPeer
++java/awt/peer/LightweightPeer
++java/awt/peer/PanelPeer
++java/awt/peer/SystemTrayPeer
++java/awt/peer/WindowPeer
++java/awt/print/PrinterGraphics
++java/beans/ChangeListenerMap
++java/beans/PropertyChangeEvent
++java/beans/PropertyChangeListener
++java/beans/PropertyChangeListenerProxy
++java/beans/PropertyChangeSupport
++java/beans/PropertyChangeSupport$PropertyChangeListenerMap
++java/beans/VetoableChangeListener
++java/io/Bits
++java/io/BufferedInputStream
++java/io/BufferedOutputStream
++java/io/BufferedReader
++java/io/BufferedWriter
++java/io/ByteArrayInputStream
++java/io/ByteArrayOutputStream
++java/io/Closeable
++java/io/DataInput
++java/io/DataInputStream
++java/io/DataOutput
++java/io/DataOutputStream
++java/io/DefaultFileSystem
++java/io/EOFException
++java/io/ExpiringCache
++java/io/ExpiringCache$1
++java/io/ExpiringCache$Entry
++java/io/Externalizable
++java/io/File
++java/io/File$PathStatus
++java/io/FileDescriptor
++java/io/FileDescriptor$1
++java/io/FileInputStream
++java/io/FileInputStream$1
++java/io/FileNotFoundException
++java/io/FileOutputStream
++java/io/FileOutputStream$1
++java/io/FilePermission
++java/io/FilePermission$1
++java/io/FilePermissionCollection
++java/io/FileReader
++java/io/FileSystem
++java/io/FileWriter
++java/io/FilenameFilter
++java/io/FilterInputStream
++java/io/FilterOutputStream
++java/io/FilterReader
++java/io/Flushable
++java/io/IOException
++java/io/InputStream
++java/io/InputStreamReader
++java/io/InterruptedIOException
++java/io/NotSerializableException
++java/io/ObjectInput
++java/io/ObjectInputStream
++java/io/ObjectInputStream$BlockDataInputStream
++java/io/ObjectInputStream$GetField
++java/io/ObjectInputStream$GetFieldImpl
++java/io/ObjectInputStream$HandleTable
++java/io/ObjectInputStream$HandleTable$HandleList
++java/io/ObjectInputStream$PeekInputStream
++java/io/ObjectInputStream$ValidationList
++java/io/ObjectOutput
++java/io/ObjectOutputStream
++java/io/ObjectOutputStream$BlockDataOutputStream
++java/io/ObjectOutputStream$HandleTable
++java/io/ObjectOutputStream$ReplaceTable
++java/io/ObjectStreamClass
++java/io/ObjectStreamClass$1
++java/io/ObjectStreamClass$2
++java/io/ObjectStreamClass$3
++java/io/ObjectStreamClass$4
++java/io/ObjectStreamClass$5
++java/io/ObjectStreamClass$Caches
++java/io/ObjectStreamClass$ClassDataSlot
++java/io/ObjectStreamClass$EntryFuture
++java/io/ObjectStreamClass$ExceptionInfo
++java/io/ObjectStreamClass$FieldReflector
++java/io/ObjectStreamClass$FieldReflectorKey
++java/io/ObjectStreamClass$MemberSignature
++java/io/ObjectStreamClass$WeakClassKey
++java/io/ObjectStreamConstants
++java/io/ObjectStreamException
++java/io/ObjectStreamField
++java/io/OutputStream
++java/io/OutputStreamWriter
++java/io/PrintStream
++java/io/PrintWriter
++java/io/PushbackInputStream
++java/io/RandomAccessFile
++java/io/RandomAccessFile$1
++java/io/Reader
++java/io/SerialCallbackContext
++java/io/Serializable
++java/io/StreamTokenizer
++java/io/StringReader
++java/io/StringWriter
++java/io/UnixFileSystem
++java/io/UnsupportedEncodingException
++java/io/Writer
++java/lang/AbstractStringBuilder
++java/lang/Appendable
++java/lang/ApplicationShutdownHooks
++java/lang/ApplicationShutdownHooks$1
++java/lang/ArithmeticException
++java/lang/ArrayIndexOutOfBoundsException
++java/lang/ArrayStoreException
++java/lang/AssertionError
++java/lang/AutoCloseable
++java/lang/Boolean
++java/lang/BootstrapMethodError
++java/lang/Byte
++java/lang/CharSequence
++java/lang/Character
++java/lang/Character$CharacterCache
++java/lang/CharacterData
++java/lang/CharacterData00
++java/lang/CharacterDataLatin1
++java/lang/Class
++java/lang/Class$1
++java/lang/Class$3
++java/lang/Class$4
++java/lang/Class$AnnotationData
++java/lang/Class$Atomic
++java/lang/Class$ReflectionData
++java/lang/ClassCastException
++java/lang/ClassFormatError
++java/lang/ClassLoader
++java/lang/ClassLoader$2
++java/lang/ClassLoader$3
++java/lang/ClassLoader$NativeLibrary
++java/lang/ClassLoader$ParallelLoaders
++java/lang/ClassLoaderHelper
++java/lang/ClassNotFoundException
++java/lang/ClassValue$ClassValueMap
++java/lang/CloneNotSupportedException
++java/lang/Cloneable
++java/lang/Comparable
++java/lang/Compiler
++java/lang/Compiler$1
++java/lang/Double
++java/lang/Enum
++java/lang/Error
++java/lang/Exception
++java/lang/ExceptionInInitializerError
++java/lang/Float
++java/lang/IllegalAccessError
++java/lang/IllegalAccessException
++java/lang/IllegalArgumentException
++java/lang/IllegalMonitorStateException
++java/lang/IllegalStateException
++java/lang/IncompatibleClassChangeError
++java/lang/IndexOutOfBoundsException
++java/lang/InheritableThreadLocal
++java/lang/InstantiationException
++java/lang/Integer
++java/lang/Integer$IntegerCache
++java/lang/InternalError
++java/lang/InterruptedException
++java/lang/Iterable
++java/lang/LinkageError
++java/lang/Long
++java/lang/Long$LongCache
++java/lang/Math
++java/lang/NoClassDefFoundError
++java/lang/NoSuchFieldException
++java/lang/NoSuchMethodError
++java/lang/NoSuchMethodException
++java/lang/NullPointerException
++java/lang/Number
++java/lang/NumberFormatException
++java/lang/Object
++java/lang/OutOfMemoryError
++java/lang/Package
++java/lang/Process
++java/lang/ProcessBuilder
++java/lang/ProcessBuilder$NullInputStream
++java/lang/ProcessBuilder$NullOutputStream
++java/lang/ProcessEnvironment
++java/lang/ProcessEnvironment$ExternalData
++java/lang/ProcessEnvironment$StringEnvironment
++java/lang/ProcessEnvironment$Value
++java/lang/ProcessEnvironment$Variable
++java/lang/ProcessImpl
++java/lang/Readable
++java/lang/ReflectiveOperationException
++java/lang/Runnable
++java/lang/Runtime
++java/lang/RuntimeException
++java/lang/RuntimePermission
++java/lang/SecurityException
++java/lang/SecurityManager
++java/lang/Short
++java/lang/Short$ShortCache
++java/lang/Shutdown
++java/lang/Shutdown$Lock
++java/lang/StackOverflowError
++java/lang/StackTraceElement
++java/lang/StrictMath
++java/lang/String
++java/lang/String$CaseInsensitiveComparator
++java/lang/StringBuffer
++java/lang/StringBuilder
++java/lang/StringCoding
++java/lang/StringCoding$StringDecoder
++java/lang/StringCoding$StringEncoder
++java/lang/StringIndexOutOfBoundsException
++java/lang/System
++java/lang/System$2
++java/lang/SystemClassLoaderAction
++java/lang/Terminator
++java/lang/Terminator$1
++java/lang/Thread
++java/lang/Thread$State
++java/lang/Thread$UncaughtExceptionHandler
++java/lang/ThreadDeath
++java/lang/ThreadGroup
++java/lang/ThreadLocal
++java/lang/ThreadLocal$ThreadLocalMap
++java/lang/ThreadLocal$ThreadLocalMap$Entry
++java/lang/Throwable
++java/lang/Throwable$PrintStreamOrWriter
++java/lang/Throwable$WrappedPrintStream
++java/lang/Throwable$WrappedPrintWriter
++java/lang/UNIXProcess
++java/lang/UNIXProcess$1
++java/lang/UNIXProcess$2
++java/lang/UNIXProcess$3
++java/lang/UNIXProcess$4
++java/lang/UNIXProcess$LaunchMechanism
++java/lang/UNIXProcess$ProcessPipeInputStream
++java/lang/UNIXProcess$ProcessPipeOutputStream
++java/lang/UNIXProcess$ProcessReaperThreadFactory
++java/lang/UNIXProcess$ProcessReaperThreadFactory$1
++java/lang/UnsatisfiedLinkError
++java/lang/UnsupportedOperationException
++java/lang/VirtualMachineError
++java/lang/Void
++java/lang/annotation/Annotation
++java/lang/invoke/CallSite
++java/lang/invoke/ConstantCallSite
++java/lang/invoke/DirectMethodHandle
++java/lang/invoke/Invokers
++java/lang/invoke/LambdaForm
++java/lang/invoke/LambdaForm$NamedFunction
++java/lang/invoke/MemberName
++java/lang/invoke/MemberName$Factory
++java/lang/invoke/MethodHandle
++java/lang/invoke/MethodHandleImpl
++java/lang/invoke/MethodHandleNatives
++java/lang/invoke/MethodHandleStatics
++java/lang/invoke/MethodHandleStatics$1
++java/lang/invoke/MethodType
++java/lang/invoke/MethodType$ConcurrentWeakInternSet
++java/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry
++java/lang/invoke/MethodTypeForm
++java/lang/invoke/MutableCallSite
++java/lang/invoke/VolatileCallSite
++java/lang/ref/FinalReference
++java/lang/ref/Finalizer
++java/lang/ref/Finalizer$FinalizerThread
++java/lang/ref/PhantomReference
++java/lang/ref/Reference
++java/lang/ref/Reference$Lock
++java/lang/ref/Reference$ReferenceHandler
++java/lang/ref/ReferenceQueue
++java/lang/ref/ReferenceQueue$Lock
++java/lang/ref/ReferenceQueue$Null
++java/lang/ref/SoftReference
++java/lang/ref/WeakReference
++java/lang/reflect/AccessibleObject
++java/lang/reflect/AnnotatedElement
++java/lang/reflect/Array
++java/lang/reflect/Constructor
++java/lang/reflect/Executable
++java/lang/reflect/Field
++java/lang/reflect/GenericDeclaration
++java/lang/reflect/InvocationHandler
++java/lang/reflect/InvocationTargetException
++java/lang/reflect/Member
++java/lang/reflect/Method
++java/lang/reflect/Modifier
++java/lang/reflect/Parameter
++java/lang/reflect/Proxy
++java/lang/reflect/Proxy$KeyFactory
++java/lang/reflect/Proxy$ProxyClassFactory
++java/lang/reflect/ReflectAccess
++java/lang/reflect/ReflectPermission
++java/lang/reflect/Type
++java/lang/reflect/WeakCache
++java/math/BigInteger
++java/math/BigInteger$UnsafeHolder
++java/math/MutableBigInteger
++java/math/RoundingMode
++java/math/SignedMutableBigInteger
++java/net/AbstractPlainDatagramSocketImpl
++java/net/AbstractPlainDatagramSocketImpl$1
++java/net/AbstractPlainSocketImpl
++java/net/AbstractPlainSocketImpl$1
++java/net/Authenticator
++java/net/BindException
++java/net/ConnectException
++java/net/DatagramPacket
++java/net/DatagramPacket$1
++java/net/DatagramSocket
++java/net/DatagramSocket$1
++java/net/DatagramSocketImpl
++java/net/DefaultDatagramSocketImplFactory
++java/net/DefaultInterface
++java/net/FileNameMap
++java/net/HttpURLConnection
++java/net/Inet4Address
++java/net/Inet4AddressImpl
++java/net/Inet6Address
++java/net/Inet6Address$Inet6AddressHolder
++java/net/Inet6AddressImpl
++java/net/InetAddress
++java/net/InetAddress$1
++java/net/InetAddress$2
++java/net/InetAddress$Cache
++java/net/InetAddress$Cache$Type
++java/net/InetAddress$CacheEntry
++java/net/InetAddress$InetAddressHolder
++java/net/InetAddressImpl
++java/net/InetAddressImplFactory
++java/net/InetSocketAddress
++java/net/InetSocketAddress$InetSocketAddressHolder
++java/net/InterfaceAddress
++java/net/JarURLConnection
++java/net/MalformedURLException
++java/net/MulticastSocket
++java/net/NetworkInterface
++java/net/NetworkInterface$1
++java/net/NetworkInterface$2
++java/net/NoRouteToHostException
++java/net/Parts
++java/net/PlainDatagramSocketImpl
++java/net/PlainSocketImpl
++java/net/Proxy
++java/net/Proxy$Type
++java/net/ProxySelector
++java/net/ServerSocket
++java/net/Socket
++java/net/SocketAddress
++java/net/SocketException
++java/net/SocketImpl
++java/net/SocketImplFactory
++java/net/SocketOptions
++java/net/SocksConsts
++java/net/SocksSocketImpl
++java/net/SocksSocketImpl$3
++java/net/URI
++java/net/URI$Parser
++java/net/URL
++java/net/URLClassLoader
++java/net/URLClassLoader$1
++java/net/URLClassLoader$2
++java/net/URLClassLoader$3
++java/net/URLClassLoader$3$1
++java/net/URLClassLoader$7
++java/net/URLConnection
++java/net/URLConnection$1
++java/net/URLStreamHandler
++java/net/URLStreamHandlerFactory
++java/net/UnknownHostException
++java/nio/Bits
++java/nio/Bits$1
++java/nio/Buffer
++java/nio/BufferUnderflowException
++java/nio/ByteBuffer
++java/nio/ByteBufferAsIntBufferB
++java/nio/ByteBufferAsShortBufferB
++java/nio/ByteOrder
++java/nio/CharBuffer
++java/nio/DirectByteBuffer
++java/nio/DirectByteBuffer$Deallocator
++java/nio/DirectByteBufferR
++java/nio/DirectLongBufferU
++java/nio/HeapByteBuffer
++java/nio/HeapCharBuffer
++java/nio/IntBuffer
++java/nio/LongBuffer
++java/nio/MappedByteBuffer
++java/nio/ShortBuffer
++java/nio/channels/ByteChannel
++java/nio/channels/Channel
++java/nio/channels/FileChannel
++java/nio/channels/FileChannel$MapMode
++java/nio/channels/GatheringByteChannel
++java/nio/channels/InterruptibleChannel
++java/nio/channels/NetworkChannel
++java/nio/channels/ReadableByteChannel
++java/nio/channels/ScatteringByteChannel
++java/nio/channels/SeekableByteChannel
++java/nio/channels/SelectableChannel
++java/nio/channels/SocketChannel
++java/nio/channels/WritableByteChannel
++java/nio/channels/spi/AbstractInterruptibleChannel
++java/nio/channels/spi/AbstractInterruptibleChannel$1
++java/nio/channels/spi/AbstractSelectableChannel
++java/nio/charset/Charset
++java/nio/charset/Charset$ExtendedProviderHolder
++java/nio/charset/Charset$ExtendedProviderHolder$1
++java/nio/charset/CharsetDecoder
++java/nio/charset/CharsetEncoder
++java/nio/charset/CoderResult
++java/nio/charset/CoderResult$1
++java/nio/charset/CoderResult$2
++java/nio/charset/CoderResult$Cache
++java/nio/charset/CodingErrorAction
++java/nio/charset/StandardCharsets
++java/nio/charset/spi/CharsetProvider
++java/nio/file/Path
++java/nio/file/Watchable
++java/nio/file/attribute/FileAttribute
++java/rmi/MarshalledObject
++java/rmi/Remote
++java/security/AccessControlContext
++java/security/AccessControlException
++java/security/AccessController
++java/security/AlgorithmParameters
++java/security/AlgorithmParametersSpi
++java/security/AllPermission
++java/security/AllPermissionCollection
++java/security/AuthProvider
++java/security/BasicPermission
++java/security/BasicPermissionCollection
++java/security/CodeSigner
++java/security/CodeSource
++java/security/DigestException
++java/security/GeneralSecurityException
++java/security/Guard
++java/security/InvalidAlgorithmParameterException
++java/security/InvalidKeyException
++java/security/InvalidParameterException
++java/security/Key
++java/security/KeyException
++java/security/KeyFactory
++java/security/KeyFactorySpi
++java/security/MessageDigest
++java/security/MessageDigest$Delegate
++java/security/MessageDigestSpi
++java/security/NoSuchAlgorithmException
++java/security/Permission
++java/security/PermissionCollection
++java/security/Permissions
++java/security/Principal
++java/security/PrivateKey
++java/security/PrivilegedAction
++java/security/PrivilegedActionException
++java/security/PrivilegedExceptionAction
++java/security/ProtectionDomain
++java/security/ProtectionDomain$1
++java/security/ProtectionDomain$3
++java/security/ProtectionDomain$Key
++java/security/Provider
++java/security/Provider$EngineDescription
++java/security/Provider$Service
++java/security/Provider$ServiceKey
++java/security/Provider$UString
++java/security/ProviderException
++java/security/PublicKey
++java/security/SecureClassLoader
++java/security/SecureRandomSpi
++java/security/Security
++java/security/Security$1
++java/security/SecurityPermission
++java/security/Signature
++java/security/Signature$Delegate
++java/security/SignatureException
++java/security/SignatureSpi
++java/security/UnresolvedPermission
++java/security/cert/CertPath
++java/security/cert/Certificate
++java/security/cert/CertificateFactory
++java/security/cert/CertificateFactorySpi
++java/security/cert/Extension
++java/security/cert/X509Certificate
++java/security/cert/X509Extension
++java/security/interfaces/DSAKey
++java/security/interfaces/DSAParams
++java/security/interfaces/DSAPrivateKey
++java/security/interfaces/DSAPublicKey
++java/security/interfaces/RSAKey
++java/security/interfaces/RSAPrivateCrtKey
++java/security/interfaces/RSAPrivateKey
++java/security/interfaces/RSAPublicKey
++java/security/spec/AlgorithmParameterSpec
++java/security/spec/DSAParameterSpec
++java/security/spec/DSAPublicKeySpec
++java/security/spec/EncodedKeySpec
++java/security/spec/InvalidKeySpecException
++java/security/spec/KeySpec
++java/security/spec/PKCS8EncodedKeySpec
++java/security/spec/RSAPrivateCrtKeySpec
++java/security/spec/RSAPrivateKeySpec
++java/security/spec/RSAPublicKeySpec
++java/security/spec/X509EncodedKeySpec
++java/text/AttributedCharacterIterator
++java/text/AttributedCharacterIterator$Attribute
++java/text/AttributedString
++java/text/AttributedString$AttributedStringIterator
++java/text/CharacterIterator
++java/text/Collator
++java/text/DateFormat
++java/text/DateFormat$Field
++java/text/DateFormatSymbols
++java/text/DecimalFormat
++java/text/DecimalFormatSymbols
++java/text/DigitList
++java/text/DontCareFieldPosition
++java/text/DontCareFieldPosition$1
++java/text/EntryPair
++java/text/FieldPosition
++java/text/Format
++java/text/Format$Field
++java/text/Format$FieldDelegate
++java/text/MergeCollation
++java/text/MessageFormat
++java/text/MessageFormat$Field
++java/text/Normalizer
++java/text/Normalizer$Form
++java/text/NumberFormat
++java/text/NumberFormat$Field
++java/text/ParseException
++java/text/PatternEntry
++java/text/PatternEntry$Parser
++java/text/RBCollationTables
++java/text/RBCollationTables$BuildAPI
++java/text/RBTableBuilder
++java/text/RuleBasedCollator
++java/text/SimpleDateFormat
++java/text/spi/BreakIteratorProvider
++java/text/spi/CollatorProvider
++java/text/spi/DateFormatProvider
++java/text/spi/DateFormatSymbolsProvider
++java/text/spi/DecimalFormatSymbolsProvider
++java/text/spi/NumberFormatProvider
++java/util/AbstractCollection
++java/util/AbstractList
++java/util/AbstractList$Itr
++java/util/AbstractList$ListItr
++java/util/AbstractMap
++java/util/AbstractQueue
++java/util/AbstractSequentialList
++java/util/AbstractSet
++java/util/ArrayDeque
++java/util/ArrayList
++java/util/ArrayList$1
++java/util/ArrayList$Itr
++java/util/ArrayList$ListItr
++java/util/ArrayList$SubList
++java/util/ArrayList$SubList$1
++java/util/Arrays
++java/util/Arrays$ArrayList
++java/util/Arrays$LegacyMergeSort
++java/util/Base64
++java/util/Base64$Decoder
++java/util/Base64$Encoder
++java/util/BitSet
++java/util/Calendar
++java/util/Calendar$Builder
++java/util/Collection
++java/util/Collections
++java/util/Collections$3
++java/util/Collections$EmptyEnumeration
++java/util/Collections$EmptyIterator
++java/util/Collections$EmptyList
++java/util/Collections$EmptyMap
++java/util/Collections$EmptySet
++java/util/Collections$SetFromMap
++java/util/Collections$SynchronizedCollection
++java/util/Collections$SynchronizedMap
++java/util/Collections$SynchronizedSet
++java/util/Collections$SynchronizedSortedSet
++java/util/Collections$UnmodifiableCollection
++java/util/Collections$UnmodifiableCollection$1
++java/util/Collections$UnmodifiableList
++java/util/Collections$UnmodifiableList$1
++java/util/Collections$UnmodifiableMap
++java/util/Collections$UnmodifiableRandomAccessList
++java/util/Collections$UnmodifiableSet
++java/util/Collections$UnmodifiableSortedSet
++java/util/ComparableTimSort
++java/util/Comparator
++java/util/Currency
++java/util/Currency$1
++java/util/Currency$CurrencyNameGetter
++java/util/Date
++java/util/Deque
++java/util/Dictionary
++java/util/Enumeration
++java/util/EventListener
++java/util/EventListenerProxy
++java/util/EventObject
++java/util/GregorianCalendar
++java/util/HashMap
++java/util/HashMap$EntryIterator
++java/util/HashMap$EntrySet
++java/util/HashMap$HashIterator
++java/util/HashMap$KeyIterator
++java/util/HashMap$KeySet
++java/util/HashMap$Node
++java/util/HashMap$TreeNode
++java/util/HashMap$ValueIterator
++java/util/HashMap$Values
++java/util/HashSet
++java/util/Hashtable
++java/util/Hashtable$Entry
++java/util/Hashtable$EntrySet
++java/util/Hashtable$Enumerator
++java/util/Hashtable$ValueCollection
++java/util/IdentityHashMap
++java/util/IdentityHashMap$IdentityHashMapIterator
++java/util/IdentityHashMap$KeyIterator
++java/util/IdentityHashMap$KeySet
++java/util/IdentityHashMap$ValueIterator
++java/util/IdentityHashMap$Values
++java/util/Iterator
++java/util/LinkedHashMap
++java/util/LinkedHashMap$Entry
++java/util/LinkedHashMap$LinkedEntryIterator
++java/util/LinkedHashMap$LinkedEntrySet
++java/util/LinkedHashMap$LinkedHashIterator
++java/util/LinkedHashMap$LinkedKeyIterator
++java/util/LinkedHashMap$LinkedKeySet
++java/util/LinkedHashSet
++java/util/LinkedList
++java/util/LinkedList$ListItr
++java/util/LinkedList$Node
++java/util/List
++java/util/ListIterator
++java/util/ListResourceBundle
++java/util/Locale
++java/util/Locale$1
++java/util/Locale$Cache
++java/util/Locale$Category
++java/util/Locale$LocaleKey
++java/util/Map
++java/util/Map$Entry
++java/util/MissingResourceException
++java/util/NavigableMap
++java/util/NavigableSet
++java/util/Objects
++java/util/PriorityQueue
++java/util/Properties
++java/util/Properties$LineReader
++java/util/PropertyResourceBundle
++java/util/Queue
++java/util/Random
++java/util/RandomAccess
++java/util/ResourceBundle
++java/util/ResourceBundle$1
++java/util/ResourceBundle$BundleReference
++java/util/ResourceBundle$CacheKey
++java/util/ResourceBundle$CacheKeyReference
++java/util/ResourceBundle$Control
++java/util/ResourceBundle$Control$1
++java/util/ResourceBundle$Control$CandidateListCache
++java/util/ResourceBundle$LoaderReference
++java/util/ResourceBundle$RBClassLoader
++java/util/ResourceBundle$RBClassLoader$1
++java/util/ResourceBundle$SingleFormatControl
++java/util/ServiceLoader
++java/util/ServiceLoader$1
++java/util/ServiceLoader$LazyIterator
++java/util/Set
++java/util/SortedMap
++java/util/SortedSet
++java/util/Stack
++java/util/StringTokenizer
++java/util/TimSort
++java/util/TimeZone
++java/util/TimeZone$1
++java/util/TreeMap
++java/util/TreeMap$Entry
++java/util/TreeMap$KeyIterator
++java/util/TreeMap$KeySet
++java/util/TreeMap$PrivateEntryIterator
++java/util/TreeSet
++java/util/Vector
++java/util/Vector$1
++java/util/Vector$Itr
++java/util/Vector$ListItr
++java/util/WeakHashMap
++java/util/WeakHashMap$Entry
++java/util/WeakHashMap$HashIterator
++java/util/WeakHashMap$KeyIterator
++java/util/WeakHashMap$KeySet
++java/util/concurrent/AbstractExecutorService
++java/util/concurrent/BlockingQueue
++java/util/concurrent/ConcurrentHashMap
++java/util/concurrent/ConcurrentHashMap$BaseIterator
++java/util/concurrent/ConcurrentHashMap$CollectionView
++java/util/concurrent/ConcurrentHashMap$CounterCell
++java/util/concurrent/ConcurrentHashMap$EntrySetView
++java/util/concurrent/ConcurrentHashMap$ForwardingNode
++java/util/concurrent/ConcurrentHashMap$KeyIterator
++java/util/concurrent/ConcurrentHashMap$KeySetView
++java/util/concurrent/ConcurrentHashMap$Node
++java/util/concurrent/ConcurrentHashMap$Segment
++java/util/concurrent/ConcurrentHashMap$Traverser
++java/util/concurrent/ConcurrentHashMap$ValueIterator
++java/util/concurrent/ConcurrentHashMap$ValuesView
++java/util/concurrent/ConcurrentMap
++java/util/concurrent/ConcurrentNavigableMap
++java/util/concurrent/ConcurrentSkipListMap
++java/util/concurrent/ConcurrentSkipListMap$EntrySet
++java/util/concurrent/ConcurrentSkipListMap$HeadIndex
++java/util/concurrent/ConcurrentSkipListMap$Index
++java/util/concurrent/ConcurrentSkipListMap$KeySet
++java/util/concurrent/ConcurrentSkipListMap$Node
++java/util/concurrent/ConcurrentSkipListMap$Values
++java/util/concurrent/ConcurrentSkipListSet
++java/util/concurrent/CopyOnWriteArrayList
++java/util/concurrent/DelayQueue
++java/util/concurrent/Delayed
++java/util/concurrent/Executor
++java/util/concurrent/ExecutorService
++java/util/concurrent/Executors
++java/util/concurrent/RejectedExecutionHandler
++java/util/concurrent/SynchronousQueue
++java/util/concurrent/SynchronousQueue$TransferStack
++java/util/concurrent/SynchronousQueue$TransferStack$SNode
++java/util/concurrent/SynchronousQueue$Transferer
++java/util/concurrent/ThreadFactory
++java/util/concurrent/ThreadLocalRandom
++java/util/concurrent/ThreadPoolExecutor
++java/util/concurrent/ThreadPoolExecutor$AbortPolicy
++java/util/concurrent/ThreadPoolExecutor$Worker
++java/util/concurrent/TimeUnit
++java/util/concurrent/TimeUnit$1
++java/util/concurrent/TimeUnit$2
++java/util/concurrent/TimeUnit$3
++java/util/concurrent/TimeUnit$4
++java/util/concurrent/TimeUnit$5
++java/util/concurrent/TimeUnit$6
++java/util/concurrent/TimeUnit$7
++java/util/concurrent/atomic/AtomicBoolean
++java/util/concurrent/atomic/AtomicInteger
++java/util/concurrent/atomic/AtomicLong
++java/util/concurrent/atomic/AtomicMarkableReference
++java/util/concurrent/atomic/AtomicMarkableReference$Pair
++java/util/concurrent/atomic/AtomicReferenceFieldUpdater
++java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl
++java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl$1
++java/util/concurrent/locks/AbstractOwnableSynchronizer
++java/util/concurrent/locks/AbstractQueuedSynchronizer
++java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject
++java/util/concurrent/locks/AbstractQueuedSynchronizer$Node
++java/util/concurrent/locks/Condition
++java/util/concurrent/locks/Lock
++java/util/concurrent/locks/LockSupport
++java/util/concurrent/locks/ReadWriteLock
++java/util/concurrent/locks/ReentrantLock
++java/util/concurrent/locks/ReentrantLock$NonfairSync
++java/util/concurrent/locks/ReentrantLock$Sync
++java/util/concurrent/locks/ReentrantReadWriteLock
++java/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync
++java/util/concurrent/locks/ReentrantReadWriteLock$ReadLock
++java/util/concurrent/locks/ReentrantReadWriteLock$Sync
++java/util/concurrent/locks/ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter
++java/util/concurrent/locks/ReentrantReadWriteLock$WriteLock
++java/util/function/BiFunction
++java/util/jar/Attributes
++java/util/jar/Attributes$Name
++java/util/jar/JarEntry
++java/util/jar/JarFile
++java/util/jar/JarFile$JarEntryIterator
++java/util/jar/JarFile$JarFileEntry
++java/util/jar/JarVerifier
++java/util/jar/JarVerifier$3
++java/util/jar/JarVerifier$VerifierStream
++java/util/jar/JavaUtilJarAccessImpl
++java/util/jar/Manifest
++java/util/jar/Manifest$FastInputStream
++java/util/logging/Handler
++java/util/logging/Level
++java/util/logging/Level$KnownLevel
++java/util/logging/LogManager
++java/util/logging/LogManager$1
++java/util/logging/LogManager$2
++java/util/logging/LogManager$3
++java/util/logging/LogManager$5
++java/util/logging/LogManager$Cleaner
++java/util/logging/LogManager$LogNode
++java/util/logging/LogManager$LoggerContext
++java/util/logging/LogManager$LoggerContext$1
++java/util/logging/LogManager$LoggerWeakRef
++java/util/logging/LogManager$RootLogger
++java/util/logging/LogManager$SystemLoggerContext
++java/util/logging/Logger
++java/util/logging/Logger$1
++java/util/logging/LoggingPermission
++java/util/logging/LoggingProxyImpl
++java/util/regex/MatchResult
++java/util/regex/Matcher
++java/util/regex/Pattern
++java/util/regex/Pattern$4
++java/util/regex/Pattern$BnM
++java/util/regex/Pattern$GroupHead
++java/util/regex/Pattern$LastNode
++java/util/regex/Pattern$Node
++java/util/regex/Pattern$Slice
++java/util/regex/Pattern$SliceNode
++java/util/regex/Pattern$Start
++java/util/regex/Pattern$TreeInfo
++java/util/spi/CalendarDataProvider
++java/util/spi/CurrencyNameProvider
++java/util/spi/LocaleNameProvider
++java/util/spi/LocaleServiceProvider
++java/util/spi/ResourceBundleControlProvider
++java/util/spi/TimeZoneNameProvider
++java/util/zip/CRC32
++java/util/zip/Checksum
++java/util/zip/DeflaterOutputStream
++java/util/zip/GZIPInputStream
++java/util/zip/Inflater
++java/util/zip/InflaterInputStream
++java/util/zip/ZStreamRef
++java/util/zip/ZipCoder
++java/util/zip/ZipConstants
++java/util/zip/ZipEntry
++java/util/zip/ZipException
++java/util/zip/ZipFile
++java/util/zip/ZipFile$1
++java/util/zip/ZipFile$ZipEntryIterator
++java/util/zip/ZipFile$ZipFileInflaterInputStream
++java/util/zip/ZipFile$ZipFileInputStream
++java/util/zip/ZipInputStream
++java/util/zip/ZipUtils
++javax/accessibility/Accessible
++javax/accessibility/AccessibleAction
++javax/accessibility/AccessibleBundle
++javax/accessibility/AccessibleComponent
++javax/accessibility/AccessibleContext
++javax/accessibility/AccessibleExtendedComponent
++javax/accessibility/AccessibleRelationSet
++javax/accessibility/AccessibleState
++javax/accessibility/AccessibleText
++javax/accessibility/AccessibleValue
++javax/security/auth/Destroyable
++javax/security/auth/login/FailedLoginException
++javax/security/auth/login/LoginException
++javax/security/auth/x500/X500Principal
++javax/sound/sampled/Control$Type
++javax/sound/sampled/DataLine
++javax/sound/sampled/DataLine$Info
++javax/sound/sampled/FloatControl$Type
++javax/sound/sampled/Line
++javax/sound/sampled/Line$Info
++javax/sound/sampled/LineUnavailableException
++javax/sound/sampled/UnsupportedAudioFileException
++javax/swing/AbstractAction
++javax/swing/AbstractButton
++javax/swing/AbstractButton$AccessibleAbstractButton
++javax/swing/AbstractButton$Handler
++javax/swing/AbstractCellEditor
++javax/swing/AbstractListModel
++javax/swing/Action
++javax/swing/ActionMap
++javax/swing/AncestorNotifier
++javax/swing/ArrayTable
++javax/swing/Autoscroller
++javax/swing/BorderFactory
++javax/swing/BoundedRangeModel
++javax/swing/Box
++javax/swing/Box$Filler
++javax/swing/BoxLayout
++javax/swing/BufferStrategyPaintManager
++javax/swing/BufferStrategyPaintManager$BufferInfo
++javax/swing/ButtonGroup
++javax/swing/ButtonModel
++javax/swing/CellEditor
++javax/swing/CellRendererPane
++javax/swing/ClientPropertyKey
++javax/swing/ClientPropertyKey$1
++javax/swing/ComboBoxEditor
++javax/swing/ComboBoxModel
++javax/swing/ComponentInputMap
++javax/swing/DefaultBoundedRangeModel
++javax/swing/DefaultButtonModel
++javax/swing/DefaultCellEditor
++javax/swing/DefaultCellEditor$1
++javax/swing/DefaultCellEditor$EditorDelegate
++javax/swing/DefaultComboBoxModel
++javax/swing/DefaultListCellRenderer
++javax/swing/DefaultListCellRenderer$UIResource
++javax/swing/DefaultListModel
++javax/swing/DefaultListSelectionModel
++javax/swing/DefaultSingleSelectionModel
++javax/swing/DropMode
++javax/swing/FocusManager
++javax/swing/GrayFilter
++javax/swing/Icon
++javax/swing/ImageIcon
++javax/swing/ImageIcon$1
++javax/swing/ImageIcon$2
++javax/swing/ImageIcon$2$1
++javax/swing/ImageIcon$3
++javax/swing/InputMap
++javax/swing/InternalFrameFocusTraversalPolicy
++javax/swing/JButton
++javax/swing/JCheckBox
++javax/swing/JCheckBoxMenuItem
++javax/swing/JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem
++javax/swing/JComboBox
++javax/swing/JComboBox$1
++javax/swing/JComboBox$KeySelectionManager
++javax/swing/JComponent
++javax/swing/JComponent$1
++javax/swing/JComponent$2
++javax/swing/JComponent$AccessibleJComponent
++javax/swing/JDialog
++javax/swing/JEditorPane
++javax/swing/JFrame
++javax/swing/JInternalFrame
++javax/swing/JLabel
++javax/swing/JLayer
++javax/swing/JLayeredPane
++javax/swing/JList
++javax/swing/JList$3
++javax/swing/JList$ListSelectionHandler
++javax/swing/JMenu
++javax/swing/JMenu$MenuChangeListener
++javax/swing/JMenu$WinListener
++javax/swing/JMenuBar
++javax/swing/JMenuItem
++javax/swing/JMenuItem$AccessibleJMenuItem
++javax/swing/JMenuItem$MenuItemFocusListener
++javax/swing/JPanel
++javax/swing/JPasswordField
++javax/swing/JPopupMenu
++javax/swing/JPopupMenu$Separator
++javax/swing/JProgressBar
++javax/swing/JProgressBar$ModelListener
++javax/swing/JRadioButton
++javax/swing/JRadioButtonMenuItem
++javax/swing/JRootPane
++javax/swing/JRootPane$1
++javax/swing/JRootPane$RootLayout
++javax/swing/JScrollBar
++javax/swing/JScrollBar$ModelListener
++javax/swing/JScrollPane
++javax/swing/JScrollPane$ScrollBar
++javax/swing/JSeparator
++javax/swing/JSlider
++javax/swing/JSlider$ModelListener
++javax/swing/JSplitPane
++javax/swing/JTabbedPane
++javax/swing/JTabbedPane$ModelListener
++javax/swing/JTabbedPane$Page
++javax/swing/JTable
++javax/swing/JTable$2
++javax/swing/JTable$5
++javax/swing/JTable$Resizable2
++javax/swing/JTable$Resizable3
++javax/swing/JTextArea
++javax/swing/JTextField
++javax/swing/JTextField$NotifyAction
++javax/swing/JTextField$ScrollRepainter
++javax/swing/JToggleButton
++javax/swing/JToggleButton$ToggleButtonModel
++javax/swing/JToolBar
++javax/swing/JToolBar$DefaultToolBarLayout
++javax/swing/JToolBar$Separator
++javax/swing/JToolTip
++javax/swing/JTree
++javax/swing/JTree$TreeModelHandler
++javax/swing/JTree$TreeSelectionRedirector
++javax/swing/JViewport
++javax/swing/JViewport$ViewListener
++javax/swing/JWindow
++javax/swing/KeyStroke
++javax/swing/KeyboardManager
++javax/swing/KeyboardManager$ComponentKeyStrokePair
++javax/swing/LayoutComparator
++javax/swing/LayoutFocusTraversalPolicy
++javax/swing/ListCellRenderer
++javax/swing/ListModel
++javax/swing/ListSelectionModel
++javax/swing/LookAndFeel
++javax/swing/MenuElement
++javax/swing/MenuSelectionManager
++javax/swing/MultiUIDefaults
++javax/swing/MutableComboBoxModel
++javax/swing/PopupFactory
++javax/swing/RepaintManager
++javax/swing/RepaintManager$2
++javax/swing/RepaintManager$3
++javax/swing/RepaintManager$DisplayChangedHandler
++javax/swing/RepaintManager$PaintManager
++javax/swing/RepaintManager$ProcessingRunnable
++javax/swing/RootPaneContainer
++javax/swing/ScrollPaneConstants
++javax/swing/ScrollPaneLayout
++javax/swing/ScrollPaneLayout$UIResource
++javax/swing/Scrollable
++javax/swing/SingleSelectionModel
++javax/swing/SizeRequirements
++javax/swing/SortingFocusTraversalPolicy
++javax/swing/SwingConstants
++javax/swing/SwingContainerOrderFocusTraversalPolicy
++javax/swing/SwingDefaultFocusTraversalPolicy
++javax/swing/SwingHeavyWeight
++javax/swing/SwingPaintEventDispatcher
++javax/swing/SwingUtilities
++javax/swing/SwingUtilities$SharedOwnerFrame
++javax/swing/Timer
++javax/swing/Timer$DoPostEvent
++javax/swing/TimerQueue
++javax/swing/TimerQueue$1
++javax/swing/TimerQueue$DelayedTimer
++javax/swing/ToolTipManager
++javax/swing/ToolTipManager$AccessibilityKeyListener
++javax/swing/ToolTipManager$MoveBeforeEnterListener
++javax/swing/ToolTipManager$insideTimerAction
++javax/swing/ToolTipManager$outsideTimerAction
++javax/swing/ToolTipManager$stillInsideTimerAction
++javax/swing/TransferHandler
++javax/swing/TransferHandler$DropHandler
++javax/swing/TransferHandler$HasGetTransferHandler
++javax/swing/TransferHandler$SwingDropTarget
++javax/swing/TransferHandler$TransferAction
++javax/swing/TransferHandler$TransferAction$1
++javax/swing/TransferHandler$TransferAction$2
++javax/swing/TransferHandler$TransferSupport
++javax/swing/UIDefaults
++javax/swing/UIDefaults$ActiveValue
++javax/swing/UIDefaults$LazyInputMap
++javax/swing/UIDefaults$LazyValue
++javax/swing/UIDefaults$TextAndMnemonicHashMap
++javax/swing/UIManager
++javax/swing/UIManager$1
++javax/swing/UIManager$2
++javax/swing/UIManager$LAFState
++javax/swing/UIManager$LookAndFeelInfo
++javax/swing/UnsupportedLookAndFeelException
++javax/swing/ViewportLayout
++javax/swing/WindowConstants
++javax/swing/border/AbstractBorder
++javax/swing/border/BevelBorder
++javax/swing/border/Border
++javax/swing/border/CompoundBorder
++javax/swing/border/EmptyBorder
++javax/swing/border/EtchedBorder
++javax/swing/border/LineBorder
++javax/swing/border/MatteBorder
++javax/swing/border/TitledBorder
++javax/swing/event/AncestorEvent
++javax/swing/event/AncestorListener
++javax/swing/event/CaretEvent
++javax/swing/event/CaretListener
++javax/swing/event/CellEditorListener
++javax/swing/event/ChangeEvent
++javax/swing/event/ChangeListener
++javax/swing/event/DocumentEvent
++javax/swing/event/DocumentEvent$ElementChange
++javax/swing/event/DocumentEvent$EventType
++javax/swing/event/DocumentListener
++javax/swing/event/EventListenerList
++javax/swing/event/ListDataEvent
++javax/swing/event/ListDataListener
++javax/swing/event/ListSelectionEvent
++javax/swing/event/ListSelectionListener
++javax/swing/event/MenuDragMouseListener
++javax/swing/event/MenuEvent
++javax/swing/event/MenuKeyListener
++javax/swing/event/MenuListener
++javax/swing/event/MouseInputAdapter
++javax/swing/event/MouseInputListener
++javax/swing/event/PopupMenuListener
++javax/swing/event/RowSorterListener
++javax/swing/event/SwingPropertyChangeSupport
++javax/swing/event/TableColumnModelEvent
++javax/swing/event/TableColumnModelListener
++javax/swing/event/TableModelEvent
++javax/swing/event/TableModelListener
++javax/swing/event/TreeExpansionListener
++javax/swing/event/TreeModelEvent
++javax/swing/event/TreeModelListener
++javax/swing/event/TreeSelectionEvent
++javax/swing/event/TreeSelectionListener
++javax/swing/event/UndoableEditEvent
++javax/swing/event/UndoableEditListener
++javax/swing/filechooser/FileFilter
++javax/swing/plaf/ActionMapUIResource
++javax/swing/plaf/BorderUIResource
++javax/swing/plaf/BorderUIResource$CompoundBorderUIResource
++javax/swing/plaf/BorderUIResource$EmptyBorderUIResource
++javax/swing/plaf/BorderUIResource$LineBorderUIResource
++javax/swing/plaf/ButtonUI
++javax/swing/plaf/ColorUIResource
++javax/swing/plaf/ComboBoxUI
++javax/swing/plaf/ComponentInputMapUIResource
++javax/swing/plaf/ComponentUI
++javax/swing/plaf/DimensionUIResource
++javax/swing/plaf/FontUIResource
++javax/swing/plaf/IconUIResource
++javax/swing/plaf/InputMapUIResource
++javax/swing/plaf/InsetsUIResource
++javax/swing/plaf/LabelUI
++javax/swing/plaf/ListUI
++javax/swing/plaf/MenuBarUI
++javax/swing/plaf/MenuItemUI
++javax/swing/plaf/PanelUI
++javax/swing/plaf/PopupMenuUI
++javax/swing/plaf/ProgressBarUI
++javax/swing/plaf/RootPaneUI
++javax/swing/plaf/ScrollBarUI
++javax/swing/plaf/ScrollPaneUI
++javax/swing/plaf/SeparatorUI
++javax/swing/plaf/SliderUI
++javax/swing/plaf/SplitPaneUI
++javax/swing/plaf/TabbedPaneUI
++javax/swing/plaf/TableHeaderUI
++javax/swing/plaf/TableUI
++javax/swing/plaf/TextUI
++javax/swing/plaf/ToolBarUI
++javax/swing/plaf/TreeUI
++javax/swing/plaf/UIResource
++javax/swing/plaf/ViewportUI
++javax/swing/plaf/basic/BasicArrowButton
++javax/swing/plaf/basic/BasicBorders
++javax/swing/plaf/basic/BasicBorders$ButtonBorder
++javax/swing/plaf/basic/BasicBorders$MarginBorder
++javax/swing/plaf/basic/BasicBorders$RadioButtonBorder
++javax/swing/plaf/basic/BasicBorders$RolloverButtonBorder
++javax/swing/plaf/basic/BasicBorders$RolloverMarginBorder
++javax/swing/plaf/basic/BasicBorders$SplitPaneBorder
++javax/swing/plaf/basic/BasicBorders$SplitPaneDividerBorder
++javax/swing/plaf/basic/BasicButtonListener
++javax/swing/plaf/basic/BasicButtonUI
++javax/swing/plaf/basic/BasicCheckBoxMenuItemUI
++javax/swing/plaf/basic/BasicComboBoxEditor
++javax/swing/plaf/basic/BasicComboBoxEditor$BorderlessTextField
++javax/swing/plaf/basic/BasicComboBoxEditor$UIResource
++javax/swing/plaf/basic/BasicComboBoxRenderer
++javax/swing/plaf/basic/BasicComboBoxRenderer$UIResource
++javax/swing/plaf/basic/BasicComboBoxUI
++javax/swing/plaf/basic/BasicComboBoxUI$ComboBoxLayoutManager
++javax/swing/plaf/basic/BasicComboBoxUI$DefaultKeySelectionManager
++javax/swing/plaf/basic/BasicComboBoxUI$FocusHandler
++javax/swing/plaf/basic/BasicComboBoxUI$Handler
++javax/swing/plaf/basic/BasicComboBoxUI$PropertyChangeHandler
++javax/swing/plaf/basic/BasicComboPopup
++javax/swing/plaf/basic/BasicComboPopup$1
++javax/swing/plaf/basic/BasicComboPopup$EmptyListModelClass
++javax/swing/plaf/basic/BasicComboPopup$Handler
++javax/swing/plaf/basic/BasicGraphicsUtils
++javax/swing/plaf/basic/BasicHTML
++javax/swing/plaf/basic/BasicIconFactory
++javax/swing/plaf/basic/BasicIconFactory$MenuItemArrowIcon
++javax/swing/plaf/basic/BasicIconFactory$MenuItemCheckIcon
++javax/swing/plaf/basic/BasicLabelUI
++javax/swing/plaf/basic/BasicListUI
++javax/swing/plaf/basic/BasicListUI$FocusHandler
++javax/swing/plaf/basic/BasicListUI$Handler
++javax/swing/plaf/basic/BasicListUI$ListTransferHandler
++javax/swing/plaf/basic/BasicListUI$MouseInputHandler
++javax/swing/plaf/basic/BasicListUI$PropertyChangeHandler
++javax/swing/plaf/basic/BasicLookAndFeel
++javax/swing/plaf/basic/BasicLookAndFeel$1
++javax/swing/plaf/basic/BasicLookAndFeel$2
++javax/swing/plaf/basic/BasicLookAndFeel$AWTEventHelper
++javax/swing/plaf/basic/BasicMenuBarUI
++javax/swing/plaf/basic/BasicMenuBarUI$Handler
++javax/swing/plaf/basic/BasicMenuItemUI
++javax/swing/plaf/basic/BasicMenuItemUI$Handler
++javax/swing/plaf/basic/BasicMenuUI
++javax/swing/plaf/basic/BasicMenuUI$ChangeHandler
++javax/swing/plaf/basic/BasicMenuUI$Handler
++javax/swing/plaf/basic/BasicMenuUI$MouseInputHandler
++javax/swing/plaf/basic/BasicPanelUI
++javax/swing/plaf/basic/BasicPopupMenuUI
++javax/swing/plaf/basic/BasicPopupMenuUI$BasicMenuKeyListener
++javax/swing/plaf/basic/BasicPopupMenuUI$BasicPopupMenuListener
++javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper
++javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper$1
++javax/swing/plaf/basic/BasicPopupMenuUI$MouseGrabber
++javax/swing/plaf/basic/BasicProgressBarUI
++javax/swing/plaf/basic/BasicProgressBarUI$Handler
++javax/swing/plaf/basic/BasicRadioButtonMenuItemUI
++javax/swing/plaf/basic/BasicRadioButtonUI
++javax/swing/plaf/basic/BasicRootPaneUI
++javax/swing/plaf/basic/BasicRootPaneUI$RootPaneInputMap
++javax/swing/plaf/basic/BasicScrollBarUI
++javax/swing/plaf/basic/BasicScrollBarUI$ArrowButtonListener
++javax/swing/plaf/basic/BasicScrollBarUI$Handler
++javax/swing/plaf/basic/BasicScrollBarUI$ModelListener
++javax/swing/plaf/basic/BasicScrollBarUI$PropertyChangeHandler
++javax/swing/plaf/basic/BasicScrollBarUI$ScrollListener
++javax/swing/plaf/basic/BasicScrollBarUI$TrackListener
++javax/swing/plaf/basic/BasicScrollPaneUI
++javax/swing/plaf/basic/BasicScrollPaneUI$Handler
++javax/swing/plaf/basic/BasicScrollPaneUI$MouseWheelHandler
++javax/swing/plaf/basic/BasicSeparatorUI
++javax/swing/plaf/basic/BasicSliderUI
++javax/swing/plaf/basic/BasicSliderUI$Actions
++javax/swing/plaf/basic/BasicSliderUI$Handler
++javax/swing/plaf/basic/BasicSliderUI$PropertyChangeHandler
++javax/swing/plaf/basic/BasicSliderUI$ScrollListener
++javax/swing/plaf/basic/BasicSliderUI$TrackListener
++javax/swing/plaf/basic/BasicSplitPaneDivider
++javax/swing/plaf/basic/BasicSplitPaneDivider$DividerLayout
++javax/swing/plaf/basic/BasicSplitPaneDivider$MouseHandler
++javax/swing/plaf/basic/BasicSplitPaneDivider$OneTouchActionHandler
++javax/swing/plaf/basic/BasicSplitPaneUI
++javax/swing/plaf/basic/BasicSplitPaneUI$1
++javax/swing/plaf/basic/BasicSplitPaneUI$BasicHorizontalLayoutManager
++javax/swing/plaf/basic/BasicSplitPaneUI$Handler
++javax/swing/plaf/basic/BasicTabbedPaneUI
++javax/swing/plaf/basic/BasicTabbedPaneUI$Handler
++javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneLayout
++javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneScrollLayout
++javax/swing/plaf/basic/BasicTableHeaderUI
++javax/swing/plaf/basic/BasicTableHeaderUI$1
++javax/swing/plaf/basic/BasicTableHeaderUI$MouseInputHandler
++javax/swing/plaf/basic/BasicTableUI
++javax/swing/plaf/basic/BasicTableUI$Handler
++javax/swing/plaf/basic/BasicTableUI$TableTransferHandler
++javax/swing/plaf/basic/BasicTextAreaUI
++javax/swing/plaf/basic/BasicTextFieldUI
++javax/swing/plaf/basic/BasicTextUI
++javax/swing/plaf/basic/BasicTextUI$BasicCaret
++javax/swing/plaf/basic/BasicTextUI$BasicCursor
++javax/swing/plaf/basic/BasicTextUI$BasicHighlighter
++javax/swing/plaf/basic/BasicTextUI$DragListener
++javax/swing/plaf/basic/BasicTextUI$FocusAction
++javax/swing/plaf/basic/BasicTextUI$RootView
++javax/swing/plaf/basic/BasicTextUI$TextActionWrapper
++javax/swing/plaf/basic/BasicTextUI$TextTransferHandler
++javax/swing/plaf/basic/BasicTextUI$TextTransferHandler$TextTransferable
++javax/swing/plaf/basic/BasicTextUI$UpdateHandler
++javax/swing/plaf/basic/BasicToggleButtonUI
++javax/swing/plaf/basic/BasicToolBarSeparatorUI
++javax/swing/plaf/basic/BasicToolBarUI
++javax/swing/plaf/basic/BasicToolBarUI$DockingListener
++javax/swing/plaf/basic/BasicToolBarUI$Handler
++javax/swing/plaf/basic/BasicTransferable
++javax/swing/plaf/basic/BasicTreeUI
++javax/swing/plaf/basic/BasicTreeUI$Actions
++javax/swing/plaf/basic/BasicTreeUI$Handler
++javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler
++javax/swing/plaf/basic/BasicTreeUI$TreeTransferHandler
++javax/swing/plaf/basic/BasicViewportUI
++javax/swing/plaf/basic/ComboPopup
++javax/swing/plaf/basic/DefaultMenuLayout
++javax/swing/plaf/basic/DragRecognitionSupport$BeforeDrag
++javax/swing/plaf/basic/LazyActionMap
++javax/swing/plaf/metal/DefaultMetalTheme
++javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate
++javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate$1
++javax/swing/plaf/metal/MetalBorders
++javax/swing/plaf/metal/MetalBorders$ButtonBorder
++javax/swing/plaf/metal/MetalBorders$Flush3DBorder
++javax/swing/plaf/metal/MetalBorders$MenuBarBorder
++javax/swing/plaf/metal/MetalBorders$MenuItemBorder
++javax/swing/plaf/metal/MetalBorders$PopupMenuBorder
++javax/swing/plaf/metal/MetalBorders$RolloverButtonBorder
++javax/swing/plaf/metal/MetalBorders$RolloverMarginBorder
++javax/swing/plaf/metal/MetalBorders$ScrollPaneBorder
++javax/swing/plaf/metal/MetalBorders$TextFieldBorder
++javax/swing/plaf/metal/MetalBorders$ToggleButtonBorder
++javax/swing/plaf/metal/MetalBorders$ToolBarBorder
++javax/swing/plaf/metal/MetalBumps
++javax/swing/plaf/metal/MetalButtonUI
++javax/swing/plaf/metal/MetalCheckBoxUI
++javax/swing/plaf/metal/MetalComboBoxButton
++javax/swing/plaf/metal/MetalComboBoxButton$1
++javax/swing/plaf/metal/MetalComboBoxEditor
++javax/swing/plaf/metal/MetalComboBoxEditor$1
++javax/swing/plaf/metal/MetalComboBoxEditor$EditorBorder
++javax/swing/plaf/metal/MetalComboBoxEditor$UIResource
++javax/swing/plaf/metal/MetalComboBoxIcon
++javax/swing/plaf/metal/MetalComboBoxUI
++javax/swing/plaf/metal/MetalComboBoxUI$MetalComboBoxLayoutManager
++javax/swing/plaf/metal/MetalComboBoxUI$MetalPropertyChangeListener
++javax/swing/plaf/metal/MetalIconFactory
++javax/swing/plaf/metal/MetalIconFactory$CheckBoxIcon
++javax/swing/plaf/metal/MetalIconFactory$CheckBoxMenuItemIcon
++javax/swing/plaf/metal/MetalIconFactory$FolderIcon16
++javax/swing/plaf/metal/MetalIconFactory$HorizontalSliderThumbIcon
++javax/swing/plaf/metal/MetalIconFactory$MenuArrowIcon
++javax/swing/plaf/metal/MetalIconFactory$MenuItemArrowIcon
++javax/swing/plaf/metal/MetalIconFactory$RadioButtonIcon
++javax/swing/plaf/metal/MetalIconFactory$RadioButtonMenuItemIcon
++javax/swing/plaf/metal/MetalIconFactory$TreeFolderIcon
++javax/swing/plaf/metal/MetalIconFactory$VerticalSliderThumbIcon
++javax/swing/plaf/metal/MetalLabelUI
++javax/swing/plaf/metal/MetalLookAndFeel
++javax/swing/plaf/metal/MetalLookAndFeel$AATextListener
++javax/swing/plaf/metal/MetalLookAndFeel$FontActiveValue
++javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue
++javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue$1
++javax/swing/plaf/metal/MetalPopupMenuSeparatorUI
++javax/swing/plaf/metal/MetalProgressBarUI
++javax/swing/plaf/metal/MetalRadioButtonUI
++javax/swing/plaf/metal/MetalRootPaneUI
++javax/swing/plaf/metal/MetalScrollBarUI
++javax/swing/plaf/metal/MetalScrollBarUI$ScrollBarListener
++javax/swing/plaf/metal/MetalScrollButton
++javax/swing/plaf/metal/MetalScrollPaneUI
++javax/swing/plaf/metal/MetalScrollPaneUI$1
++javax/swing/plaf/metal/MetalSeparatorUI
++javax/swing/plaf/metal/MetalSliderUI
++javax/swing/plaf/metal/MetalSliderUI$MetalPropertyListener
++javax/swing/plaf/metal/MetalSplitPaneDivider
++javax/swing/plaf/metal/MetalSplitPaneDivider$1
++javax/swing/plaf/metal/MetalSplitPaneDivider$2
++javax/swing/plaf/metal/MetalSplitPaneUI
++javax/swing/plaf/metal/MetalTabbedPaneUI
++javax/swing/plaf/metal/MetalTabbedPaneUI$TabbedPaneLayout
++javax/swing/plaf/metal/MetalTextFieldUI
++javax/swing/plaf/metal/MetalTheme
++javax/swing/plaf/metal/MetalToggleButtonUI
++javax/swing/plaf/metal/MetalToolBarUI
++javax/swing/plaf/metal/MetalToolBarUI$MetalDockingListener
++javax/swing/plaf/metal/MetalTreeUI
++javax/swing/plaf/metal/MetalTreeUI$LineListener
++javax/swing/plaf/metal/OceanTheme
++javax/swing/plaf/metal/OceanTheme$1
++javax/swing/plaf/metal/OceanTheme$2
++javax/swing/plaf/metal/OceanTheme$3
++javax/swing/plaf/metal/OceanTheme$4
++javax/swing/plaf/metal/OceanTheme$5
++javax/swing/plaf/metal/OceanTheme$6
++javax/swing/plaf/synth/SynthConstants
++javax/swing/plaf/synth/SynthUI
++javax/swing/table/AbstractTableModel
++javax/swing/table/DefaultTableCellRenderer
++javax/swing/table/DefaultTableColumnModel
++javax/swing/table/DefaultTableModel
++javax/swing/table/JTableHeader
++javax/swing/table/TableCellEditor
++javax/swing/table/TableCellRenderer
++javax/swing/table/TableColumn
++javax/swing/table/TableColumnModel
++javax/swing/table/TableModel
++javax/swing/text/AbstractDocument
++javax/swing/text/AbstractDocument$1
++javax/swing/text/AbstractDocument$AbstractElement
++javax/swing/text/AbstractDocument$AttributeContext
++javax/swing/text/AbstractDocument$BidiElement
++javax/swing/text/AbstractDocument$BidiRootElement
++javax/swing/text/AbstractDocument$BranchElement
++javax/swing/text/AbstractDocument$Content
++javax/swing/text/AbstractDocument$DefaultDocumentEvent
++javax/swing/text/AbstractDocument$ElementEdit
++javax/swing/text/AbstractDocument$LeafElement
++javax/swing/text/AttributeSet
++javax/swing/text/AttributeSet$CharacterAttribute
++javax/swing/text/AttributeSet$ColorAttribute
++javax/swing/text/AttributeSet$FontAttribute
++javax/swing/text/AttributeSet$ParagraphAttribute
++javax/swing/text/Caret
++javax/swing/text/DefaultCaret
++javax/swing/text/DefaultCaret$1
++javax/swing/text/DefaultCaret$Handler
++javax/swing/text/DefaultEditorKit
++javax/swing/text/DefaultEditorKit$BeepAction
++javax/swing/text/DefaultEditorKit$BeginAction
++javax/swing/text/DefaultEditorKit$BeginLineAction
++javax/swing/text/DefaultEditorKit$BeginParagraphAction
++javax/swing/text/DefaultEditorKit$BeginWordAction
++javax/swing/text/DefaultEditorKit$CopyAction
++javax/swing/text/DefaultEditorKit$CutAction
++javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction
++javax/swing/text/DefaultEditorKit$DeleteNextCharAction
++javax/swing/text/DefaultEditorKit$DeletePrevCharAction
++javax/swing/text/DefaultEditorKit$DeleteWordAction
++javax/swing/text/DefaultEditorKit$DumpModelAction
++javax/swing/text/DefaultEditorKit$EndAction
++javax/swing/text/DefaultEditorKit$EndLineAction
++javax/swing/text/DefaultEditorKit$EndParagraphAction
++javax/swing/text/DefaultEditorKit$EndWordAction
++javax/swing/text/DefaultEditorKit$InsertBreakAction
++javax/swing/text/DefaultEditorKit$InsertContentAction
++javax/swing/text/DefaultEditorKit$InsertTabAction
++javax/swing/text/DefaultEditorKit$NextVisualPositionAction
++javax/swing/text/DefaultEditorKit$NextWordAction
++javax/swing/text/DefaultEditorKit$PageAction
++javax/swing/text/DefaultEditorKit$PasteAction
++javax/swing/text/DefaultEditorKit$PreviousWordAction
++javax/swing/text/DefaultEditorKit$ReadOnlyAction
++javax/swing/text/DefaultEditorKit$SelectAllAction
++javax/swing/text/DefaultEditorKit$SelectLineAction
++javax/swing/text/DefaultEditorKit$SelectParagraphAction
++javax/swing/text/DefaultEditorKit$SelectWordAction
++javax/swing/text/DefaultEditorKit$ToggleComponentOrientationAction
++javax/swing/text/DefaultEditorKit$UnselectAction
++javax/swing/text/DefaultEditorKit$VerticalPageAction
++javax/swing/text/DefaultEditorKit$WritableAction
++javax/swing/text/DefaultHighlighter
++javax/swing/text/DefaultHighlighter$DefaultHighlightPainter
++javax/swing/text/DefaultHighlighter$HighlightInfo
++javax/swing/text/DefaultHighlighter$LayeredHighlightInfo
++javax/swing/text/DefaultHighlighter$SafeDamager
++javax/swing/text/Document
++javax/swing/text/EditorKit
++javax/swing/text/Element
++javax/swing/text/FieldView
++javax/swing/text/GapContent
++javax/swing/text/GapContent$InsertUndo
++javax/swing/text/GapContent$MarkData
++javax/swing/text/GapContent$MarkVector
++javax/swing/text/GapContent$StickyPosition
++javax/swing/text/GapVector
++javax/swing/text/Highlighter
++javax/swing/text/Highlighter$Highlight
++javax/swing/text/Highlighter$HighlightPainter
++javax/swing/text/JTextComponent
++javax/swing/text/JTextComponent$1
++javax/swing/text/JTextComponent$DefaultKeymap
++javax/swing/text/JTextComponent$KeymapActionMap
++javax/swing/text/JTextComponent$KeymapWrapper
++javax/swing/text/JTextComponent$MutableCaretEvent
++javax/swing/text/Keymap
++javax/swing/text/LayeredHighlighter
++javax/swing/text/LayeredHighlighter$LayerPainter
++javax/swing/text/MutableAttributeSet
++javax/swing/text/PlainDocument
++javax/swing/text/PlainView
++javax/swing/text/Position
++javax/swing/text/Position$Bias
++javax/swing/text/Segment
++javax/swing/text/SegmentCache
++javax/swing/text/SegmentCache$CachedSegment
++javax/swing/text/SimpleAttributeSet
++javax/swing/text/SimpleAttributeSet$EmptyAttributeSet
++javax/swing/text/Style
++javax/swing/text/StyleConstants
++javax/swing/text/StyleConstants$CharacterConstants
++javax/swing/text/StyleConstants$ColorConstants
++javax/swing/text/StyleConstants$FontConstants
++javax/swing/text/StyleConstants$ParagraphConstants
++javax/swing/text/StyleContext
++javax/swing/text/StyleContext$FontKey
++javax/swing/text/StyleContext$KeyEnumeration
++javax/swing/text/StyleContext$NamedStyle
++javax/swing/text/StyleContext$SmallAttributeSet
++javax/swing/text/TabExpander
++javax/swing/text/TextAction
++javax/swing/text/Utilities
++javax/swing/text/View
++javax/swing/text/ViewFactory
++javax/swing/tree/AbstractLayoutCache
++javax/swing/tree/AbstractLayoutCache$NodeDimensions
++javax/swing/tree/DefaultMutableTreeNode
++javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration
++javax/swing/tree/DefaultTreeCellEditor
++javax/swing/tree/DefaultTreeCellEditor$1
++javax/swing/tree/DefaultTreeCellEditor$DefaultTextField
++javax/swing/tree/DefaultTreeCellEditor$EditorContainer
++javax/swing/tree/DefaultTreeCellRenderer
++javax/swing/tree/DefaultTreeModel
++javax/swing/tree/DefaultTreeSelectionModel
++javax/swing/tree/MutableTreeNode
++javax/swing/tree/PathPlaceHolder
++javax/swing/tree/RowMapper
++javax/swing/tree/TreeCellEditor
++javax/swing/tree/TreeCellRenderer
++javax/swing/tree/TreeModel
++javax/swing/tree/TreeNode
++javax/swing/tree/TreePath
++javax/swing/tree/TreeSelectionModel
++javax/swing/tree/VariableHeightLayoutCache
++javax/swing/tree/VariableHeightLayoutCache$TreeStateNode
++javax/swing/undo/AbstractUndoableEdit
++javax/swing/undo/CompoundEdit
++javax/swing/undo/UndoableEdit
++javax/xml/parsers/DocumentBuilder
++javax/xml/parsers/DocumentBuilderFactory
++javax/xml/parsers/FactoryFinder
++javax/xml/parsers/FactoryFinder$1
++javax/xml/parsers/ParserConfigurationException
++javax/xml/parsers/SecuritySupport
++javax/xml/parsers/SecuritySupport$2
++javax/xml/parsers/SecuritySupport$5
++org/w3c/dom/Attr
++org/w3c/dom/CDATASection
++org/w3c/dom/CharacterData
++org/w3c/dom/Comment
++org/w3c/dom/DOMException
++org/w3c/dom/Document
++org/w3c/dom/DocumentFragment
++org/w3c/dom/DocumentType
++org/w3c/dom/Element
++org/w3c/dom/Entity
++org/w3c/dom/EntityReference
++org/w3c/dom/NamedNodeMap
++org/w3c/dom/Node
++org/w3c/dom/NodeList
++org/w3c/dom/Notation
++org/w3c/dom/ProcessingInstruction
++org/w3c/dom/Text
++org/w3c/dom/events/DocumentEvent
++org/w3c/dom/events/Event
++org/w3c/dom/events/EventException
++org/w3c/dom/events/EventTarget
++org/w3c/dom/events/MutationEvent
++org/w3c/dom/ranges/DocumentRange
++org/w3c/dom/ranges/Range
++org/w3c/dom/traversal/DocumentTraversal
++org/w3c/dom/traversal/NodeIterator
++org/w3c/dom/traversal/TreeWalker
++org/xml/sax/AttributeList
++org/xml/sax/ContentHandler
++org/xml/sax/DTDHandler
++org/xml/sax/EntityResolver
++org/xml/sax/ErrorHandler
++org/xml/sax/InputSource
++org/xml/sax/Locator
++org/xml/sax/SAXException
++org/xml/sax/SAXNotRecognizedException
++org/xml/sax/SAXNotSupportedException
++org/xml/sax/SAXParseException
++org/xml/sax/helpers/DefaultHandler
++sun/awt/AWTAccessor
++sun/awt/AWTAccessor$AWTEventAccessor
++sun/awt/AWTAccessor$ClientPropertyKeyAccessor
++sun/awt/AWTAccessor$ComponentAccessor
++sun/awt/AWTAccessor$ContainerAccessor
++sun/awt/AWTAccessor$CursorAccessor
++sun/awt/AWTAccessor$DefaultKeyboardFocusManagerAccessor
++sun/awt/AWTAccessor$EventQueueAccessor
++sun/awt/AWTAccessor$FrameAccessor
++sun/awt/AWTAccessor$InputEventAccessor
++sun/awt/AWTAccessor$InvocationEventAccessor
++sun/awt/AWTAccessor$KeyEventAccessor
++sun/awt/AWTAccessor$KeyboardFocusManagerAccessor
++sun/awt/AWTAccessor$SequencedEventAccessor
++sun/awt/AWTAccessor$ToolkitAccessor
++sun/awt/AWTAccessor$WindowAccessor
++sun/awt/AWTAutoShutdown
++sun/awt/AWTIcon32_java_icon16_png
++sun/awt/AWTIcon32_java_icon24_png
++sun/awt/AWTIcon32_java_icon32_png
++sun/awt/AWTIcon32_java_icon48_png
++sun/awt/AWTIcon64_java_icon16_png
++sun/awt/AWTIcon64_java_icon24_png
++sun/awt/AWTIcon64_java_icon32_png
++sun/awt/AWTIcon64_java_icon48_png
++sun/awt/AppContext
++sun/awt/AppContext$1
++sun/awt/AppContext$2
++sun/awt/AppContext$3
++sun/awt/AppContext$6
++sun/awt/AppContext$GetAppContextLock
++sun/awt/AppContext$State
++sun/awt/CausedFocusEvent
++sun/awt/CausedFocusEvent$Cause
++sun/awt/ComponentFactory
++sun/awt/ConstrainableGraphics
++sun/awt/DisplayChangedListener
++sun/awt/EmbeddedFrame
++sun/awt/EventQueueDelegate
++sun/awt/EventQueueItem
++sun/awt/FontConfiguration
++sun/awt/FontConfiguration$1
++sun/awt/FontDescriptor
++sun/awt/GlobalCursorManager
++sun/awt/GlobalCursorManager$NativeUpdater
++sun/awt/HeadlessToolkit
++sun/awt/IconInfo
++sun/awt/InputMethodSupport
++sun/awt/KeyboardFocusManagerPeerImpl
++sun/awt/KeyboardFocusManagerPeerProvider
++sun/awt/LightweightFrame
++sun/awt/ModalExclude
++sun/awt/ModalityEvent
++sun/awt/ModalityListener
++sun/awt/MostRecentKeyValue
++sun/awt/Mutex
++sun/awt/NullComponentPeer
++sun/awt/OSInfo
++sun/awt/OSInfo$1
++sun/awt/OSInfo$OSType
++sun/awt/OSInfo$WindowsVersion
++sun/awt/PaintEventDispatcher
++sun/awt/PeerEvent
++sun/awt/PostEventQueue
++sun/awt/RepaintArea
++sun/awt/RequestFocusController
++sun/awt/SubRegionShowable
++sun/awt/SunDisplayChanger
++sun/awt/SunGraphicsCallback
++sun/awt/SunHints
++sun/awt/SunHints$Key
++sun/awt/SunHints$LCDContrastKey
++sun/awt/SunHints$Value
++sun/awt/SunToolkit
++sun/awt/SunToolkit$1
++sun/awt/SunToolkit$ModalityListenerList
++sun/awt/TimedWindowEvent
++sun/awt/UNIXToolkit
++sun/awt/WindowClosingListener
++sun/awt/WindowClosingSupport
++sun/awt/X11/AwtGraphicsConfigData
++sun/awt/X11/AwtScreenData
++sun/awt/X11/MotifColorUtilities
++sun/awt/X11/MotifDnDConstants
++sun/awt/X11/MotifDnDDragSourceProtocol
++sun/awt/X11/MotifDnDDropTargetProtocol
++sun/awt/X11/Native
++sun/awt/X11/Native$1
++sun/awt/X11/OwnershipListener
++sun/awt/X11/PropMwmHints
++sun/awt/X11/UnsafeXDisposerRecord
++sun/awt/X11/WindowDimensions
++sun/awt/X11/WindowPropertyGetter
++sun/awt/X11/XAWTXSettings
++sun/awt/X11/XAnyEvent
++sun/awt/X11/XAtom
++sun/awt/X11/XAtomList
++sun/awt/X11/XAwtState
++sun/awt/X11/XBaseWindow
++sun/awt/X11/XBaseWindow$1
++sun/awt/X11/XBaseWindow$InitialiseState
++sun/awt/X11/XBaseWindow$StateLock
++sun/awt/X11/XCanvasPeer
++sun/awt/X11/XClientMessageEvent
++sun/awt/X11/XClipboard
++sun/awt/X11/XComponentPeer
++sun/awt/X11/XComponentPeer$1
++sun/awt/X11/XConfigureEvent
++sun/awt/X11/XContentWindow
++sun/awt/X11/XCreateWindowParams
++sun/awt/X11/XDecoratedPeer
++sun/awt/X11/XDnDConstants
++sun/awt/X11/XDnDDragSourceProtocol
++sun/awt/X11/XDnDDropTargetProtocol
++sun/awt/X11/XDragAndDropProtocols
++sun/awt/X11/XDragSourceContextPeer
++sun/awt/X11/XDragSourceProtocol
++sun/awt/X11/XDragSourceProtocolListener
++sun/awt/X11/XDropTargetContextPeer
++sun/awt/X11/XDropTargetContextPeer$XDropTargetProtocolListenerImpl
++sun/awt/X11/XDropTargetEventProcessor
++sun/awt/X11/XDropTargetProtocol
++sun/awt/X11/XDropTargetProtocolListener
++sun/awt/X11/XDropTargetRegistry
++sun/awt/X11/XEmbeddedFramePeer
++sun/awt/X11/XErrorEvent
++sun/awt/X11/XErrorHandler
++sun/awt/X11/XErrorHandler$IgnoreBadWindowHandler
++sun/awt/X11/XErrorHandler$VerifyChangePropertyHandler
++sun/awt/X11/XErrorHandler$XBaseErrorHandler
++sun/awt/X11/XErrorHandlerUtil
++sun/awt/X11/XEvent
++sun/awt/X11/XEventDispatcher
++sun/awt/X11/XExposeEvent
++sun/awt/X11/XFocusChangeEvent
++sun/awt/X11/XFocusProxyWindow
++sun/awt/X11/XFramePeer
++sun/awt/X11/XGlobalCursorManager
++sun/awt/X11/XInputMethod
++sun/awt/X11/XInputMethodDescriptor
++sun/awt/X11/XKeyboardFocusManagerPeer
++sun/awt/X11/XLabelPeer
++sun/awt/X11/XLayerProtocol
++sun/awt/X11/XMSelection
++sun/awt/X11/XMSelection$1
++sun/awt/X11/XMSelection$3
++sun/awt/X11/XMSelectionListener
++sun/awt/X11/XModifierKeymap
++sun/awt/X11/XNETProtocol
++sun/awt/X11/XPanelPeer
++sun/awt/X11/XPropertyCache
++sun/awt/X11/XPropertyEvent
++sun/awt/X11/XProtocol
++sun/awt/X11/XRepaintArea
++sun/awt/X11/XReparentEvent
++sun/awt/X11/XRootWindow
++sun/awt/X11/XSelection
++sun/awt/X11/XSelection$IncrementalTransferHandler
++sun/awt/X11/XSelection$SelectionEventHandler
++sun/awt/X11/XSetWindowAttributes
++sun/awt/X11/XSizeHints
++sun/awt/X11/XStateProtocol
++sun/awt/X11/XSystemTrayPeer
++sun/awt/X11/XToolkit
++sun/awt/X11/XToolkit$1
++sun/awt/X11/XToolkit$2
++sun/awt/X11/XToolkit$2$1
++sun/awt/X11/XToolkit$3
++sun/awt/X11/XToolkit$4
++sun/awt/X11/XToolkit$5
++sun/awt/X11/XTranslateCoordinates
++sun/awt/X11/XUnmapEvent
++sun/awt/X11/XVisibilityEvent
++sun/awt/X11/XVisualInfo
++sun/awt/X11/XWINProtocol
++sun/awt/X11/XWM
++sun/awt/X11/XWM$1
++sun/awt/X11/XWMHints
++sun/awt/X11/XWindow
++sun/awt/X11/XWindowAttributes
++sun/awt/X11/XWindowAttributesData
++sun/awt/X11/XWindowPeer
++sun/awt/X11/XWindowPeer$2
++sun/awt/X11/XWindowPeer$4
++sun/awt/X11/XWrapperBase
++sun/awt/X11/XlibUtil
++sun/awt/X11/XlibWrapper
++sun/awt/X11ComponentPeer
++sun/awt/X11FontManager
++sun/awt/X11GraphicsConfig
++sun/awt/X11GraphicsConfig$X11GCDisposerRecord
++sun/awt/X11GraphicsDevice
++sun/awt/X11GraphicsEnvironment
++sun/awt/X11GraphicsEnvironment$1
++sun/awt/X11InputMethod
++sun/awt/X11InputMethodDescriptor
++sun/awt/XSettings
++sun/awt/XSettings$Update
++sun/awt/datatransfer/DataTransferer
++sun/awt/datatransfer/DataTransferer$1
++sun/awt/datatransfer/DataTransferer$CharsetComparator
++sun/awt/datatransfer/DataTransferer$IndexOrderComparator
++sun/awt/datatransfer/DataTransferer$IndexedComparator
++sun/awt/datatransfer/DataTransferer$RMI
++sun/awt/datatransfer/DataTransferer$StandardEncodingsHolder
++sun/awt/datatransfer/SunClipboard
++sun/awt/datatransfer/ToolkitThreadBlockedHandler
++sun/awt/datatransfer/TransferableProxy
++sun/awt/dnd/SunDragSourceContextPeer
++sun/awt/dnd/SunDropTargetContextPeer
++sun/awt/dnd/SunDropTargetEvent
++sun/awt/event/IgnorePaintEvent
++sun/awt/geom/PathConsumer2D
++sun/awt/im/CompositionAreaHandler
++sun/awt/im/ExecutableInputMethodManager
++sun/awt/im/ExecutableInputMethodManager$3
++sun/awt/im/InputContext
++sun/awt/im/InputMethodAdapter
++sun/awt/im/InputMethodContext
++sun/awt/im/InputMethodLocator
++sun/awt/im/InputMethodManager
++sun/awt/im/InputMethodWindow
++sun/awt/image/BufImgSurfaceData
++sun/awt/image/BufImgSurfaceData$ICMColorData
++sun/awt/image/BufImgSurfaceManager
++sun/awt/image/BufferedImageGraphicsConfig
++sun/awt/image/ByteComponentRaster
++sun/awt/image/ByteInterleavedRaster
++sun/awt/image/BytePackedRaster
++sun/awt/image/FetcherInfo
++sun/awt/image/GifFrame
++sun/awt/image/GifImageDecoder
++sun/awt/image/ImageConsumerQueue
++sun/awt/image/ImageDecoder
++sun/awt/image/ImageDecoder$1
++sun/awt/image/ImageFetchable
++sun/awt/image/ImageFetcher
++sun/awt/image/ImageFetcher$1
++sun/awt/image/ImageRepresentation
++sun/awt/image/ImageWatched
++sun/awt/image/ImageWatched$Link
++sun/awt/image/ImageWatched$WeakLink
++sun/awt/image/InputStreamImageSource
++sun/awt/image/IntegerComponentRaster
++sun/awt/image/IntegerInterleavedRaster
++sun/awt/image/NativeLibLoader
++sun/awt/image/NativeLibLoader$1
++sun/awt/image/OffScreenImage
++sun/awt/image/OffScreenImageSource
++sun/awt/image/PNGFilterInputStream
++sun/awt/image/PNGImageDecoder
++sun/awt/image/PixelConverter
++sun/awt/image/PixelConverter$Argb
++sun/awt/image/PixelConverter$ArgbBm
++sun/awt/image/PixelConverter$ArgbPre
++sun/awt/image/PixelConverter$Bgrx
++sun/awt/image/PixelConverter$ByteGray
++sun/awt/image/PixelConverter$Rgba
++sun/awt/image/PixelConverter$RgbaPre
++sun/awt/image/PixelConverter$Rgbx
++sun/awt/image/PixelConverter$Ushort4444Argb
++sun/awt/image/PixelConverter$Ushort555Rgb
++sun/awt/image/PixelConverter$Ushort555Rgbx
++sun/awt/image/PixelConverter$Ushort565Rgb
++sun/awt/image/PixelConverter$UshortGray
++sun/awt/image/PixelConverter$Xbgr
++sun/awt/image/PixelConverter$Xrgb
++sun/awt/image/SunVolatileImage
++sun/awt/image/SunWritableRaster
++sun/awt/image/SunWritableRaster$DataStealer
++sun/awt/image/SurfaceManager
++sun/awt/image/SurfaceManager$FlushableCacheData
++sun/awt/image/SurfaceManager$ImageAccessor
++sun/awt/image/SurfaceManager$ProxiedGraphicsConfig
++sun/awt/image/ToolkitImage
++sun/awt/image/URLImageSource
++sun/awt/image/VolatileSurfaceManager
++sun/awt/motif/MFontConfiguration
++sun/awt/resources/awt
++sun/awt/util/IdentityArrayList
++sun/awt/util/IdentityLinkedList
++sun/awt/util/IdentityLinkedList$Entry
++sun/awt/util/IdentityLinkedList$ListItr
++sun/font/AttributeValues
++sun/font/CMap$CMapFormat12
++sun/font/CMap$NullCMapClass
++sun/font/CharToGlyphMapper
++sun/font/CompositeFont
++sun/font/CompositeFontDescriptor
++sun/font/CompositeGlyphMapper
++sun/font/CompositeStrike
++sun/font/CoreMetrics
++sun/font/EAttribute
++sun/font/FcFontConfiguration
++sun/font/FileFont
++sun/font/FileFontStrike
++sun/font/Font2D
++sun/font/Font2DHandle
++sun/font/FontAccess
++sun/font/FontConfigManager
++sun/font/FontConfigManager$FcCompFont
++sun/font/FontConfigManager$FontConfigFont
++sun/font/FontConfigManager$FontConfigInfo
++sun/font/FontDesignMetrics
++sun/font/FontDesignMetrics$KeyReference
++sun/font/FontDesignMetrics$MetricsKey
++sun/font/FontFamily
++sun/font/FontLineMetrics
++sun/font/FontManager
++sun/font/FontManagerFactory
++sun/font/FontManagerFactory$1
++sun/font/FontManagerForSGE
++sun/font/FontManagerNativeLibrary
++sun/font/FontManagerNativeLibrary$1
++sun/font/FontScaler
++sun/font/FontStrike
++sun/font/FontStrikeDesc
++sun/font/FontStrikeDisposer
++sun/font/FontUtilities
++sun/font/FontUtilities$1
++sun/font/GlyphDisposedListener
++sun/font/GlyphList
++sun/font/PhysicalFont
++sun/font/PhysicalStrike
++sun/font/StandardGlyphVector
++sun/font/StandardGlyphVector$GlyphStrike
++sun/font/StrikeCache
++sun/font/StrikeCache$1
++sun/font/StrikeCache$DisposableStrike
++sun/font/StrikeCache$SoftDisposerRef
++sun/font/StrikeMetrics
++sun/font/SunFontManager
++sun/font/SunFontManager$1
++sun/font/SunFontManager$11
++sun/font/SunFontManager$13
++sun/font/SunFontManager$2
++sun/font/SunFontManager$3
++sun/font/SunFontManager$FontRegistrationInfo
++sun/font/SunFontManager$T1Filter
++sun/font/SunFontManager$TTFilter
++sun/font/TrueTypeFont
++sun/font/TrueTypeFont$1
++sun/font/TrueTypeFont$DirectoryEntry
++sun/font/TrueTypeFont$TTDisposerRecord
++sun/font/TrueTypeGlyphMapper
++sun/font/Type1Font
++sun/font/Type1Font$1
++sun/font/X11TextRenderer
++sun/font/XRGlyphCache
++sun/font/XRGlyphCacheEntry
++sun/font/XRTextRenderer
++sun/java2d/BackBufferCapsProvider
++sun/java2d/DefaultDisposerRecord
++sun/java2d/DestSurfaceProvider
++sun/java2d/Disposer
++sun/java2d/Disposer$1
++sun/java2d/Disposer$2
++sun/java2d/Disposer$PollDisposable
++sun/java2d/DisposerRecord
++sun/java2d/DisposerTarget
++sun/java2d/FontSupport
++sun/java2d/InvalidPipeException
++sun/java2d/NullSurfaceData
++sun/java2d/StateTrackable
++sun/java2d/StateTrackable$State
++sun/java2d/StateTrackableDelegate
++sun/java2d/StateTrackableDelegate$1
++sun/java2d/StateTrackableDelegate$2
++sun/java2d/StateTracker
++sun/java2d/StateTracker$1
++sun/java2d/StateTracker$2
++sun/java2d/SunGraphics2D
++sun/java2d/SunGraphicsEnvironment
++sun/java2d/SunGraphicsEnvironment$1
++sun/java2d/Surface
++sun/java2d/SurfaceData
++sun/java2d/SurfaceData$PixelToPgramLoopConverter
++sun/java2d/SurfaceData$PixelToShapeLoopConverter
++sun/java2d/SurfaceDataProxy
++sun/java2d/SurfaceDataProxy$1
++sun/java2d/SurfaceManagerFactory
++sun/java2d/UnixSurfaceManagerFactory
++sun/java2d/cmm/CMSManager
++sun/java2d/cmm/ProfileActivator
++sun/java2d/cmm/ProfileDeferralInfo
++sun/java2d/cmm/ProfileDeferralMgr
++sun/java2d/jules/JulesPathBuf
++sun/java2d/jules/JulesPathBuf$1
++sun/java2d/loops/Blit
++sun/java2d/loops/BlitBg
++sun/java2d/loops/CompositeType
++sun/java2d/loops/CustomComponent
++sun/java2d/loops/DrawGlyphList
++sun/java2d/loops/DrawGlyphListAA
++sun/java2d/loops/DrawGlyphListLCD
++sun/java2d/loops/DrawLine
++sun/java2d/loops/DrawParallelogram
++sun/java2d/loops/DrawPath
++sun/java2d/loops/DrawPolygons
++sun/java2d/loops/DrawRect
++sun/java2d/loops/FillParallelogram
++sun/java2d/loops/FillPath
++sun/java2d/loops/FillRect
++sun/java2d/loops/FillSpans
++sun/java2d/loops/FontInfo
++sun/java2d/loops/GeneralRenderer
++sun/java2d/loops/GraphicsPrimitive
++sun/java2d/loops/GraphicsPrimitiveMgr
++sun/java2d/loops/GraphicsPrimitiveMgr$1
++sun/java2d/loops/GraphicsPrimitiveMgr$2
++sun/java2d/loops/GraphicsPrimitiveMgr$PrimitiveSpec
++sun/java2d/loops/GraphicsPrimitiveProxy
++sun/java2d/loops/MaskBlit
++sun/java2d/loops/MaskFill
++sun/java2d/loops/ProcessPath
++sun/java2d/loops/ProcessPath$1
++sun/java2d/loops/ProcessPath$ActiveEdgeList
++sun/java2d/loops/ProcessPath$DrawHandler
++sun/java2d/loops/ProcessPath$Edge
++sun/java2d/loops/ProcessPath$EndSubPathHandler
++sun/java2d/loops/ProcessPath$FillData
++sun/java2d/loops/ProcessPath$FillProcessHandler
++sun/java2d/loops/ProcessPath$Point
++sun/java2d/loops/ProcessPath$ProcessHandler
++sun/java2d/loops/RenderCache
++sun/java2d/loops/RenderCache$Entry
++sun/java2d/loops/RenderLoops
++sun/java2d/loops/ScaledBlit
++sun/java2d/loops/SurfaceType
++sun/java2d/loops/TransformBlit
++sun/java2d/loops/TransformHelper
++sun/java2d/loops/XORComposite
++sun/java2d/opengl/GLXGraphicsConfig
++sun/java2d/opengl/OGLAnyCompositeBlit
++sun/java2d/opengl/OGLBlitLoops
++sun/java2d/opengl/OGLContext
++sun/java2d/opengl/OGLContext$OGLContextCaps
++sun/java2d/opengl/OGLDrawImage
++sun/java2d/opengl/OGLGeneralBlit
++sun/java2d/opengl/OGLGraphicsConfig
++sun/java2d/opengl/OGLMaskBlit
++sun/java2d/opengl/OGLMaskFill
++sun/java2d/opengl/OGLRTTSurfaceToSurfaceBlit
++sun/java2d/opengl/OGLRTTSurfaceToSurfaceScale
++sun/java2d/opengl/OGLRTTSurfaceToSurfaceTransform
++sun/java2d/opengl/OGLRenderQueue
++sun/java2d/opengl/OGLRenderQueue$1
++sun/java2d/opengl/OGLRenderQueue$QueueFlusher
++sun/java2d/opengl/OGLRenderer
++sun/java2d/opengl/OGLSurfaceData
++sun/java2d/opengl/OGLSurfaceData$1
++sun/java2d/opengl/OGLSurfaceDataProxy
++sun/java2d/opengl/OGLSurfaceToSurfaceBlit
++sun/java2d/opengl/OGLSurfaceToSurfaceScale
++sun/java2d/opengl/OGLSurfaceToSurfaceTransform
++sun/java2d/opengl/OGLSurfaceToSwBlit
++sun/java2d/opengl/OGLSwToSurfaceBlit
++sun/java2d/opengl/OGLSwToSurfaceScale
++sun/java2d/opengl/OGLSwToSurfaceTransform
++sun/java2d/opengl/OGLSwToTextureBlit
++sun/java2d/opengl/OGLTextRenderer
++sun/java2d/opengl/OGLTextureToSurfaceBlit
++sun/java2d/opengl/OGLTextureToSurfaceScale
++sun/java2d/opengl/OGLTextureToSurfaceTransform
++sun/java2d/pipe/AAShapePipe
++sun/java2d/pipe/AATextRenderer
++sun/java2d/pipe/AlphaColorPipe
++sun/java2d/pipe/AlphaPaintPipe
++sun/java2d/pipe/BufferedContext
++sun/java2d/pipe/BufferedMaskBlit
++sun/java2d/pipe/BufferedMaskFill
++sun/java2d/pipe/BufferedPaints
++sun/java2d/pipe/BufferedRenderPipe
++sun/java2d/pipe/BufferedRenderPipe$AAParallelogramPipe
++sun/java2d/pipe/BufferedRenderPipe$BufferedDrawHandler
++sun/java2d/pipe/BufferedTextPipe
++sun/java2d/pipe/CompositePipe
++sun/java2d/pipe/DrawImage
++sun/java2d/pipe/DrawImagePipe
++sun/java2d/pipe/GeneralCompositePipe
++sun/java2d/pipe/GlyphListLoopPipe
++sun/java2d/pipe/GlyphListPipe
++sun/java2d/pipe/LCDTextRenderer
++sun/java2d/pipe/LoopBasedPipe
++sun/java2d/pipe/LoopPipe
++sun/java2d/pipe/NullPipe
++sun/java2d/pipe/OutlineTextRenderer
++sun/java2d/pipe/ParallelogramPipe
++sun/java2d/pipe/PixelDrawPipe
++sun/java2d/pipe/PixelFillPipe
++sun/java2d/pipe/PixelToParallelogramConverter
++sun/java2d/pipe/PixelToShapeConverter
++sun/java2d/pipe/Region
++sun/java2d/pipe/Region$ImmutableRegion
++sun/java2d/pipe/RegionIterator
++sun/java2d/pipe/RenderBuffer
++sun/java2d/pipe/RenderQueue
++sun/java2d/pipe/RenderingEngine
++sun/java2d/pipe/RenderingEngine$1
++sun/java2d/pipe/ShapeDrawPipe
++sun/java2d/pipe/ShapeSpanIterator
++sun/java2d/pipe/SolidTextRenderer
++sun/java2d/pipe/SpanClipRenderer
++sun/java2d/pipe/SpanIterator
++sun/java2d/pipe/SpanShapeRenderer
++sun/java2d/pipe/SpanShapeRenderer$Composite
++sun/java2d/pipe/TextPipe
++sun/java2d/pipe/TextRenderer
++sun/java2d/pipe/ValidatePipe
++sun/java2d/pipe/hw/AccelGraphicsConfig
++sun/java2d/pipe/hw/AccelSurface
++sun/java2d/pipe/hw/BufferedContextProvider
++sun/java2d/pipe/hw/ContextCapabilities
++sun/java2d/x11/X11Renderer
++sun/java2d/x11/X11SurfaceData
++sun/java2d/x11/X11SurfaceData$LazyPipe
++sun/java2d/x11/X11SurfaceData$X11WindowSurfaceData
++sun/java2d/x11/X11VolatileSurfaceManager
++sun/java2d/x11/XSurfaceData
++sun/java2d/xr/DirtyRegion
++sun/java2d/xr/GrowableEltArray
++sun/java2d/xr/GrowableIntArray
++sun/java2d/xr/GrowableRectArray
++sun/java2d/xr/MaskTile
++sun/java2d/xr/MaskTileManager
++sun/java2d/xr/MutableInteger
++sun/java2d/xr/XRBackend
++sun/java2d/xr/XRBackendNative
++sun/java2d/xr/XRColor
++sun/java2d/xr/XRCompositeManager
++sun/java2d/xr/XRCompositeManager$1
++sun/java2d/xr/XRDrawImage
++sun/java2d/xr/XRDrawLine
++sun/java2d/xr/XRGraphicsConfig
++sun/java2d/xr/XRMaskBlit
++sun/java2d/xr/XRMaskFill
++sun/java2d/xr/XRMaskImage
++sun/java2d/xr/XRPMBlit
++sun/java2d/xr/XRPMBlitLoops
++sun/java2d/xr/XRPMScaledBlit
++sun/java2d/xr/XRPMTransformedBlit
++sun/java2d/xr/XRPaints
++sun/java2d/xr/XRPaints$XRGradient
++sun/java2d/xr/XRPaints$XRLinearGradient
++sun/java2d/xr/XRPaints$XRRadialGradient
++sun/java2d/xr/XRPaints$XRTexture
++sun/java2d/xr/XRRenderer
++sun/java2d/xr/XRRenderer$XRDrawHandler
++sun/java2d/xr/XRSolidSrcPict
++sun/java2d/xr/XRSurfaceData
++sun/java2d/xr/XRSurfaceData$XRInternalSurfaceData
++sun/java2d/xr/XRSurfaceData$XRPixmapSurfaceData
++sun/java2d/xr/XRSurfaceData$XRWindowSurfaceData
++sun/java2d/xr/XRSurfaceDataProxy
++sun/java2d/xr/XRUtils
++sun/java2d/xr/XRVolatileSurfaceManager
++sun/java2d/xr/XrSwToPMBlit
++sun/java2d/xr/XrSwToPMScaledBlit
++sun/java2d/xr/XrSwToPMTransformedBlit
++sun/launcher/LauncherHelper
++sun/launcher/LauncherHelper$FXHelper
++sun/misc/ASCIICaseInsensitiveComparator
++sun/misc/Cleaner
++sun/misc/CompoundEnumeration
++sun/misc/ExtensionDependency
++sun/misc/FDBigInteger
++sun/misc/FileURLMapper
++sun/misc/FloatingDecimal
++sun/misc/FloatingDecimal$1
++sun/misc/FloatingDecimal$ASCIIToBinaryBuffer
++sun/misc/FloatingDecimal$ASCIIToBinaryConverter
++sun/misc/FloatingDecimal$BinaryToASCIIBuffer
++sun/misc/FloatingDecimal$BinaryToASCIIConverter
++sun/misc/FloatingDecimal$ExceptionalBinaryToASCIIBuffer
++sun/misc/FloatingDecimal$PreparedASCIIToBinaryBuffer
++sun/misc/IOUtils
++sun/misc/JarIndex
++sun/misc/JavaAWTAccess
++sun/misc/JavaIOFileDescriptorAccess
++sun/misc/JavaLangAccess
++sun/misc/JavaNetAccess
++sun/misc/JavaNioAccess
++sun/misc/JavaSecurityAccess
++sun/misc/JavaSecurityProtectionDomainAccess
++sun/misc/JavaUtilJarAccess
++sun/misc/JavaUtilZipFileAccess
++sun/misc/Launcher
++sun/misc/Launcher$AppClassLoader
++sun/misc/Launcher$AppClassLoader$1
++sun/misc/Launcher$BootClassPathHolder
++sun/misc/Launcher$BootClassPathHolder$1
++sun/misc/Launcher$ExtClassLoader
++sun/misc/Launcher$ExtClassLoader$1
++sun/misc/Launcher$Factory
++sun/misc/MetaIndex
++sun/misc/NativeSignalHandler
++sun/misc/OSEnvironment
++sun/misc/Perf
++sun/misc/Perf$GetPerfAction
++sun/misc/PerfCounter
++sun/misc/PerfCounter$CoreCounters
++sun/misc/PerformanceLogger
++sun/misc/PerformanceLogger$TimeData
++sun/misc/Resource
++sun/misc/SharedSecrets
++sun/misc/Signal
++sun/misc/SignalHandler
++sun/misc/SoftCache
++sun/misc/SoftCache$ValueCell
++sun/misc/URLClassPath
++sun/misc/URLClassPath$1
++sun/misc/URLClassPath$2
++sun/misc/URLClassPath$3
++sun/misc/URLClassPath$FileLoader
++sun/misc/URLClassPath$JarLoader
++sun/misc/URLClassPath$JarLoader$1
++sun/misc/URLClassPath$JarLoader$2
++sun/misc/URLClassPath$Loader
++sun/misc/Unsafe
++sun/misc/VM
++sun/misc/Version
++sun/net/DefaultProgressMeteringPolicy
++sun/net/InetAddressCachePolicy
++sun/net/InetAddressCachePolicy$1
++sun/net/InetAddressCachePolicy$2
++sun/net/NetHooks
++sun/net/NetHooks$Provider
++sun/net/NetProperties
++sun/net/NetProperties$1
++sun/net/ProgressMeteringPolicy
++sun/net/ProgressMonitor
++sun/net/ResourceManager
++sun/net/sdp/SdpProvider
++sun/net/spi/DefaultProxySelector
++sun/net/spi/DefaultProxySelector$1
++sun/net/spi/DefaultProxySelector$3
++sun/net/spi/DefaultProxySelector$NonProxyInfo
++sun/net/spi/nameservice/NameService
++sun/net/util/IPAddressUtil
++sun/net/util/URLUtil
++sun/net/www/MessageHeader
++sun/net/www/MimeEntry
++sun/net/www/MimeTable
++sun/net/www/MimeTable$1
++sun/net/www/MimeTable$DefaultInstanceHolder
++sun/net/www/MimeTable$DefaultInstanceHolder$1
++sun/net/www/ParseUtil
++sun/net/www/URLConnection
++sun/net/www/protocol/file/FileURLConnection
++sun/net/www/protocol/file/Handler
++sun/net/www/protocol/http/Handler
++sun/net/www/protocol/jar/Handler
++sun/net/www/protocol/jar/JarFileFactory
++sun/net/www/protocol/jar/JarURLConnection
++sun/net/www/protocol/jar/JarURLConnection$JarURLInputStream
++sun/net/www/protocol/jar/URLJarFile
++sun/net/www/protocol/jar/URLJarFile$URLJarFileCloseController
++sun/net/www/protocol/jar/URLJarFile$URLJarFileEntry
++sun/nio/ByteBuffered
++sun/nio/ch/DirectBuffer
++sun/nio/ch/FileChannelImpl
++sun/nio/ch/FileChannelImpl$Unmapper
++sun/nio/ch/FileDispatcher
++sun/nio/ch/FileDispatcherImpl
++sun/nio/ch/IOStatus
++sun/nio/ch/IOUtil
++sun/nio/ch/IOUtil$1
++sun/nio/ch/Interruptible
++sun/nio/ch/NativeDispatcher
++sun/nio/ch/NativeThread
++sun/nio/ch/NativeThreadSet
++sun/nio/ch/Util
++sun/nio/ch/Util$1
++sun/nio/ch/Util$4
++sun/nio/ch/Util$BufferCache
++sun/nio/cs/AbstractCharsetProvider
++sun/nio/cs/ArrayDecoder
++sun/nio/cs/ArrayEncoder
++sun/nio/cs/FastCharsetProvider
++sun/nio/cs/HistoricallyNamedCharset
++sun/nio/cs/ISO_8859_1
++sun/nio/cs/ISO_8859_1$Decoder
++sun/nio/cs/ISO_8859_1$Encoder
++sun/nio/cs/StandardCharsets
++sun/nio/cs/StandardCharsets$Aliases
++sun/nio/cs/StandardCharsets$Cache
++sun/nio/cs/StandardCharsets$Classes
++sun/nio/cs/StreamDecoder
++sun/nio/cs/StreamEncoder
++sun/nio/cs/Surrogate
++sun/nio/cs/Surrogate$Parser
++sun/nio/cs/US_ASCII
++sun/nio/cs/US_ASCII$Decoder
++sun/nio/cs/UTF_16
++sun/nio/cs/UTF_16$Decoder
++sun/nio/cs/UTF_16BE
++sun/nio/cs/UTF_16LE
++sun/nio/cs/UTF_8
++sun/nio/cs/UTF_8$Decoder
++sun/nio/cs/UTF_8$Encoder
++sun/nio/cs/Unicode
++sun/nio/cs/UnicodeDecoder
++sun/nio/cs/ext/DelegatableDecoder
++sun/nio/cs/ext/DoubleByte
++sun/nio/cs/ext/DoubleByte$Decoder
++sun/nio/cs/ext/EUC_KR
++sun/nio/cs/ext/ExtendedCharsets
++sun/print/PrinterGraphicsConfig
++sun/reflect/AccessorGenerator
++sun/reflect/BootstrapConstructorAccessorImpl
++sun/reflect/ByteVector
++sun/reflect/ByteVectorFactory
++sun/reflect/ByteVectorImpl
++sun/reflect/CallerSensitive
++sun/reflect/ClassDefiner
++sun/reflect/ClassDefiner$1
++sun/reflect/ClassFileAssembler
++sun/reflect/ClassFileConstants
++sun/reflect/ConstantPool
++sun/reflect/ConstructorAccessor
++sun/reflect/ConstructorAccessorImpl
++sun/reflect/DelegatingClassLoader
++sun/reflect/DelegatingConstructorAccessorImpl
++sun/reflect/DelegatingMethodAccessorImpl
++sun/reflect/FieldAccessor
++sun/reflect/FieldAccessorImpl
++sun/reflect/Label
++sun/reflect/Label$PatchInfo
++sun/reflect/LangReflectAccess
++sun/reflect/MagicAccessorImpl
++sun/reflect/MethodAccessor
++sun/reflect/MethodAccessorGenerator
++sun/reflect/MethodAccessorGenerator$1
++sun/reflect/MethodAccessorImpl
++sun/reflect/NativeConstructorAccessorImpl
++sun/reflect/NativeMethodAccessorImpl
++sun/reflect/Reflection
++sun/reflect/ReflectionFactory
++sun/reflect/ReflectionFactory$1
++sun/reflect/ReflectionFactory$GetReflectionFactoryAction
++sun/reflect/SerializationConstructorAccessorImpl
++sun/reflect/UTF8
++sun/reflect/UnsafeBooleanFieldAccessorImpl
++sun/reflect/UnsafeFieldAccessorFactory
++sun/reflect/UnsafeFieldAccessorImpl
++sun/reflect/UnsafeObjectFieldAccessorImpl
++sun/reflect/UnsafeQualifiedStaticFieldAccessorImpl
++sun/reflect/UnsafeQualifiedStaticIntegerFieldAccessorImpl
++sun/reflect/UnsafeQualifiedStaticLongFieldAccessorImpl
++sun/reflect/UnsafeQualifiedStaticObjectFieldAccessorImpl
++sun/reflect/UnsafeStaticFieldAccessorImpl
++sun/reflect/annotation/AnnotationType
++sun/reflect/generics/repository/AbstractRepository
++sun/reflect/generics/repository/ClassRepository
++sun/reflect/generics/repository/GenericDeclRepository
++sun/reflect/misc/MethodUtil
++sun/reflect/misc/MethodUtil$1
++sun/reflect/misc/ReflectUtil
++sun/security/action/GetBooleanAction
++sun/security/action/GetIntegerAction
++sun/security/action/GetPropertyAction
++sun/security/action/PutAllAction
++sun/security/jca/GetInstance
++sun/security/jca/GetInstance$Instance
++sun/security/jca/ProviderConfig
++sun/security/jca/ProviderConfig$1
++sun/security/jca/ProviderConfig$2
++sun/security/jca/ProviderConfig$3
++sun/security/jca/ProviderList
++sun/security/jca/ProviderList$1
++sun/security/jca/ProviderList$2
++sun/security/jca/ProviderList$3
++sun/security/jca/ProviderList$ServiceList
++sun/security/jca/ProviderList$ServiceList$1
++sun/security/jca/Providers
++sun/security/jca/ServiceId
++sun/security/pkcs/ContentInfo
++sun/security/pkcs/PKCS7
++sun/security/pkcs/PKCS8Key
++sun/security/pkcs/PKCS9Attribute
++sun/security/pkcs/SignerInfo
++sun/security/provider/ByteArrayAccess
++sun/security/provider/DSA
++sun/security/provider/DSA$LegacyDSA
++sun/security/provider/DSA$SHA1withDSA
++sun/security/provider/DSAKeyFactory
++sun/security/provider/DSAParameters
++sun/security/provider/DSAPublicKey
++sun/security/provider/DSAPublicKeyImpl
++sun/security/provider/DigestBase
++sun/security/provider/NativePRNG
++sun/security/provider/NativePRNG$1
++sun/security/provider/NativePRNG$2
++sun/security/provider/NativePRNG$Blocking
++sun/security/provider/NativePRNG$NonBlocking
++sun/security/provider/NativePRNG$RandomIO
++sun/security/provider/NativePRNG$Variant
++sun/security/provider/SHA
++sun/security/provider/SHA2
++sun/security/provider/SHA2$SHA256
++sun/security/provider/Sun
++sun/security/provider/SunEntries
++sun/security/provider/SunEntries$1
++sun/security/provider/X509Factory
++sun/security/provider/certpath/X509CertPath
++sun/security/rsa/RSACore
++sun/security/rsa/RSAKeyFactory
++sun/security/rsa/RSAPadding
++sun/security/rsa/RSAPrivateCrtKeyImpl
++sun/security/rsa/RSAPrivateKeyImpl
++sun/security/rsa/RSAPublicKeyImpl
++sun/security/rsa/RSASignature
++sun/security/rsa/RSASignature$SHA256withRSA
++sun/security/rsa/SunRsaSign
++sun/security/rsa/SunRsaSignEntries
++sun/security/util/BitArray
++sun/security/util/ByteArrayLexOrder
++sun/security/util/ByteArrayTagOrder
++sun/security/util/Cache
++sun/security/util/Cache$EqualByteArray
++sun/security/util/Debug
++sun/security/util/DerEncoder
++sun/security/util/DerIndefLenConverter
++sun/security/util/DerInputBuffer
++sun/security/util/DerInputStream
++sun/security/util/DerOutputStream
++sun/security/util/DerValue
++sun/security/util/Length
++sun/security/util/ManifestDigester
++sun/security/util/ManifestDigester$Entry
++sun/security/util/ManifestDigester$Position
++sun/security/util/ManifestEntryVerifier
++sun/security/util/ManifestEntryVerifier$SunProviderHolder
++sun/security/util/MemoryCache
++sun/security/util/MemoryCache$CacheEntry
++sun/security/util/MemoryCache$HardCacheEntry
++sun/security/util/MemoryCache$SoftCacheEntry
++sun/security/util/ObjectIdentifier
++sun/security/util/PropertyExpander
++sun/security/util/SignatureFileVerifier
++sun/security/x509/AVA
++sun/security/x509/AVAKeyword
++sun/security/x509/AlgorithmId
++sun/security/x509/AuthorityKeyIdentifierExtension
++sun/security/x509/BasicConstraintsExtension
++sun/security/x509/CertAttrSet
++sun/security/x509/CertificateAlgorithmId
++sun/security/x509/CertificateExtensions
++sun/security/x509/CertificateSerialNumber
++sun/security/x509/CertificateValidity
++sun/security/x509/CertificateVersion
++sun/security/x509/CertificateX509Key
++sun/security/x509/Extension
++sun/security/x509/GeneralName
++sun/security/x509/GeneralNameInterface
++sun/security/x509/GeneralNames
++sun/security/x509/KeyIdentifier
++sun/security/x509/KeyUsageExtension
++sun/security/x509/NetscapeCertTypeExtension
++sun/security/x509/NetscapeCertTypeExtension$MapEntry
++sun/security/x509/OIDMap
++sun/security/x509/OIDMap$OIDInfo
++sun/security/x509/PKIXExtensions
++sun/security/x509/RDN
++sun/security/x509/RFC822Name
++sun/security/x509/SerialNumber
++sun/security/x509/SubjectAlternativeNameExtension
++sun/security/x509/SubjectKeyIdentifierExtension
++sun/security/x509/X500Name
++sun/security/x509/X500Name$1
++sun/security/x509/X509AttributeName
++sun/security/x509/X509CertImpl
++sun/security/x509/X509CertInfo
++sun/security/x509/X509Key
++sun/swing/DefaultLookup
++sun/swing/ImageIconUIResource
++sun/swing/JLightweightFrame
++sun/swing/MenuItemLayoutHelper
++sun/swing/MenuItemLayoutHelper$ColumnAlignment
++sun/swing/MenuItemLayoutHelper$LayoutResult
++sun/swing/MenuItemLayoutHelper$RectSize
++sun/swing/PrintColorUIResource
++sun/swing/StringUIClientPropertyKey
++sun/swing/SwingAccessor
++sun/swing/SwingAccessor$JTextComponentAccessor
++sun/swing/SwingLazyValue
++sun/swing/SwingLazyValue$1
++sun/swing/SwingUtilities2
++sun/swing/SwingUtilities2$2
++sun/swing/SwingUtilities2$AATextInfo
++sun/swing/SwingUtilities2$LSBCacheEntry
++sun/swing/UIAction
++sun/swing/UIClientPropertyKey
++sun/swing/table/DefaultTableCellHeaderRenderer
++sun/swing/table/DefaultTableCellHeaderRenderer$EmptyIcon
++sun/text/ComposedCharIter
++sun/text/IntHashtable
++sun/text/UCompactIntArray
++sun/text/normalizer/CharTrie
++sun/text/normalizer/CharTrie$FriendAgent
++sun/text/normalizer/ICUBinary
++sun/text/normalizer/ICUBinary$Authenticate
++sun/text/normalizer/ICUData
++sun/text/normalizer/IntTrie
++sun/text/normalizer/NormalizerBase
++sun/text/normalizer/NormalizerBase$1
++sun/text/normalizer/NormalizerBase$Mode
++sun/text/normalizer/NormalizerBase$NFCMode
++sun/text/normalizer/NormalizerBase$NFDMode
++sun/text/normalizer/NormalizerBase$NFKCMode
++sun/text/normalizer/NormalizerBase$NFKDMode
++sun/text/normalizer/NormalizerBase$QuickCheckResult
++sun/text/normalizer/NormalizerDataReader
++sun/text/normalizer/NormalizerImpl
++sun/text/normalizer/NormalizerImpl$AuxTrieImpl
++sun/text/normalizer/NormalizerImpl$DecomposeArgs
++sun/text/normalizer/NormalizerImpl$FCDTrieImpl
++sun/text/normalizer/NormalizerImpl$NormTrieImpl
++sun/text/normalizer/Trie
++sun/text/normalizer/Trie$DataManipulate
++sun/text/normalizer/UTF16
++sun/text/normalizer/UnicodeMatcher
++sun/text/normalizer/UnicodeSet
++sun/text/resources/CollationData
++sun/text/resources/FormatData
++sun/text/resources/en/FormatData_en
++sun/text/resources/en/FormatData_en_US
++sun/util/CoreResourceBundleControl
++sun/util/PreHashedMap
++sun/util/ResourceBundleEnumeration
++sun/util/calendar/AbstractCalendar
++sun/util/calendar/BaseCalendar
++sun/util/calendar/BaseCalendar$Date
++sun/util/calendar/CalendarDate
++sun/util/calendar/CalendarSystem
++sun/util/calendar/CalendarUtils
++sun/util/calendar/Gregorian
++sun/util/calendar/Gregorian$Date
++sun/util/calendar/ZoneInfo
++sun/util/calendar/ZoneInfoFile
++sun/util/calendar/ZoneInfoFile$1
++sun/util/calendar/ZoneInfoFile$Checksum
++sun/util/calendar/ZoneInfoFile$ZoneOffsetTransitionRule
++sun/util/locale/BaseLocale
++sun/util/locale/BaseLocale$Cache
++sun/util/locale/BaseLocale$Key
++sun/util/locale/LanguageTag
++sun/util/locale/LocaleObjectCache
++sun/util/locale/LocaleObjectCache$CacheEntry
++sun/util/locale/LocaleUtils
++sun/util/locale/provider/AuxLocaleProviderAdapter
++sun/util/locale/provider/AuxLocaleProviderAdapter$NullProvider
++sun/util/locale/provider/AvailableLanguageTags
++sun/util/locale/provider/CalendarDataProviderImpl
++sun/util/locale/provider/CalendarDataUtility
++sun/util/locale/provider/CalendarDataUtility$CalendarWeekParameterGetter
++sun/util/locale/provider/CalendarProviderImpl
++sun/util/locale/provider/CollatorProviderImpl
++sun/util/locale/provider/CurrencyNameProviderImpl
++sun/util/locale/provider/DateFormatSymbolsProviderImpl
++sun/util/locale/provider/DecimalFormatSymbolsProviderImpl
++sun/util/locale/provider/JRELocaleProviderAdapter
++sun/util/locale/provider/JRELocaleProviderAdapter$1
++sun/util/locale/provider/LocaleDataMetaInfo
++sun/util/locale/provider/LocaleProviderAdapter
++sun/util/locale/provider/LocaleProviderAdapter$1
++sun/util/locale/provider/LocaleProviderAdapter$Type
++sun/util/locale/provider/LocaleResources
++sun/util/locale/provider/LocaleResources$ResourceReference
++sun/util/locale/provider/LocaleServiceProviderPool
++sun/util/locale/provider/LocaleServiceProviderPool$LocalizedObjectGetter
++sun/util/locale/provider/NumberFormatProviderImpl
++sun/util/locale/provider/ResourceBundleBasedAdapter
++sun/util/locale/provider/SPILocaleProviderAdapter
++sun/util/locale/provider/SPILocaleProviderAdapter$1
++sun/util/locale/provider/TimeZoneNameProviderImpl
++sun/util/locale/provider/TimeZoneNameUtility
++sun/util/locale/provider/TimeZoneNameUtility$TimeZoneNameGetter
++sun/util/logging/LoggingProxy
++sun/util/logging/LoggingSupport
++sun/util/logging/LoggingSupport$1
++sun/util/logging/LoggingSupport$2
++sun/util/logging/PlatformLogger
++sun/util/logging/PlatformLogger$1
++sun/util/logging/PlatformLogger$DefaultLoggerProxy
++sun/util/logging/PlatformLogger$JavaLoggerProxy
++sun/util/logging/PlatformLogger$Level
++sun/util/logging/PlatformLogger$LoggerProxy
++sun/util/logging/resources/logging
++sun/util/resources/CalendarData
++sun/util/resources/CurrencyNames
++sun/util/resources/LocaleData
++sun/util/resources/LocaleData$1
++sun/util/resources/LocaleData$LocaleDataResourceBundleControl
++sun/util/resources/LocaleNamesBundle
++sun/util/resources/OpenListResourceBundle
++sun/util/resources/ParallelListResourceBundle
++sun/util/resources/ParallelListResourceBundle$KeySet
++sun/util/resources/TimeZoneNames
++sun/util/resources/TimeZoneNamesBundle
++sun/util/resources/en/CalendarData_en
++sun/util/resources/en/CurrencyNames_en_US
++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.
+ endif
+
++ifeq ($(OPENJDK_TARGET_OS), bsd)
++ GENDATA_FONT_CONFIG_SRC_DIR := \
++ $(JDK_TOPDIR)/src/solaris/classes/sun/awt/fontconfigs
++ GENDATA_FONT_CONFIG_SRC_FILES := fontconfig.properties
++ GENDATA_FONT_CONFIG_SRC_PREFIX := bsd.
++endif
++
+ ###
+
+ $(GENDATA_FONT_CONFIG_DST)/%.src: \
+--- jdk/make/lib/Awt2dLibraries.gmk
++++ jdk/make/lib/Awt2dLibraries.gmk
+@@ -305,7 +305,7 @@
+ debug_trace.c \
+ debug_util.c
+
+-ifneq (, $(filter $(OPENJDK_TARGET_OS), solaris linux))
++ifneq (, $(filter $(OPENJDK_TARGET_OS), solaris linux bsd))
+ 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), \
+ LDFLAGS_SUFFIX_linux := -ljvm $(LIBM) $(LIBDL) -ljava, \
+ LDFLAGS_SUFFIX_solaris := -ljvm $(LIBM) $(LIBDL) -ljava -lc, \
++ LDFLAGS_SUFFIX_bsd := -ljvm $(LIBM) -ljava, \
+ LDFLAGS_SUFFIX_macosx := -lmlib_image -ljvm $(LIBM) \
+ -framework Cocoa \
+ -framework OpenGL \
+@@ -550,6 +551,16 @@
+ endif
+ endif
+
++ ifeq ($(OPENJDK_TARGET_OS), bsd)
++ ifndef OPENJDK
++ include $(JDK_TOPDIR)/make/closed/xawt.gmk
++ endif
++
++ ifeq ($(DISABLE_XRENDER), true)
++ LIBAWT_XAWT_CFLAGS += -DDISABLE_XRENDER_BY_DEFAULT=true
++ endif
++ endif
++
+ ifeq ($(MILESTONE), internal)
+ LIBAWT_XAWT_CFLAGS += -DINTERNAL_BUILD
+ endif
+@@ -619,6 +630,11 @@
+ LIBAWT_XAWT_LDFLAGS += -lpthread
+ endif
+
++ ifeq ($(OPENJDK_TARGET_OS), bsd)
++ # To match old build, add this to LDFLAGS instead of suffix.
++ LIBAWT_XAWT_LDFLAGS += -pthread
++ endif
++
+ $(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, \
+ LDFLAGS_SUFFIX_macosx := $(LIBM) -lawt -ljava -ljvm, \
+ LDFLAGS_SUFFIX_linux := -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" \
+@@ -821,6 +838,7 @@
+ LDFLAGS_SUFFIX_solaris := -lawt -lawt_xawt -lc $(LIBM) $(LIBCXX) -ljava -ljvm, \
+ LDFLAGS_SUFFIX_macosx := -lawt $(LIBM) $(LIBCXX) -undefined dynamic_lookup \
+ -ljava -ljvm, \
++ LDFLAGS_SUFFIX_bsd := -lawt $(LIBM) $(LIBCXX) -ljava -ljvm -lc, \
+ LDFLAGS_SUFFIX_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib gdi32.lib \
+ $(WIN_AWT_LIB), \
+ VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
+@@ -963,6 +981,7 @@
+ CFLAGS := $(CFLAGS_JDKLIB), \
+ CFLAGS_linux := $(HEADLESS_CFLAG), \
+ CFLAGS_macosx := -I$(JDK_TOPDIR)/src/solaris/native/sun/awt, \
++ CFLAGS_bsd := $(HEADLESS_CFLAG), \
+ MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjawt/mapfile-vers, \
+ LDFLAGS := $(LDFLAGS_JDKLIB) \
+ $(call SET_SHARED_LIBRARY_ORIGIN), \
+@@ -971,6 +990,7 @@
+ LDFLAGS_SUFFIX_solaris := $(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX) -lXrender, \
+ LDFLAGS_SUFFIX_macosx := -Xlinker -rpath -Xlinker @loader_path $(JAWT_LIBS) \
+ -framework Cocoa $(LDFLAGS_JDKLIB_SUFFIX), \
++ LDFLAGS_SUFFIX_bsd := $(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX), \
+ OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjawt, \
+ DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
+
+@@ -1169,6 +1189,7 @@
+ REORDER := $(LIBAWT_HEADLESS_REORDER), \
+ LDFLAGS_SUFFIX_linux := -ljvm -lawt -lm $(LIBDL) -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)))
+
+--- jdk/make/lib/CoreLibraries.gmk
++++ jdk/make/lib/CoreLibraries.gmk
+@@ -81,7 +81,7 @@
+ endif
+
+ LIBVERIFY_OPTIMIZATION := HIGH
+-ifneq ($(findstring $(OPENJDK_TARGET_OS), solaris linux), )
++ifneq ($(findstring $(OPENJDK_TARGET_OS), solaris linux bsd), )
+ ifeq ($(ENABLE_DEBUG_SYMBOLS), true)
+ LIBVERIFY_OPTIMIZATION := LOW
+ endif
+@@ -202,6 +202,7 @@
+ -framework CoreFoundation \
+ -framework Foundation \
+ -framework Security -framework SystemConfiguration, \
++ LDFLAGS_SUFFIX_bsd := $(BUILD_LIBFDLIBM), \
+ LDFLAGS_SUFFIX_windows := -export:winFileHandleOpen -export:handleLseek \
+ jvm.lib $(BUILD_LIBFDLIBM) $(WIN_VERIFY_LIB) \
+ shell32.lib delayimp.lib -DELAYLOAD:shell32.dll \
+@@ -267,6 +268,7 @@
+ LDFLAGS_SUFFIX_linux := -ljvm -ljava $(LIBZ), \
+ LDFLAGS_SUFFIX_solaris := -ljvm -ljava $(LIBZ) -lc, \
+ LDFLAGS_SUFFIX_macosx := $(LIBZ) -ljava -ljvm, \
++ LDFLAGS_SUFFIX_bsd := -ljvm -ljava $(LIBZ), \
+ VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
+ RC_FLAGS := $(RC_FLAGS) \
+ -D "JDK_FNAME=zip.dll" \
+@@ -412,9 +414,11 @@
+ LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \
+ LDFLAGS_solaris := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \
+ LDFLAGS_macosx := -framework Cocoa -framework Security -framework ApplicationServices, \
++ LDFLAGS_bsd := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \
+ LDFLAGS_SUFFIX_solaris := $(LIBZ) $(LIBDL) -lc, \
+ LDFLAGS_SUFFIX_linux := $(LIBZ) $(LIBDL) -lc -lpthread, \
+ LDFLAGS_SUFFIX_macosx := $(LIBZ), \
++ LDFLAGS_SUFFIX_bsd := $(LIBZ) -pthread, \
+ LDFLAGS_SUFFIX_windows := \
+ -export:JLI_Launch \
+ -export:JLI_ManifestIterate \
+@@ -479,6 +483,23 @@
+ $(call install-file)
+
+ BUILD_LIBRARIES += $(JDK_OUTPUTDIR)/objs/libjli_static.a
++else ifeq ($(OPENJDK_TARGET_OS), bsd)
++ $(eval $(call SetupNativeCompilation,BUILD_LIBJLI_STATIC, \
++ LIBRARY := jli_static, \
++ OUTPUT_DIR := $(JDK_OUTPUTDIR)/objs, \
++ SRC := $(BUILD_LIBJLI_SRC_DIRS), \
++ INCLUDE_FILES := $(BUILD_LIBJLI_FILES), \
++ LANG := C, \
++ OPTIMIZATION := HIGH, \
++ CFLAGS := $(CFLAGS_JDKLIB) $(LIBJLI_CFLAGS), \
++ LDFLAGS := -nostdlib -r, \
++ OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjli_static, \
++ DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
++
++ $(JDK_OUTPUTDIR)/objs/libjli_static.a: $(BUILD_LIBJLI_STATIC)
++ $(call install-file)
++
++ BUILD_LIBRARIES += $(JDK_OUTPUTDIR)/objs/libjli_static.a
+ endif
+
+ ##########################################################################################
+@@ -496,6 +517,7 @@
+ LDFLAGS := $(LDFLAGS_JDKLIB) \
+ $(call SET_SHARED_LIBRARY_ORIGIN), \
+ LDFLAGS_macosx := -liconv, \
++ LDFLAGS_bsd := -liconv, \
+ LDFLAGS_SUFFIX_windows := -export:nptInitialize -export:nptTerminate, \
+ LDFLAGS_SUFFIX_solaris := -lc, \
+ VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
+--- jdk/make/lib/NetworkingLibraries.gmk
++++ jdk/make/lib/NetworkingLibraries.gmk
+@@ -46,6 +46,10 @@
+ LIBNET_EXCLUDE_FILES += bsd_close.c
+ endif
+
++ifneq ($(OPENJDK_TARGET_OS), bsd)
++ LIBNET_EXCLUDE_FILES += bsd_close.c
++endif
++
+ ifeq ($(OPENJDK_TARGET_OS), windows)
+ LIBNET_EXCLUDE_FILES += PlainSocketImpl.c PlainDatagramSocketImpl.c SdpSupport.c
+ else
+@@ -69,6 +73,7 @@
+ LDFLAGS_SUFFIX_macosx := -ljvm -ljava, \
+ LDFLAGS_SUFFIX_solaris := -ljvm -ljava -lnsl -lsocket $(LIBDL) -lc, \
+ LDFLAGS_SUFFIX_linux := $(LIBDL) -ljvm -lpthread -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 @@
+ UnixNativeDispatcher.c
+ endif
+
++ifeq ($(OPENJDK_TARGET_OS), bsd)
++ BUILD_LIBNIO_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libnio/mapfile-$(OPENJDK_TARGET_OS)
++ BUILD_LIBNIO_FILES += \
++ BsdNativeDispatcher.c \
++ GnomeFileTypeDetector.c \
++ InheritedChannel.c \
++ KQueue.c \
++ KQueueArrayWrapper.c \
++ KQueuePort.c \
++ MagicFileTypeDetector.c \
++ NativeThread.c \
++ PollArrayWrapper.c \
++ UnixAsynchronousServerSocketChannelImpl.c \
++ UnixAsynchronousSocketChannelImpl.c \
++ UnixCopyFile.c \
++ UnixNativeDispatcher.c
++endif
++
+ 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_FILES += \
+ InheritedChannel.c \
+ NativeThread.c \
+@@ -130,6 +147,7 @@
+ LDFLAGS_SUFFIX_windows := jvm.lib ws2_32.lib $(WIN_JAVA_LIB) \
+ $(JDK_OUTPUTDIR)/objs/libnet/net.lib \
+ advapi32.lib, \
++ LDFLAGS_SUFFIX_bsd := -ljava -lnet -pthread, \
+ LDFLAGS_SUFFIX_macosx := -ljava -lnet -pthread -framework CoreFoundation, \
+ LDFLAGS_SUFFIX :=, \
+ VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
+@@ -176,6 +194,7 @@
+ LDFLAGS_SUFFIX_posix := -lnio -lnet, \
+ LDFLAGS_SUFFIX_solaris := -lsocket -ljava -ljvm -lc, \
+ LDFLAGS_SUFFIX_macosx := -ljava -ljvm, \
++ LDFLAGS_SUFFIX_bsd := -pthread -ljava -ljvm, \
+ OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libsctp, \
+ DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
+
+--- jdk/make/lib/ServiceabilityLibraries.gmk
++++ jdk/make/lib/ServiceabilityLibraries.gmk
+@@ -30,7 +30,7 @@
+ ifneq ($(OPENJDK_TARGET_OS), linux)
+ LIBATTACH_EXCLUDE_FILES += LinuxVirtualMachine.c
+ endif
+-ifneq ($(OPENJDK_TARGET_OS), macosx)
++ifeq (,$(findstring $(OPENJDK_TARGET_OS), bsd macosx))
+ LIBATTACH_EXCLUDE_FILES += BsdVirtualMachine.c
+ endif
+
+@@ -80,6 +80,7 @@
+ MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libdt_socket/mapfile-vers, \
+ LDFLAGS := $(LDFLAGS_JDKLIB) \
+ $(call SET_SHARED_LIBRARY_ORIGIN), \
++ LDFLAGS_SUFFIX_bsd := -pthread, \
+ LDFLAGS_SUFFIX_linux := -lpthread, \
+ LDFLAGS_SUFFIX_solaris := -lnsl -lsocket -lc, \
+ LDFLAGS_SUFFIX_windows := $(LDFLAGS_JDKLIB_SUFFIX) -export:jdwpTransport_OnLoad ws2_32.lib, \
+@@ -249,10 +250,12 @@
+ $(LIBINSTRUMENT_LDFLAGS), \
+ LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN,/jli), \
+ LDFLAGS_solaris := $(call SET_SHARED_LIBRARY_ORIGIN,/jli), \
++ LDFLAGS_bsd := $(call SET_SHARED_LIBRARY_ORIGIN,/jli), \
+ 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), \
++ LDFLAGS_SUFFIX_bsd := -liconv $(LIBZ) -L $(INSTALL_LIBRARIES_HERE)/jli -ljli, \
+ LDFLAGS_SUFFIX_solaris := $(LIBZ) -L $(INSTALL_LIBRARIES_HERE)/jli -ljli $(LIBDL) -lc, \
+ LDFLAGS_SUFFIX_linux := $(LIBZ) -L $(INSTALL_LIBRARIES_HERE)/jli -ljli $(LIBDL), \
+ VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
+@@ -293,8 +296,12 @@
+ BUILD_LIBMANAGEMENT_EXCLUDES += MacosxOperatingSystem.c
+ endif
+
++ifneq ($(OPENJDK_TARGET_OS), bsd)
++ BUILD_LIBMANAGEMENT_EXCLUDES += BsdOperatingSystem.c
++endif
++
+ LIBMANAGEMENT_OPTIMIZATION := HIGH
+-ifneq ($(findstring $(OPENJDK_TARGET_OS), solaris linux), )
++ifneq ($(findstring $(OPENJDK_TARGET_OS), solaris linux bsd), )
+ ifeq ($(ENABLE_DEBUG_SYMBOLS), true)
+ LIBMANAGEMENT_OPTIMIZATION := LOW
+ endif
+@@ -337,7 +344,7 @@
+ BUILD_LIBHPROF_LDFLAGS :=
+
+ LIBHPROF_OPTIMIZATION := HIGHEST
+-ifneq ($(findstring $(OPENJDK_TARGET_OS), solaris linux), )
++ifneq ($(findstring $(OPENJDK_TARGET_OS), solaris linux bsd), )
+ 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
+
++ifeq ($(OPENJDK_TARGET_OS), bsd)
++ EXTRA_SOUND_JNI_LIBS += jsoundalsa
++ LIBJSOUND_CFLAGS += -DX_PLATFORM=X_BSD
++endif # OPENJDK_TARGET_OS bsd
++
+ ifeq ($(OPENJDK_TARGET_OS), macosx)
+ LIBJSOUND_LANG := C++
+ LIBJSOUND_CFLAGS += -DX_PLATFORM=X_MACOSX \
+@@ -188,12 +193,14 @@
+ CFLAGS := $(CFLAGS_JDKLIB) $(ALSA_CFLAGS) \
+ $(LIBJSOUND_CFLAGS) \
+ -DUSE_DAUDIO=TRUE \
+- -DUSE_PORTS=TRUE \
+- -DUSE_PLATFORM_MIDI_OUT=TRUE \
++ -DUSE_PORTS=TRUE, \
++ CFLAGS_linux := -DUSE_PLATFORM_MIDI_OUT=TRUE \
+ -DUSE_PLATFORM_MIDI_IN=TRUE, \
++ CFLAGS_bsd := -I/usr/local/include, \
+ MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjsoundalsa/mapfile-vers, \
+ LDFLAGS := $(LDFLAGS_JDKLIB) \
+ $(call SET_SHARED_LIBRARY_ORIGIN), \
++ LDFLAGS_bsd := -L/usr/local/lib, \
+ 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
+@@ -33,6 +33,7 @@
+ environ; # Public symbols and required by Java run time
+ _environ;
+ __environ_lock;
++ __progname;
+ ___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
+@@ -33,6 +33,7 @@
+ environ; # Public symbols and required by Java run time
+ _environ;
+ __environ_lock;
++ __progname;
+
+ local:
+ *;
+--- jdk/make/mapfiles/libattach/mapfile-bsd
++++ jdk/make/mapfiles/libattach/mapfile-bsd
+@@ -0,0 +1,42 @@
++#
++# Copyright (c) 2005, 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.
++#
++
++# Define public interface.
++
++SUNWprivate_1.1 {
++ global:
++ Java_sun_tools_attach_BsdVirtualMachine_checkPermissions;
++ Java_sun_tools_attach_BsdVirtualMachine_close;
++ Java_sun_tools_attach_BsdVirtualMachine_connect;
++ Java_sun_tools_attach_BsdVirtualMachine_getTempDir;
++ Java_sun_tools_attach_BsdVirtualMachine_open;
++ Java_sun_tools_attach_BsdVirtualMachine_sendQuitTo;
++ Java_sun_tools_attach_BsdVirtualMachine_socket;
++ Java_sun_tools_attach_BsdVirtualMachine_read;
++ Java_sun_tools_attach_BsdVirtualMachine_write;
++ Java_sun_tools_attach_BsdVirtualMachine_createAttachFile;
++ local:
++ *;
++};
+--- jdk/make/mapfiles/libnio/mapfile-bsd
++++ jdk/make/mapfiles/libnio/mapfile-bsd
+@@ -0,0 +1,189 @@
++#
++# Copyright (c) 2001, 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.
++#
++
++SUNWprivate_1.1 {
++ global:
++ Java_java_nio_MappedByteBuffer_force0;
++ Java_java_nio_MappedByteBuffer_isLoaded0;
++ Java_java_nio_MappedByteBuffer_load0;
++ Java_sun_nio_ch_DatagramChannelImpl_disconnect0;
++ Java_sun_nio_ch_DatagramChannelImpl_initIDs;
++ Java_sun_nio_ch_DatagramChannelImpl_receive0;
++ Java_sun_nio_ch_DatagramChannelImpl_send0;
++ Java_sun_nio_ch_DatagramDispatcher_read0;
++ Java_sun_nio_ch_DatagramDispatcher_readv0;
++ Java_sun_nio_ch_DatagramDispatcher_write0;
++ Java_sun_nio_ch_DatagramDispatcher_writev0;
++ Java_sun_nio_ch_FileChannelImpl_close0;
++ Java_sun_nio_ch_FileChannelImpl_initIDs;
++ Java_sun_nio_ch_FileChannelImpl_map0;
++ Java_sun_nio_ch_FileChannelImpl_position0;
++ Java_sun_nio_ch_FileChannelImpl_transferTo0;
++ Java_sun_nio_ch_FileChannelImpl_unmap0;
++ Java_sun_nio_ch_FileDispatcherImpl_close0;
++ Java_sun_nio_ch_FileDispatcherImpl_closeIntFD;
++ Java_sun_nio_ch_FileDispatcherImpl_force0;
++ Java_sun_nio_ch_FileDispatcherImpl_init;
++ Java_sun_nio_ch_FileDispatcherImpl_lock0;
++ Java_sun_nio_ch_FileDispatcherImpl_preClose0;
++ Java_sun_nio_ch_FileDispatcherImpl_pread0;
++ Java_sun_nio_ch_FileDispatcherImpl_pwrite0;
++ Java_sun_nio_ch_FileDispatcherImpl_read0;
++ Java_sun_nio_ch_FileDispatcherImpl_readv0;
++ Java_sun_nio_ch_FileDispatcherImpl_release0;
++ Java_sun_nio_ch_FileDispatcherImpl_size0;
++ Java_sun_nio_ch_FileDispatcherImpl_truncate0;
++ Java_sun_nio_ch_FileDispatcherImpl_write0;
++ Java_sun_nio_ch_FileDispatcherImpl_writev0;
++ Java_sun_nio_ch_FileKey_init;
++ Java_sun_nio_ch_FileKey_initIDs;
++ Java_sun_nio_ch_IOUtil_configureBlocking;
++ Java_sun_nio_ch_IOUtil_drain;
++ Java_sun_nio_ch_IOUtil_fdLimit;
++ Java_sun_nio_ch_IOUtil_fdVal;
++ Java_sun_nio_ch_IOUtil_initIDs;
++ Java_sun_nio_ch_IOUtil_iovMax;
++ Java_sun_nio_ch_IOUtil_makePipe;
++ Java_sun_nio_ch_IOUtil_randomBytes;
++ Java_sun_nio_ch_IOUtil_setfdVal;
++ Java_sun_nio_ch_InheritedChannel_close0;
++ Java_sun_nio_ch_InheritedChannel_dup2;
++ Java_sun_nio_ch_InheritedChannel_dup;
++ Java_sun_nio_ch_InheritedChannel_open0;
++ Java_sun_nio_ch_InheritedChannel_peerAddress0;
++ Java_sun_nio_ch_InheritedChannel_peerPort0;
++ Java_sun_nio_ch_InheritedChannel_soType0;
++ Java_sun_nio_ch_KQueueArrayWrapper_init;
++ Java_sun_nio_ch_KQueueArrayWrapper_initStructSizes;
++ Java_sun_nio_ch_KQueueArrayWrapper_interrupt;
++ Java_sun_nio_ch_KQueueArrayWrapper_kevent0;
++ Java_sun_nio_ch_KQueueArrayWrapper_register0;
++ Java_sun_nio_ch_KQueuePort_close0;
++ Java_sun_nio_ch_KQueuePort_drain1;
++ Java_sun_nio_ch_KQueuePort_interrupt;
++ Java_sun_nio_ch_KQueuePort_socketpair;
++ Java_sun_nio_ch_KQueue_filterOffset;
++ Java_sun_nio_ch_KQueue_flagsOffset;
++ Java_sun_nio_ch_KQueue_identOffset;
++ Java_sun_nio_ch_KQueue_keventPoll;
++ Java_sun_nio_ch_KQueue_keventRegister;
++ Java_sun_nio_ch_KQueue_keventSize;
++ Java_sun_nio_ch_KQueue_kqueue;
++ Java_sun_nio_ch_NativeThread_current;
++ Java_sun_nio_ch_NativeThread_init;
++ Java_sun_nio_ch_NativeThread_signal;
++ Java_sun_nio_ch_Net_bind0;
++ Java_sun_nio_ch_Net_blockOrUnblock4;
++ Java_sun_nio_ch_Net_blockOrUnblock6;
++ Java_sun_nio_ch_Net_canIPv6SocketJoinIPv4Group0;
++ Java_sun_nio_ch_Net_canJoin6WithIPv4Group0;
++ Java_sun_nio_ch_Net_connect0;
++ Java_sun_nio_ch_Net_getIntOption0;
++ Java_sun_nio_ch_Net_getInterface4;
++ Java_sun_nio_ch_Net_getInterface6;
++ Java_sun_nio_ch_Net_initIDs;
++ Java_sun_nio_ch_Net_isExclusiveBindAvailable;
++ Java_sun_nio_ch_Net_isIPv6Available0;
++ Java_sun_nio_ch_Net_joinOrDrop4;
++ Java_sun_nio_ch_Net_joinOrDrop6;
++ Java_sun_nio_ch_Net_listen;
++ Java_sun_nio_ch_Net_localInetAddress;
++ Java_sun_nio_ch_Net_localPort;
++ Java_sun_nio_ch_Net_poll;
++ Java_sun_nio_ch_Net_setIntOption0;
++ Java_sun_nio_ch_Net_setInterface4;
++ Java_sun_nio_ch_Net_setInterface6;
++ Java_sun_nio_ch_Net_shutdown;
++ Java_sun_nio_ch_Net_socket0;
++ Java_sun_nio_ch_PollArrayWrapper_interrupt;
++ Java_sun_nio_ch_PollArrayWrapper_poll0;
++ Java_sun_nio_ch_ServerSocketChannelImpl_accept0;
++ Java_sun_nio_ch_ServerSocketChannelImpl_initIDs;
++ Java_sun_nio_ch_SocketChannelImpl_checkConnect;
++ Java_sun_nio_ch_SocketChannelImpl_sendOutOfBandData;
++ Java_sun_nio_ch_UnixAsynchronousServerSocketChannelImpl_accept0;
++ Java_sun_nio_ch_UnixAsynchronousServerSocketChannelImpl_initIDs;
++ Java_sun_nio_ch_UnixAsynchronousSocketChannelImpl_checkConnect;
++ Java_sun_nio_fs_BsdNativeDispatcher_endfsstat;
++ Java_sun_nio_fs_BsdNativeDispatcher_fsstatEntry;
++ Java_sun_nio_fs_BsdNativeDispatcher_getfsstat;
++ Java_sun_nio_fs_BsdNativeDispatcher_initIDs;
++ Java_sun_nio_fs_GnomeFileTypeDetector_initializeGio;
++ Java_sun_nio_fs_GnomeFileTypeDetector_initializeGnomeVfs;
++ Java_sun_nio_fs_GnomeFileTypeDetector_probeUsingGio;
++ Java_sun_nio_fs_GnomeFileTypeDetector_probeUsingGnomeVfs;
++ Java_sun_nio_fs_MagicFileTypeDetector_initialize0;
++ Java_sun_nio_fs_MagicFileTypeDetector_probe0;
++ Java_sun_nio_fs_UnixCopyFile_transfer;
++ Java_sun_nio_fs_UnixNativeDispatcher_access0;
++ Java_sun_nio_fs_UnixNativeDispatcher_chmod0;
++ Java_sun_nio_fs_UnixNativeDispatcher_chown0;
++ Java_sun_nio_fs_UnixNativeDispatcher_close;
++ Java_sun_nio_fs_UnixNativeDispatcher_closedir;
++ Java_sun_nio_fs_UnixNativeDispatcher_dup;
++ Java_sun_nio_fs_UnixNativeDispatcher_fchmod;
++ Java_sun_nio_fs_UnixNativeDispatcher_fchown;
++ Java_sun_nio_fs_UnixNativeDispatcher_fclose;
++ Java_sun_nio_fs_UnixNativeDispatcher_fdopendir;
++ Java_sun_nio_fs_UnixNativeDispatcher_fopen0;
++ Java_sun_nio_fs_UnixNativeDispatcher_fpathconf;
++ Java_sun_nio_fs_UnixNativeDispatcher_fstat;
++ Java_sun_nio_fs_UnixNativeDispatcher_fstatat0;
++ Java_sun_nio_fs_UnixNativeDispatcher_futimes;
++ Java_sun_nio_fs_UnixNativeDispatcher_getcwd;
++ Java_sun_nio_fs_UnixNativeDispatcher_getgrgid;
++ Java_sun_nio_fs_UnixNativeDispatcher_getgrnam0;
++ Java_sun_nio_fs_UnixNativeDispatcher_getpwnam0;
++ Java_sun_nio_fs_UnixNativeDispatcher_getpwuid;
++ Java_sun_nio_fs_UnixNativeDispatcher_init;
++ Java_sun_nio_fs_UnixNativeDispatcher_lchown0;
++ Java_sun_nio_fs_UnixNativeDispatcher_link0;
++ Java_sun_nio_fs_UnixNativeDispatcher_lstat0;
++ Java_sun_nio_fs_UnixNativeDispatcher_mkdir0;
++ Java_sun_nio_fs_UnixNativeDispatcher_mknod0;
++ Java_sun_nio_fs_UnixNativeDispatcher_open0;
++ Java_sun_nio_fs_UnixNativeDispatcher_openat0;
++ Java_sun_nio_fs_UnixNativeDispatcher_opendir0;
++ Java_sun_nio_fs_UnixNativeDispatcher_pathconf0;
++ Java_sun_nio_fs_UnixNativeDispatcher_read;
++ Java_sun_nio_fs_UnixNativeDispatcher_readdir;
++ Java_sun_nio_fs_UnixNativeDispatcher_readlink0;
++ Java_sun_nio_fs_UnixNativeDispatcher_realpath0;
++ Java_sun_nio_fs_UnixNativeDispatcher_rename0;
++ Java_sun_nio_fs_UnixNativeDispatcher_renameat0;
++ Java_sun_nio_fs_UnixNativeDispatcher_rmdir0;
++ Java_sun_nio_fs_UnixNativeDispatcher_stat0;
++ Java_sun_nio_fs_UnixNativeDispatcher_statvfs0;
++ Java_sun_nio_fs_UnixNativeDispatcher_strerror;
++ Java_sun_nio_fs_UnixNativeDispatcher_symlink0;
++ Java_sun_nio_fs_UnixNativeDispatcher_unlink0;
++ Java_sun_nio_fs_UnixNativeDispatcher_unlinkat0;
++ Java_sun_nio_fs_UnixNativeDispatcher_utimes0;
++ Java_sun_nio_fs_UnixNativeDispatcher_write;
++ handleSocketError;
++
++ local:
++ *;
++};
+--- jdk/make/mapfiles/libunpack/mapfile-vers-unpack200
++++ jdk/make/mapfiles/libunpack/mapfile-vers-unpack200
+@@ -26,6 +26,9 @@
+ # Define library interface.
+
+ SUNWprivate_1.1 {
++ global:
++ environ;
++ __progname;
+ local:
+ *;
+ };
+--- jdk/make/netbeans/common/bsd-sources.ent
++++ jdk/make/netbeans/common/bsd-sources.ent
+@@ -0,0 +1,45 @@
++<?xml version="1.0" encoding="UTF-8"?>
++
++<!--
++ Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
++
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions
++ are met:
++
++ - Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++
++ - Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++
++ - Neither the name of Oracle nor the names of its
++ contributors may be used to endorse or promote products derived
++ from this software without specific prior written permission.
++
++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
++ IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
++ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
++ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
++ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
++ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
++ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
++ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
++ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
++ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
++ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++-->
++
++<source-folder>
++ <label>Sources for BSD Platform</label>
++ <type>java</type>
++ <location>${root}/src/bsd/classes</location>
++ <includes>${includes}</includes>
++ <excludes>${excludes}</excludes>
++ <encoding>US-ASCII</encoding>
++</source-folder>
++<source-folder>
++ <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
+@@ -0,0 +1,39 @@
++<?xml version="1.0" encoding="UTF-8"?>
++
++<!--
++ Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
++
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions
++ are met:
++
++ - Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++
++ - Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++
++ - Neither the name of Oracle nor the names of its
++ contributors may be used to endorse or promote products derived
++ from this software without specific prior written permission.
++
++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
++ IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
++ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
++ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
++ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
++ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
++ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
++ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
++ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
++ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
++ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++-->
++
++<source-folder style="tree">
++ <label>Sources for BSD Platform</label>
++ <location>${root}/src/bsd/classes</location>
++ <includes>${includes}</includes>
++ <excludes>${excludes}</excludes>
++</source-folder>
+--- jdk/make/netbeans/j2se/nbproject/project.xml
++++ jdk/make/netbeans/j2se/nbproject/project.xml
+@@ -34,6 +34,7 @@
+ <!DOCTYPE project [
+ <!ENTITY properties SYSTEM "../../common/properties.ent">
+ <!ENTITY share-sources SYSTEM "../../common/share-sources.ent">
++ <!ENTITY bsd-sources SYSTEM "../../common/bsd-sources.ent">
+ <!ENTITY macosx-sources SYSTEM "../../common/macosx-sources.ent">
+ <!ENTITY unix-sources SYSTEM "../../common/unix-sources.ent">
+ <!ENTITY windows-sources SYSTEM "../../common/windows-sources.ent">
+@@ -41,6 +42,7 @@
+ <!ENTITY build-folder SYSTEM "../../common/build-folder.ent">
+ <!ENTITY standard-bindings SYSTEM "../../common/standard-bindings.ent">
+ <!ENTITY share-view SYSTEM "../../common/share-view.ent">
++ <!ENTITY bsd-view SYSTEM "../../common/bsd-view.ent">
+ <!ENTITY macosx-view SYSTEM "../../common/macosx-view.ent">
+ <!ENTITY unix-view SYSTEM "../../common/unix-view.ent">
+ <!ENTITY windows-view SYSTEM "../../common/windows-view.ent">
+@@ -60,6 +62,7 @@
+ </properties>
+ <folders>
+ &share-sources;
++ &bsd-sources;
+ &macosx-sources;
+ &unix-sources;
+ &windows-sources;
+@@ -86,6 +89,7 @@
+ <view>
+ <items>
+ &share-view;
++ &bsd-view;
+ &macosx-view;
+ &unix-view;
+ &windows-view;
+--- jdk/make/netbeans/common/java-data-native.ent
++++ jdk/make/netbeans/common/java-data-native.ent
+@@ -34,6 +34,7 @@
+ <java-data xmlns="http://www.netbeans.org/ns/freeform-project-java/4">
+ <compilation-unit>
+ <package-root>${root}/src/share/classes</package-root>
++ <package-root>${root}/src/bsd/classes</package-root>
+ <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
+@@ -32,16 +32,21 @@
+ -->
+
+ <project name="make" basedir="..">
+-
+- <target name="-make.init" depends="-init,-pre-init.linux,-pre-init.macosx,-pre-init.solaris,-pre-init.windows,-pre-init.macosx">
++
++ <target name="-make.init" depends="-init,-pre-init.linux,-pre-init.bsd,-pre-init.macosx,-pre-init.solaris,-pre-init.windows">
+ <property name="make.options" value=""/> <!-- default, can be overridden per user or per project -->
+ </target>
+-
++
+ <target name="-pre-init.linux" if="os.linux">
+ <property name="platform" value="linux"/>
+ <property name="make" value="make"/>
+ </target>
+
++ <target name="-pre-init.bsd" if="os.bsd">
++ <property name="platform" value="bsd"/>
++ <property name="make" value="gmake"/>
++ </target>
++
+ <target name="-pre-init.macosx" if="os.macosx">
+ <property name="platform" value="macosx"/>
+ <property name="make" value="make"/>
+@@ -56,7 +61,7 @@
+ <property name="platform" value="windows"/>
+ <property name="make" value="c:/cygwin/bin/make"/>
+ </target>
+-
++
+ <macrodef name="make-run">
+ <attribute name="target"/>
+ <attribute name="dir"/>
+--- jdk/make/netbeans/world/nbproject/project.xml
++++ jdk/make/netbeans/world/nbproject/project.xml
+@@ -34,12 +34,14 @@
+ <!DOCTYPE project [
+ <!ENTITY properties SYSTEM "../../common/properties.ent">
+ <!ENTITY share-sources SYSTEM "../../common/share-sources.ent">
++ <!ENTITY bsd-sources SYSTEM "../../common/bsd-sources.ent">
+ <!ENTITY macosx-sources SYSTEM "../../common/macosx-sources.ent">
+ <!ENTITY unix-sources SYSTEM "../../common/unix-sources.ent">
+ <!ENTITY windows-sources SYSTEM "../../common/windows-sources.ent">
+ <!ENTITY build-folder SYSTEM "../../common/build-folder.ent">
+ <!ENTITY standard-bindings SYSTEM "../../common/standard-bindings.ent">
+ <!ENTITY share-view SYSTEM "../../common/share-view.ent">
++ <!ENTITY bsd-view SYSTEM "../../common/bsd-view.ent">
+ <!ENTITY macosx-view SYSTEM "../../common/macosx-view.ent">
+ <!ENTITY unix-view SYSTEM "../../common/unix-view.ent">
+ <!ENTITY windows-view SYSTEM "../../common/windows-view.ent">
+@@ -58,6 +60,7 @@
+ </properties>
+ <folders>
+ &share-sources;
++ &bsd-sources;
+ &macosx-sources;
+ &unix-sources;
+ &windows-sources;
+@@ -69,6 +72,7 @@
+ <view>
+ <items>
+ &share-view;
++ &bsd-view;
+ &macosx-view;
+ &unix-view;
+ &windows-view;
+--- jdk/src/share/bin/jli_util.h
++++ jdk/src/share/bin/jli_util.h
+@@ -82,7 +82,7 @@
+ #define _LARGFILE64_SOURCE
+ #define JLI_Lseek lseek64
+ #endif
+-#ifdef MACOSX
++#ifdef _ALLBSD_SOURCE
+ #define JLI_Lseek lseek
+ #endif
+ #endif /* _WIN32 */
+--- jdk/src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java
++++ jdk/src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java
+@@ -1298,7 +1298,7 @@
+ String osName = AccessController.doPrivileged(
+ new GetPropertyAction("os.name"));
+ if ("SunOS".equals(osName) || "Linux".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/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 @@
+ #[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,498 @@
++#
++# This is the "master security properties file".
++#
++# An alternate java.security properties file may be specified
++# from the command line via the system property
++#
++# -Djava.security.properties=<URL>
++#
++# This properties file appends to the master security properties file.
++# If both properties files specify values for the same key, the value
++# from the command-line properties file is selected, as it is the last
++# one loaded.
++#
++# Also, if you specify
++#
++# -Djava.security.properties==<URL> (2 equals),
++#
++# then that properties file completely overrides the master security
++# properties file.
++#
++# To disable the ability to specify an additional properties file from
++# the command line, set the key security.overridePropertiesFile
++# to false in the master security properties file. It is set to true
++# by default.
++
++# In this file, various security properties are set for use by
++# java.security classes. This is where users can statically register
++# Cryptography Package Providers ("providers" for short). The term
++# "provider" refers to a package or set of packages that supply a
++# concrete implementation of a subset of the cryptography aspects of
++# the Java Security API. A provider may, for example, implement one or
++# more digital signature algorithms or message digest algorithms.
++#
++# Each provider must implement a subclass of the Provider class.
++# To register a provider in this master security properties file,
++# specify the Provider subclass name and priority in the format
++#
++# security.provider.<n>=<className>
++#
++# This declares a provider, and specifies its preference
++# order n. The preference order is the order in which providers are
++# searched for requested algorithms (when no specific provider is
++# requested). The order is 1-based; 1 is the most preferred, followed
++# by 2, and so on.
++#
++# <className> must specify the subclass of the Provider class whose
++# constructor sets the values of various properties that are required
++# for the Java Security API to look up the algorithms or other
++# facilities implemented by the provider.
++#
++# There must be at least one provider specification in java.security.
++# There is a default provider that comes standard with the JDK. It
++# is called the "SUN" provider, and its Provider subclass
++# named Sun appears in the sun.security.provider package. Thus, the
++# "SUN" provider is registered via the following:
++#
++# security.provider.1=sun.security.provider.Sun
++#
++# (The number 1 is used for the default provider.)
++#
++# Note: Providers can be dynamically registered instead by calls to
++# either the addProvider or insertProviderAt method in the Security
++# class.
++
++#
++# List of providers and their preference orders (see above):
++#
++security.provider.1=sun.security.provider.Sun
++security.provider.2=sun.security.rsa.SunRsaSign
++security.provider.3=sun.security.ec.SunEC
++security.provider.4=com.sun.net.ssl.internal.ssl.Provider
++security.provider.5=com.sun.crypto.provider.SunJCE
++security.provider.6=sun.security.jgss.SunProvider
++security.provider.7=com.sun.security.sasl.Provider
++security.provider.8=org.jcp.xml.dsig.internal.dom.XMLDSigRI
++security.provider.9=sun.security.smartcardio.SunPCSC
++
++#
++# Sun Provider SecureRandom seed source.
++#
++# Select the primary source of seed data for the "SHA1PRNG" and
++# "NativePRNG" SecureRandom implementations in the "Sun" provider.
++# (Other SecureRandom implementations might also use this property.)
++#
++# On Unix-like systems (for example, Solaris/Linux/MacOS), the
++# "NativePRNG" and "SHA1PRNG" implementations obtains seed data from
++# special device files such as file:/dev/random.
++#
++# On Windows systems, specifying the URLs "file:/dev/random" or
++# "file:/dev/urandom" will enable the native Microsoft CryptoAPI seeding
++# mechanism for SHA1PRNG.
++#
++# By default, an attempt is made to use the entropy gathering device
++# specified by the "securerandom.source" Security property. If an
++# exception occurs while accessing the specified URL:
++#
++# SHA1PRNG:
++# the traditional system/thread activity algorithm will be used.
++#
++# NativePRNG:
++# a default value of /dev/random will be used. If neither
++# are available, the implementation will be disabled.
++# "file" is the only currently supported protocol type.
++#
++# The entropy gathering device can also be specified with the System
++# property "java.security.egd". For example:
++#
++# % java -Djava.security.egd=file:/dev/random MainClass
++#
++# Specifying this System property will override the
++# "securerandom.source" Security property.
++#
++# In addition, if "file:/dev/random" or "file:/dev/urandom" is
++# specified, the "NativePRNG" implementation will be more preferred than
++# SHA1PRNG in the Sun provider.
++#
++securerandom.source=file:/dev/random
++
++#
++# A list of known strong SecureRandom implementations.
++#
++# To help guide applications in selecting a suitable strong
++# java.security.SecureRandom implementation, Java distributions should
++# indicate a list of known strong implementations using the property.
++#
++# This is a comma-separated list of algorithm and/or algorithm:provider
++# entries.
++#
++securerandom.strongAlgorithms=NativePRNGBlocking:SUN
++
++#
++# Class to instantiate as the javax.security.auth.login.Configuration
++# provider.
++#
++login.configuration.provider=sun.security.provider.ConfigFile
++
++#
++# Default login configuration file
++#
++#login.config.url.1=file:${user.home}/.java.login.config
++
++#
++# Class to instantiate as the system Policy. This is the name of the class
++# that will be used as the Policy object.
++#
++policy.provider=sun.security.provider.PolicyFile
++
++# The default is to have a single system-wide policy file,
++# and a policy file in the user's home directory.
++policy.url.1=file:${java.home}/lib/security/java.policy
++policy.url.2=file:${user.home}/.java.policy
++
++# whether or not we expand properties in the policy file
++# if this is set to false, properties (${...}) will not be expanded in policy
++# files.
++policy.expandProperties=true
++
++# whether or not we allow an extra policy to be passed on the command line
++# with -Djava.security.policy=somefile. Comment out this line to disable
++# this feature.
++policy.allowSystemProperty=true
++
++# whether or not we look into the IdentityScope for trusted Identities
++# when encountering a 1.1 signed JAR file. If the identity is found
++# and is trusted, we grant it AllPermission.
++policy.ignoreIdentityScope=false
++
++#
++# Default keystore type.
++#
++keystore.type=jks
++
++#
++# List of comma-separated packages that start with or equal this string
++# will cause a security exception to be thrown when
++# passed to checkPackageAccess unless the
++# corresponding RuntimePermission ("accessClassInPackage."+package) has
++# been granted.
++package.access=sun.,\
++ com.sun.xml.internal.,\
++ com.sun.imageio.,\
++ com.sun.istack.internal.,\
++ com.sun.jmx.,\
++ com.sun.media.sound.,\
++ com.sun.naming.internal.,\
++ com.sun.proxy.,\
++ com.sun.corba.se.,\
++ com.sun.org.apache.bcel.internal.,\
++ com.sun.org.apache.regexp.internal.,\
++ com.sun.org.apache.xerces.internal.,\
++ com.sun.org.apache.xpath.internal.,\
++ com.sun.org.apache.xalan.internal.extensions.,\
++ com.sun.org.apache.xalan.internal.lib.,\
++ com.sun.org.apache.xalan.internal.res.,\
++ com.sun.org.apache.xalan.internal.templates.,\
++ com.sun.org.apache.xalan.internal.utils.,\
++ com.sun.org.apache.xalan.internal.xslt.,\
++ com.sun.org.apache.xalan.internal.xsltc.cmdline.,\
++ com.sun.org.apache.xalan.internal.xsltc.compiler.,\
++ com.sun.org.apache.xalan.internal.xsltc.trax.,\
++ com.sun.org.apache.xalan.internal.xsltc.util.,\
++ com.sun.org.apache.xml.internal.res.,\
++ com.sun.org.apache.xml.internal.security.,\
++ com.sun.org.apache.xml.internal.serializer.utils.,\
++ com.sun.org.apache.xml.internal.utils.,\
++ com.sun.org.glassfish.,\
++ com.oracle.xmlns.internal.,\
++ com.oracle.webservices.internal.,\
++ oracle.jrockit.jfr.,\
++ org.jcp.xml.dsig.internal.,\
++ jdk.internal.,\
++ jdk.nashorn.internal.,\
++ jdk.nashorn.tools.
++
++
++#
++# List of comma-separated packages that start with or equal this string
++# will cause a security exception to be thrown when
++# passed to checkPackageDefinition unless the
++# corresponding RuntimePermission ("defineClassInPackage."+package) has
++# been granted.
++#
++# by default, none of the class loaders supplied with the JDK call
++# checkPackageDefinition.
++#
++package.definition=sun.,\
++ com.sun.xml.internal.,\
++ com.sun.imageio.,\
++ com.sun.istack.internal.,\
++ com.sun.jmx.,\
++ com.sun.media.sound.,\
++ com.sun.naming.internal.,\
++ com.sun.proxy.,\
++ com.sun.corba.se.,\
++ com.sun.org.apache.bcel.internal.,\
++ com.sun.org.apache.regexp.internal.,\
++ com.sun.org.apache.xerces.internal.,\
++ com.sun.org.apache.xpath.internal.,\
++ com.sun.org.apache.xalan.internal.extensions.,\
++ com.sun.org.apache.xalan.internal.lib.,\
++ com.sun.org.apache.xalan.internal.res.,\
++ com.sun.org.apache.xalan.internal.templates.,\
++ com.sun.org.apache.xalan.internal.utils.,\
++ com.sun.org.apache.xalan.internal.xslt.,\
++ com.sun.org.apache.xalan.internal.xsltc.cmdline.,\
++ com.sun.org.apache.xalan.internal.xsltc.compiler.,\
++ com.sun.org.apache.xalan.internal.xsltc.trax.,\
++ com.sun.org.apache.xalan.internal.xsltc.util.,\
++ com.sun.org.apache.xml.internal.res.,\
++ com.sun.org.apache.xml.internal.security.,\
++ com.sun.org.apache.xml.internal.serializer.utils.,\
++ com.sun.org.apache.xml.internal.utils.,\
++ com.sun.org.glassfish.,\
++ com.oracle.xmlns.internal.,\
++ com.oracle.webservices.internal.,\
++ oracle.jrockit.jfr.,\
++ org.jcp.xml.dsig.internal.,\
++ jdk.internal.,\
++ jdk.nashorn.internal.,\
++ jdk.nashorn.tools.
++
++
++#
++# Determines whether this properties file can be appended to
++# or overridden on the command line via -Djava.security.properties
++#
++security.overridePropertiesFile=true
++
++#
++# Determines the default key and trust manager factory algorithms for
++# the javax.net.ssl package.
++#
++ssl.KeyManagerFactory.algorithm=SunX509
++ssl.TrustManagerFactory.algorithm=PKIX
++
++#
++# The Java-level namelookup cache policy for successful lookups:
++#
++# any negative value: caching forever
++# any positive value: the number of seconds to cache an address for
++# zero: do not cache
++#
++# default value is forever (FOREVER). For security reasons, this
++# caching is made forever when a security manager is set. When a security
++# manager is not set, the default behavior in this implementation
++# is to cache for 30 seconds.
++#
++# NOTE: setting this to anything other than the default value can have
++# serious security implications. Do not set it unless
++# you are sure you are not exposed to DNS spoofing attack.
++#
++#networkaddress.cache.ttl=-1
++
++# The Java-level namelookup cache policy for failed lookups:
++#
++# any negative value: cache forever
++# any positive value: the number of seconds to cache negative lookup results
++# zero: do not cache
++#
++# In some Microsoft Windows networking environments that employ
++# the WINS name service in addition to DNS, name service lookups
++# that fail may take a noticeably long time to return (approx. 5 seconds).
++# For this reason the default caching policy is to maintain these
++# results for 10 seconds.
++#
++#
++networkaddress.cache.negative.ttl=10
++
++#
++# Properties to configure OCSP for certificate revocation checking
++#
++
++# Enable OCSP
++#
++# By default, OCSP is not used for certificate revocation checking.
++# This property enables the use of OCSP when set to the value "true".
++#
++# NOTE: SocketPermission is required to connect to an OCSP responder.
++#
++# Example,
++# ocsp.enable=true
++
++#
++# Location of the OCSP responder
++#
++# By default, the location of the OCSP responder is determined implicitly
++# from the certificate being validated. This property explicitly specifies
++# the location of the OCSP responder. The property is used when the
++# Authority Information Access extension (defined in RFC 3280) is absent
++# from the certificate or when it requires overriding.
++#
++# Example,
++# ocsp.responderURL=http://ocsp.example.net:80
++
++#
++# Subject name of the OCSP responder's certificate
++#
++# By default, the certificate of the OCSP responder is that of the issuer
++# of the certificate being validated. This property identifies the certificate
++# of the OCSP responder when the default does not apply. Its value is a string
++# distinguished name (defined in RFC 2253) which identifies a certificate in
++# the set of certificates supplied during cert path validation. In cases where
++# the subject name alone is not sufficient to uniquely identify the certificate
++# then both the "ocsp.responderCertIssuerName" and
++# "ocsp.responderCertSerialNumber" properties must be used instead. When this
++# property is set then those two properties are ignored.
++#
++# Example,
++# ocsp.responderCertSubjectName="CN=OCSP Responder, O=XYZ Corp"
++
++#
++# Issuer name of the OCSP responder's certificate
++#
++# By default, the certificate of the OCSP responder is that of the issuer
++# of the certificate being validated. This property identifies the certificate
++# of the OCSP responder when the default does not apply. Its value is a string
++# distinguished name (defined in RFC 2253) which identifies a certificate in
++# the set of certificates supplied during cert path validation. When this
++# property is set then the "ocsp.responderCertSerialNumber" property must also
++# be set. When the "ocsp.responderCertSubjectName" property is set then this
++# property is ignored.
++#
++# Example,
++# ocsp.responderCertIssuerName="CN=Enterprise CA, O=XYZ Corp"
++
++#
++# Serial number of the OCSP responder's certificate
++#
++# By default, the certificate of the OCSP responder is that of the issuer
++# of the certificate being validated. This property identifies the certificate
++# of the OCSP responder when the default does not apply. Its value is a string
++# of hexadecimal digits (colon or space separators may be present) which
++# identifies a certificate in the set of certificates supplied during cert path
++# validation. When this property is set then the "ocsp.responderCertIssuerName"
++# property must also be set. When the "ocsp.responderCertSubjectName" property
++# is set then this property is ignored.
++#
++# Example,
++# ocsp.responderCertSerialNumber=2A:FF:00
++
++#
++# Policy for failed Kerberos KDC lookups:
++#
++# When a KDC is unavailable (network error, service failure, etc), it is
++# put inside a blacklist and accessed less often for future requests. The
++# value (case-insensitive) for this policy can be:
++#
++# tryLast
++# KDCs in the blacklist are always tried after those not on the list.
++#
++# tryLess[:max_retries,timeout]
++# KDCs in the blacklist are still tried by their order in the configuration,
++# but with smaller max_retries and timeout values. max_retries and timeout
++# are optional numerical parameters (default 1 and 5000, which means once
++# and 5 seconds). Please notes that if any of the values defined here is
++# more than what is defined in krb5.conf, it will be ignored.
++#
++# Whenever a KDC is detected as available, it is removed from the blacklist.
++# The blacklist is reset when krb5.conf is reloaded. You can add
++# refreshKrb5Config=true to a JAAS configuration file so that krb5.conf is
++# reloaded whenever a JAAS authentication is attempted.
++#
++# Example,
++# krb5.kdc.bad.policy = tryLast
++# krb5.kdc.bad.policy = tryLess:2,2000
++krb5.kdc.bad.policy = tryLast
++
++# Algorithm restrictions for certification path (CertPath) processing
++#
++# In some environments, certain algorithms or key lengths may be undesirable
++# for certification path building and validation. For example, "MD2" is
++# generally no longer considered to be a secure hash algorithm. This section
++# describes the mechanism for disabling algorithms based on algorithm name
++# and/or key length. This includes algorithms used in certificates, as well
++# as revocation information such as CRLs and signed OCSP Responses.
++#
++# The syntax of the disabled algorithm string is described as this Java
++# BNF-style:
++# DisabledAlgorithms:
++# " DisabledAlgorithm { , DisabledAlgorithm } "
++#
++# DisabledAlgorithm:
++# AlgorithmName [Constraint]
++#
++# AlgorithmName:
++# (see below)
++#
++# Constraint:
++# KeySizeConstraint
++#
++# KeySizeConstraint:
++# keySize Operator DecimalInteger
++#
++# Operator:
++# <= | < | == | != | >= | >
++#
++# DecimalInteger:
++# DecimalDigits
++#
++# DecimalDigits:
++# DecimalDigit {DecimalDigit}
++#
++# DecimalDigit: one of
++# 1 2 3 4 5 6 7 8 9 0
++#
++# The "AlgorithmName" is the standard algorithm name of the disabled
++# algorithm. See "Java Cryptography Architecture Standard Algorithm Name
++# Documentation" for information about Standard Algorithm Names. Matching
++# is performed using a case-insensitive sub-element matching rule. (For
++# example, in "SHA1withECDSA" the sub-elements are "SHA1" for hashing and
++# "ECDSA" for signatures.) If the assertion "AlgorithmName" is a
++# sub-element of the certificate algorithm name, the algorithm will be
++# rejected during certification path building and validation. For example,
++# the assertion algorithm name "DSA" will disable all certificate algorithms
++# that rely on DSA, such as NONEwithDSA, SHA1withDSA. However, the assertion
++# will not disable algorithms related to "ECDSA".
++#
++# A "Constraint" provides further guidance for the algorithm being specified.
++# The "KeySizeConstraint" requires a key of a valid size range if the
++# "AlgorithmName" is of a key algorithm. The "DecimalInteger" indicates the
++# key size specified in number of bits. For example, "RSA keySize <= 1024"
++# indicates that any RSA key with key size less than or equal to 1024 bits
++# should be disabled, and "RSA keySize < 1024, RSA keySize > 2048" indicates
++# that any RSA key with key size less than 1024 or greater than 2048 should
++# be disabled. Note that the "KeySizeConstraint" only makes sense to key
++# algorithms.
++#
++# Note: This property is currently used by Oracle's PKIX implementation. It
++# is not guaranteed to be examined and used by other implementations.
++#
++# Example:
++# jdk.certpath.disabledAlgorithms=MD2, DSA, RSA keySize < 2048
++#
++#
++jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024
++
++# Algorithm restrictions for Secure Socket Layer/Transport Layer Security
++# (SSL/TLS) processing
++#
++# In some environments, certain algorithms or key lengths may be undesirable
++# when using SSL/TLS. This section describes the mechanism for disabling
++# algorithms during SSL/TLS security parameters negotiation, including cipher
++# suites selection, peer authentication and key exchange mechanisms.
++#
++# For PKI-based peer authentication and key exchange mechanisms, this list
++# of disabled algorithms will also be checked during certification path
++# building and validation, including algorithms used in certificates, as
++# well as revocation information such as CRLs and signed OCSP Responses.
++# This is in addition to the jdk.certpath.disabledAlgorithms property above.
++#
++# See the specification of "jdk.certpath.disabledAlgorithms" for the
++# syntax of the disabled algorithm string.
++#
++# Note: This property is currently used by Oracle's JSSE implementation.
++# It is not guaranteed to be examined and used by other implementations.
++#
++# Example:
++# jdk.tls.disabledAlgorithms=MD5, SHA1, DSA, RSA keySize < 2048
+--- jdk/src/share/native/sun/awt/medialib/mlib_sys.c
++++ jdk/src/share/native/sun/awt/medialib/mlib_sys.c
+@@ -26,7 +26,7 @@
+
+ #include <stdlib.h>
+ #include <string.h>
+-#ifdef MACOSX
++#ifdef _ALLBSD_SOURCE
+ #include <unistd.h>
+ #include <sys/param.h>
+ #else
+@@ -92,7 +92,7 @@
+ * alignment. -- from stdlib.h of MS VC++5.0.
+ */
+ return (void *) malloc(size);
+-#elif defined(MACOSX)
++#elif defined(_ALLBSD_SOURCE)
+ return valloc(size);
+ #else
+ return (void *) memalign(8, size);
+--- jdk/src/share/native/sun/management/DiagnosticCommandImpl.c
++++ jdk/src/share/native/sun/management/DiagnosticCommandImpl.c
+@@ -26,6 +26,7 @@
+ #include <jni.h>
+ #include "management.h"
+ #include "sun_management_DiagnosticCommandImpl.h"
++#include <stdlib.h>
+
+ JNIEXPORT void JNICALL Java_sun_management_DiagnosticCommandImpl_setNotificationEnabled
+ (JNIEnv *env, jobject dummy, jboolean enabled) {
+--- jdk/src/solaris/bin/ergo_i586.c
++++ jdk/src/solaris/bin/ergo_i586.c
+@@ -106,7 +106,7 @@
+
+ #endif /* __solaris__ */
+
+-#ifdef __linux__
++#if defined(__linux__) || defined(_ALLBSD_SOURCE)
+
+ /*
+ * 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
+@@ -928,9 +928,13 @@
+ }
+ }
+ }
+-#elif defined(__linux__)
++#elif defined(__linux__) || defined(__FreeBSD__)
+ {
++#if defined(__FreeBSD__)
++ const char* self = "/proc/curproc/file";
++#else
+ const char* self = "/proc/self/exe";
++#endif
+ char buf[PATH_MAX+1];
+ int len = readlink(self, buf, PATH_MAX);
+ if (len >= 0) {
+@@ -938,7 +942,7 @@
+ exec_path = JLI_StringDup(buf);
+ }
+ }
+-#else /* !__solaris__ && !__linux__ */
++#else /* !__solaris__ && !__linux__ && !__FreeBSD__ */
+ {
+ /* Not implemented */
+ }
+@@ -1000,7 +1004,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 +1029,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) {
+--- jdk/src/solaris/bin/java_md_solinux.h
++++ jdk/src/solaris/bin/java_md_solinux.h
+@@ -54,10 +54,10 @@
+ #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/sun/net/PortConfig.java
++++ jdk/src/solaris/classes/sun/net/PortConfig.java
+@@ -52,7 +52,7 @@
+ } else if (os.startsWith("SunOS")) {
+ defaultLower = 32768;
+ defaultUpper = 65535;
+- } else if (os.contains("OS X")) {
++ } 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
+@@ -66,7 +66,7 @@
+ return createProvider("sun.nio.ch.SolarisAsynchronousChannelProvider");
+ if (osname.equals("Linux"))
+ return createProvider("sun.nio.ch.LinuxAsynchronousChannelProvider");
+- 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
+@@ -25,10 +25,14 @@
+
+ package sun.nio.fs;
+
++import java.nio.file.*;
++import java.nio.file.spi.FileTypeDetector;
+ import java.io.IOException;
++import java.security.AccessController;
++import sun.security.action.GetPropertyAction;
+
+ /**
+- * Bsd implementation of FileSystemProvider
++ * BSD implementation of FileSystemProvider
+ */
+
+ public class BsdFileSystemProvider extends UnixFileSystemProvider {
+@@ -45,4 +49,16 @@
+ BsdFileStore getFileStore(UnixPath path) throws IOException {
+ return new BsdFileStore(path);
+ }
++
++ @Override
++ FileTypeDetector getFileTypeDetector() {
++ Path userMimeTypes = Paths.get(AccessController.doPrivileged(
++ new GetPropertyAction("user.home")), ".mime.types");
++ Path etcMimeTypes = Paths.get("/etc/mime.types");
++
++ return chain(new GnomeFileTypeDetector(),
++ new MimeTypesFileTypeDetector(userMimeTypes),
++ new MimeTypesFileTypeDetector(etcMimeTypes),
++ new MagicFileTypeDetector());
++ }
+ }
+--- jdk/src/solaris/classes/sun/nio/fs/DefaultFileSystemProvider.java
++++ jdk/src/solaris/classes/sun/nio/fs/DefaultFileSystemProvider.java
+@@ -61,6 +61,8 @@
+ return createProvider("sun.nio.fs.SolarisFileSystemProvider");
+ if (osname.equals("Linux"))
+ return createProvider("sun.nio.fs.LinuxFileSystemProvider");
++ if (osname.endsWith("BSD"))
++ 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/tools/attach/BsdVirtualMachine.java
++++ jdk/src/solaris/classes/sun/tools/attach/BsdVirtualMachine.java
+@@ -266,7 +266,7 @@
+ try {
+ b = s.getBytes("UTF-8");
+ } catch (java.io.UnsupportedEncodingException x) {
+- throw new InternalError();
++ throw new InternalError(x);
+ }
+ BsdVirtualMachine.write(fd, b, 0, b.length);
+ }
+--- jdk/src/solaris/native/common/jni_util_md.c
++++ jdk/src/solaris/native/common/jni_util_md.c
+@@ -28,6 +28,7 @@
+ #include "jni.h"
+ #include "jni_util.h"
+ #include "dlfcn.h"
++#include <string.h>
+
+ jstring nativeNewStringPlatform(JNIEnv *env, const char *str) {
+ return NULL;
+--- jdk/src/solaris/native/java/net/Inet4AddressImpl.c
++++ jdk/src/solaris/native/java/net/Inet4AddressImpl.c
+@@ -36,20 +36,13 @@
+ #include <stdlib.h>
+ #include <ctype.h>
+
+-#ifdef _ALLBSD_SOURCE
+-#include <unistd.h>
+-#include <sys/param.h>
+-#endif
+-
+ #include "jvm.h"
+ #include "jni_util.h"
+ #include "net_util.h"
+
+ #include "java_net_Inet4AddressImpl.h"
+
+-#if defined(__GLIBC__) || (defined(__FreeBSD__) && (__FreeBSD_version >= 601104))
+-#define HAS_GLIBC_GETHOSTBY_R 1
+-#endif
++extern jobjectArray lookupIfLocalhost(JNIEnv *env, const char *hostname, jboolean includeV6);
+
+ static jclass ni_iacls;
+ static jclass ni_ia4cls;
+@@ -74,268 +67,6 @@
+ return JNI_TRUE;
+ }
+
+-
+-#if defined(_ALLBSD_SOURCE) && !defined(HAS_GLIBC_GETHOSTBY_R)
+-extern jobjectArray lookupIfLocalhost(JNIEnv *env, const char *hostname, jboolean includeV6);
+-
+-/* Use getaddrinfo(3), which is thread safe */
+-/************************************************************************
+- * Inet4AddressImpl
+- */
+-
+-/*
+- * Class: java_net_Inet4AddressImpl
+- * Method: getLocalHostName
+- * Signature: ()Ljava/lang/String;
+- */
+-JNIEXPORT jstring JNICALL
+-Java_java_net_Inet4AddressImpl_getLocalHostName(JNIEnv *env, jobject this) {
+- char hostname[NI_MAXHOST+1];
+-
+- hostname[0] = '\0';
+- if (JVM_GetHostName(hostname, NI_MAXHOST)) {
+- /* Something went wrong, maybe networking is not setup? */
+- strcpy(hostname, "localhost");
+- } else {
+- struct addrinfo hints, *res;
+- int error;
+-
+- memset(&hints, 0, sizeof(hints));
+- hints.ai_flags = AI_CANONNAME;
+- hints.ai_family = AF_UNSPEC;
+-
+- error = getaddrinfo(hostname, NULL, &hints, &res);
+-
+- if (error == 0) {
+- /* host is known to name service */
+- error = getnameinfo(res->ai_addr,
+- res->ai_addrlen,
+- hostname,
+- NI_MAXHOST,
+- NULL,
+- 0,
+- NI_NAMEREQD);
+-
+- /* if getnameinfo fails hostname is still the value
+- from gethostname */
+-
+- freeaddrinfo(res);
+- }
+- }
+- return (*env)->NewStringUTF(env, hostname);
+-}
+-
+-/*
+- * Find an internet address for a given hostname. Note that this
+- * code only works for addresses of type INET. The translation
+- * of %d.%d.%d.%d to an address (int) occurs in java now, so the
+- * String "host" shouldn't *ever* be a %d.%d.%d.%d string
+- *
+- * Class: java_net_Inet4AddressImpl
+- * Method: lookupAllHostAddr
+- * Signature: (Ljava/lang/String;)[[B
+- */
+-
+-JNIEXPORT jobjectArray JNICALL
+-Java_java_net_Inet4AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this,
+- jstring host) {
+- const char *hostname;
+- jobject name;
+- jobjectArray ret = 0;
+- int retLen = 0;
+-
+- int error=0;
+- struct addrinfo hints, *res, *resNew = NULL;
+-
+- if (!initializeInetClasses(env))
+- return NULL;
+-
+- if (IS_NULL(host)) {
+- JNU_ThrowNullPointerException(env, "host is null");
+- return 0;
+- }
+- hostname = JNU_GetStringPlatformChars(env, host, JNI_FALSE);
+- CHECK_NULL_RETURN(hostname, NULL);
+-
+- memset(&hints, 0, sizeof(hints));
+- hints.ai_flags = AI_CANONNAME;
+- hints.ai_family = AF_INET;
+-
+- /*
+- * Workaround for Solaris bug 4160367 - if a hostname contains a
+- * white space then 0.0.0.0 is returned
+- */
+- if (isspace((unsigned char)hostname[0])) {
+- JNU_ThrowByName(env, JNU_JAVANETPKG "UnknownHostException",
+- (char *)hostname);
+- JNU_ReleaseStringPlatformChars(env, host, hostname);
+- return NULL;
+- }
+-
+-#ifdef MACOSX
+- /* If we're looking up the local machine, bypass DNS lookups and get
+- * address from getifaddrs.
+- */
+- ret = lookupIfLocalhost(env, hostname, JNI_FALSE);
+- if (ret != NULL || (*env)->ExceptionCheck(env)) {
+- JNU_ReleaseStringPlatformChars(env, host, hostname);
+- return ret;
+- }
+-#endif
+-
+- error = getaddrinfo(hostname, NULL, &hints, &res);
+-
+- if (error) {
+- /* report error */
+- ThrowUnknownHostExceptionWithGaiError(env, hostname, error);
+- JNU_ReleaseStringPlatformChars(env, host, hostname);
+- return NULL;
+- } else {
+- int i = 0;
+- struct addrinfo *itr, *last = NULL, *iterator = res;
+- while (iterator != NULL) {
+- int skip = 0;
+- itr = resNew;
+-
+- while (itr != NULL) {
+- struct sockaddr_in *addr1, *addr2;
+-
+- addr1 = (struct sockaddr_in *)iterator->ai_addr;
+- addr2 = (struct sockaddr_in *)itr->ai_addr;
+- if (addr1->sin_addr.s_addr ==
+- addr2->sin_addr.s_addr) {
+- skip = 1;
+- break;
+- }
+-
+- itr = itr->ai_next;
+- }
+-
+- if (!skip) {
+- struct addrinfo *next
+- = (struct addrinfo*) malloc(sizeof(struct addrinfo));
+- if (!next) {
+- JNU_ThrowOutOfMemoryError(env, "Native heap allocation failed");
+- ret = NULL;
+- goto cleanupAndReturn;
+- }
+- memcpy(next, iterator, sizeof(struct addrinfo));
+- next->ai_next = NULL;
+- if (resNew == NULL) {
+- resNew = next;
+- } else {
+- last->ai_next = next;
+- }
+- last = next;
+- i++;
+- }
+- iterator = iterator->ai_next;
+- }
+-
+- retLen = i;
+- iterator = resNew;
+- i = 0;
+-
+- name = (*env)->NewStringUTF(env, hostname);
+- if (IS_NULL(name)) {
+- goto cleanupAndReturn;
+- }
+-
+- ret = (*env)->NewObjectArray(env, retLen, ni_iacls, NULL);
+- if (IS_NULL(ret)) {
+- /* we may have memory to free at the end of this */
+- goto cleanupAndReturn;
+- }
+-
+- while (iterator != NULL) {
+- /* We need 4 bytes to store ipv4 address; */
+- int len = 4;
+-
+- jobject iaObj = (*env)->NewObject(env, ni_ia4cls, ni_ia4ctrID);
+- if (IS_NULL(iaObj)) {
+- /* we may have memory to free at the end of this */
+- ret = NULL;
+- goto cleanupAndReturn;
+- }
+- setInetAddress_addr(env, iaObj, ntohl(((struct sockaddr_in*)(iterator->ai_addr))->sin_addr.s_addr));
+- setInetAddress_hostName(env, iaObj, name);
+- (*env)->SetObjectArrayElement(env, ret, retLen - i -1, iaObj);
+- i++;
+- iterator = iterator->ai_next;
+- }
+- }
+-
+-cleanupAndReturn:
+- {
+- struct addrinfo *iterator, *tmp;
+- iterator = resNew;
+- while (iterator != NULL) {
+- tmp = iterator;
+- iterator = iterator->ai_next;
+- free(tmp);
+- }
+- JNU_ReleaseStringPlatformChars(env, host, hostname);
+- }
+-
+- freeaddrinfo(res);
+-
+- return ret;
+-
+-}
+-
+-/*
+- * Class: java_net_Inet4AddressImpl
+- * Method: getHostByAddr
+- * Signature: (I)Ljava/lang/String;
+- */
+-JNIEXPORT jstring JNICALL
+-Java_java_net_Inet4AddressImpl_getHostByAddr(JNIEnv *env, jobject this,
+- jbyteArray addrArray) {
+- jstring ret = NULL;
+-
+- char host[NI_MAXHOST+1];
+- jfieldID fid;
+- int error = 0;
+- jint family;
+- struct sockaddr *him ;
+- int len = 0;
+- jbyte caddr[4];
+- jint addr;
+-
+- struct sockaddr_in him4;
+- struct sockaddr *sa;
+-
+- /*
+- * For IPv4 addresses construct a sockaddr_in structure.
+- */
+- (*env)->GetByteArrayRegion(env, addrArray, 0, 4, caddr);
+- addr = ((caddr[0]<<24) & 0xff000000);
+- addr |= ((caddr[1] <<16) & 0xff0000);
+- addr |= ((caddr[2] <<8) & 0xff00);
+- addr |= (caddr[3] & 0xff);
+- memset((char *) &him4, 0, sizeof(him4));
+- him4.sin_addr.s_addr = (uint32_t) htonl(addr);
+- him4.sin_family = AF_INET;
+- sa = (struct sockaddr *) &him4;
+- len = sizeof(him4);
+-
+- error = getnameinfo(sa, len, host, NI_MAXHOST, NULL, 0,
+- NI_NAMEREQD);
+-
+- if (!error) {
+- ret = (*env)->NewStringUTF(env, host);
+- }
+-
+- if (ret == NULL) {
+- JNU_ThrowByName(env, JNU_JAVANETPKG "UnknownHostException", NULL);
+- }
+-
+- return ret;
+-
+-}
+-
+-#else /* defined(_ALLBSD_SOURCE) && !defined(HAS_GLIBC_GETHOSTBY_R) */
+-
+ /* the initial size of our hostent buffers */
+ #ifndef NI_MAXHOST
+ #define NI_MAXHOST 1025
+@@ -435,6 +166,17 @@
+ }
+ #endif
+
++#ifdef _ALLBSD_SOURCE
++ /* If we're looking up the local machine, bypass DNS lookups and get
++ * address from getifaddrs.
++ */
++ ret = lookupIfLocalhost(env, hostname, JNI_FALSE);
++ if (ret != NULL || (*env)->ExceptionCheck(env)) {
++ JNU_ReleaseStringPlatformChars(env, host, hostname);
++ return ret;
++ }
++#endif
++
+ error = getaddrinfo(hostname, NULL, &hints, &res);
+
+ if (error) {
+@@ -568,8 +310,6 @@
+ return ret;
+ }
+
+-#endif /* _ALLBSD_SOURCE */
+-
+ #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
+@@ -33,7 +33,7 @@
+ #include <strings.h>
+ #include <stdlib.h>
+ #include <ctype.h>
+-#ifdef MACOSX
++#ifdef _ALLBSD_SOURCE
+ #include <ifaddrs.h>
+ #include <net/if.h>
+ #include <unistd.h> /* gethostname */
+@@ -155,9 +155,9 @@
+ return JNI_TRUE;
+ }
+
+-#ifdef MACOSX
++#ifdef _ALLBSD_SOURCE
+ /* also called from Inet4AddressImpl.c */
+-__private_extern__ jobjectArray
++jobjectArray
+ lookupIfLocalhost(JNIEnv *env, const char *hostname, jboolean includeV6)
+ {
+ jobjectArray result = NULL;
+@@ -307,7 +307,7 @@
+ hostname = JNU_GetStringPlatformChars(env, host, JNI_FALSE);
+ CHECK_NULL_RETURN(hostname, NULL);
+
+-#ifdef MACOSX
++#ifdef _ALLBSD_SOURCE
+ /*
+ * 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 @@
+ #include <sys/param.h>
+ #include <sys/ioctl.h>
+ #include <sys/sockio.h>
+-#if defined(__APPLE__)
++#if defined(__APPLE__) || defined(__FreeBSD__)
+ #include <net/ethernet.h>
+ #include <net/if_var.h>
++#elif defined(__OpenBSD__)
++#include <netinet/if_ether.h>
++#elif defined(__NetBSD__)
++#include <net/if_ether.h>
++#endif
+ #include <net/if_dl.h>
+ #include <netinet/in_var.h>
+ #include <ifaddrs.h>
+ #endif
+-#endif
+
+ #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 @@
+ }
+ }
+ #endif
+-#ifdef MACOSX
++#ifdef _ALLBSD_SOURCE
+ 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
+@@ -87,7 +87,7 @@
+
+ void setDefaultScopeID(JNIEnv *env, struct sockaddr *him)
+ {
+-#ifdef MACOSX
++#ifdef _ALLBSD_SOURCE
+ static jclass ni_class = NULL;
+ static jfieldID ni_defaultIndexID;
+ if (ni_class == NULL) {
+--- jdk/src/solaris/native/java/util/TimeZone_md.c
++++ jdk/src/solaris/native/java/util/TimeZone_md.c
+@@ -123,7 +123,7 @@
+ return NULL;
+ }
+
+-#if defined(__linux__) || defined(MACOSX) || (defined(__solaris__) \
++#if 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 +211,7 @@
+ return tz;
+ }
+
+-#if defined(__linux__) || defined(MACOSX)
++#if defined(__linux__) || defined(_ALLBSD_SOURCE)
+
+ /*
+ * Performs Linux specific mapping and returns a zone ID
+@@ -677,7 +677,7 @@
+ * Returns a GMT-offset-based zone ID. (e.g., "GMT-08:00")
+ */
+
+-#ifdef MACOSX
++#ifdef _ALLBSD_SOURCE
+
+ char *
+ getGMTOffsetID()
+@@ -693,10 +693,10 @@
+ local_tm = localtime(&clock);
+ if (local_tm->tm_gmtoff >= 0) {
+ offset = (time_t) local_tm->tm_gmtoff;
+- sign = "+";
++ sign = '+';
+ } else {
+ offset = (time_t) -local_tm->tm_gmtoff;
+- sign = "-";
++ sign = '-';
+ }
+ sprintf(buf, (const char *)"GMT%c%02d:%02d",
+ sign, (int)(offset/3600), (int)((offset%3600)/60));
+--- jdk/src/solaris/native/sun/management/OperatingSystemImpl.c
++++ jdk/src/solaris/native/sun/management/OperatingSystemImpl.c
+@@ -342,7 +342,13 @@
+ size_t rlen;
+
+ mib[0] = CTL_HW;
++#if defined (HW_MEMSIZE) // Apple
+ mib[1] = HW_MEMSIZE;
++#elif defined(HW_PHYSMEM) // Most of BSD
++ mib[1] = HW_PHYSMEM;
++#else
++ #error No ways to get physmem
++#endif
+ rlen = sizeof(result);
+ if (sysctl(mib, 2, &result, &rlen, NULL, 0) != 0) {
+ throw_internal_error(env, "sysctl failed");
+--- jdk/src/solaris/native/sun/nio/ch/sctp/Sctp.h
++++ jdk/src/solaris/native/sun/nio/ch/sctp/Sctp.h
+@@ -67,7 +67,7 @@
+
+
+
+-#else /* __linux__ */
++#elif defined(__linux__)
+ #include <stdint.h>
+ #include <linux/types.h>
+ #include <sys/socket.h>
+@@ -319,9 +319,20 @@
+ typedef int sctp_bindx_func(int sd, struct sockaddr *addrs, int addrcnt, int flags);
+ typedef int sctp_peeloff_func(int sock, sctp_assoc_t id);
+
++#elif defined(__FreeBSD__)
++
++#include <stdint.h>
++#include <sys/types.h>
++#include <sys/socket.h>
++#include <netinet/sctp.h>
++#include <netinet/sctp_peeloff.h>
++#include <netinet/sctp_uio.h>
++#include "jni.h"
+
+ #endif /* __linux__ */
+
++#ifndef __FreeBSD__
++
+ sctp_getladdrs_func* nio_sctp_getladdrs;
+ sctp_freeladdrs_func* nio_sctp_freeladdrs;
+ sctp_getpaddrs_func* nio_sctp_getpaddrs;
+@@ -329,6 +340,17 @@
+ sctp_bindx_func* nio_sctp_bindx;
+ sctp_peeloff_func* nio_sctp_peeloff;
+
++#else
++
++#define nio_sctp_getladdrs sctp_getladdrs
++#define nio_sctp_freeladdrs sctp_freeladdrs
++#define nio_sctp_getpaddrs sctp_getpaddrs
++#define nio_sctp_freepaddrs sctp_freepaddrs
++#define nio_sctp_bindx sctp_bindx
++#define nio_sctp_peeloff sctp_peeloff
++
++#endif
++
+ 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
+@@ -58,6 +58,7 @@
+ */
+ jboolean loadSocketExtensionFuncs
+ (JNIEnv* env) {
++#ifndef __FreeBSD__
+ if (dlopen(nativeSctpLib, RTLD_GLOBAL | RTLD_LAZY) == NULL) {
+ JNU_ThrowByName(env, "java/lang/UnsupportedOperationException",
+ dlerror());
+@@ -105,6 +106,7 @@
+ dlerror());
+ return JNI_FALSE;
+ }
++#endif
+
+ funcsLoaded = JNI_TRUE;
+ return JNI_TRUE;
+--- jdk/src/solaris/native/sun/nio/fs/MagicFileTypeDetector.c
++++ jdk/src/solaris/native/sun/nio/fs/MagicFileTypeDetector.c
+@@ -31,6 +31,12 @@
+ #include <dlfcn.h>
+ #include <string.h>
+
++#ifdef __FreeBSD__
++#define MAGIC_MAJOR_VERSION "4"
++#else
++#define MAGIC_MAJOR_VERSION "1"
++#endif
++
+ #define MAGIC_MIME_TYPE 0x000010 /* Return the MIME type */
+
+ typedef struct magic_set magic_t;
+@@ -54,7 +60,7 @@
+ {
+ magic_handle = dlopen("libmagic.so", RTLD_LAZY);
+ if (magic_handle == NULL) {
+- magic_handle = dlopen("libmagic.so.1", RTLD_LAZY);
++ magic_handle = dlopen("libmagic.so." MAGIC_MAJOR_VERSION, RTLD_LAZY);
+ 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
+@@ -37,7 +37,9 @@
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ #include <sys/stat.h>
++#ifndef __FreeBSD__
+ #include <sys/syslimits.h>
++#endif
+ #include <sys/un.h>
+ #include <fcntl.h>
+
+--- 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)
diff --git a/java/openjdk8/files/patch-bsd-test b/java/openjdk8/files/patch-bsd-test
new file mode 100644
index 000000000000..96a7d4560270
--- /dev/null
+++ b/java/openjdk8/files/patch-bsd-test
@@ -0,0 +1,1344 @@
+--- hotspot/test/compiler/5091921/Test7005594.sh
++++ hotspot/test/compiler/5091921/Test7005594.sh
+@@ -60,6 +60,15 @@
+ # Windows/MKS
+ MEM=`"$ROOTDIR/mksnt/sysinf" memory -v | grep "Total Physical Memory: " | sed 's/Total Physical Memory: *//g'`
+ MEM="$(($machine_memory / 1024))"
++elif [ -x "/sbin/sysctl" ]; then
++ # BSD
++ MEM=`(/sbin/sysctl -n hw.physmem64 2> /dev/null || /sbin/sysctl -n hw.physmem)`
++ if [ -z "$MEM" ]; then
++ echo "Unable to determine amount of physical memory on the machine"
++ MEM=0
++ else
++ MEM="$(($MEM / 1024 / 1024))"
++ fi
+ else
+ echo "Unable to determine amount of physical memory on the machine"
+ fi
+--- hotspot/test/compiler/6894807/Test6894807.sh
++++ hotspot/test/compiler/6894807/Test6894807.sh
+@@ -21,7 +21,7 @@
+ # set platform-dependent variables
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ NULL=/dev/null
+ PS=":"
+ FS="/"
+--- hotspot/test/runtime/7110720/Test7110720.sh
++++ hotspot/test/runtime/7110720/Test7110720.sh
+@@ -28,7 +28,7 @@
+ # set platform-dependent variables
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ FS="/"
+ RM=/bin/rm
+ CP=/bin/cp
+--- hotspot/test/test_env.sh
++++ hotspot/test/test_env.sh
+@@ -53,7 +53,7 @@
+ # set platform-dependent variables
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ NULL=/dev/null
+ PS=":"
+ FS="/"
+--- jdk/test/com/sun/corba/5036554/TestCorbaBug.sh
++++ jdk/test/com/sun/corba/5036554/TestCorbaBug.sh
+@@ -48,7 +48,7 @@
+ # set platform-dependent variables
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ PS=":"
+ FS="/"
+ ;;
+--- jdk/test/com/sun/corba/cachedSocket/7056731.sh
++++ jdk/test/com/sun/corba/cachedSocket/7056731.sh
+@@ -31,7 +31,7 @@
+
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ PS=":"
+ FS="/"
+ ;;
+--- jdk/test/com/sun/jdi/ImmutableResourceTest.sh
++++ jdk/test/com/sun/jdi/ImmutableResourceTest.sh
+@@ -56,7 +56,7 @@
+
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ PATHSEP=":"
+ ;;
+
+--- jdk/test/com/sun/jdi/JITDebug.sh
++++ jdk/test/com/sun/jdi/JITDebug.sh
+@@ -63,7 +63,7 @@
+ OS=`uname -s`
+ export TRANSPORT_METHOD
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ PATHSEP=":"
+ TRANSPORT_METHOD=dt_socket
+ ;;
+--- jdk/test/com/sun/jdi/PrivateTransportTest.sh
++++ jdk/test/com/sun/jdi/PrivateTransportTest.sh
+@@ -106,7 +106,7 @@
+ xx=`find ${jreloc}/lib -name libdt_socket.so`
+ libloc=`dirname ${xx}`
+ ;;
+- Darwin)
++ *BSD | Darwin)
+ libloc=${jreloc}/lib
+ ;;
+ Windows*)
+--- jdk/test/com/sun/jdi/ShellScaffold.sh
++++ jdk/test/com/sun/jdi/ShellScaffold.sh
+@@ -293,7 +293,7 @@
+ psCmd=ps
+ jstack=jstack.exe
+ ;;
+- SunOS | Linux | Darwin)
++ SunOS | Linux | *BSD | Darwin)
+ transport=dt_socket
+ address=
+ devnull=/dev/null
+--- jdk/test/com/sun/jdi/connect/spi/JdiLoadedByCustomLoader.sh
++++ jdk/test/com/sun/jdi/connect/spi/JdiLoadedByCustomLoader.sh
+@@ -45,7 +45,7 @@
+
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ PS=":"
+ ;;
+ Windows* | CYGWIN*)
+--- jdk/test/java/awt/JAWT/JAWT.sh
++++ jdk/test/java/awt/JAWT/JAWT.sh
+@@ -62,6 +62,23 @@
+ MAKE="make"
+ LD_LIBRARY_PATH="."
+ ;;
++ *BSD )
++ NULL=/dev/null
++ PS=":"
++ FS="/"
++ ${TESTJAVA}${FS}bin${FS}java -version 2>&1 | grep '64-Bit' > $NULL
++ if [ $? -eq '0' ]
++ then
++ ARCH="amd64"
++ else
++ ARCH="i386"
++ fi
++ SYST="bsd"
++ MAKEFILE="Makefile.unix"
++ CC="cc"
++ MAKE="make"
++ LD_LIBRARY_PATH="."
++ ;;
+ SunOS )
+ NULL=/dev/null
+ PS=":"
+@@ -111,7 +128,7 @@
+ MAKE="make"
+ ;;
+ Darwin )
+- echo "Test passed. This test is not for MacOS."
++ echo "Test passed. This test is not for BSD."
+ exit 0;
+ ;;
+ * )
+--- jdk/test/java/awt/Toolkit/AutoShutdown/ShowExitTest/ShowExitTest.sh
++++ jdk/test/java/awt/Toolkit/AutoShutdown/ShowExitTest/ShowExitTest.sh
+@@ -78,8 +78,8 @@
+ TMP="/tmp"
+ ;;
+
+- Darwin )
+- VAR="A different value for MacOSX"
++ *BSD | Darwin )
++ VAR="A different value for BSD"
+ DEFAULT_JDK=/usr
+ FILESEP="/"
+ PATHSEP=":"
+--- jdk/test/java/awt/Toolkit/Headless/WrappedToolkitTest/WrappedToolkitTest.sh
++++ jdk/test/java/awt/Toolkit/Headless/WrappedToolkitTest/WrappedToolkitTest.sh
+@@ -77,9 +77,9 @@
+ FILESEP="\\"
+ ;;
+
+- Darwin)
+- VAR="Lets not forget about Mac"
+- DEFAULT_JDK=$(/usr/libexec/java_home)
++ *BSD | Darwin )
++ VAR="Lets not forget about BSD"
++ DEFAULT_JDK=/
+ FILESEP="/"
+ ;;
+
+--- jdk/test/java/awt/appletviewer/IOExceptionIfEncodedURLTest/IOExceptionIfEncodedURLTest.sh
++++ jdk/test/java/awt/appletviewer/IOExceptionIfEncodedURLTest/IOExceptionIfEncodedURLTest.sh
+@@ -111,9 +111,9 @@
+ TMP="/tmp"
+ ;;
+
+- Darwin )
+- VAR="A different value for MacOSX"
+- DEFAULT_JDK=/usr
++ *BSD | Darwin )
++ VAR="A different value for BSD"
++ DEFAULT_JDK=/
+ FILESEP="/"
+ PATHSEP=":"
+ TMP="/tmp"
+--- jdk/test/java/io/File/GetXSpace.java
++++ jdk/test/java/io/File/GetXSpace.java
+@@ -51,7 +51,7 @@
+ private static final String dfFormat;
+ static {
+ if (name.equals("SunOS") || name.equals("Linux")
+- || name.contains("OS X")) {
++ || name.endsWith("BSD") || name.contains("OS X")) {
+ // FileSystem Total Used Available Use% MountedOn
+ dfFormat = "([^\\s]+)\\s+(\\d+)\\s+\\d+\\s+(\\d+)\\s+\\d+%\\s+([^\\s]+)";
+ } else if (name.startsWith("Windows")) {
+--- jdk/test/java/io/File/GetXSpace.sh
++++ jdk/test/java/io/File/GetXSpace.sh
+@@ -26,7 +26,7 @@
+ # set platform-dependent variable
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux ) TMP=/tmp ;;
++ SunOS | Linux | *BSD | Darwin ) TMP=/tmp ;;
+ Windows_98 ) return ;;
+ Windows* ) SID=`sid`; TMP="c:/temp" ;;
+ * )
+--- jdk/test/java/io/Serializable/evolution/RenamePackage/run.sh
++++ jdk/test/java/io/Serializable/evolution/RenamePackage/run.sh
+@@ -45,7 +45,7 @@
+ # Need to determine the classpath separator and filepath separator based on the
+ # operating system.
+ case "$OS" in
+-SunOS | Linux | Darwin )
++SunOS | Linux | *BSD | Darwin )
+ PS=":" ;;
+ Windows* | CYGWIN* )
+ PS=";" ;;
+--- jdk/test/java/io/Serializable/serialver/classpath/run.sh
++++ jdk/test/java/io/Serializable/serialver/classpath/run.sh
+@@ -47,7 +47,7 @@
+ # set platform-dependent variables
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ PS=":" ;;
+ Windows* | CYGWIN* )
+ PS=";" ;;
+--- jdk/test/java/io/Serializable/serialver/nested/run.sh
++++ jdk/test/java/io/Serializable/serialver/nested/run.sh
+@@ -47,7 +47,7 @@
+ # set platform-dependent variables
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ PS=":" ;;
+ Windows* | CYGWIN* )
+ PS=";" ;;
+--- jdk/test/java/lang/ClassLoader/deadlock/TestCrossDelegate.sh
++++ jdk/test/java/lang/ClassLoader/deadlock/TestCrossDelegate.sh
+@@ -55,7 +55,7 @@
+ Linux )
+ FS="/"
+ ;;
+- Darwin )
++ *BSD | Darwin )
+ FS="/"
+ ;;
+ Windows*)
+--- jdk/test/java/lang/ClassLoader/deadlock/TestOneWayDelegate.sh
++++ jdk/test/java/lang/ClassLoader/deadlock/TestOneWayDelegate.sh
+@@ -60,7 +60,7 @@
+ Linux )
+ FS="/"
+ ;;
+- Darwin )
++ *BSD | Darwin )
+ FS="/"
+ ;;
+ Windows* | CYGWIN* )
+--- jdk/test/java/lang/ProcessBuilder/DestroyTest.java
++++ jdk/test/java/lang/ProcessBuilder/DestroyTest.java
+@@ -148,6 +148,9 @@
+ } else if (osName.startsWith("Linux") == true) {
+ return new UnixTest(
+ File.createTempFile("ProcessTrap-", ".sh",null));
++ } else if (osName.endsWith("BSD")) {
++ return new UnixTest(
++ File.createTempFile("ProcessTrap-", ".sh",null));
+ } else if (osName.startsWith("Mac OS")) {
+ return new MacTest(
+ File.createTempFile("ProcessTrap-", ".sh",null));
+--- jdk/test/java/lang/ProcessBuilder/Zombies.java
++++ jdk/test/java/lang/ProcessBuilder/Zombies.java
+@@ -34,7 +34,7 @@
+
+ static final String os = System.getProperty("os.name");
+
+- static final String TrueCommand = os.contains("OS X")?
++ static final String TrueCommand = (os.endsWith("BSD") || os.contains("OS X")) ?
+ "/usr/bin/true" : "/bin/true";
+
+ public static void main(String[] args) throws Throwable {
+--- jdk/test/java/lang/StringCoding/CheckEncodings.sh
++++ jdk/test/java/lang/StringCoding/CheckEncodings.sh
+@@ -30,7 +30,7 @@
+ # set platform-dependent variables
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin) ;;
++ SunOS | Linux | *BSD | Darwin ) ;;
+ Windows* | CYGWIN* )
+ echo "Passed"; exit 0 ;;
+ * ) echo "Unrecognized system!" ; exit 1 ;;
+--- jdk/test/java/lang/annotation/loaderLeak/LoaderLeak.sh
++++ jdk/test/java/lang/annotation/loaderLeak/LoaderLeak.sh
+@@ -48,7 +48,7 @@
+ # set platform-dependent variables
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin)
++ SunOS | Linux | *BSD | Darwin )
+ NULL=/dev/null
+ PS=":"
+ FS="/"
+--- jdk/test/java/lang/instrument/MakeJAR2.sh
++++ jdk/test/java/lang/instrument/MakeJAR2.sh
+@@ -55,7 +55,7 @@
+
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux )
++ SunOS | Linux | *BSD | Darwin )
+ PATHSEP=":"
+ ;;
+
+--- jdk/test/java/lang/instrument/appendToClassLoaderSearch/CommonSetup.sh
++++ jdk/test/java/lang/instrument/appendToClassLoaderSearch/CommonSetup.sh
+@@ -43,7 +43,7 @@
+ PS=":"
+ FS="/"
+ ;;
+- Darwin )
++ *BSD | Darwin )
+ PS=":"
+ FS="/"
+ ;;
+--- jdk/test/java/lang/management/OperatingSystemMXBean/GetSystemLoadAverage.java
++++ jdk/test/java/lang/management/OperatingSystemMXBean/GetSystemLoadAverage.java
+@@ -79,8 +79,10 @@
+ System.out.println("Test passed.");
+ }
+
++ private static String osName = System.getProperty("os.name");
++
+ private static String LOAD_AVERAGE_TEXT
+- = System.getProperty("os.name").contains("OS X")
++ = (osName.endsWith("BSD") || osName.contains("OS X"))
+ ? "load averages:"
+ : "load average:";
+
+@@ -99,7 +101,7 @@
+ System.out.println("Load average returned from uptime = " + output);
+ System.out.println("getSystemLoadAverage() returned " + loadavg);
+
+- String[] lavg = System.getProperty("os.name").contains("OS X")
++ String[] lavg = (osName.endsWith("BSD") || osName.contains("OS X"))
+ ? output.split(" ")
+ : output.split(",");
+ double expected = Double.parseDouble(lavg[0]);
+--- jdk/test/java/lang/management/OperatingSystemMXBean/TestSystemLoadAvg.sh
++++ jdk/test/java/lang/management/OperatingSystemMXBean/TestSystemLoadAvg.sh
+@@ -61,7 +61,7 @@
+ while true; do
+ echo "Run $i: TestSystemLoadAvg"
+ case `uname -s` in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ runOne GetSystemLoadAverage
+ ;;
+ * )
+--- jdk/test/java/net/Authenticator/B4933582.sh
++++ jdk/test/java/net/Authenticator/B4933582.sh
+@@ -26,7 +26,7 @@
+
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ PS=":"
+ FS="/"
+ ;;
+--- jdk/test/java/net/DatagramSocket/Send12k.java
++++ jdk/test/java/net/DatagramSocket/Send12k.java
+@@ -36,9 +36,10 @@
+
+ public static void main(String args[]) throws Exception {
+
+- int SEND_SIZE=0;
++ String osName = System.getProperty("os.name");
++ int SEND_SIZE;
+
+- if(System.getProperty("os.name").contains("Mac")) {
++ if(osName.endsWith("BSD") || osName.contains("Mac")) {
+ SEND_SIZE = 16 * 576;
+ } else {
+ SEND_SIZE = 16 * 1024;
+--- jdk/test/java/net/DatagramSocket/SendDatagramToBadAddress.java
++++ jdk/test/java/net/DatagramSocket/SendDatagramToBadAddress.java
+@@ -45,6 +45,8 @@
+ return (true);
+ if (p.getProperty ("os.name").equals ("Linux"))
+ return (true);
++ if (p.getProperty ("os.name").endsWith ("BSD"))
++ return (true);
+ if (p.getProperty ("os.name").startsWith ("Mac OS"))
+ return (true);
+ // Check for specific Solaris version from here
+--- jdk/test/java/net/DatagramSocket/SetDatagramSocketImplFactory/ADatagramSocket.sh
++++ jdk/test/java/net/DatagramSocket/SetDatagramSocketImplFactory/ADatagramSocket.sh
+@@ -27,7 +27,7 @@
+ # set platform-dependent variables
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Darwin )
++ SunOS | *BSD | Darwin )
+ PATHSEP=":"
+ FILESEP="/"
+ ;;
+--- jdk/test/java/net/Socket/OldSocketImpl.sh
++++ jdk/test/java/net/Socket/OldSocketImpl.sh
+@@ -28,7 +28,7 @@
+
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ PS=":"
+ FS="/"
+ ;;
+--- jdk/test/java/net/URL/B5086147.sh
++++ jdk/test/java/net/URL/B5086147.sh
+@@ -26,7 +26,7 @@
+
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ exit 0
+ ;;
+ CYGWIN* )
+--- jdk/test/java/net/URLClassLoader/B5077773.sh
++++ jdk/test/java/net/URLClassLoader/B5077773.sh
+@@ -34,7 +34,7 @@
+
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Darwin )
++ SunOS | *BSD | Darwin )
+ PS=":"
+ FS="/"
+ ;;
+--- jdk/test/java/net/URLClassLoader/sealing/checksealed.sh
++++ jdk/test/java/net/URLClassLoader/sealing/checksealed.sh
+@@ -27,7 +27,7 @@
+
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Darwin )
++ SunOS | *BSD | Darwin )
+ PS=":"
+ FS="/"
+ ;;
+--- jdk/test/java/net/URLConnection/6212146/test.sh
++++ jdk/test/java/net/URLConnection/6212146/test.sh
+@@ -33,7 +33,7 @@
+
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Darwin )
++ SunOS | *BSD | Darwin )
+ PS=":"
+ FS="/"
+ ;;
+--- jdk/test/java/nio/channels/FileChannel/Transfer.java
++++ jdk/test/java/nio/channels/FileChannel/Transfer.java
+@@ -228,7 +228,7 @@
+ // Windows and Linux can't handle the really large file sizes for a
+ // truncate or a positional write required by the test for 4563125
+ String osName = System.getProperty("os.name");
+- if (!(osName.startsWith("SunOS") || osName.contains("OS X")))
++ if (!(osName.startsWith("SunOS") || osName.endsWith("BSD") || osName.contains("OS X")))
+ return;
+ File source = File.createTempFile("blah", null);
+ source.deleteOnExit();
+--- jdk/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/Launcher.c
++++ jdk/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/Launcher.c
+@@ -17,6 +17,12 @@
+
+ #include "Launcher.h"
+
++#ifdef _ALLBSD_SOURCE
++#define FD_DIR "/dev/fd"
++#else
++#define FD_DIR "/proc/self/fd"
++#endif
++
+ /*
+ * Throws the exception of the given class name and detail message
+ */
+@@ -135,7 +141,7 @@
+ }
+ close(thisFd);
+
+- if ((dp = opendir("/proc/self/fd")) == NULL) {
++ if ((dp = opendir(FD_DIR)) == NULL) {
+ _exit(-1);
+ }
+
+--- jdk/test/java/nio/charset/coders/CheckSJISMappingProp.sh
++++ jdk/test/java/nio/charset/coders/CheckSJISMappingProp.sh
+@@ -34,7 +34,7 @@
+
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin ) ;;
++ SunOS | Linux | *BSD | Darwin ) ;;
+ # Skip locale test for Windows
+ Windows* | CYGWIN* )
+ echo "Passed"; exit 0 ;;
+--- jdk/test/java/nio/charset/spi/basic.sh
++++ jdk/test/java/nio/charset/spi/basic.sh
+@@ -48,7 +48,7 @@
+
+ DIR=`pwd`
+ case `uname` in
+- SunOS | Linux | Darwin ) CPS=':' ;;
++ SunOS | Linux | *BSD | Darwin ) CPS=':' ;;
+ Windows* ) CPS=';' ;;
+ CYGWIN* )
+ DIR=`/usr/bin/cygpath -a -s -m $DIR`
+--- jdk/test/java/nio/file/FileSystem/Basic.java
++++ jdk/test/java/nio/file/FileSystem/Basic.java
+@@ -76,7 +76,7 @@
+ checkSupported(fs, "posix", "unix", "owner", "acl", "user");
+ if (os.equals("Linux"))
+ checkSupported(fs, "posix", "unix", "owner", "dos", "user");
+- if (os.contains("OS X"))
++ if (os.endsWith("BSD") || os.contains("OS X"))
+ checkSupported(fs, "posix", "unix", "owner");
+ if (os.equals("Windows"))
+ checkSupported(fs, "owner", "dos", "acl", "user");
+--- jdk/test/java/nio/file/Files/CopyAndMove.java
++++ jdk/test/java/nio/file/Files/CopyAndMove.java
+@@ -651,7 +651,7 @@
+
+ // check POSIX attributes are copied
+ String os = System.getProperty("os.name");
+- if ((os.equals("SunOS") || os.equals("Linux")) &&
++ if ((os.equals("SunOS") || os.equals("Linux") || os.endsWith("BSD")) &&
+ testPosixAttributes)
+ {
+ checkPosixAttributes(
+@@ -1155,7 +1155,7 @@
+ static void randomizeAttributes(Path file) throws IOException {
+ String os = System.getProperty("os.name");
+ boolean isWindows = os.startsWith("Windows");
+- boolean isUnix = os.equals("SunOS") || os.equals("Linux");
++ boolean isUnix = os.equals("SunOS") || os.equals("Linux") || os.endsWith("BSD");
+ boolean isDirectory = isDirectory(file, NOFOLLOW_LINKS);
+
+ if (isUnix) {
+--- jdk/test/java/rmi/activation/Activatable/extLoadedImpl/ext.sh
++++ jdk/test/java/rmi/activation/Activatable/extLoadedImpl/ext.sh
+@@ -33,7 +33,7 @@
+
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ PS=":"
+ ;;
+ Windows* | CYGWIN* )
+--- jdk/test/java/rmi/registry/readTest/readTest.sh
++++ jdk/test/java/rmi/registry/readTest/readTest.sh
+@@ -34,7 +34,7 @@
+ REGARGS=""
+
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ PS=":"
+ FS="/"
+ FILEURL="file:"
+--- jdk/test/java/security/Security/ClassLoaderDeadlock/ClassLoaderDeadlock.sh
++++ jdk/test/java/security/Security/ClassLoaderDeadlock/ClassLoaderDeadlock.sh
+@@ -58,7 +58,7 @@
+ PATHSEP=":"
+ FILESEP="/"
+ ;;
+- Darwin )
++ *BSD | Darwin )
+ PATHSEP=":"
+ FILESEP="/"
+ ;;
+--- jdk/test/java/security/Security/ClassLoaderDeadlock/Deadlock.sh
++++ jdk/test/java/security/Security/ClassLoaderDeadlock/Deadlock.sh
+@@ -42,7 +42,7 @@
+ PATHSEP=":"
+ FILESEP="/"
+ ;;
+- Darwin )
++ *BSD | Darwin )
+ PATHSEP=":"
+ FILESEP="/"
+ ;;
+--- jdk/test/java/security/Security/ClassLoaderDeadlock/Deadlock2.sh
++++ jdk/test/java/security/Security/ClassLoaderDeadlock/Deadlock2.sh
+@@ -66,7 +66,7 @@
+ PATHSEP=";"
+ FILESEP="/"
+ ;;
+- Darwin )
++ *BSD | Darwin )
+ PATHSEP=":"
+ FILESEP="/"
+ ;;
+--- jdk/test/java/security/Security/signedfirst/Dyn.sh
++++ jdk/test/java/security/Security/signedfirst/Dyn.sh
+@@ -58,7 +58,7 @@
+ PATHSEP=":"
+ FILESEP="/"
+ ;;
+- Darwin )
++ *BSD | Darwin )
+ PATHSEP=":"
+ FILESEP="/"
+ ;;
+--- jdk/test/java/security/Security/signedfirst/Static.sh
++++ jdk/test/java/security/Security/signedfirst/Static.sh
+@@ -58,7 +58,7 @@
+ PATHSEP=":"
+ FILESEP="/"
+ ;;
+- Darwin )
++ *BSD | Darwin )
+ PATHSEP=":"
+ FILESEP="/"
+ ;;
+--- jdk/test/java/util/Currency/PropertiesTest.sh
++++ jdk/test/java/util/Currency/PropertiesTest.sh
+@@ -52,7 +52,7 @@
+ # set platform-dependent variables
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ PS=":"
+ FS="/"
+ ;;
+--- jdk/test/java/util/PluggableLocale/ExecTest.sh
++++ jdk/test/java/util/PluggableLocale/ExecTest.sh
+@@ -62,7 +62,7 @@
+ # set platform-dependent variables
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ PS=":"
+ FS="/"
+ ;;
+--- jdk/test/java/util/ResourceBundle/Bug6299235Test.sh
++++ jdk/test/java/util/ResourceBundle/Bug6299235Test.sh
+@@ -31,7 +31,7 @@
+ # set platform-dependent variables
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ PATHSEP=":"
+ FILESEP="/"
+ ;;
+--- jdk/test/java/util/ServiceLoader/basic.sh
++++ jdk/test/java/util/ServiceLoader/basic.sh
+@@ -43,9 +43,7 @@
+
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Darwin )
+- SEP=':' ;;
+- Linux )
++ SunOS | Linux | *BSD | Darwin )
+ SEP=':' ;;
+ * )
+ SEP='\;' ;;
+--- jdk/test/java/util/prefs/CheckUserPrefsStorage.sh
++++ jdk/test/java/util/prefs/CheckUserPrefsStorage.sh
+@@ -31,7 +31,7 @@
+
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ PS=":"
+ FS="/"
+ ;;
+--- jdk/test/javax/crypto/SecretKeyFactory/FailOverTest.sh
++++ jdk/test/javax/crypto/SecretKeyFactory/FailOverTest.sh
+@@ -56,7 +56,7 @@
+ # set platform-dependent variables
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ NULL=/dev/null
+ PS=":"
+ FS="/"
+--- jdk/test/javax/imageio/metadata/IIOMetadataFormat/runMetadataFormatTest.sh
++++ jdk/test/javax/imageio/metadata/IIOMetadataFormat/runMetadataFormatTest.sh
+@@ -89,7 +89,7 @@
+ FILESEP="/"
+ ;;
+
+- Linux | Darwin )
++ Linux | *BSD | Darwin )
+ VAR="A different value for Linux"
+ DEFAULT_JDK=/none
+ #DEFAULT_JDK=/usr/local/java/jdk1.4/linux-i386
+--- jdk/test/javax/imageio/metadata/IIOMetadataFormat/runMetadataFormatThreadTest.sh
++++ jdk/test/javax/imageio/metadata/IIOMetadataFormat/runMetadataFormatThreadTest.sh
+@@ -90,7 +90,7 @@
+ FILESEP="/"
+ ;;
+
+- Linux | Darwin )
++ Linux | *BSD | Darwin )
+ VAR="A different value for Linux"
+ DEFAULT_JDK=/none
+ #DEFAULT_JDK=/usr/local/java/jdk1.4/linux-i386
+--- jdk/test/javax/imageio/stream/StreamCloserLeak/run_test.sh
++++ jdk/test/javax/imageio/stream/StreamCloserLeak/run_test.sh
+@@ -92,7 +92,7 @@
+ TMP="/tmp"
+ ;;
+
+- Darwin )
++ *BSD | Darwin )
+ VAR="A different value for MacOSX"
+ DEFAULT_JDK=/usr
+ FILESEP="/"
+--- jdk/test/javax/script/CommonSetup.sh
++++ jdk/test/javax/script/CommonSetup.sh
+@@ -36,7 +36,7 @@
+
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ PS=":"
+ FS="/"
+ ;;
+--- jdk/test/javax/security/auth/Subject/doAs/Test.sh
++++ jdk/test/javax/security/auth/Subject/doAs/Test.sh
+@@ -43,7 +43,7 @@
+ FS="/"
+ RM="/bin/rm -f"
+ ;;
+- Darwin )
++ *BSD | Darwin )
+ PS=":"
+ FS="/"
+ RM="/bin/rm -f"
+--- jdk/test/lib/security/java.policy/Ext_AllPolicy.sh
++++ jdk/test/lib/security/java.policy/Ext_AllPolicy.sh
+@@ -53,7 +53,7 @@
+ # set platform-dependent variables
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ NULL=/dev/null
+ PS=":"
+ FS="/"
+--- jdk/test/lib/testlibrary/jdk/testlibrary/Platform.java
++++ jdk/test/lib/testlibrary/jdk/testlibrary/Platform.java
+@@ -53,8 +53,13 @@
+ return isOs("linux");
+ }
+
++ public static boolean isBSD() {
++ return isOs("bsd");
++ }
++
+ private static boolean isOs(String osname) {
+- return osName.toLowerCase().startsWith(osname.toLowerCase());
++ return (osName.toLowerCase().startsWith(osname.toLowerCase()) ||
++ osName.toLowerCase().endsWith(osname.toLowerCase()));
+ }
+
+ public static String getOsName() {
+--- jdk/test/sun/management/jmxremote/bootstrap/GeneratePropertyPassword.sh
++++ jdk/test/sun/management/jmxremote/bootstrap/GeneratePropertyPassword.sh
+@@ -42,7 +42,7 @@
+ fi
+
+ case $OS in
+-SunOS | Linux | Darwin)
++SunOS | Linux | *BSD | Darwin )
+ PATHSEP=":"
+ FILESEP="/"
+ DFILESEP=$FILESEP
+--- jdk/test/sun/net/ftp/MarkResetTest.sh
++++ jdk/test/sun/net/ftp/MarkResetTest.sh
+@@ -28,7 +28,7 @@
+
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ PS=":"
+ FS="/"
+ ;;
+--- jdk/test/sun/net/www/http/HttpClient/RetryPost.sh
++++ jdk/test/sun/net/www/http/HttpClient/RetryPost.sh
+@@ -28,7 +28,7 @@
+
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ PS=":"
+ FS="/"
+ ;;
+--- jdk/test/sun/net/www/protocol/jar/B5105410.sh
++++ jdk/test/sun/net/www/protocol/jar/B5105410.sh
+@@ -31,7 +31,7 @@
+
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ PS=":"
+ FS="/"
+ ;;
+--- jdk/test/sun/net/www/protocol/jar/jarbug/run.sh
++++ jdk/test/sun/net/www/protocol/jar/jarbug/run.sh
+@@ -31,7 +31,7 @@
+
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ PS=":"
+ FS="/"
+ ;;
+--- jdk/test/sun/nio/ch/SelProvider.java
++++ jdk/test/sun/nio/ch/SelProvider.java
+@@ -39,7 +39,7 @@
+ expected = "sun.nio.ch.DevPollSelectorProvider";
+ } else if ("Linux".equals(osname)) {
+ expected = "sun.nio.ch.EPollSelectorProvider";
+- } else if (osname.contains("OS X")) {
++ } else if (osname.endsWith("BSD") || osname.contains("OS X")) {
+ expected = "sun.nio.ch.KQueueSelectorProvider";
+ } else {
+ return;
+--- jdk/test/sun/security/krb5/runNameEquals.sh
++++ jdk/test/sun/security/krb5/runNameEquals.sh
+@@ -52,7 +52,7 @@
+ # set platform-dependent variables
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ PATHSEP=":"
+ FILESEP="/"
+ NATIVE=true
+--- jdk/test/sun/security/mscapi/ShortRSAKey1024.sh
++++ jdk/test/sun/security/mscapi/ShortRSAKey1024.sh
+@@ -49,7 +49,7 @@
+
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin | CYGWIN* )
++ SunOS | Linux | *BSD | Darwin | CYGWIN* )
+ FS="/"
+ ;;
+ Windows_* )
+--- jdk/test/sun/security/pkcs11/Provider/ConfigQuotedString.sh
++++ jdk/test/sun/security/pkcs11/Provider/ConfigQuotedString.sh
+@@ -66,7 +66,7 @@
+ CP="${FS}bin${FS}cp"
+ CHMOD="${FS}bin${FS}chmod"
+ ;;
+- Darwin )
++ *BSD | Darwin )
+ FS="/"
+ PS=":"
+ CP="${FS}bin${FS}cp"
+--- jdk/test/sun/security/pkcs11/Provider/Login.sh
++++ jdk/test/sun/security/pkcs11/Provider/Login.sh
+@@ -67,7 +67,7 @@
+ CP="${FS}bin${FS}cp"
+ CHMOD="${FS}bin${FS}chmod"
+ ;;
+- Darwin )
++ *BSD | Darwin )
+ FS="/"
+ PS=":"
+ CP="${FS}bin${FS}cp"
+--- jdk/test/sun/security/provider/KeyStore/DKSTest.sh
++++ jdk/test/sun/security/provider/KeyStore/DKSTest.sh
+@@ -58,7 +58,7 @@
+ PS=":"
+ FS="/"
+ ;;
+- Darwin )
++ *BSD | Darwin )
+ PS=":"
+ FS="/"
+ ;;
+--- jdk/test/sun/security/provider/PolicyFile/GrantAllPermToExtWhenNoPolicy.sh
++++ jdk/test/sun/security/provider/PolicyFile/GrantAllPermToExtWhenNoPolicy.sh
+@@ -52,7 +52,7 @@
+ PATHSEP=":"
+ FILESEP="/"
+ ;;
+- Linux )
++ Linux | *BSD | Darwin )
+ PATHSEP=":"
+ FILESEP="/"
+ ;;
+--- jdk/test/sun/security/provider/PolicyFile/getinstance/getinstance.sh
++++ jdk/test/sun/security/provider/PolicyFile/getinstance/getinstance.sh
+@@ -59,7 +59,7 @@
+ PS=":"
+ FS="/"
+ ;;
+- Darwin )
++ *BSD | Darwin )
+ PS=":"
+ FS="/"
+ ;;
+--- jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/EngineArgs/DebugReportsOneExtraByte.sh
++++ jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/EngineArgs/DebugReportsOneExtraByte.sh
+@@ -33,7 +33,7 @@
+
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ PS=":"
+ FS="/"
+ ;;
+--- jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NotifyHandshakeTest.sh
++++ jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NotifyHandshakeTest.sh
+@@ -46,7 +46,7 @@
+
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ FILESEP="/"
+ PATHSEP=":"
+ ;;
+--- jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxy.sh
++++ jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxy.sh
+@@ -32,7 +32,7 @@
+ HOSTNAME=`uname -n`
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ PS=":"
+ FS="/"
+ ;;
+--- jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxyWithAuth.sh
++++ jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxyWithAuth.sh
+@@ -32,7 +32,7 @@
+ HOSTNAME=`uname -n`
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ PS=":"
+ FS="/"
+ ;;
+--- jdk/test/sun/security/tools/jarsigner/AlgOptions.sh
++++ jdk/test/sun/security/tools/jarsigner/AlgOptions.sh
+@@ -46,7 +46,7 @@
+ # set platform-dependent variables
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ NULL=/dev/null
+ PS=":"
+ FS="/"
+--- jdk/test/sun/security/tools/jarsigner/PercentSign.sh
++++ jdk/test/sun/security/tools/jarsigner/PercentSign.sh
+@@ -46,7 +46,7 @@
+ # set platform-dependent variables
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ NULL=/dev/null
+ PS=":"
+ FS="/"
+--- jdk/test/sun/security/tools/jarsigner/diffend.sh
++++ jdk/test/sun/security/tools/jarsigner/diffend.sh
+@@ -41,7 +41,7 @@
+ # set platform-dependent variables
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ NULL=/dev/null
+ PS=":"
+ FS="/"
+--- jdk/test/sun/security/tools/jarsigner/oldsig.sh
++++ jdk/test/sun/security/tools/jarsigner/oldsig.sh
+@@ -42,7 +42,7 @@
+ # set platform-dependent variables
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ NULL=/dev/null
+ PS=":"
+ FS="/"
+--- jdk/test/sun/security/tools/keytool/AltProviderPath.sh
++++ jdk/test/sun/security/tools/keytool/AltProviderPath.sh
+@@ -46,7 +46,7 @@
+ # set platform-dependent variables
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ NULL=/dev/null
+ PS=":"
+ FS="/"
+--- jdk/test/sun/security/tools/keytool/CloneKeyAskPassword.sh
++++ jdk/test/sun/security/tools/keytool/CloneKeyAskPassword.sh
+@@ -55,7 +55,7 @@
+ PATHSEP=":"
+ FILESEP="/"
+ ;;
+- Darwin )
++ *BSD | Darwin )
+ PATHSEP=":"
+ FILESEP="/"
+ ;;
+--- jdk/test/sun/security/tools/keytool/NoExtNPE.sh
++++ jdk/test/sun/security/tools/keytool/NoExtNPE.sh
+@@ -48,7 +48,7 @@
+ Linux )
+ FILESEP="/"
+ ;;
+- Darwin )
++ *BSD | Darwin )
+ FILESEP="/"
+ ;;
+ CYGWIN* )
+--- jdk/test/sun/security/tools/keytool/SecretKeyKS.sh
++++ jdk/test/sun/security/tools/keytool/SecretKeyKS.sh
+@@ -45,7 +45,7 @@
+ # set platform-dependent variables
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ NULL=/dev/null
+ PS=":"
+ FS="/"
+--- jdk/test/sun/security/tools/keytool/StandardAlgName.sh
++++ jdk/test/sun/security/tools/keytool/StandardAlgName.sh
+@@ -46,7 +46,7 @@
+ # set platform-dependent variables
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ NULL=/dev/null
+ PS=":"
+ FS="/"
+--- jdk/test/sun/security/tools/keytool/StorePasswordsByShell.sh
++++ jdk/test/sun/security/tools/keytool/StorePasswordsByShell.sh
+@@ -54,7 +54,7 @@
+ PATHSEP=":"
+ FILESEP="/"
+ ;;
+- Darwin )
++ *BSD | Darwin )
+ PATHSEP=":"
+ FILESEP="/"
+ ;;
+--- jdk/test/sun/security/tools/keytool/i18n.sh
++++ jdk/test/sun/security/tools/keytool/i18n.sh
+@@ -46,7 +46,7 @@
+ # set platform-dependent variables
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux )
++ SunOS | Linux | *BSD )
+ NULL=/dev/null
+ PS=":"
+ FS="/"
+--- jdk/test/sun/security/tools/keytool/printssl.sh
++++ jdk/test/sun/security/tools/keytool/printssl.sh
+@@ -40,7 +40,7 @@
+ # set platform-dependent variables
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ FS="/"
+ ;;
+ CYGWIN* )
+--- jdk/test/sun/security/tools/keytool/resource.sh
++++ jdk/test/sun/security/tools/keytool/resource.sh
+@@ -43,7 +43,7 @@
+ # set platform-dependent variables
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ NULL=/dev/null
+ FS="/"
+ ;;
+--- jdk/test/sun/security/tools/keytool/standard.sh
++++ jdk/test/sun/security/tools/keytool/standard.sh
+@@ -45,7 +45,7 @@
+ # set platform-dependent variables
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin | CYGWIN* )
++ SunOS | Linux | *BSD | Darwin | CYGWIN* )
+ FS="/"
+ ;;
+ Windows_* )
+--- jdk/test/sun/security/tools/policytool/Alias.sh
++++ jdk/test/sun/security/tools/policytool/Alias.sh
+@@ -47,7 +47,7 @@
+ # set platform-dependent variables
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ NULL=/dev/null
+ PS=":"
+ FS="/"
+--- jdk/test/sun/security/tools/policytool/ChangeUI.sh
++++ jdk/test/sun/security/tools/policytool/ChangeUI.sh
+@@ -46,7 +46,7 @@
+ # set platform-dependent variables
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ NULL=/dev/null
+ PS=":"
+ FS="/"
+--- jdk/test/sun/security/tools/policytool/OpenPolicy.sh
++++ jdk/test/sun/security/tools/policytool/OpenPolicy.sh
+@@ -46,7 +46,7 @@
+ # set platform-dependent variables
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ NULL=/dev/null
+ PS=":"
+ FS="/"
+--- jdk/test/sun/security/tools/policytool/SaveAs.sh
++++ jdk/test/sun/security/tools/policytool/SaveAs.sh
+@@ -47,7 +47,7 @@
+ # set platform-dependent variables
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ NULL=/dev/null
+ PS=":"
+ FS="/"
+--- jdk/test/sun/security/tools/policytool/UpdatePermissions.sh
++++ jdk/test/sun/security/tools/policytool/UpdatePermissions.sh
+@@ -47,7 +47,7 @@
+ # set platform-dependent variables
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ NULL=/dev/null
+ PS=":"
+ FS="/"
+--- jdk/test/sun/security/tools/policytool/UsePolicy.sh
++++ jdk/test/sun/security/tools/policytool/UsePolicy.sh
+@@ -46,7 +46,7 @@
+ # set platform-dependent variables
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ NULL=/dev/null
+ PS=":"
+ FS="/"
+--- jdk/test/sun/security/tools/policytool/i18n.sh
++++ jdk/test/sun/security/tools/policytool/i18n.sh
+@@ -49,7 +49,7 @@
+ # set platform-dependent variables
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ NULL=/dev/null
+ PS=":"
+ FS="/"
+--- jdk/test/sun/tools/common/CommonSetup.sh
++++ jdk/test/sun/tools/common/CommonSetup.sh
+@@ -47,6 +47,7 @@
+ # isLinux - true if OS is Linux
+ # isSolaris - true if OS is Solaris
+ # isWindows - true if OS is Windows
++# isBSD - true if OS is BSD
+ # isMacos - true if OS is Macos X
+
+
+@@ -82,6 +83,7 @@
+ isSolaris=false
+ isUnknownOS=false
+ isWindows=false
++isBSD=false
+ isMacos=false
+
+ OS=`uname -s`
+@@ -105,6 +107,10 @@
+ OS="Linux"
+ isLinux=true
+ ;;
++ *BSD )
++ OS="BSD"
++ isBSD=true
++ ;;
+ Darwin )
+ OS="Mac OS X"
+ isMacos=true
+--- jdk/test/sun/tools/jconsole/ResourceCheckTest.sh
++++ jdk/test/sun/tools/jconsole/ResourceCheckTest.sh
+@@ -54,7 +54,7 @@
+
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin)
++ SunOS | Linux | *BSD | Darwin )
+ PATHSEP=":"
+ ;;
+
+--- jdk/test/sun/tools/native2ascii/resources/ImmutableResourceTest.sh
++++ jdk/test/sun/tools/native2ascii/resources/ImmutableResourceTest.sh
+@@ -56,7 +56,7 @@
+
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin )
++ SunOS | Linux | *BSD | Darwin )
+ PATHSEP=":"
+ ;;
+
+--- jdk/test/tools/launcher/ExecutionEnvironment.java
++++ jdk/test/tools/launcher/ExecutionEnvironment.java
+@@ -180,7 +180,7 @@
+
+ Map<String, String> env = new HashMap<>();
+
+- if (TestHelper.isLinux || TestHelper.isMacOSX) {
++ if (TestHelper.isLinux || TestHelper.isBSD || TestHelper.isMacOSX) {
+ for (String x : LD_PATH_STRINGS) {
+ String pairs[] = x.split("=");
+ env.put(pairs[0], pairs[1]);
+--- jdk/test/tools/launcher/RunpathTest.java
++++ jdk/test/tools/launcher/RunpathTest.java
+@@ -69,7 +69,7 @@
+ }
+
+ public static void main(String... args) throws Exception {
+- if (isSolaris || isLinux) {
++ if (isSolaris || isLinux || isBSD) {
+ RunpathTest rp = new RunpathTest();
+ rp.testRpath();
+ }
+--- jdk/test/tools/launcher/Test7029048.java
++++ jdk/test/tools/launcher/Test7029048.java
+@@ -223,7 +223,7 @@
+ } else if (isSolaris && passes < 9) {
+ throw new Exception("Test7029048: FAIL: " +
+ "all tests did not run, expected " + 9 + " got " + passes);
+- } else if (isLinux && passes < 6) {
++ } else if ((isLinux || isBSD) && passes < 6) {
+ throw new Exception("Test7029048: FAIL: " +
+ "all tests did not run, expected " + 6 + " got " + passes);
+ } else {
+--- jdk/test/tools/launcher/TestHelper.java
++++ jdk/test/tools/launcher/TestHelper.java
+@@ -92,6 +92,8 @@
+ System.getProperty("os.name", "unknown").startsWith("SunOS");
+ static final boolean isLinux =
+ System.getProperty("os.name", "unknown").startsWith("Linux");
++ static final boolean isBSD =
++ System.getProperty("os.name", "unknown").endsWith("BSD");
+ static final String LIBJVM = isWindows
+ ? "jvm.dll"
+ : "libjvm" + (isMacOSX ? ".dylib" : ".so");
+--- langtools/test/Makefile
++++ langtools/test/Makefile
+@@ -36,6 +36,14 @@
+ ARCH=i586
+ endif
+ endif
++ifeq ($(OSNAME), FreeBSD)
++ PLATFORM = bsd
++ JT_PLATFORM = linux
++ ARCH = $(shell uname -p)
++ ifeq ($(ARCH), i386)
++ ARCH=i586
++ endif
++endif
+ ifeq ($(OSNAME), Darwin)
+ PLATFORM = bsd
+ JT_PLATFORM = linux
+--- langtools/test/tools/javah/ReadOldClass.sh
++++ langtools/test/tools/javah/ReadOldClass.sh
+@@ -43,7 +43,7 @@
+ # set platform-dependent variables
+ OS=`uname -s`
+ case "$OS" in
+- SunOS | Linux | Darwin | CYGWIN* )
++ SunOS | Linux | *BSD | Darwin | CYGWIN* )
+ PS=":"
+ FS="/"
+ ;;
diff --git a/java/openjdk8/files/patch-configure b/java/openjdk8/files/patch-configure
new file mode 100644
index 000000000000..62ed12627b1b
--- /dev/null
+++ b/java/openjdk8/files/patch-configure
@@ -0,0 +1,10 @@
+--- configure
++++ configure
+@@ -26,4 +26,6 @@
+ # make sure that is called using bash.
+
+ this_script_dir=`dirname $0`
+-bash $this_script_dir/common/autoconf/configure "$@"
++export CONFIG_SHELL=%%LOCALBASE%%/bin/bash
++export MAKE=%%LOCALBASE%%/bin/gmake
++%%LOCALBASE%%/bin/bash $this_script_dir/common/autoconf/configure "$@"
diff --git a/java/openjdk8/files/patch-hotspot-src-os-bsd-vm-os_bsd.cpp b/java/openjdk8/files/patch-hotspot-src-os-bsd-vm-os_bsd.cpp
new file mode 100644
index 000000000000..4bd1934069cb
--- /dev/null
+++ b/java/openjdk8/files/patch-hotspot-src-os-bsd-vm-os_bsd.cpp
@@ -0,0 +1,11 @@
+--- hotspot/src/os/bsd/vm/os_bsd.cpp
++++ hotspot/src/os/bsd/vm/os_bsd.cpp
+@@ -441,7 +441,7 @@
+ ld_library_path = (char *) malloc(sizeof(REG_DIR) + sizeof("/lib/") +
+ strlen(cpu_arch) + sizeof(DEFAULT_LIBPATH));
+ #ifdef __FreeBSD__
+- sprintf(ld_library_path, DEFAULT_LIBPATH ":/usr/local/lib");
++ sprintf(ld_library_path, DEFAULT_LIBPATH ":%%LOCALBASE%%/lib");
+ #else
+ sprintf(ld_library_path, REG_DIR "/lib/%s:" DEFAULT_LIBPATH, cpu_arch);
+ #endif
diff --git a/java/openjdk8/files/patch-jdk-make-lib-CoreLibraries.gmk b/java/openjdk8/files/patch-jdk-make-lib-CoreLibraries.gmk
new file mode 100644
index 000000000000..08e8d283b575
--- /dev/null
+++ b/java/openjdk8/files/patch-jdk-make-lib-CoreLibraries.gmk
@@ -0,0 +1,16 @@
+--- jdk/make/lib/CoreLibraries.gmk
++++ jdk/make/lib/CoreLibraries.gmk
+@@ -513,11 +513,12 @@
+ CFLAGS := $(CFLAGS_JDKLIB) \
+ -I$(JDK_TOPDIR)/src/share/npt \
+ -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/npt, \
++ CFLAGS_bsd := %%ICONV_CPPFLAGS%%, \
+ MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libnpt/mapfile-vers, \
+ LDFLAGS := $(LDFLAGS_JDKLIB) \
+ $(call SET_SHARED_LIBRARY_ORIGIN), \
+ LDFLAGS_macosx := -liconv, \
+- LDFLAGS_bsd := -liconv, \
++ LDFLAGS_bsd := %%ICONV_LDFLAGS%%, \
+ LDFLAGS_SUFFIX_windows := -export:nptInitialize -export:nptTerminate, \
+ LDFLAGS_SUFFIX_solaris := -lc, \
+ VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
diff --git a/java/openjdk8/files/patch-jdk-make-lib-ServiceabilityLibraries.gmk b/java/openjdk8/files/patch-jdk-make-lib-ServiceabilityLibraries.gmk
new file mode 100644
index 000000000000..8fd6e4998dbf
--- /dev/null
+++ b/java/openjdk8/files/patch-jdk-make-lib-ServiceabilityLibraries.gmk
@@ -0,0 +1,19 @@
+--- jdk/make/lib/ServiceabilityLibraries.gmk
++++ jdk/make/lib/ServiceabilityLibraries.gmk
+@@ -244,6 +244,7 @@
+ CFLAGS := $(LIBINSTRUMENT_CFLAGS), \
+ CFLAGS_debug := -DJPLIS_LOGGING, \
+ CFLAGS_release := -DNO_JPLIS_LOGGING, \
++ CFLAGS_bsd := %%ICONV_CPPFLAGS%%, \
+ MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libinstrument/mapfile-vers, \
+ LDFLAGS := $(LDFLAGS_JDKLIB) \
+ $(call SET_SHARED_LIBRARY_ORIGIN) \
+@@ -255,7 +256,7 @@
+ -framework Cocoa -framework Security -framework ApplicationServices, \
+ LDFLAGS_SUFFIX := $(LIBINSTRUMENT_LDFLAGS_SUFFIX), \
+ LDFLAGS_SUFFIX_macosx := -liconv $(LIBZ), \
+- LDFLAGS_SUFFIX_bsd := -liconv $(LIBZ) -L $(INSTALL_LIBRARIES_HERE)/jli -ljli, \
++ LDFLAGS_SUFFIX_bsd := %%ICONV_LDFLAGS%% $(LIBZ) -L $(INSTALL_LIBRARIES_HERE)/jli -ljli, \
+ LDFLAGS_SUFFIX_solaris := $(LIBZ) -L $(INSTALL_LIBRARIES_HERE)/jli -ljli $(LIBDL) -lc, \
+ LDFLAGS_SUFFIX_linux := $(LIBZ) -L $(INSTALL_LIBRARIES_HERE)/jli -ljli $(LIBDL), \
+ VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
diff --git a/java/openjdk8/files/patch-jdk-make-lib-SoundLibraries.gmk b/java/openjdk8/files/patch-jdk-make-lib-SoundLibraries.gmk
new file mode 100644
index 000000000000..a83b946603e8
--- /dev/null
+++ b/java/openjdk8/files/patch-jdk-make-lib-SoundLibraries.gmk
@@ -0,0 +1,16 @@
+--- jdk/make/lib/SoundLibraries.gmk
++++ jdk/make/lib/SoundLibraries.gmk
+@@ -196,11 +196,11 @@
+ -DUSE_PORTS=TRUE, \
+ CFLAGS_linux := -DUSE_PLATFORM_MIDI_OUT=TRUE \
+ -DUSE_PLATFORM_MIDI_IN=TRUE, \
+- CFLAGS_bsd := -I/usr/local/include, \
++ CFLAGS_bsd := -I%%LOCALBASE%%/include, \
+ MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjsoundalsa/mapfile-vers, \
+ LDFLAGS := $(LDFLAGS_JDKLIB) \
+ $(call SET_SHARED_LIBRARY_ORIGIN), \
+- LDFLAGS_bsd := -L/usr/local/lib, \
++ LDFLAGS_bsd := -L%%LOCALBASE%%/lib, \
+ LDFLAGS_SUFFIX := $(ALSA_LIBS) -ljava -ljvm, \
+ OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjsoundalsa, \
+ DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
diff --git a/java/openjdk8/files/patch-jdk-src-share-classes-com-sun-java-swing-plaf-gtk-Metacity.java b/java/openjdk8/files/patch-jdk-src-share-classes-com-sun-java-swing-plaf-gtk-Metacity.java
new file mode 100644
index 000000000000..a846cb8af99e
--- /dev/null
+++ b/java/openjdk8/files/patch-jdk-src-share-classes-com-sun-java-swing-plaf-gtk-Metacity.java
@@ -0,0 +1,15 @@
+--- jdk/src/share/classes/com/sun/java/swing/plaf/gtk/Metacity.java
++++ jdk/src/share/classes/com/sun/java/swing/plaf/gtk/Metacity.java
+@@ -477,10 +477,8 @@
+ String[] dirs = new String[] {
+ userHome + sep + ".themes",
+ System.getProperty("swing.metacitythemedir"),
+- "/usr/X11R6/share/themes",
+- "/usr/X11R6/share/gnome/themes",
+- "/usr/local/share/themes",
+- "/usr/local/share/gnome/themes",
++ "%%LOCALBASE%%/share/themes",
++ "%%LOCALBASE%%/share/gnome/themes",
+ "/usr/share/themes",
+ "/usr/gnome/share/themes", // Debian/Redhat/Solaris
+ "/opt/gnome2/share/themes" // SuSE
diff --git a/java/openjdk8/files/patch-jdk-src-solaris-bin-java_md_solinux.h b/java/openjdk8/files/patch-jdk-src-solaris-bin-java_md_solinux.h
new file mode 100644
index 000000000000..123b860cb9aa
--- /dev/null
+++ b/java/openjdk8/files/patch-jdk-src-solaris-bin-java_md_solinux.h
@@ -0,0 +1,12 @@
+--- jdk/src/solaris/bin/java_md_solinux.h
++++ jdk/src/solaris/bin/java_md_solinux.h
+@@ -48,6 +48,9 @@
+ #ifdef __linux__
+ static const char *system_dir = "/usr/java";
+ static const char *user_dir = "/java";
++#elif defined(_ALLBSD_SOURCE)
++static const char *system_dir = "%%LOCALBASE%%/openjdk8";
++static const char *user_dir = "/java";
+ #else /* Solaris */
+ static const char *system_dir = "/usr/jdk";
+ static const char *user_dir = "/jdk";
diff --git a/java/openjdk8/files/patch-jdk-src-solaris-classes-sun-nio-fs-BsdFileSystemProvider.java b/java/openjdk8/files/patch-jdk-src-solaris-classes-sun-nio-fs-BsdFileSystemProvider.java
new file mode 100644
index 000000000000..951b54497623
--- /dev/null
+++ b/java/openjdk8/files/patch-jdk-src-solaris-classes-sun-nio-fs-BsdFileSystemProvider.java
@@ -0,0 +1,30 @@
+--- jdk/src/solaris/classes/sun/nio/fs/BsdFileSystemProvider.java
++++ jdk/src/solaris/classes/sun/nio/fs/BsdFileSystemProvider.java
+@@ -26,6 +26,7 @@
+ package sun.nio.fs;
+
+ import java.nio.file.*;
++import java.nio.file.spi.FileSystemProvider;
+ import java.nio.file.spi.FileTypeDetector;
+ import java.io.IOException;
+ import java.security.AccessController;
+@@ -40,6 +41,10 @@
+ super();
+ }
+
++ public BsdFileSystemProvider(FileSystemProvider f) {
++ super();
++ }
++
+ @Override
+ BsdFileSystem newFileSystem(String dir) {
+ return new BsdFileSystem(this, dir);
+@@ -54,7 +59,7 @@
+ FileTypeDetector getFileTypeDetector() {
+ Path userMimeTypes = Paths.get(AccessController.doPrivileged(
+ new GetPropertyAction("user.home")), ".mime.types");
+- Path etcMimeTypes = Paths.get("/etc/mime.types");
++ Path etcMimeTypes = Paths.get("%%LOCALBASE%%/etc/mime.types");
+
+ return chain(new GnomeFileTypeDetector(),
+ new MimeTypesFileTypeDetector(userMimeTypes),
diff --git a/java/openjdk8/files/patch-jdk-src-solaris-classes-sun-nio-fs-DefaultFileSystemProvider.java b/java/openjdk8/files/patch-jdk-src-solaris-classes-sun-nio-fs-DefaultFileSystemProvider.java
new file mode 100644
index 000000000000..ddb2a3d1fa0f
--- /dev/null
+++ b/java/openjdk8/files/patch-jdk-src-solaris-classes-sun-nio-fs-DefaultFileSystemProvider.java
@@ -0,0 +1,38 @@
+--- jdk/src/solaris/classes/sun/nio/fs/DefaultFileSystemProvider.java
++++ jdk/src/solaris/classes/sun/nio/fs/DefaultFileSystemProvider.java
+@@ -27,6 +27,8 @@
+
+ import java.nio.file.spi.FileSystemProvider;
+ import java.security.AccessController;
++import java.util.Set;
++import java.util.HashSet;
+ import sun.security.action.GetPropertyAction;
+
+ /**
+@@ -36,6 +38,15 @@
+ public class DefaultFileSystemProvider {
+ private DefaultFileSystemProvider() { }
+
++ private static final Set<String> validFileSystemProviders
++ = new HashSet<String>();
++ static {
++ validFileSystemProviders.add("sun.nio.fs.SolarisFileSystemProvider");
++ validFileSystemProviders.add("sun.nio.fs.LinuxFileSystemProvider");
++ validFileSystemProviders.add("sun.nio.fs.BsdFileSystemProvider");
++ validFileSystemProviders.add("sun.nio.fs.MacOSXFileSystemProvider");
++ }
++
+ @SuppressWarnings("unchecked")
+ private static FileSystemProvider createProvider(String cn) {
+ Class<FileSystemProvider> c;
+@@ -57,6 +68,10 @@
+ public static FileSystemProvider create() {
+ String osname = AccessController
+ .doPrivileged(new GetPropertyAction("os.name"));
++ String fileSystemProvider = System
++ .getProperty("java.nio.file.spi.DefaultFileSystemProvider");
++ if (validFileSystemProviders.contains(fileSystemProvider))
++ return createProvider(fileSystemProvider);
+ if (osname.equals("SunOS"))
+ return createProvider("sun.nio.fs.SolarisFileSystemProvider");
+ if (osname.equals("Linux"))
diff --git a/java/openjdk8/pkg-descr b/java/openjdk8/pkg-descr
new file mode 100644
index 000000000000..e9c6f981cf97
--- /dev/null
+++ b/java/openjdk8/pkg-descr
@@ -0,0 +1,3 @@
+An open-source implementation of the Java Platform, Standard Edition,
+
+WWW: http://openjdk.java.net/
diff --git a/java/openjdk8/pkg-message b/java/openjdk8/pkg-message
new file mode 100644
index 000000000000..a651593720d1
--- /dev/null
+++ b/java/openjdk8/pkg-message
@@ -0,0 +1,16 @@
+======================================================================
+
+This OpenJDK implementation requires fdescfs(5) mounted on /dev/fd and
+procfs(5) mounted on /proc.
+
+If you have not done it yet, please do the following:
+
+ mount -t fdescfs fdesc /dev/fd
+ mount -t procfs proc /proc
+
+To make it permanent, you need the following lines in /etc/fstab:
+
+ fdesc /dev/fd fdescfs rw 0 0
+ proc /proc procfs rw 0 0
+
+======================================================================