From 968122b6356dff143231c5aedfc2ca24728c7e12 Mon Sep 17 00:00:00 2001
From: "Alex Xu (Hello71)" <alex_y_xu@yahoo.ca>
Date: Tue, 1 Oct 2024 15:11:30 -0400
Subject: dev-java/openj9-openjdk*: upgrade to 0.46.1

---
 dev-java/openj9-openjdk-bin/Manifest               |  24 +-
 .../openj9-openjdk-bin-11.0.21_p9.ebuild           | 117 --------
 .../openj9-openjdk-bin-11.0.24_p8.ebuild           | 117 ++++++++
 .../openj9-openjdk-bin-17.0.9_p9.ebuild            | 117 --------
 .../openj9-openjdk-bin-21.0.4_p7.ebuild            | 117 ++++++++
 dev-java/openj9-openjdk-jre-bin/Manifest           |  12 +-
 .../openj9-openjdk-jre-bin-11.0.21_p9.ebuild       |  85 ------
 .../openj9-openjdk-jre-bin-11.0.24_p8.ebuild       |  85 ++++++
 .../openj9-openjdk-jre-bin-17.0.9_p9.ebuild        |  85 ------
 .../openj9-openjdk-jre-bin-21.0.4_p7.ebuild        |  85 ++++++
 dev-java/openj9-openjdk/Manifest                   |   8 +-
 dev-java/openj9-openjdk/files/openj9.patch         |  12 +
 .../openj9-openjdk/openj9-openjdk-11.0.41.0.ebuild | 287 ------------------
 .../openj9-openjdk/openj9-openjdk-11.0.46.1.ebuild | 311 ++++++++++++++++++++
 .../openj9-openjdk/openj9-openjdk-17.0.41.0.ebuild | 319 --------------------
 .../openj9-openjdk/openj9-openjdk-21.0.46.1.ebuild | 322 +++++++++++++++++++++
 16 files changed, 1071 insertions(+), 1032 deletions(-)
 delete mode 100644 dev-java/openj9-openjdk-bin/openj9-openjdk-bin-11.0.21_p9.ebuild
 create mode 100644 dev-java/openj9-openjdk-bin/openj9-openjdk-bin-11.0.24_p8.ebuild
 delete mode 100644 dev-java/openj9-openjdk-bin/openj9-openjdk-bin-17.0.9_p9.ebuild
 create mode 100644 dev-java/openj9-openjdk-bin/openj9-openjdk-bin-21.0.4_p7.ebuild
 delete mode 100644 dev-java/openj9-openjdk-jre-bin/openj9-openjdk-jre-bin-11.0.21_p9.ebuild
 create mode 100644 dev-java/openj9-openjdk-jre-bin/openj9-openjdk-jre-bin-11.0.24_p8.ebuild
 delete mode 100644 dev-java/openj9-openjdk-jre-bin/openj9-openjdk-jre-bin-17.0.9_p9.ebuild
 create mode 100644 dev-java/openj9-openjdk-jre-bin/openj9-openjdk-jre-bin-21.0.4_p7.ebuild
 create mode 100644 dev-java/openj9-openjdk/files/openj9.patch
 delete mode 100644 dev-java/openj9-openjdk/openj9-openjdk-11.0.41.0.ebuild
 create mode 100644 dev-java/openj9-openjdk/openj9-openjdk-11.0.46.1.ebuild
 delete mode 100644 dev-java/openj9-openjdk/openj9-openjdk-17.0.41.0.ebuild
 create mode 100644 dev-java/openj9-openjdk/openj9-openjdk-21.0.46.1.ebuild

diff --git a/dev-java/openj9-openjdk-bin/Manifest b/dev-java/openj9-openjdk-bin/Manifest
index b36e1ce..32ba4cd 100644
--- a/dev-java/openj9-openjdk-bin/Manifest
+++ b/dev-java/openj9-openjdk-bin/Manifest
@@ -1,12 +1,12 @@
-DIST ibm-semeru-open-debugimage_aarch64_linux_11.0.21_9_openj9-0.41.0.tar.gz 344573477 SHA256 cbeb1b48be7ebe090d7998ff903cdfc120597f0c291e063f2173786ebc4d1e7a
-DIST ibm-semeru-open-debugimage_aarch64_linux_17.0.9_9_openj9-0.41.0.tar.gz 359634686 SHA256 d8e0a70145f7f160a1c26ad5196f521bf68ad0ecd6a784faf81ab59868ffb81b
-DIST ibm-semeru-open-debugimage_ppc64le_linux_11.0.21_9_openj9-0.41.0.tar.gz 357090764 SHA256 39efd2b530b3061c11c490e75ebbb20a4ec72448aec268bdb8449ee00021a138
-DIST ibm-semeru-open-debugimage_ppc64le_linux_17.0.9_9_openj9-0.41.0.tar.gz 372992490 SHA256 093579d76dda1fff44da05f08a9450d4e435e2f6be5d538113b96ccf0d2a559e
-DIST ibm-semeru-open-debugimage_x64_linux_11.0.21_9_openj9-0.41.0.tar.gz 369014125 SHA256 d2cda3fb77f3cad6870f2c868ad4bb3fc6c86e2a82522426a732733ce0fdb2d6
-DIST ibm-semeru-open-debugimage_x64_linux_17.0.9_9_openj9-0.41.0.tar.gz 386149336 SHA256 cf947725632aa736e9bd0e5b7b3f5af9b427f62fdde2b9c16c4aaf3e1231526d
-DIST ibm-semeru-open-jdk_aarch64_linux_11.0.21_9_openj9-0.41.0.tar.gz 202866166 SHA256 64f9cc164906b65fb1cb88287d64e40e02371ae1366bce28802d90cbd91df1be
-DIST ibm-semeru-open-jdk_aarch64_linux_17.0.9_9_openj9-0.41.0.tar.gz 206857922 SHA256 cfdff21ce44ae6af494cba75c1f323bef83a982f2c11944988bab2125f85b906
-DIST ibm-semeru-open-jdk_ppc64le_linux_11.0.21_9_openj9-0.41.0.tar.gz 206559764 SHA256 c23d62e5e2c3613357f6904cfc9a8229709bbc12d6aeb814875e0c4c471bb350
-DIST ibm-semeru-open-jdk_ppc64le_linux_17.0.9_9_openj9-0.41.0.tar.gz 211958174 SHA256 6934275c8045df881db8693caa219ef566d15f4a0d0b0154583f12370b996c5b
-DIST ibm-semeru-open-jdk_x64_linux_11.0.21_9_openj9-0.41.0.tar.gz 205707724 SHA256 d11ec92737b9f97bdd9bb553c3e476981f4ac38039963a15c2e1ca9ec163a304
-DIST ibm-semeru-open-jdk_x64_linux_17.0.9_9_openj9-0.41.0.tar.gz 209702777 SHA256 9b945e58f024108a20eb907015cca4a452332b7644e8dd8e051149a3ec62e3a3
+DIST ibm-semeru-open-debugimage_aarch64_linux_11.0.24_8_openj9-0.46.1.tar.gz 367934601 SHA256 63759b5585bad4efb2c8c1fb08ce2314fd3088cf04553e41d93189ab0b6a535d
+DIST ibm-semeru-open-debugimage_aarch64_linux_21.0.4_7_openj9-0.46.1.tar.gz 372505511 SHA256 8047594e2ad2be450afbe7b5a41f11d8e97b9cac8cf6fc396f26ffb06a277ddb
+DIST ibm-semeru-open-debugimage_ppc64le_linux_11.0.24_8_openj9-0.46.1.tar.gz 381199901 SHA256 234676459ae3478fefbf331b8a23c6796521818f2f88c3e8d9818c7651417f3a
+DIST ibm-semeru-open-debugimage_ppc64le_linux_21.0.4_7_openj9-0.46.1.tar.gz 386180001 SHA256 833ef025ee96a347a0212c1ea8b56d23f77705958e4c44df28d944485832198e
+DIST ibm-semeru-open-debugimage_x64_linux_11.0.24_8_openj9-0.46.1.tar.gz 396010165 SHA256 15f03471ab4e40ea3339a2e2a9b210bdb2ae734ab894dd1819e2c3b87a57f939
+DIST ibm-semeru-open-debugimage_x64_linux_21.0.4_7_openj9-0.46.1.tar.gz 400879617 SHA256 1e96899ba9801e45a22409f31d246a15389f58f0bd44883d6d1948b7187b4aef
+DIST ibm-semeru-open-jdk_aarch64_linux_11.0.24_8_openj9-0.46.1.tar.gz 204241111 SHA256 14f982221bb61f8ea5d11f2cb9a3470639004b825dcbb5640ffd27ed479a38c4
+DIST ibm-semeru-open-jdk_aarch64_linux_21.0.4_7_openj9-0.46.1.tar.gz 220846043 SHA256 0a8a8abf61da58ee0db5ce5ea0b786838a19827df6e3446cfd094f0fb01823cd
+DIST ibm-semeru-open-jdk_ppc64le_linux_11.0.24_8_openj9-0.46.1.tar.gz 214830663 SHA256 34a59f13ee3070dcc64408331bb838c1286b7b7ea1ad71c693395aa3ef16c07b
+DIST ibm-semeru-open-jdk_ppc64le_linux_21.0.4_7_openj9-0.46.1.tar.gz 232343710 SHA256 279b7384ab301385d01c15cbb590b88b4aa9e613e57ec2f672353b970cf65e4b
+DIST ibm-semeru-open-jdk_x64_linux_11.0.24_8_openj9-0.46.1.tar.gz 211769346 SHA256 37b6e363eb06c27bcfa9c8c1396839ce4a0e03eb58e0b79312fbc470eb968b63
+DIST ibm-semeru-open-jdk_x64_linux_21.0.4_7_openj9-0.46.1.tar.gz 228961114 SHA256 eaf8a35c50167da06f1e103602df40aac2a74a1fd170f4701b2076152e104e5c
diff --git a/dev-java/openj9-openjdk-bin/openj9-openjdk-bin-11.0.21_p9.ebuild b/dev-java/openj9-openjdk-bin/openj9-openjdk-bin-11.0.21_p9.ebuild
deleted file mode 100644
index f41e70a..0000000
--- a/dev-java/openj9-openjdk-bin/openj9-openjdk-bin-11.0.21_p9.ebuild
+++ /dev/null
@@ -1,117 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit java-vm-2 toolchain-funcs
-
-abi_uri() {
-	echo "${2-$1}? (
-		debug? (
-			https://github.com/ibmruntimes/semeru${SLOT}-binaries/releases/download/jdk-${DL_PV/+/%2B}/ibm-semeru-open-debugimage_${1}_linux_${DL_PV/+/_}.tar.gz
-		)
-		https://github.com/ibmruntimes/semeru${SLOT}-binaries/releases/download/jdk-${DL_PV/+/%2B}/ibm-semeru-open-jdk_${1}_linux_${DL_PV/+/_}.tar.gz
-	)"
-}
-
-JDK_PV=${PV//_p/+}
-DL_PV=${JDK_PV}_openj9-0.41.0
-SLOT=$(ver_cut 1)
-
-SRC_URI="
-	$(abi_uri aarch64 arm64)
-	$(abi_uri ppc64le ppc64)
-	$(abi_uri x64 amd64)
-"
-
-DESCRIPTION="Prebuilt IBM Semeru JDK binaries provided by IBM"
-HOMEPAGE="https://developer.ibm.com/languages/java/semeru-runtimes/"
-LICENSE="GPL-2-with-classpath-exception"
-KEYWORDS="~amd64 ~arm64 ~ppc64"
-IUSE="alsa cups debug headless-awt selinux source"
-
-RDEPEND="
-	>=sys-apps/baselayout-java-0.1.0-r1
-	kernel_linux? (
-		media-libs/fontconfig:1.0
-		media-libs/freetype:2
-		media-libs/harfbuzz
-		elibc_glibc? ( >=sys-libs/glibc-2.2.5:* )
-		elibc_musl? ( sys-libs/musl )
-		sys-libs/zlib
-		alsa? ( media-libs/alsa-lib )
-		cups? ( net-print/cups )
-		selinux? ( sec-policy/selinux-java )
-		!headless-awt? (
-			x11-libs/libX11
-			x11-libs/libXext
-			x11-libs/libXi
-			x11-libs/libXrender
-			x11-libs/libXtst
-		)
-	)"
-
-RESTRICT="preserve-libs splitdebug"
-QA_PREBUILT="*"
-
-S="${WORKDIR}/jdk-${JDK_PV}"
-
-pkg_pretend() {
-	if [[ "$(tc-is-softfloat)" != "no" ]]; then
-		die "These binaries require a hardfloat system."
-	fi
-}
-
-src_unpack() {
-	default
-	if [[ ${A} == *_mac_* ]] ; then
-		mv -v "${S}/Contents/Home/"* "${S}" || die
-		rm -Rf "${S}/Contents"  # drop macOS executable
-	fi
-}
-
-src_install() {
-	local dest="/opt/${P}"
-	local ddest="${ED}/${dest#/}"
-
-	# on macOS if they would exist they would be called .dylib, but most
-	# importantly, there are no different providers, so everything
-	# that's shipped works.
-	if [[ ${A} != *_mac_* ]] ; then
-		# Not sure why they bundle this as it's commonly available and they
-		# only do so on x86_64. It's needed by libfontmanager.so. IcedTea
-		# also has an explicit dependency while Oracle seemingly dlopens it.
-		rm -vf lib/libfreetype.so || die
-
-		# prefer system copy # https://bugs.gentoo.org/776676
-		rm -vf lib/libharfbuzz.so || die
-
-		# Oracle and IcedTea have libjsoundalsa.so depending on
-		# libasound.so.2 but AdoptOpenJDK only has libjsound.so. Weird.
-		if ! use alsa ; then
-			rm -v lib/libjsound.* || die
-		fi
-
-		if use headless-awt ; then
-			rm -v lib/lib*{[jx]awt,splashscreen}* || die
-		fi
-	fi
-
-	if ! use source ; then
-		rm -v lib/src.zip || die
-	fi
-
-	rm -v lib/security/cacerts || die
-	dosym -r /etc/ssl/certs/java/cacerts "${dest}"/lib/security/cacerts
-
-	dodir "${dest}"
-	cp -pPR * "${ddest}" || die
-
-	# provide stable symlink
-	dosym "${P}" "/opt/${PN}-${SLOT}"
-
-	java-vm_install-env "${FILESDIR}"/${PN}.env.sh
-	java-vm_set-pax-markings "${ddest}"
-	java-vm_revdep-mask
-	java-vm_sandbox-predict /dev/random /proc/self/coredump_filter
-}
diff --git a/dev-java/openj9-openjdk-bin/openj9-openjdk-bin-11.0.24_p8.ebuild b/dev-java/openj9-openjdk-bin/openj9-openjdk-bin-11.0.24_p8.ebuild
new file mode 100644
index 0000000..1f16cfb
--- /dev/null
+++ b/dev-java/openj9-openjdk-bin/openj9-openjdk-bin-11.0.24_p8.ebuild
@@ -0,0 +1,117 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit java-vm-2 toolchain-funcs
+
+abi_uri() {
+	echo "${2-$1}? (
+		debug? (
+			https://github.com/ibmruntimes/semeru${SLOT}-binaries/releases/download/jdk-${DL_PV/+/%2B}/ibm-semeru-open-debugimage_${1}_linux_${DL_PV/+/_}.tar.gz
+		)
+		https://github.com/ibmruntimes/semeru${SLOT}-binaries/releases/download/jdk-${DL_PV/+/%2B}/ibm-semeru-open-jdk_${1}_linux_${DL_PV/+/_}.tar.gz
+	)"
+}
+
+JDK_PV=${PV//_p/+}
+DL_PV=${JDK_PV}_openj9-0.46.1
+SLOT=$(ver_cut 1)
+
+SRC_URI="
+	$(abi_uri aarch64 arm64)
+	$(abi_uri ppc64le ppc64)
+	$(abi_uri x64 amd64)
+"
+
+DESCRIPTION="Prebuilt IBM Semeru JDK binaries provided by IBM"
+HOMEPAGE="https://developer.ibm.com/languages/java/semeru-runtimes/"
+LICENSE="GPL-2-with-classpath-exception"
+KEYWORDS="~amd64 ~arm64 ~ppc64"
+IUSE="alsa cups debug headless-awt selinux source"
+
+RDEPEND="
+	>=sys-apps/baselayout-java-0.1.0-r1
+	kernel_linux? (
+		media-libs/fontconfig:1.0
+		media-libs/freetype:2
+		media-libs/harfbuzz
+		elibc_glibc? ( >=sys-libs/glibc-2.2.5:* )
+		elibc_musl? ( sys-libs/musl )
+		sys-libs/zlib
+		alsa? ( media-libs/alsa-lib )
+		cups? ( net-print/cups )
+		selinux? ( sec-policy/selinux-java )
+		!headless-awt? (
+			x11-libs/libX11
+			x11-libs/libXext
+			x11-libs/libXi
+			x11-libs/libXrender
+			x11-libs/libXtst
+		)
+	)"
+
+RESTRICT="preserve-libs splitdebug"
+QA_PREBUILT="*"
+
+S="${WORKDIR}/jdk-${JDK_PV}"
+
+pkg_pretend() {
+	if [[ "$(tc-is-softfloat)" != "no" ]]; then
+		die "These binaries require a hardfloat system."
+	fi
+}
+
+src_unpack() {
+	default
+	if [[ ${A} == *_mac_* ]] ; then
+		mv -v "${S}/Contents/Home/"* "${S}" || die
+		rm -Rf "${S}/Contents"  # drop macOS executable
+	fi
+}
+
+src_install() {
+	local dest="/opt/${P}"
+	local ddest="${ED}/${dest#/}"
+
+	# on macOS if they would exist they would be called .dylib, but most
+	# importantly, there are no different providers, so everything
+	# that's shipped works.
+	if [[ ${A} != *_mac_* ]] ; then
+		# Not sure why they bundle this as it's commonly available and they
+		# only do so on x86_64. It's needed by libfontmanager.so. IcedTea
+		# also has an explicit dependency while Oracle seemingly dlopens it.
+		rm -vf lib/libfreetype.so || die
+
+		# prefer system copy # https://bugs.gentoo.org/776676
+		rm -vf lib/libharfbuzz.so || die
+
+		# Oracle and IcedTea have libjsoundalsa.so depending on
+		# libasound.so.2 but AdoptOpenJDK only has libjsound.so. Weird.
+		if ! use alsa ; then
+			rm -v lib/libjsound.* || die
+		fi
+
+		if use headless-awt ; then
+			rm -v lib/lib*{[jx]awt,splashscreen}* || die
+		fi
+	fi
+
+	if ! use source ; then
+		rm -v lib/src.zip || die
+	fi
+
+	rm -v lib/security/cacerts || die
+	dosym -r /etc/ssl/certs/java/cacerts "${dest}"/lib/security/cacerts
+
+	dodir "${dest}"
+	cp -pPR * "${ddest}" || die
+
+	# provide stable symlink
+	dosym "${P}" "/opt/${PN}-${SLOT}"
+
+	java-vm_install-env "${FILESDIR}"/${PN}.env.sh
+	java-vm_set-pax-markings "${ddest}"
+	java-vm_revdep-mask
+	java-vm_sandbox-predict /dev/random /proc/self/coredump_filter
+}
diff --git a/dev-java/openj9-openjdk-bin/openj9-openjdk-bin-17.0.9_p9.ebuild b/dev-java/openj9-openjdk-bin/openj9-openjdk-bin-17.0.9_p9.ebuild
deleted file mode 100644
index f41e70a..0000000
--- a/dev-java/openj9-openjdk-bin/openj9-openjdk-bin-17.0.9_p9.ebuild
+++ /dev/null
@@ -1,117 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit java-vm-2 toolchain-funcs
-
-abi_uri() {
-	echo "${2-$1}? (
-		debug? (
-			https://github.com/ibmruntimes/semeru${SLOT}-binaries/releases/download/jdk-${DL_PV/+/%2B}/ibm-semeru-open-debugimage_${1}_linux_${DL_PV/+/_}.tar.gz
-		)
-		https://github.com/ibmruntimes/semeru${SLOT}-binaries/releases/download/jdk-${DL_PV/+/%2B}/ibm-semeru-open-jdk_${1}_linux_${DL_PV/+/_}.tar.gz
-	)"
-}
-
-JDK_PV=${PV//_p/+}
-DL_PV=${JDK_PV}_openj9-0.41.0
-SLOT=$(ver_cut 1)
-
-SRC_URI="
-	$(abi_uri aarch64 arm64)
-	$(abi_uri ppc64le ppc64)
-	$(abi_uri x64 amd64)
-"
-
-DESCRIPTION="Prebuilt IBM Semeru JDK binaries provided by IBM"
-HOMEPAGE="https://developer.ibm.com/languages/java/semeru-runtimes/"
-LICENSE="GPL-2-with-classpath-exception"
-KEYWORDS="~amd64 ~arm64 ~ppc64"
-IUSE="alsa cups debug headless-awt selinux source"
-
-RDEPEND="
-	>=sys-apps/baselayout-java-0.1.0-r1
-	kernel_linux? (
-		media-libs/fontconfig:1.0
-		media-libs/freetype:2
-		media-libs/harfbuzz
-		elibc_glibc? ( >=sys-libs/glibc-2.2.5:* )
-		elibc_musl? ( sys-libs/musl )
-		sys-libs/zlib
-		alsa? ( media-libs/alsa-lib )
-		cups? ( net-print/cups )
-		selinux? ( sec-policy/selinux-java )
-		!headless-awt? (
-			x11-libs/libX11
-			x11-libs/libXext
-			x11-libs/libXi
-			x11-libs/libXrender
-			x11-libs/libXtst
-		)
-	)"
-
-RESTRICT="preserve-libs splitdebug"
-QA_PREBUILT="*"
-
-S="${WORKDIR}/jdk-${JDK_PV}"
-
-pkg_pretend() {
-	if [[ "$(tc-is-softfloat)" != "no" ]]; then
-		die "These binaries require a hardfloat system."
-	fi
-}
-
-src_unpack() {
-	default
-	if [[ ${A} == *_mac_* ]] ; then
-		mv -v "${S}/Contents/Home/"* "${S}" || die
-		rm -Rf "${S}/Contents"  # drop macOS executable
-	fi
-}
-
-src_install() {
-	local dest="/opt/${P}"
-	local ddest="${ED}/${dest#/}"
-
-	# on macOS if they would exist they would be called .dylib, but most
-	# importantly, there are no different providers, so everything
-	# that's shipped works.
-	if [[ ${A} != *_mac_* ]] ; then
-		# Not sure why they bundle this as it's commonly available and they
-		# only do so on x86_64. It's needed by libfontmanager.so. IcedTea
-		# also has an explicit dependency while Oracle seemingly dlopens it.
-		rm -vf lib/libfreetype.so || die
-
-		# prefer system copy # https://bugs.gentoo.org/776676
-		rm -vf lib/libharfbuzz.so || die
-
-		# Oracle and IcedTea have libjsoundalsa.so depending on
-		# libasound.so.2 but AdoptOpenJDK only has libjsound.so. Weird.
-		if ! use alsa ; then
-			rm -v lib/libjsound.* || die
-		fi
-
-		if use headless-awt ; then
-			rm -v lib/lib*{[jx]awt,splashscreen}* || die
-		fi
-	fi
-
-	if ! use source ; then
-		rm -v lib/src.zip || die
-	fi
-
-	rm -v lib/security/cacerts || die
-	dosym -r /etc/ssl/certs/java/cacerts "${dest}"/lib/security/cacerts
-
-	dodir "${dest}"
-	cp -pPR * "${ddest}" || die
-
-	# provide stable symlink
-	dosym "${P}" "/opt/${PN}-${SLOT}"
-
-	java-vm_install-env "${FILESDIR}"/${PN}.env.sh
-	java-vm_set-pax-markings "${ddest}"
-	java-vm_revdep-mask
-	java-vm_sandbox-predict /dev/random /proc/self/coredump_filter
-}
diff --git a/dev-java/openj9-openjdk-bin/openj9-openjdk-bin-21.0.4_p7.ebuild b/dev-java/openj9-openjdk-bin/openj9-openjdk-bin-21.0.4_p7.ebuild
new file mode 100644
index 0000000..1f16cfb
--- /dev/null
+++ b/dev-java/openj9-openjdk-bin/openj9-openjdk-bin-21.0.4_p7.ebuild
@@ -0,0 +1,117 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit java-vm-2 toolchain-funcs
+
+abi_uri() {
+	echo "${2-$1}? (
+		debug? (
+			https://github.com/ibmruntimes/semeru${SLOT}-binaries/releases/download/jdk-${DL_PV/+/%2B}/ibm-semeru-open-debugimage_${1}_linux_${DL_PV/+/_}.tar.gz
+		)
+		https://github.com/ibmruntimes/semeru${SLOT}-binaries/releases/download/jdk-${DL_PV/+/%2B}/ibm-semeru-open-jdk_${1}_linux_${DL_PV/+/_}.tar.gz
+	)"
+}
+
+JDK_PV=${PV//_p/+}
+DL_PV=${JDK_PV}_openj9-0.46.1
+SLOT=$(ver_cut 1)
+
+SRC_URI="
+	$(abi_uri aarch64 arm64)
+	$(abi_uri ppc64le ppc64)
+	$(abi_uri x64 amd64)
+"
+
+DESCRIPTION="Prebuilt IBM Semeru JDK binaries provided by IBM"
+HOMEPAGE="https://developer.ibm.com/languages/java/semeru-runtimes/"
+LICENSE="GPL-2-with-classpath-exception"
+KEYWORDS="~amd64 ~arm64 ~ppc64"
+IUSE="alsa cups debug headless-awt selinux source"
+
+RDEPEND="
+	>=sys-apps/baselayout-java-0.1.0-r1
+	kernel_linux? (
+		media-libs/fontconfig:1.0
+		media-libs/freetype:2
+		media-libs/harfbuzz
+		elibc_glibc? ( >=sys-libs/glibc-2.2.5:* )
+		elibc_musl? ( sys-libs/musl )
+		sys-libs/zlib
+		alsa? ( media-libs/alsa-lib )
+		cups? ( net-print/cups )
+		selinux? ( sec-policy/selinux-java )
+		!headless-awt? (
+			x11-libs/libX11
+			x11-libs/libXext
+			x11-libs/libXi
+			x11-libs/libXrender
+			x11-libs/libXtst
+		)
+	)"
+
+RESTRICT="preserve-libs splitdebug"
+QA_PREBUILT="*"
+
+S="${WORKDIR}/jdk-${JDK_PV}"
+
+pkg_pretend() {
+	if [[ "$(tc-is-softfloat)" != "no" ]]; then
+		die "These binaries require a hardfloat system."
+	fi
+}
+
+src_unpack() {
+	default
+	if [[ ${A} == *_mac_* ]] ; then
+		mv -v "${S}/Contents/Home/"* "${S}" || die
+		rm -Rf "${S}/Contents"  # drop macOS executable
+	fi
+}
+
+src_install() {
+	local dest="/opt/${P}"
+	local ddest="${ED}/${dest#/}"
+
+	# on macOS if they would exist they would be called .dylib, but most
+	# importantly, there are no different providers, so everything
+	# that's shipped works.
+	if [[ ${A} != *_mac_* ]] ; then
+		# Not sure why they bundle this as it's commonly available and they
+		# only do so on x86_64. It's needed by libfontmanager.so. IcedTea
+		# also has an explicit dependency while Oracle seemingly dlopens it.
+		rm -vf lib/libfreetype.so || die
+
+		# prefer system copy # https://bugs.gentoo.org/776676
+		rm -vf lib/libharfbuzz.so || die
+
+		# Oracle and IcedTea have libjsoundalsa.so depending on
+		# libasound.so.2 but AdoptOpenJDK only has libjsound.so. Weird.
+		if ! use alsa ; then
+			rm -v lib/libjsound.* || die
+		fi
+
+		if use headless-awt ; then
+			rm -v lib/lib*{[jx]awt,splashscreen}* || die
+		fi
+	fi
+
+	if ! use source ; then
+		rm -v lib/src.zip || die
+	fi
+
+	rm -v lib/security/cacerts || die
+	dosym -r /etc/ssl/certs/java/cacerts "${dest}"/lib/security/cacerts
+
+	dodir "${dest}"
+	cp -pPR * "${ddest}" || die
+
+	# provide stable symlink
+	dosym "${P}" "/opt/${PN}-${SLOT}"
+
+	java-vm_install-env "${FILESDIR}"/${PN}.env.sh
+	java-vm_set-pax-markings "${ddest}"
+	java-vm_revdep-mask
+	java-vm_sandbox-predict /dev/random /proc/self/coredump_filter
+}
diff --git a/dev-java/openj9-openjdk-jre-bin/Manifest b/dev-java/openj9-openjdk-jre-bin/Manifest
index 3c2aca6..f124234 100644
--- a/dev-java/openj9-openjdk-jre-bin/Manifest
+++ b/dev-java/openj9-openjdk-jre-bin/Manifest
@@ -1,6 +1,6 @@
-DIST ibm-semeru-open-jre_aarch64_linux_11.0.21_9_openj9-0.41.0.tar.gz 46724041 SHA256 5eb5d5d6006e1066b5c72d3b000f1c8fda572fa64189af103ef1176235cd3174
-DIST ibm-semeru-open-jre_aarch64_linux_17.0.9_9_openj9-0.41.0.tar.gz 46616927 SHA256 9760aa27a5790a8c20a702ff5f036535f3df51d3fb291bb5254b5ae76e096bad
-DIST ibm-semeru-open-jre_ppc64le_linux_11.0.21_9_openj9-0.41.0.tar.gz 48848011 SHA256 0495d4d122dfb7ae160d9c76549f62fdd77b9c8ceddc9d4aced882c3c5157ba5
-DIST ibm-semeru-open-jre_ppc64le_linux_17.0.9_9_openj9-0.41.0.tar.gz 49098475 SHA256 73b9baab2766191de5da00498f2dcfe9de90fff6c4c457bea4944f103c6dde6e
-DIST ibm-semeru-open-jre_x64_linux_11.0.21_9_openj9-0.41.0.tar.gz 48023048 SHA256 324f7e8d75490cc76d5cf6a46b43f50ec1206a97d49e1549d1c65f1583fc51d5
-DIST ibm-semeru-open-jre_x64_linux_17.0.9_9_openj9-0.41.0.tar.gz 47935029 SHA256 1caf409f33f7738efe37742197525b5ae6244d6383b2017e7b8e925dc0b6a329
+DIST ibm-semeru-open-jre_aarch64_linux_11.0.24_8_openj9-0.46.1.tar.gz 47341592 SHA256 010e099a8e6ff4f4ed1de40dfb536b59a5a3aaddeeaae38c1f4715e6a31ae462
+DIST ibm-semeru-open-jre_aarch64_linux_21.0.4_7_openj9-0.46.1.tar.gz 51323125 SHA256 155a5f8d88f1b7bb018ffec077b430a90027172b6215cec90344a9b48180bfaf
+DIST ibm-semeru-open-jre_ppc64le_linux_11.0.24_8_openj9-0.46.1.tar.gz 52495014 SHA256 31151d3e19e58a1a2ac332e4b940009c997d6cb3cb6cb36ae80250ade6ef4e32
+DIST ibm-semeru-open-jre_ppc64le_linux_21.0.4_7_openj9-0.46.1.tar.gz 56561820 SHA256 c45f1c0c6e12d1961979b362124fa59acb76a85c576e1cf9f2815500e429ef4e
+DIST ibm-semeru-open-jre_x64_linux_11.0.24_8_openj9-0.46.1.tar.gz 50967149 SHA256 34ebbf10575043cc0c00b56115f2f5b58d3b05ec662e9a7a6ce5fa55d56d290a
+DIST ibm-semeru-open-jre_x64_linux_21.0.4_7_openj9-0.46.1.tar.gz 54963626 SHA256 19b64c4270450bdfc3c73af7a228defd2c326179dd2df8a0d419667515af86c7
diff --git a/dev-java/openj9-openjdk-jre-bin/openj9-openjdk-jre-bin-11.0.21_p9.ebuild b/dev-java/openj9-openjdk-jre-bin/openj9-openjdk-jre-bin-11.0.21_p9.ebuild
deleted file mode 100644
index 7aa42d8..0000000
--- a/dev-java/openj9-openjdk-jre-bin/openj9-openjdk-jre-bin-11.0.21_p9.ebuild
+++ /dev/null
@@ -1,85 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit java-vm-2
-
-abi_uri() {
-	echo "${2-$1}? (
-		https://github.com/ibmruntimes/semeru${SLOT}-binaries/releases/download/jdk-${DL_PV/+/%2B}/ibm-semeru-open-jre_${1}_linux_${DL_PV/+/_}.tar.gz
-	)"
-}
-
-JDK_PV=${PV//_p/+}
-DL_PV=${JDK_PV}_openj9-0.41.0
-SLOT=$(ver_cut 1)
-
-SRC_URI="
-	$(abi_uri aarch64 arm64)
-	$(abi_uri ppc64le ppc64)
-	$(abi_uri x64 amd64)
-"
-
-DESCRIPTION="Prebuilt IBM Semeru JRE binaries provided by IBM"
-HOMEPAGE="https://developer.ibm.com/languages/java/semeru-runtimes/"
-LICENSE="GPL-2-with-classpath-exception"
-KEYWORDS="~amd64 ~arm64 ~ppc64"
-IUSE="alsa cups headless-awt selinux"
-
-RDEPEND="
-	media-libs/fontconfig:1.0
-	media-libs/freetype:2
-	>=sys-apps/baselayout-java-0.1.0-r1
-	>=sys-libs/glibc-2.2.5:*
-	sys-libs/zlib
-	alsa? ( media-libs/alsa-lib )
-	cups? ( net-print/cups )
-	selinux? ( sec-policy/selinux-java )
-	!headless-awt? (
-		x11-libs/libX11
-		x11-libs/libXext
-		x11-libs/libXi
-		x11-libs/libXrender
-		x11-libs/libXtst
-	)"
-
-RESTRICT="preserve-libs splitdebug"
-QA_PREBUILT="*"
-
-S="${WORKDIR}/jdk-${JDK_PV}-jre"
-
-src_install() {
-	local dest="/opt/${PN}-${SLOT}"
-	local ddest="${ED}/${dest#/}"
-
-	# Not sure why they bundle this as it's commonly available and they
-	# only do so on x86_64. It's needed by libfontmanager.so. IcedTea
-	# also has an explicit dependency while Oracle seemingly dlopens it.
-	rm -vf lib/libfreetype.so || die
-
-	# Oracle and IcedTea have libjsoundalsa.so depending on
-	# libasound.so.2 but AdoptOpenJDK only has libjsound.so. Weird.
-	if ! use alsa ; then
-		rm -v lib/libjsound.* || die
-	fi
-
-	if use headless-awt ; then
-		rm -v lib/lib*{[jx]awt,splashscreen}* || die
-	fi
-
-	rm -v lib/security/cacerts || die
-	dosym -r /etc/ssl/certs/java/cacerts "${dest}"/lib/security/cacerts
-
-	dodir "${dest}"
-	cp -pPR * "${ddest}" || die
-
-	java-vm_install-env "${FILESDIR}"/${PN}.env.sh
-	java-vm_set-pax-markings "${ddest}"
-	java-vm_revdep-mask
-	java-vm_sandbox-predict /dev/random /proc/self/coredump_filter
-}
-
-pkg_postinst() {
-	java-vm-2_pkg_postinst
-}
diff --git a/dev-java/openj9-openjdk-jre-bin/openj9-openjdk-jre-bin-11.0.24_p8.ebuild b/dev-java/openj9-openjdk-jre-bin/openj9-openjdk-jre-bin-11.0.24_p8.ebuild
new file mode 100644
index 0000000..5891e46
--- /dev/null
+++ b/dev-java/openj9-openjdk-jre-bin/openj9-openjdk-jre-bin-11.0.24_p8.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit java-vm-2
+
+abi_uri() {
+	echo "${2-$1}? (
+		https://github.com/ibmruntimes/semeru${SLOT}-binaries/releases/download/jdk-${DL_PV/+/%2B}/ibm-semeru-open-jre_${1}_linux_${DL_PV/+/_}.tar.gz
+	)"
+}
+
+JDK_PV=${PV//_p/+}
+DL_PV=${JDK_PV}_openj9-0.46.1
+SLOT=$(ver_cut 1)
+
+SRC_URI="
+	$(abi_uri aarch64 arm64)
+	$(abi_uri ppc64le ppc64)
+	$(abi_uri x64 amd64)
+"
+
+DESCRIPTION="Prebuilt IBM Semeru JRE binaries provided by IBM"
+HOMEPAGE="https://developer.ibm.com/languages/java/semeru-runtimes/"
+LICENSE="GPL-2-with-classpath-exception"
+KEYWORDS="~amd64 ~arm64 ~ppc64"
+IUSE="alsa cups headless-awt selinux"
+
+RDEPEND="
+	media-libs/fontconfig:1.0
+	media-libs/freetype:2
+	>=sys-apps/baselayout-java-0.1.0-r1
+	>=sys-libs/glibc-2.2.5:*
+	sys-libs/zlib
+	alsa? ( media-libs/alsa-lib )
+	cups? ( net-print/cups )
+	selinux? ( sec-policy/selinux-java )
+	!headless-awt? (
+		x11-libs/libX11
+		x11-libs/libXext
+		x11-libs/libXi
+		x11-libs/libXrender
+		x11-libs/libXtst
+	)"
+
+RESTRICT="preserve-libs splitdebug"
+QA_PREBUILT="*"
+
+S="${WORKDIR}/jdk-${JDK_PV}-jre"
+
+src_install() {
+	local dest="/opt/${PN}-${SLOT}"
+	local ddest="${ED}/${dest#/}"
+
+	# Not sure why they bundle this as it's commonly available and they
+	# only do so on x86_64. It's needed by libfontmanager.so. IcedTea
+	# also has an explicit dependency while Oracle seemingly dlopens it.
+	rm -vf lib/libfreetype.so || die
+
+	# Oracle and IcedTea have libjsoundalsa.so depending on
+	# libasound.so.2 but AdoptOpenJDK only has libjsound.so. Weird.
+	if ! use alsa ; then
+		rm -v lib/libjsound.* || die
+	fi
+
+	if use headless-awt ; then
+		rm -v lib/lib*{[jx]awt,splashscreen}* || die
+	fi
+
+	rm -v lib/security/cacerts || die
+	dosym -r /etc/ssl/certs/java/cacerts "${dest}"/lib/security/cacerts
+
+	dodir "${dest}"
+	cp -pPR * "${ddest}" || die
+
+	java-vm_install-env "${FILESDIR}"/${PN}.env.sh
+	java-vm_set-pax-markings "${ddest}"
+	java-vm_revdep-mask
+	java-vm_sandbox-predict /dev/random /proc/self/coredump_filter
+}
+
+pkg_postinst() {
+	java-vm-2_pkg_postinst
+}
diff --git a/dev-java/openj9-openjdk-jre-bin/openj9-openjdk-jre-bin-17.0.9_p9.ebuild b/dev-java/openj9-openjdk-jre-bin/openj9-openjdk-jre-bin-17.0.9_p9.ebuild
deleted file mode 100644
index 7aa42d8..0000000
--- a/dev-java/openj9-openjdk-jre-bin/openj9-openjdk-jre-bin-17.0.9_p9.ebuild
+++ /dev/null
@@ -1,85 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit java-vm-2
-
-abi_uri() {
-	echo "${2-$1}? (
-		https://github.com/ibmruntimes/semeru${SLOT}-binaries/releases/download/jdk-${DL_PV/+/%2B}/ibm-semeru-open-jre_${1}_linux_${DL_PV/+/_}.tar.gz
-	)"
-}
-
-JDK_PV=${PV//_p/+}
-DL_PV=${JDK_PV}_openj9-0.41.0
-SLOT=$(ver_cut 1)
-
-SRC_URI="
-	$(abi_uri aarch64 arm64)
-	$(abi_uri ppc64le ppc64)
-	$(abi_uri x64 amd64)
-"
-
-DESCRIPTION="Prebuilt IBM Semeru JRE binaries provided by IBM"
-HOMEPAGE="https://developer.ibm.com/languages/java/semeru-runtimes/"
-LICENSE="GPL-2-with-classpath-exception"
-KEYWORDS="~amd64 ~arm64 ~ppc64"
-IUSE="alsa cups headless-awt selinux"
-
-RDEPEND="
-	media-libs/fontconfig:1.0
-	media-libs/freetype:2
-	>=sys-apps/baselayout-java-0.1.0-r1
-	>=sys-libs/glibc-2.2.5:*
-	sys-libs/zlib
-	alsa? ( media-libs/alsa-lib )
-	cups? ( net-print/cups )
-	selinux? ( sec-policy/selinux-java )
-	!headless-awt? (
-		x11-libs/libX11
-		x11-libs/libXext
-		x11-libs/libXi
-		x11-libs/libXrender
-		x11-libs/libXtst
-	)"
-
-RESTRICT="preserve-libs splitdebug"
-QA_PREBUILT="*"
-
-S="${WORKDIR}/jdk-${JDK_PV}-jre"
-
-src_install() {
-	local dest="/opt/${PN}-${SLOT}"
-	local ddest="${ED}/${dest#/}"
-
-	# Not sure why they bundle this as it's commonly available and they
-	# only do so on x86_64. It's needed by libfontmanager.so. IcedTea
-	# also has an explicit dependency while Oracle seemingly dlopens it.
-	rm -vf lib/libfreetype.so || die
-
-	# Oracle and IcedTea have libjsoundalsa.so depending on
-	# libasound.so.2 but AdoptOpenJDK only has libjsound.so. Weird.
-	if ! use alsa ; then
-		rm -v lib/libjsound.* || die
-	fi
-
-	if use headless-awt ; then
-		rm -v lib/lib*{[jx]awt,splashscreen}* || die
-	fi
-
-	rm -v lib/security/cacerts || die
-	dosym -r /etc/ssl/certs/java/cacerts "${dest}"/lib/security/cacerts
-
-	dodir "${dest}"
-	cp -pPR * "${ddest}" || die
-
-	java-vm_install-env "${FILESDIR}"/${PN}.env.sh
-	java-vm_set-pax-markings "${ddest}"
-	java-vm_revdep-mask
-	java-vm_sandbox-predict /dev/random /proc/self/coredump_filter
-}
-
-pkg_postinst() {
-	java-vm-2_pkg_postinst
-}
diff --git a/dev-java/openj9-openjdk-jre-bin/openj9-openjdk-jre-bin-21.0.4_p7.ebuild b/dev-java/openj9-openjdk-jre-bin/openj9-openjdk-jre-bin-21.0.4_p7.ebuild
new file mode 100644
index 0000000..5891e46
--- /dev/null
+++ b/dev-java/openj9-openjdk-jre-bin/openj9-openjdk-jre-bin-21.0.4_p7.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit java-vm-2
+
+abi_uri() {
+	echo "${2-$1}? (
+		https://github.com/ibmruntimes/semeru${SLOT}-binaries/releases/download/jdk-${DL_PV/+/%2B}/ibm-semeru-open-jre_${1}_linux_${DL_PV/+/_}.tar.gz
+	)"
+}
+
+JDK_PV=${PV//_p/+}
+DL_PV=${JDK_PV}_openj9-0.46.1
+SLOT=$(ver_cut 1)
+
+SRC_URI="
+	$(abi_uri aarch64 arm64)
+	$(abi_uri ppc64le ppc64)
+	$(abi_uri x64 amd64)
+"
+
+DESCRIPTION="Prebuilt IBM Semeru JRE binaries provided by IBM"
+HOMEPAGE="https://developer.ibm.com/languages/java/semeru-runtimes/"
+LICENSE="GPL-2-with-classpath-exception"
+KEYWORDS="~amd64 ~arm64 ~ppc64"
+IUSE="alsa cups headless-awt selinux"
+
+RDEPEND="
+	media-libs/fontconfig:1.0
+	media-libs/freetype:2
+	>=sys-apps/baselayout-java-0.1.0-r1
+	>=sys-libs/glibc-2.2.5:*
+	sys-libs/zlib
+	alsa? ( media-libs/alsa-lib )
+	cups? ( net-print/cups )
+	selinux? ( sec-policy/selinux-java )
+	!headless-awt? (
+		x11-libs/libX11
+		x11-libs/libXext
+		x11-libs/libXi
+		x11-libs/libXrender
+		x11-libs/libXtst
+	)"
+
+RESTRICT="preserve-libs splitdebug"
+QA_PREBUILT="*"
+
+S="${WORKDIR}/jdk-${JDK_PV}-jre"
+
+src_install() {
+	local dest="/opt/${PN}-${SLOT}"
+	local ddest="${ED}/${dest#/}"
+
+	# Not sure why they bundle this as it's commonly available and they
+	# only do so on x86_64. It's needed by libfontmanager.so. IcedTea
+	# also has an explicit dependency while Oracle seemingly dlopens it.
+	rm -vf lib/libfreetype.so || die
+
+	# Oracle and IcedTea have libjsoundalsa.so depending on
+	# libasound.so.2 but AdoptOpenJDK only has libjsound.so. Weird.
+	if ! use alsa ; then
+		rm -v lib/libjsound.* || die
+	fi
+
+	if use headless-awt ; then
+		rm -v lib/lib*{[jx]awt,splashscreen}* || die
+	fi
+
+	rm -v lib/security/cacerts || die
+	dosym -r /etc/ssl/certs/java/cacerts "${dest}"/lib/security/cacerts
+
+	dodir "${dest}"
+	cp -pPR * "${ddest}" || die
+
+	java-vm_install-env "${FILESDIR}"/${PN}.env.sh
+	java-vm_set-pax-markings "${ddest}"
+	java-vm_revdep-mask
+	java-vm_sandbox-predict /dev/random /proc/self/coredump_filter
+}
+
+pkg_postinst() {
+	java-vm-2_pkg_postinst
+}
diff --git a/dev-java/openj9-openjdk/Manifest b/dev-java/openj9-openjdk/Manifest
index 59d3825..ca28a90 100644
--- a/dev-java/openj9-openjdk/Manifest
+++ b/dev-java/openj9-openjdk/Manifest
@@ -1,4 +1,4 @@
-DIST openj9-0.41.0.tar.gz 18175551 BLAKE2B 691251444980b715b30d2624f6bf9e3964fb848201491f9ac18076ad8d4e354f34ba38affdf55ddf2631ddbd980a5fa4a39a7ac4dab9da8d8cf912711e03009a SHA512 39b5b3d950954183fcfce40398ab7a990a5030e7f403d2e1eb216a914345ec78bcdac14c5c2b24c7ddafcb75a91e267b03c752f88189b537258967f2d191efea
-DIST openj9-omr-0.41.0.tar.gz 8058703 BLAKE2B ead5711d9ab0400ddee7798c594585b9bfe73eeb20fc59f191ba062e64005f8c41c4ff8049e58d95cdb5f2175929274ae306c0b4f7938e8c5c8df2f9962d59df SHA512 2429994271f8367204b0e6d75450a7d283dc0fc1166055340a050cf80e06e87d95e3df0607d8d2554fb4adfa712f6ff048fb3d0fb24efed1960e5e3802b7f02d
-DIST openj9-openjdk-jdk11-openj9-0.41.0.tar.gz 102514856 BLAKE2B cb1bdc624ae4222ceaac329c5a70ac9f69003bad1dafbd2600fd088538a988b659f368615d5a269c0965caeb14df5b60cf80231d203fbe4a6302ba14a29fccaa SHA512 681a5d636c4672dae489cf71dfd6d9f8879a6ffe795912ecf9fa8f319f2039a16b9db2a75ee69bee9330f2978c411b077d496dc46ff91d9ec4c835f2b32d6142
-DIST openj9-openjdk-jdk17-openj9-0.41.0.tar.gz 95151687 BLAKE2B 4f31f740d3bc568910ec9c0c55b980a51e13272c1fd2d740e019b0fbe1631910e4f961170b26221bcf49d88e47fe0f314ab1182d113581abdecd096f873f71f6 SHA512 5d6e58a317c641b5b73295ee2f3ca63e85d14385640727e949ad06c41dc260fd710eef9f5eac8cb426e1524439359340f2d1ab606c752d77643baeb3201a2d18
+DIST openj9-0.46.1.tar.gz 18342761 BLAKE2B 63f73666ec2bf6d0f8d37ed17f6ae43a2732b413260d340c896000f8b2a025285cd425a9c8e25da2e46863109c73cbd2767112ad86c9f97a68236774e98658fb SHA512 a243ca6f6c8a762079d9884e40d509204a589e970b316cd9d574db4f02e24175187b36400caf79b9c306b76fa22a679ff81f1678daa2cb6589ca324302e875a4
+DIST openj9-omr-0.46.1.tar.gz 8110029 BLAKE2B e36edd58026d8a14eccfd6dca8b1bfc3f98d1b4873d0835e6f5ced14c2a3bf8dcbf152c88197ac9f1788d60444582f32fce7d324673b395a9ccf04d81d1b2fdb SHA512 7dc44aec1655a8add2dd5a91b05c164fc9182aadd1bfe961d2734f59dfd082e489365e5b33ac6a59e9838cef0db0f69f5cf66bbc326761ed583540cd099fcaba
+DIST openj9-openjdk-jdk11-openj9-0.46.1.tar.gz 102673195 BLAKE2B 05e6b41693ba23cb9b0ed809f20b5c0e9d1f512dc205013dc9a8fa3be07fa23c20a5d50b7edcf6ab8de5315faef2ac997b4224119d54ed42a7e2eb9ab32f5add SHA512 7976e5319466ae829397a639e8ac03753777cb61503acb03d98c8ad5b61de639244be2dbaa9e2def78127b639fbd2a7e4b5d6ae6ce862c6dbeadc96c77e28a63
+DIST openj9-openjdk-jdk21-openj9-0.46.1.tar.gz 100343564 BLAKE2B 24638cd0a351d2a333df100acd72b1ddb5088e15fd9415b66e67d236ee670ee305dba53c4b520cefc89b43838b8a0d36a6341ecb5053663fde70f4e2c8e2792e SHA512 942542139e8cd61cce0e64e229f56e808608e1a2432b53cfa774f5afa163ccf1c06356e693d8aedf7de7849fbeca5c357f5e2359c7f96d49c2ed9804d24a94a1
diff --git a/dev-java/openj9-openjdk/files/openj9.patch b/dev-java/openj9-openjdk/files/openj9.patch
new file mode 100644
index 0000000..0233be5
--- /dev/null
+++ b/dev-java/openj9-openjdk/files/openj9.patch
@@ -0,0 +1,12 @@
+diff --git a/runtime/oti/xhelpers.m4 b/runtime/oti/xhelpers.m4
+index 9d9fe46aba..793bb06901 100644
+--- a/runtime/oti/xhelpers.m4
++++ b/runtime/oti/xhelpers.m4
+@@ -93,7 +93,6 @@ define({SHORT_JMP},{short})
+ 
+ define({FILE_START},{
+ 	.intel_syntax noprefix
+-	.arch pentium4
+ 	.text
+ })
+ 
diff --git a/dev-java/openj9-openjdk/openj9-openjdk-11.0.41.0.ebuild b/dev-java/openj9-openjdk/openj9-openjdk-11.0.41.0.ebuild
deleted file mode 100644
index 35bc082..0000000
--- a/dev-java/openj9-openjdk/openj9-openjdk-11.0.41.0.ebuild
+++ /dev/null
@@ -1,287 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit check-reqs eapi8-dosym flag-o-matic java-pkg-2 java-vm-2 multiprocessing toolchain-funcs
-
-SLOT="$(ver_cut 1)"
-OPENJ9_PV="$(ver_cut 2-4)"
-OPENJ9_P=openj9-${OPENJ9_PV}
-
-DESCRIPTION="Extensions for OpenJDK for Eclipse OpenJ9"
-HOMEPAGE="https://www.eclipse.org/openj9/"
-if [[ ${OPENJ9_PV} == 9999 ]]; then
-	inherit git-r3
-	EGIT_REPO_URI="https://github.com/ibmruntimes/openj9-openjdk-jdk${SLOT}.git"
-	OPENJ9_EGIT_REPO_URI="https://github.com/eclipse/openj9.git"
-	OPENJ9_OMR_EGIT_REPO_URI="https://github.com/eclipse/openj9-omr.git"
-else
-	SRC_URI="
-		https://github.com/ibmruntimes/openj9-openjdk-jdk${SLOT}/archive/${OPENJ9_P}.tar.gz -> openj9-openjdk-jdk${SLOT}-${OPENJ9_P}.tar.gz
-		https://github.com/eclipse/openj9/archive/${OPENJ9_P}.tar.gz
-		https://github.com/eclipse/openj9-omr/archive/${OPENJ9_P}.tar.gz -> openj9-omr-${OPENJ9_PV}.tar.gz
-	"
-fi
-
-LICENSE="GPL-2"
-KEYWORDS="~amd64"
-
-IUSE="alsa cups ddr debug doc headless-awt javafx +jbootstrap jitserver numa selinux source systemtap"
-
-REQUIRED_USE="
-	javafx? ( alsa !headless-awt )
-"
-
-COMMON_DEPEND="
-	media-libs/freetype:2=
-	media-libs/giflib:0/7
-	media-libs/harfbuzz:=
-	media-libs/libpng:0=
-	media-libs/lcms:2=
-	sys-libs/zlib
-	media-libs/libjpeg-turbo:0=
-	systemtap? ( dev-util/systemtap )
-
-	dev-libs/elfutils
-	ddr? ( dev-libs/libdwarf )
-	numa? ( sys-process/numactl )
-"
-
-# Many libs are required to build, but not to run, make is possible to remove
-# by listing conditionally in RDEPEND unconditionally in DEPEND
-RDEPEND="
-	${COMMON_DEPEND}
-	>=sys-apps/baselayout-java-0.1.0-r1
-	!headless-awt? (
-		x11-libs/libX11
-		x11-libs/libXext
-		x11-libs/libXi
-		x11-libs/libXrandr
-		x11-libs/libXrender
-		x11-libs/libXt
-		x11-libs/libXtst
-	)
-	alsa? ( media-libs/alsa-lib )
-	cups? ( net-print/cups )
-	selinux? ( sec-policy/selinux-java )
-"
-
-DEPEND="
-	${COMMON_DEPEND}
-	app-arch/zip
-	dev-lang/nasm
-	media-libs/alsa-lib
-	net-print/cups
-	x11-base/xorg-proto
-	x11-libs/libX11
-	x11-libs/libXext
-	x11-libs/libXi
-	x11-libs/libXrandr
-	x11-libs/libXrender
-	x11-libs/libXt
-	x11-libs/libXtst
-	javafx? ( dev-java/openjfx:${SLOT}= )
-	|| (
-		dev-java/openj9-openjdk-bin:${SLOT}
-		dev-java/openj9-openjdk:${SLOT}
-		dev-java/openjdk-bin:${SLOT}
-		dev-java/openjdk:${SLOT}
-	)
-"
-
-S="${WORKDIR}/${PN}-jdk${SLOT}-${OPENJ9_P}"
-
-# The space required to build varies wildly depending on USE flags,
-# ranging from 3GB to 16GB. This function is certainly not exact but
-# should be close enough to be useful.
-openjdk_check_requirements() {
-	local M
-	M=3192
-	M=$(( $(usex jbootstrap 2 1) * $M ))
-	M=$(( $(usex debug 3 1) * $M ))
-	M=$(( $(usex doc 320 0) + $(usex source 128 0) + 192 + $M ))
-
-	CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
-}
-
-pkg_pretend() {
-	openjdk_check_requirements
-	if [[ ${MERGE_TYPE} != binary ]]; then
-		has ccache ${FEATURES} && die "FEATURES=ccache doesn't work with ${PN}, bug #677876"
-
-		if use jitserver && tc-is-clang; then
-			die "jitserver does not compile with clang"
-		fi
-	fi
-}
-
-pkg_setup() {
-	openjdk_check_requirements
-	java-vm-2_pkg_setup
-
-	[[ ${MERGE_TYPE} == "binary" ]] && return
-
-	JAVA_PKG_WANT_BUILD_VM="openj9-openjdk-${SLOT} openj9-openjdk-bin-${SLOT} openjdk-${SLOT} openjdk-bin-${SLOT}"
-	JAVA_PKG_WANT_SOURCE="${SLOT}"
-	JAVA_PKG_WANT_TARGET="${SLOT}"
-
-	java-pkg-2_pkg_setup
-}
-
-src_unpack() {
-	if [[ ${OPENJ9_PV} == 9999 ]]; then
-		EGIT_CHECKOUT_DIR=openj9 EGIT_REPO_URI=${OPENJ9_EGIT_REPO_URI} git-r3_src_unpack
-		EGIT_CHECKOUT_DIR=openj9-omr EGIT_REPO_URI=${OPENJ9_OMR_EGIT_REPO_URI} git-r3_src_unpack
-		# unpack openjdk last to save correct EGIT_VERSION
-		EGIT_CHECKOUT_DIR=${S} git-r3_src_unpack
-	else
-		default
-	fi
-}
-
-src_prepare() {
-	if [[ ${OPENJ9_PV} == 9999 ]]; then
-		ln -s ../openj9 openj9 || die
-		ln -s ../openj9-omr omr || die
-	else
-		ln -s ../openj9-${OPENJ9_P} openj9 || die
-		ln -s ../openj9-omr-${OPENJ9_P} omr || die
-	fi
-
-	default
-
-	eapply -- "${FILESDIR}/openj9-openjdk-override-version.patch"
-	eapply -d openj9 -- "${FILESDIR}/openj9-no-o3.patch"
-	eapply -d omr -- "${FILESDIR}/omr-omrstr-iconv-failure-overflow.patch"
-
-	find openj9/ omr/ -name CMakeLists.txt -exec sed -i -e '/set(OMR_WARNINGS_AS_ERRORS ON/s/ON/OFF/' {} + || die
-	sed -i -e '/^  OPENJ9_CONFIGURE_NUMA$/d' closed/autoconf/custom-hook.m4 || die
-
-	chmod +x configure || die
-}
-
-src_configure() {
-	# Work around stack alignment issue, bug #647954. in case we ever have x86
-	use x86 && append-flags -mincoming-stack-boundary=2
-
-	# Enabling full docs appears to break doc building. If not
-	# explicitly disabled, the flag will get auto-enabled if pandoc and
-	# graphviz are detected. pandoc has loads of dependencies anyway.
-
-	local myconf=(
-		--disable-ccache
-		--disable-precompiled-headers
-		--disable-warnings-as-errors{,-omr,-openj9}
-		--enable-full-docs=no
-		--with-boot-jdk="${JDK_HOME}"
-		--with-extra-cflags="${CFLAGS}"
-		--with-extra-cxxflags="${CXXFLAGS}"
-		--with-extra-ldflags="${LDFLAGS}"
-		--with-stdc++lib=dynamic
-		--with-freetype=system
-		--with-giflib=system
-		--with-harfbuzz=system
-		--with-lcms=system
-		--with-libjpeg=system
-		--with-libpng=system
-		--with-native-debug-symbols=$(usex debug internal none)
-		--with-vendor-name="Gentoo"
-		--with-vendor-url="https://gentoo.org"
-		--with-vendor-bug-url="https://bugs.gentoo.org"
-		--with-vendor-vm-bug-url="https://bugs.openjdk.java.net"
-		--with-vendor-version-string="${PVR}"
-		--with-version-pre=""
-		--with-zlib=system
-		--enable-dtrace=$(usex systemtap yes no)
-		--enable-headless-only=$(usex headless-awt yes no)
-		$(tc-is-clang && echo "--with-toolchain-type=clang")
-
-		--with-cmake
-		$(use_enable ddr)
-		$(use_enable jitserver)
-	)
-
-	if use javafx; then
-		local zip="${EPREFIX}/usr/$(get_libdir)/openjfx-${SLOT}/javafx-exports.zip"
-		if [[ -r ${zip} ]]; then
-			myconf+=( --with-import-modules="${zip}" )
-		else
-			die "${zip} not found or not readable"
-		fi
-	fi
-
-	(
-		unset _JAVA_OPTIONS JAVA JAVA_TOOL_OPTIONS JAVAC XARGS
-		CFLAGS= CXXFLAGS= LDFLAGS= \
-		CONFIG_SITE=/dev/null \
-		econf "${myconf[@]}"
-	)
-}
-
-src_compile() {
-	local mycmakeargsx=(
-		"-DCMAKE_C_FLAGS='${CFLAGS}'"
-		"-DJ9JIT_EXTRA_CFLAGS='${CFLAGS}'"
-		"-DCMAKE_CXX_FLAGS='${CXXFLAGS}'"
-		"-DJ9JIT_EXTRA_CXXFLAGS='${CXXFLAGS}'"
-		"-DCMAKE_EXE_LINKER_FLAGS='${LDFLAGS}'"
-		-DOMR_WARNINGS_AS_ERRORS=OFF
-		-DOMR_PORT_NUMA_SUPPORT=$(usex numa)
-	)
-	local myemakeargs=(
-		JOBS=$(makeopts_jobs)
-		LOG=debug
-		$(usex doc docs '')
-		$(usex jbootstrap bootcycle-images product-images)
-
-		EXTRA_CMAKE_ARGS="${mycmakeargsx[*]}"
-		OPENJDK_SHA=$(ver_cut 1-3)
-		OPENJ9_SHA=${OPENJ9_P}
-		OPENJ9_TAG=${OPENJ9_P}
-		OPENJ9OMR_SHA=${OPENJ9_P}
-	)
-	emake "${myemakeargs[@]}" -j1 #nowarn
-}
-
-src_install() {
-	local dest="/usr/$(get_libdir)/${PN}-${SLOT}"
-	local ddest="${ED}/${dest#/}"
-
-	cd "${S}"/build/*-release/images/jdk || die
-
-	# Create files used as storage for system preferences.
-	mkdir .systemPrefs || die
-	touch .systemPrefs/.system.lock || die
-	touch .systemPrefs/.systemRootModFile || die
-
-	# Oracle and IcedTea have libjsoundalsa.so depending on
-	# libasound.so.2 but OpenJDK only has libjsound.so. Weird.
-	if ! use alsa ; then
-		rm -v lib/libjsound.* || die
-	fi
-
-	if ! use source ; then
-		rm -v lib/src.zip || die
-	fi
-
-	rm -v lib/security/cacerts || die
-
-	dodir "${dest}"
-	cp -pPR * "${ddest}" || die
-
-	dosym8 -r /etc/ssl/certs/java/cacerts "${dest}"/lib/security/cacerts
-
-	# must be done before running itself
-	java-vm_set-pax-markings "${ddest}"
-
-	java-vm_install-env "${FILESDIR}"/${PN}.env.sh
-	java-vm_revdep-mask
-	java-vm_sandbox-predict /dev/random /proc/self/coredump_filter
-
-	if use doc ; then
-		docinto html
-		dodoc -r "${S}"/build/*-release/images/docs/*
-		dosym ../../../usr/share/doc/"${PF}" /usr/share/doc/"${PN}-${SLOT}"
-	fi
-}
diff --git a/dev-java/openj9-openjdk/openj9-openjdk-11.0.46.1.ebuild b/dev-java/openj9-openjdk/openj9-openjdk-11.0.46.1.ebuild
new file mode 100644
index 0000000..4e7eb58
--- /dev/null
+++ b/dev-java/openj9-openjdk/openj9-openjdk-11.0.46.1.ebuild
@@ -0,0 +1,311 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit check-reqs flag-o-matic java-pkg-2 java-vm-2 multiprocessing toolchain-funcs
+
+SLOT="$(ver_cut 1)"
+OPENJ9_PV="$(ver_cut 2-4)"
+OPENJ9_P=openj9-${OPENJ9_PV}
+
+DESCRIPTION="Extensions for OpenJDK for Eclipse OpenJ9"
+HOMEPAGE="https://www.eclipse.org/openj9/"
+if [[ ${OPENJ9_PV} == 9999 ]]; then
+	inherit git-r3
+	EGIT_REPO_URI="https://github.com/ibmruntimes/openj9-openjdk-jdk${SLOT}.git"
+	OPENJ9_EGIT_REPO_URI="https://github.com/eclipse/openj9.git"
+	OPENJ9_OMR_EGIT_REPO_URI="https://github.com/eclipse/openj9-omr.git"
+else
+	SRC_URI="
+		https://github.com/ibmruntimes/openj9-openjdk-jdk${SLOT}/archive/${OPENJ9_P}.tar.gz -> openj9-openjdk-jdk${SLOT}-${OPENJ9_P}.tar.gz
+		https://github.com/eclipse/openj9/archive/${OPENJ9_P}.tar.gz
+		https://github.com/eclipse/openj9-omr/archive/${OPENJ9_P}.tar.gz -> openj9-omr-${OPENJ9_PV}.tar.gz
+	"
+fi
+
+LICENSE="GPL-2-with-classpath-exception"
+KEYWORDS="~amd64"
+
+IUSE="alsa cups ddr debug doc headless-awt javafx +jbootstrap jitserver numa selinux source systemtap"
+
+REQUIRED_USE="
+	javafx? ( alsa !headless-awt )
+"
+
+COMMON_DEPEND="
+	media-libs/freetype:2=
+	media-libs/giflib:0/7
+	media-libs/harfbuzz:=
+	media-libs/libpng:0=
+	media-libs/lcms:2=
+	sys-libs/zlib
+	media-libs/libjpeg-turbo:0=
+	systemtap? ( dev-debug/systemtap )
+
+	dev-libs/elfutils
+	ddr? ( dev-libs/libdwarf )
+	numa? ( sys-process/numactl )
+"
+
+# Many libs are required to build, but not to run, make is possible to remove
+# by listing conditionally in RDEPEND unconditionally in DEPEND
+RDEPEND="
+	${COMMON_DEPEND}
+	>=sys-apps/baselayout-java-0.1.0-r1
+	!headless-awt? (
+		x11-libs/libX11
+		x11-libs/libXext
+		x11-libs/libXi
+		x11-libs/libXrandr
+		x11-libs/libXrender
+		x11-libs/libXt
+		x11-libs/libXtst
+	)
+	alsa? ( media-libs/alsa-lib )
+	cups? ( net-print/cups )
+	selinux? ( sec-policy/selinux-java )
+"
+
+DEPEND="
+	${COMMON_DEPEND}
+	app-arch/zip
+	dev-lang/nasm
+	media-libs/alsa-lib
+	net-print/cups
+	x11-base/xorg-proto
+	x11-libs/libX11
+	x11-libs/libXext
+	x11-libs/libXi
+	x11-libs/libXrandr
+	x11-libs/libXrender
+	x11-libs/libXt
+	x11-libs/libXtst
+	javafx? ( dev-java/openjfx:${SLOT}= )
+	|| (
+		dev-java/openj9-openjdk-bin:${SLOT}
+		dev-java/openj9-openjdk:${SLOT}
+		dev-java/openjdk-bin:${SLOT}
+		dev-java/openjdk:${SLOT}
+	)
+"
+
+S="${WORKDIR}/${PN}-jdk${SLOT}-${OPENJ9_P}"
+
+# The space required to build varies wildly depending on USE flags,
+# ranging from 3GB to 16GB. This function is certainly not exact but
+# should be close enough to be useful.
+openjdk_check_requirements() {
+	local M
+	M=3192
+	M=$(( $(usex jbootstrap 2 1) * $M ))
+	M=$(( $(usex debug 3 1) * $M ))
+	M=$(( $(usex doc 320 0) + $(usex source 128 0) + 192 + $M ))
+
+	CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
+}
+
+pkg_pretend() {
+	openjdk_check_requirements
+	if [[ ${MERGE_TYPE} != binary ]]; then
+		has ccache ${FEATURES} && die "FEATURES=ccache doesn't work with ${PN}, bug #677876"
+
+		if use jitserver && tc-is-clang; then
+			die "jitserver does not compile with clang"
+		fi
+	fi
+}
+
+pkg_setup() {
+	openjdk_check_requirements
+	java-vm-2_pkg_setup
+
+	[[ ${MERGE_TYPE} == "binary" ]] && return
+
+	JAVA_PKG_WANT_BUILD_VM="openj9-openjdk-${SLOT} openj9-openjdk-bin-${SLOT} openjdk-${SLOT} openjdk-bin-${SLOT}"
+	JAVA_PKG_WANT_SOURCE="${SLOT}"
+	JAVA_PKG_WANT_TARGET="${SLOT}"
+
+	java-pkg-2_pkg_setup
+}
+
+src_unpack() {
+	if [[ ${OPENJ9_PV} == 9999 ]]; then
+		EGIT_CHECKOUT_DIR=openj9 EGIT_REPO_URI=${OPENJ9_EGIT_REPO_URI} git-r3_src_unpack
+		EGIT_CHECKOUT_DIR=openj9-omr EGIT_REPO_URI=${OPENJ9_OMR_EGIT_REPO_URI} git-r3_src_unpack
+		# unpack openjdk last to save correct EGIT_VERSION
+		EGIT_CHECKOUT_DIR=${S} git-r3_src_unpack
+	else
+		default
+	fi
+}
+
+src_prepare() {
+	if [[ ${OPENJ9_PV} == 9999 ]]; then
+		ln -s ../openj9 openj9 || die
+		ln -s ../openj9-omr omr || die
+	else
+		ln -s ../openj9-${OPENJ9_P} openj9 || die
+		ln -s ../openj9-omr-${OPENJ9_P} omr || die
+	fi
+
+	default
+
+	eapply -- "${FILESDIR}/openj9-openjdk-override-version.patch"
+	eapply -d openj9 -- "${FILESDIR}/openj9-no-o3.patch"
+	eapply -d omr -- "${FILESDIR}/omr-omrstr-iconv-failure-overflow.patch"
+
+	find openj9/ omr/ -name CMakeLists.txt -exec sed -i -e '/set(OMR_WARNINGS_AS_ERRORS ON/s/ON/OFF/' {} + || die
+	sed -i -e '/^  OPENJ9_CONFIGURE_NUMA$/d' closed/autoconf/custom-hook.m4 || die
+
+	chmod +x configure || die
+}
+
+src_configure() {
+	# Work around stack alignment issue, bug #647954.
+	use x86 && append-flags -mincoming-stack-boundary=2
+
+	# Strip some flags users may set, but should not. #818502
+	filter-flags -fexceptions
+
+	# Strip lto related flags, we rely on USE=lto and --with-jvm-features=link-time-opt
+	# https://bugs.gentoo.org/833097
+	# https://bugs.gentoo.org/833098
+	filter-lto
+	filter-flags -fdevirtualize-at-ltrans
+
+	# Enabling full docs appears to break doc building. If not
+	# explicitly disabled, the flag will get auto-enabled if pandoc and
+	# graphviz are detected. pandoc has loads of dependencies anyway.
+
+	local myconf=(
+		--disable-ccache
+		--disable-precompiled-headers
+		--disable-warnings-as-errors{,-omr,-openj9}
+		--enable-full-docs=no
+		--with-boot-jdk="${JDK_HOME}"
+		--with-extra-cflags="${CFLAGS}"
+		--with-extra-cxxflags="${CXXFLAGS}"
+		--with-extra-ldflags="${LDFLAGS}"
+		--with-stdc++lib=dynamic
+		--with-freetype=system
+		--with-giflib=system
+		--with-harfbuzz=system
+		--with-lcms=system
+		--with-libjpeg=system
+		--with-libpng=system
+		--with-native-debug-symbols=$(usex debug internal none)
+		--with-vendor-name="Gentoo"
+		--with-vendor-url="https://gentoo.org"
+		--with-vendor-bug-url="https://bugs.gentoo.org"
+		--with-vendor-vm-bug-url="https://bugs.openjdk.java.net"
+		--with-vendor-version-string="${PVR}"
+		--with-version-pre=""
+		--with-zlib=system
+		--enable-dtrace=$(usex systemtap yes no)
+		--enable-headless-only=$(usex headless-awt yes no)
+		$(tc-is-clang && echo "--with-toolchain-type=clang")
+
+		--with-cmake
+		$(use_enable ddr)
+		$(use_enable jitserver)
+	)
+
+	use lto && myconf+=( --with-jvm-features=link-time-opt )
+
+	if use javafx; then
+		# this is not useful for users, just for upstream developers
+		# build system compares mesa version in md file
+		# https://bugs.gentoo.org/822612
+		export LEGAL_EXCLUDES=mesa3d.md
+
+		local zip="${EPREFIX}/usr/$(get_libdir)/openjfx-${SLOT}/javafx-exports.zip"
+		if [[ -r ${zip} ]]; then
+			myconf+=( --with-import-modules="${zip}" )
+		else
+			die "${zip} not found or not readable"
+		fi
+	fi
+
+	(
+		unset _JAVA_OPTIONS JAVA JAVA_TOOL_OPTIONS JAVAC XARGS
+		CFLAGS= CXXFLAGS= LDFLAGS= \
+		CONFIG_SITE=/dev/null \
+		econf "${myconf[@]}"
+	)
+}
+
+src_compile() {
+	# Too brittle - gets confused by e.g. -Oline
+	export MAKEOPTS="-j$(makeopts_jobs) -l$(makeopts_loadavg)"
+	unset GNUMAKEFLAGS MAKEFLAGS
+
+	local mycmakeargsx=(
+		"-DCMAKE_C_FLAGS='${CFLAGS}'"
+		"-DJ9JIT_EXTRA_CFLAGS='${CFLAGS}'"
+		"-DCMAKE_CXX_FLAGS='${CXXFLAGS}'"
+		"-DJ9JIT_EXTRA_CXXFLAGS='${CXXFLAGS}'"
+		"-DCMAKE_EXE_LINKER_FLAGS='${LDFLAGS}'"
+		-DOMR_WARNINGS_AS_ERRORS=OFF
+		-DOMR_PORT_NUMA_SUPPORT=$(usex numa)
+	)
+	local myemakeargs=(
+		JOBS=$(makeopts_jobs)
+		LOG=debug
+		$(usex doc docs '')
+		$(usex jbootstrap bootcycle-images product-images)
+
+		EXTRA_CMAKE_ARGS="${mycmakeargsx[*]}"
+		OPENJDK_SHA=$(ver_cut 1-3)
+		OPENJ9_SHA=${OPENJ9_P}
+		OPENJ9_TAG=${OPENJ9_P}
+		OPENJ9OMR_SHA=${OPENJ9_P}
+	)
+	emake "${myemakeargs[@]}" -j1 #nowarn
+}
+
+src_install() {
+	local dest="/usr/$(get_libdir)/${PN}-${SLOT}"
+	local ddest="${ED}/${dest#/}"
+
+	cd "${S}"/build/*-release/images/jdk || die
+
+	# Create files used as storage for system preferences.
+	mkdir .systemPrefs || die
+	touch .systemPrefs/.system.lock || die
+	touch .systemPrefs/.systemRootModFile || die
+
+	# Oracle and IcedTea have libjsoundalsa.so depending on
+	# libasound.so.2 but OpenJDK only has libjsound.so. Weird.
+	if ! use alsa ; then
+		rm -v lib/libjsound.* || die
+	fi
+
+	if ! use source ; then
+		rm -v lib/src.zip || die
+	fi
+
+	rm -v lib/security/cacerts || die
+
+	dodir "${dest}"
+	cp -pPR * "${ddest}" || die
+
+	dosym8 -r /etc/ssl/certs/java/cacerts "${dest}"/lib/security/cacerts
+
+	# must be done before running itself
+	java-vm_set-pax-markings "${ddest}"
+
+	java-vm_install-env "${FILESDIR}"/${PN}.env.sh
+	java-vm_revdep-mask
+	java-vm_sandbox-predict /dev/random /proc/self/coredump_filter
+
+	if use doc ; then
+		docinto html
+		dodoc -r "${S}"/build/*-release/images/docs/*
+		dosym -r /usr/share/doc/"${PF}" /usr/share/doc/"${PN}-${SLOT}"
+	fi
+}
+
+pkg_postinst() {
+	java-vm-2_pkg_postinst
+}
diff --git a/dev-java/openj9-openjdk/openj9-openjdk-17.0.41.0.ebuild b/dev-java/openj9-openjdk/openj9-openjdk-17.0.41.0.ebuild
deleted file mode 100644
index ca64ddd..0000000
--- a/dev-java/openj9-openjdk/openj9-openjdk-17.0.41.0.ebuild
+++ /dev/null
@@ -1,319 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit check-reqs eapi8-dosym flag-o-matic java-pkg-2 java-vm-2 multiprocessing toolchain-funcs
-
-SLOT="$(ver_cut 1)"
-OPENJ9_PV="$(ver_cut 2-4)"
-OPENJ9_P=openj9-${OPENJ9_PV}
-
-DESCRIPTION="Extensions for OpenJDK for Eclipse OpenJ9"
-HOMEPAGE="https://www.eclipse.org/openj9/"
-if [[ ${OPENJ9_PV} == 9999 ]]; then
-	inherit git-r3
-	EGIT_REPO_URI="https://github.com/ibmruntimes/openj9-openjdk-jdk${SLOT}.git"
-	OPENJ9_EGIT_REPO_URI="https://github.com/eclipse/openj9.git"
-	OPENJ9_OMR_EGIT_REPO_URI="https://github.com/eclipse/openj9-omr.git"
-else
-	SRC_URI="
-		https://github.com/ibmruntimes/openj9-openjdk-jdk${SLOT}/archive/${OPENJ9_P}.tar.gz -> openj9-openjdk-jdk${SLOT}-${OPENJ9_P}.tar.gz
-		https://github.com/eclipse/openj9/archive/${OPENJ9_P}.tar.gz
-		https://github.com/eclipse/openj9-omr/archive/${OPENJ9_P}.tar.gz -> openj9-omr-${OPENJ9_PV}.tar.gz
-	"
-fi
-
-LICENSE="GPL-2"
-KEYWORDS="~amd64"
-
-IUSE="alsa cups ddr debug doc headless-awt javafx +jbootstrap jitserver numa selinux source systemtap"
-
-REQUIRED_USE="
-	javafx? ( alsa !headless-awt )
-"
-
-COMMON_DEPEND="
-	media-libs/freetype:2=
-	media-libs/giflib:0/7
-	media-libs/harfbuzz:=
-	media-libs/libpng:0=
-	media-libs/lcms:2=
-	sys-libs/zlib
-	media-libs/libjpeg-turbo:0=
-	systemtap? ( dev-util/systemtap )
-
-	dev-libs/elfutils
-	ddr? ( dev-libs/libdwarf )
-	numa? ( sys-process/numactl )
-"
-
-# Many libs are required to build, but not to run, make is possible to remove
-# by listing conditionally in RDEPEND unconditionally in DEPEND
-RDEPEND="
-	${COMMON_DEPEND}
-	>=sys-apps/baselayout-java-0.1.0-r1
-	!headless-awt? (
-		x11-libs/libX11
-		x11-libs/libXext
-		x11-libs/libXi
-		x11-libs/libXrandr
-		x11-libs/libXrender
-		x11-libs/libXt
-		x11-libs/libXtst
-	)
-	alsa? ( media-libs/alsa-lib )
-	cups? ( net-print/cups )
-	selinux? ( sec-policy/selinux-java )
-"
-
-DEPEND="
-	${COMMON_DEPEND}
-	app-arch/zip
-	dev-lang/nasm
-	media-libs/alsa-lib
-	net-print/cups
-	x11-base/xorg-proto
-	x11-libs/libX11
-	x11-libs/libXext
-	x11-libs/libXi
-	x11-libs/libXrandr
-	x11-libs/libXrender
-	x11-libs/libXt
-	x11-libs/libXtst
-	javafx? ( dev-java/openjfx:${SLOT}= )
-	|| (
-		dev-java/openj9-openjdk-bin:${SLOT}
-		dev-java/openj9-openjdk:${SLOT}
-		dev-java/openjdk-bin:${SLOT}
-		dev-java/openjdk:${SLOT}
-	)
-"
-
-S="${WORKDIR}/${PN}-jdk${SLOT}-${OPENJ9_P}"
-
-# The space required to build varies wildly depending on USE flags,
-# ranging from 3GB to 16GB. This function is certainly not exact but
-# should be close enough to be useful.
-openjdk_check_requirements() {
-	local M
-	M=3192
-	M=$(( $(usex jbootstrap 2 1) * $M ))
-	M=$(( $(usex debug 3 1) * $M ))
-	M=$(( $(usex doc 320 0) + $(usex source 128 0) + 192 + $M ))
-
-	CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
-}
-
-pkg_pretend() {
-	openjdk_check_requirements
-	if [[ ${MERGE_TYPE} != binary ]]; then
-		has ccache ${FEATURES} && die "FEATURES=ccache doesn't work with ${PN}, bug #677876"
-
-		if use jitserver && tc-is-clang; then
-			die "jitserver does not compile with clang"
-		fi
-	fi
-}
-
-pkg_setup() {
-	openjdk_check_requirements
-	java-vm-2_pkg_setup
-
-	[[ ${MERGE_TYPE} == "binary" ]] && return
-
-	JAVA_PKG_WANT_BUILD_VM="openj9-openjdk-${SLOT} openj9-openjdk-bin-${SLOT} openjdk-${SLOT} openjdk-bin-${SLOT}"
-	JAVA_PKG_WANT_SOURCE="${SLOT}"
-	JAVA_PKG_WANT_TARGET="${SLOT}"
-
-	# The nastiness below is necessary while the gentoo-vm USE flag is
-	# masked. First we call java-pkg-2_pkg_setup if it looks like the
-	# flag was unmasked against one of the possible build VMs. If not,
-	# we try finding one of them in their expected locations. This would
-	# have been slightly less messy if openjdk-bin had been installed to
-	# /opt/${PN}-${SLOT} or if there was a mechanism to install a VM env
-	# file but disable it so that it would not normally be selectable.
-
-	local vm
-	for vm in ${JAVA_PKG_WANT_BUILD_VM}; do
-		if [[ -d ${BROOT}/usr/lib/jvm/${vm} ]]; then
-			java-pkg-2_pkg_setup
-			return
-		fi
-	done
-}
-
-src_unpack() {
-	if [[ ${OPENJ9_PV} == 9999 ]]; then
-		EGIT_CHECKOUT_DIR=openj9 EGIT_REPO_URI=${OPENJ9_EGIT_REPO_URI} git-r3_src_unpack
-		EGIT_CHECKOUT_DIR=openj9-omr EGIT_REPO_URI=${OPENJ9_OMR_EGIT_REPO_URI} git-r3_src_unpack
-		# unpack openjdk last to save correct EGIT_VERSION
-		EGIT_CHECKOUT_DIR=${S} git-r3_src_unpack
-	else
-		default
-	fi
-}
-
-src_prepare() {
-	if [[ ${OPENJ9_PV} == 9999 ]]; then
-		ln -s ../openj9 openj9 || die
-		ln -s ../openj9-omr omr || die
-	else
-		ln -s ../openj9-${OPENJ9_P} openj9 || die
-		ln -s ../openj9-omr-${OPENJ9_P} omr || die
-	fi
-
-	default
-
-	eapply -- "${FILESDIR}/openj9-openjdk-override-version.patch"
-	eapply -d openj9 -- "${FILESDIR}/openj9-no-o3.patch"
-	eapply -d omr -- "${FILESDIR}/omr-omrstr-iconv-failure-overflow.patch"
-
-	find openj9/ omr/ -name CMakeLists.txt -exec sed -i -e '/set(OMR_WARNINGS_AS_ERRORS ON/s/ON/OFF/' {} + || die
-	sed -i -e '/^  OPENJ9_CONFIGURE_NUMA$/d' closed/autoconf/custom-hook.m4 || die
-
-	chmod +x configure || die
-}
-
-src_configure() {
-	for variant in openj9- ''; do
-		if has_version dev-java/${variant}openjdk:${SLOT}; then
-			JDK_HOME=${EPREFIX}/usr/$(get_libdir)/${variant}openjdk-${SLOT}
-			break
-		elif has_version dev-java/${variant}openjdk-bin:${SLOT}; then
-			JDK_HOME=$(best_version dev-java/${variant}openjdk-bin:${SLOT})
-			JDK_HOME=${JDK_HOME#*/}
-			JDK_HOME=${EPREFIX}/opt/${JDK_HOME%-r*}
-			break
-		fi
-	done
-	[[ -n ${JDK_HOME} ]] || die "Build VM not found!"
-	export JDK_HOME
-
-	# Work around stack alignment issue, bug #647954. in case we ever have x86
-	use x86 && append-flags -mincoming-stack-boundary=2
-
-	# Enabling full docs appears to break doc building. If not
-	# explicitly disabled, the flag will get auto-enabled if pandoc and
-	# graphviz are detected. pandoc has loads of dependencies anyway.
-
-	local myconf=(
-		--disable-ccache
-		--disable-precompiled-headers
-		--disable-warnings-as-errors{,-omr,-openj9}
-		--enable-full-docs=no
-		--with-boot-jdk="${JDK_HOME}"
-		--with-extra-cflags="${CFLAGS}"
-		--with-extra-cxxflags="${CXXFLAGS}"
-		--with-extra-ldflags="${LDFLAGS}"
-		--with-stdc++lib=dynamic
-		--with-freetype=system
-		--with-giflib=system
-		--with-harfbuzz=system
-		--with-lcms=system
-		--with-libjpeg=system
-		--with-libpng=system
-		--with-native-debug-symbols=$(usex debug internal none)
-		--with-vendor-name="Gentoo"
-		--with-vendor-url="https://gentoo.org"
-		--with-vendor-bug-url="https://bugs.gentoo.org"
-		--with-vendor-vm-bug-url="https://bugs.openjdk.java.net"
-		--with-vendor-version-string="${PVR}"
-		--with-version-pre=""
-		--with-zlib=system
-		--enable-dtrace=$(usex systemtap yes no)
-		--enable-headless-only=$(usex headless-awt yes no)
-		$(tc-is-clang && echo "--with-toolchain-type=clang")
-
-		--with-cmake
-		$(use_enable ddr)
-		$(use_enable jitserver)
-	)
-
-	if use javafx; then
-		local zip="${EPREFIX}/usr/$(get_libdir)/openjfx-${SLOT}/javafx-exports.zip"
-		if [[ -r ${zip} ]]; then
-			myconf+=( --with-import-modules="${zip}" )
-		else
-			die "${zip} not found or not readable"
-		fi
-	fi
-
-	(
-		unset _JAVA_OPTIONS JAVA JAVA_TOOL_OPTIONS JAVAC XARGS
-		CFLAGS= CXXFLAGS= LDFLAGS= \
-		CONFIG_SITE=/dev/null \
-		econf "${myconf[@]}"
-	)
-}
-
-src_compile() {
-	local mycmakeargsx=(
-		"-DCMAKE_C_FLAGS='${CFLAGS}'"
-		"-DJ9JIT_EXTRA_CFLAGS='${CFLAGS}'"
-		"-DCMAKE_CXX_FLAGS='${CXXFLAGS}'"
-		"-DJ9JIT_EXTRA_CXXFLAGS='${CXXFLAGS}'"
-		"-DCMAKE_EXE_LINKER_FLAGS='${LDFLAGS}'"
-		-DOMR_WARNINGS_AS_ERRORS=OFF
-		-DOMR_PORT_NUMA_SUPPORT=$(usex numa)
-	)
-	local myemakeargs=(
-		JOBS=$(makeopts_jobs)
-		LOG=debug
-		$(usex doc docs '')
-		$(usex jbootstrap bootcycle-images product-images)
-
-		EXTRA_CMAKE_ARGS="${mycmakeargsx[*]}"
-		OPENJDK_SHA=$(ver_cut 1-3)
-		OPENJ9_SHA=${OPENJ9_P}
-		OPENJ9_TAG=${OPENJ9_P}
-		OPENJ9OMR_SHA=${OPENJ9_P}
-	)
-	emake "${myemakeargs[@]}" -j1 #nowarn
-}
-
-src_install() {
-	local dest="/usr/$(get_libdir)/${PN}-${SLOT}"
-	local ddest="${ED}/${dest#/}"
-
-	cd "${S}"/build/*-release/images/jdk || die
-
-	# Create files used as storage for system preferences.
-	mkdir .systemPrefs || die
-	touch .systemPrefs/.system.lock || die
-	touch .systemPrefs/.systemRootModFile || die
-
-	# Oracle and IcedTea have libjsoundalsa.so depending on
-	# libasound.so.2 but OpenJDK only has libjsound.so. Weird.
-	if ! use alsa ; then
-		rm -v lib/libjsound.* || die
-	fi
-
-	if ! use source ; then
-		rm -v lib/src.zip || die
-	fi
-
-	rm -v lib/security/cacerts || die
-
-	dodir "${dest}"
-	cp -pPR * "${ddest}" || die
-
-	dosym8 -r /etc/ssl/certs/java/cacerts "${dest}"/lib/security/cacerts
-
-	# must be done before running itself
-	java-vm_set-pax-markings "${ddest}"
-
-	java-vm_install-env "${FILESDIR}"/${PN}.env.sh
-	java-vm_revdep-mask
-	java-vm_sandbox-predict /dev/random /proc/self/coredump_filter
-
-	if use doc ; then
-		docinto html
-		dodoc -r "${S}"/build/*-release/images/docs/*
-		dosym ../../../usr/share/doc/"${PF}" /usr/share/doc/"${PN}-${SLOT}"
-	fi
-}
-
-pkg_postinst() {
-	java-vm-2_pkg_postinst
-}
diff --git a/dev-java/openj9-openjdk/openj9-openjdk-21.0.46.1.ebuild b/dev-java/openj9-openjdk/openj9-openjdk-21.0.46.1.ebuild
new file mode 100644
index 0000000..b3076d5
--- /dev/null
+++ b/dev-java/openj9-openjdk/openj9-openjdk-21.0.46.1.ebuild
@@ -0,0 +1,322 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit check-reqs flag-o-matic java-pkg-2 java-vm-2 multiprocessing toolchain-funcs
+
+SLOT="$(ver_cut 1)"
+OPENJ9_PV="$(ver_cut 2-4)"
+OPENJ9_P=openj9-${OPENJ9_PV}
+
+DESCRIPTION="Extensions for OpenJDK for Eclipse OpenJ9"
+HOMEPAGE="https://www.eclipse.org/openj9/"
+if [[ ${OPENJ9_PV} == 9999 ]]; then
+	inherit git-r3
+	EGIT_REPO_URI="https://github.com/ibmruntimes/openj9-openjdk-jdk${SLOT}.git"
+	OPENJ9_EGIT_REPO_URI="https://github.com/eclipse/openj9.git"
+	OPENJ9_OMR_EGIT_REPO_URI="https://github.com/eclipse/openj9-omr.git"
+else
+	SRC_URI="
+		https://github.com/ibmruntimes/openj9-openjdk-jdk${SLOT}/archive/${OPENJ9_P}.tar.gz -> openj9-openjdk-jdk${SLOT}-${OPENJ9_P}.tar.gz
+		https://github.com/eclipse/openj9/archive/${OPENJ9_P}.tar.gz
+		https://github.com/eclipse/openj9-omr/archive/${OPENJ9_P}.tar.gz -> openj9-omr-${OPENJ9_PV}.tar.gz
+	"
+fi
+
+LICENSE="GPL-2-with-classpath-exception"
+KEYWORDS="~amd64"
+
+IUSE="alsa cups ddr debug doc headless-awt javafx +jbootstrap jitserver lto numa selinux source systemtap"
+
+REQUIRED_USE="
+	javafx? ( alsa !headless-awt )
+"
+
+COMMON_DEPEND="
+	media-libs/freetype:2=
+	media-libs/giflib:0/7
+	media-libs/harfbuzz:=
+	media-libs/libpng:0=
+	media-libs/lcms:2=
+	sys-libs/zlib
+	media-libs/libjpeg-turbo:0=
+	systemtap? ( dev-debug/systemtap )
+
+	dev-libs/elfutils
+	ddr? ( dev-libs/libdwarf )
+	numa? ( sys-process/numactl )
+"
+
+# Many libs are required to build, but not to run, make is possible to remove
+# by listing conditionally in RDEPEND unconditionally in DEPEND
+RDEPEND="
+	${COMMON_DEPEND}
+	>=sys-apps/baselayout-java-0.1.0-r1
+	!headless-awt? (
+		x11-libs/libX11
+		x11-libs/libXext
+		x11-libs/libXi
+		x11-libs/libXrandr
+		x11-libs/libXrender
+		x11-libs/libXt
+		x11-libs/libXtst
+	)
+	alsa? ( media-libs/alsa-lib )
+	cups? ( net-print/cups )
+	selinux? ( sec-policy/selinux-java )
+"
+
+DEPEND="
+	${COMMON_DEPEND}
+	app-arch/zip
+	dev-lang/nasm
+	media-libs/alsa-lib
+	net-print/cups
+	x11-base/xorg-proto
+	x11-libs/libX11
+	x11-libs/libXext
+	x11-libs/libXi
+	x11-libs/libXrandr
+	x11-libs/libXrender
+	x11-libs/libXt
+	x11-libs/libXtst
+	javafx? ( dev-java/openjfx:${SLOT}= )
+	|| (
+		dev-java/openj9-openjdk-bin:${SLOT}
+		dev-java/openj9-openjdk:${SLOT}
+		dev-java/openjdk-bin:${SLOT}
+		dev-java/openjdk:${SLOT}
+	)
+"
+
+S="${WORKDIR}/${PN}-jdk${SLOT}-${OPENJ9_P}"
+
+# The space required to build varies wildly depending on USE flags,
+# ranging from 3GB to 16GB. This function is certainly not exact but
+# should be close enough to be useful.
+openjdk_check_requirements() {
+	local M
+	M=3192
+	M=$(( $(usex jbootstrap 2 1) * $M ))
+	M=$(( $(usex debug 3 1) * $M ))
+	M=$(( $(usex doc 320 0) + $(usex source 128 0) + 192 + $M ))
+
+	CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
+}
+
+pkg_pretend() {
+	openjdk_check_requirements
+	if [[ ${MERGE_TYPE} != binary ]]; then
+		has ccache ${FEATURES} && die "FEATURES=ccache doesn't work with ${PN}, bug #677876"
+
+		if use jitserver && tc-is-clang; then
+			die "jitserver does not compile with clang"
+		fi
+	fi
+}
+
+pkg_setup() {
+	openjdk_check_requirements
+	java-vm-2_pkg_setup
+
+	[[ ${MERGE_TYPE} == "binary" ]] && return
+
+	JAVA_PKG_WANT_BUILD_VM="openj9-openjdk-${SLOT} openj9-openjdk-bin-${SLOT} openjdk-${SLOT} openjdk-bin-${SLOT}"
+	JAVA_PKG_WANT_SOURCE="${SLOT}"
+	JAVA_PKG_WANT_TARGET="${SLOT}"
+
+	# The nastiness below is necessary while the gentoo-vm USE flag is
+	# masked. First we call java-pkg-2_pkg_setup if it looks like the
+	# flag was unmasked against one of the possible build VMs. If not,
+	# we try finding one of them in their expected locations. This would
+	# have been slightly less messy if openjdk-bin had been installed to
+	# /opt/${PN}-${SLOT} or if there was a mechanism to install a VM env
+	# file but disable it so that it would not normally be selectable.
+
+	local vm
+	for vm in ${JAVA_PKG_WANT_BUILD_VM}; do
+		if [[ -d ${BROOT}/usr/lib/jvm/${vm} ]]; then
+			java-pkg-2_pkg_setup
+			return
+		fi
+	done
+}
+
+src_unpack() {
+	if [[ ${OPENJ9_PV} == 9999 ]]; then
+		EGIT_CHECKOUT_DIR=openj9 EGIT_REPO_URI=${OPENJ9_EGIT_REPO_URI} git-r3_src_unpack
+		EGIT_CHECKOUT_DIR=openj9-omr EGIT_REPO_URI=${OPENJ9_OMR_EGIT_REPO_URI} git-r3_src_unpack
+		# unpack openjdk last to save correct EGIT_VERSION
+		EGIT_CHECKOUT_DIR=${S} git-r3_src_unpack
+	else
+		default
+	fi
+}
+
+src_prepare() {
+	if [[ ${OPENJ9_PV} == 9999 ]]; then
+		ln -s ../openj9 openj9 || die
+		ln -s ../openj9-omr omr || die
+	else
+		ln -s ../openj9-${OPENJ9_P} openj9 || die
+		ln -s ../openj9-omr-${OPENJ9_P} omr || die
+	fi
+
+	default
+
+	eapply -- "${FILESDIR}/openj9-openjdk-override-version.patch"
+	eapply -d openj9 -- "${FILESDIR}/openj9-no-o3.patch"
+	eapply -d omr -- "${FILESDIR}/omr-omrstr-iconv-failure-overflow.patch"
+	eapply -d openj9 -- "${FILESDIR}/openj9.patch"
+
+	find openj9/ omr/ -name CMakeLists.txt -exec sed -i -e '/set(OMR_WARNINGS_AS_ERRORS ON/s/ON/OFF/' {} + || die
+	sed -i -e '/^  OPENJ9_CONFIGURE_NUMA$/d' closed/autoconf/custom-hook.m4 || die
+
+	chmod +x configure || die
+}
+
+src_configure() {
+	for variant in openj9- ''; do
+		if has_version dev-java/${variant}openjdk:${SLOT}; then
+			JDK_HOME=${EPREFIX}/usr/$(get_libdir)/${variant}openjdk-${SLOT}
+			break
+		elif has_version dev-java/${variant}openjdk-bin:${SLOT}; then
+			JDK_HOME=$(best_version dev-java/${variant}openjdk-bin:${SLOT})
+			JDK_HOME=${JDK_HOME#*/}
+			JDK_HOME=${EPREFIX}/opt/${JDK_HOME%-r*}
+			break
+		fi
+	done
+	[[ -n ${JDK_HOME} ]] || die "Build VM not found!"
+	export JDK_HOME
+
+	# Work around stack alignment issue, bug #647954. in case we ever have x86
+	use x86 && append-flags -mincoming-stack-boundary=2
+
+	# Enabling full docs appears to break doc building. If not
+	# explicitly disabled, the flag will get auto-enabled if pandoc and
+	# graphviz are detected. pandoc has loads of dependencies anyway.
+
+	local myconf=(
+		--disable-ccache
+		--disable-precompiled-headers
+		--disable-warnings-as-errors{,-omr,-openj9}
+		--enable-full-docs=no
+		--with-boot-jdk="${JDK_HOME}"
+		--with-extra-cflags="${CFLAGS}"
+		--with-extra-cxxflags="${CXXFLAGS}"
+		--with-extra-ldflags="${LDFLAGS}"
+		--with-stdc++lib=dynamic
+		--with-freetype=system
+		--with-giflib=system
+		--with-harfbuzz=system
+		--with-lcms=system
+		--with-libjpeg=system
+		--with-libpng=system
+		--with-native-debug-symbols=$(usex debug internal none)
+		--with-vendor-name="Gentoo"
+		--with-vendor-url="https://gentoo.org"
+		--with-vendor-bug-url="https://bugs.gentoo.org"
+		--with-vendor-vm-bug-url="https://bugs.openjdk.java.net"
+		--with-vendor-version-string="${PVR}"
+		--with-version-pre=""
+		--with-zlib=system
+		--enable-jvm-feature-dtrace=$(usex systemtap yes no)
+		--enable-headless-only=$(usex headless-awt yes no)
+		$(tc-is-clang && echo "--with-toolchain-type=clang")
+
+		--with-cmake
+		$(use_enable ddr)
+		$(use_enable jitserver)
+	)
+
+	use lto && myconf+=( --with-jvm-features=link-time-opt )
+
+	if use javafx; then
+		local zip="${EPREFIX}/usr/$(get_libdir)/openjfx-${SLOT}/javafx-exports.zip"
+		if [[ -r ${zip} ]]; then
+			myconf+=( --with-import-modules="${zip}" )
+		else
+			die "${zip} not found or not readable"
+		fi
+	fi
+
+	(
+		unset _JAVA_OPTIONS JAVA JAVA_TOOL_OPTIONS JAVAC XARGS
+		CFLAGS= CXXFLAGS= LDFLAGS= \
+		CONFIG_SITE=/dev/null \
+		econf "${myconf[@]}"
+	)
+}
+
+src_compile() {
+	local mycmakeargsx=(
+		"-DCMAKE_C_FLAGS='${CFLAGS}'"
+		"-DJ9JIT_EXTRA_CFLAGS='${CFLAGS}'"
+		"-DCMAKE_CXX_FLAGS='${CXXFLAGS}'"
+		"-DJ9JIT_EXTRA_CXXFLAGS='${CXXFLAGS}'"
+		"-DCMAKE_EXE_LINKER_FLAGS='${LDFLAGS}'"
+		-DOMR_WARNINGS_AS_ERRORS=OFF
+		-DOMR_PORT_NUMA_SUPPORT=$(usex numa)
+	)
+	local myemakeargs=(
+		JOBS=$(makeopts_jobs)
+		LOG=debug
+		$(usex doc docs '')
+		$(usex jbootstrap bootcycle-images product-images)
+
+		EXTRA_CMAKE_ARGS="${mycmakeargsx[*]}"
+		OPENJDK_SHA=$(ver_cut 1-3)
+		OPENJ9_SHA=${OPENJ9_P}
+		OPENJ9_TAG=${OPENJ9_P}
+		OPENJ9OMR_SHA=${OPENJ9_P}
+	)
+	emake "${myemakeargs[@]}" -j1
+}
+
+src_install() {
+	local dest="/usr/$(get_libdir)/${PN}-${SLOT}"
+	local ddest="${ED}/${dest#/}"
+
+	cd "${S}"/build/*-release/images/jdk || die
+
+	# Create files used as storage for system preferences.
+	mkdir .systemPrefs || die
+	touch .systemPrefs/.system.lock || die
+	touch .systemPrefs/.systemRootModFile || die
+
+	# Oracle and IcedTea have libjsoundalsa.so depending on
+	# libasound.so.2 but OpenJDK only has libjsound.so. Weird.
+	if ! use alsa ; then
+		rm -v lib/libjsound.* || die
+	fi
+
+	if ! use source ; then
+		rm -v lib/src.zip || die
+	fi
+
+	rm -v lib/security/cacerts || die
+
+	dodir "${dest}"
+	cp -pPR * "${ddest}" || die
+
+	dosym -r /etc/ssl/certs/java/cacerts "${dest}"/lib/security/cacerts
+
+	# must be done before running itself
+	java-vm_set-pax-markings "${ddest}"
+
+	java-vm_install-env "${FILESDIR}"/${PN}.env.sh
+	java-vm_revdep-mask
+	java-vm_sandbox-predict /dev/random /proc/self/coredump_filter
+
+	if use doc ; then
+		docinto html
+		dodoc -r "${S}"/build/*-release/images/docs/*
+		dosym ../../../usr/share/doc/"${PF}" /usr/share/doc/"${PN}-${SLOT}"
+	fi
+}
+
+pkg_postinst() {
+	java-vm-2_pkg_postinst
+}
-- 
cgit v1.2.3-70-g09d2