From aa8f38c3b67bc647eb1082c28adbf84a577ec664 Mon Sep 17 00:00:00 2001 From: Jung-uk Kim Date: Fri, 28 Mar 2014 22:11:29 +0000 Subject: [PATCH] Add a port of OpenJDK8. Submitted by: Brian Gardner (preliminary version) --- java/Makefile | 1 + java/openjdk8/Makefile | 211 + java/openjdk8/distinfo | 4 + .../files/bsd.fontconfig.properties.in | 191 + java/openjdk8/files/cacerts | Bin 0 -> 82586 bytes java/openjdk8/files/patch-bsd | 6843 +++++++++++++++++ java/openjdk8/files/patch-bsd-test | 1344 ++++ java/openjdk8/files/patch-configure | 10 + .../patch-hotspot-src-os-bsd-vm-os_bsd.cpp | 11 + .../patch-jdk-make-lib-CoreLibraries.gmk | 16 + ...h-jdk-make-lib-ServiceabilityLibraries.gmk | 19 + .../patch-jdk-make-lib-SoundLibraries.gmk | 16 + ...-com-sun-java-swing-plaf-gtk-Metacity.java | 15 + ...atch-jdk-src-solaris-bin-java_md_solinux.h | 12 + ...sses-sun-nio-fs-BsdFileSystemProvider.java | 30 + ...-sun-nio-fs-DefaultFileSystemProvider.java | 38 + java/openjdk8/pkg-descr | 3 + java/openjdk8/pkg-message | 16 + 18 files changed, 8780 insertions(+) create mode 100644 java/openjdk8/Makefile create mode 100644 java/openjdk8/distinfo create mode 100644 java/openjdk8/files/bsd.fontconfig.properties.in create mode 100644 java/openjdk8/files/cacerts create mode 100644 java/openjdk8/files/patch-bsd create mode 100644 java/openjdk8/files/patch-bsd-test create mode 100644 java/openjdk8/files/patch-configure create mode 100644 java/openjdk8/files/patch-hotspot-src-os-bsd-vm-os_bsd.cpp create mode 100644 java/openjdk8/files/patch-jdk-make-lib-CoreLibraries.gmk create mode 100644 java/openjdk8/files/patch-jdk-make-lib-ServiceabilityLibraries.gmk create mode 100644 java/openjdk8/files/patch-jdk-make-lib-SoundLibraries.gmk create mode 100644 java/openjdk8/files/patch-jdk-src-share-classes-com-sun-java-swing-plaf-gtk-Metacity.java create mode 100644 java/openjdk8/files/patch-jdk-src-solaris-bin-java_md_solinux.h create mode 100644 java/openjdk8/files/patch-jdk-src-solaris-classes-sun-nio-fs-BsdFileSystemProvider.java create mode 100644 java/openjdk8/files/patch-jdk-src-solaris-classes-sun-nio-fs-DefaultFileSystemProvider.java create mode 100644 java/openjdk8/pkg-descr create mode 100644 java/openjdk8/pkg-message 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 + +.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 + +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 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 0000000000000000000000000000000000000000..0a37aa432ddac767fd2242c59298a3c3fba7375f GIT binary patch literal 82586 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 | $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 ++ ++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 + # include + ++#if __FreeBSD_version > 900030 ++# include ++#else ++# include ++#endif ++ + #if defined(__FreeBSD__) || defined(__NetBSD__) + # include + #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 @@ ++ ++ ++ ++ ++ ++ ++ java ++ ${root}/src/bsd/classes ++ ${includes} ++ ${excludes} ++ US-ASCII ++ ++ ++ ++ ${root}/src/bsd/classes ++ +--- jdk/make/netbeans/common/bsd-view.ent ++++ jdk/make/netbeans/common/bsd-view.ent +@@ -0,0 +1,39 @@ ++ ++ ++ ++ ++ ++ ++ ${root}/src/bsd/classes ++ ${includes} ++ ${excludes} ++ +--- jdk/make/netbeans/j2se/nbproject/project.xml ++++ jdk/make/netbeans/j2se/nbproject/project.xml +@@ -34,6 +34,7 @@ + + ++ + + + +@@ -41,6 +42,7 @@ + + + ++ + + + +@@ -60,6 +62,7 @@ + + + &share-sources; ++ &bsd-sources; + &macosx-sources; + &unix-sources; + &windows-sources; +@@ -86,6 +89,7 @@ + + + &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 @@ + + + ${root}/src/share/classes ++ ${root}/src/bsd/classes + ${root}/src/macosx/classes + ${root}/src/solaris/classes + ${root}/src/windows/classes +--- jdk/make/netbeans/common/make.xml ++++ jdk/make/netbeans/common/make.xml +@@ -32,16 +32,21 @@ + --> + + +- +- ++ ++ + + +- ++ + + + + + ++ ++ ++ ++ ++ + + + +@@ -56,7 +61,7 @@ + + + +- ++ + + + +--- jdk/make/netbeans/world/nbproject/project.xml ++++ jdk/make/netbeans/world/nbproject/project.xml +@@ -34,12 +34,14 @@ + + ++ + + + + + + ++ + + + +@@ -58,6 +60,7 @@ + + + &share-sources; ++ &bsd-sources; + &macosx-sources; + &unix-sources; + &windows-sources; +@@ -69,6 +72,7 @@ + + + &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= ++# ++# 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== (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.= ++# ++# 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. ++# ++# 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 + #include +-#ifdef MACOSX ++#ifdef _ALLBSD_SOURCE + #include + #include + #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 + #include "management.h" + #include "sun_management_DiagnosticCommandImpl.h" ++#include + + 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 +-#ifdef __linux__ +-#include +-#else ++#ifdef __solaris__ + #include ++#else ++#include + #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 + + 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 + #include + +-#ifdef _ALLBSD_SOURCE +-#include +-#include +-#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 + #include + #include +-#ifdef MACOSX ++#ifdef _ALLBSD_SOURCE + #include + #include + #include /* 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 + #include + #include +-#if defined(__APPLE__) ++#if defined(__APPLE__) || defined(__FreeBSD__) + #include + #include ++#elif defined(__OpenBSD__) ++#include ++#elif defined(__NetBSD__) ++#include ++#endif + #include + #include + #include + #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 + #include + #include +@@ -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 ++#include ++#include ++#include ++#include ++#include ++#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 + #include + ++#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 + #include + #include ++#ifndef __FreeBSD__ + #include ++#endif + #include + #include + +--- 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 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 validFileSystemProviders ++ = new HashSet(); ++ 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 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 + +======================================================================