pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

New openjdk16 package; does not work yet.



Module Name:	pkgsrc-wip
Committed By:	Christos Zoulas <christos%zoulas.com@localhost>
Pushed By:	christos
Date:		Mon Jun 14 10:14:01 2021 -0400
Changeset:	7a4dea912ab2a8ec0b7488a5f3723eaed155dcc1

Added Files:
	openjdk16/DESCR
	openjdk16/Makefile
	openjdk16/PLIST
	openjdk16/README
	openjdk16/bootstrap.mk
	openjdk16/buildlink3.mk
	openjdk16/distinfo
	openjdk16/hacks.mk
	openjdk16/old/patch-make_autoconf_flags-cflags.m4
	openjdk16/options.mk
	openjdk16/patches/patch-make_autoconf_flags-cflags.m4
	openjdk16/patches/patch-make_autoconf_lib-bundled.m4
	openjdk16/patches/patch-make_autoconf_lib-freetype.m4
	openjdk16/patches/patch-make_autoconf_lib-x11.m4
	openjdk16/patches/patch-make_common_NativeCompilation.gmk
	openjdk16/patches/patch-make_data_fontconfig_bsd.fontconfig.properties
	openjdk16/patches/patch-make_modules_java.desktop_lib_Awt2dLibraries.gmk
	openjdk16/patches/patch-src-java.base_unix_native_libnio_ch_Net.c
	openjdk16/patches/patch-src_hotspot_os__cpu_bsd__aarch64_bytes__bsd__aarch64.inline.hpp
	openjdk16/patches/patch-src_hotspot_os__cpu_bsd__aarch64_os__bsd__aarch64.cpp
	openjdk16/patches/patch-src_hotspot_os__cpu_bsd__aarch64_vm__version__bsd__aarch64.cpp
	openjdk16/patches/patch-src_hotspot_os_bsd_os__bsd.cpp
	openjdk16/patches/patch-src_hotspot_os_bsd_os__perf__bsd.cpp
	openjdk16/patches/patch-src_hotspot_os_posix_os__posix.cpp
	openjdk16/patches/patch-src_hotspot_share_libadt_dict.cpp
	openjdk16/patches/patch-src_java.base_bsd_native_libjava_ProcessHandleImpl__bsd.c
	openjdk16/patches/patch-src_java.base_unix_native_libjava_ProcessHandleImpl__unix.c
	openjdk16/patches/patch-src_java.base_unix_native_libjava_ProcessHandleImpl__unix.h
	openjdk16/patches/patch-src_java.base_unix_native_libjsig_jsig.c
	openjdk16/patches/patch-src_java.desktop_unix_native_common_awt_fontpath.c
	openjdk16/patches/patch-src_jdk.jdwp.agent_share_native_libdt_socket_socketTransport.c
	openjdk16/patches/patch-src_jdk.management_bsd_native_libmanagement__ext_UnixOperatingSystem.c

Log Message:
New openjdk16 package; does not work yet.

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=7a4dea912ab2a8ec0b7488a5f3723eaed155dcc1

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 openjdk16/DESCR                                    |   8 +
 openjdk16/Makefile                                 | 201 +++++++
 openjdk16/PLIST                                    | 667 +++++++++++++++++++++
 openjdk16/README                                   |  37 ++
 openjdk16/bootstrap.mk                             |  30 +
 openjdk16/buildlink3.mk                            |  17 +
 openjdk16/distinfo                                 |  32 +
 openjdk16/hacks.mk                                 |  47 ++
 openjdk16/old/patch-make_autoconf_flags-cflags.m4  |  63 ++
 openjdk16/options.mk                               | 108 ++++
 .../patches/patch-make_autoconf_flags-cflags.m4    |  38 ++
 .../patches/patch-make_autoconf_lib-bundled.m4     |  16 +
 .../patches/patch-make_autoconf_lib-freetype.m4    |  15 +
 openjdk16/patches/patch-make_autoconf_lib-x11.m4   |  15 +
 .../patch-make_common_NativeCompilation.gmk        |  16 +
 ...-make_data_fontconfig_bsd.fontconfig.properties |  53 ++
 ...ake_modules_java.desktop_lib_Awt2dLibraries.gmk |  17 +
 ...patch-src-java.base_unix_native_libnio_ch_Net.c |  69 +++
 ...cpu_bsd__aarch64_bytes__bsd__aarch64.inline.hpp |  17 +
 ...tspot_os__cpu_bsd__aarch64_os__bsd__aarch64.cpp |  70 +++
 ..._cpu_bsd__aarch64_vm__version__bsd__aarch64.cpp |  15 +
 .../patches/patch-src_hotspot_os_bsd_os__bsd.cpp   |  34 ++
 .../patch-src_hotspot_os_bsd_os__perf__bsd.cpp     |  39 ++
 .../patch-src_hotspot_os_posix_os__posix.cpp       |  24 +
 .../patch-src_hotspot_share_libadt_dict.cpp        |  29 +
 ...ase_bsd_native_libjava_ProcessHandleImpl__bsd.c |  35 ++
 ...e_unix_native_libjava_ProcessHandleImpl__unix.c |  15 +
 ...e_unix_native_libjava_ProcessHandleImpl__unix.h |  14 +
 .../patch-src_java.base_unix_native_libjsig_jsig.c |  18 +
 ..._java.desktop_unix_native_common_awt_fontpath.c |  53 ++
 ...ent_share_native_libdt_socket_socketTransport.c |  16 +
 ...native_libmanagement__ext_UnixOperatingSystem.c |  98 +++
 32 files changed, 1926 insertions(+)

diffs:
diff --git a/openjdk16/DESCR b/openjdk16/DESCR
new file mode 100644
index 0000000000..3eeabb8a39
--- /dev/null
+++ b/openjdk16/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/openjdk16/Makefile b/openjdk16/Makefile
new file mode 100644
index 0000000000..cce5ace39a
--- /dev/null
+++ b/openjdk16/Makefile
@@ -0,0 +1,201 @@
+# $NetBSD: Makefile,v 1.33 2021/04/21 13:24:54 adam Exp $
+
+DISTNAME=	jdk16u-${GITHUB_TAG:C/%2B/-/:C/\+/-/}
+PKGNAME=	openjdk16-1.${GITHUB_TAG:C:/%2B/-/:C/\+/./:C/jdk-([.0-9]+).*/\1/}
+#PKGREVISION=	3
+CATEGORIES=	lang
+MASTER_SITES=	${MASTER_SITE_GITHUB:=battleblow/}
+GITHUB_PROJECT=	jdk16u
+#GITHUB_TAG=	jdk-16.0.1-ga
+GITHUB_TAG=	jdk-16.0.1%2B9-1
+
+MAINTAINER=	pkgsrc-users%NetBSD.org@localhost
+HOMEPAGE=	https://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}
+
+JAVA_NAME=	openjdk16
+JAVA_HOME=	${PREFIX}/java/${JAVA_NAME}
+JAVA_WRAPPERS=	jar jarsigner java javac javadoc javap jcmd jconsole jdb \
+		jdeprscan jdeps jfr jimage jinfo jlink jmap jmod jps \
+		jrunscript jshell jstack jstat jstatd keytool rmid \
+		rmiregistry serialver
+
+BUILD_DEPENDS+=		mozilla-rootcerts>=1.0.20140820nb2:../../security/mozilla-rootcerts
+
+GNU_CONFIGURE=		yes
+GNU_CONFIGURE_STRICT=	no # generates the configure script during the build
+USE_GNU_CONFIGURE_HOST=	no
+CONFIGURE_SCRIPT=	configure
+CONFIG_SHELL=		bash
+CONFIG_SUB_OVERRIDE+=	make/autoconf/build-aux/config.sub
+CONFIG_GUESS_OVERRIDE+=	make/autoconf/build-aux/config.guess
+CONFIG_SUB_OVERRIDE+=	make/autoconf/build-aux/autoconf-config.sub
+CONFIG_GUESS_OVERRIDE+=	make/autoconf/build-aux/autoconf-config.guess
+USE_LANGUAGES=		c c++
+USE_TOOLS+=		bash gmake pax pkg-config unzip:run zip:run autoconf automake
+UNLIMIT_RESOURCES=	datasize stacksize virtualsize cputime
+
+BUILDLINK_PASSTHRU_DIRS+=	${ALT_BOOTDIR}
+
+# Try to use less POSIX semaphores (large MAKE_JOBS can consume them all)
+BOOT_JVMARGS=	-XX:+UnlockDiagnosticVMOptions \
+		-XX:-UseSemaphoreGCThreadsSynchronization
+
+CONFIGURE_ARGS+=	--prefix=${PREFIX:Q}
+CONFIGURE_ARGS+=	--openjdk-target=${MACHINE_GNU_PLATFORM:Q}
+CONFIGURE_ARGS+=	--with-boot-jdk=${ALT_BOOTDIR}
+CONFIGURE_ARGS+=	--with-boot-jdk-jvmargs=${BOOT_JVMARGS:Q}
+CONFIGURE_ARGS+=	--with-zlib=system
+CONFIGURE_ARGS+=	--with-giflib=bundled
+CONFIGURE_ARGS+=	--with-lcms=bundled
+CONFIGURE_ARGS+=	--with-cups-include=${BUILDLINK_PREFIX.libcups}/include
+CONFIGURE_ARGS+=	--with-freetype=system
+CONFIGURE_ARGS+=	--with-freetype-lib=${BUILDLINK_PREFIX.freetype2}/lib
+CONFIGURE_ARGS+=	--with-freetype-include=${BUILDLINK_PREFIX.freetype2}/include
+CONFIGURE_ARGS+=	--with-jobs=${MAKE_JOBS:U1}
+CONFIGURE_ARGS+=	--with-num-cores=${MAKE_JOBS:U1}
+CONFIGURE_ARGS+=	--disable-precompiled-headers
+CONFIGURE_ARGS+=	--disable-ccache
+CONFIGURE_ARGS+=	--disable-javac-server
+CONFIGURE_ARGS+=	--with-extra-ldflags=${LDFLAGS:Q}
+CONFIGURE_ARGS+=	--with-extra-cflags=${CFLAGS:Q}
+CONFIGURE_ARGS+=	--with-extra-cxxflags=${CXXFLAGS:Q}
+CONFIGURE_ARGS+=	--disable-warnings-as-errors
+CONFIGURE_ARGS+=	--with-cacerts-file=${WRKDIR}/cacerts.out
+CONFIGURE_ARGS+=	--with-default-make-target=product-images
+# It is intentional to use CONFIGURE_ARGS instead of CONFIGURE_ENV here.
+CONFIGURE_ARGS+=	USER=pkgsrc
+
+.include "../../mk/bsd.prefs.mk"
+
+# Avoid build errors when JAVA_HOME and CLASSPATH are defined by user.
+MAKE_ENV+=	JAVA_HOME=
+MAKE_ENV+=	CLASSPATH=
+.if !empty(MACHINE_PLATFORM:MNetBSD-9.99.8[1-9]-*)
+ALL_ENV+=	SED="sed -g"
+.endif
+
+BUILD_OPSYS=			${OPSYS:C/.*BSD/bsd/:S/DragonFly/bsd/:S/SunOS/solaris/:S/Linux/linux/}
+BUILD_ARCH=			${MACHINE_ARCH:S/i386/x86/:S/sparc64/sparcv9/:C/^e?arm.*$/arm/}
+BUILDDIR=			${WRKSRC}/build/${BUILD_OPSYS}-${BUILD_ARCH}-normal-${BUILD_VARIANT}-${BUILD_DEBUG_LEVEL}
+BUILDLINK_PASSTHRU_RPATHDIRS+=	${PREFIX}/java/${JAVA_NAME}/lib
+BUILDLINK_PASSTHRU_RPATHDIRS+=	${PREFIX}/java/${JAVA_NAME}/lib/server
+WRKSRC=				${WRKDIR}/${DISTNAME}
+
+.include "../../mk/compiler.mk"
+
+.if !empty(PKGSRC_COMPILER:Mclang)
+CONFIGURE_ARGS+=	--with-toolchain-type=clang
+_WRAP_EXTRA_ARGS.CC+=	-Wno-format-nonliteral -Wno-sign-compare -Wno-char-subscripts
+CWRAPPERS_APPEND.cc+=	-Wno-format-nonliteral -Wno-sign-compare -Wno-char-subscripts
+_WRAP_EXTRA_ARGS.CXX+=	-Wno-tautological-undefined-compare
+CWRAPPERS_APPEND.cxx+=	-Wno-tautological-undefined-compare
+
+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
+.else
+# GCC
+CONFIGURE_ARGS+=	--with-toolchain-type=gcc
+.endif
+
+.include "bootstrap.mk"
+.include "options.mk"
+
+#SUBST_CLASSES+=		libpath
+#SUBST_STAGE.libpath=	pre-configure
+#SUBST_FILES.libpath+=	src/hotspot/os/bsd/os_bsd.cpp
+#SUBST_FILES.libpath+=	make/autoconf/flags-cflags.m4
+#SUBST_FILES.libpath+=	make/autoconf/lib-bundled.m4
+#SUBST_FILES.libpath+=	make/autoconf/lib-freetype.m4
+#SUBST_FILES.libpath+=	make/autoconf/lib-x11.m4
+#SUBST_VARS.libpath=	PREFIX COMPILER_RPATH_FLAG JAVA_NAME BUILDLINK_PREFIX.zlib X11BASE
+
+SUBST_CLASSES+=			fontpaths
+SUBST_STAGE.fontpaths=		pre-configure
+SUBST_MESSAGE.fontpaths=	fixing font paths
+SUBST_FILES.fontpaths=		make/data/fontconfig/bsd.fontconfig.properties
+SUBST_FILES.fontpaths+=		src/java.desktop/unix/native/common/awt/fontpath.c
+SUBST_VARS.fontpaths=		PREFIX BUILDLINK_PREFIX.fontconfig
+
+.if ${OPSYS} == "NetBSD"
+# NetBSD's EVFILT_* are different from FreeBSD/OpenBSD's values.
+SUBST_CLASSES+=			kqueue
+SUBST_STAGE.kqueue=		pre-configure
+SUBST_MESSAGE.kqueue=		fixing kqueue filter values
+SUBST_FILES.kqueue=		src/java.base/bsd/classes/sun/nio/ch/KQueue.java
+SUBST_SED.kqueue=		-e 's/static final int EVFILT_READ  = -1;/static final int EVFILT_READ  = 0;/'
+SUBST_SED.kqueue+=		-e 's/static final int EVFILT_WRITE = -2;/static final int EVFILT_WRITE = 1;/'
+.endif
+
+PLIST_VARS+=			aot internal_vm_compiler jvmci
+.if ${MACHINE_ARCH} == "x86_64"
+PLIST.aot=			yes
+PLIST.internal_vm_compiler=	yes
+PLIST.jvmci=			yes
+.endif
+.if ${MACHINE_ARCH} == "aarch64"
+PLIST.jvmci=			yes
+.endif
+
+.if ${OPSYS} == "NetBSD"
+TOOLS_PLATFORM.unzip=
+.endif
+
+post-extract:
+# These libs are bundled w/ the netbsd-7 bootstrap to facilitate building with
+# MKLLVM=yes / MKGCC=no. Nuke them from bootstrap if they are present in base.
+.if exists(/lib/libgcc_s.so.1)
+	${RM} -f ${ALT_BOOTDIR}/lib/libgcc_s.so*
+.endif
+
+pre-configure: ${WRKDIR}/cacerts.out
+
+${WRKDIR}/cacerts.out:
+	mkdir ${WRKDIR}/cacerts && cd ${WRKDIR}/cacerts && 		\
+		${PREFIX}/sbin/mozilla-rootcerts extract
+	${_ULIMIT_CMD} for cert in ${WRKDIR}/cacerts/*.pem; do				\
+		${INFO_MSG} "Importing $$cert" &&			\
+		 ${SETENV} ${CONFIGURE_ENV} LC_ALL=C			\
+		  ${ALT_BOOTDIR}/bin/keytool				\
+		  -noprompt						\
+		  -importcert						\
+		  -keystore ${.TARGET}.tmp				\
+		  -alias `${ECHO} $$cert | sed 's,.*/\\([^/]*\\)\\.pem,\\1,'` \
+		  -file $$cert						\
+		  -storetype jks					\
+		  -storepass changeit;					\
+	done
+	mv ${.TARGET}.tmp ${.TARGET}
+
+do-build:
+	rm -f ${WRKSRC}/make/data/fontconfig/*.orig
+#	${_ULIMIT_CMD} cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} LD_LIBRARY_PATH=${ALT_BOOTDIR}/lib ${MAKE_PROGRAM}
+	${_ULIMIT_CMD} cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM}
+
+do-install:
+	${INSTALL_DATA_DIR} ${DESTDIR}${JAVA_HOME}
+	cd ${BUILDDIR}/images/jdk && pax -rwpp .		\
+	  ${DESTDIR}${JAVA_HOME}/.
+
+.if ${OPSYS} == "Linux" || ${OPSYS} == "NetBSD"
+.include "../../audio/alsa-lib/buildlink3.mk"
+CONFIGURE_ARGS+=	--with-alsa=${BUILDLINK_PREFIX.alsa-lib}
+.endif
+.include "../../converters/libiconv/buildlink3.mk"
+.include "../../devel/zlib/buildlink3.mk"
+.include "../../fonts/fontconfig/buildlink3.mk"
+.include "../../graphics/freetype2/buildlink3.mk"
+# Headers from CUPS are required to build the native implementation of
+# sun.print.* which is used by java.awt.print.
+BUILDLINK_DEPMETHOD.libcups?=	build
+.include "../../print/libcups/buildlink3.mk"
+.include "../../mk/java-env.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/openjdk16/PLIST b/openjdk16/PLIST
new file mode 100644
index 0000000000..e60ceba26f
--- /dev/null
+++ b/openjdk16/PLIST
@@ -0,0 +1,667 @@
+@comment $NetBSD: PLIST,v 1.9 2021/04/10 18:21:44 ryoon Exp $
+bin/openjdk16-jar
+bin/openjdk16-jarsigner
+bin/openjdk16-java
+bin/openjdk16-javac
+bin/openjdk16-javadoc
+bin/openjdk16-javap
+bin/openjdk16-jcmd
+bin/openjdk16-jconsole
+bin/openjdk16-jdb
+bin/openjdk16-jdeprscan
+bin/openjdk16-jdeps
+bin/openjdk16-jfr
+bin/openjdk16-jimage
+bin/openjdk16-jinfo
+bin/openjdk16-jlink
+bin/openjdk16-jmap
+bin/openjdk16-jmod
+bin/openjdk16-jps
+bin/openjdk16-jrunscript
+bin/openjdk16-jshell
+bin/openjdk16-jstack
+bin/openjdk16-jstat
+bin/openjdk16-jstatd
+bin/openjdk16-keytool
+bin/openjdk16-rmid
+bin/openjdk16-rmiregistry
+bin/openjdk16-serialver
+${PLIST.aot}java/openjdk16/bin/jaotc
+${PLIST.aot}java/openjdk16/bin/jaotc${DBGEXT}
+java/openjdk16/bin/jar
+java/openjdk16/bin/jar.diz
+java/openjdk16/bin/jarsigner
+java/openjdk16/bin/jarsigner.diz
+java/openjdk16/bin/java
+java/openjdk16/bin/java.diz
+java/openjdk16/bin/javac
+java/openjdk16/bin/javac.diz
+java/openjdk16/bin/javadoc
+java/openjdk16/bin/javadoc.diz
+java/openjdk16/bin/javap
+java/openjdk16/bin/javap.diz
+java/openjdk16/bin/jcmd
+java/openjdk16/bin/jcmd.diz
+java/openjdk16/bin/jconsole
+java/openjdk16/bin/jconsole.diz
+java/openjdk16/bin/jdb
+java/openjdk16/bin/jdb.diz
+java/openjdk16/bin/jdeprscan
+java/openjdk16/bin/jdeprscan.diz
+java/openjdk16/bin/jdeps
+java/openjdk16/bin/jdeps.diz
+java/openjdk16/bin/jfr
+java/openjdk16/bin/jfr.diz
+java/openjdk16/bin/jimage
+java/openjdk16/bin/jimage.diz
+java/openjdk16/bin/jinfo
+java/openjdk16/bin/jinfo.diz
+java/openjdk16/bin/jjs
+java/openjdk16/bin/jjs.diz
+java/openjdk16/bin/jlink
+java/openjdk16/bin/jlink.diz
+java/openjdk16/bin/jmap
+java/openjdk16/bin/jmap.diz
+java/openjdk16/bin/jmod
+java/openjdk16/bin/jmod.diz
+java/openjdk16/bin/jps
+java/openjdk16/bin/jps.diz
+java/openjdk16/bin/jrunscript
+java/openjdk16/bin/jrunscript.diz
+java/openjdk16/bin/jshell
+java/openjdk16/bin/jshell.diz
+java/openjdk16/bin/jstack
+java/openjdk16/bin/jstack.diz
+java/openjdk16/bin/jstat
+java/openjdk16/bin/jstat.diz
+java/openjdk16/bin/jstatd
+java/openjdk16/bin/jstatd.diz
+java/openjdk16/bin/keytool
+java/openjdk16/bin/keytool.diz
+java/openjdk16/bin/pack200
+java/openjdk16/bin/pack200.diz
+java/openjdk16/bin/rmic
+java/openjdk16/bin/rmic.diz
+java/openjdk16/bin/rmid
+java/openjdk16/bin/rmid.diz
+java/openjdk16/bin/rmiregistry
+java/openjdk16/bin/rmiregistry.diz
+java/openjdk16/bin/serialver
+java/openjdk16/bin/serialver.diz
+java/openjdk16/bin/unpack200
+java/openjdk16/bin/unpack200.diz
+java/openjdk16/conf/logging.properties
+java/openjdk16/conf/management/jmxremote.access
+java/openjdk16/conf/management/jmxremote.password.template
+java/openjdk16/conf/management/management.properties
+java/openjdk16/conf/net.properties
+java/openjdk16/conf/security/java.policy
+java/openjdk16/conf/security/java.security
+java/openjdk16/conf/security/policy/README.txt
+java/openjdk16/conf/security/policy/limited/default_US_export.policy
+java/openjdk16/conf/security/policy/limited/default_local.policy
+java/openjdk16/conf/security/policy/limited/exempt_local.policy
+java/openjdk16/conf/security/policy/unlimited/default_US_export.policy
+java/openjdk16/conf/security/policy/unlimited/default_local.policy
+java/openjdk16/conf/sound.properties
+java/openjdk16/demo/README
+java/openjdk16/demo/jfc/CodePointIM/CodePointIM.jar
+java/openjdk16/demo/jfc/CodePointIM/README.html
+java/openjdk16/demo/jfc/CodePointIM/README_ja.html
+java/openjdk16/demo/jfc/CodePointIM/README_zh_CN.html
+java/openjdk16/demo/jfc/CodePointIM/src.zip
+java/openjdk16/demo/jfc/FileChooserDemo/FileChooserDemo.jar
+java/openjdk16/demo/jfc/FileChooserDemo/README.txt
+java/openjdk16/demo/jfc/FileChooserDemo/src.zip
+java/openjdk16/demo/jfc/Font2DTest/Font2DTest.html
+java/openjdk16/demo/jfc/Font2DTest/Font2DTest.jar
+java/openjdk16/demo/jfc/Font2DTest/README.txt
+java/openjdk16/demo/jfc/Font2DTest/src.zip
+java/openjdk16/demo/jfc/J2Ddemo/J2Ddemo.jar
+java/openjdk16/demo/jfc/J2Ddemo/README.txt
+java/openjdk16/demo/jfc/J2Ddemo/src.zip
+java/openjdk16/demo/jfc/Metalworks/Metalworks.jar
+java/openjdk16/demo/jfc/Metalworks/README.txt
+java/openjdk16/demo/jfc/Metalworks/src.zip
+java/openjdk16/demo/jfc/Notepad/Notepad.jar
+java/openjdk16/demo/jfc/Notepad/README.txt
+java/openjdk16/demo/jfc/Notepad/src.zip
+java/openjdk16/demo/jfc/SampleTree/README.txt
+java/openjdk16/demo/jfc/SampleTree/SampleTree.jar
+java/openjdk16/demo/jfc/SampleTree/src.zip
+java/openjdk16/demo/jfc/Stylepad/README.txt
+java/openjdk16/demo/jfc/Stylepad/Stylepad.jar
+java/openjdk16/demo/jfc/Stylepad/src.zip
+java/openjdk16/demo/jfc/SwingSet2/README.txt
+java/openjdk16/demo/jfc/SwingSet2/SwingSet2.html
+java/openjdk16/demo/jfc/SwingSet2/SwingSet2.jar
+java/openjdk16/demo/jfc/SwingSet2/src.zip
+java/openjdk16/demo/jfc/TableExample/README.txt
+java/openjdk16/demo/jfc/TableExample/TableExample.jar
+java/openjdk16/demo/jfc/TableExample/src.zip
+java/openjdk16/demo/jfc/TransparentRuler/README.txt
+java/openjdk16/demo/jfc/TransparentRuler/TransparentRuler.jar
+java/openjdk16/demo/jfc/TransparentRuler/src.zip
+java/openjdk16/demo/nbproject/README.txt
+java/openjdk16/demo/nbproject/jfc/FileChooserDemo/build.properties
+java/openjdk16/demo/nbproject/jfc/FileChooserDemo/build.xml
+java/openjdk16/demo/nbproject/jfc/FileChooserDemo/nbproject/file-targets.xml
+java/openjdk16/demo/nbproject/jfc/FileChooserDemo/nbproject/jdk.xml
+java/openjdk16/demo/nbproject/jfc/FileChooserDemo/nbproject/netbeans-targets.xml
+java/openjdk16/demo/nbproject/jfc/FileChooserDemo/nbproject/project.xml
+java/openjdk16/demo/nbproject/jfc/Font2DTest/build.properties
+java/openjdk16/demo/nbproject/jfc/Font2DTest/build.xml
+java/openjdk16/demo/nbproject/jfc/Font2DTest/nbproject/file-targets.xml
+java/openjdk16/demo/nbproject/jfc/Font2DTest/nbproject/jdk.xml
+java/openjdk16/demo/nbproject/jfc/Font2DTest/nbproject/netbeans-targets.xml
+java/openjdk16/demo/nbproject/jfc/Font2DTest/nbproject/project.xml
+java/openjdk16/demo/nbproject/jfc/Metalworks/build.properties
+java/openjdk16/demo/nbproject/jfc/Metalworks/build.xml
+java/openjdk16/demo/nbproject/jfc/Metalworks/nbproject/file-targets.xml
+java/openjdk16/demo/nbproject/jfc/Metalworks/nbproject/jdk.xml
+java/openjdk16/demo/nbproject/jfc/Metalworks/nbproject/netbeans-targets.xml
+java/openjdk16/demo/nbproject/jfc/Metalworks/nbproject/project.xml
+java/openjdk16/demo/nbproject/jfc/Notepad/build.properties
+java/openjdk16/demo/nbproject/jfc/Notepad/build.xml
+java/openjdk16/demo/nbproject/jfc/Notepad/nbproject/file-targets.xml
+java/openjdk16/demo/nbproject/jfc/Notepad/nbproject/jdk.xml
+java/openjdk16/demo/nbproject/jfc/Notepad/nbproject/netbeans-targets.xml
+java/openjdk16/demo/nbproject/jfc/Notepad/nbproject/project.xml
+java/openjdk16/demo/nbproject/jfc/SampleTree/build.properties
+java/openjdk16/demo/nbproject/jfc/SampleTree/build.xml
+java/openjdk16/demo/nbproject/jfc/SampleTree/nbproject/file-targets.xml
+java/openjdk16/demo/nbproject/jfc/SampleTree/nbproject/jdk.xml
+java/openjdk16/demo/nbproject/jfc/SampleTree/nbproject/netbeans-targets.xml
+java/openjdk16/demo/nbproject/jfc/SampleTree/nbproject/project.xml
+java/openjdk16/demo/nbproject/jfc/SwingApplet/build.properties
+java/openjdk16/demo/nbproject/jfc/SwingApplet/build.xml
+java/openjdk16/demo/nbproject/jfc/SwingApplet/nbproject/file-targets.xml
+java/openjdk16/demo/nbproject/jfc/SwingApplet/nbproject/jdk.xml
+java/openjdk16/demo/nbproject/jfc/SwingApplet/nbproject/netbeans-targets.xml
+java/openjdk16/demo/nbproject/jfc/SwingApplet/nbproject/project.xml
+java/openjdk16/demo/nbproject/jfc/TableExample/build.properties
+java/openjdk16/demo/nbproject/jfc/TableExample/build.xml
+java/openjdk16/demo/nbproject/jfc/TableExample/nbproject/file-targets.xml
+java/openjdk16/demo/nbproject/jfc/TableExample/nbproject/jdk.xml
+java/openjdk16/demo/nbproject/jfc/TableExample/nbproject/netbeans-targets.xml
+java/openjdk16/demo/nbproject/jfc/TableExample/nbproject/project.xml
+java/openjdk16/demo/nbproject/jfc/TransparentRuler/build.properties
+java/openjdk16/demo/nbproject/jfc/TransparentRuler/build.xml
+java/openjdk16/demo/nbproject/jfc/TransparentRuler/nbproject/file-targets.xml
+java/openjdk16/demo/nbproject/jfc/TransparentRuler/nbproject/jdk.xml
+java/openjdk16/demo/nbproject/jfc/TransparentRuler/nbproject/netbeans-targets.xml
+java/openjdk16/demo/nbproject/jfc/TransparentRuler/nbproject/project.xml
+java/openjdk16/demo/nbproject/management/FullThreadDump/build.properties
+java/openjdk16/demo/nbproject/management/FullThreadDump/build.xml
+java/openjdk16/demo/nbproject/management/FullThreadDump/nbproject/file-targets.xml
+java/openjdk16/demo/nbproject/management/FullThreadDump/nbproject/jdk.xml
+java/openjdk16/demo/nbproject/management/FullThreadDump/nbproject/netbeans-targets.xml
+java/openjdk16/demo/nbproject/management/FullThreadDump/nbproject/project.xml
+java/openjdk16/demo/nbproject/management/JTop/build.properties
+java/openjdk16/demo/nbproject/management/JTop/build.xml
+java/openjdk16/demo/nbproject/management/JTop/nbproject/file-targets.xml
+java/openjdk16/demo/nbproject/management/JTop/nbproject/jdk.xml
+java/openjdk16/demo/nbproject/management/JTop/nbproject/netbeans-targets.xml
+java/openjdk16/demo/nbproject/management/JTop/nbproject/project.xml
+java/openjdk16/demo/nbproject/management/MemoryMonitor/build.properties
+java/openjdk16/demo/nbproject/management/MemoryMonitor/build.xml
+java/openjdk16/demo/nbproject/management/MemoryMonitor/nbproject/file-targets.xml
+java/openjdk16/demo/nbproject/management/MemoryMonitor/nbproject/jdk.xml
+java/openjdk16/demo/nbproject/management/MemoryMonitor/nbproject/netbeans-targets.xml
+java/openjdk16/demo/nbproject/management/MemoryMonitor/nbproject/project.xml
+java/openjdk16/demo/nbproject/management/VerboseGC/build.properties
+java/openjdk16/demo/nbproject/management/VerboseGC/build.xml
+java/openjdk16/demo/nbproject/management/VerboseGC/nbproject/file-targets.xml
+java/openjdk16/demo/nbproject/management/VerboseGC/nbproject/jdk.xml
+java/openjdk16/demo/nbproject/management/VerboseGC/nbproject/netbeans-targets.xml
+java/openjdk16/demo/nbproject/management/VerboseGC/nbproject/project.xml
+java/openjdk16/demo/nbproject/project.xml
+java/openjdk16/demo/nbproject/scripting/jconsole-plugin/build.properties
+java/openjdk16/demo/nbproject/scripting/jconsole-plugin/build.xml
+java/openjdk16/demo/nbproject/scripting/jconsole-plugin/nbproject/file-targets.xml
+java/openjdk16/demo/nbproject/scripting/jconsole-plugin/nbproject/jdk.xml
+java/openjdk16/demo/nbproject/scripting/jconsole-plugin/nbproject/netbeans-targets.xml
+java/openjdk16/demo/nbproject/scripting/jconsole-plugin/nbproject/project.xml
+java/openjdk16/include/classfile_constants.h
+java/openjdk16/include/jawt.h
+java/openjdk16/include/jdwpTransport.h
+java/openjdk16/include/jni.h
+java/openjdk16/include/jvmti.h
+java/openjdk16/include/jvmticmlr.h
+java/openjdk16/include/netbsd/jawt_md.h
+java/openjdk16/include/netbsd/jni_md.h
+java/openjdk16/jmods/java.base.jmod
+java/openjdk16/jmods/java.compiler.jmod
+java/openjdk16/jmods/java.datatransfer.jmod
+java/openjdk16/jmods/java.desktop.jmod
+java/openjdk16/jmods/java.instrument.jmod
+java/openjdk16/jmods/java.logging.jmod
+java/openjdk16/jmods/java.management.jmod
+java/openjdk16/jmods/java.management.rmi.jmod
+java/openjdk16/jmods/java.naming.jmod
+java/openjdk16/jmods/java.net.http.jmod
+java/openjdk16/jmods/java.prefs.jmod
+java/openjdk16/jmods/java.rmi.jmod
+java/openjdk16/jmods/java.scripting.jmod
+java/openjdk16/jmods/java.se.jmod
+java/openjdk16/jmods/java.security.jgss.jmod
+java/openjdk16/jmods/java.security.sasl.jmod
+java/openjdk16/jmods/java.smartcardio.jmod
+java/openjdk16/jmods/java.sql.jmod
+java/openjdk16/jmods/java.sql.rowset.jmod
+java/openjdk16/jmods/java.transaction.xa.jmod
+java/openjdk16/jmods/java.xml.crypto.jmod
+java/openjdk16/jmods/java.xml.jmod
+java/openjdk16/jmods/jdk.accessibility.jmod
+${PLIST.aot}java/openjdk16/jmods/jdk.aot.jmod
+java/openjdk16/jmods/jdk.attach.jmod
+java/openjdk16/jmods/jdk.charsets.jmod
+java/openjdk16/jmods/jdk.compiler.jmod
+java/openjdk16/jmods/jdk.crypto.cryptoki.jmod
+java/openjdk16/jmods/jdk.crypto.ec.jmod
+java/openjdk16/jmods/jdk.dynalink.jmod
+java/openjdk16/jmods/jdk.editpad.jmod
+java/openjdk16/jmods/jdk.httpserver.jmod
+java/openjdk16/jmods/jdk.internal.ed.jmod
+java/openjdk16/jmods/jdk.internal.jvmstat.jmod
+java/openjdk16/jmods/jdk.internal.le.jmod
+java/openjdk16/jmods/jdk.internal.opt.jmod
+${PLIST.jvmci}java/openjdk16/jmods/jdk.internal.vm.ci.jmod
+${PLIST.internal_vm_compiler}java/openjdk16/jmods/jdk.internal.vm.compiler.jmod
+${PLIST.internal_vm_compiler}java/openjdk16/jmods/jdk.internal.vm.compiler.management.jmod
+java/openjdk16/jmods/jdk.jartool.jmod
+java/openjdk16/jmods/jdk.javadoc.jmod
+java/openjdk16/jmods/jdk.jcmd.jmod
+java/openjdk16/jmods/jdk.jconsole.jmod
+java/openjdk16/jmods/jdk.jdeps.jmod
+java/openjdk16/jmods/jdk.jdi.jmod
+java/openjdk16/jmods/jdk.jdwp.agent.jmod
+java/openjdk16/jmods/jdk.jfr.jmod
+java/openjdk16/jmods/jdk.jlink.jmod
+java/openjdk16/jmods/jdk.jshell.jmod
+java/openjdk16/jmods/jdk.jsobject.jmod
+java/openjdk16/jmods/jdk.jstatd.jmod
+java/openjdk16/jmods/jdk.localedata.jmod
+java/openjdk16/jmods/jdk.management.agent.jmod
+java/openjdk16/jmods/jdk.management.jfr.jmod
+java/openjdk16/jmods/jdk.management.jmod
+java/openjdk16/jmods/jdk.naming.dns.jmod
+java/openjdk16/jmods/jdk.naming.ldap.jmod
+java/openjdk16/jmods/jdk.naming.rmi.jmod
+java/openjdk16/jmods/jdk.net.jmod
+java/openjdk16/jmods/jdk.pack.jmod
+java/openjdk16/jmods/jdk.rmic.jmod
+java/openjdk16/jmods/jdk.scripting.nashorn.jmod
+java/openjdk16/jmods/jdk.scripting.nashorn.shell.jmod
+java/openjdk16/jmods/jdk.sctp.jmod
+java/openjdk16/jmods/jdk.security.auth.jmod
+java/openjdk16/jmods/jdk.security.jgss.jmod
+java/openjdk16/jmods/jdk.unsupported.desktop.jmod
+java/openjdk16/jmods/jdk.unsupported.jmod
+java/openjdk16/jmods/jdk.xml.dom.jmod
+java/openjdk16/jmods/jdk.zipfs.jmod
+java/openjdk16/legal/java.base/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/java.base/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/java.base/LICENSE
+java/openjdk16/legal/java.base/aes.md
+java/openjdk16/legal/java.base/asm.md
+java/openjdk16/legal/java.base/c-libutl.md
+java/openjdk16/legal/java.base/cldr.md
+java/openjdk16/legal/java.base/icu.md
+java/openjdk16/legal/java.base/public_suffix.md
+java/openjdk16/legal/java.base/unicode.md
+java/openjdk16/legal/java.compiler/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/java.compiler/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/java.compiler/LICENSE
+java/openjdk16/legal/java.datatransfer/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/java.datatransfer/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/java.datatransfer/LICENSE
+java/openjdk16/legal/java.desktop/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/java.desktop/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/java.desktop/LICENSE
+java/openjdk16/legal/java.desktop/colorimaging.md
+java/openjdk16/legal/java.desktop/giflib.md
+java/openjdk16/legal/java.desktop/harfbuzz.md
+java/openjdk16/legal/java.desktop/jpeg.md
+java/openjdk16/legal/java.desktop/lcms.md
+java/openjdk16/legal/java.desktop/libpng.md
+java/openjdk16/legal/java.desktop/mesa3d.md
+java/openjdk16/legal/java.desktop/xwd.md
+java/openjdk16/legal/java.instrument/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/java.instrument/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/java.instrument/LICENSE
+java/openjdk16/legal/java.logging/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/java.logging/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/java.logging/LICENSE
+java/openjdk16/legal/java.management.rmi/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/java.management.rmi/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/java.management.rmi/LICENSE
+java/openjdk16/legal/java.management/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/java.management/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/java.management/LICENSE
+java/openjdk16/legal/java.naming/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/java.naming/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/java.naming/LICENSE
+java/openjdk16/legal/java.net.http/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/java.net.http/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/java.net.http/LICENSE
+java/openjdk16/legal/java.prefs/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/java.prefs/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/java.prefs/LICENSE
+java/openjdk16/legal/java.rmi/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/java.rmi/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/java.rmi/LICENSE
+java/openjdk16/legal/java.scripting/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/java.scripting/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/java.scripting/LICENSE
+java/openjdk16/legal/java.se/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/java.se/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/java.se/LICENSE
+java/openjdk16/legal/java.security.jgss/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/java.security.jgss/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/java.security.jgss/LICENSE
+java/openjdk16/legal/java.security.sasl/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/java.security.sasl/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/java.security.sasl/LICENSE
+java/openjdk16/legal/java.smartcardio/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/java.smartcardio/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/java.smartcardio/LICENSE
+java/openjdk16/legal/java.smartcardio/pcsclite.md
+java/openjdk16/legal/java.sql.rowset/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/java.sql.rowset/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/java.sql.rowset/LICENSE
+java/openjdk16/legal/java.sql/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/java.sql/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/java.sql/LICENSE
+java/openjdk16/legal/java.transaction.xa/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/java.transaction.xa/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/java.transaction.xa/LICENSE
+java/openjdk16/legal/java.xml.crypto/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/java.xml.crypto/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/java.xml.crypto/LICENSE
+java/openjdk16/legal/java.xml.crypto/santuario.md
+java/openjdk16/legal/java.xml/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/java.xml/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/java.xml/LICENSE
+java/openjdk16/legal/java.xml/bcel.md
+java/openjdk16/legal/java.xml/dom.md
+java/openjdk16/legal/java.xml/jcup.md
+java/openjdk16/legal/java.xml/xalan.md
+java/openjdk16/legal/java.xml/xerces.md
+java/openjdk16/legal/jdk.accessibility/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.accessibility/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.accessibility/LICENSE
+${PLIST.aot}java/openjdk16/legal/jdk.aot/ADDITIONAL_LICENSE_INFO
+${PLIST.aot}java/openjdk16/legal/jdk.aot/ASSEMBLY_EXCEPTION
+${PLIST.aot}java/openjdk16/legal/jdk.aot/LICENSE
+java/openjdk16/legal/jdk.attach/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.attach/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.attach/LICENSE
+java/openjdk16/legal/jdk.charsets/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.charsets/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.charsets/LICENSE
+java/openjdk16/legal/jdk.compiler/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.compiler/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.compiler/LICENSE
+java/openjdk16/legal/jdk.crypto.cryptoki/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.crypto.cryptoki/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.crypto.cryptoki/LICENSE
+java/openjdk16/legal/jdk.crypto.cryptoki/pkcs16cryptotoken.md
+java/openjdk16/legal/jdk.crypto.cryptoki/pkcs16wrapper.md
+java/openjdk16/legal/jdk.crypto.ec/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.crypto.ec/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.crypto.ec/LICENSE
+java/openjdk16/legal/jdk.crypto.ec/ecc.md
+java/openjdk16/legal/jdk.dynalink/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.dynalink/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.dynalink/LICENSE
+java/openjdk16/legal/jdk.dynalink/dynalink.md
+java/openjdk16/legal/jdk.editpad/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.editpad/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.editpad/LICENSE
+java/openjdk16/legal/jdk.httpserver/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.httpserver/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.httpserver/LICENSE
+java/openjdk16/legal/jdk.internal.ed/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.internal.ed/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.internal.ed/LICENSE
+java/openjdk16/legal/jdk.internal.jvmstat/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.internal.jvmstat/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.internal.jvmstat/LICENSE
+java/openjdk16/legal/jdk.internal.le/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.internal.le/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.internal.le/LICENSE
+java/openjdk16/legal/jdk.internal.le/jline.md
+java/openjdk16/legal/jdk.internal.opt/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.internal.opt/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.internal.opt/LICENSE
+java/openjdk16/legal/jdk.internal.opt/jopt-simple.md
+${PLIST.jvmci}java/openjdk16/legal/jdk.internal.vm.ci/ADDITIONAL_LICENSE_INFO
+${PLIST.jvmci}java/openjdk16/legal/jdk.internal.vm.ci/ASSEMBLY_EXCEPTION
+${PLIST.jvmci}java/openjdk16/legal/jdk.internal.vm.ci/LICENSE
+${PLIST.internal_vm_compiler}java/openjdk16/legal/jdk.internal.vm.compiler.management/ADDITIONAL_LICENSE_INFO
+${PLIST.internal_vm_compiler}java/openjdk16/legal/jdk.internal.vm.compiler.management/ASSEMBLY_EXCEPTION
+${PLIST.internal_vm_compiler}java/openjdk16/legal/jdk.internal.vm.compiler.management/LICENSE
+${PLIST.internal_vm_compiler}java/openjdk16/legal/jdk.internal.vm.compiler/ADDITIONAL_LICENSE_INFO
+${PLIST.internal_vm_compiler}java/openjdk16/legal/jdk.internal.vm.compiler/ASSEMBLY_EXCEPTION
+${PLIST.internal_vm_compiler}java/openjdk16/legal/jdk.internal.vm.compiler/LICENSE
+java/openjdk16/legal/jdk.jartool/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.jartool/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.jartool/LICENSE
+java/openjdk16/legal/jdk.javadoc/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.javadoc/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.javadoc/LICENSE
+java/openjdk16/legal/jdk.javadoc/jquery.md
+java/openjdk16/legal/jdk.javadoc/jqueryUI.md
+java/openjdk16/legal/jdk.javadoc/jszip.md
+java/openjdk16/legal/jdk.javadoc/pako.md
+java/openjdk16/legal/jdk.jcmd/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.jcmd/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.jcmd/LICENSE
+java/openjdk16/legal/jdk.jconsole/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.jconsole/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.jconsole/LICENSE
+java/openjdk16/legal/jdk.jdeps/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.jdeps/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.jdeps/LICENSE
+java/openjdk16/legal/jdk.jdi/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.jdi/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.jdi/LICENSE
+java/openjdk16/legal/jdk.jdwp.agent/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.jdwp.agent/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.jdwp.agent/LICENSE
+java/openjdk16/legal/jdk.jfr/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.jfr/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.jfr/LICENSE
+java/openjdk16/legal/jdk.jlink/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.jlink/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.jlink/LICENSE
+java/openjdk16/legal/jdk.jshell/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.jshell/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.jshell/LICENSE
+java/openjdk16/legal/jdk.jsobject/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.jsobject/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.jsobject/LICENSE
+java/openjdk16/legal/jdk.jstatd/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.jstatd/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.jstatd/LICENSE
+java/openjdk16/legal/jdk.localedata/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.localedata/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.localedata/LICENSE
+java/openjdk16/legal/jdk.localedata/cldr.md
+java/openjdk16/legal/jdk.localedata/thaidict.md
+java/openjdk16/legal/jdk.management.agent/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.management.agent/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.management.agent/LICENSE
+java/openjdk16/legal/jdk.management.jfr/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.management.jfr/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.management.jfr/LICENSE
+java/openjdk16/legal/jdk.management/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.management/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.management/LICENSE
+java/openjdk16/legal/jdk.naming.dns/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.naming.dns/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.naming.dns/LICENSE
+java/openjdk16/legal/jdk.naming.ldap/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.naming.ldap/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.naming.ldap/LICENSE
+java/openjdk16/legal/jdk.naming.rmi/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.naming.rmi/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.naming.rmi/LICENSE
+java/openjdk16/legal/jdk.net/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.net/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.net/LICENSE
+java/openjdk16/legal/jdk.pack/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.pack/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.pack/LICENSE
+java/openjdk16/legal/jdk.rmic/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.rmic/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.rmic/LICENSE
+java/openjdk16/legal/jdk.scripting.nashorn.shell/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.scripting.nashorn.shell/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.scripting.nashorn.shell/LICENSE
+java/openjdk16/legal/jdk.scripting.nashorn/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.scripting.nashorn/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.scripting.nashorn/LICENSE
+java/openjdk16/legal/jdk.scripting.nashorn/double-conversion.md
+java/openjdk16/legal/jdk.scripting.nashorn/joni.md
+java/openjdk16/legal/jdk.sctp/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.sctp/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.sctp/LICENSE
+java/openjdk16/legal/jdk.security.auth/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.security.auth/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.security.auth/LICENSE
+java/openjdk16/legal/jdk.security.jgss/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.security.jgss/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.security.jgss/LICENSE
+java/openjdk16/legal/jdk.unsupported.desktop/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.unsupported.desktop/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.unsupported.desktop/LICENSE
+java/openjdk16/legal/jdk.unsupported/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.unsupported/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.unsupported/LICENSE
+java/openjdk16/legal/jdk.xml.dom/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.xml.dom/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.xml.dom/LICENSE
+java/openjdk16/legal/jdk.zipfs/ADDITIONAL_LICENSE_INFO
+java/openjdk16/legal/jdk.zipfs/ASSEMBLY_EXCEPTION
+java/openjdk16/legal/jdk.zipfs/LICENSE
+java/openjdk16/lib/classlist
+java/openjdk16/lib/ct.sym
+java/openjdk16/lib/fontconfig.bfc
+java/openjdk16/lib/fontconfig.properties.src
+java/openjdk16/lib/jfr/default.jfc
+java/openjdk16/lib/jfr/profile.jfc
+java/openjdk16/lib/jli/libjli.diz
+java/openjdk16/lib/jli/libjli.so
+java/openjdk16/lib/jrt-fs.jar
+java/openjdk16/lib/jspawnhelper
+java/openjdk16/lib/jspawnhelper.diz
+java/openjdk16/lib/jvm.cfg
+java/openjdk16/lib/libattach.diz
+java/openjdk16/lib/libattach.so
+java/openjdk16/lib/libawt.diz
+java/openjdk16/lib/libawt.so
+java/openjdk16/lib/libawt_headless.diz
+java/openjdk16/lib/libawt_headless.so
+${PLIST.x16}java/openjdk16/lib/libawt_xawt${DBGEXT}
+${PLIST.x16}java/openjdk16/lib/libawt_xawt.so
+java/openjdk16/lib/libdt_socket.diz
+java/openjdk16/lib/libdt_socket.so
+java/openjdk16/lib/libextnet.diz
+java/openjdk16/lib/libextnet.so
+java/openjdk16/lib/libfontmanager.diz
+java/openjdk16/lib/libfontmanager.so
+java/openjdk16/lib/libharfbuzz.diz
+java/openjdk16/lib/libharfbuzz.so
+java/openjdk16/lib/libinstrument.diz
+java/openjdk16/lib/libinstrument.so
+java/openjdk16/lib/libj2gss.diz
+java/openjdk16/lib/libj2gss.so
+java/openjdk16/lib/libj2pcsc.diz
+java/openjdk16/lib/libj2pcsc.so
+java/openjdk16/lib/libj2pkcs16.diz
+java/openjdk16/lib/libj2pkcs16.so
+java/openjdk16/lib/libjaas.diz
+java/openjdk16/lib/libjaas.so
+java/openjdk16/lib/libjava.diz
+java/openjdk16/lib/libjava.so
+java/openjdk16/lib/libjavajpeg.diz
+java/openjdk16/lib/libjavajpeg.so
+java/openjdk16/lib/libjawt.diz
+java/openjdk16/lib/libjawt.so
+java/openjdk16/lib/libjdwp.diz
+java/openjdk16/lib/libjdwp.so
+java/openjdk16/lib/libjimage.diz
+java/openjdk16/lib/libjimage.so
+java/openjdk16/lib/libjsig.diz
+java/openjdk16/lib/libjsig.so
+java/openjdk16/lib/libjsound.diz
+java/openjdk16/lib/libjsound.so
+java/openjdk16/lib/liblcms.diz
+java/openjdk16/lib/liblcms.so
+java/openjdk16/lib/libmanagement.diz
+java/openjdk16/lib/libmanagement.so
+java/openjdk16/lib/libmanagement_agent.diz
+java/openjdk16/lib/libmanagement_agent.so
+java/openjdk16/lib/libmanagement_ext.diz
+java/openjdk16/lib/libmanagement_ext.so
+java/openjdk16/lib/libmlib_image.diz
+java/openjdk16/lib/libmlib_image.so
+java/openjdk16/lib/libnet.diz
+java/openjdk16/lib/libnet.so
+java/openjdk16/lib/libnio.diz
+java/openjdk16/lib/libnio.so
+java/openjdk16/lib/libprefs.diz
+java/openjdk16/lib/libprefs.so
+java/openjdk16/lib/librmi.diz
+java/openjdk16/lib/librmi.so
+${PLIST.x16}java/openjdk16/lib/libsplashscreen${DBGEXT}
+${PLIST.x16}java/openjdk16/lib/libsplashscreen.so
+java/openjdk16/lib/libsunec.diz
+java/openjdk16/lib/libsunec.so
+java/openjdk16/lib/libunpack.diz
+java/openjdk16/lib/libunpack.so
+java/openjdk16/lib/libverify.diz
+java/openjdk16/lib/libverify.so
+java/openjdk16/lib/libzip.diz
+java/openjdk16/lib/libzip.so
+java/openjdk16/lib/modules
+java/openjdk16/lib/psfont.properties.ja
+java/openjdk16/lib/psfontj2d.properties
+java/openjdk16/lib/security/blacklisted.certs
+java/openjdk16/lib/security/cacerts
+java/openjdk16/lib/security/default.policy
+java/openjdk16/lib/security/public_suffix_list.dat
+java/openjdk16/lib/server/Xusage.txt
+java/openjdk16/lib/server/libjsig.so
+java/openjdk16/lib/server/libjvm.diz
+java/openjdk16/lib/server/libjvm.so
+java/openjdk16/lib/src.zip
+java/openjdk16/lib/tzdb.dat
+java/openjdk16/man/man1/jar.1
+java/openjdk16/man/man1/jarsigner.1
+java/openjdk16/man/man1/java.1
+java/openjdk16/man/man1/javac.1
+java/openjdk16/man/man1/javadoc.1
+java/openjdk16/man/man1/javap.1
+java/openjdk16/man/man1/jcmd.1
+java/openjdk16/man/man1/jconsole.1
+java/openjdk16/man/man1/jdb.1
+java/openjdk16/man/man1/jdeps.1
+java/openjdk16/man/man1/jinfo.1
+java/openjdk16/man/man1/jjs.1
+java/openjdk16/man/man1/jmap.1
+java/openjdk16/man/man1/jps.1
+java/openjdk16/man/man1/jrunscript.1
+java/openjdk16/man/man1/jstack.1
+java/openjdk16/man/man1/jstat.1
+java/openjdk16/man/man1/jstatd.1
+java/openjdk16/man/man1/keytool.1
+java/openjdk16/man/man1/pack200.1
+java/openjdk16/man/man1/rmic.1
+java/openjdk16/man/man1/rmid.1
+java/openjdk16/man/man1/rmiregistry.1
+java/openjdk16/man/man1/serialver.1
+java/openjdk16/man/man1/unpack200.1
+java/openjdk16/release
diff --git a/openjdk16/README b/openjdk16/README
new file mode 100644
index 0000000000..28e7552e53
--- /dev/null
+++ b/openjdk16/README
@@ -0,0 +1,37 @@
+This package does not work yet, because the jmod version of the tool
+it builds segfaults frequently.
+
+Traditionally pkgsrc does not allow $ORIGIN and that leads to very
+invasive changes to the jdk. The build system used LD_LIBRARY_PATH
+to be able to execute properly the bootstrap binaries. This interferes
+with the build because the build needs to be able to run binaries it
+just built and with LD_LIBRARY_PATH it will be using the bootstrap
+ones and fail. This is also the reason we can't bootstrap from the
+linux jdk and we need to bootstrap from NetBSD that has the same
+version.
+
+This build uses the linux jdk to bootstrap, and to be able to do
+this in will use $ORIGIN. In my opinion $ORIGIN is a lesser evil
+that $LD_LIBRARY_PATH.
+
+Here are the instructions to build:
+
+Cwrappers filters out $ORIGIN, so the first step is to apply
+cwrappers.diff in this directory and re-install cwrappers. This
+will allow link lines that contain $ORIGIN.
+
+Next install openjdk-bin. This is the latest openjdk-16 running
+under linux emulation. Make sure it works.
+
+Then run make extract. This will extract the openjdk and bootstrap.
+cd $WORKDIR and
+	mv bootstrap{,.old}
+	ln -s /usr/local/java/openjdk-bin bootstrap
+
+then
+export MAKE_JOBS=<something> to make the build go faster.
+
+Then make
+
+If the build stalls because one of the openjdk-bin binaries SEGV'd
+kill the build and restart it.
diff --git a/openjdk16/bootstrap.mk b/openjdk16/bootstrap.mk
new file mode 100644
index 0000000000..1178c870f4
--- /dev/null
+++ b/openjdk16/bootstrap.mk
@@ -0,0 +1,30 @@
+# $NetBSD: bootstrap.mk,v 1.4 2020/05/09 00:55:44 tnn Exp $
+
+
+ONLY_FOR_PLATFORM+=		NetBSD-*-i386
+BOOT.nb7-i386=			bootstrap-jdk-1.11.0.5.8-netbsd-7-i386-20190928.tar.xz
+SITES.${BOOT.nb7-i386}=		${MASTER_SITE_LOCAL:=openjdk11/}
+.if !empty(MACHINE_PLATFORM:MNetBSD-*-i386) || make(distinfo)
+DISTFILES+=			${BOOT.nb7-i386}
+EXTRACT_ONLY+=			${BOOT.nb7-i386}
+.endif
+
+ONLY_FOR_PLATFORM+=		NetBSD-*-x86_64
+BOOT.nb7-amd64=			bootstrap-jdk-1.11.0.5.8-netbsd-7-amd64-20190928.tar.xz
+SITES.${BOOT.nb7-amd64}=	${MASTER_SITE_LOCAL:=openjdk11/}
+.if !empty(MACHINE_PLATFORM:MNetBSD-*-x86_64) || make(distinfo)
+DISTFILES+=			${BOOT.nb7-amd64}
+EXTRACT_ONLY+=			${BOOT.nb7-amd64}
+.endif
+
+ONLY_FOR_PLATFORM+=		NetBSD-*-aarch64
+BOOT.nb9-aarch64=		bootstrap-jdk-1.11.0.7.10-netbsd-9-aarch64-20200509.tar.xz
+SITES.${BOOT.nb9-aarch64}=	${MASTER_SITE_LOCAL:=openjdk11/}
+.if !empty(MACHINE_PLATFORM:MNetBSD-*-aarch64) || make(distinfo)
+DISTFILES+=			${BOOT.nb9-aarch64}
+EXTRACT_ONLY+=			${BOOT.nb9-aarch64}
+.endif
+
+#CONFIGURE_ENV+=		LD_LIBRARY_PATH=${ALT_BOOTDIR}/lib
+
+ALT_BOOTDIR=		${WRKDIR}/bootstrap
diff --git a/openjdk16/buildlink3.mk b/openjdk16/buildlink3.mk
new file mode 100644
index 0000000000..1c536ac9d8
--- /dev/null
+++ b/openjdk16/buildlink3.mk
@@ -0,0 +1,17 @@
+# $NetBSD: buildlink3.mk,v 1.1 2019/10/02 13:10:23 ryoon Exp $
+
+BUILDLINK_TREE+=	openjdk16
+
+.if !defined(OPENJDK16_BUILDLINK3_MK)
+OPENJDK16_BUILDLINK3_MK:=
+
+LIBDIR_ARCH=			${MACHINE_ARCH:S/x86_64/amd64/:S/sparc64/sparcv9/:C/^e?arm.*$/arm/}
+BUILDLINK_LIBDIRS.openjdk16+=	java/openjdk16/jre/lib/${LIBDIR_ARCH}/server
+BUILDLINK_LIBDIRS.openjdk16+=	java/openjdk16/jre/lib/${LIBDIR_ARCH}
+
+BUILDLINK_API_DEPENDS.openjdk16+=	openjdk16>=1.16.0.1
+BUILDLINK_PKGSRCDIR.openjdk16?=		../../lang/openjdk16
+
+.endif	# OPENJDK16_BUILDLINK3_MK
+
+BUILDLINK_TREE+=	-openjdk16
diff --git a/openjdk16/distinfo b/openjdk16/distinfo
new file mode 100644
index 0000000000..e41b9bf6a2
--- /dev/null
+++ b/openjdk16/distinfo
@@ -0,0 +1,32 @@
+$NetBSD: distinfo,v 1.22 2021/02/06 13:02:45 tnn Exp $
+
+SHA1 (bootstrap-jdk-1.11.0.5.8-netbsd-7-amd64-20190928.tar.xz) = d76599619b8bea879b8202b3efc38a82335d2e8c
+RMD160 (bootstrap-jdk-1.11.0.5.8-netbsd-7-amd64-20190928.tar.xz) = a1b998e4e7edfb73ec35b0cc94895d9af16a8cd8
+SHA512 (bootstrap-jdk-1.11.0.5.8-netbsd-7-amd64-20190928.tar.xz) = 6e61996f7e3c3492b0c878644db30d72021dc4096639992e53b4440d4e2e18cd92e5630ecd4600d1917a1e63a7c814b63f74f811a40588febfe19ad8d3208a9d
+Size (bootstrap-jdk-1.11.0.5.8-netbsd-7-amd64-20190928.tar.xz) = 105760636 bytes
+SHA1 (jdk16u-jdk-16.0.1-9-1.tar.gz) = b3087ebd0f74910583e858237ae650a66bf3671e
+RMD160 (jdk16u-jdk-16.0.1-9-1.tar.gz) = 8c1f71379730fdd8dbac1c122066658fd99a6ef6
+SHA512 (jdk16u-jdk-16.0.1-9-1.tar.gz) = 45ae7a7d14d26b85e917d9002fe525a9a3472c8ef2a8ad13d3a78fe0f85c2ebda53fd26a6d395aaed1a1bbff99287db69037410bd15bed61b3484df5a7428f7d
+Size (jdk16u-jdk-16.0.1-9-1.tar.gz) = 104513577 bytes
+SHA1 (patch-make_autoconf_flags-cflags.m4) = e09a84bcdeccb8a55b2de5003e839b7b311c3115
+SHA1 (patch-make_autoconf_lib-bundled.m4) = 93c1a39e50555c7ac1c9a426400640d28c33bb92
+SHA1 (patch-make_autoconf_lib-freetype.m4) = ede1fcaa4551c66c5173be809f8c2eb3eabc140c
+SHA1 (patch-make_autoconf_lib-x11.m4) = fa1834edb7c053735f6e54469fd17cc38854ebf3
+SHA1 (patch-make_common_NativeCompilation.gmk) = 8ecb719835e7c9e058592326a7df499bd3079f8e
+SHA1 (patch-make_data_fontconfig_bsd.fontconfig.properties) = c5ac20f8e250f88ac52ee474b7f6c27fe99beaa2
+SHA1 (patch-make_modules_java.desktop_lib_Awt2dLibraries.gmk) = 45a9556e5ceadd872303ae59862de3c263918c7e
+SHA1 (patch-src-java.base_unix_native_libnio_ch_Net.c) = 902e917d2d50c4e0df486212b27131f5db3f9244
+SHA1 (patch-src_hotspot_os__cpu_bsd__aarch64_bytes__bsd__aarch64.inline.hpp) = e60bf704e81e395baa6d10d6db83287f4c6dd969
+SHA1 (patch-src_hotspot_os__cpu_bsd__aarch64_os__bsd__aarch64.cpp) = 90cea12b7f9fa02fde031bd6e6e59803b52bbb60
+SHA1 (patch-src_hotspot_os__cpu_bsd__aarch64_vm__version__bsd__aarch64.cpp) = 9ee32e8d70d63ce094fb30c03d266f6e0c8c6ed4
+SHA1 (patch-src_hotspot_os_bsd_os__bsd.cpp) = 245ed33c6120b3a64e63f7f181a31e59430de3e3
+SHA1 (patch-src_hotspot_os_bsd_os__perf__bsd.cpp) = b88a7228c4a510e36143ce1807e548e68409abb3
+SHA1 (patch-src_hotspot_os_posix_os__posix.cpp) = 2f1fc1242e88a75634be53b3a17cf3d3ea2309fa
+SHA1 (patch-src_hotspot_share_libadt_dict.cpp) = ec9b96ecb12cebf418717ce433e08f86a34d218c
+SHA1 (patch-src_java.base_bsd_native_libjava_ProcessHandleImpl__bsd.c) = cc296eb7c76a977cc286254485c18a8a58fbec50
+SHA1 (patch-src_java.base_unix_native_libjava_ProcessHandleImpl__unix.c) = bac0de97fa5e8313ff8e8058588424790d69a3e2
+SHA1 (patch-src_java.base_unix_native_libjava_ProcessHandleImpl__unix.h) = 51d40c0811f00623c453c650ca7b93654daccb11
+SHA1 (patch-src_java.base_unix_native_libjsig_jsig.c) = 75d1fd40c3b8b73dff5b0b26f577d8baa0a06f5a
+SHA1 (patch-src_java.desktop_unix_native_common_awt_fontpath.c) = d4fac14d94674520bd49927bb74a7b3c43172445
+SHA1 (patch-src_jdk.jdwp.agent_share_native_libdt_socket_socketTransport.c) = 0524ed8ece98e46dbd56cef39576825606d2aa58
+SHA1 (patch-src_jdk.management_bsd_native_libmanagement__ext_UnixOperatingSystem.c) = 8cfeab2030dd1a8ce7aaa6301bc563a3b5a92538
diff --git a/openjdk16/hacks.mk b/openjdk16/hacks.mk
new file mode 100644
index 0000000000..a6092e570d
--- /dev/null
+++ b/openjdk16/hacks.mk
@@ -0,0 +1,47 @@
+# $NetBSD: hacks.mk,v 1.2 2020/05/03 20:07:34 tnn Exp $
+
+.if !defined(OPENJDK16_HACKS_MK)
+OPENJDK16_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
+
+# Workaround incorrect constant folding of subnormals in javac when the FPU
+# does not handle subnormal arithmetic, like on ARM in Flush-to-zero mode.
+# These workarounds avoid underflow conditions during the bootstrap so the
+# JDK can correctly build itself. Compiling or running programs other than
+# openjdk itself on such hardware may still cause unexpected behaviour.
+#
+
+.if !empty(MACHINE_PLATFORM:MNetBSD-*-*arm*)	|| \
+	!empty(MACHINE_PLATFORM:MNetBSD-*-aarch64)
+PKG_HACKS+=		broken-ieee-floats
+SUBST_CLASSES+=		fpu
+SUBST_STAGE.fpu=	pre-build
+SUBST_MESSAGE.fpu=	Broken FPU detected: applying floating point workarounds
+SUBST_FILES.fpu=	src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Items.java
+SUBST_FILES.fpu+=	src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java
+SUBST_FILES.fpu+=	src/java.base/share/classes/java/lang/Double.java
+SUBST_FILES.fpu+=	src/java.base/share/classes/java/lang/Float.java
+SUBST_FILES.fpu+=	src/java.base/share/classes/java/lang/FdLibm.java
+# Double.java, FdLibm.java: Replace problematic literals with binary representation
+SUBST_SED.fpu+=		-e 's|0x1.0p-1022d*|Double.longBitsToDouble(0x10000000000000L)|ig'		# MIN_NORMAL
+SUBST_SED.fpu+=		-e 's|0x0.0000000000001p-1022d*|Double.longBitsToDouble(0x1L)|ig'		# MIN_VALUE
+# Float.java: Replace problematic literals with binary representation
+SUBST_SED.fpu+=		-e 's|0x1.0p-126f*|Float.intBitsToFloat(0x800000)|ig'		# MIN_NORMAL
+SUBST_SED.fpu+=		-e 's|0x0.000002P-126f*|Float.intBitsToFloat(0x1)|ig'		# MIN_VALUE
+# JavacParser.java: avoid bogus "fp.number.too.small" error parsing literals representing Double.MIN_VALUE
+SUBST_SED.fpu+=		-e 's|n.floatValue() == 0.0f && !isZero(proper)|& \&\& Float.floatToIntBits(n) != 0x1|'
+SUBST_SED.fpu+=		-e 's|n.doubleValue() == 0.0d && !isZero(proper)|& \&\& Double.doubleToLongBits(n) != 0x1L|'
+# Items.java: Avoid invalid constant folding of literal subnormals to positive zero
+SUBST_SED.fpu+=		-e 's|x == 0.0f && 1.0f / x > 0.0f|Float.floatToIntBits(x) == 0x0|g'
+SUBST_SED.fpu+=		-e 's|x == 0.0d && 1.0d / x > 0.0d|Double.doubleToLongBits(x) == 0x0L|g'
+.endif
+
+.endif
diff --git a/openjdk16/old/patch-make_autoconf_flags-cflags.m4 b/openjdk16/old/patch-make_autoconf_flags-cflags.m4
new file mode 100644
index 0000000000..841c4da216
--- /dev/null
+++ b/openjdk16/old/patch-make_autoconf_flags-cflags.m4
@@ -0,0 +1,63 @@
+$NetBSD: patch-make_autoconf_flags-cflags.m4,v 1.1 2019/10/01 12:36:34 tnn Exp $
+
+We prefer to use explicit run paths.
+
+--- make/autoconf/flags-cflags.m4.orig	2021-06-10 07:19:56.609007352 -0400
++++ make/autoconf/flags-cflags.m4	2021-06-10 07:27:30.570412512 -0400
+@@ -38,7 +38,8 @@
+     # Default works for linux, might work on other platforms as well.
+     SHARED_LIBRARY_FLAGS='-shared'
+     SET_EXECUTABLE_ORIGIN='-Wl,-rpath,\$$ORIGIN[$]1'
+-    SET_SHARED_LIBRARY_ORIGIN="-Wl,-z,origin $SET_EXECUTABLE_ORIGIN"
++    SET_EXECUTABLE_ORIGIN='@COMPILER_RPATH_FLAG@@PREFIX@/java/@JAVA_NAME@/lib @COMPILER_RPATH_FLAG@@PREFIX@/java/@JAVA_NAME@/lib/server'
++    SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
+     SET_SHARED_LIBRARY_NAME='-Wl,-soname=[$]1'
+     SET_SHARED_LIBRARY_MAPFILE='-Wl,-version-script=[$]1'
+ 
+@@ -46,7 +47,7 @@
+     if test "x$OPENJDK_TARGET_OS" = xmacosx; then
+       # Linking is different on MacOSX
+       SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0"
+-      SET_EXECUTABLE_ORIGIN='-Wl,-rpath,@loader_path$(or [$]1,/.)'
++      SET_EXECUTABLE_ORIGIN='@COMPILER_RPATH_FLAG@@PREFIX@/java/@JAVA_NAME@/lib @COMPILER_RPATH_FLAG@@PREFIX@/java/@JAVA_NAME@/lib/server'
+       SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
+       SET_SHARED_LIBRARY_NAME='-Wl,-install_name,@rpath/[$]1'
+       SET_SHARED_LIBRARY_MAPFILE='-Wl,-exported_symbols_list,[$]1'
+@@ -54,17 +55,9 @@
+     else
+       # Default works for linux, might work on other platforms as well.
+       SHARED_LIBRARY_FLAGS='-shared'
+-      SET_EXECUTABLE_ORIGIN='-Wl,-rpath,\$$ORIGIN[$]1'
+-      SET_SHARED_LIBRARY_NAME='-Wl,-soname=[$]1'
++      SET_EXECUTABLE_ORIGIN='@COMPILER_RPATH_FLAG@@PREFIX@/java/@JAVA_NAME@/lib @COMPILER_RPATH_FLAG@@PREFIX@/java/@JAVA_NAME@/lib/server'
++      SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
+       SET_SHARED_LIBRARY_MAPFILE='-Wl,-version-script=[$]1'
+-
+-      # arm specific settings
+-      if test "x$OPENJDK_TARGET_CPU" = "xarm"; then
+-        # '-Wl,-z,origin' isn't used on arm.
+-        SET_SHARED_LIBRARY_ORIGIN='-Wl,-rpath,\$$$$ORIGIN[$]1'
+-      else
+-        SET_SHARED_LIBRARY_ORIGIN="-Wl,-z,origin $SET_EXECUTABLE_ORIGIN"
+-      fi
+     fi
+ 
+   elif test "x$TOOLCHAIN_TYPE" = xxlc; then
+@@ -527,7 +520,7 @@
+   # C99 level.
+   if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang || test "x$TOOLCHAIN_TYPE" = xxlc; then
+     # Explicitly set C99. clang and xlclang support the same flag.
+-    LANGSTD_CFLAGS="-std=c99"
++    LANGSTD_CFLAGS="-std=gnu99"
+   elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
+     # MSVC doesn't support C99/C11 explicitly, unless you compile as C++:
+     # LANGSTD_CFLAGS="-TP"
+@@ -540,7 +533,7 @@
+ 
+   # CXXFLAGS C++ language level for all of JDK, including Hotspot.
+   if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang || test "x$TOOLCHAIN_TYPE" = xxlc; then
+-    LANGSTD_CXXFLAGS="-std=c++14"
++    LANGSTD_CXXFLAGS="-std=gnu++14"
+   elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
+     LANGSTD_CXXFLAGS="-std:c++14"
+   else
diff --git a/openjdk16/options.mk b/openjdk16/options.mk
new file mode 100644
index 0000000000..7205abbe1e
--- /dev/null
+++ b/openjdk16/options.mk
@@ -0,0 +1,108 @@
+# $NetBSD: options.mk,v 1.4 2020/05/08 21:17:33 tnn Exp $
+
+PKG_OPTIONS_VAR=		PKG_OPTIONS.openjdk16
+PKG_OPTIONS_OPTIONAL_GROUPS=	variant
+PKG_OPTIONS_GROUP.variant=	jdk-zero-vm
+PKG_SUPPORTED_OPTIONS=		debug dtrace jre-jce x11 static-libstdcpp
+PKG_SUGGESTED_OPTIONS=		jre-jce x11
+
+.if ${MACHINE_ARCH} == "aarch64" || ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64"
+PKG_OPTIONS_GROUP.variant+=	jdk-hotspot-vm
+PKG_SUGGESTED_OPTIONS+=		jdk-hotspot-vm
+.else
+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+=	--x-includes=${X11BASE}/include
+CONFIGURE_ARGS+=	--x-libraries=${X11BASE}/lib
+CONFIGURE_ARGS+=	--disable-headless-only
+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/libXi/buildlink3.mk"
+.include "../../x11/libX11/buildlink3.mk"
+.include "../../x11/libXext/buildlink3.mk"
+BUILDLINK_DEPMETHOD.libXt?=	build
+.include "../../x11/libXt/buildlink3.mk"
+.include "../../x11/libXrender/buildlink3.mk"
+.include "../../x11/libXtst/buildlink3.mk"
+.include "../../x11/libXrandr/buildlink3.mk"
+.else
+CONFIGURE_ARGS+=	--enable-headless-only
+# We apparently still need the Xlib headers to build headless. why?
+BUILDLINK_DEPMETHOD.libX11?=	build
+.include "../../x11/libX11/buildlink3.mk"
+BUILDLINK_DEPMETHOD.libXext?=build
+.include "../../x11/libXext/buildlink3.mk"
+BUILDLINK_DEPMETHOD.libXt?=	build
+.include "../../x11/libXt/buildlink3.mk"
+BUILDLINK_DEPMETHOD.libXrender?=build
+.include "../../x11/libXrender/buildlink3.mk"
+BUILDLINK_DEPMETHOD.libXtst?=build
+.include "../../x11/libXtst/buildlink3.mk"
+BUILDLINK_DEPMETHOD.libXrandr?=build
+.include "../../x11/libXrandr/buildlink3.mk"
+.endif
+
+#
+# Debugging
+#
+.if !empty(PKG_OPTIONS:Mdebug)
+BUILD_DEBUG_LEVEL=	fastdebug
+CONFIGURE_ARGS+=	--with-native-debug-symbols=external
+CONFIGURE_ARGS+=	--enable-debug
+PLIST_SUBST+=		DBGEXT=.debuginfo
+.else
+BUILD_DEBUG_LEVEL=	release
+CONFIGURE_ARGS+=	--with-native-debug-symbols=zipped
+PLIST_SUBST+=		DBGEXT=.diz
+.endif
+
+.if !empty(PKG_OPTIONS:Mdtrace)
+CONFIGURE_ARGS+=	--enable-dtrace=yes
+.else
+CONFIGURE_ARGS+=	--enable-dtrace=no
+.endif
+
+#
+# static libstdc++ and libgcc
+#
+# On NetBSD you need to use libstdc++_pic.a when creating a shared library,
+# but I don't think there is any easy way to tell the compiler to do this.
+# Also, -static-libgcc doesn't work because libpthread needs dynamic
+# linkage of libgcc.
+.if !empty(PKG_OPTIONS:Mstatic-libstdcpp)
+.  if ${OPSYS} == "NetBSD" && !empty(PKGSRC_COMPILER:Mgcc)
+BUILDLINK_TRANSFORM+=	rm:-static-libgcc
+.  endif
+.else
+CONFIGURE_ARGS+=	--with-stdc++lib=dynamic
+.endif
+
+#
+# Build variant. Zero VM builds a portable JVM without assembly optimization.
+#
+.if !empty(PKG_OPTIONS:Mjdk-zero-vm)
+BUILD_VARIANT=		zero
+.include "../../devel/libffi/buildlink3.mk"
+.elif !empty(PKG_OPTIONS:Mjdk-hotspot-vm)
+BUILD_VARIANT=		server
+.endif
+CONFIGURE_ARGS+=	--with-jvm-variants=${BUILD_VARIANT}
diff --git a/openjdk16/patches/patch-make_autoconf_flags-cflags.m4 b/openjdk16/patches/patch-make_autoconf_flags-cflags.m4
new file mode 100644
index 0000000000..2b2d6ce1b8
--- /dev/null
+++ b/openjdk16/patches/patch-make_autoconf_flags-cflags.m4
@@ -0,0 +1,38 @@
+$NetBSD: patch-make_autoconf_flags-cflags.m4,v 1.1 2019/10/01 12:36:34 tnn Exp $
+
+We prefer to use explicit run paths.
+
+--- make/autoconf/flags-cflags.m4.orig	2021-06-10 07:19:56.609007352 -0400
++++ make/autoconf/flags-cflags.m4	2021-06-10 07:27:30.570412512 -0400
+@@ -58,13 +58,6 @@
+       SET_SHARED_LIBRARY_NAME='-Wl,-soname=[$]1'
+       SET_SHARED_LIBRARY_MAPFILE='-Wl,-version-script=[$]1'
+ 
+-      # arm specific settings
+-      if test "x$OPENJDK_TARGET_CPU" = "xarm"; then
+-        # '-Wl,-z,origin' isn't used on arm.
+-        SET_SHARED_LIBRARY_ORIGIN='-Wl,-rpath,\$$$$ORIGIN[$]1'
+-      else
+-        SET_SHARED_LIBRARY_ORIGIN="-Wl,-z,origin $SET_EXECUTABLE_ORIGIN"
+-      fi
+     fi
+ 
+   elif test "x$TOOLCHAIN_TYPE" = xxlc; then
+@@ -527,7 +520,7 @@
+   # C99 level.
+   if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang || test "x$TOOLCHAIN_TYPE" = xxlc; then
+     # Explicitly set C99. clang and xlclang support the same flag.
+-    LANGSTD_CFLAGS="-std=c99"
++    LANGSTD_CFLAGS="-std=gnu99"
+   elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
+     # MSVC doesn't support C99/C11 explicitly, unless you compile as C++:
+     # LANGSTD_CFLAGS="-TP"
+@@ -540,7 +533,7 @@
+ 
+   # CXXFLAGS C++ language level for all of JDK, including Hotspot.
+   if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang || test "x$TOOLCHAIN_TYPE" = xxlc; then
+-    LANGSTD_CXXFLAGS="-std=c++14"
++    LANGSTD_CXXFLAGS="-std=gnu++14"
+   elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
+     LANGSTD_CXXFLAGS="-std:c++14"
+   else
diff --git a/openjdk16/patches/patch-make_autoconf_lib-bundled.m4 b/openjdk16/patches/patch-make_autoconf_lib-bundled.m4
new file mode 100644
index 0000000000..aa0236f1ce
--- /dev/null
+++ b/openjdk16/patches/patch-make_autoconf_lib-bundled.m4
@@ -0,0 +1,16 @@
+$NetBSD: patch-make_autoconf_lib-bundled.m4,v 1.1 2019/10/01 12:36:34 tnn Exp $
+
+Add rpath for zlib.
+
+--- make/autoconf/lib-bundled.m4.orig	2021-04-23 22:52:34.000000000 -0400
++++ make/autoconf/lib-bundled.m4	2021-06-10 07:19:56.667130306 -0400
+@@ -261,7 +261,8 @@
+   if test "x$USE_EXTERNAL_LIBZ" = "xfalse"; then
+     LIBZ_CFLAGS="$LIBZ_CFLAGS -I$TOPDIR/src/java.base/share/native/libzip/zlib"
+   else
+-    LIBZ_LIBS="-lz"
++    LIBZ_CFLAGS="-I@BUILDLINK_PREFIX.zlib@/include"
++    LIBZ_LIBS="@COMPILER_RPATH_FLAG@@BUILDLINK_PREFIX.zlib@/lib -L@BUILDLINK_PREFIX.zlib@/lib -lz"
+   fi
+ 
+   AC_SUBST(USE_EXTERNAL_LIBZ)
diff --git a/openjdk16/patches/patch-make_autoconf_lib-freetype.m4 b/openjdk16/patches/patch-make_autoconf_lib-freetype.m4
new file mode 100644
index 0000000000..660d055d35
--- /dev/null
+++ b/openjdk16/patches/patch-make_autoconf_lib-freetype.m4
@@ -0,0 +1,15 @@
+$NetBSD: patch-make_autoconf_lib-freetype.m4,v 1.1 2019/10/01 12:36:34 tnn Exp $
+
+Add rpath for freetype.
+
+--- make/autoconf/lib-freetype.m4.orig	2021-06-10 07:19:56.695594572 -0400
++++ make/autoconf/lib-freetype.m4	2021-06-10 13:08:49.396360360 -0400
+@@ -221,7 +221,7 @@
+     fi
+ 
+     if test "x$FREETYPE_LIBS" = "x" ; then
+-      FREETYPE_LIBS="-L$FREETYPE_LIB_PATH -l$FREETYPE_BASE_NAME"
++      FREETYPE_LIBS="@COMPILER_RPATH_FLAG@$FREETYPE_LIB_PATH -L$FREETYPE_LIB_PATH -l$FREETYPE_BASE_NAME"
+     fi
+   fi
+ 
diff --git a/openjdk16/patches/patch-make_autoconf_lib-x11.m4 b/openjdk16/patches/patch-make_autoconf_lib-x11.m4
new file mode 100644
index 0000000000..90f6ee7fbd
--- /dev/null
+++ b/openjdk16/patches/patch-make_autoconf_lib-x11.m4
@@ -0,0 +1,15 @@
+$NetBSD: patch-make_autoconf_lib-x11.m4,v 1.1 2019/10/01 12:36:34 tnn Exp $
+
+Add rpath for X11.
+
+--- make/autoconf/lib-x11.m4.orig	2021-06-10 07:19:56.734306890 -0400
++++ make/autoconf/lib-x11.m4	2021-06-10 13:10:09.531100936 -0400
+@@ -88,6 +88,8 @@
+       AC_MSG_ERROR([Could not find X11 libraries. $HELP_MSG])
+     fi
+ 
++    X_LIBS="@COMPILER_RPATH_FLAG@${x_libraries} ${X_LIBS}"
++
+     AC_LANG_PUSH(C)
+     OLD_CFLAGS="$CFLAGS"
+     CFLAGS="$CFLAGS $SYSROOT_CFLAGS $X_CFLAGS"
diff --git a/openjdk16/patches/patch-make_common_NativeCompilation.gmk b/openjdk16/patches/patch-make_common_NativeCompilation.gmk
new file mode 100644
index 0000000000..9d3558eb9e
--- /dev/null
+++ b/openjdk16/patches/patch-make_common_NativeCompilation.gmk
@@ -0,0 +1,16 @@
+$NetBSD: patch-make_common_NativeCompilation.gmk,v 1.1 2019/10/01 12:36:34 tnn Exp $
+
+Disable PaX mprotect.
+
+--- make/common/NativeCompilation.gmk.orig	2021-06-10 13:46:53.579004141 -0400
++++ make/common/NativeCompilation.gmk	2021-06-10 13:47:43.046484991 -0400
+@@ -1174,6 +1174,9 @@
+ 		    $$($1_MT) -nologo -manifest $$($1_MANIFEST) -identity:"$$($1_NAME).exe, version=$$($1_MANIFEST_VERSION)" -outputresource:$$@;#1
+                   endif
+                 endif
++                ifeq ($(OPENJDK_TARGET_OS_ENV), bsd.netbsd)
++	          /usr/sbin/paxctl +m $$@
++                endif
+                 # This only works if the openjdk_codesign identity is present on the system. Let
+                 # silently fail otherwise.
+                 ifneq ($(CODESIGN), )
diff --git a/openjdk16/patches/patch-make_data_fontconfig_bsd.fontconfig.properties b/openjdk16/patches/patch-make_data_fontconfig_bsd.fontconfig.properties
new file mode 100644
index 0000000000..439cd93ba5
--- /dev/null
+++ b/openjdk16/patches/patch-make_data_fontconfig_bsd.fontconfig.properties
@@ -0,0 +1,53 @@
+$NetBSD: patch-make_data_fontconfig_bsd.fontconfig.properties,v 1.1 2019/10/01 12:36:34 tnn Exp $
+
+Use pkgsrc fontconfig.
+
+--- make/data/fontconfig/bsd.fontconfig.properties.orig	2021-04-23 22:52:34.000000000 -0400
++++ make/data/fontconfig/bsd.fontconfig.properties	2021-06-10 07:19:56.800902247 -0400
+@@ -167,26 +167,26 @@
+ # 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/openjdk16/patches/patch-make_modules_java.desktop_lib_Awt2dLibraries.gmk b/openjdk16/patches/patch-make_modules_java.desktop_lib_Awt2dLibraries.gmk
new file mode 100644
index 0000000000..d974e26743
--- /dev/null
+++ b/openjdk16/patches/patch-make_modules_java.desktop_lib_Awt2dLibraries.gmk
@@ -0,0 +1,17 @@
+$NetBSD: patch-make_lib_Awt2dLibraries.gmk,v 1.1 2019/10/03 16:57:20 tnn Exp $
+
+bundled harfbuzz code needs to use -std=c++11 for static_assert().
+But we can't add it to USE_LANGUAGES because the rest of the JDK
+contains legacy code that requires -std=gnu++98.
+
+--- make/modules/java.desktop/lib/Awt2dLibraries.gmk.orig	2021-04-23 22:52:34.000000000 -0400
++++ make/modules/java.desktop/lib/Awt2dLibraries.gmk	2021-06-10 13:15:59.080512977 -0400
+@@ -568,7 +568,7 @@
+         AccelGlyphCache.c, \
+     TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
+     CFLAGS := $(CFLAGS_JDKLIB) $(LIBFONTMANAGER_CFLAGS), \
+-    CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBFONTMANAGER_CFLAGS), \
++    CXXFLAGS := $(CXXFLAGS_JDKLIB) -std=gnu++11 $(LIBFONTMANAGER_CFLAGS), \
+     OPTIMIZATION := $(LIBFONTMANAGER_OPTIMIZATION), \
+     CFLAGS_windows = -DCC_NOEX, \
+     EXTRA_HEADER_DIRS := $(LIBFONTMANAGER_EXTRA_HEADER_DIRS), \
diff --git a/openjdk16/patches/patch-src-java.base_unix_native_libnio_ch_Net.c b/openjdk16/patches/patch-src-java.base_unix_native_libnio_ch_Net.c
new file mode 100644
index 0000000000..210bac3798
--- /dev/null
+++ b/openjdk16/patches/patch-src-java.base_unix_native_libnio_ch_Net.c
@@ -0,0 +1,69 @@
+# $NetBSD$
+
+disable multicasting support for now.
+
+--- src/java.base/unix/native/libnio/ch/Net.c.orig	2021-04-23 22:52:34.000000000 -0400
++++ src/java.base/unix/native/libnio/ch/Net.c	2021-06-10 22:03:29.665580058 -0400
+@@ -93,6 +93,7 @@
+ #define COPY_INET6_ADDRESS(env, source, target) \
+     (*env)->GetByteArrayRegion(env, source, 0, 16, target)
+ 
++#if !defined(_ALLBSD_SOURCE) || defined(__OpenBSD__)
+ /*
+  * Copy IPv6 group, interface index, and IPv6 source address
+  * into group_source_req structure.
+@@ -112,6 +113,7 @@
+     sin6->sin6_family = AF_INET6;
+     COPY_INET6_ADDRESS(env, source, (jbyte *)&(sin6->sin6_addr));
+ }
++#endif
+ 
+ #ifdef _AIX
+ 
+@@ -600,6 +602,10 @@
+ Java_sun_nio_ch_Net_joinOrDrop4(JNIEnv *env, jobject this, jboolean join, jobject fdo,
+                                 jint group, jint interf, jint source)
+ {
++#if defined(_ALLBSD_SOURCE)
++    /* no IPv4 exclude-mode filtering for now */
++    return IOS_UNAVAILABLE;
++#else
+     struct ip_mreq mreq;
+     struct ip_mreq_source mreq_source;
+     int opt, n, optlen;
+@@ -642,6 +648,7 @@
+         handleSocketError(env, errno);
+     }
+     return 0;
++#endif
+ }
+ 
+ JNIEXPORT jint JNICALL
+@@ -683,7 +690,9 @@
+                                 jbyteArray group, jint index, jbyteArray source)
+ {
+     struct ipv6_mreq mreq6;
++#if !defined(_ALLBSD_SOURCE) || defined(__OpenBSD__)
+     struct group_source_req req;
++#endif
+     int opt, n, optlen;
+     void* optval;
+ 
+@@ -694,7 +703,7 @@
+         optval = (void*)&mreq6;
+         optlen = sizeof(mreq6);
+     } else {
+-#ifdef __APPLE__
++#if defined(_ALLBSD_SOURCE) && !defined(__OpenBSD__)
+         /* no IPv6 include-mode filtering for now */
+         return IOS_UNAVAILABLE;
+ #else
+@@ -725,7 +734,7 @@
+ Java_sun_nio_ch_Net_blockOrUnblock6(JNIEnv *env, jobject this, jboolean block, jobject fdo,
+                                     jbyteArray group, jint index, jbyteArray source)
+ {
+-#if defined(_ALLBSD_SOURCE)
++#if defined(_ALLBSD_SOURCE) && !defined(__OpenBSD__)
+     /* no IPv6 exclude-mode filtering for now */
+     return IOS_UNAVAILABLE;
+ #else
diff --git a/openjdk16/patches/patch-src_hotspot_os__cpu_bsd__aarch64_bytes__bsd__aarch64.inline.hpp b/openjdk16/patches/patch-src_hotspot_os__cpu_bsd__aarch64_bytes__bsd__aarch64.inline.hpp
new file mode 100644
index 0000000000..87dd8ab64e
--- /dev/null
+++ b/openjdk16/patches/patch-src_hotspot_os__cpu_bsd__aarch64_bytes__bsd__aarch64.inline.hpp
@@ -0,0 +1,17 @@
+$NetBSD: patch-src_hotspot_os__cpu_bsd__aarch64_bytes__bsd__aarch64.inline.hpp,v 1.1 2019/12/04 12:19:25 tnn Exp $
+
+NetBSD/evbarm-aarch64 support
+
+--- src/hotspot/os_cpu/bsd_aarch64/bytes_bsd_aarch64.inline.hpp.orig	2021-04-23 22:52:34.000000000 -0400
++++ src/hotspot/os_cpu/bsd_aarch64/bytes_bsd_aarch64.inline.hpp	2021-06-10 13:20:31.700747930 -0400
+@@ -34,6 +34,10 @@
+   #define bswap_16(x) swap16(x)
+   #define bswap_32(x) swap32(x)
+   #define bswap_64(x) swap64(x)
++#elif defined(__NetBSD__)
++#  define bswap_16(x) bswap16(x)
++#  define bswap_32(x) bswap32(x)
++#  define bswap_64(x) bswap64(x)
+ #endif
+ 
+ // Efficient swapping of data bytes from Java byte
diff --git a/openjdk16/patches/patch-src_hotspot_os__cpu_bsd__aarch64_os__bsd__aarch64.cpp b/openjdk16/patches/patch-src_hotspot_os__cpu_bsd__aarch64_os__bsd__aarch64.cpp
new file mode 100644
index 0000000000..c0d986e3e0
--- /dev/null
+++ b/openjdk16/patches/patch-src_hotspot_os__cpu_bsd__aarch64_os__bsd__aarch64.cpp
@@ -0,0 +1,70 @@
+$NetBSD: patch-src_hotspot_os__cpu_bsd__aarch64_os__bsd__aarch64.cpp,v 1.1 2019/12/04 12:19:25 tnn Exp $
+
+NetBSD/evbarm-aarch64 support
+
+--- src/hotspot/os_cpu/bsd_aarch64/os_bsd_aarch64.cpp.orig	2021-04-23 22:52:34.000000000 -0400
++++ src/hotspot/os_cpu/bsd_aarch64/os_bsd_aarch64.cpp	2021-06-10 13:21:44.742107421 -0400
+@@ -104,6 +104,8 @@
+   return (address)uc->uc_mcontext.mc_gpregs.gp_elr;
+ #elif defined(__OpenBSD__)
+   return (address)uc->sc_elr;
++#elif defined(__NetBSD__)
++  return (address)uc->uc_mcontext.__gregs[_REG_ELR];
+ #endif
+ }
+ 
+@@ -112,6 +114,8 @@
+   uc->uc_mcontext.mc_gpregs.gp_elr = (intptr_t)pc;
+ #elif defined(__OpenBSD__)
+   uc->sc_elr = (unsigned long)pc;
++#elif defined(__NetBSD__)
++  uc->uc_mcontext.__gregs[_REG_ELR] = (__greg_t)pc;
+ #endif
+ }
+ 
+@@ -120,6 +124,8 @@
+   return (intptr_t*)uc->uc_mcontext.mc_gpregs.gp_sp;
+ #elif defined(__OpenBSD__)
+   return (intptr_t*)uc->sc_sp;
++#elif defined(__NetBSD__)
++  return (intptr_t*)uc->uc_mcontext.__gregs[_REG_SP];
+ #endif
+ }
+ 
+@@ -128,6 +134,8 @@
+   return (intptr_t*)uc->uc_mcontext.mc_gpregs.gp_x[REG_FP];
+ #elif defined(__OpenBSD__)
+   return (intptr_t*)uc->sc_x[REG_FP];
++#elif defined(__NetBSD__)
++  return (intptr_t*)uc->uc_mcontext.__gregs[_REG_FP];
+ #endif
+ }
+ 
+@@ -170,6 +178,9 @@
+ #elif defined(__OpenBSD__)
+       address pc = (address)(uc->sc_lr
+                          - NativeInstruction::instruction_size);
++#elif defined(__NetBSD__)
++      address pc = (address)(uc->uc_mcontext.__gregs[_REG_LR]
++                         - NativeInstruction::instruction_size);
+ #endif
+   return frame(sp, fp, pc);
+ }
+@@ -402,6 +413,8 @@
+     print_location(st, uc->uc_mcontext.mc_gpregs.gp_x[r]);
+ #elif defined(__OpenBSD__)
+     print_location(st, uc->sc_x[r]);
++#elif defined(__NetBSD__)
++    print_location(st, uc->uc_mcontext.__gregs[r]);
+ #endif
+   }
+   st->cr();
+@@ -438,6 +451,8 @@
+     st->print_cr(  "R%d=" INTPTR_FORMAT, r, (uintptr_t)uc->uc_mcontext.mc_gpregs.gp_x[r]);
+ #elif defined(__OpenBSD__)
+     st->print_cr(  "R%d=" INTPTR_FORMAT, r, (uintptr_t)uc->sc_x[r]);
++#elif defined(__NetBSD__)
++    st->print_cr(  "R%d=" INTPTR_FORMAT, r, (uintptr_t)uc->uc_mcontext.__gregs[r]);
+ #endif
+   st->cr();
+ }
diff --git a/openjdk16/patches/patch-src_hotspot_os__cpu_bsd__aarch64_vm__version__bsd__aarch64.cpp b/openjdk16/patches/patch-src_hotspot_os__cpu_bsd__aarch64_vm__version__bsd__aarch64.cpp
new file mode 100644
index 0000000000..851f4c1aa8
--- /dev/null
+++ b/openjdk16/patches/patch-src_hotspot_os__cpu_bsd__aarch64_vm__version__bsd__aarch64.cpp
@@ -0,0 +1,15 @@
+$NetBSD: patch-src_hotspot_os__cpu_bsd__aarch64_vm__version__bsd__aarch64.cpp,v 1.1 2019/12/04 12:19:25 tnn Exp $
+
+TODO processor feature detection for aarch64
+
+--- src/hotspot/os_cpu/bsd_aarch64/vm_version_bsd_aarch64.cpp.orig	2021-04-23 22:52:34.000000000 -0400
++++ src/hotspot/os_cpu/bsd_aarch64/vm_version_bsd_aarch64.cpp	2021-06-10 13:23:39.869832843 -0400
+@@ -252,7 +252,7 @@
+ }
+ 
+ void VM_Version::get_os_cpu_info() {
+-#ifdef __OpenBSD__
++#if defined(__OpenBSD__) || defined(__NetBSD__)
+   // READ_SPECIALREG is not available from userland on OpenBSD.
+   // Hardcode these values to the "lowest common denominator"
+   _cpu = CPU_IMPL_ARM;
diff --git a/openjdk16/patches/patch-src_hotspot_os_bsd_os__bsd.cpp b/openjdk16/patches/patch-src_hotspot_os_bsd_os__bsd.cpp
new file mode 100644
index 0000000000..31e463d054
--- /dev/null
+++ b/openjdk16/patches/patch-src_hotspot_os_bsd_os__bsd.cpp
@@ -0,0 +1,34 @@
+$NetBSD: patch-src_hotspot_os_bsd_os__bsd.cpp,v 1.4 2020/04/16 11:51:26 ryoon Exp $
+
+--- src/hotspot/os/bsd/os_bsd.cpp.orig	2021-04-23 22:52:34.000000000 -0400
++++ src/hotspot/os/bsd/os_bsd.cpp	2021-06-10 13:28:51.604368642 -0400
+@@ -114,6 +114,11 @@
+   #include <link_elf.h>
+ #endif
+ 
++#ifdef __NetBSD__
++  #include <lwp.h>
++  #include <link_elf.h>
++#endif
++
+ #ifdef __APPLE__
+   #include <mach-o/dyld.h>
+   // needed by current_stack_region() workaround for Mavericks
+@@ -385,7 +390,7 @@
+     #ifdef __APPLE__
+       #define DEFAULT_LIBPATH "/lib:/usr/lib"
+     #elif defined(__NetBSD__)
+-      #define DEFAULT_LIBPATH "/usr/lib:/usr/pkg/lib"
++      #define DEFAULT_LIBPATH "@PREFIX@/lib/jni:@PREFIX@/lib:/lib:/usr/lib"
+     #else
+       #define DEFAULT_LIBPATH "/usr/lib:/usr/local/lib"
+     #endif
+@@ -2387,7 +2392,7 @@
+ #elif defined(__FreeBSD__) || defined(__OpenBSD__)
+     pthread_set_name_np(pthread_self(), name);
+ #elif defined(__NetBSD__)
+-    pthread_setname_np(pthread_self(), "%s", name);
++    pthread_setname_np(pthread_self(), "%s", (char *)(intptr_t)name);
+ #endif
+   }
+ }
diff --git a/openjdk16/patches/patch-src_hotspot_os_bsd_os__perf__bsd.cpp b/openjdk16/patches/patch-src_hotspot_os_bsd_os__perf__bsd.cpp
new file mode 100644
index 0000000000..737e5320c9
--- /dev/null
+++ b/openjdk16/patches/patch-src_hotspot_os_bsd_os__perf__bsd.cpp
@@ -0,0 +1,39 @@
+$NetBSD: patch-src_hotspot_os_bsd_os__perf__bsd.cpp,v 1.2 2019/11/03 00:37:28 tnn Exp $
+
+KERN_PROC_PATHNAME is available from NetBSD>=7.99.23
+
+--- src/hotspot/os/bsd/os_perf_bsd.cpp.orig	2021-04-23 22:52:34.000000000 -0400
++++ src/hotspot/os/bsd/os_perf_bsd.cpp	2021-06-10 13:29:48.393031130 -0400
+@@ -33,6 +33,12 @@
+   #import <libproc.h>
+   #include <mach/mach.h>
+   #include <mach/task_info.h>
++#elif defined(__NetBSD__)
++  #include <sched.h>
++  #include <sys/resource.h>
++  #include <uvm/uvm_extern.h>
++  #define NET_RT_IFLIST2 NET_RT_IFLIST
++  #define RTM_IFINFO2    RTM_IFINFO
+ #else
+   #include <sys/user.h>
+   #include <sys/sched.h>
+@@ -40,9 +46,6 @@
+   #define NET_RT_IFLIST2 NET_RT_IFLIST
+   #define RTM_IFINFO2    RTM_IFINFO
+ #endif
+-#ifdef __NetBSD__
+-  #include <uvm/uvm_extern.h>
+-#endif
+ #include <sys/time.h>
+ #include <sys/sysctl.h>
+ #include <sys/socket.h>
+@@ -856,6 +859,9 @@
+ 
+   for (int i = 0; i < pid_count; i++) {
+     // Executable path
++#if !defined(KERN_PROC_PATHNAME)
++#define KERN_PROC_PATHNAME 5
++#endif
+     int pmib[] = { CTL_KERN, KERN_PROC_ARGS, lproc[i].p_pid, KERN_PROC_PATHNAME };
+     const u_int pmiblen = sizeof(pmib) / sizeof(pmib[0]);
+     char pbuf[PATH_MAX];
diff --git a/openjdk16/patches/patch-src_hotspot_os_posix_os__posix.cpp b/openjdk16/patches/patch-src_hotspot_os_posix_os__posix.cpp
new file mode 100644
index 0000000000..ddf4f424b3
--- /dev/null
+++ b/openjdk16/patches/patch-src_hotspot_os_posix_os__posix.cpp
@@ -0,0 +1,24 @@
+$NetBSD: patch-src_hotspot_os_posix_os__posix.cpp,v 1.1 2019/10/01 12:36:34 tnn Exp $
+
+Something is wrong with pthread_condattr_setclock.
+We hit assertions in fastdebug builds.
+Disable pthread_condattr_setclock for now.
+
+--- src/hotspot/os/posix/os_posix.cpp.orig	2021-04-23 22:52:34.000000000 -0400
++++ src/hotspot/os/posix/os_posix.cpp	2021-06-10 13:30:56.931826833 -0400
+@@ -1238,6 +1238,7 @@
+ 
+   // 2. Check for pthread_condattr_setclock support.
+ 
++#if !defined(__NetBSD__)
+   // libpthread is already loaded.
+   int (*condattr_setclock_func)(pthread_condattr_t*, clockid_t) =
+     (int (*)(pthread_condattr_t*, clockid_t))dlsym(RTLD_DEFAULT,
+@@ -1245,6 +1246,7 @@
+   if (condattr_setclock_func != NULL) {
+     _pthread_condattr_setclock = condattr_setclock_func;
+   }
++#endif
+ 
+   // Now do general initialization.
+ 
diff --git a/openjdk16/patches/patch-src_hotspot_share_libadt_dict.cpp b/openjdk16/patches/patch-src_hotspot_share_libadt_dict.cpp
new file mode 100644
index 0000000000..22e3965d02
--- /dev/null
+++ b/openjdk16/patches/patch-src_hotspot_share_libadt_dict.cpp
@@ -0,0 +1,29 @@
+$NetBSD: patch-src_hotspot_share_libadt_dict.cpp,v 1.1 2020/03/21 10:46:57 rillig Exp $
+
+Fix for -Werror=char-subscripts:
+
+> dict.cpp:15:28: warning: array subscript has type ‘char’ [-Wchar-subscripts]
+>      sum += c + (c<<shft[k++]);  // Universal hash function
+>                             ^
+> dict.cpp:17:27: warning: array subscript has type ‘char’ [-Wchar-subscripts]
+>    return (int)((sum+xsum[k]) >> 1); // Hash key, un-modulo'd table size
+
+The variable k only ever gets values between 0 and MAXID - 1, which is
+20. Therefore changing the type doesn't affect the result of the
+function. At optimization levels > 0, GCC 5.5.0 compiles to the same
+code, no matter whether the variable type is signed char or unsigned int.
+
+https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94247
+
+--- src/hotspot/share/libadt/dict.cpp.orig	2021-04-23 22:52:34.000000000 -0400
++++ src/hotspot/share/libadt/dict.cpp	2021-06-10 13:36:07.173761696 -0400
+@@ -235,7 +235,8 @@
+ // limited to MAXID characters in length.  Experimental evidence on 150K of
+ // C text shows excellent spreading of values for any size hash table.
+ int hashstr(const void* t) {
+-  char c, k = 0;
++  char c = 0;
++  unsigned char k = 0;
+   int32_t sum = 0;
+   const char* s = (const char*)t;
+ 
diff --git a/openjdk16/patches/patch-src_java.base_bsd_native_libjava_ProcessHandleImpl__bsd.c b/openjdk16/patches/patch-src_java.base_bsd_native_libjava_ProcessHandleImpl__bsd.c
new file mode 100644
index 0000000000..892366c4b7
--- /dev/null
+++ b/openjdk16/patches/patch-src_java.base_bsd_native_libjava_ProcessHandleImpl__bsd.c
@@ -0,0 +1,35 @@
+$NetBSD: patch-src_java.base_bsd_native_libjava_ProcessHandleImpl__bsd.c,v 1.1 2019/10/01 12:36:34 tnn Exp $
+
+waitid(2) is available in NetBSD
+KERN_PROC_PATHNAME is available in NetBSD
+
+--- src/java.base/bsd/native/libjava/ProcessHandleImpl_bsd.c.orig	2019-09-19 12:22:38.000000000 +0000
++++ src/java.base/bsd/native/libjava/ProcessHandleImpl_bsd.c
+@@ -46,7 +46,7 @@
+ #include <sys/user.h>  // For kinfo_proc
+ #endif
+ 
+-#if defined(__OpenBSD__)
++#if defined(__OpenBSD__) || defined(__NetBSD__)
+ #include <sys/event.h> // For kqueue
+ #include <sys/time.h>  // For kqueue
+ #endif
+@@ -413,6 +413,9 @@ void os_getCmdlineAndUserInfo(JNIEnv *en
+     size = sizeof(cmd);
+     mib[0] = CTL_KERN;
+     mib[1] = KERN_PROC;
++#if defined(__NetBSD__) && !defined(KERN_PROC_PATHAME)
++#define KERN_PROC_PATHNAME 5
++#endif
+     mib[2] = KERN_PROC_PATHNAME;
+     mib[3] = pid;
+     if (sysctl(mib, 4, cmd, &size, NULL, 0) == -1) {
+@@ -488,7 +491,7 @@ void os_getCmdlineAndUserInfo(JNIEnv *en
+ #endif
+ }
+ 
+-#if defined(__OpenBSD__)
++#if defined(__OpenBSD__) || defined(__NetBSD__)
+ int os_waitForProcessExitNoReap(pid_t pid) {
+     int kq, ret;
+     struct kevent evSet;
diff --git a/openjdk16/patches/patch-src_java.base_unix_native_libjava_ProcessHandleImpl__unix.c b/openjdk16/patches/patch-src_java.base_unix_native_libjava_ProcessHandleImpl__unix.c
new file mode 100644
index 0000000000..f29a01cb40
--- /dev/null
+++ b/openjdk16/patches/patch-src_java.base_unix_native_libjava_ProcessHandleImpl__unix.c
@@ -0,0 +1,15 @@
+$NetBSD: patch-src_java.base_unix_native_libjava_ProcessHandleImpl__unix.c,v 1.1 2019/10/01 12:36:34 tnn Exp $
+
+waitid(2) is available in NetBSD>
+
+--- src/java.base/unix/native/libjava/ProcessHandleImpl_unix.c.orig	2021-04-23 22:52:34.000000000 -0400
++++ src/java.base/unix/native/libjava/ProcessHandleImpl_unix.c	2021-06-10 13:33:38.712784156 -0400
+@@ -252,7 +252,7 @@
+             return status;
+         }
+      } else {
+-#if defined(__OpenBSD__)
++#if defined(__OpenBSD__) || defined(__NetBSD__)
+         return os_waitForProcessExitNoReap(pid);
+ #else
+         /*
diff --git a/openjdk16/patches/patch-src_java.base_unix_native_libjava_ProcessHandleImpl__unix.h b/openjdk16/patches/patch-src_java.base_unix_native_libjava_ProcessHandleImpl__unix.h
new file mode 100644
index 0000000000..afa510b41b
--- /dev/null
+++ b/openjdk16/patches/patch-src_java.base_unix_native_libjava_ProcessHandleImpl__unix.h
@@ -0,0 +1,14 @@
+$NetBSD: patch-src_java.base_unix_native_libjava_ProcessHandleImpl__unix.h,v 1.1 2019/10/01 12:36:34 tnn Exp $
+
+waitid(2) is available in NetBSD
+
+--- src/java.base/unix/native/libjava/ProcessHandleImpl_unix.h.orig	2019-09-19 12:22:38.000000000 +0000
++++ src/java.base/unix/native/libjava/ProcessHandleImpl_unix.h
+@@ -75,6 +75,6 @@ extern void unix_fillArgArray(JNIEnv *en
+ 
+ extern void os_initNative(JNIEnv *env, jclass clazz);
+ 
+-#if defined(__OpenBSD__)
++#if defined(__OpenBSD__) || defined(__NetBSD__)
+ extern int os_waitForProcessExitNoReap(pid_t pid);
+ #endif
diff --git a/openjdk16/patches/patch-src_java.base_unix_native_libjsig_jsig.c b/openjdk16/patches/patch-src_java.base_unix_native_libjsig_jsig.c
new file mode 100644
index 0000000000..95d77e3785
--- /dev/null
+++ b/openjdk16/patches/patch-src_java.base_unix_native_libjsig_jsig.c
@@ -0,0 +1,18 @@
+$NetBSD: patch-src_java.base_unix_native_libjsig_jsig.c,v 1.1 2019/10/01 12:36:34 tnn Exp $
+
+On NetBSD, __sigaction14 should be used as sigaction.
+
+--- src/java.base/unix/native/libjsig/jsig.c.orig	2021-04-23 22:52:34.000000000 -0400
++++ src/java.base/unix/native/libjsig/jsig.c	2021-06-10 13:37:22.780517606 -0400
+@@ -207,7 +207,11 @@
+ static int call_os_sigaction(int sig, const struct sigaction  *act,
+                              struct sigaction *oact) {
+   if (os_sigaction == NULL) {
++#if defined(__NetBSD__)
++    os_sigaction = (sigaction_t)dlsym(RTLD_NEXT, "__sigaction14");
++#else
+     os_sigaction = (sigaction_t)dlsym(RTLD_NEXT, "sigaction");
++#endif
+     if (os_sigaction == NULL) {
+       printf("%s\n", dlerror());
+       exit(0);
diff --git a/openjdk16/patches/patch-src_java.desktop_unix_native_common_awt_fontpath.c b/openjdk16/patches/patch-src_java.desktop_unix_native_common_awt_fontpath.c
new file mode 100644
index 0000000000..9b89690b98
--- /dev/null
+++ b/openjdk16/patches/patch-src_java.desktop_unix_native_common_awt_fontpath.c
@@ -0,0 +1,53 @@
+$NetBSD: patch-src_java.desktop_unix_native_common_awt_fontpath.c,v 1.1 2019/10/01 12:36:34 tnn Exp $
+
+Use pkgsrc fonts.
+
+--- src/java.desktop/unix/native/common/awt/fontpath.c.orig	2021-04-23 22:52:34.000000000 -0400
++++ src/java.desktop/unix/native/common/awt/fontpath.c	2021-06-10 13:40:58.719993986 -0400
+@@ -56,8 +56,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@/lib/" JNI_LIB_NAME("fontconfig")
++#define FONTCONFIG_DLL "@BUILDLINK_PREFIX.fontconfig@/lib/" JNI_LIB_NAME("fontconfig")
+ 
+ #define MAXFDIRS 512    /* Max number of directories that contain fonts */
+ 
+@@ -88,6 +88,27 @@
+     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();
+ 
+@@ -463,6 +484,7 @@
+ #elif defined(_AIX)
+     knowndirs = fullAixFontPath;
+ #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/openjdk16/patches/patch-src_jdk.jdwp.agent_share_native_libdt_socket_socketTransport.c b/openjdk16/patches/patch-src_jdk.jdwp.agent_share_native_libdt_socket_socketTransport.c
new file mode 100644
index 0000000000..d211d7991c
--- /dev/null
+++ b/openjdk16/patches/patch-src_jdk.jdwp.agent_share_native_libdt_socket_socketTransport.c
@@ -0,0 +1,16 @@
+$NetBSD$
+
+We don't have AI_V4MAPPED or AI_ALL
+
+
+--- src/jdk.jdwp.agent/share/native/libdt_socket/socketTransport.c.orig	2021-04-23 22:52:34.000000000 -0400
++++ src/jdk.jdwp.agent/share/native/libdt_socket/socketTransport.c	2021-06-11 13:43:34.646986516 -0400
+@@ -392,7 +392,7 @@
+          * pass hostname == NULL to getaddrinfo.
+          */
+         hints.ai_family = allowOnlyIPv4 ? AF_INET : AF_INET6;
+-#ifdef __OpenBSD__
++#if defined(__OpenBSD__) || defined(__NetBSD__)
+         hints.ai_flags |= AI_PASSIVE;
+ #else
+         hints.ai_flags |= AI_PASSIVE | (allowOnlyIPv4 ? 0 : AI_V4MAPPED | AI_ALL);
diff --git a/openjdk16/patches/patch-src_jdk.management_bsd_native_libmanagement__ext_UnixOperatingSystem.c b/openjdk16/patches/patch-src_jdk.management_bsd_native_libmanagement__ext_UnixOperatingSystem.c
new file mode 100644
index 0000000000..482a8373e1
--- /dev/null
+++ b/openjdk16/patches/patch-src_jdk.management_bsd_native_libmanagement__ext_UnixOperatingSystem.c
@@ -0,0 +1,98 @@
+$NetBSD$
+
+adjust FreeBSD code for NetBSD
+
+--- src/jdk.management/bsd/native/libmanagement_ext/UnixOperatingSystem.c.orig	2021-04-23 22:52:34.000000000 -0400
++++ src/jdk.management/bsd/native/libmanagement_ext/UnixOperatingSystem.c	2021-06-11 13:52:54.750098914 -0400
+@@ -29,7 +29,19 @@
+ #include <sys/types.h>
+ #include <sys/sysctl.h>
+ #include <sys/time.h>
++#ifdef __FreeBSD__
+ #include <sys/user.h>
++#define CPUSTATES_TYPE long
++#define MIB_KERN_PROC KERN_PROC
++#define MIBSIZE 4
++#endif
++#ifdef __NetBSD__
++#include <sched.h>
++#define CPUSTATES_TYPE uint64_t
++#define kinfo_proc kinfo_proc2
++#define MIB_KERN_PROC KERN_PROC2
++#define MIBSIZE 6
++#endif
+ #include <unistd.h>
+ 
+ #include "jvm.h"
+@@ -38,14 +50,14 @@
+ Java_com_sun_management_internal_OperatingSystemImpl_getCpuLoad0
+ (JNIEnv *env, jobject dummy)
+ {
+-#ifdef __FreeBSD__
++#if defined(__FreeBSD__) || defined(__NetBSD__)
+     /* This is based on the MacOS X implementation */
+ 
+     static jlong last_used  = 0;
+     static jlong last_total = 0;
+ 
+     /* Load CPU times */
+-    long cp_time[CPUSTATES];
++    CPUSTATES_TYPE cp_time[CPUSTATES];
+     size_t len = sizeof(cp_time);
+     if (sysctlbyname("kern.cp_time", &cp_time, &len, NULL, 0) == -1) {
+         return -1.;
+@@ -92,7 +104,7 @@
+ Java_com_sun_management_internal_OperatingSystemImpl_getProcessCpuLoad0
+ (JNIEnv *env, jobject dummy)
+ {
+-#ifdef __FreeBSD__
++#if defined(__FreeBSD__) || defined(__NetBSD__)
+     /* This is based on the MacOS X implementation */
+ 
+     static jlong last_task_time = 0;
+@@ -100,13 +112,17 @@
+ 
+     struct timeval now;
+     struct kinfo_proc kp;
+-    int mib[4];
++    int mib[MIBSIZE];
+     size_t len = sizeof(struct kinfo_proc);
+ 
+     mib[0] = CTL_KERN;
+-    mib[1] = KERN_PROC;
++    mib[1] = MIB_KERN_PROC;
+     mib[2] = KERN_PROC_PID;
+     mib[3] = getpid();
++#ifdef __NetBSD__
++    mib[4] = sizeof(kp);
++    mib[5] = 1;
++#endif
+ 
+     if (sysctl(mib, 4, &kp, &len, NULL, 0) == -1) {
+         return -1.;
+@@ -118,8 +134,16 @@
+ 
+     jint ncpus      = JVM_ActiveProcessorCount();
+     jlong time      = TIME_VALUE_TO_MICROSECONDS(now) * ncpus;
++#ifdef __FreeBSD__
+     jlong task_time = TIME_VALUE_TO_MICROSECONDS(kp.ki_rusage.ru_utime) +
+                       TIME_VALUE_TO_MICROSECONDS(kp.ki_rusage.ru_stime);
++#endif
++#ifdef __NetBSD__
++    jlong task_time = (jlong)kp.p_uutime_sec * 1000 * 1000 +
++	kp.p_uutime_usec +
++	(jlong)kp.p_ustime_sec * 1000 * 1000 +
++	kp.p_ustime_usec;
++#endif
+ 
+     if ((last_task_time == 0) || (last_time == 0)) {
+         // First call, just set the last values.
+@@ -159,7 +183,7 @@
+ Java_com_sun_management_internal_OperatingSystemImpl_getHostConfiguredCpuCount0
+ (JNIEnv *env, jobject mbean)
+ {
+-#ifdef __FreeBSD__
++#if defined(__FreeBSD__) || defined(__NetBSD__)
+     return JVM_ActiveProcessorCount();
+ #else
+     // Not implemented yet



Home | Main Index | Thread Index | Old Index