summaryrefslogtreecommitdiff
path: root/lang/openjdk8
diff options
context:
space:
mode:
authortnn <tnn>2015-02-08 08:41:25 +0000
committertnn <tnn>2015-02-08 08:41:25 +0000
commit5143f0d6b126573bd11b6b2f95edafab71a1d0a9 (patch)
treed51a0a75a9b63f9a5af8521e4c24cf15bf748ac7 /lang/openjdk8
parentc5a4e046385a338476e7ba72b43fa68caaf2c539 (diff)
downloadpkgsrc-5143f0d6b126573bd11b6b2f95edafab71a1d0a9.tar.gz
Import openjdk8-1.8.31 as lang/openjdk8.
Open-source implementation of the Java Platform, Standard Edition.
Diffstat (limited to 'lang/openjdk8')
-rw-r--r--lang/openjdk8/DESCR8
-rw-r--r--lang/openjdk8/Makefile194
-rw-r--r--lang/openjdk8/PLIST638
-rw-r--r--lang/openjdk8/PLIST.debug38
-rw-r--r--lang/openjdk8/bootstrap.mk69
-rw-r--r--lang/openjdk8/buildlink3.mk13
-rw-r--r--lang/openjdk8/distinfo76
-rw-r--r--lang/openjdk8/hacks.mk15
-rw-r--r--lang/openjdk8/options.mk85
-rw-r--r--lang/openjdk8/patches/patch-aa146
-rw-r--r--lang/openjdk8/patches/patch-al47
-rw-r--r--lang/openjdk8/patches/patch-an14
-rw-r--r--lang/openjdk8/patches/patch-ap53
-rw-r--r--lang/openjdk8/patches/patch-as68
-rw-r--r--lang/openjdk8/patches/patch-at42
-rw-r--r--lang/openjdk8/patches/patch-ba15
-rw-r--r--lang/openjdk8/patches/patch-bh16
-rw-r--r--lang/openjdk8/patches/patch-bi45
-rw-r--r--lang/openjdk8/patches/patch-bn53
-rw-r--r--lang/openjdk8/patches/patch-common_autoconf_generated-configure.sh102
-rw-r--r--lang/openjdk8/patches/patch-common_autoconf_spec.gmk.in55
-rw-r--r--lang/openjdk8/patches/patch-hotspot_agent_src_share_classes_sun_jvm_hotspot_utilities_PlatformInfo.java13
-rw-r--r--lang/openjdk8/patches/patch-hotspot_make_bsd_makefiles_defs.make17
-rw-r--r--lang/openjdk8/patches/patch-hotspot_make_bsd_makefiles_rules.make50
-rw-r--r--lang/openjdk8/patches/patch-hotspot_src_os_bsd_vm_osThread__bsd.cpp13
-rw-r--r--lang/openjdk8/patches/patch-hotspot_src_os_posix_vm_os__posix.cpp36
-rw-r--r--lang/openjdk8/patches/patch-hotspot_src_share_vm_opto_node.cpp15
-rw-r--r--lang/openjdk8/patches/patch-jdk_make_GenerateSources.gmk15
-rw-r--r--lang/openjdk8/patches/patch-jdk_make_Images.gmk25
-rw-r--r--lang/openjdk8/patches/patch-jdk_make_lib_SoundLibraries.gmk13
-rw-r--r--lang/openjdk8/patches/patch-jdk_src_share_native_sun_awt_image_jpeg_imageioJPEG.c15
-rw-r--r--lang/openjdk8/patches/patch-jdk_src_share_native_sun_awt_image_jpeg_jpegdecoder.c15
-rw-r--r--lang/openjdk8/patches/patch-jdk_src_solaris_bin_ergo.c20
-rw-r--r--lang/openjdk8/patches/patch-jdk_src_solaris_classes_java_lang_UNIXProcess.java.bsd46
-rw-r--r--lang/openjdk8/patches/patch-jdk_src_solaris_classes_sun_net_PortConfig.java13
-rw-r--r--lang/openjdk8/patches/patch-jdk_src_solaris_classes_sun_nio_ch_DefaultAsynchronousChannelProvider.java16
-rw-r--r--lang/openjdk8/patches/patch-jdk_src_solaris_native_com_sun_media_sound_PLATFORM__API__BsdOS__ALSA__PCM.c17
-rw-r--r--lang/openjdk8/patches/patch-jdk_src_solaris_native_java_lang_UNIXProcess__md.c50
-rw-r--r--lang/openjdk8/patches/patch-jdk_src_solaris_native_java_lang_java__props__md.c16
-rw-r--r--lang/openjdk8/patches/patch-jdk_src_solaris_native_java_net_NetworkInterface.c61
-rw-r--r--lang/openjdk8/patches/patch-jdk_src_solaris_native_java_net_net__util__md.c16
-rw-r--r--lang/openjdk8/patches/patch-jdk_src_solaris_native_sun_awt_X11Color.c15
-rw-r--r--lang/openjdk8/patches/patch-jdk_src_solaris_native_sun_nio_ch_sctp_SctpChannelImpl.c15
-rw-r--r--lang/openjdk8/patches/patch-jdk_src_solaris_native_sun_nio_ch_sctp_SctpNet.c14
-rw-r--r--lang/openjdk8/patches/patch-jdk_src_solaris_native_sun_security_pkcs11_j2secmod_md.c15
-rw-r--r--lang/openjdk8/patches/patch-jdk_test_Makefile28
-rw-r--r--lang/openjdk8/patches/patch-jdk_test_java_beans_Introspector_4168475_Test4168475.java15
-rw-r--r--lang/openjdk8/patches/patch-jdk_test_java_beans_Introspector_4520754_Test4520754.java15
-rw-r--r--lang/openjdk8/patches/patch-jdk_test_java_beans_Introspector_Test4144543.java16
-rw-r--r--lang/openjdk8/patches/patch-jdk_test_java_lang_management_OperatingSystemMXBean_GetSystemLoadAverage.java15
-rw-r--r--lang/openjdk8/patches/patch-jdk_test_sun_security_ec_TestEC.java15
-rw-r--r--lang/openjdk8/patches/patch-langtools_make_BuildLangtools.gmk13
-rw-r--r--lang/openjdk8/patches/patch-langtools_make_build.xml24
53 files changed, 2474 insertions, 0 deletions
diff --git a/lang/openjdk8/DESCR b/lang/openjdk8/DESCR
new file mode 100644
index 00000000000..3eeabb8a39d
--- /dev/null
+++ b/lang/openjdk8/DESCR
@@ -0,0 +1,8 @@
+Open-source implementation of the Java Platform, Standard Edition.
+
+This package is NOT certified to be compatible with any Java standard.
+Use at own risk.
+
+Mandatory trademark notice:
+ "OpenJDK is a trademark or registered trademark of Oracle America,
+ Inc. in the United States and other countries."
diff --git a/lang/openjdk8/Makefile b/lang/openjdk8/Makefile
new file mode 100644
index 00000000000..9f7c4b56874
--- /dev/null
+++ b/lang/openjdk8/Makefile
@@ -0,0 +1,194 @@
+# $NetBSD: Makefile,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+DISTNAME= openjdk-1.8.31-20150207
+PKGNAME= openjdk8-1.8.31
+CATEGORIES= lang
+MASTER_SITES= ${MASTER_SITE_LOCAL:=openjdk7/}
+EXTRACT_SUFX= .tar.xz
+
+MAINTAINER= pkgsrc-users@NetBSD.org
+HOMEPAGE= http://openjdk.java.net/
+COMMENT= Open-source implementation of the Java Platform, Standard Edition
+LICENSE= gnu-gpl-v2
+
+DISTFILES= ${DEFAULT_DISTFILES}
+EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
+
+# Use same DIST_SUBDIR as openjdk7 to avoid duplication of common distfiles
+DIST_SUBDIR= openjdk7
+
+JAVA_NAME= openjdk8
+JAVA_HOME= ${PREFIX}/java/${JAVA_NAME}
+JAVA_WRAPPERS= jar java javac javadoc javah javap keytool orbd \
+ policytool rmid rmiregistry servertool tnameserv
+
+BUILD_DEPENDS+= mozilla-rootcerts>=1.0.20140820nb2:../../security/mozilla-rootcerts
+
+GNU_CONFIGURE= yes
+CONFIGURE_SCRIPT= common/autoconf/configure
+CONFIG_SHELL= bash
+USE_LANGUAGES= c c++
+USE_TOOLS+= bash gmake pax pkg-config unzip:run zip:run
+UNLIMIT_RESOURCES= datasize stacksize
+WRKSRC= ${WRKDIR}/openjdk
+PLIST_SRC+= ${PLIST_SRC_DFLT}
+
+BUILDLINK_PASSTHRU_DIRS+= ${ALT_BOOTDIR}
+PREPEND_PATH+= ${ALT_BOOTDIR}/bin
+
+CONFIGURE_ARGS+= --with-boot-jdk=${ALT_BOOTDIR}
+CONFIGURE_ARGS+= --with-zlib=system
+CONFIGURE_ARGS+= --with-giflib=bundled
+CONFIGURE_ARGS+= --with-cups=${BUILDLINK_PREFIX.cups}
+CONFIGURE_ARGS+= --with-freetype-lib=${BUILDLINK_PREFIX.freetype2}/lib
+CONFIGURE_ARGS+= --with-freetype-include=${BUILDLINK_PREFIX.freetype2}/include
+CONFIGURE_ARGS+= --disable-freetype-bundling
+CONFIGURE_ARGS+= --with-jobs=${MAKE_JOBS:U1}
+CONFIGURE_ARGS+= --with-num-cores=${MAKE_JOBS:U1}
+CONFIGURE_ARGS+= --with-memory-size=768
+CONFIGURE_ARGS+= --disable-ccache
+CONFIGURE_ARGS+= --with-user-release-suffix=pkgsrc_${PKGVERSION}
+CONFIGURE_ARGS+= --with-update-version=u${PKGVERSION_NOREV:S/1.8.//}
+
+ALL_ENV+= PKGSRC_BOOT_JDK_JVMARGS="-XX:+UseSerialGC -Xmx768M"
+ALL_ENV+= PKGSRC_BOOT_JDK_TOOLARGS="-J-XX:+UseSerialGC -J-Xmx768M"
+
+CHECK_PORTABILITY_SKIP+= hotspot/test/runtime/*/*.sh
+
+# Avoid build errors when JAVA_HOME and CLASSPATH are defined by user.
+MAKE_ENV+= JAVA_HOME=
+MAKE_ENV+= CLASSPATH=
+
+BUILDDIR= ${WRKSRC}/build/${OPSYS:C/.*BSD/bsd/:S/DragonFly/bsd/:S/SunOS/solaris/}-${MACHINE_ARCH:S/i386/x86/}-normal-${BUILD_VARIANT}-${BUILD_DEBUG_LEVEL}
+LD_LIBRARY_PATH= ${WRKDIR}/bootstrap/jre/lib/${MACHINE_ARCH:S/x86_64/amd64/}:${WRKDIR}/bootstrap/jre/lib/${MACHINE_ARCH:S/x86_64/amd64/}/jli:${WRKDIR}/bootstrap/jre/lib/${MACHINE_ARCH:S/x86_64/amd64/}/server
+CONFIGURE_ENV+= LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
+MAKE_ENV+= LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
+BUILDLINK_PASSTHRU_RPATHDIRS+= ${PREFIX}/java/openjdk8/jre/lib/${MACHINE_ARCH:S/x86_64/amd64/}
+
+PLIST_SUBST+= ARCH=${MACHINE_ARCH:S/x86_64/amd64/}
+PLIST_SUBST+= LOWER_OPSYS=${LOWER_OPSYS}
+
+.include "../../mk/compiler.mk"
+
+SUBST_CLASSES+= libpath
+SUBST_STAGE.libpath= pre-build
+SUBST_FILES.libpath+= hotspot/src/os/bsd/vm/os_bsd.cpp
+SUBST_VARS.libpath= PREFIX
+
+.if !empty(PKGSRC_COMPILER:Mclang)
+_WRAP_EXTRA_ARGS.CXX+= -Wno-parentheses -Wno-sign-conversion \
+ -Wno-shorten-64-to-32 -Wno-conversion \
+ -Wno-unused-value -Wno-switch-enum -Wno-switch \
+ -Wno-tautological-compare \
+ -Wno-delete-non-virtual-dtor \
+ -Wno-return-type -Wno-unused-parameter \
+ -Wno-parentheses-equality -Wno-empty-body \
+ -Wno-format -Wno-dynamic-class-memaccess
+CWRAPPERS_APPEND.cxx+= -Wno-parentheses -Wno-sign-conversion \
+ -Wno-shorten-64-to-32 -Wno-conversion \
+ -Wno-unused-value -Wno-switch-enum -Wno-switch \
+ -Wno-tautological-compare \
+ -Wno-delete-non-virtual-dtor \
+ -Wno-return-type -Wno-unused-parameter \
+ -Wno-parentheses-equality -Wno-empty-body \
+ -Wno-format -Wno-dynamic-class-memaccess
+. if ${OPSYS} != "FreeBSD"
+_WRAP_EXTRA_ARGS.CXX+= -Wno-new-returns-null
+CWRAPPERS_APPEND.cxx+= -Wno-new-returns-null
+. endif
+BUILDLINK_TRANSFORM+= rm:-fcheck-new
+BUILDLINK_TRANSFORM+= rm:-fpch-deps
+. if ${MACHINE_ARCH} == "x86_64"
+_WRAP_EXTRA_ARGS.CXX+= -mstackrealign
+CWRAPPERS_APPEND.cxx+= -mstackrealign
+. endif
+.endif
+.include "bootstrap.mk"
+
+.include "options.mk"
+
+SUBST_CLASSES+= fontpaths
+SUBST_STAGE.fontpaths= pre-build
+SUBST_MESSAGE.fontpaths= fixing font paths
+SUBST_FILES.fontpaths= jdk/src/solaris/classes/sun/awt/fontconfigs/bsd.fontconfig.properties
+SUBST_FILES.fontpaths+= jdk/src/solaris/native/sun/awt/fontpath.c
+SUBST_SED.fontpaths= -e 's|@PREFIX@|${PREFIX}|g'
+SUBST_SED.fontpaths+= -e 's|@BUILDLINK_PREFIX.fontconfig@|${BUILDLINK_PREFIX.fontconfig}|g'
+
+post-extract:
+.if ${OPSYS} == "SunOS"
+ ${MKDIR} ${ALT_BOOTDIR}/bin
+ ${LN} -s ${JDK_BOOTDIR}/include ${ALT_BOOTDIR}/include
+ ${LN} -s ${JDK_BOOTDIR}/lib ${ALT_BOOTDIR}/lib
+ ${LN} -s ${JDK_BOOTDIR}/bin/java ${ALT_BOOTDIR}/bin
+ ${LN} -s ${JDK_BOOTDIR}/bin/javac ${ALT_BOOTDIR}/bin
+ ${LN} -s ${JDK_BOOTDIR}/bin/javah ${ALT_BOOTDIR}/bin
+ ${LN} -s ${JDK_BOOTDIR}/bin/javap ${ALT_BOOTDIR}/bin
+ ${LN} -s ${JDK_BOOTDIR}/bin/idlj ${ALT_BOOTDIR}/bin
+ ${LN} -s ${JDK_BOOTDIR}/bin/jar ${ALT_BOOTDIR}/bin
+ ${LN} -s ${JDK_BOOTDIR}/bin/native2ascii ${ALT_BOOTDIR}/bin
+ ${LN} -s ${JDK_BOOTDIR}/bin/rmic ${ALT_BOOTDIR}/bin
+.elif ${OPSYS} == "NetBSD" && exists(${.CURDIR}/libs)
+ cp ${.CURDIR}/libs/lib* ${ALT_BOOTDIR}/jre/lib/${MACHINE_ARCH:S/x86_64/amd64/}
+.endif
+
+do-build: ${WRKDIR}/stage3-done
+
+# stage 1 builds a native JDK using the bootstrap binaries
+${WRKDIR}/stage1-done:
+ ${_ULIMIT_CMD} cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} images
+ rm -rf ${ALT_BOOTDIR}
+ cd ${BUILDDIR}/images && mv j2sdk-image ${ALT_BOOTDIR}
+.for d in corba hotspot jaxp jaxws langtools tmp
+ mv ${BUILDDIR}/${d} ${BUILDDIR}/${d}-stage1
+.endfor
+ touch ${WRKDIR}/stage1-done
+
+# stage 2 rebuilds the JDK using native tools
+${WRKDIR}/stage2-done: ${WRKDIR}/stage1-done
+ ${_ULIMIT_CMD} cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} images
+ touch ${WRKDIR}/stage2-done
+
+# stage 3 builds third party add-ons
+${WRKDIR}/stage3-done: ${WRKDIR}/stage2-done ${WRKDIR}/cacerts.out
+ touch ${WRKDIR}/stage3-done
+
+${WRKDIR}/cacerts.out:
+ mkdir ${WRKDIR}/cacerts && cd ${WRKDIR}/cacerts && \
+ ${PREFIX}/sbin/mozilla-rootcerts extract
+ for cert in ${WRKDIR}/cacerts/*.pem; do \
+ ${INFO_MSG} "Importing $$cert" && \
+ ${SETENV} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} LC_ALL=C \
+ ${BUILDDIR}/images/j2sdk-image/bin/keytool \
+ -noprompt \
+ -importcert \
+ -keystore ${.TARGET} \
+ -alias `${ECHO} $$cert | sed 's,.*/\\([^/]*\\)\\.pem,\\1,'` \
+ -file $$cert \
+ -storepass changeit; \
+ done
+
+do-install:
+ ${INSTALL_DATA_DIR} ${DESTDIR}${JAVA_HOME}
+ cd ${BUILDDIR}/images/j2sdk-image && pax -rwpp . \
+ ${DESTDIR}${JAVA_HOME}/.
+ ${INSTALL_DATA} ${WRKDIR}/cacerts.out \
+ ${DESTDIR}${JAVA_HOME}/jre/lib/security/cacerts
+ rm -f ${DESTDIR}${JAVA_HOME}/include/jni_md.h
+ ln -s ${LOWER_OPSYS}/jni_md.h \
+ ${DESTDIR}${JAVA_HOME}/include/jni_md.h
+
+.if ${OPSYS} == "NetBSD"
+TOOLS_PLATFORM.unzip=
+.endif
+
+# disabled the ALSA support for now on BSDs via patch
+#.include "../../audio/alsa-lib/buildlink3.mk"
+.include "../../converters/libiconv/buildlink3.mk"
+.include "../../devel/zlib/buildlink3.mk"
+.include "../../fonts/fontconfig/buildlink3.mk"
+.include "../../graphics/freetype2/buildlink3.mk"
+BUILDLINK_DEPMETHOD.cups?= build
+.include "../../print/cups15/buildlink3.mk"
+.include "../../mk/java-env.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/lang/openjdk8/PLIST b/lang/openjdk8/PLIST
new file mode 100644
index 00000000000..34a2f5b0dbb
--- /dev/null
+++ b/lang/openjdk8/PLIST
@@ -0,0 +1,638 @@
+@comment $NetBSD: PLIST,v 1.1 2015/02/08 08:41:25 tnn Exp $
+bin/openjdk8-jar
+bin/openjdk8-java
+bin/openjdk8-javac
+bin/openjdk8-javadoc
+bin/openjdk8-javah
+bin/openjdk8-javap
+bin/openjdk8-keytool
+bin/openjdk8-orbd
+bin/openjdk8-policytool
+bin/openjdk8-rmid
+bin/openjdk8-rmiregistry
+bin/openjdk8-servertool
+bin/openjdk8-tnameserv
+java/openjdk8/ASSEMBLY_EXCEPTION
+java/openjdk8/LICENSE
+java/openjdk8/THIRD_PARTY_README
+${PLIST.x11}java/openjdk8/bin/appletviewer
+java/openjdk8/bin/extcheck
+java/openjdk8/bin/idlj
+java/openjdk8/bin/jar
+java/openjdk8/bin/jarsigner
+java/openjdk8/bin/java
+java/openjdk8/bin/java-rmi.cgi
+java/openjdk8/bin/javac
+java/openjdk8/bin/javadoc
+java/openjdk8/bin/javah
+java/openjdk8/bin/javap
+java/openjdk8/bin/jcmd
+java/openjdk8/bin/jconsole
+java/openjdk8/bin/jdb
+java/openjdk8/bin/jdeps
+java/openjdk8/bin/jhat
+java/openjdk8/bin/jinfo
+java/openjdk8/bin/jjs
+java/openjdk8/bin/jmap
+java/openjdk8/bin/jps
+java/openjdk8/bin/jrunscript
+java/openjdk8/bin/jsadebugd
+java/openjdk8/bin/jstack
+java/openjdk8/bin/jstat
+java/openjdk8/bin/jstatd
+java/openjdk8/bin/keytool
+java/openjdk8/bin/native2ascii
+java/openjdk8/bin/orbd
+java/openjdk8/bin/pack200
+${PLIST.x11}java/openjdk8/bin/policytool
+java/openjdk8/bin/rmic
+java/openjdk8/bin/rmid
+java/openjdk8/bin/rmiregistry
+java/openjdk8/bin/schemagen
+java/openjdk8/bin/serialver
+java/openjdk8/bin/servertool
+java/openjdk8/bin/tnameserv
+java/openjdk8/bin/unpack200
+java/openjdk8/bin/wsgen
+java/openjdk8/bin/wsimport
+java/openjdk8/bin/xjc
+java/openjdk8/demo/README
+java/openjdk8/demo/applets/ArcTest/ArcCanvas.class
+java/openjdk8/demo/applets/ArcTest/ArcControls.class
+java/openjdk8/demo/applets/ArcTest/ArcTest.class
+java/openjdk8/demo/applets/ArcTest/ArcTest.java
+java/openjdk8/demo/applets/ArcTest/IntegerTextField.class
+java/openjdk8/demo/applets/ArcTest/example1.html
+java/openjdk8/demo/applets/BarChart/BarChart.class
+java/openjdk8/demo/applets/BarChart/BarChart.java
+java/openjdk8/demo/applets/BarChart/example1.html
+java/openjdk8/demo/applets/BarChart/example2.html
+java/openjdk8/demo/applets/Blink/Blink$1.class
+java/openjdk8/demo/applets/Blink/Blink.class
+java/openjdk8/demo/applets/Blink/Blink.java
+java/openjdk8/demo/applets/Blink/example1.html
+java/openjdk8/demo/applets/CardTest/CardPanel.class
+java/openjdk8/demo/applets/CardTest/CardTest.class
+java/openjdk8/demo/applets/CardTest/CardTest.java
+java/openjdk8/demo/applets/CardTest/example1.html
+java/openjdk8/demo/applets/Clock/Clock.class
+java/openjdk8/demo/applets/Clock/Clock.java
+java/openjdk8/demo/applets/Clock/example1.html
+java/openjdk8/demo/applets/DitherTest/CardinalTextField.class
+java/openjdk8/demo/applets/DitherTest/DitherCanvas.class
+java/openjdk8/demo/applets/DitherTest/DitherControls.class
+java/openjdk8/demo/applets/DitherTest/DitherMethod.class
+java/openjdk8/demo/applets/DitherTest/DitherTest$1.class
+java/openjdk8/demo/applets/DitherTest/DitherTest.class
+java/openjdk8/demo/applets/DitherTest/DitherTest.java
+java/openjdk8/demo/applets/DitherTest/example1.html
+java/openjdk8/demo/applets/DrawTest/DrawControls.class
+java/openjdk8/demo/applets/DrawTest/DrawPanel.class
+java/openjdk8/demo/applets/DrawTest/DrawTest.class
+java/openjdk8/demo/applets/DrawTest/DrawTest.java
+java/openjdk8/demo/applets/DrawTest/example1.html
+java/openjdk8/demo/applets/Fractal/CLSFractal.class
+java/openjdk8/demo/applets/Fractal/CLSFractal.java
+java/openjdk8/demo/applets/Fractal/CLSRule.class
+java/openjdk8/demo/applets/Fractal/CLSTurtle.class
+java/openjdk8/demo/applets/Fractal/ContextLSystem.class
+java/openjdk8/demo/applets/Fractal/example1.html
+java/openjdk8/demo/applets/GraphicsTest/AppletFrame.class
+java/openjdk8/demo/applets/GraphicsTest/AppletFrame.java
+java/openjdk8/demo/applets/GraphicsTest/ArcCard.class
+java/openjdk8/demo/applets/GraphicsTest/ArcDegreePanel.class
+java/openjdk8/demo/applets/GraphicsTest/ArcPanel.class
+java/openjdk8/demo/applets/GraphicsTest/ColorUtils.class
+java/openjdk8/demo/applets/GraphicsTest/GraphicsCards.class
+java/openjdk8/demo/applets/GraphicsTest/GraphicsPanel.class
+java/openjdk8/demo/applets/GraphicsTest/GraphicsTest.class
+java/openjdk8/demo/applets/GraphicsTest/GraphicsTest.java
+java/openjdk8/demo/applets/GraphicsTest/OvalShape.class
+java/openjdk8/demo/applets/GraphicsTest/PolygonShape.class
+java/openjdk8/demo/applets/GraphicsTest/RectShape.class
+java/openjdk8/demo/applets/GraphicsTest/RoundRectShape.class
+java/openjdk8/demo/applets/GraphicsTest/Shape.class
+java/openjdk8/demo/applets/GraphicsTest/ShapeTest.class
+java/openjdk8/demo/applets/GraphicsTest/example1.html
+java/openjdk8/demo/applets/MoleculeViewer/Matrix3D.java
+java/openjdk8/demo/applets/MoleculeViewer/MoleculeViewer.jar
+java/openjdk8/demo/applets/MoleculeViewer/XYZApp.java
+java/openjdk8/demo/applets/MoleculeViewer/example1.html
+java/openjdk8/demo/applets/MoleculeViewer/example2.html
+java/openjdk8/demo/applets/MoleculeViewer/example3.html
+java/openjdk8/demo/applets/MoleculeViewer/src.zip
+java/openjdk8/demo/applets/NervousText/NervousText.class
+java/openjdk8/demo/applets/NervousText/NervousText.java
+java/openjdk8/demo/applets/NervousText/example1.html
+java/openjdk8/demo/applets/SimpleGraph/GraphApplet.class
+java/openjdk8/demo/applets/SimpleGraph/GraphApplet.java
+java/openjdk8/demo/applets/SimpleGraph/example1.html
+java/openjdk8/demo/applets/SortDemo/BidirBubbleSortAlgorithm.class
+java/openjdk8/demo/applets/SortDemo/BidirBubbleSortAlgorithm.java
+java/openjdk8/demo/applets/SortDemo/BubbleSortAlgorithm.class
+java/openjdk8/demo/applets/SortDemo/BubbleSortAlgorithm.java
+java/openjdk8/demo/applets/SortDemo/QSortAlgorithm.class
+java/openjdk8/demo/applets/SortDemo/QSortAlgorithm.java
+java/openjdk8/demo/applets/SortDemo/SortAlgorithm.class
+java/openjdk8/demo/applets/SortDemo/SortAlgorithm.java
+java/openjdk8/demo/applets/SortDemo/SortItem.class
+java/openjdk8/demo/applets/SortDemo/SortItem.java
+java/openjdk8/demo/applets/SortDemo/example1.html
+java/openjdk8/demo/applets/SpreadSheet/Cell.class
+java/openjdk8/demo/applets/SpreadSheet/CellUpdater.class
+java/openjdk8/demo/applets/SpreadSheet/InputField.class
+java/openjdk8/demo/applets/SpreadSheet/Node.class
+java/openjdk8/demo/applets/SpreadSheet/SpreadSheet.class
+java/openjdk8/demo/applets/SpreadSheet/SpreadSheet.java
+java/openjdk8/demo/applets/SpreadSheet/SpreadSheetInput.class
+java/openjdk8/demo/applets/SpreadSheet/example1.html
+java/openjdk8/demo/applets/WireFrame/Matrix3D.java
+java/openjdk8/demo/applets/WireFrame/ThreeD.java
+java/openjdk8/demo/applets/WireFrame/WireFrame.jar
+java/openjdk8/demo/applets/WireFrame/example1.html
+java/openjdk8/demo/applets/WireFrame/example2.html
+java/openjdk8/demo/applets/WireFrame/example3.html
+java/openjdk8/demo/applets/WireFrame/example4.html
+java/openjdk8/demo/applets/WireFrame/src.zip
+java/openjdk8/demo/jfc/CodePointIM/CodePointIM.jar
+java/openjdk8/demo/jfc/CodePointIM/README.html
+java/openjdk8/demo/jfc/CodePointIM/README_ja.html
+java/openjdk8/demo/jfc/CodePointIM/README_zh_CN.html
+java/openjdk8/demo/jfc/CodePointIM/src.zip
+java/openjdk8/demo/jfc/FileChooserDemo/FileChooserDemo.jar
+java/openjdk8/demo/jfc/FileChooserDemo/README.txt
+java/openjdk8/demo/jfc/FileChooserDemo/src.zip
+java/openjdk8/demo/jfc/Font2DTest/Font2DTest.html
+java/openjdk8/demo/jfc/Font2DTest/Font2DTest.jar
+java/openjdk8/demo/jfc/Font2DTest/README.txt
+java/openjdk8/demo/jfc/Font2DTest/src.zip
+java/openjdk8/demo/jfc/Metalworks/Metalworks.jar
+java/openjdk8/demo/jfc/Metalworks/README.txt
+java/openjdk8/demo/jfc/Metalworks/src.zip
+java/openjdk8/demo/jfc/Notepad/Notepad.jar
+java/openjdk8/demo/jfc/Notepad/README.txt
+java/openjdk8/demo/jfc/Notepad/src.zip
+java/openjdk8/demo/jfc/SampleTree/README.txt
+java/openjdk8/demo/jfc/SampleTree/SampleTree.jar
+java/openjdk8/demo/jfc/SampleTree/src.zip
+java/openjdk8/demo/jfc/SwingApplet/README.txt
+java/openjdk8/demo/jfc/SwingApplet/SwingApplet.html
+java/openjdk8/demo/jfc/SwingApplet/SwingApplet.jar
+java/openjdk8/demo/jfc/SwingApplet/src.zip
+java/openjdk8/demo/jfc/TableExample/README.txt
+java/openjdk8/demo/jfc/TableExample/TableExample.jar
+java/openjdk8/demo/jfc/TableExample/src.zip
+java/openjdk8/demo/jfc/TransparentRuler/README.txt
+java/openjdk8/demo/jfc/TransparentRuler/TransparentRuler.jar
+java/openjdk8/demo/jfc/TransparentRuler/src.zip
+java/openjdk8/demo/jpda/com/sun/tools/example/README
+java/openjdk8/demo/jpda/examples.jar
+java/openjdk8/demo/jpda/src.zip
+java/openjdk8/demo/jvmti/compiledMethodLoad/README.txt
+java/openjdk8/demo/jvmti/compiledMethodLoad/lib/libcompiledMethodLoad.so
+java/openjdk8/demo/jvmti/compiledMethodLoad/src.zip
+java/openjdk8/demo/jvmti/gctest/README.txt
+java/openjdk8/demo/jvmti/gctest/lib/libgctest.so
+java/openjdk8/demo/jvmti/gctest/src.zip
+java/openjdk8/demo/jvmti/heapTracker/README.txt
+java/openjdk8/demo/jvmti/heapTracker/heapTracker.jar
+java/openjdk8/demo/jvmti/heapTracker/lib/libheapTracker.so
+java/openjdk8/demo/jvmti/heapTracker/src.zip
+java/openjdk8/demo/jvmti/heapViewer/README.txt
+java/openjdk8/demo/jvmti/heapViewer/lib/libheapViewer.so
+java/openjdk8/demo/jvmti/heapViewer/src.zip
+java/openjdk8/demo/jvmti/hprof/README.txt
+java/openjdk8/demo/jvmti/hprof/lib/libhprof.so
+java/openjdk8/demo/jvmti/hprof/src.zip
+java/openjdk8/demo/jvmti/index.html
+java/openjdk8/demo/jvmti/minst/README.txt
+java/openjdk8/demo/jvmti/minst/lib/libminst.so
+java/openjdk8/demo/jvmti/minst/minst.jar
+java/openjdk8/demo/jvmti/minst/src.zip
+java/openjdk8/demo/jvmti/mtrace/README.txt
+java/openjdk8/demo/jvmti/mtrace/lib/libmtrace.so
+java/openjdk8/demo/jvmti/mtrace/mtrace.jar
+java/openjdk8/demo/jvmti/mtrace/src.zip
+java/openjdk8/demo/jvmti/versionCheck/README.txt
+java/openjdk8/demo/jvmti/versionCheck/lib/libversionCheck.so
+java/openjdk8/demo/jvmti/versionCheck/src.zip
+java/openjdk8/demo/jvmti/waiters/README.txt
+java/openjdk8/demo/jvmti/waiters/lib/libwaiters.so
+java/openjdk8/demo/jvmti/waiters/src.zip
+java/openjdk8/demo/management/FullThreadDump/FullThreadDump.jar
+java/openjdk8/demo/management/FullThreadDump/README.txt
+java/openjdk8/demo/management/FullThreadDump/src.zip
+java/openjdk8/demo/management/JTop/JTop.jar
+java/openjdk8/demo/management/JTop/README.txt
+java/openjdk8/demo/management/JTop/src.zip
+java/openjdk8/demo/management/MemoryMonitor/MemoryMonitor.jar
+java/openjdk8/demo/management/MemoryMonitor/README.txt
+java/openjdk8/demo/management/MemoryMonitor/src.zip
+java/openjdk8/demo/management/VerboseGC/README.txt
+java/openjdk8/demo/management/VerboseGC/VerboseGC.jar
+java/openjdk8/demo/management/VerboseGC/src.zip
+java/openjdk8/demo/management/index.html
+java/openjdk8/demo/nbproject/README.txt
+java/openjdk8/demo/nbproject/jfc/FileChooserDemo/build.properties
+java/openjdk8/demo/nbproject/jfc/FileChooserDemo/build.xml
+java/openjdk8/demo/nbproject/jfc/FileChooserDemo/nbproject/file-targets.xml
+java/openjdk8/demo/nbproject/jfc/FileChooserDemo/nbproject/jdk.xml
+java/openjdk8/demo/nbproject/jfc/FileChooserDemo/nbproject/netbeans-targets.xml
+java/openjdk8/demo/nbproject/jfc/FileChooserDemo/nbproject/project.xml
+java/openjdk8/demo/nbproject/jfc/Font2DTest/build.properties
+java/openjdk8/demo/nbproject/jfc/Font2DTest/build.xml
+java/openjdk8/demo/nbproject/jfc/Font2DTest/nbproject/file-targets.xml
+java/openjdk8/demo/nbproject/jfc/Font2DTest/nbproject/jdk.xml
+java/openjdk8/demo/nbproject/jfc/Font2DTest/nbproject/netbeans-targets.xml
+java/openjdk8/demo/nbproject/jfc/Font2DTest/nbproject/project.xml
+java/openjdk8/demo/nbproject/jfc/Metalworks/build.properties
+java/openjdk8/demo/nbproject/jfc/Metalworks/build.xml
+java/openjdk8/demo/nbproject/jfc/Metalworks/nbproject/file-targets.xml
+java/openjdk8/demo/nbproject/jfc/Metalworks/nbproject/jdk.xml
+java/openjdk8/demo/nbproject/jfc/Metalworks/nbproject/netbeans-targets.xml
+java/openjdk8/demo/nbproject/jfc/Metalworks/nbproject/project.xml
+java/openjdk8/demo/nbproject/jfc/Notepad/build.properties
+java/openjdk8/demo/nbproject/jfc/Notepad/build.xml
+java/openjdk8/demo/nbproject/jfc/Notepad/nbproject/file-targets.xml
+java/openjdk8/demo/nbproject/jfc/Notepad/nbproject/jdk.xml
+java/openjdk8/demo/nbproject/jfc/Notepad/nbproject/netbeans-targets.xml
+java/openjdk8/demo/nbproject/jfc/Notepad/nbproject/project.xml
+java/openjdk8/demo/nbproject/jfc/SampleTree/build.properties
+java/openjdk8/demo/nbproject/jfc/SampleTree/build.xml
+java/openjdk8/demo/nbproject/jfc/SampleTree/nbproject/file-targets.xml
+java/openjdk8/demo/nbproject/jfc/SampleTree/nbproject/jdk.xml
+java/openjdk8/demo/nbproject/jfc/SampleTree/nbproject/netbeans-targets.xml
+java/openjdk8/demo/nbproject/jfc/SampleTree/nbproject/project.xml
+java/openjdk8/demo/nbproject/jfc/SwingApplet/build.properties
+java/openjdk8/demo/nbproject/jfc/SwingApplet/build.xml
+java/openjdk8/demo/nbproject/jfc/SwingApplet/nbproject/file-targets.xml
+java/openjdk8/demo/nbproject/jfc/SwingApplet/nbproject/jdk.xml
+java/openjdk8/demo/nbproject/jfc/SwingApplet/nbproject/netbeans-targets.xml
+java/openjdk8/demo/nbproject/jfc/SwingApplet/nbproject/project.xml
+java/openjdk8/demo/nbproject/jfc/TableExample/build.properties
+java/openjdk8/demo/nbproject/jfc/TableExample/build.xml
+java/openjdk8/demo/nbproject/jfc/TableExample/nbproject/file-targets.xml
+java/openjdk8/demo/nbproject/jfc/TableExample/nbproject/jdk.xml
+java/openjdk8/demo/nbproject/jfc/TableExample/nbproject/netbeans-targets.xml
+java/openjdk8/demo/nbproject/jfc/TableExample/nbproject/project.xml
+java/openjdk8/demo/nbproject/jfc/TransparentRuler/build.properties
+java/openjdk8/demo/nbproject/jfc/TransparentRuler/build.xml
+java/openjdk8/demo/nbproject/jfc/TransparentRuler/nbproject/file-targets.xml
+java/openjdk8/demo/nbproject/jfc/TransparentRuler/nbproject/jdk.xml
+java/openjdk8/demo/nbproject/jfc/TransparentRuler/nbproject/netbeans-targets.xml
+java/openjdk8/demo/nbproject/jfc/TransparentRuler/nbproject/project.xml
+java/openjdk8/demo/nbproject/management/FullThreadDump/build.properties
+java/openjdk8/demo/nbproject/management/FullThreadDump/build.xml
+java/openjdk8/demo/nbproject/management/FullThreadDump/nbproject/file-targets.xml
+java/openjdk8/demo/nbproject/management/FullThreadDump/nbproject/jdk.xml
+java/openjdk8/demo/nbproject/management/FullThreadDump/nbproject/netbeans-targets.xml
+java/openjdk8/demo/nbproject/management/FullThreadDump/nbproject/project.xml
+java/openjdk8/demo/nbproject/management/JTop/build.properties
+java/openjdk8/demo/nbproject/management/JTop/build.xml
+java/openjdk8/demo/nbproject/management/JTop/nbproject/file-targets.xml
+java/openjdk8/demo/nbproject/management/JTop/nbproject/jdk.xml
+java/openjdk8/demo/nbproject/management/JTop/nbproject/netbeans-targets.xml
+java/openjdk8/demo/nbproject/management/JTop/nbproject/project.xml
+java/openjdk8/demo/nbproject/management/MemoryMonitor/build.properties
+java/openjdk8/demo/nbproject/management/MemoryMonitor/build.xml
+java/openjdk8/demo/nbproject/management/MemoryMonitor/nbproject/file-targets.xml
+java/openjdk8/demo/nbproject/management/MemoryMonitor/nbproject/jdk.xml
+java/openjdk8/demo/nbproject/management/MemoryMonitor/nbproject/netbeans-targets.xml
+java/openjdk8/demo/nbproject/management/MemoryMonitor/nbproject/project.xml
+java/openjdk8/demo/nbproject/management/VerboseGC/build.properties
+java/openjdk8/demo/nbproject/management/VerboseGC/build.xml
+java/openjdk8/demo/nbproject/management/VerboseGC/nbproject/file-targets.xml
+java/openjdk8/demo/nbproject/management/VerboseGC/nbproject/jdk.xml
+java/openjdk8/demo/nbproject/management/VerboseGC/nbproject/netbeans-targets.xml
+java/openjdk8/demo/nbproject/management/VerboseGC/nbproject/project.xml
+java/openjdk8/demo/nbproject/project.xml
+java/openjdk8/demo/nbproject/scripting/jconsole-plugin/build.properties
+java/openjdk8/demo/nbproject/scripting/jconsole-plugin/build.xml
+java/openjdk8/demo/nbproject/scripting/jconsole-plugin/nbproject/file-targets.xml
+java/openjdk8/demo/nbproject/scripting/jconsole-plugin/nbproject/jdk.xml
+java/openjdk8/demo/nbproject/scripting/jconsole-plugin/nbproject/netbeans-targets.xml
+java/openjdk8/demo/nbproject/scripting/jconsole-plugin/nbproject/project.xml
+java/openjdk8/demo/nio/zipfs/Demo.java
+java/openjdk8/demo/nio/zipfs/README.txt
+java/openjdk8/demo/nio/zipfs/src.zip
+java/openjdk8/demo/nio/zipfs/zipfs.jar
+java/openjdk8/demo/scripting/jconsole-plugin/README.txt
+java/openjdk8/demo/scripting/jconsole-plugin/build.xml
+java/openjdk8/demo/scripting/jconsole-plugin/jconsole-plugin.jar
+java/openjdk8/demo/scripting/jconsole-plugin/src.zip
+java/openjdk8/include/classfile_constants.h
+java/openjdk8/include/jawt.h
+java/openjdk8/include/jdwpTransport.h
+java/openjdk8/include/jni.h
+java/openjdk8/include/jni_md.h
+java/openjdk8/include/jvmti.h
+java/openjdk8/include/jvmticmlr.h
+java/openjdk8/include/${LOWER_OPSYS}/jawt_md.h
+java/openjdk8/include/${LOWER_OPSYS}/jni_md.h
+java/openjdk8/jre/ASSEMBLY_EXCEPTION
+java/openjdk8/jre/LICENSE
+java/openjdk8/jre/THIRD_PARTY_README
+java/openjdk8/jre/bin/java
+java/openjdk8/jre/bin/jjs
+java/openjdk8/jre/bin/keytool
+java/openjdk8/jre/bin/orbd
+java/openjdk8/jre/bin/pack200
+${PLIST.x11}java/openjdk8/jre/bin/policytool
+java/openjdk8/jre/bin/rmid
+java/openjdk8/jre/bin/rmiregistry
+java/openjdk8/jre/bin/servertool
+java/openjdk8/jre/bin/tnameserv
+java/openjdk8/jre/bin/unpack200
+java/openjdk8/jre/lib/${ARCH}/jexec
+java/openjdk8/jre/lib/${ARCH}/jli/libjli.so
+java/openjdk8/jre/lib/${ARCH}/jspawnhelper
+java/openjdk8/jre/lib/${ARCH}/jvm.cfg
+java/openjdk8/jre/lib/${ARCH}/libattach.so
+java/openjdk8/jre/lib/${ARCH}/libawt.so
+java/openjdk8/jre/lib/${ARCH}/libawt_headless.so
+${PLIST.x11}java/openjdk8/jre/lib/${ARCH}/libawt_xawt.so
+java/openjdk8/jre/lib/${ARCH}/libdt_socket.so
+java/openjdk8/jre/lib/${ARCH}/libfontmanager.so
+java/openjdk8/jre/lib/${ARCH}/libhprof.so
+java/openjdk8/jre/lib/${ARCH}/libinstrument.so
+java/openjdk8/jre/lib/${ARCH}/libj2gss.so
+java/openjdk8/jre/lib/${ARCH}/libj2pcsc.so
+java/openjdk8/jre/lib/${ARCH}/libj2pkcs11.so
+java/openjdk8/jre/lib/${ARCH}/libjaas_unix.so
+java/openjdk8/jre/lib/${ARCH}/libjava.so
+java/openjdk8/jre/lib/${ARCH}/libjava_crw_demo.so
+java/openjdk8/jre/lib/${ARCH}/libjawt.so
+java/openjdk8/jre/lib/${ARCH}/libjdwp.so
+java/openjdk8/jre/lib/${ARCH}/libjpeg.so
+java/openjdk8/jre/lib/${ARCH}/libjsdt.so
+java/openjdk8/jre/lib/${ARCH}/libjsig.so
+java/openjdk8/jre/lib/${ARCH}/libjsound.so
+java/openjdk8/jre/lib/${ARCH}/liblcms.so
+java/openjdk8/jre/lib/${ARCH}/libmanagement.so
+java/openjdk8/jre/lib/${ARCH}/libmlib_image.so
+java/openjdk8/jre/lib/${ARCH}/libnet.so
+java/openjdk8/jre/lib/${ARCH}/libnio.so
+java/openjdk8/jre/lib/${ARCH}/libnpt.so
+${PLIST.native}java/openjdk8/jre/lib/${ARCH}/libsaproc.so
+java/openjdk8/jre/lib/${ARCH}/libsctp.so
+${PLIST.x11}java/openjdk8/jre/lib/${ARCH}/libsplashscreen.so
+java/openjdk8/jre/lib/${ARCH}/libsunec.so
+java/openjdk8/jre/lib/${ARCH}/libunpack.so
+java/openjdk8/jre/lib/${ARCH}/libverify.so
+java/openjdk8/jre/lib/${ARCH}/libzip.so
+java/openjdk8/jre/lib/${ARCH}/server/Xusage.txt
+${PLIST.native}java/openjdk8/jre/lib/${ARCH}/server/libjsig.so
+java/openjdk8/jre/lib/${ARCH}/server/libjvm.so
+java/openjdk8/jre/lib/calendars.properties
+java/openjdk8/jre/lib/charsets.jar
+java/openjdk8/jre/lib/classlist
+java/openjdk8/jre/lib/cmm/CIEXYZ.pf
+java/openjdk8/jre/lib/cmm/GRAY.pf
+java/openjdk8/jre/lib/cmm/LINEAR_RGB.pf
+java/openjdk8/jre/lib/cmm/PYCC.pf
+java/openjdk8/jre/lib/cmm/sRGB.pf
+java/openjdk8/jre/lib/content-types.properties
+java/openjdk8/jre/lib/currency.data
+java/openjdk8/jre/lib/ext/cldrdata.jar
+java/openjdk8/jre/lib/ext/dnsns.jar
+java/openjdk8/jre/lib/ext/localedata.jar
+java/openjdk8/jre/lib/ext/meta-index
+java/openjdk8/jre/lib/ext/nashorn.jar
+java/openjdk8/jre/lib/ext/sunec.jar
+java/openjdk8/jre/lib/ext/sunjce_provider.jar
+java/openjdk8/jre/lib/ext/sunpkcs11.jar
+java/openjdk8/jre/lib/ext/zipfs.jar
+java/openjdk8/jre/lib/flavormap.properties
+java/openjdk8/jre/lib/fontconfig.bfc
+java/openjdk8/jre/lib/fontconfig.properties.src
+java/openjdk8/jre/lib/hijrah-config-umalqura.properties
+java/openjdk8/jre/lib/images/cursors/cursors.properties
+java/openjdk8/jre/lib/images/cursors/invalid32x32.gif
+java/openjdk8/jre/lib/images/cursors/motif_CopyDrop32x32.gif
+java/openjdk8/jre/lib/images/cursors/motif_CopyNoDrop32x32.gif
+java/openjdk8/jre/lib/images/cursors/motif_LinkDrop32x32.gif
+java/openjdk8/jre/lib/images/cursors/motif_LinkNoDrop32x32.gif
+java/openjdk8/jre/lib/images/cursors/motif_MoveDrop32x32.gif
+java/openjdk8/jre/lib/images/cursors/motif_MoveNoDrop32x32.gif
+java/openjdk8/jre/lib/jce.jar
+java/openjdk8/jre/lib/jsse.jar
+java/openjdk8/jre/lib/jvm.hprof.txt
+java/openjdk8/jre/lib/logging.properties
+java/openjdk8/jre/lib/management-agent.jar
+java/openjdk8/jre/lib/management/jmxremote.access
+java/openjdk8/jre/lib/management/jmxremote.password.template
+java/openjdk8/jre/lib/management/management.properties
+java/openjdk8/jre/lib/management/snmp.acl.template
+java/openjdk8/jre/lib/meta-index
+java/openjdk8/jre/lib/net.properties
+java/openjdk8/jre/lib/psfont.properties.ja
+java/openjdk8/jre/lib/psfontj2d.properties
+java/openjdk8/jre/lib/resources.jar
+java/openjdk8/jre/lib/rt.jar
+java/openjdk8/jre/lib/security/US_export_policy.jar
+java/openjdk8/jre/lib/security/blacklisted.certs
+java/openjdk8/jre/lib/security/cacerts
+java/openjdk8/jre/lib/security/java.policy
+java/openjdk8/jre/lib/security/java.security
+java/openjdk8/jre/lib/security/local_policy.jar
+java/openjdk8/jre/lib/sound.properties
+java/openjdk8/jre/lib/tzdb.dat
+java/openjdk8/lib/${ARCH}/jexec
+java/openjdk8/lib/${ARCH}/jli/libjli.so
+java/openjdk8/lib/${ARCH}/libjawt.so
+java/openjdk8/lib/ct.sym
+java/openjdk8/lib/dt.jar
+java/openjdk8/lib/ir.idl
+java/openjdk8/lib/jconsole.jar
+java/openjdk8/lib/orb.idl
+${PLIST.native}java/openjdk8/lib/sa-jdi.jar
+java/openjdk8/lib/tools.jar
+java/openjdk8/man/ja
+java/openjdk8/man/man1/appletviewer.1
+java/openjdk8/man/man1/extcheck.1
+java/openjdk8/man/man1/idlj.1
+java/openjdk8/man/man1/jar.1
+java/openjdk8/man/man1/jarsigner.1
+java/openjdk8/man/man1/java.1
+java/openjdk8/man/man1/javac.1
+java/openjdk8/man/man1/javadoc.1
+java/openjdk8/man/man1/javah.1
+java/openjdk8/man/man1/javap.1
+java/openjdk8/man/man1/jcmd.1
+java/openjdk8/man/man1/jconsole.1
+java/openjdk8/man/man1/jdb.1
+java/openjdk8/man/man1/jdeps.1
+java/openjdk8/man/man1/jhat.1
+java/openjdk8/man/man1/jinfo.1
+java/openjdk8/man/man1/jjs.1
+java/openjdk8/man/man1/jmap.1
+java/openjdk8/man/man1/jps.1
+java/openjdk8/man/man1/jrunscript.1
+java/openjdk8/man/man1/jsadebugd.1
+java/openjdk8/man/man1/jstack.1
+java/openjdk8/man/man1/jstat.1
+java/openjdk8/man/man1/jstatd.1
+java/openjdk8/man/man1/keytool.1
+java/openjdk8/man/man1/native2ascii.1
+java/openjdk8/man/man1/orbd.1
+java/openjdk8/man/man1/pack200.1
+java/openjdk8/man/man1/policytool.1
+java/openjdk8/man/man1/rmic.1
+java/openjdk8/man/man1/rmid.1
+java/openjdk8/man/man1/rmiregistry.1
+java/openjdk8/man/man1/schemagen.1
+java/openjdk8/man/man1/serialver.1
+java/openjdk8/man/man1/servertool.1
+java/openjdk8/man/man1/tnameserv.1
+java/openjdk8/man/man1/unpack200.1
+java/openjdk8/man/man1/wsgen.1
+java/openjdk8/man/man1/wsimport.1
+java/openjdk8/man/man1/xjc.1
+java/openjdk8/release
+java/openjdk8/sample/README
+java/openjdk8/sample/annotations/DependencyChecker/PluginChecker/src/checker/Device.java
+java/openjdk8/sample/annotations/DependencyChecker/PluginChecker/src/checker/Kettle.xml
+java/openjdk8/sample/annotations/DependencyChecker/PluginChecker/src/checker/Module.java
+java/openjdk8/sample/annotations/DependencyChecker/PluginChecker/src/checker/PluginChecker.java
+java/openjdk8/sample/annotations/DependencyChecker/PluginChecker/src/checker/Require.java
+java/openjdk8/sample/annotations/DependencyChecker/PluginChecker/src/checker/RequireContainer.java
+java/openjdk8/sample/annotations/DependencyChecker/Plugins/src/plugins/BoilerPlugin.java
+java/openjdk8/sample/annotations/DependencyChecker/Plugins/src/plugins/ExtendedBoilerPlugin.java
+java/openjdk8/sample/annotations/DependencyChecker/Plugins/src/plugins/TimerPlugin.java
+java/openjdk8/sample/annotations/Validator/src/PositiveIntegerSupplier.java
+java/openjdk8/sample/annotations/Validator/src/SupplierValidator.java
+java/openjdk8/sample/annotations/Validator/src/Validate.java
+java/openjdk8/sample/annotations/Validator/src/Validator.java
+java/openjdk8/sample/annotations/index.html
+java/openjdk8/sample/forkjoin/mergesort/MergeDemo.java
+java/openjdk8/sample/forkjoin/mergesort/MergeSort.java
+java/openjdk8/sample/jmx/jmx-scandir/build.properties
+java/openjdk8/sample/jmx/jmx-scandir/build.xml
+java/openjdk8/sample/jmx/jmx-scandir/docfiles/connect-local-ant-run.jpg
+java/openjdk8/sample/jmx/jmx-scandir/docfiles/connect-local-java-jar.jpg
+java/openjdk8/sample/jmx/jmx-scandir/docfiles/connect-local.jpg
+java/openjdk8/sample/jmx/jmx-scandir/docfiles/remote-connection-failed.jpg
+java/openjdk8/sample/jmx/jmx-scandir/docfiles/remote-connection.jpg
+java/openjdk8/sample/jmx/jmx-scandir/docfiles/scandir-config.jpg
+java/openjdk8/sample/jmx/jmx-scandir/docfiles/scandir-result.jpg
+java/openjdk8/sample/jmx/jmx-scandir/docfiles/scandir-start.jpg
+java/openjdk8/sample/jmx/jmx-scandir/index.html
+java/openjdk8/sample/jmx/jmx-scandir/keystore
+java/openjdk8/sample/jmx/jmx-scandir/logging.properties
+java/openjdk8/sample/jmx/jmx-scandir/manifest.mf
+java/openjdk8/sample/jmx/jmx-scandir/nbproject/file-targets.xml
+java/openjdk8/sample/jmx/jmx-scandir/nbproject/jdk.xml
+java/openjdk8/sample/jmx/jmx-scandir/nbproject/netbeans-targets.xml
+java/openjdk8/sample/jmx/jmx-scandir/nbproject/project.xml
+java/openjdk8/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/DirectoryScanner.java
+java/openjdk8/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/DirectoryScannerMXBean.java
+java/openjdk8/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ResultLogManager.java
+java/openjdk8/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ResultLogManagerMXBean.java
+java/openjdk8/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanDirAgent.java
+java/openjdk8/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanDirClient.java
+java/openjdk8/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanDirConfig.java
+java/openjdk8/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanDirConfigMXBean.java
+java/openjdk8/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanManager.java
+java/openjdk8/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanManagerMXBean.java
+java/openjdk8/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/DirectoryScannerConfig.java
+java/openjdk8/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/FileMatch.java
+java/openjdk8/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/ResultLogConfig.java
+java/openjdk8/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/ResultRecord.java
+java/openjdk8/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/ScanManagerConfig.java
+java/openjdk8/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/XmlConfigUtils.java
+java/openjdk8/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/package.html
+java/openjdk8/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/package.html
+java/openjdk8/sample/jmx/jmx-scandir/src/etc/access.properties
+java/openjdk8/sample/jmx/jmx-scandir/src/etc/management.properties
+java/openjdk8/sample/jmx/jmx-scandir/src/etc/password.properties
+java/openjdk8/sample/jmx/jmx-scandir/src/etc/testconfig.xml
+java/openjdk8/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/DirectoryScannerTest.java
+java/openjdk8/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/ScanDirConfigTest.java
+java/openjdk8/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/ScanManagerTest.java
+java/openjdk8/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/TestUtils.java
+java/openjdk8/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/config/XmlConfigUtilsTest.java
+java/openjdk8/sample/jmx/jmx-scandir/truststore
+java/openjdk8/sample/lambda/BulkDataOperations/index.html
+java/openjdk8/sample/lambda/BulkDataOperations/src/CSVProcessor.java
+java/openjdk8/sample/lambda/BulkDataOperations/src/Grep.java
+java/openjdk8/sample/lambda/BulkDataOperations/src/PasswordGenerator.java
+java/openjdk8/sample/lambda/BulkDataOperations/src/WC.java
+java/openjdk8/sample/lambda/DefaultMethods/ArrayIterator.java
+java/openjdk8/sample/lambda/DefaultMethods/DiamondInheritance.java
+java/openjdk8/sample/lambda/DefaultMethods/Inheritance.java
+java/openjdk8/sample/lambda/DefaultMethods/MixIn.java
+java/openjdk8/sample/lambda/DefaultMethods/Reflection.java
+java/openjdk8/sample/lambda/DefaultMethods/SimplestUsage.java
+java/openjdk8/sample/nbproject/project.xml
+java/openjdk8/sample/nio/chatserver/ChatServer.java
+java/openjdk8/sample/nio/chatserver/Client.java
+java/openjdk8/sample/nio/chatserver/ClientReader.java
+java/openjdk8/sample/nio/chatserver/DataReader.java
+java/openjdk8/sample/nio/chatserver/MessageReader.java
+java/openjdk8/sample/nio/chatserver/NameReader.java
+java/openjdk8/sample/nio/chatserver/README.txt
+java/openjdk8/sample/nio/file/AclEdit.java
+java/openjdk8/sample/nio/file/Chmod.java
+java/openjdk8/sample/nio/file/Copy.java
+java/openjdk8/sample/nio/file/DiskUsage.java
+java/openjdk8/sample/nio/file/FileType.java
+java/openjdk8/sample/nio/file/WatchDir.java
+java/openjdk8/sample/nio/file/Xdd.java
+java/openjdk8/sample/nio/multicast/MulticastAddress.java
+java/openjdk8/sample/nio/multicast/Reader.java
+java/openjdk8/sample/nio/multicast/Sender.java
+java/openjdk8/sample/nio/server/AcceptHandler.java
+java/openjdk8/sample/nio/server/Acceptor.java
+java/openjdk8/sample/nio/server/B1.java
+java/openjdk8/sample/nio/server/BN.java
+java/openjdk8/sample/nio/server/BP.java
+java/openjdk8/sample/nio/server/ChannelIO.java
+java/openjdk8/sample/nio/server/ChannelIOSecure.java
+java/openjdk8/sample/nio/server/Content.java
+java/openjdk8/sample/nio/server/Dispatcher.java
+java/openjdk8/sample/nio/server/Dispatcher1.java
+java/openjdk8/sample/nio/server/DispatcherN.java
+java/openjdk8/sample/nio/server/FileContent.java
+java/openjdk8/sample/nio/server/Handler.java
+java/openjdk8/sample/nio/server/MalformedRequestException.java
+java/openjdk8/sample/nio/server/N1.java
+java/openjdk8/sample/nio/server/N2.java
+java/openjdk8/sample/nio/server/README.txt
+java/openjdk8/sample/nio/server/Reply.java
+java/openjdk8/sample/nio/server/Request.java
+java/openjdk8/sample/nio/server/RequestHandler.java
+java/openjdk8/sample/nio/server/RequestServicer.java
+java/openjdk8/sample/nio/server/Sendable.java
+java/openjdk8/sample/nio/server/Server.java
+java/openjdk8/sample/nio/server/StringContent.java
+java/openjdk8/sample/nio/server/URLDumper.java
+java/openjdk8/sample/scripting/scriptpad/README.txt
+java/openjdk8/sample/scripting/scriptpad/build.properties
+java/openjdk8/sample/scripting/scriptpad/build.xml
+java/openjdk8/sample/scripting/scriptpad/nbproject/file-targets.xml
+java/openjdk8/sample/scripting/scriptpad/nbproject/jdk.xml
+java/openjdk8/sample/scripting/scriptpad/nbproject/netbeans-targets.xml
+java/openjdk8/sample/scripting/scriptpad/nbproject/project.xml
+java/openjdk8/sample/scripting/scriptpad/src/META-INF/manifest.mf
+java/openjdk8/sample/scripting/scriptpad/src/com/sun/sample/scriptpad/Main.java
+java/openjdk8/sample/scripting/scriptpad/src/resources/Main.js
+java/openjdk8/sample/scripting/scriptpad/src/resources/conc.js
+java/openjdk8/sample/scripting/scriptpad/src/resources/gui.js
+java/openjdk8/sample/scripting/scriptpad/src/resources/mm.js
+java/openjdk8/sample/scripting/scriptpad/src/resources/scriptpad.js
+java/openjdk8/sample/scripting/scriptpad/src/scripts/README.txt
+java/openjdk8/sample/scripting/scriptpad/src/scripts/browse.js
+java/openjdk8/sample/scripting/scriptpad/src/scripts/insertfile.js
+java/openjdk8/sample/scripting/scriptpad/src/scripts/linewrap.js
+java/openjdk8/sample/scripting/scriptpad/src/scripts/mail.js
+java/openjdk8/sample/scripting/scriptpad/src/scripts/memmonitor.js
+java/openjdk8/sample/scripting/scriptpad/src/scripts/memory.bat
+java/openjdk8/sample/scripting/scriptpad/src/scripts/memory.js
+java/openjdk8/sample/scripting/scriptpad/src/scripts/memory.sh
+java/openjdk8/sample/scripting/scriptpad/src/scripts/textcolor.js
+java/openjdk8/sample/try-with-resources/index.html
+java/openjdk8/sample/try-with-resources/src/CustomAutoCloseableSample.java
+java/openjdk8/sample/try-with-resources/src/Unzip.java
+java/openjdk8/sample/try-with-resources/src/ZipCat.java
+java/openjdk8/src.zip
+@pkgdir java/openjdk8/jre/lib/applet
diff --git a/lang/openjdk8/PLIST.debug b/lang/openjdk8/PLIST.debug
new file mode 100644
index 00000000000..f9d8618b22e
--- /dev/null
+++ b/lang/openjdk8/PLIST.debug
@@ -0,0 +1,38 @@
+@comment $NetBSD: PLIST.debug,v 1.1 2015/02/08 08:41:25 tnn Exp $
+java/openjdk8/jre/lib/${ARCH}/jexec.debuginfo
+java/openjdk8/jre/lib/${ARCH}/jli/libjli.debuginfo
+java/openjdk8/jre/lib/${ARCH}/libattach.debuginfo
+java/openjdk8/jre/lib/${ARCH}/libawt.debuginfo
+java/openjdk8/jre/lib/${ARCH}/libawt_headless.debuginfo
+${PLIST.x11}java/openjdk8/jre/lib/${ARCH}/libawt_xawt.debuginfo
+java/openjdk8/jre/lib/${ARCH}/libdt_socket.debuginfo
+java/openjdk8/jre/lib/${ARCH}/libfontmanager.debuginfo
+java/openjdk8/jre/lib/${ARCH}/libhprof.debuginfo
+java/openjdk8/jre/lib/${ARCH}/libinstrument.debuginfo
+java/openjdk8/jre/lib/${ARCH}/libj2gss.debuginfo
+java/openjdk8/jre/lib/${ARCH}/libj2pcsc.debuginfo
+java/openjdk8/jre/lib/${ARCH}/libj2pkcs11.debuginfo
+java/openjdk8/jre/lib/${ARCH}/libjaas_unix.debuginfo
+java/openjdk8/jre/lib/${ARCH}/libjava.debuginfo
+java/openjdk8/jre/lib/${ARCH}/libjava_crw_demo.debuginfo
+java/openjdk8/jre/lib/${ARCH}/libjawt.debuginfo
+java/openjdk8/jre/lib/${ARCH}/libjdwp.debuginfo
+java/openjdk8/jre/lib/${ARCH}/libjpeg.debuginfo
+java/openjdk8/jre/lib/${ARCH}/libjsdt.debuginfo
+java/openjdk8/jre/lib/${ARCH}/libjsig.debuginfo
+java/openjdk8/jre/lib/${ARCH}/libjsound.debuginfo
+java/openjdk8/jre/lib/${ARCH}/liblcms.debuginfo
+java/openjdk8/jre/lib/${ARCH}/libmanagement.debuginfo
+java/openjdk8/jre/lib/${ARCH}/libmlib_image.debuginfo
+java/openjdk8/jre/lib/${ARCH}/libnet.debuginfo
+java/openjdk8/jre/lib/${ARCH}/libnio.debuginfo
+java/openjdk8/jre/lib/${ARCH}/libnpt.debuginfo
+${PLIST.native}java/openjdk8/jre/lib/${ARCH}/libsaproc.debuginfo
+java/openjdk8/jre/lib/${ARCH}/libsctp.debuginfo
+${PLIST.x11}java/openjdk8/jre/lib/${ARCH}/libsplashscreen.debuginfo
+java/openjdk8/jre/lib/${ARCH}/libsunec.debuginfo
+java/openjdk8/jre/lib/${ARCH}/libunpack.debuginfo
+java/openjdk8/jre/lib/${ARCH}/libverify.debuginfo
+java/openjdk8/jre/lib/${ARCH}/libzip.debuginfo
+${PLIST.native}java/openjdk8/jre/lib/${ARCH}/server/libjsig.debuginfo
+java/openjdk8/jre/lib/${ARCH}/server/libjvm.debuginfo
diff --git a/lang/openjdk8/bootstrap.mk b/lang/openjdk8/bootstrap.mk
new file mode 100644
index 00000000000..3158e588a3a
--- /dev/null
+++ b/lang/openjdk8/bootstrap.mk
@@ -0,0 +1,69 @@
+# $NetBSD: bootstrap.mk,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+ONLY_FOR_PLATFORM= NetBSD-[567].*-i386 NetBSD-[567].*-x86_64
+ONLY_FOR_PLATFORM+= DragonFly-[23].*-* SunOS-*-* FreeBSD-10.*-x86_64
+
+BOOT.nb5-i386= bootstrap-jdk7u60-bin-netbsd-5-i386-20140719.tar.bz2
+BOOT.nb5-amd64= bootstrap-jdk7u60-bin-netbsd-5-amd64-20140719.tar.bz2
+BOOT.nb6-i386= bootstrap-jdk7u60-bin-netbsd-6-i386-20140719.tar.bz2
+BOOT.nb6-amd64= bootstrap-jdk7u60-bin-netbsd-6-amd64-20140719.tar.bz2
+BOOT.nb7-i386= bootstrap-jdk7u60-bin-netbsd-7-i386-20140719.tar.bz2
+BOOT.nb7-amd64= bootstrap-jdk7u60-bin-netbsd-7-amd64-20140719.tar.bz2
+BOOT.dfly3.6-amd64= bootstrap-jdk7u60-bin-dragonfly-3.6-amd64-20140719.tar.bz2
+BOOT.dfly3.8-amd64= bootstrap-jdk7u60-bin-dragonfly-3.8-amd64-20140719.tar.bz2
+BOOT.fbsd10-amd64= bootstrap-jdk7u71-bin-freebsd-10-x86_64-20150101.tar.bz2
+
+.if !empty(MACHINE_PLATFORM:MNetBSD-5.[0-8]*-i386) || make(distinfo)
+DISTFILES+= ${BOOT.nb5-i386}
+EXTRACT_ONLY+= ${BOOT.nb5-i386}
+.endif
+
+.if !empty(MACHINE_PLATFORM:MNetBSD-5.[0-8]*-x86_64) || make(distinfo)
+DISTFILES+= ${BOOT.nb5-amd64}
+EXTRACT_ONLY+= ${BOOT.nb5-amd64}
+.endif
+
+.if !empty(MACHINE_PLATFORM:MNetBSD-6.[0-8]*-i386) || make(distinfo)
+DISTFILES+= ${BOOT.nb6-i386}
+EXTRACT_ONLY+= ${BOOT.nb6-i386}
+.endif
+
+.if !empty(MACHINE_PLATFORM:MNetBSD-6.[0-8]*-x86_64) || make(distinfo)
+DISTFILES+= ${BOOT.nb6-amd64}
+EXTRACT_ONLY+= ${BOOT.nb6-amd64}
+.endif
+
+.if !empty(MACHINE_PLATFORM:MNetBSD-6.99*-i386) || !empty(MACHINE_PLATFORM:MNetBSD-7*-i386) || make(distinfo)
+DISTFILES+= ${BOOT.nb7-i386}
+EXTRACT_ONLY+= ${BOOT.nb7-i386}
+.endif
+
+.if !empty(MACHINE_PLATFORM:MNetBSD-6.99*-x86_64) || !empty(MACHINE_PLATFORM:MNetBSD-7*-x86_64) || make(distinfo)
+DISTFILES+= ${BOOT.nb7-amd64}
+EXTRACT_ONLY+= ${BOOT.nb7-amd64}
+.endif
+
+.if !empty(MACHINE_PLATFORM:MDragonFly-3.6*-x86_64) || make(distinfo)
+DISTFILES+= ${BOOT.dfly3.6-amd64}
+EXTRACT_ONLY+= ${BOOT.dfly3.6-amd64}
+.endif
+
+.if !empty(MACHINE_PLATFORM:MDragonFly-3.[8-9]*-x86_64) || make(distinfo)
+DISTFILES+= ${BOOT.dfly3.8-amd64}
+EXTRACT_ONLY+= ${BOOT.dfly3.8-amd64}
+.endif
+
+.if !empty(MACHINE_PLATFORM:MFreeBSD-10.*-x86_64) || make(distinfo)
+DISTFILES+= ${BOOT.fbsd10-amd64}
+EXTRACT_ONLY+= ${BOOT.fbsd10-amd64}
+.endif
+
+.if ${OPSYS} == "SunOS"
+BUILDLINK_DEPMETHOD.sun-jdk7?= build
+.include "../../lang/sun-jdk7/buildlink3.mk"
+#NB: sun-jdk7 includes sun-jre7/buildlink3.mk
+JDK_BOOTDIR= ${BUILDLINK_JAVA_PREFIX.sun-jre7:tA}
+CONFIGURE_ARGS+= --with-import-hotspot=${JDK_BOOTDIR}
+.endif
+
+ALT_BOOTDIR= ${WRKDIR}/bootstrap
diff --git a/lang/openjdk8/buildlink3.mk b/lang/openjdk8/buildlink3.mk
new file mode 100644
index 00000000000..392607e1a75
--- /dev/null
+++ b/lang/openjdk8/buildlink3.mk
@@ -0,0 +1,13 @@
+# $NetBSD: buildlink3.mk,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+BUILDLINK_TREE+= openjdk8
+
+.if !defined(OPENJDK8_BUILDLINK3_MK)
+OPENJDK8_BUILDLINK3_MK:=
+
+BUILDLINK_API_DEPENDS.openjdk8+= openjdk8>=1.8.0
+BUILDLINK_PKGSRCDIR.openjdk8?= ../../lang/openjdk8
+
+.endif # OPENJDK7_BUILDLINK3_MK
+
+BUILDLINK_TREE+= -openjdk8
diff --git a/lang/openjdk8/distinfo b/lang/openjdk8/distinfo
new file mode 100644
index 00000000000..ad94cb9e450
--- /dev/null
+++ b/lang/openjdk8/distinfo
@@ -0,0 +1,76 @@
+$NetBSD: distinfo,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+SHA1 (openjdk7/bootstrap-jdk7u60-bin-dragonfly-3.6-amd64-20140719.tar.bz2) = 98fdb66b429148ae3922a2f9b2db736a1708e337
+RMD160 (openjdk7/bootstrap-jdk7u60-bin-dragonfly-3.6-amd64-20140719.tar.bz2) = 4835c6361f66138d73f583c40df0e04a31257157
+Size (openjdk7/bootstrap-jdk7u60-bin-dragonfly-3.6-amd64-20140719.tar.bz2) = 37910104 bytes
+SHA1 (openjdk7/bootstrap-jdk7u60-bin-dragonfly-3.8-amd64-20140719.tar.bz2) = 29bd7aa925941933b2da671340e1d325d9603e5d
+RMD160 (openjdk7/bootstrap-jdk7u60-bin-dragonfly-3.8-amd64-20140719.tar.bz2) = b13d0e42839fb746d41f9001e488162b47803140
+Size (openjdk7/bootstrap-jdk7u60-bin-dragonfly-3.8-amd64-20140719.tar.bz2) = 37883700 bytes
+SHA1 (openjdk7/bootstrap-jdk7u60-bin-netbsd-5-amd64-20140719.tar.bz2) = fba2e61d9b6dfa3d582259aa60125762fd3c8931
+RMD160 (openjdk7/bootstrap-jdk7u60-bin-netbsd-5-amd64-20140719.tar.bz2) = 7a164227b077d9e86a2dd2410e83463d6d3360aa
+Size (openjdk7/bootstrap-jdk7u60-bin-netbsd-5-amd64-20140719.tar.bz2) = 37211292 bytes
+SHA1 (openjdk7/bootstrap-jdk7u60-bin-netbsd-5-i386-20140719.tar.bz2) = dece32461eaab72d3e2327106b5136461d82bd0e
+RMD160 (openjdk7/bootstrap-jdk7u60-bin-netbsd-5-i386-20140719.tar.bz2) = d5ab48cd9a2cf0ac554b3fd37a7ace1e5420e3c4
+Size (openjdk7/bootstrap-jdk7u60-bin-netbsd-5-i386-20140719.tar.bz2) = 39051642 bytes
+SHA1 (openjdk7/bootstrap-jdk7u60-bin-netbsd-6-amd64-20140719.tar.bz2) = 4fac0ed96cfe1b366b50c1b88aabb8d41281f893
+RMD160 (openjdk7/bootstrap-jdk7u60-bin-netbsd-6-amd64-20140719.tar.bz2) = ada7af827e2e47e93f1813f0531b697125d1f44b
+Size (openjdk7/bootstrap-jdk7u60-bin-netbsd-6-amd64-20140719.tar.bz2) = 37567181 bytes
+SHA1 (openjdk7/bootstrap-jdk7u60-bin-netbsd-6-i386-20140719.tar.bz2) = 76906b91e8412fefdae5ecb15e01ddbcd586d2ad
+RMD160 (openjdk7/bootstrap-jdk7u60-bin-netbsd-6-i386-20140719.tar.bz2) = 068fb6ad180e8b8d9c4f2cc158c40b3047d8e015
+Size (openjdk7/bootstrap-jdk7u60-bin-netbsd-6-i386-20140719.tar.bz2) = 39347597 bytes
+SHA1 (openjdk7/bootstrap-jdk7u60-bin-netbsd-7-amd64-20140719.tar.bz2) = 8a782d9cb2297b1cb24dfb022b139363d8695616
+RMD160 (openjdk7/bootstrap-jdk7u60-bin-netbsd-7-amd64-20140719.tar.bz2) = 607c25a81ae073fb282e5a81169b93d6818e5122
+Size (openjdk7/bootstrap-jdk7u60-bin-netbsd-7-amd64-20140719.tar.bz2) = 37593509 bytes
+SHA1 (openjdk7/bootstrap-jdk7u60-bin-netbsd-7-i386-20140719.tar.bz2) = 261eb3bf84b6ac60d30a704523efb27e7a7c715a
+RMD160 (openjdk7/bootstrap-jdk7u60-bin-netbsd-7-i386-20140719.tar.bz2) = 1d26ee7f6443e1f4389e38d20134fb8e2969254e
+Size (openjdk7/bootstrap-jdk7u60-bin-netbsd-7-i386-20140719.tar.bz2) = 40161195 bytes
+SHA1 (openjdk7/bootstrap-jdk7u71-bin-freebsd-10-x86_64-20150101.tar.bz2) = 7e85c42f75f014e88eb62580979f6a0fc9b6e957
+RMD160 (openjdk7/bootstrap-jdk7u71-bin-freebsd-10-x86_64-20150101.tar.bz2) = d84d7b82205f23827ef9ce672602d0ba8a9a9c72
+Size (openjdk7/bootstrap-jdk7u71-bin-freebsd-10-x86_64-20150101.tar.bz2) = 37448005 bytes
+SHA1 (openjdk7/openjdk-1.8.31-20150207.tar.xz) = f29db4779b126c829d8385208a570c96553b88c8
+RMD160 (openjdk7/openjdk-1.8.31-20150207.tar.xz) = 09434e80bac77f6d367dbe0fe5ee051f1f12c7fe
+Size (openjdk7/openjdk-1.8.31-20150207.tar.xz) = 51853460 bytes
+SHA1 (patch-aa) = 653a22362d55de11f4fc37240a5ac945eabff8a4
+SHA1 (patch-al) = f65f739805c2ef471a4de10d6da42e86c5561b8c
+SHA1 (patch-an) = fce4da00762770c1c0592bd225bf73e875252178
+SHA1 (patch-ap) = da568efb582510b7867ef975cc3143646ed706d5
+SHA1 (patch-as) = 484ba6dd99c650ebe3df5639548ee2874c326aaa
+SHA1 (patch-at) = 736ead4b9f391c711bf1f387d87ffb9363823557
+SHA1 (patch-ba) = a54a25d4f8982ff4d2cb4e7e456fe2a44656b800
+SHA1 (patch-bh) = 6194a7c319a496f8ff7df173912cf87118f26a63
+SHA1 (patch-bi) = 190056b3d4c42986ae0a600668b02711598361b8
+SHA1 (patch-bn) = a50dbe17236a90d60d4bbb852ae447e51a279892
+SHA1 (patch-common_autoconf_generated-configure.sh) = 0c9d7882010bb900a174e9c19e7ea31e73595a44
+SHA1 (patch-common_autoconf_spec.gmk.in) = 8fda7fac31444997615a8f8bfe22d5b2df01ad3c
+SHA1 (patch-hotspot_agent_src_share_classes_sun_jvm_hotspot_utilities_PlatformInfo.java) = 893f3b7ad0839a75be49ddd0f5eefcff2dbd2928
+SHA1 (patch-hotspot_make_bsd_makefiles_defs.make) = de9d1f2c97df16119de56abb5e900f705813e514
+SHA1 (patch-hotspot_make_bsd_makefiles_rules.make) = 4b9a92abd0a91d81b5c34b7fbc98aeaadfe06bce
+SHA1 (patch-hotspot_src_os_bsd_vm_osThread__bsd.cpp) = c34887b4bf0873c70a44adaaa9be38614603e1d4
+SHA1 (patch-hotspot_src_os_posix_vm_os__posix.cpp) = f38d3ea8002bc8c58d1cf05e70424858dabd2991
+SHA1 (patch-hotspot_src_share_vm_opto_node.cpp) = aacb4e03f62f1a6f9b38de39a966c318b70b1293
+SHA1 (patch-jdk_make_GenerateSources.gmk) = ec1b64805afb6edca637d87529b1d3fa59d20828
+SHA1 (patch-jdk_make_Images.gmk) = 3ce8b5ee63cb9e4a7a32294f52191bb81a695723
+SHA1 (patch-jdk_make_lib_SoundLibraries.gmk) = 27c33019f28d38efc0ae2c019b3e6e44863e8253
+SHA1 (patch-jdk_src_share_native_sun_awt_image_jpeg_imageioJPEG.c) = fe58fe992521c0ef8b7b60f8213bfcd714790c1e
+SHA1 (patch-jdk_src_share_native_sun_awt_image_jpeg_jpegdecoder.c) = 08270f0a9e0eacf6416a09e300429ccdc1bcdad8
+SHA1 (patch-jdk_src_solaris_bin_ergo.c) = 0e2e496a0d596cc9de546c722b3387ad5a08bc21
+SHA1 (patch-jdk_src_solaris_classes_java_lang_UNIXProcess.java.bsd) = 6037c862d219a73617f0d04e844c109f03466691
+SHA1 (patch-jdk_src_solaris_classes_sun_net_PortConfig.java) = ea9f74b654ddc7ab977daff6c9176d78657145a9
+SHA1 (patch-jdk_src_solaris_classes_sun_nio_ch_DefaultAsynchronousChannelProvider.java) = f11483cb75ab5cad5a5b749cab287d5dbaaefe63
+SHA1 (patch-jdk_src_solaris_native_com_sun_media_sound_PLATFORM__API__BsdOS__ALSA__PCM.c) = 7fab23dce20b4ff18123ea65841589ae673f5675
+SHA1 (patch-jdk_src_solaris_native_java_lang_UNIXProcess__md.c) = 2596d03c4a2e0d978aabfd4b170b0dd1d6260c6d
+SHA1 (patch-jdk_src_solaris_native_java_lang_java__props__md.c) = 6c6648c2716508209f07512327afe3ec1179f64c
+SHA1 (patch-jdk_src_solaris_native_java_net_NetworkInterface.c) = ea06dc34b1c6dc08b7d1537ae129a3a2e3636f81
+SHA1 (patch-jdk_src_solaris_native_java_net_net__util__md.c) = c404a3520f82b8cc5eb906725aa2bc7f27cad801
+SHA1 (patch-jdk_src_solaris_native_sun_awt_X11Color.c) = cf0f8218e0088b677cd66fd5bc0d575ab08b710f
+SHA1 (patch-jdk_src_solaris_native_sun_nio_ch_sctp_SctpChannelImpl.c) = b0af426ab076dfef200bbe1575c3e0639a428c21
+SHA1 (patch-jdk_src_solaris_native_sun_nio_ch_sctp_SctpNet.c) = 7e348df7f390fc04d3097b7200b34bef885f067e
+SHA1 (patch-jdk_src_solaris_native_sun_security_pkcs11_j2secmod_md.c) = 6eb1f6b3cd62cb35a7b72cae7cb25bc5dc45fd9b
+SHA1 (patch-jdk_test_Makefile) = 36430647c444dea491ae0c916c6ad7b1a3607ec6
+SHA1 (patch-jdk_test_java_beans_Introspector_4168475_Test4168475.java) = 5fb2dd92820afcca5a04956d81e5244840b513f7
+SHA1 (patch-jdk_test_java_beans_Introspector_4520754_Test4520754.java) = e5d6121d2af74238347baa2d63670f0d520847f8
+SHA1 (patch-jdk_test_java_beans_Introspector_Test4144543.java) = bb0a20f688093f2d60f4a4937ae418fcebfcc7ca
+SHA1 (patch-jdk_test_java_lang_management_OperatingSystemMXBean_GetSystemLoadAverage.java) = 07b071ace2a91acd1968ed670aead67d72f0d490
+SHA1 (patch-jdk_test_sun_security_ec_TestEC.java) = c2db0716408ae1d081b3516b6c866b8f43cf5b6f
+SHA1 (patch-langtools_make_BuildLangtools.gmk) = 5843d40fa84e0f1dbe3d6bbc837794c196903ee9
+SHA1 (patch-langtools_make_build.xml) = e9dccdb67a0f25b266755f66e520c6420afaf7ba
diff --git a/lang/openjdk8/hacks.mk b/lang/openjdk8/hacks.mk
new file mode 100644
index 00000000000..7b0c96dc52b
--- /dev/null
+++ b/lang/openjdk8/hacks.mk
@@ -0,0 +1,15 @@
+# $NetBSD: hacks.mk,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+.if !defined(OPENJDK8_HACKS_MK)
+OPENJDK8_HACKS_MK= # empty
+
+### Ensure we do not pickup external jpeg includes: openjdk uses an internal
+### libjpeg with potentially conflicting defines, which breaks at least
+### libjpeg-turbo
+post-wrapper:
+ ${RM} -f ${BUILDLINK_DIR}/include/jconfig.h
+ ${RM} -f ${BUILDLINK_DIR}/include/jerror.h
+ ${RM} -f ${BUILDLINK_DIR}/include/jmorecfg.h
+ ${RM} -f ${BUILDLINK_DIR}/include/jpeglib.h
+
+.endif
diff --git a/lang/openjdk8/options.mk b/lang/openjdk8/options.mk
new file mode 100644
index 00000000000..3f511fc246b
--- /dev/null
+++ b/lang/openjdk8/options.mk
@@ -0,0 +1,85 @@
+# $NetBSD: options.mk,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+PKG_OPTIONS_VAR= PKG_OPTIONS.openjdk8
+PKG_SUPPORTED_OPTIONS= debug jre-jce jdk-zero-vm x11
+PKG_SUGGESTED_OPTIONS= jre-jce x11
+.if ${MACHINE_ARCH} != "i386" && ${MACHINE_ARCH} != "x86_64"
+PKG_SUGGESTED_OPTIONS+= jdk-zero-vm
+.endif
+
+.include "../../mk/bsd.options.mk"
+
+###
+### Java(TM) Cryptography Extension (JCE)
+###
+.if !empty(PKG_OPTIONS:Mjre-jce)
+CONFIGURE_ARGS+= --enable-unlimited-crypto
+.else
+CONFIGURE_ARGS+= --disable-unlimited-crypto
+.endif
+
+###
+### X11 or headless build
+###
+PLIST_VARS+= x11
+.if !empty(PKG_OPTIONS:Mx11)
+PLIST.x11= yes
+CONFIGURE_ARGS+= --with-x=yes
+CONFIGURE_ARGS+= --x-includes=${X11BASE}/include
+CONFIGURE_ARGS+= --x-libraries=${X11BASE}/lib
+CONFIGURE_ARGS+= --enable-headful
+DEPENDS+= dejavu-ttf-[0-9]*:../../fonts/dejavu-ttf
+#DEPENDS+= ja-sazanami-ttf-[0-9]*:../../fonts/ja-sazanami-ttf
+#DEPENDS+= baekmuk-ttf-[0-9]*:../../fonts/baekmuk-ttf
+.include "../../x11/libXext/buildlink3.mk"
+.include "../../x11/libXi/buildlink3.mk"
+BUILDLINK_DEPMETHOD.libXp?= build
+.include "../../x11/libXp/buildlink3.mk"
+BUILDLINK_DEPMETHOD.libXt?= build
+.include "../../x11/libXt/buildlink3.mk"
+.include "../../x11/libXtst/buildlink3.mk"
+.include "../../x11/libXrender/buildlink3.mk"
+.else
+MAKE_ENV+= BUILD_HEADLESS_ONLY=true
+CONFIGURE_ARGS+= --without-x
+CONFIGURE_ARGS+= --disable-headful
+# We apparently still need the Xlib headers to build headless. why?
+BUILDLINK_DEPMETHOD.libX11?= build
+.include "../../x11/libX11/buildlink3.mk"
+BUILDLINK_DEPMETHOD.libXt?= build
+.include "../../x11/libXt/buildlink3.mk"
+BUILDLINK_DEPMETHOD.libXrender?=build
+.include "../../x11/libXrender/buildlink3.mk"
+post-configure: remove-x11-classes
+remove-x11-classes:
+ rm ${WRKSRC}/jdk/src/solaris/classes/sun/awt/X11/*.java
+.endif
+
+#
+# Debugging
+#
+.if !empty(PKG_OPTIONS:Mdebug)
+BUILD_DEBUG_LEVEL= fastdebug
+CONFIGURE_ARGS+= --enable-debug-symbols
+CONFIGURE_ARGS+= --disable-zip-debug-info
+CONFIGURE_ARGS+= --disable-precompiled-headers
+PLIST_SRC+= PLIST.debug
+.else
+BUILD_DEBUG_LEVEL= release
+CONFIGURE_ARGS+= --disable-debug-symbols
+.endif
+CONFIGURE_ARGS+= --with-debug-level=${BUILD_DEBUG_LEVEL}
+
+#
+# Build variant. Zero VM builds a portable JVM without assembly optimization.
+#
+PLIST_VARS+= native
+.if !empty(PKG_OPTIONS:Mjdk-zero-vm)
+# XXX if we have LLVM we should use zeroshark for better performance
+BUILD_VARIANT= zero
+.include "../../devel/libffi/buildlink3.mk"
+.else
+BUILD_VARIANT= server
+PLIST.native= yes
+.endif
+CONFIGURE_ARGS+= --with-jvm-variants=${BUILD_VARIANT}
diff --git a/lang/openjdk8/patches/patch-aa b/lang/openjdk8/patches/patch-aa
new file mode 100644
index 00000000000..eb9c4c6d07d
--- /dev/null
+++ b/lang/openjdk8/patches/patch-aa
@@ -0,0 +1,146 @@
+$NetBSD: patch-aa,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+--- hotspot/src/os/bsd/vm/os_bsd.cpp.orig 2015-02-02 15:32:37.000000000 +0000
++++ hotspot/src/os/bsd/vm/os_bsd.cpp
+@@ -112,8 +112,11 @@
+ # include <vm/vm_param.h>
+ #endif
+
+-#if defined(__FreeBSD__) || defined(__NetBSD__)
++#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__DragonFly__)
+ # include <elf.h>
++#if !defined(EM_ALPHA)
++#define EM_ALPHA 0x9026
++#endif
+ #endif
+
+ #ifdef __APPLE__
+@@ -282,6 +285,7 @@ void os::Bsd::initialize_system_info() {
+ size_t len;
+ int cpu_val;
+ julong mem_val;
++ struct rlimit limits;
+
+ /* get processors count via hw.ncpus sysctl */
+ mib[0] = CTL_HW;
+@@ -302,6 +306,8 @@ void os::Bsd::initialize_system_info() {
+
+ #if defined (HW_MEMSIZE) // Apple
+ mib[1] = HW_MEMSIZE;
++#elif defined(HW_PHYSMEM64) // NetBSD
++ mib[1] = HW_PHYSMEM64;
+ #elif defined(HW_PHYSMEM) // Most of BSD
+ mib[1] = HW_PHYSMEM;
+ #elif defined(HW_REALMEM) // Old FreeBSD
+@@ -318,14 +324,11 @@ void os::Bsd::initialize_system_info() {
+ _physical_memory = 256*1024*1024; // fallback (XXXBSD?)
+ }
+
+-#ifdef __OpenBSD__
+- {
+- // limit _physical_memory memory view on OpenBSD since
+- // datasize rlimit restricts us anyway.
+- struct rlimit limits;
+- getrlimit(RLIMIT_DATA, &limits);
+- _physical_memory = MIN2(_physical_memory, (julong)limits.rlim_cur);
+- }
++ getrlimit(RLIMIT_DATA, &limits);
++ _physical_memory = MIN2(_physical_memory, (julong)limits.rlim_cur);
++#if defined(RLIMIT_AS)
++ getrlimit(RLIMIT_AS, &limits);
++ _physical_memory = MIN2(_physical_memory, (julong)limits.rlim_cur);
+ #endif
+ }
+
+@@ -377,7 +380,7 @@ void os::init_system_properties_values()
+ // ...
+ // 7: The default directories, normally /lib and /usr/lib.
+ #ifndef DEFAULT_LIBPATH
+-#define DEFAULT_LIBPATH "/lib:/usr/lib"
++#define DEFAULT_LIBPATH "@PREFIX@/lib/jni:@PREFIX@/lib:/lib:/usr/lib"
+ #endif
+
+ // Base path of extensions installed on the system.
+@@ -1236,7 +1239,7 @@ pid_t os::Bsd::gettid() {
+ guarantee(retval != 0, "just checking");
+ return retval;
+
+-#elif __FreeBSD__
++#elif defined(__FreeBSD__)
+ #if __FreeBSD_version > 900030
+ return ::pthread_getthreadid_np();
+ #else
+@@ -1244,9 +1247,9 @@ pid_t os::Bsd::gettid() {
+ thr_self(&tid);
+ return (pid_t)tid;
+ #endif
+-#elif __OpenBSD__
++#elif defined(__OpenBSD__)
+ retval = syscall(SYS_getthrid);
+-#elif __NetBSD__
++#elif defined(_NetBSD__)
+ retval = (pid_t) syscall(SYS__lwp_self);
+ #endif
+
+@@ -1561,7 +1564,9 @@ void * os::dll_load(const char *filename
+ {EM_PPC, EM_PPC, ELFCLASS32, ELFDATA2MSB, (char*)"Power PC 32"},
+ {EM_PPC64, EM_PPC64, ELFCLASS64, ELFDATA2MSB, (char*)"Power PC 64"},
+ {EM_ARM, EM_ARM, ELFCLASS32, ELFDATA2LSB, (char*)"ARM"},
++#if 0
+ {EM_S390, EM_S390, ELFCLASSNONE, ELFDATA2MSB, (char*)"IBM System/390"},
++#endif
+ {EM_ALPHA, EM_ALPHA, ELFCLASS64, ELFDATA2LSB, (char*)"Alpha"},
+ {EM_MIPS_RS3_LE, EM_MIPS_RS3_LE, ELFCLASS32, ELFDATA2LSB, (char*)"MIPSel"},
+ {EM_MIPS, EM_MIPS, ELFCLASS32, ELFDATA2MSB, (char*)"MIPS"},
+@@ -2092,6 +2097,33 @@ bool Semaphore::timedwait(unsigned int s
+
+ #else
+
++#if defined(__NetBSD__) && (__NetBSD_Version__ < 699000400)
++static inline int sem_timedwait(sem_t *sem, struct timespec *ts) {
++ struct timespec onems = { 0, 1000000 };
++ struct timespec total = { 0, 0 };
++ struct timespec unslept;
++ struct timespec elapsed;
++ struct timespec tmp;
++
++ while (timespeccmp(ts, &total, >)) {
++ if (sem_trywait(sem) == 0)
++ return 0;
++
++ if (errno != EAGAIN)
++ return -1;
++
++ (void)nanosleep(&onems, &unslept);
++
++ timespecsub(&onems, &unslept, &elapsed);
++ timespecadd(&total, &elapsed, &tmp);
++ total.tv_sec = tmp.tv_sec;
++ total.tv_nsec = tmp.tv_nsec;
++ }
++ errno = ETIMEDOUT;
++ return -1;
++}
++#endif /* __NetBSD__ */
++
+ bool Semaphore::trywait() {
+ return sem_trywait(&_semaphore) == 0;
+ }
+@@ -2843,7 +2875,7 @@ OSReturn os::set_native_priority(Thread*
+ #ifdef __OpenBSD__
+ // OpenBSD pthread_setprio starves low priority threads
+ return OS_OK;
+-#elif defined(__FreeBSD__)
++#elif defined(__FreeBSD__) || defined(__DragonFly__)
+ int ret = pthread_setprio(thread->osthread()->pthread_id(), newpri);
+ return (ret == 0) ? OS_OK : OS_ERR;
+ #elif defined(__APPLE__) || defined(__NetBSD__)
+@@ -2872,7 +2904,7 @@ OSReturn os::get_native_priority(const T
+ }
+
+ errno = 0;
+-#if defined(__OpenBSD__) || defined(__FreeBSD__)
++#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__DragonFly__)
+ *priority_ptr = pthread_getprio(thread->osthread()->pthread_id());
+ #elif defined(__APPLE__) || defined(__NetBSD__)
+ int policy;
diff --git a/lang/openjdk8/patches/patch-al b/lang/openjdk8/patches/patch-al
new file mode 100644
index 00000000000..89c47b9d3b4
--- /dev/null
+++ b/lang/openjdk8/patches/patch-al
@@ -0,0 +1,47 @@
+$NetBSD: patch-al,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+DragonFly support.
+
+--- jdk/src/solaris/classes/sun/nio/fs/DefaultFileSystemProvider.java.orig 2015-02-02 15:37:12.000000000 +0000
++++ jdk/src/solaris/classes/sun/nio/fs/DefaultFileSystemProvider.java
+@@ -27,6 +27,8 @@ package sun.nio.fs;
+
+ 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,14 @@ import sun.security.action.GetPropertyAc
+ public class DefaultFileSystemProvider {
+ private DefaultFileSystemProvider() { }
+
++ private static final Set<String> validFileSystemProviders
++ = new HashSet<String>();
++ static {
++ validFileSystemProviders.add("sun.nio.fs.SolarisFileSystemProvider");
++ validFileSystemProviders.add("sun.nio.fs.LinuxFileSystemProvider");
++ validFileSystemProviders.add("sun.nio.fs.BsdFileSystemProvider");
++ }
++
+ @SuppressWarnings("unchecked")
+ private static FileSystemProvider createProvider(String cn) {
+ Class<FileSystemProvider> c;
+@@ -57,11 +67,15 @@ public class DefaultFileSystemProvider {
+ 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"))
+ return createProvider("sun.nio.fs.LinuxFileSystemProvider");
+- if (osname.endsWith("BSD"))
++ if (osname.endsWith("BSD") || osname.equals("DragonFly"))
+ return createProvider("sun.nio.fs.BsdFileSystemProvider");
+ if (osname.contains("OS X"))
+ return createProvider("sun.nio.fs.MacOSXFileSystemProvider");
diff --git a/lang/openjdk8/patches/patch-an b/lang/openjdk8/patches/patch-an
new file mode 100644
index 00000000000..d29f708ab04
--- /dev/null
+++ b/lang/openjdk8/patches/patch-an
@@ -0,0 +1,14 @@
+$NetBSD: patch-an,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+NetBSD fix.
+
+--- hotspot/src/os_cpu/bsd_x86/vm/bytes_bsd_x86.inline.hpp.orig 2015-02-02 15:32:37.000000000 +0000
++++ hotspot/src/os_cpu/bsd_x86/vm/bytes_bsd_x86.inline.hpp
+@@ -39,6 +39,7 @@
+ # define bswap_32(x) swap32(x)
+ # define bswap_64(x) swap64(x)
+ # elif defined(__NetBSD__)
++# include <machine/bswap.h>
+ # define bswap_16(x) bswap16(x)
+ # define bswap_32(x) bswap32(x)
+ # define bswap_64(x) bswap64(x)
diff --git a/lang/openjdk8/patches/patch-ap b/lang/openjdk8/patches/patch-ap
new file mode 100644
index 00000000000..b2aee327db0
--- /dev/null
+++ b/lang/openjdk8/patches/patch-ap
@@ -0,0 +1,53 @@
+$NetBSD: patch-ap,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+Use pkgsrc fontconfig.
+
+--- jdk/src/solaris/native/sun/awt/fontpath.c.orig 2015-02-02 15:37:12.000000000 +0000
++++ jdk/src/solaris/native/sun/awt/fontpath.c
+@@ -59,8 +59,8 @@
+ extern Display *awt_display;
+ #endif /* !HEADLESS */
+
+-#define FONTCONFIG_DLL_VERSIONED VERSIONED_JNI_LIB_NAME("fontconfig", "1")
+-#define FONTCONFIG_DLL JNI_LIB_NAME("fontconfig")
++#define FONTCONFIG_DLL_VERSIONED "@BUILDLINK_PREFIX.fontconfig@" JNI_LIB_NAME("fontconfig")
++#define FONTCONFIG_DLL "@BUILDLINK_PREFIX.fontconfig@" JNI_LIB_NAME("fontconfig")
+
+ #define MAXFDIRS 512 /* Max number of directories that contain fonts */
+
+@@ -154,6 +154,27 @@ static char *fullBSDFontPath[] = {
+ NULL, /* terminates the list */
+ };
+ #endif
++static char *pkgsrcFontPath[] = {
++ "@PREFIX@/share/fonts/X11/100dpi",
++ "@PREFIX@/share/fonts/X11/75dpi",
++ "@PREFIX@/share/fonts/X11/Type1",
++ "@PREFIX@/share/fonts/X11/cyrillic",
++ "@PREFIX@/share/fonts/X11/misc",
++ "@PREFIX@/share/fonts/X11/TTF",
++ "/usr/X11R7/lib/X11/fonts/100dpi",
++ "/usr/X11R7/lib/X11/fonts/75dpi",
++ "/usr/X11R7/lib/X11/fonts/Type1",
++ "/usr/X11R7/lib/X11/fonts/cyrillic",
++ "/usr/X11R7/lib/X11/fonts/misc",
++ "/usr/X11R7/lib/X11/fonts/TTF",
++ "/usr/X11R6/lib/X11/fonts/100dpi",
++ "/usr/X11R6/lib/X11/fonts/75dpi",
++ "/usr/X11R6/lib/X11/fonts/Type1",
++ "/usr/X11R6/lib/X11/fonts/cyrillic",
++ "/usr/X11R6/lib/X11/fonts/misc",
++ "/usr/X11R6/lib/X11/fonts/TTF",
++ NULL
++};
+
+ static char **getFontConfigLocations();
+
+@@ -528,6 +549,7 @@ static char *getPlatformFontPathChars(JN
+ #elif defined(_ALLBSD_SOURCE)
+ knowndirs = fullBSDFontPath;
+ #endif
++ knowndirs = pkgsrcFontPath;
+ /* REMIND: this code requires to be executed when the GraphicsEnvironment
+ * is already initialised. That is always true, but if it were not so,
+ * this code could throw an exception and the fontpath would fail to
diff --git a/lang/openjdk8/patches/patch-as b/lang/openjdk8/patches/patch-as
new file mode 100644
index 00000000000..1ec9387c073
--- /dev/null
+++ b/lang/openjdk8/patches/patch-as
@@ -0,0 +1,68 @@
+$NetBSD: patch-as,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+--- jdk/src/share/classes/sun/applet/AppletViewerPanel.java.orig 2015-02-02 15:37:12.000000000 +0000
++++ jdk/src/share/classes/sun/applet/AppletViewerPanel.java
+@@ -42,25 +42,25 @@ import sun.tools.jar.*;
+ *
+ * @author Arthur van Hoff
+ */
+-class AppletViewerPanel extends AppletPanel {
++public class AppletViewerPanel extends AppletPanel {
+
+ /* Are we debugging? */
+- static boolean debug = false;
++ protected static boolean debug = false;
+
+ /**
+ * The document url.
+ */
+- URL documentURL;
++ protected URL documentURL;
+
+ /**
+ * The base url.
+ */
+- URL baseURL;
++ protected URL baseURL;
+
+ /**
+ * The attributes of the applet.
+ */
+- Hashtable atts;
++ protected Hashtable<String,String> atts;
+
+ /*
+ * JDK 1.1 serialVersionUID
+@@ -70,7 +70,7 @@ class AppletViewerPanel extends AppletPa
+ /**
+ * Construct an applet viewer and start the applet.
+ */
+- AppletViewerPanel(URL documentURL, Hashtable atts) {
++ protected AppletViewerPanel(URL documentURL, Hashtable<String,String> atts) {
+ this.documentURL = documentURL;
+ this.atts = atts;
+
+@@ -106,7 +106,7 @@ class AppletViewerPanel extends AppletPa
+ * Get an applet parameter.
+ */
+ public String getParameter(String name) {
+- return (String)atts.get(name.toLowerCase());
++ return atts.get(name.toLowerCase());
+ }
+
+ /**
+@@ -202,12 +202,12 @@ class AppletViewerPanel extends AppletPa
+ return (AppletContext)getParent();
+ }
+
+- static void debug(String s) {
++ protected static void debug(String s) {
+ if(debug)
+ System.err.println("AppletViewerPanel:::" + s);
+ }
+
+- static void debug(String s, Throwable t) {
++ protected static void debug(String s, Throwable t) {
+ if(debug) {
+ t.printStackTrace();
+ debug(s);
diff --git a/lang/openjdk8/patches/patch-at b/lang/openjdk8/patches/patch-at
new file mode 100644
index 00000000000..27d2787793a
--- /dev/null
+++ b/lang/openjdk8/patches/patch-at
@@ -0,0 +1,42 @@
+$NetBSD: patch-at,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+--- jdk/src/share/classes/sun/applet/AppletPanel.java.orig 2015-02-02 15:37:12.000000000 +0000
++++ jdk/src/share/classes/sun/applet/AppletPanel.java
+@@ -61,7 +61,7 @@ abstract class AppletPanel extends Panel
+ /**
+ * The applet (if loaded).
+ */
+- Applet applet;
++ protected Applet applet;
+
+ /**
+ * Applet will allow initialization. Should be
+@@ -157,7 +157,8 @@ abstract class AppletPanel extends Panel
+ * Creates a thread to run the applet. This method is called
+ * each time an applet is loaded and reloaded.
+ */
+- synchronized void createAppletThread() {
++ //Overridden by NetxPanel.
++ protected synchronized void createAppletThread() {
+ // Create a thread group for the applet, and start a new
+ // thread to load the applet.
+ String nm = "applet-" + getCode();
+@@ -304,7 +305,7 @@ abstract class AppletPanel extends Panel
+ /**
+ * Get an event from the queue.
+ */
+- synchronized AppletEvent getNextEvent() throws InterruptedException {
++ protected synchronized AppletEvent getNextEvent() throws InterruptedException {
+ while (queue == null || queue.isEmpty()) {
+ wait();
+ }
+@@ -698,7 +699,8 @@ abstract class AppletPanel extends Panel
+ * applet event processing so that it can be gracefully interrupted from
+ * things like HotJava.
+ */
+- private void runLoader() {
++ //Overridden by NetxPanel.
++ protected void runLoader() {
+ if (status != APPLET_DISPOSE) {
+ showAppletStatus("notdisposed");
+ return;
diff --git a/lang/openjdk8/patches/patch-ba b/lang/openjdk8/patches/patch-ba
new file mode 100644
index 00000000000..4e8ed8e00bc
--- /dev/null
+++ b/lang/openjdk8/patches/patch-ba
@@ -0,0 +1,15 @@
+$NetBSD: patch-ba,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+DragonFly support.
+
+--- hotspot/src/share/vm/utilities/macros.hpp.orig 2015-02-02 15:32:37.000000000 +0000
++++ hotspot/src/share/vm/utilities/macros.hpp
+@@ -278,7 +278,7 @@
+ #define NOT_WINDOWS(code) code
+ #endif
+
+-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__)
++#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__) || defined(__DragonFly__)
+ #define BSD_ONLY(code) code
+ #define NOT_BSD(code)
+ #else
diff --git a/lang/openjdk8/patches/patch-bh b/lang/openjdk8/patches/patch-bh
new file mode 100644
index 00000000000..9a9a03d88aa
--- /dev/null
+++ b/lang/openjdk8/patches/patch-bh
@@ -0,0 +1,16 @@
+$NetBSD: patch-bh,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+DragonFly support.
+
+--- hotspot/make/defs.make.orig 2015-02-02 15:32:37.000000000 +0000
++++ hotspot/make/defs.make
+@@ -173,6 +173,9 @@ ifeq ($(OS),)
+ ifeq ($(OS), Darwin)
+ OS=bsd
+ endif
++ ifeq ($(OS), DragonFly)
++ OS=bsd
++ endif
+ HOST := $(shell uname -n)
+ endif
+
diff --git a/lang/openjdk8/patches/patch-bi b/lang/openjdk8/patches/patch-bi
new file mode 100644
index 00000000000..db0afc2516f
--- /dev/null
+++ b/lang/openjdk8/patches/patch-bi
@@ -0,0 +1,45 @@
+$NetBSD: patch-bi,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+DragonFly support.
+
+--- hotspot/src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp.orig 2015-02-02 15:32:37.000000000 +0000
++++ hotspot/src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp
+@@ -96,7 +96,7 @@
+ #define SPELL_REG_FP "ebp"
+ #endif // AMD64
+
+-#ifdef __FreeBSD__
++#if defined(__FreeBSD__) || defined(__DragonFly__)
+ # define context_trapno uc_mcontext.mc_trapno
+ # ifdef AMD64
+ # define context_pc uc_mcontext.mc_rip
+@@ -283,13 +283,8 @@ address os::current_stack_pointer() {
+ register void *esp;
+ __asm__("mov %%"SPELL_REG_SP", %0":"=r"(esp));
+ return (address) esp;
+-#elif defined(SPARC_WORKS)
+- register void *esp;
+- __asm__("mov %%"SPELL_REG_SP", %0":"=r"(esp));
+- return (address) ((char*)esp + sizeof(long)*2);
+ #else
+- register void *esp __asm__ (SPELL_REG_SP);
+- return (address) esp;
++ return (address)__builtin_frame_address(0);
+ #endif
+ }
+
+@@ -366,13 +361,7 @@ frame os::get_sender_for_C_frame(frame*
+ }
+
+ intptr_t* _get_previous_fp() {
+-#if defined(SPARC_WORKS) || defined(__clang__) || defined(__llvm__)
+- register intptr_t **ebp;
+- __asm__("mov %%"SPELL_REG_FP", %0":"=r"(ebp));
+-#else
+- register intptr_t **ebp __asm__ (SPELL_REG_FP);
+-#endif
+- return (intptr_t*) *ebp; // we want what it points to.
++ return (intptr_t *)__builtin_frame_address(1);
+ }
+
+
diff --git a/lang/openjdk8/patches/patch-bn b/lang/openjdk8/patches/patch-bn
new file mode 100644
index 00000000000..a5b3fec25d8
--- /dev/null
+++ b/lang/openjdk8/patches/patch-bn
@@ -0,0 +1,53 @@
+$NetBSD: patch-bn,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+Use pkgsrc fonts.
+
+--- jdk/src/solaris/classes/sun/awt/fontconfigs/bsd.fontconfig.properties.orig 2015-02-02 15:37:12.000000000 +0000
++++ jdk/src/solaris/classes/sun/awt/fontconfigs/bsd.fontconfig.properties
+@@ -167,26 +167,26 @@ sequence.fallback=chinese-big5,chinese-g
+ # Font File Names
+
+ ## FIXME: Should not hardcode /usr/local
+-filename.DejaVu_Sans=/usr/local/lib/X11/fonts/dejavu/DejaVuSans.ttf
+-filename.DejaVu_Sans_Bold=/usr/local/lib/X11/fonts/dejavu/DejaVuSans-Bold.ttf
+-filename.DejaVu_Sans_Oblique=/usr/local/lib/X11/fonts/dejavu/DejaVuSans-Oblique.ttf
+-filename.DejaVu_Sans_Bold_Oblique=/usr/local/lib/X11/fonts/dejavu/DejaVuSans-BoldOblique.ttf
++filename.DejaVu_Sans=@PREFIX@/share/fonts/X11/TTF/DejaVuSans.ttf
++filename.DejaVu_Sans_Bold=@PREFIX@/share/fonts/X11/TTF/DejaVuSans-Bold.ttf
++filename.DejaVu_Sans_Oblique=@PREFIX@/share/fonts/X11/TTF/DejaVuSans-Oblique.ttf
++filename.DejaVu_Sans_Bold_Oblique=@PREFIX@/share/fonts/X11/TTF/DejaVuSans-BoldOblique.ttf
+
+-filename.DejaVu_Sans_Mono=/usr/local/lib/X11/fonts/dejavu/DejaVuSansMono.ttf
+-filename.DejaVu_Sans_Mono_Bold=/usr/local/lib/X11/fonts/dejavu/DejaVuSansMono-Bold.ttf
+-filename.DejaVu_Sans_Mono_Oblique=/usr/local/lib/X11/fonts/dejavu/DejaVuSansMono-Oblique.ttf
+-filename.DejaVu_Sans_Mono_Bold_Oblique=/usr/local/lib/X11/fonts/dejavu/DejaVuSansMono-BoldOblique.ttf
++filename.DejaVu_Sans_Mono=@PREFIX@/share/fonts/X11/TTF/DejaVuSansMono.ttf
++filename.DejaVu_Sans_Mono_Bold=@PREFIX@/share/fonts/X11/TTF/DejaVuSansMono-Bold.ttf
++filename.DejaVu_Sans_Mono_Oblique=@PREFIX@/share/fonts/X11/TTF/DejaVuSansMono-Oblique.ttf
++filename.DejaVu_Sans_Mono_Bold_Oblique=@PREFIX@/share/fonts/X11/TTF/DejaVuSansMono-BoldOblique.ttf
+
+-filename.DejaVu_Serif=/usr/local/lib/X11/fonts/dejavu/DejaVuSerif.ttf
+-filename.DejaVu_Serif_Bold=/usr/local/lib/X11/fonts/dejavu/DejaVuSerif-Bold.ttf
+-filename.DejaVu_Serif_Italic=/usr/local/lib/X11/fonts/dejavu/DejaVuSerif-Italic.ttf
+-filename.DejaVu_Serif_Bold_Italic=/usr/local/lib/X11/fonts/dejavu/DejaVuSerif-BoldItalic.ttf
++filename.DejaVu_Serif=@PREFIX@/share/fonts/X11/TTF/DejaVuSerif.ttf
++filename.DejaVu_Serif_Bold=@PREFIX@/share/fonts/X11/TTF/DejaVuSerif-Bold.ttf
++filename.DejaVu_Serif_Italic=@PREFIX@/share/fonts/X11/TTF/DejaVuSerif-Italic.ttf
++filename.DejaVu_Serif_Bold_Italic=@PREFIX@/share/fonts/X11/TTF/DejaVuSerif-BoldItalic.ttf
+
+-filename.Sazanami_Gothic=/usr/local/share/font-sazanami/sazanami-gothic.ttf
+-filename.Sazanami_Mincho=/usr/local/share/font-sazanami/sazanami-mincho.ttf
+-filename.AR_PL_ShanHeiSun_Uni=/usr/local/share/fonts/TrueType/uming.ttc
+-filename.AR_PL_ZenKai_Uni=/usr/local/share/fonts/TrueType/ukai.ttc
+-filename.NanumGothic=/usr/local/lib/X11/fonts/nanum-ttf/NanumGothic.ttf
+-filename.NanumGothic_Bold=/usr/local/lib/X11/fonts/nanum-ttf/NanumGothicBold.ttf
+-filename.NanumMyeongjo=/usr/local/lib/X11/fonts/nanum-ttf/NanumMyeongjo.ttf
+-filename.NanumMyeongjo_Bold=/usr/local/lib/X11/fonts/nanum-ttf/NanumMyeongjoBold.ttf
++filename.Sazanami_Gothic=@PREFIX@/share/fonts/X11/TTF/sazanami-gothic.ttf
++filename.Sazanami_Mincho=@PREFIX@/share/fonts/X11/TTF/sazanami-mincho.ttf
++filename.AR_PL_ShanHeiSun_Uni=@PREFIX@/share/fonts/X11/TTF/uming.ttc
++filename.AR_PL_ZenKai_Uni=@PREFIX@/share/fonts/X11/TTF/ukai.ttc
++filename.NanumGothic=@PREFIX@/share/fonts/X11/TTF/NanumGothic.ttf
++filename.NanumGothic_Bold=@PREFIX@/share/fonts/X11/TTF/NanumGothicBold.ttf
++filename.NanumMyeongjo=@PREFIX@/share/fonts/X11/TTF/NanumMyeongjo.ttf
++filename.NanumMyeongjo_Bold=@PREFIX@/share/fonts/X11/TTF/NanumMyeongjoBold.ttf
diff --git a/lang/openjdk8/patches/patch-common_autoconf_generated-configure.sh b/lang/openjdk8/patches/patch-common_autoconf_generated-configure.sh
new file mode 100644
index 00000000000..89516e9ed3e
--- /dev/null
+++ b/lang/openjdk8/patches/patch-common_autoconf_generated-configure.sh
@@ -0,0 +1,102 @@
+$NetBSD: patch-common_autoconf_generated-configure.sh,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+--- common/autoconf/generated-configure.sh.orig 2015-02-02 15:31:06.000000000 +0000
++++ common/autoconf/generated-configure.sh
+@@ -8379,9 +8379,9 @@ done
+ # We need to find a recent version of GNU make. Especially on Solaris, this can be tricky.
+ if test "x$MAKE" != x; then
+ # User has supplied a make, test it.
+- if test ! -f "$MAKE"; then
+- as_fn_error $? "The specified make (by MAKE=$MAKE) is not found." "$LINENO" 5
+- fi
++# if test ! -f "$MAKE"; then
++# as_fn_error $? "The specified make (by MAKE=$MAKE) is not found." "$LINENO" 5
++# fi
+
+ MAKE_CANDIDATE=""$MAKE""
+ DESCRIPTION="user supplied MAKE=$MAKE"
+@@ -12483,7 +12483,7 @@ fi
+ # Resolve file symlinks
+ while test $COUNTER -lt 20; do
+ ISLINK=`$LS -l $sym_link_dir/$sym_link_file | $GREP '\->' | $SED -e 's/.*-> \(.*\)/\1/'`
+- if test "x$ISLINK" == x; then
++ if test "x$ISLINK" = x; then
+ # This is not a symbolic link! We are done!
+ break
+ fi
+@@ -19643,7 +19643,7 @@ $as_echo_n "checking resolved symbolic l
+ # Resolve file symlinks
+ while test $COUNTER -lt 20; do
+ ISLINK=`$LS -l $sym_link_dir/$sym_link_file | $GREP '\->' | $SED -e 's/.*-> \(.*\)/\1/'`
+- if test "x$ISLINK" == x; then
++ if test "x$ISLINK" = x; then
+ # This is not a symbolic link! We are done!
+ break
+ fi
+@@ -20081,7 +20081,7 @@ $as_echo_n "checking for resolved symbol
+ # Resolve file symlinks
+ while test $COUNTER -lt 20; do
+ ISLINK=`$LS -l $sym_link_dir/$sym_link_file | $GREP '\->' | $SED -e 's/.*-> \(.*\)/\1/'`
+- if test "x$ISLINK" == x; then
++ if test "x$ISLINK" = x; then
+ # This is not a symbolic link! We are done!
+ break
+ fi
+@@ -21244,7 +21244,7 @@ $as_echo_n "checking resolved symbolic l
+ # Resolve file symlinks
+ while test $COUNTER -lt 20; do
+ ISLINK=`$LS -l $sym_link_dir/$sym_link_file | $GREP '\->' | $SED -e 's/.*-> \(.*\)/\1/'`
+- if test "x$ISLINK" == x; then
++ if test "x$ISLINK" = x; then
+ # This is not a symbolic link! We are done!
+ break
+ fi
+@@ -21682,7 +21682,7 @@ $as_echo_n "checking for resolved symbol
+ # Resolve file symlinks
+ while test $COUNTER -lt 20; do
+ ISLINK=`$LS -l $sym_link_dir/$sym_link_file | $GREP '\->' | $SED -e 's/.*-> \(.*\)/\1/'`
+- if test "x$ISLINK" == x; then
++ if test "x$ISLINK" = x; then
+ # This is not a symbolic link! We are done!
+ break
+ fi
+@@ -29731,7 +29731,7 @@ fi
+ #
+ case $COMPILER_NAME in
+ gcc )
+- CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -W -Wall -Wno-unused -Wno-parentheses \
++ CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -W -Wall -Wno-unused -Wno-unused-parameter -Wno-parentheses \
+ -pipe \
+ -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
+ case $OPENJDK_TARGET_CPU_ARCH in
+@@ -30345,6 +30345,8 @@ $as_echo "alsa pulse x11" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking what is not needed on BSD?" >&5
+ $as_echo_n "checking what is not needed on BSD?... " >&6; }
+ PULSE_NOT_NEEDED=yes
++# disable sound for now. XXX revisit this.
++ ALSA_NOT_NEEDED=yes
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: pulse" >&5
+ $as_echo "pulse" >&6; }
+ fi
+@@ -31555,7 +31557,11 @@ $as_echo "$as_me: WARNING: freetype not
+
+ # Allow --with-freetype-lib and --with-freetype-include to override
+ if test "x$with_freetype_include" != x; then
+- POTENTIAL_FREETYPE_INCLUDE_PATH="$with_freetype_include"
++ POTENTIAL_FREETYPE_INCLUDE_PATH="$with_freetype_include"
++ # deal w/ freetype2 in new location
++ if test -f "$with_freetype_include"/freetype2/ft2build.h; then
++ POTENTIAL_FREETYPE_INCLUDE_PATH="$with_freetype_include"/freetype2
++ fi
+ fi
+ if test "x$with_freetype_lib" != x; then
+ POTENTIAL_FREETYPE_LIB_PATH="$with_freetype_lib"
+@@ -34506,7 +34512,7 @@ $as_echo "$as_me: The path of FREETYPE_L
+ if test "x$OPENJDK_TARGET_OS" = xwindows; then
+ FREETYPE_LIBS="$FREETYPE_LIB_PATH/freetype.lib"
+ else
+- FREETYPE_LIBS="-L$FREETYPE_LIB_PATH -lfreetype"
++ FREETYPE_LIBS="-Xlinker -R$FREETYPE_LIB_PATH -L$FREETYPE_LIB_PATH -lfreetype"
+ fi
+ fi
+
diff --git a/lang/openjdk8/patches/patch-common_autoconf_spec.gmk.in b/lang/openjdk8/patches/patch-common_autoconf_spec.gmk.in
new file mode 100644
index 00000000000..a72a67ae273
--- /dev/null
+++ b/lang/openjdk8/patches/patch-common_autoconf_spec.gmk.in
@@ -0,0 +1,55 @@
+$NetBSD: patch-common_autoconf_spec.gmk.in,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+--- common/autoconf/spec.gmk.in.orig 2015-02-02 15:31:06.000000000 +0000
++++ common/autoconf/spec.gmk.in
+@@ -249,7 +249,7 @@ BUILD_HOTSPOT=@BUILD_HOTSPOT@
+
+ # The boot jdk to use
+ BOOT_JDK:=@BOOT_JDK@
+-BOOT_JDK_JVMARGS:=@BOOT_JDK_JVMARGS@
++BOOT_JDK_JVMARGS:=@BOOT_JDK_JVMARGS@ $(PKGSRC_BOOT_JDK_JVMARGS)
+ BOOT_RTJAR:=@BOOT_RTJAR@
+ BOOT_TOOLSJAR=$(BOOT_JDK)/lib/tools.jar
+
+@@ -349,7 +349,8 @@ LD:=@FIXPATH@ @LD@
+ USING_BROKEN_SUSE_LD:=@USING_BROKEN_SUSE_LD@
+
+ # LDFLAGS used to link the jdk native libraries (C-code)
+-LDFLAGS_JDKLIB:=@LDFLAGS_JDKLIB@
++# Do not use -Wl,-R here. The build system chokes on "," in LDFLAGS. -Xlinker works.
++LDFLAGS_JDKLIB:=-Xlinker -R@prefix@/java/openjdk8/jre/lib@OPENJDK_TARGET_CPU_LIBDIR@ -Xlinker -R@prefix@/java/openjdk8/jre/lib@OPENJDK_TARGET_CPU_LIBDIR@/server @LDFLAGS_JDKLIB@
+ LDFLAGS_JDKLIB_SUFFIX:=@LDFLAGS_JDKLIB_SUFFIX@
+
+ # On some platforms the linker cannot be used to create executables, thus
+@@ -436,24 +437,24 @@ OBJ_SUFFIX:=@OBJ_SUFFIX@
+ POST_STRIP_CMD:=@POST_STRIP_CMD@
+ POST_MCS_CMD:=@POST_MCS_CMD@
+
+-JAVA_FLAGS:=@BOOT_JDK_JVMARGS@
++JAVA_FLAGS:=@BOOT_JDK_JVMARGS@ $(PKGSRC_BOOT_JDK_JVMARGS)
+
+ JAVA=@FIXPATH@ $(BOOT_JDK)/bin/java $(JAVA_FLAGS)
+
+ JAVAC=@FIXPATH@ $(BOOT_JDK)/bin/javac
+ # Hotspot sets this variable before reading the SPEC when compiling sa-jdi.jar. Avoid
+ # overriding that value by using ?=.
+-JAVAC_FLAGS?=@JAVAC_FLAGS@
++JAVAC_FLAGS?=@JAVAC_FLAGS@ -encoding UTF-8
+
+-JAVAH=@FIXPATH@ $(BOOT_JDK)/bin/javah
++JAVAH=@FIXPATH@ $(BOOT_JDK)/bin/javah $(PKGSRC_BOOT_JDK_TOOLARGS)
+
+-JAR=@FIXPATH@ $(BOOT_JDK)/bin/jar
++JAR=@FIXPATH@ $(BOOT_JDK)/bin/jar $(PKGSRC_BOOT_JDK_TOOLARGS)
+
+-RMIC=@FIXPATH@ $(BOOT_JDK)/bin/rmic
++RMIC=@FIXPATH@ $(BOOT_JDK)/bin/rmic $(PKGSRC_BOOT_JDK_TOOLARGS)
+
+-NATIVE2ASCII=@FIXPATH@ $(BOOT_JDK)/bin/native2ascii
++NATIVE2ASCII=@FIXPATH@ $(BOOT_JDK)/bin/native2ascii $(PKGSRC_BOOT_JDK_TOOLARGS)
+
+-JARSIGNER=@FIXPATH@ $(BOOT_JDK)/bin/jarsigner
++JARSIGNER=@FIXPATH@ $(BOOT_JDK)/bin/jarsigner $(PKGSRC_BOOT_JDK_TOOLARGS)
+
+ # You run the new javac using the boot jdk with $(BOOT_JDK)/bin/java $(NEW_JAVAC) ...
+ BOOTSTRAP_JAVAC_JAR:=$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar
diff --git a/lang/openjdk8/patches/patch-hotspot_agent_src_share_classes_sun_jvm_hotspot_utilities_PlatformInfo.java b/lang/openjdk8/patches/patch-hotspot_agent_src_share_classes_sun_jvm_hotspot_utilities_PlatformInfo.java
new file mode 100644
index 00000000000..1785dd371d2
--- /dev/null
+++ b/lang/openjdk8/patches/patch-hotspot_agent_src_share_classes_sun_jvm_hotspot_utilities_PlatformInfo.java
@@ -0,0 +1,13 @@
+$NetBSD: patch-hotspot_agent_src_share_classes_sun_jvm_hotspot_utilities_PlatformInfo.java,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+--- hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/PlatformInfo.java.orig 2015-02-02 15:32:37.000000000 +0000
++++ hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/PlatformInfo.java
+@@ -45,6 +45,8 @@ public class PlatformInfo {
+ return "bsd";
+ } else if (os.contains("Darwin") || os.contains("OS X")) {
+ return "darwin";
++ } else if (os.equals("DragonFlyBSD")) {
++ return "bsd";
+ } else if (os.startsWith("Windows")) {
+ return "win32";
+ } else {
diff --git a/lang/openjdk8/patches/patch-hotspot_make_bsd_makefiles_defs.make b/lang/openjdk8/patches/patch-hotspot_make_bsd_makefiles_defs.make
new file mode 100644
index 00000000000..af282fd4832
--- /dev/null
+++ b/lang/openjdk8/patches/patch-hotspot_make_bsd_makefiles_defs.make
@@ -0,0 +1,17 @@
+$NetBSD: patch-hotspot_make_bsd_makefiles_defs.make,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+64-bit support.
+
+--- hotspot/make/bsd/makefiles/defs.make.orig 2015-02-02 15:32:37.000000000 +0000
++++ hotspot/make/bsd/makefiles/defs.make
+@@ -30,6 +30,10 @@ SLASH_JAVA ?= /java
+
+ # Need PLATFORM (os-arch combo names) for jdk and hotspot, plus libarch name
+ ARCH:=$(shell uname -m)
++ifeq ($(ARCH),x86_64)
++ ARCH=amd64
++endif
++
+ PATH_SEP = :
+ ifeq ($(LP64), 1)
+ ARCH_DATA_MODEL ?= 64
diff --git a/lang/openjdk8/patches/patch-hotspot_make_bsd_makefiles_rules.make b/lang/openjdk8/patches/patch-hotspot_make_bsd_makefiles_rules.make
new file mode 100644
index 00000000000..d058eefa1ff
--- /dev/null
+++ b/lang/openjdk8/patches/patch-hotspot_make_bsd_makefiles_rules.make
@@ -0,0 +1,50 @@
+$NetBSD: patch-hotspot_make_bsd_makefiles_rules.make,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+--- hotspot/make/bsd/makefiles/rules.make.orig 2015-02-02 15:32:37.000000000 +0000
++++ hotspot/make/bsd/makefiles/rules.make
+@@ -68,24 +68,24 @@ REMOVE_TARGET = rm -f $@
+
+ ifdef ALT_BOOTDIR
+
+-RUN.JAVA = $(ALT_BOOTDIR)/bin/java
+-RUN.JAVAP = $(ALT_BOOTDIR)/bin/javap
+-RUN.JAVAH = $(ALT_BOOTDIR)/bin/javah
+-RUN.JAR = $(ALT_BOOTDIR)/bin/jar
+-COMPILE.JAVAC = $(ALT_BOOTDIR)/bin/javac
+-COMPILE.RMIC = $(ALT_BOOTDIR)/bin/rmic
++RUN.JAVA = $(ALT_BOOTDIR)/bin/java $(PKGSRC_BOOT_JDK_JVMARGS)
++RUN.JAVAP = $(ALT_BOOTDIR)/bin/javap $(PKGSRC_BOOT_JDK_TOOLARGS)
++RUN.JAVAH = $(ALT_BOOTDIR)/bin/javah $(PKGSRC_BOOT_JDK_TOOLARGS)
++RUN.JAR = $(ALT_BOOTDIR)/bin/jar $(PKGSRC_BOOT_JDK_TOOLARGS)
++COMPILE.JAVAC = $(ALT_BOOTDIR)/bin/javac $(PKGSRC_BOOT_JDK_TOOLARGS)
++COMPILE.RMIC = $(ALT_BOOTDIR)/bin/rmic $(PKGSRC_BOOT_JDK_TOOLARGS)
+ BOOT_JAVA_HOME = $(ALT_BOOTDIR)
+
+ else
+
+ ifdef BOOTDIR
+
+-RUN.JAVA = $(BOOTDIR)/bin/java
+-RUN.JAVAP = $(BOOTDIR)/bin/javap
+-RUN.JAVAH = $(BOOTDIR)/bin/javah
+-RUN.JAR = $(BOOTDIR)/bin/jar
+-COMPILE.JAVAC = $(BOOTDIR)/bin/javac
+-COMPILE.RMIC = $(BOOTDIR)/bin/rmic
++RUN.JAVA = $(BOOTDIR)/bin/java $(PKGSRC_BOOT_JDK_JVMARGS)
++RUN.JAVAP = $(BOOTDIR)/bin/javap $(PKGSRC_BOOT_JDK_TOOLARGS)
++RUN.JAVAH = $(BOOTDIR)/bin/javah $(PKGSRC_BOOT_JDK_TOOLARGS)
++RUN.JAR = $(BOOTDIR)/bin/jar $(PKGSRC_BOOT_JDK_TOOLARGS)
++COMPILE.JAVAC = $(BOOTDIR)/bin/javac $(PKGSRC_BOOT_JDK_TOOLARGS)
++COMPILE.RMIC = $(BOOTDIR)/bin/rmic $(PKGSRC_BOOT_JDK_TOOLARGS)
+ BOOT_JAVA_HOME = $(BOOTDIR)
+
+ else
+@@ -129,7 +129,7 @@ RUN.JAR$(MAKE_VERBOSE) += >/dev/null
+ BOOT_SOURCE_LANGUAGE_VERSION = 6
+ BOOT_TARGET_CLASS_VERSION = 6
+ JAVAC_FLAGS = -g -encoding ascii
+-BOOTSTRAP_JAVAC_FLAGS = $(JAVAC_FLAGS) -source $(BOOT_SOURCE_LANGUAGE_VERSION) -target $(BOOT_TARGET_CLASS_VERSION)
++BOOTSTRAP_JAVAC_FLAGS = $(JAVAC_FLAGS) $(PKGSRC_BOOT_JDK_TOOLARGS) -source $(BOOT_SOURCE_LANGUAGE_VERSION) -target $(BOOT_TARGET_CLASS_VERSION)
+
+ # With parallel makes, print a message at the end of compilation.
+ ifeq ($(findstring j,$(MFLAGS)),j)
diff --git a/lang/openjdk8/patches/patch-hotspot_src_os_bsd_vm_osThread__bsd.cpp b/lang/openjdk8/patches/patch-hotspot_src_os_bsd_vm_osThread__bsd.cpp
new file mode 100644
index 00000000000..bad53b9bcdd
--- /dev/null
+++ b/lang/openjdk8/patches/patch-hotspot_src_os_bsd_vm_osThread__bsd.cpp
@@ -0,0 +1,13 @@
+$NetBSD: patch-hotspot_src_os_bsd_vm_osThread__bsd.cpp,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+--- hotspot/src/os/bsd/vm/osThread_bsd.cpp.orig 2015-02-02 15:32:37.000000000 +0000
++++ hotspot/src/os/bsd/vm/osThread_bsd.cpp
+@@ -30,7 +30,7 @@
+
+ void OSThread::pd_initialize() {
+ assert(this != NULL, "check");
+-#if defined(__APPLE__) || defined(__FreeBSD__)
++#if defined(_ALLBSD_SOURCE)
+ _thread_id = 0;
+ #else
+ _thread_id = NULL;
diff --git a/lang/openjdk8/patches/patch-hotspot_src_os_posix_vm_os__posix.cpp b/lang/openjdk8/patches/patch-hotspot_src_os_posix_vm_os__posix.cpp
new file mode 100644
index 00000000000..a0dccfdee44
--- /dev/null
+++ b/lang/openjdk8/patches/patch-hotspot_src_os_posix_vm_os__posix.cpp
@@ -0,0 +1,36 @@
+$NetBSD: patch-hotspot_src_os_posix_vm_os__posix.cpp,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+rlim_t fixes.
+
+--- hotspot/src/os/posix/vm/os_posix.cpp.orig 2015-02-02 15:32:37.000000000 +0000
++++ hotspot/src/os/posix/vm/os_posix.cpp
+@@ -160,12 +160,12 @@ void os::Posix::print_rlimit_info(output
+
+ st->print(" STACK ");
+ getrlimit(RLIMIT_STACK, &rlim);
+- if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity");
++ if (rlim.rlim_cur == (rlim_t)RLIM_INFINITY) st->print("infinity");
+ else st->print("%uk", rlim.rlim_cur >> 10);
+
+ st->print(", CORE ");
+ getrlimit(RLIMIT_CORE, &rlim);
+- if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity");
++ if (rlim.rlim_cur == (rlim_t)RLIM_INFINITY) st->print("infinity");
+ else st->print("%uk", rlim.rlim_cur >> 10);
+
+ // Isn't there on solaris
+@@ -178,12 +178,12 @@ void os::Posix::print_rlimit_info(output
+
+ st->print(", NOFILE ");
+ getrlimit(RLIMIT_NOFILE, &rlim);
+- if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity");
++ if (rlim.rlim_cur == (rlim_t)RLIM_INFINITY) st->print("infinity");
+ else st->print("%d", rlim.rlim_cur);
+
+ st->print(", AS ");
+ getrlimit(RLIMIT_AS, &rlim);
+- if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity");
++ if (rlim.rlim_cur == (rlim_t)RLIM_INFINITY) st->print("infinity");
+ else st->print("%uk", rlim.rlim_cur >> 10);
+ st->cr();
+ }
diff --git a/lang/openjdk8/patches/patch-hotspot_src_share_vm_opto_node.cpp b/lang/openjdk8/patches/patch-hotspot_src_share_vm_opto_node.cpp
new file mode 100644
index 00000000000..741cfc3d62e
--- /dev/null
+++ b/lang/openjdk8/patches/patch-hotspot_src_share_vm_opto_node.cpp
@@ -0,0 +1,15 @@
+$NetBSD: patch-hotspot_src_share_vm_opto_node.cpp,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+--- hotspot/src/share/vm/opto/node.cpp.orig 2015-02-02 15:32:37.000000000 +0000
++++ hotspot/src/share/vm/opto/node.cpp
+@@ -291,6 +291,10 @@ void DUIterator_Last::verify_step(uint n
+ #pragma GCC diagnostic ignored "-Wuninitialized"
+ #endif
+
++#ifdef __GNUC__
++#pragma GCC diagnostic ignored "-Wuninitialized"
++#endif
++
+ // Out-of-line code from node constructors.
+ // Executed only when extra debug info. is being passed around.
+ static void init_node_notes(Compile* C, int idx, Node_Notes* nn) {
diff --git a/lang/openjdk8/patches/patch-jdk_make_GenerateSources.gmk b/lang/openjdk8/patches/patch-jdk_make_GenerateSources.gmk
new file mode 100644
index 00000000000..ae6a174dc19
--- /dev/null
+++ b/lang/openjdk8/patches/patch-jdk_make_GenerateSources.gmk
@@ -0,0 +1,15 @@
+$NetBSD: patch-jdk_make_GenerateSources.gmk,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+--- jdk/make/GenerateSources.gmk.orig 2015-02-02 15:37:11.000000000 +0000
++++ jdk/make/GenerateSources.gmk
+@@ -74,8 +74,10 @@ ifneq ($(OPENJDK_TARGET_OS), windows)
+ endif
+
+ ifneq ($(OPENJDK_TARGET_OS), macosx)
++ ifneq ($(BUILD_HEADLESS_ONLY), true)
+ include gensrc/GensrcX11Wrappers.gmk
+ GENSRC += $(GENSRC_X11WRAPPERS)
++ endif
+ endif
+ endif
+
diff --git a/lang/openjdk8/patches/patch-jdk_make_Images.gmk b/lang/openjdk8/patches/patch-jdk_make_Images.gmk
new file mode 100644
index 00000000000..50308c23306
--- /dev/null
+++ b/lang/openjdk8/patches/patch-jdk_make_Images.gmk
@@ -0,0 +1,25 @@
+$NetBSD: patch-jdk_make_Images.gmk,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+Building ja_JP.UTF-8 manpages crashes the bootstrap JVM.
+
+--- jdk/make/Images.gmk.orig 2015-02-02 15:37:11.000000000 +0000
++++ jdk/make/Images.gmk
+@@ -411,12 +411,12 @@ ifneq ($(OPENJDK_TARGET_OS), windows)
+ $(install-file)
+
+ define install-ja-manpage
+- $(MKDIR) -p $(@D)
+- $(CAT) $< \
+- | $(NATIVE2ASCII) -encoding eucJP \
+- | $(SED) 's/@@VERSION@@/$(THIS_JDK_VERSION)/g' \
+- | $(NATIVE2ASCII) -reverse -encoding $1 \
+- > $@
++# $(MKDIR) -p $(@D)
++# $(CAT) $< \
++# | $(NATIVE2ASCII) -encoding eucJP \
++# | $(SED) 's/@@VERSION@@/$(THIS_JDK_VERSION)/g' \
++# | $(NATIVE2ASCII) -reverse -encoding $1 \
++# > $@
+ endef
+
+ $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/%
diff --git a/lang/openjdk8/patches/patch-jdk_make_lib_SoundLibraries.gmk b/lang/openjdk8/patches/patch-jdk_make_lib_SoundLibraries.gmk
new file mode 100644
index 00000000000..132c800c4e9
--- /dev/null
+++ b/lang/openjdk8/patches/patch-jdk_make_lib_SoundLibraries.gmk
@@ -0,0 +1,13 @@
+$NetBSD: patch-jdk_make_lib_SoundLibraries.gmk,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+--- jdk/make/lib/SoundLibraries.gmk.orig 2015-02-02 15:37:11.000000000 +0000
++++ jdk/make/lib/SoundLibraries.gmk
+@@ -76,7 +76,7 @@ ifeq ($(OPENJDK_TARGET_OS), aix)
+ endif # OPENJDK_TARGET_OS aix
+
+ ifeq ($(OPENJDK_TARGET_OS), bsd)
+- EXTRA_SOUND_JNI_LIBS += jsoundalsa
++# EXTRA_SOUND_JNI_LIBS += jsoundalsa
+ LIBJSOUND_CFLAGS += -DX_PLATFORM=X_BSD
+ endif # OPENJDK_TARGET_OS bsd
+
diff --git a/lang/openjdk8/patches/patch-jdk_src_share_native_sun_awt_image_jpeg_imageioJPEG.c b/lang/openjdk8/patches/patch-jdk_src_share_native_sun_awt_image_jpeg_imageioJPEG.c
new file mode 100644
index 00000000000..bb77b5e4f50
--- /dev/null
+++ b/lang/openjdk8/patches/patch-jdk_src_share_native_sun_awt_image_jpeg_imageioJPEG.c
@@ -0,0 +1,15 @@
+$NetBSD: patch-jdk_src_share_native_sun_awt_image_jpeg_imageioJPEG.c,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+patch-jdk_src_share_native_sun_awt_image_jpeg_imageioJPEG.c
+
+--- jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c.orig 2015-02-02 15:37:11.000000000 +0000
++++ jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c
+@@ -50,7 +50,7 @@
+ #include "com_sun_imageio_plugins_jpeg_JPEGImageWriter.h"
+
+ /* headers from the JPEG library */
+-#include <jpeglib.h>
++#include "jpeglib.h"
+ #include "jerror.h"
+
+ #undef MAX
diff --git a/lang/openjdk8/patches/patch-jdk_src_share_native_sun_awt_image_jpeg_jpegdecoder.c b/lang/openjdk8/patches/patch-jdk_src_share_native_sun_awt_image_jpeg_jpegdecoder.c
new file mode 100644
index 00000000000..d3347769d04
--- /dev/null
+++ b/lang/openjdk8/patches/patch-jdk_src_share_native_sun_awt_image_jpeg_jpegdecoder.c
@@ -0,0 +1,15 @@
+$NetBSD: patch-jdk_src_share_native_sun_awt_image_jpeg_jpegdecoder.c,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+Ensure we use the bundled jpeg.
+
+--- jdk/src/share/native/sun/awt/image/jpeg/jpegdecoder.c.orig 2015-02-02 15:37:11.000000000 +0000
++++ jdk/src/share/native/sun/awt/image/jpeg/jpegdecoder.c
+@@ -44,7 +44,7 @@
+ /* undo "system_boolean" hack and undef FAR since we don't use it anyway */
+ #undef boolean
+ #undef FAR
+-#include <jpeglib.h>
++#include "jpeglib.h"
+ #include "jerror.h"
+
+ /* The method IDs we cache. Note that the last two belongs to the
diff --git a/lang/openjdk8/patches/patch-jdk_src_solaris_bin_ergo.c b/lang/openjdk8/patches/patch-jdk_src_solaris_bin_ergo.c
new file mode 100644
index 00000000000..4c54663b5aa
--- /dev/null
+++ b/lang/openjdk8/patches/patch-jdk_src_solaris_bin_ergo.c
@@ -0,0 +1,20 @@
+$NetBSD: patch-jdk_src_solaris_bin_ergo.c,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+No _SC_PHYS_PAGES on NetBSD < 6.
+we could use the hw.physmem64 sysctl instead of returning 0,
+although I don't think this code is actually used.
+
+--- jdk/src/solaris/bin/ergo.c.orig 2015-02-02 15:37:12.000000000 +0000
++++ jdk/src/solaris/bin/ergo.c
+@@ -100,7 +100,11 @@ ServerClassMachineImpl(void) {
+ /* Compute physical memory by asking the OS */
+ uint64_t
+ physical_memory(void) {
++#ifdef _SC_PHYS_PAGES
+ const uint64_t pages = (uint64_t) sysconf(_SC_PHYS_PAGES);
++#else
++ const uint64_t pages = 0;
++#endif
+ const uint64_t page_size = (uint64_t) sysconf(_SC_PAGESIZE);
+ const uint64_t result = pages * page_size;
+ # define UINT64_FORMAT "%" PRIu64
diff --git a/lang/openjdk8/patches/patch-jdk_src_solaris_classes_java_lang_UNIXProcess.java.bsd b/lang/openjdk8/patches/patch-jdk_src_solaris_classes_java_lang_UNIXProcess.java.bsd
new file mode 100644
index 00000000000..3fc2460550d
--- /dev/null
+++ b/lang/openjdk8/patches/patch-jdk_src_solaris_classes_java_lang_UNIXProcess.java.bsd
@@ -0,0 +1,46 @@
+$NetBSD: patch-jdk_src_solaris_classes_java_lang_UNIXProcess.java.bsd,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+* Under NetBSD 5, use fork instead of posix_spawn. NetBSD 5 has no posix_spawn.
+
+--- jdk/src/solaris/classes/java/lang/UNIXProcess.java.bsd.orig 2015-02-02 15:37:12.000000000 +0000
++++ jdk/src/solaris/classes/java/lang/UNIXProcess.java.bsd
+@@ -95,16 +95,31 @@ final class UNIXProcess extends Process
+ public LaunchMechanism run() {
+ String javahome = System.getProperty("java.home");
+ String osArch = System.getProperty("os.arch");
++ String osname = System.getProperty("os.name");
+
+ helperpath = toCString(javahome + "/lib/" + osArch + "/jspawnhelper");
+- String s = System.getProperty(
+- "jdk.lang.Process.launchMechanism", "posix_spawn");
+-
+- try {
+- return LaunchMechanism.valueOf(s.toUpperCase());
+- } catch (IllegalArgumentException e) {
+- throw new Error(s + " is not a supported " +
+- "process launch mechanism on this platform.");
++/* NetBSD 5 does not have posix_spawn. Use fork instead. */
++ String osversion = System.getProperty("os.version");
++ if (osname.startsWith("NetBSD") && osversion.startsWith("5")) {
++ String s = System.getProperty(
++ "jdk.lang.Process.launchMechanism", "fork");
++
++ try {
++ return LaunchMechanism.valueOf(s.toUpperCase());
++ } catch (IllegalArgumentException e) {
++ throw new Error(s + " is not a supported " +
++ "process launch mechanism on this platform.");
++ }
++ } else {
++ String s = System.getProperty(
++ "jdk.lang.Process.launchMechanism", "posix_spawn");
++
++ try {
++ return LaunchMechanism.valueOf(s.toUpperCase());
++ } catch (IllegalArgumentException e) {
++ throw new Error(s + " is not a supported " +
++ "process launch mechanism on this platform.");
++ }
+ }
+ }
+ });
diff --git a/lang/openjdk8/patches/patch-jdk_src_solaris_classes_sun_net_PortConfig.java b/lang/openjdk8/patches/patch-jdk_src_solaris_classes_sun_net_PortConfig.java
new file mode 100644
index 00000000000..b4a7f0a6885
--- /dev/null
+++ b/lang/openjdk8/patches/patch-jdk_src_solaris_classes_sun_net_PortConfig.java
@@ -0,0 +1,13 @@
+$NetBSD: patch-jdk_src_solaris_classes_sun_net_PortConfig.java,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+--- jdk/src/solaris/classes/sun/net/PortConfig.java.orig 2015-02-02 15:37:12.000000000 +0000
++++ jdk/src/solaris/classes/sun/net/PortConfig.java
+@@ -52,7 +52,7 @@ public final class PortConfig {
+ } else if (os.startsWith("SunOS")) {
+ defaultLower = 32768;
+ defaultUpper = 65535;
+- } else if (os.endsWith("BSD") || os.contains("OS X")) {
++ } else if (os.endsWith("BSD") || os.contains("OS X") || os.contains("DragonFly")) {
+ defaultLower = 49152;
+ defaultUpper = 65535;
+ } else if (os.startsWith("AIX")) {
diff --git a/lang/openjdk8/patches/patch-jdk_src_solaris_classes_sun_nio_ch_DefaultAsynchronousChannelProvider.java b/lang/openjdk8/patches/patch-jdk_src_solaris_classes_sun_nio_ch_DefaultAsynchronousChannelProvider.java
new file mode 100644
index 00000000000..61a97caadc7
--- /dev/null
+++ b/lang/openjdk8/patches/patch-jdk_src_solaris_classes_sun_nio_ch_DefaultAsynchronousChannelProvider.java
@@ -0,0 +1,16 @@
+$NetBSD: patch-jdk_src_solaris_classes_sun_nio_ch_DefaultAsynchronousChannelProvider.java,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+* Fix apache-tomcat7's error, "java.lang.InternalError: platform not recognized"
+ patch is from http://www.freebsd.org/cgi/query-pr.cgi?pr=183389
+
+--- jdk/src/solaris/classes/sun/nio/ch/DefaultAsynchronousChannelProvider.java.orig 2015-02-02 15:37:12.000000000 +0000
++++ jdk/src/solaris/classes/sun/nio/ch/DefaultAsynchronousChannelProvider.java
+@@ -66,7 +66,7 @@ public class DefaultAsynchronousChannelP
+ return createProvider("sun.nio.ch.SolarisAsynchronousChannelProvider");
+ if (osname.equals("Linux"))
+ return createProvider("sun.nio.ch.LinuxAsynchronousChannelProvider");
+- if (osname.endsWith("BSD") || osname.contains("OS X"))
++ if (osname.endsWith("BSD") || osname.contains("OS X") || osname.contains("DragonFly"))
+ return createProvider("sun.nio.ch.BsdAsynchronousChannelProvider");
+ if (osname.equals("AIX"))
+ return createProvider("sun.nio.ch.AixAsynchronousChannelProvider");
diff --git a/lang/openjdk8/patches/patch-jdk_src_solaris_native_com_sun_media_sound_PLATFORM__API__BsdOS__ALSA__PCM.c b/lang/openjdk8/patches/patch-jdk_src_solaris_native_com_sun_media_sound_PLATFORM__API__BsdOS__ALSA__PCM.c
new file mode 100644
index 00000000000..3aff3e47f97
--- /dev/null
+++ b/lang/openjdk8/patches/patch-jdk_src_solaris_native_com_sun_media_sound_PLATFORM__API__BsdOS__ALSA__PCM.c
@@ -0,0 +1,17 @@
+$NetBSD: patch-jdk_src_solaris_native_com_sun_media_sound_PLATFORM__API__BsdOS__ALSA__PCM.c,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+On some platforms ESTRPIPE is not defined, make it equal to EPIPE.
+
+--- jdk/src/solaris/native/com/sun/media/sound/PLATFORM_API_BsdOS_ALSA_PCM.c.orig 2015-02-02 15:37:12.000000000 +0000
++++ jdk/src/solaris/native/com/sun/media/sound/PLATFORM_API_BsdOS_ALSA_PCM.c
+@@ -30,6 +30,10 @@
+ #include "PLATFORM_API_BsdOS_ALSA_CommonUtils.h"
+ #include "DirectAudio.h"
+
++#ifndef ESTRPIPE
++#define ESTRPIPE EPIPE
++#endif
++
+ #if USE_DAUDIO == TRUE
+
+ // GetPosition method 1: based on how many bytes are passed to the kernel driver
diff --git a/lang/openjdk8/patches/patch-jdk_src_solaris_native_java_lang_UNIXProcess__md.c b/lang/openjdk8/patches/patch-jdk_src_solaris_native_java_lang_UNIXProcess__md.c
new file mode 100644
index 00000000000..dae37592df8
--- /dev/null
+++ b/lang/openjdk8/patches/patch-jdk_src_solaris_native_java_lang_UNIXProcess__md.c
@@ -0,0 +1,50 @@
+$NetBSD: patch-jdk_src_solaris_native_java_lang_UNIXProcess__md.c,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+* NetBSD 5 has no posix_spawn.
+
+--- jdk/src/solaris/native/java/lang/UNIXProcess_md.c.orig 2015-02-02 15:37:12.000000000 +0000
++++ jdk/src/solaris/native/java/lang/UNIXProcess_md.c
+@@ -44,9 +44,15 @@
+ #include <signal.h>
+ #include <string.h>
+
++#if defined(__NetBSD__)
++#include <sys/param.h>
++#endif
++
+ #if defined(__solaris__) || defined(_ALLBSD_SOURCE) || defined(_AIX)
++#if !defined(__NetBSD__) || (__NetBSD_Version__ >= 600000000)
+ #include <spawn.h>
+ #endif
++#endif
+
+ #include "childproc.h"
+
+@@ -456,6 +462,7 @@ forkChild(ChildStuff *c) {
+ }
+
+ #if defined(__solaris__) || defined(_ALLBSD_SOURCE) || defined(_AIX)
++#if !defined(__NetBSD__) || (__NetBSD_Version__ >= 600000000)
+ static pid_t
+ spawnChild(JNIEnv *env, jobject process, ChildStuff *c, const char *helperpath) {
+ pid_t resultPid;
+@@ -539,6 +546,7 @@ spawnChild(JNIEnv *env, jobject process,
+ return resultPid;
+ }
+ #endif
++#endif
+
+ /*
+ * Start a child process running function childProcess.
+@@ -552,9 +560,11 @@ startChild(JNIEnv *env, jobject process,
+ case MODE_FORK:
+ return forkChild(c);
+ #if defined(__solaris__) || defined(_ALLBSD_SOURCE) || defined(_AIX)
++#if !defined(__NetBSD__) || (__NetBSD_Version__ >= 600000000)
+ case MODE_POSIX_SPAWN:
+ return spawnChild(env, process, c, helperpath);
+ #endif
++#endif
+ default:
+ return -1;
+ }
diff --git a/lang/openjdk8/patches/patch-jdk_src_solaris_native_java_lang_java__props__md.c b/lang/openjdk8/patches/patch-jdk_src_solaris_native_java_lang_java__props__md.c
new file mode 100644
index 00000000000..cd266f85b04
--- /dev/null
+++ b/lang/openjdk8/patches/patch-jdk_src_solaris_native_java_lang_java__props__md.c
@@ -0,0 +1,16 @@
+$NetBSD: patch-jdk_src_solaris_native_java_lang_java__props__md.c,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+--- jdk/src/solaris/native/java/lang/java_props_md.c.orig 2015-02-02 15:37:12.000000000 +0000
++++ jdk/src/solaris/native/java/lang/java_props_md.c
+@@ -499,6 +499,11 @@ GetJavaProperties(JNIEnv *env)
+ {
+ #ifdef MACOSX
+ setOSNameAndVersion(&sprops);
++#elif defined(__DragonFly__)
++ struct utsname name;
++ uname(&name);
++ sprops.os_name = "DragonFlyBSD";
++ sprops.os_version = strdup(name.release);
+ #else
+ struct utsname name;
+ uname(&name);
diff --git a/lang/openjdk8/patches/patch-jdk_src_solaris_native_java_net_NetworkInterface.c b/lang/openjdk8/patches/patch-jdk_src_solaris_native_java_net_NetworkInterface.c
new file mode 100644
index 00000000000..fd9e41be5e8
--- /dev/null
+++ b/lang/openjdk8/patches/patch-jdk_src_solaris_native_java_net_NetworkInterface.c
@@ -0,0 +1,61 @@
+$NetBSD: patch-jdk_src_solaris_native_java_net_NetworkInterface.c,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+Zones support.
+
+--- jdk/src/solaris/native/java/net/NetworkInterface.c.orig 2015-02-02 15:37:12.000000000 +0000
++++ jdk/src/solaris/native/java/net/NetworkInterface.c
+@@ -43,6 +43,7 @@
+ #include <fcntl.h>
+ #include <stropts.h>
+ #include <sys/sockio.h>
++#include <zone.h>
+ #endif
+
+ #ifdef __linux__
+@@ -67,13 +68,11 @@
+ #include <sys/param.h>
+ #include <sys/ioctl.h>
+ #include <sys/sockio.h>
+-#if defined(__APPLE__) || defined(__FreeBSD__)
++#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__DragonFly__)
+ #include <net/ethernet.h>
+ #include <net/if_var.h>
+-#elif defined(__OpenBSD__)
++#elif defined(__OpenBSD__) || defined(__NetBSD__)
+ #include <netinet/if_ether.h>
+-#elif defined(__NetBSD__)
+-#include <net/if_ether.h>
+ #endif
+ #include <net/if_dl.h>
+ #include <netinet/in_var.h>
+@@ -1748,7 +1747,8 @@ static short getSubnet(JNIEnv *env, int
+
+
+
+-#define DEV_PREFIX "/dev/"
++#define NET_DEV_PREFIX "/dev/"
++#define ZONE_NET_DEV_PREFIX "/dev/net/"
+
+ /**
+ * Solaris specific DLPI code to get hardware address from a device.
+@@ -1765,11 +1765,18 @@ static int getMacFromDevice(JNIEnv *env,
+ int flags = 0;
+
+ /**
+- * Device is in /dev
++ * Device is in /dev in global zone / standalone
+ * e.g.: /dev/bge0
++ * Device is in /dev/net in a zone
++ * e.g.: /dev/net/net0
+ */
+- strcpy(style1dev, DEV_PREFIX);
++ if (getzoneid()==(zoneid_t)GLOBAL_ZONEID) {
++ strcpy(style1dev, NET_DEV_PREFIX);
++ } else {
++ strcpy(style1dev, ZONE_NET_DEV_PREFIX);
++ }
+ strcat(style1dev, ifname);
++
+ if ((fd = open(style1dev, O_RDWR)) < 0) {
+ /*
+ * Can't open it. We probably are missing the privilege.
diff --git a/lang/openjdk8/patches/patch-jdk_src_solaris_native_java_net_net__util__md.c b/lang/openjdk8/patches/patch-jdk_src_solaris_native_java_net_net__util__md.c
new file mode 100644
index 00000000000..4f4bf030ca0
--- /dev/null
+++ b/lang/openjdk8/patches/patch-jdk_src_solaris_native_java_net_net__util__md.c
@@ -0,0 +1,16 @@
+$NetBSD: patch-jdk_src_solaris_native_java_net_net__util__md.c,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+--- jdk/src/solaris/native/java/net/net_util_md.c.orig 2015-02-02 15:37:12.000000000 +0000
++++ jdk/src/solaris/native/java/net/net_util_md.c
+@@ -92,9 +92,9 @@ void setDefaultScopeID(JNIEnv *env, stru
+ static jfieldID ni_defaultIndexID;
+ if (ni_class == NULL) {
+ jclass c = (*env)->FindClass(env, "java/net/NetworkInterface");
+- CHECK_NULL(c);
++ CHECK_NULL_RETURN(c, 0);
+ c = (*env)->NewGlobalRef(env, c);
+- CHECK_NULL(c);
++ CHECK_NULL_RETURN(c, 0);
+ ni_defaultIndexID = (*env)->GetStaticFieldID(
+ env, c, "defaultIndex", "I");
+ ni_class = c;
diff --git a/lang/openjdk8/patches/patch-jdk_src_solaris_native_sun_awt_X11Color.c b/lang/openjdk8/patches/patch-jdk_src_solaris_native_sun_awt_X11Color.c
new file mode 100644
index 00000000000..f26b99ca561
--- /dev/null
+++ b/lang/openjdk8/patches/patch-jdk_src_solaris_native_sun_awt_X11Color.c
@@ -0,0 +1,15 @@
+$NetBSD: patch-jdk_src_solaris_native_sun_awt_X11Color.c,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+Casting.
+
+--- jdk/src/solaris/native/sun/awt/X11Color.c.orig 2015-02-02 15:37:12.000000000 +0000
++++ jdk/src/solaris/native/sun/awt/X11Color.c
+@@ -119,7 +119,7 @@ int getVirtCubeSize() {
+ return LOOKUPSIZE;
+ }
+
+- for (i = 0; i < MACHMAPSIZE; i++) {
++ for (i = 0; i < (int)MACHMAPSIZE; i++) {
+ if (strcmp(name.machine, machinemap[i].machine) == 0) {
+ #ifdef DEBUG
+ if (debug_colormap) {
diff --git a/lang/openjdk8/patches/patch-jdk_src_solaris_native_sun_nio_ch_sctp_SctpChannelImpl.c b/lang/openjdk8/patches/patch-jdk_src_solaris_native_sun_nio_ch_sctp_SctpChannelImpl.c
new file mode 100644
index 00000000000..10a4cb6a96f
--- /dev/null
+++ b/lang/openjdk8/patches/patch-jdk_src_solaris_native_sun_nio_ch_sctp_SctpChannelImpl.c
@@ -0,0 +1,15 @@
+$NetBSD: patch-jdk_src_solaris_native_sun_nio_ch_sctp_SctpChannelImpl.c,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+--- jdk/src/solaris/native/sun/nio/ch/sctp/SctpChannelImpl.c.orig 2015-02-02 15:37:12.000000000 +0000
++++ jdk/src/solaris/native/sun/nio/ch/sctp/SctpChannelImpl.c
+@@ -1,3 +1,4 @@
++#if !defined(__NetBSD__)
+ /*
+ * Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+@@ -613,4 +614,4 @@ JNIEXPORT jint JNICALL Java_sun_nio_ch_s
+ return Java_sun_nio_ch_SocketChannelImpl_checkConnect(env, this,
+ fdo, block, ready);
+ }
+-
++#endif
diff --git a/lang/openjdk8/patches/patch-jdk_src_solaris_native_sun_nio_ch_sctp_SctpNet.c b/lang/openjdk8/patches/patch-jdk_src_solaris_native_sun_nio_ch_sctp_SctpNet.c
new file mode 100644
index 00000000000..45a1d70d101
--- /dev/null
+++ b/lang/openjdk8/patches/patch-jdk_src_solaris_native_sun_nio_ch_sctp_SctpNet.c
@@ -0,0 +1,14 @@
+$NetBSD: patch-jdk_src_solaris_native_sun_nio_ch_sctp_SctpNet.c,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+--- jdk/src/solaris/native/sun/nio/ch/sctp/SctpNet.c.orig 2015-02-02 15:37:12.000000000 +0000
++++ jdk/src/solaris/native/sun/nio/ch/sctp/SctpNet.c
+@@ -1,3 +1,4 @@
++#if !defined(__NetBSD__)
+ /*
+ * Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+@@ -753,3 +754,4 @@ JNIEXPORT int JNICALL Java_sun_nio_ch_sc
+
+ return newfd;
+ }
++#endif
diff --git a/lang/openjdk8/patches/patch-jdk_src_solaris_native_sun_security_pkcs11_j2secmod_md.c b/lang/openjdk8/patches/patch-jdk_src_solaris_native_sun_security_pkcs11_j2secmod_md.c
new file mode 100644
index 00000000000..c0fe4bd68e9
--- /dev/null
+++ b/lang/openjdk8/patches/patch-jdk_src_solaris_native_sun_security_pkcs11_j2secmod_md.c
@@ -0,0 +1,15 @@
+$NetBSD: patch-jdk_src_solaris_native_sun_security_pkcs11_j2secmod_md.c,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+No RTLD_NOLOAD on NetBSD < 6, use RTLD_LAZY instead.
+
+--- jdk/src/solaris/native/sun/security/pkcs11/j2secmod_md.c.orig 2015-02-02 15:37:12.000000000 +0000
++++ jdk/src/solaris/native/sun/security/pkcs11/j2secmod_md.c
+@@ -54,7 +54,7 @@ JNIEXPORT jlong JNICALL Java_sun_securit
+ }
+
+ // look up existing handle only, do not load
+-#if defined(AIX)
++#if defined(AIX) || !defined(RTLD_NOLOAD)
+ void *hModule = dlopen(libName, RTLD_LAZY);
+ #else
+ void *hModule = dlopen(libName, RTLD_NOLOAD);
diff --git a/lang/openjdk8/patches/patch-jdk_test_Makefile b/lang/openjdk8/patches/patch-jdk_test_Makefile
new file mode 100644
index 00000000000..502ee6b0668
--- /dev/null
+++ b/lang/openjdk8/patches/patch-jdk_test_Makefile
@@ -0,0 +1,28 @@
+$NetBSD: patch-jdk_test_Makefile,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+Use tools from pkgsrc.
+
+--- jdk/test/Makefile.orig 2015-02-02 15:37:13.000000000 +0000
++++ jdk/test/Makefile
+@@ -56,6 +56,8 @@ UNAME = uname
+ UNIQ = uniq
+ WC = wc
+ ZIP = zip
++UNZIP = unzip
++WHICH = which
+
+ # Get OS name from uname (Cygwin inexplicably adds _NT-5.1)
+ UNAME_S := $(shell $(UNAME) -s | $(CUT) -f1 -d_)
+@@ -258,6 +260,12 @@ jdk_% core_% svc_%:
+
+ # ------------------------------------------------------------------
+
++# carry over XAUTHORITY
++JTREG_TEST_OPTIONS += -e:XAUTHORITY
++
++# some tests expect to find zip and unzip on the path
++JTREG_TEST_OPTIONS += -e:PATH=/bin:/usr/bin:$(dir $(shell $(WHICH) $(ZIP))):$(dir $(shell $(WHICH) $(UNZIP)))
++
+ ifdef CONCURRENCY
+ EXTRA_JTREG_OPTIONS += -concurrency:$(CONCURRENCY)
+ endif
diff --git a/lang/openjdk8/patches/patch-jdk_test_java_beans_Introspector_4168475_Test4168475.java b/lang/openjdk8/patches/patch-jdk_test_java_beans_Introspector_4168475_Test4168475.java
new file mode 100644
index 00000000000..c2bfe5ebf82
--- /dev/null
+++ b/lang/openjdk8/patches/patch-jdk_test_java_beans_Introspector_4168475_Test4168475.java
@@ -0,0 +1,15 @@
+$NetBSD: patch-jdk_test_java_beans_Introspector_4168475_Test4168475.java,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+Test fixes.
+
+--- jdk/test/java/beans/Introspector/4168475/Test4168475.java.orig 2015-02-02 15:37:12.000000000 +0000
++++ jdk/test/java/beans/Introspector/4168475/Test4168475.java
+@@ -41,6 +41,8 @@ public class Test4168475 {
+ private static final String[] PATH = {"infos"};
+
+ public static void main(String[] args) throws IntrospectionException {
++ // running under jtreg -agentvm: system classloader can't find this class (separate classloader?)
++ Thread.currentThread().setContextClassLoader(Test4168475.class.getClassLoader());
+ Introspector.setBeanInfoSearchPath(PATH);
+ BeanInfo info = Introspector.getBeanInfo(Component.class);
+ PropertyDescriptor[] pds = info.getPropertyDescriptors();
diff --git a/lang/openjdk8/patches/patch-jdk_test_java_beans_Introspector_4520754_Test4520754.java b/lang/openjdk8/patches/patch-jdk_test_java_beans_Introspector_4520754_Test4520754.java
new file mode 100644
index 00000000000..63644ca4019
--- /dev/null
+++ b/lang/openjdk8/patches/patch-jdk_test_java_beans_Introspector_4520754_Test4520754.java
@@ -0,0 +1,15 @@
+$NetBSD: patch-jdk_test_java_beans_Introspector_4520754_Test4520754.java,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+Test fixes.
+
+--- jdk/test/java/beans/Introspector/4520754/Test4520754.java.orig 2015-02-02 15:37:12.000000000 +0000
++++ jdk/test/java/beans/Introspector/4520754/Test4520754.java
+@@ -56,6 +56,8 @@ public class Test4520754 {
+ };
+
+ public static void main(String[] args) {
++ // running under jtreg -agentvm: system classloader can't find this class (separate classloader?)
++ Thread.currentThread().setContextClassLoader(Test4520754.class.getClassLoader());
+ // ensure that 4168475 does not regress
+ test4168475(Component.class);
+ // AWT classes (com.sun.beans.infos.ComponentBeanInfo)
diff --git a/lang/openjdk8/patches/patch-jdk_test_java_beans_Introspector_Test4144543.java b/lang/openjdk8/patches/patch-jdk_test_java_beans_Introspector_Test4144543.java
new file mode 100644
index 00000000000..cb1a0bd2754
--- /dev/null
+++ b/lang/openjdk8/patches/patch-jdk_test_java_beans_Introspector_Test4144543.java
@@ -0,0 +1,16 @@
+$NetBSD: patch-jdk_test_java_beans_Introspector_Test4144543.java,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+Test fixes.
+
+--- jdk/test/java/beans/Introspector/Test4144543.java.orig 2015-02-02 15:37:12.000000000 +0000
++++ jdk/test/java/beans/Introspector/Test4144543.java
+@@ -34,7 +34,8 @@ import java.beans.PropertyDescriptor;
+
+ public class Test4144543 {
+ public static void main(String[] args) throws Exception {
+- Class type = Beans.instantiate(null, "Test4144543").getClass();
++ // running under jtreg -agentvm: system classloader can't find this class (separate classloader?)
++ Class type = Beans.instantiate(Test4144543.class.getClassLoader(), "Test4144543").getClass();
+
+ // try all the various places that this would break before
+
diff --git a/lang/openjdk8/patches/patch-jdk_test_java_lang_management_OperatingSystemMXBean_GetSystemLoadAverage.java b/lang/openjdk8/patches/patch-jdk_test_java_lang_management_OperatingSystemMXBean_GetSystemLoadAverage.java
new file mode 100644
index 00000000000..ec7289415e3
--- /dev/null
+++ b/lang/openjdk8/patches/patch-jdk_test_java_lang_management_OperatingSystemMXBean_GetSystemLoadAverage.java
@@ -0,0 +1,15 @@
+$NetBSD: patch-jdk_test_java_lang_management_OperatingSystemMXBean_GetSystemLoadAverage.java,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+Test fixes.
+
+--- jdk/test/java/lang/management/OperatingSystemMXBean/GetSystemLoadAverage.java.orig 2015-02-02 15:37:13.000000000 +0000
++++ jdk/test/java/lang/management/OperatingSystemMXBean/GetSystemLoadAverage.java
+@@ -105,6 +105,8 @@ public class GetSystemLoadAverage {
+ ? output.split(" ")
+ : output.split(",");
+ double expected = Double.parseDouble(lavg[0]);
++ // round to value to two decimals; some OSes report more (SmartOS at least)
++ expected = 0.01D * Math.round(expected / 0.01D);
+ double lowRange = expected * (1 - DELTA);
+ double highRange = expected * (1 + DELTA);
+
diff --git a/lang/openjdk8/patches/patch-jdk_test_sun_security_ec_TestEC.java b/lang/openjdk8/patches/patch-jdk_test_sun_security_ec_TestEC.java
new file mode 100644
index 00000000000..449a1d1db51
--- /dev/null
+++ b/lang/openjdk8/patches/patch-jdk_test_sun_security_ec_TestEC.java
@@ -0,0 +1,15 @@
+$NetBSD: patch-jdk_test_sun_security_ec_TestEC.java,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+Test fixes.
+
+--- jdk/test/sun/security/ec/TestEC.java.orig 2015-02-02 15:37:12.000000000 +0000
++++ jdk/test/sun/security/ec/TestEC.java
+@@ -97,7 +97,7 @@ public class TestEC {
+ // ClientJSSEServerJSSE fails on Solaris 11 when both SunEC and
+ // SunPKCS11-Solaris providers are enabled.
+ // Workaround:
+- // Security.removeProvider("SunPKCS11-Solaris");
++ Security.removeProvider("SunPKCS11-Solaris");
+ new ClientJSSEServerJSSE().main(p);
+
+ long stop = System.currentTimeMillis();
diff --git a/lang/openjdk8/patches/patch-langtools_make_BuildLangtools.gmk b/lang/openjdk8/patches/patch-langtools_make_BuildLangtools.gmk
new file mode 100644
index 00000000000..940f9eab22d
--- /dev/null
+++ b/lang/openjdk8/patches/patch-langtools_make_BuildLangtools.gmk
@@ -0,0 +1,13 @@
+$NetBSD: patch-langtools_make_BuildLangtools.gmk,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+--- langtools/make/BuildLangtools.gmk.orig 2015-02-02 15:31:46.000000000 +0000
++++ langtools/make/BuildLangtools.gmk
+@@ -36,7 +36,7 @@ $(eval $(call SetupJavaCompiler,BOOT_JAV
+ JAVAC := $(JAVAC), \
+ SERVER_DIR := $(SJAVAC_SERVER_DIR), \
+ SERVER_JVM := $(SJAVAC_SERVER_JAVA), \
+- FLAGS := -XDignore.symbol.file=true -g -Xlint:all$(COMMA)-deprecation -Werror))
++ FLAGS := $(PKGSRC_BOOT_JDK_TOOLARGS) -XDignore.symbol.file=true -g -Xlint:all$(COMMA)-deprecation -Werror))
+
+ # javax.tools.JavaCompilerTool isn't really a suffix but this gets the file copied.
+ RESOURCE_SUFFIXES := .gif .xml .css .js javax.tools.JavaCompilerTool
diff --git a/lang/openjdk8/patches/patch-langtools_make_build.xml b/lang/openjdk8/patches/patch-langtools_make_build.xml
new file mode 100644
index 00000000000..50979411761
--- /dev/null
+++ b/lang/openjdk8/patches/patch-langtools_make_build.xml
@@ -0,0 +1,24 @@
+$NetBSD: patch-langtools_make_build.xml,v 1.1 2015/02/08 08:41:25 tnn Exp $
+
+* Avoid *.orig files.
+
+--- langtools/make/build.xml.orig 2015-02-02 15:31:46.000000000 +0000
++++ langtools/make/build.xml
+@@ -237,7 +237,8 @@
+ </chmod>
+ <mkdir dir="${dist.lib.dir}"/>
+ <jar file="${dist.lib.dir}/classes.jar" basedir="${build.classes.dir}"/>
+- <zip file="${dist.lib.dir}/src.zip" basedir="${src.classes.dir}"/>
++ <zip file="${dist.lib.dir}/src.zip" basedir="${src.classes.dir}"
++ excludes="**/*.orig"/>
+ </target>
+
+ <target name="build-bootstrap-tools"
+@@ -922,6 +923,7 @@
+ <copy todir="@{classes.dir}" includeemptydirs="false">
+ <fileset dir="${src.classes.dir}" includes="@{includes}" excludes="@{excludes}">
+ <exclude name="**/*.java"/>
++ <exclude name="**/*.orig"/>
+ <exclude name="**/*.properties"/>
+ <exclude name="**/*-template"/>
+ <exclude name="**/*.rej"/>