summaryrefslogtreecommitdiff
path: root/dev-java/openj9-openjdk
diff options
context:
space:
mode:
Diffstat (limited to 'dev-java/openj9-openjdk')
-rw-r--r--dev-java/openj9-openjdk/Manifest10
-rw-r--r--dev-java/openj9-openjdk/files/omr-fam.patch70
-rw-r--r--dev-java/openj9-openjdk/files/openj9-no-o3.patch11
-rw-r--r--dev-java/openj9-openjdk/files/openj9-openjdk-override-version.patch11
-rw-r--r--dev-java/openj9-openjdk/files/openj9-openjdk.env.sh3
-rw-r--r--dev-java/openj9-openjdk/metadata.xml4
-rw-r--r--dev-java/openj9-openjdk/openj9-openjdk-11.0.41.0.ebuild (renamed from dev-java/openj9-openjdk/openj9-openjdk-11.0.29.0.ebuild)105
-rw-r--r--dev-java/openj9-openjdk/openj9-openjdk-17.0.41.0.ebuild (renamed from dev-java/openj9-openjdk/openj9-openjdk-17.0.29.1.ebuild)104
8 files changed, 103 insertions, 215 deletions
diff --git a/dev-java/openj9-openjdk/Manifest b/dev-java/openj9-openjdk/Manifest
index bfa52d1..59d3825 100644
--- a/dev-java/openj9-openjdk/Manifest
+++ b/dev-java/openj9-openjdk/Manifest
@@ -1,6 +1,4 @@
-DIST openj9-0.29.0.tar.gz 16776743 BLAKE2B 524fc53506be1521c07ce6a65ec17419e7d228baa7543342b4011a223c6f2d1e50d80e2d4eee51cc8cfe89bf387ae17a9eb7d28ce61a5d8ff8bc790307061882 SHA512 accfb336b52c94f6988ef47c79c8be3fe841e37611596e61edaad57c801856c53ea248daab41f05a5487873d002f75b3a684588cb81b0fb0270f2638d6d06ed7
-DIST openj9-0.29.1.tar.gz 16789002 BLAKE2B 8cb49c7ebf89e50c6f7802912d3666d0be3a5614558daa17b90dcdc73b5b11e82265445df6064f4c03db220473320b1a164c4f3274a0316644d2c63d5b1aa71e SHA512 e61aaba78e836f209d35f0aaa344f727e0a9c77ec8efee68fa3a9d73dba44040bba12953ed2dff3475b3dfa94f9f4db6d7978a1b5dd05ae5a6db9eaa60fa83fa
-DIST openj9-omr-0.29.0.tar.gz 7852434 BLAKE2B 6f77abbf2597ee4f71aec7eb44e5a9f54c76fde7e3d432415d34c94c84dc00d49c3cd716c6cda4e0fea807b8ba87345b2c94a0014019154a0c60dde4a00db7b1 SHA512 de58cc6b3c2f3d657b8f588151b96acfffc63af274ef6d9c06e5e832c45c246476475c2d40b657c852d2d6f1915ea52095dae89defdaa644cd14f35500e0939f
-DIST openj9-omr-0.29.1.tar.gz 7852824 BLAKE2B 947e0ec74dcc327b646af7274f0a270a1f4b90f542b8a275e8bb839f8937191d171259da9727cd76bca9b1a83bf20713c538bcc6344d35949e617c293bb63e3d SHA512 8374fc5295cc082496d8e12e00450f57c08bbe4f320bd18a3dd4e5b190091022250b2077867abd81aa2da1bcacd04741d4b07d7e08275237c6997c446bcbead2
-DIST openj9-openjdk-jdk11-openj9-0.29.0.tar.gz 108964710 BLAKE2B 40526d85b988cbcd04ea254c120fd6cffecd2a1d3ce16e8dde54a3bffad81aea9d78b56804671a79684dfb327f6a8176d15b08e06f1e0b9f64f360c113a2b1b2 SHA512 a033b50bbe49c80c97ecf5f49757913815fcb15c1b8b6574f4039899b254febcbc8deaa49b2e5fd255d5dbcb9fccef9d7778971efa41ea3b0a09a40a0b65c87e
-DIST openj9-openjdk-jdk17-openj9-0.29.1.tar.gz 93765672 BLAKE2B b1825236b7a7e6ee70beefde588cde79d35b03f29b7f7ca83b3db178c9d0df318bd07dac81a09266466d094a567990448cad6746953643f7bf51870dc90cf169 SHA512 1fba0cce3840a70b7e43022991034dedc073f1989937fe9cbee1a2260fda71adf729e2bb67ef25e6300f830b69089edb792b35784c09e59e9fc996c38797dec6
+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
diff --git a/dev-java/openj9-openjdk/files/omr-fam.patch b/dev-java/openj9-openjdk/files/omr-fam.patch
deleted file mode 100644
index 9141ec1..0000000
--- a/dev-java/openj9-openjdk/files/omr-fam.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-diff --git a/ddr/tools/blob_reader/blob_reader.cpp b/ddr/tools/blob_reader/blob_reader.cpp
-index 028decd0c..a0212609f 100644
---- a/ddr/tools/blob_reader/blob_reader.cpp
-+++ b/ddr/tools/blob_reader/blob_reader.cpp
-@@ -85,7 +85,7 @@ struct BlobHeaderV1 {
-
- struct BlobString {
- uint16_t length;
-- char data[1]; /* flexible array member */
-+ char data[];
-
- void endian_swap()
- {
-diff --git a/include_core/ute_core.h b/include_core/ute_core.h
-index 8b3b1c65d..330ea52c6 100644
---- a/include_core/ute_core.h
-+++ b/include_core/ute_core.h
-@@ -125,7 +125,7 @@ typedef struct UtTraceRecord {
- uint64_t threadSyn2; /* Thread synonym 2 */
- int32_t firstEntry; /* Offset to first trace entry */
- int32_t nextEntry; /* Offset to next entry */
-- char threadName[1]; /* Thread name */
-+ char threadName[]; /* Thread name */
- } UtTraceRecord;
-
- /*
-diff --git a/include_core/ute_dataformat.h b/include_core/ute_dataformat.h
-index 71d9e36ad..8a9dcb487 100644
---- a/include_core/ute_dataformat.h
-+++ b/include_core/ute_dataformat.h
-@@ -180,7 +180,7 @@ typedef struct UtProcSection {
- #define UT_TRACE_ACTIVE_SECTION_NAME "UTTA"
- typedef struct UtActiveSection {
- UtDataHeader header; /* Eyecatcher, version etc */
-- char active[1]; /* Trace activation commands */
-+ char active[]; /* Trace activation commands */
- } UtActiveSection;
-
- /*
-@@ -191,7 +191,7 @@ typedef struct UtActiveSection {
- #define UT_TRACE_SERVICE_SECTION_NAME "UTSS"
- typedef struct UtServiceSection {
- UtDataHeader header; /* Eyecatcher, version etc */
-- char level[1]; /* Service level info */
-+ char level[]; /* Service level info */
- } UtServiceSection;
-
- /*
-@@ -202,7 +202,7 @@ typedef struct UtServiceSection {
- #define UT_TRACE_STARTUP_SECTION_NAME "UTSO"
- typedef struct UtStartupSection {
- UtDataHeader header; /* Eyecatcher, version etc */
-- char options[1]; /* Startup options */
-+ char options[]; /* Startup options */
- } UtStartupSection;
-
- /*
-diff --git a/omrtrace/omrtrace_internal.h b/omrtrace/omrtrace_internal.h
-index e52347eac..a68a88abd 100644
---- a/omrtrace/omrtrace_internal.h
-+++ b/omrtrace/omrtrace_internal.h
-@@ -157,7 +157,7 @@ typedef struct OMR_TraceGlobal OMR_TraceGlobal;
- typedef struct UtTraceCfg {
- UtDataHeader header;
- struct UtTraceCfg *next; /* Next trace config command */
-- char command[1]; /* Start of variable length section */
-+ char command[]; /* Start of variable length section */
- } UtTraceCfg;
-
- typedef struct UtDeferredConfigInfo {
diff --git a/dev-java/openj9-openjdk/files/openj9-no-o3.patch b/dev-java/openj9-openjdk/files/openj9-no-o3.patch
index 63d1dcf..b332052 100644
--- a/dev-java/openj9-openjdk/files/openj9-no-o3.patch
+++ b/dev-java/openj9-openjdk/files/openj9-no-o3.patch
@@ -1,11 +1,10 @@
-diff -ru a/runtime/cmake/platform/toolcfg/gnu.cmake b/runtime/cmake/platform/toolcfg/gnu.cmake
---- a/runtime/cmake/platform/toolcfg/gnu.cmake 2021-07-20 17:24:52.000000000 -0400
-+++ b/runtime/cmake/platform/toolcfg/gnu.cmake 2021-08-07 09:46:15.685325927 -0400
+--- a/runtime/cmake/platform/toolcfg/gnu.cmake
++++ b/runtime/cmake/platform/toolcfg/gnu.cmake
@@ -20,7 +20,6 @@
# SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 OR LicenseRef-GPL-2.0 WITH Assembly-exception
################################################################################
-list(APPEND OMR_PLATFORM_COMPILE_OPTIONS -O3 -g -fstack-protector)
- list(APPEND OMR_PLATFORM_C_COMPILE_OPTIONS -Wimplicit -Wreturn-type)
- list(APPEND OMR_PLATFORM_CXX_COMPILE_OPTIONS -fno-threadsafe-statics)
-
+ if(OMR_DDR AND NOT (CMAKE_C_COMPILER_VERSION VERSION_LESS 11))
+ # In gcc 11+ the default is to use DWARF version 5 which is not yet
+ # supported by ddrgen: tell the compiler to use DWARF version 4.
diff --git a/dev-java/openj9-openjdk/files/openj9-openjdk-override-version.patch b/dev-java/openj9-openjdk/files/openj9-openjdk-override-version.patch
new file mode 100644
index 0000000..1652627
--- /dev/null
+++ b/dev-java/openj9-openjdk/files/openj9-openjdk-override-version.patch
@@ -0,0 +1,11 @@
+--- a/closed/OpenJ9.gmk
++++ b/closed/OpenJ9.gmk
+@@ -44,7 +44,7 @@
+ # $4 - 'required' for a required repository, anything else for an optional one
+ GetVersion = $(eval $(call GetVersionHelper,$(strip $1),$(strip $2),$(strip $3),$(strip $4)))
+ define GetVersionHelper
+- $2 := $$(if $(wildcard $3),$$(shell $(GIT) -C $3 rev-parse --short HEAD))
++ $2 := $$(if $$($2),$$($2),$$(if $(wildcard $3),$$(shell $(GIT) -C $3 rev-parse --short HEAD)))
+ ifneq (,$$($2))
+ VersionLabelWidth := $(shell $(ECHO) "$1" | $(AWK) "{ width = length; print (width > $(VersionLabelWidth) ? width : $(VersionLabelWidth)) }")
+ VersionPairs += "$1" "$$($2)"
diff --git a/dev-java/openj9-openjdk/files/openj9-openjdk.env.sh b/dev-java/openj9-openjdk/files/openj9-openjdk.env.sh
index 5aac9c7..8d0d130 100644
--- a/dev-java/openj9-openjdk/files/openj9-openjdk.env.sh
+++ b/dev-java/openj9-openjdk/files/openj9-openjdk.env.sh
@@ -1,6 +1,3 @@
-# Copyright 1999-2018 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
VERSION="OpenJDK ${SLOT} with OpenJ9 ${OPENJ9_PV}"
JAVA_HOME="${EPREFIX}/usr/$(get_libdir)/${PN}-${SLOT}"
JDK_HOME="${EPREFIX}/usr/$(get_libdir)/${PN}-${SLOT}"
diff --git a/dev-java/openj9-openjdk/metadata.xml b/dev-java/openj9-openjdk/metadata.xml
index 1616443..dadf469 100644
--- a/dev-java/openj9-openjdk/metadata.xml
+++ b/dev-java/openj9-openjdk/metadata.xml
@@ -7,11 +7,11 @@
</maintainer>
<use>
<flag name="ddr">Enable Direct Dump Reader</flag>
- <flag name="custom-optimization">Override OpenJDK and OpenJ9 per-module optimization flags</flag>
<flag name="headless-awt">Don't install the X backend for AWT, needed by some GUIs</flag>
- <flag name="gentoo-vm">Allow this JDK to be recognised by Gentoo (package manager, eselect, java-config, EXPERIMENTAL!)</flag>
<flag name="javafx">Import OpenJFX modules at build time, via <pkg>dev-java/openjfx</pkg></flag>
<flag name="jbootstrap">Build OpenJDK twice, the second time using the result of the first</flag>
+ <flag name="jitserver">OpenJ9 JITServer support</flag>
+ <flag name="numa">Enable NUMA support using sys-process/numactl (NUMA kernel support is also required)</flag>
<flag name="systemtap">Enable SystemTAP/DTrace tracing</flag>
</use>
</pkgmetadata>
diff --git a/dev-java/openj9-openjdk/openj9-openjdk-11.0.29.0.ebuild b/dev-java/openj9-openjdk/openj9-openjdk-11.0.41.0.ebuild
index 07ab41d..35bc082 100644
--- a/dev-java/openj9-openjdk/openj9-openjdk-11.0.29.0.ebuild
+++ b/dev-java/openj9-openjdk/openj9-openjdk-11.0.41.0.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=7
-inherit check-reqs eapi7-ver flag-o-matic java-pkg-2 java-vm-2 multiprocessing pax-utils toolchain-funcs
+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)"
@@ -18,8 +18,8 @@ if [[ ${OPENJ9_PV} == 9999 ]]; then
OPENJ9_OMR_EGIT_REPO_URI="https://github.com/eclipse/openj9-omr.git"
else
SRC_URI="
- https://github.com/ibmruntimes/openj9-openjdk-jdk${SLOT}/archive/v${OPENJ9_PV}-release.tar.gz -> openj9-openjdk-jdk${SLOT}-${OPENJ9_P}.tar.gz
- https://github.com/eclipse/openj9/archive/${OPENJ9_P}.tar.gz -> ${OPENJ9_P}.tar.gz
+ 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
@@ -27,7 +27,11 @@ fi
LICENSE="GPL-2"
KEYWORDS="~amd64"
-IUSE="alsa cups custom-optimization ddr debug doc examples gentoo-vm headless-awt javafx +jbootstrap +pch selinux source systemtap"
+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=
@@ -36,11 +40,12 @@ COMMON_DEPEND="
media-libs/libpng:0=
media-libs/lcms:2=
sys-libs/zlib
- virtual/jpeg:0=
+ 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
@@ -85,9 +90,7 @@ DEPEND="
)
"
-REQUIRED_USE="javafx? ( alsa !headless-awt )"
-
-S="${WORKDIR}/openj9-openjdk-jdk${SLOT}-${OPENJ9_PV}-release"
+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
@@ -106,6 +109,10 @@ 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
}
@@ -113,45 +120,13 @@ 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 ${EPREFIX}/usr/lib/jvm/${vm} ]]; then
- java-pkg-2_pkg_setup
- return
- fi
- done
-
- if [[ ${MERGE_TYPE} != binary ]]; then
- if [[ -z ${JDK_HOME} ]]; then
- for slot in ${SLOT} $((SLOT-1)); do
- for variant in openj9- ''; do
- if has_version --host-root dev-java/${variant}openjdk:${slot}; then
- JDK_HOME=${EPREFIX}/usr/$(get_libdir)/${variant}openjdk-${slot}
- break
- elif has_version --host-root dev-java/${variant}openjdk-bin:${slot}; then
- JDK_HOME=$(best_version --host-root dev-java/${variant}openjdk-bin:${slot})
- JDK_HOME=${JDK_HOME#*/}
- JDK_HOME=${EPREFIX}/opt/${JDK_HOME%-r*}
- break
- fi
- done
- done
- fi
- [[ -n ${JDK_HOME} ]] || die "Build VM not found!"
- export JDK_HOME
- fi
+ java-pkg-2_pkg_setup
}
src_unpack() {
@@ -176,19 +151,12 @@ src_prepare() {
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 omr -- "${FILESDIR}/omr-fam.patch"
-
- if [[ ${OPENJ9_PV} != 9999 ]]; then
- sed -i -e '/^OPENJDK_SHA :=/s/:=.*/:= __OPENJDK_SHA__/' \
- -e '/^OPENJ9_SHA :=/s/:=.*/:= '${OPENJ9_P}/ \
- -e '/^OPENJ9_TAG :=/s/:=.*/:= '${OPENJ9_P}/ \
- -e '/^OPENJ9OMR_SHA :=/s/:=.*/:= '${OPENJ9_P}/ \
- closed/OpenJ9.gmk || die
- fi
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
}
@@ -197,14 +165,13 @@ src_configure() {
# Work around stack alignment issue, bug #647954. in case we ever have x86
use x86 && append-flags -mincoming-stack-boundary=2
- use custom-optimization || filter-flags '-O*'
-
# 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}"
@@ -225,7 +192,6 @@ src_configure() {
--with-vendor-vm-bug-url="https://bugs.openjdk.java.net"
--with-vendor-version-string="${PVR}"
--with-version-pre=""
- --with-version-opt=""
--with-zlib=system
--enable-dtrace=$(usex systemtap yes no)
--enable-headless-only=$(usex headless-awt yes no)
@@ -233,10 +199,11 @@ src_configure() {
--with-cmake
$(use_enable ddr)
+ $(use_enable jitserver)
)
if use javafx; then
- local zip="${EPREFIX%/}/usr/$(get_libdir)/openjfx-${SLOT}/javafx-exports.zip"
+ local zip="${EPREFIX}/usr/$(get_libdir)/openjfx-${SLOT}/javafx-exports.zip"
if [[ -r ${zip} ]]; then
myconf+=( --with-import-modules="${zip}" )
else
@@ -244,13 +211,6 @@ src_configure() {
fi
fi
- # PaX breaks pch, bug #601016
- if use pch && ! host-is-pax; then
- myconf+=( --enable-precompiled-headers )
- else
- myconf+=( --disable-precompiled-headers )
- fi
-
(
unset _JAVA_OPTIONS JAVA JAVA_TOOL_OPTIONS JAVAC XARGS
CFLAGS= CXXFLAGS= LDFLAGS= \
@@ -267,6 +227,7 @@ src_compile() {
"-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)
@@ -275,13 +236,17 @@ src_compile() {
$(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#/}"
+ local ddest="${ED}/${dest#/}"
cd "${S}"/build/*-release/images/jdk || die
@@ -296,10 +261,6 @@ src_install() {
rm -v lib/libjsound.* || die
fi
- if ! use examples ; then
- rm -vr demo/ || die
- fi
-
if ! use source ; then
rm -v lib/src.zip || die
fi
@@ -309,12 +270,12 @@ src_install() {
dodir "${dest}"
cp -pPR * "${ddest}" || die
- dosym ../../../../../etc/ssl/certs/java/cacerts "${dest}"/lib/security/cacerts
+ dosym8 -r /etc/ssl/certs/java/cacerts "${dest}"/lib/security/cacerts
# must be done before running itself
java-vm_set-pax-markings "${ddest}"
- use gentoo-vm && java-vm_install-env "${FILESDIR}"/${PN}.env.sh
+ java-vm_install-env "${FILESDIR}"/${PN}.env.sh
java-vm_revdep-mask
java-vm_sandbox-predict /dev/random /proc/self/coredump_filter
diff --git a/dev-java/openj9-openjdk/openj9-openjdk-17.0.29.1.ebuild b/dev-java/openj9-openjdk/openj9-openjdk-17.0.41.0.ebuild
index 93bdcf3..ca64ddd 100644
--- a/dev-java/openj9-openjdk/openj9-openjdk-17.0.29.1.ebuild
+++ b/dev-java/openj9-openjdk/openj9-openjdk-17.0.41.0.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=7
-inherit check-reqs eapi7-ver flag-o-matic java-pkg-2 java-vm-2 multiprocessing pax-utils toolchain-funcs
+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)"
@@ -18,8 +18,8 @@ if [[ ${OPENJ9_PV} == 9999 ]]; then
OPENJ9_OMR_EGIT_REPO_URI="https://github.com/eclipse/openj9-omr.git"
else
SRC_URI="
- https://github.com/ibmruntimes/openj9-openjdk-jdk${SLOT}/archive/v${OPENJ9_PV}-release.tar.gz -> openj9-openjdk-jdk${SLOT}-${OPENJ9_P}.tar.gz
- https://github.com/eclipse/openj9/archive/${OPENJ9_P}.tar.gz -> ${OPENJ9_P}.tar.gz
+ 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
@@ -27,7 +27,11 @@ fi
LICENSE="GPL-2"
KEYWORDS="~amd64"
-IUSE="alsa cups ddr debug doc examples gentoo-vm headless-awt javafx +jbootstrap numa +pch selinux source systemtap"
+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=
@@ -36,7 +40,7 @@ COMMON_DEPEND="
media-libs/libpng:0=
media-libs/lcms:2=
sys-libs/zlib
- virtual/jpeg:0=
+ media-libs/libjpeg-turbo:0=
systemtap? ( dev-util/systemtap )
dev-libs/elfutils
@@ -86,9 +90,7 @@ DEPEND="
)
"
-REQUIRED_USE="javafx? ( alsa !headless-awt )"
-
-S="${WORKDIR}/openj9-openjdk-jdk${SLOT}-${OPENJ9_PV}-release"
+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
@@ -107,6 +109,10 @@ 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
}
@@ -114,6 +120,8 @@ 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}"
@@ -128,31 +136,11 @@ pkg_setup() {
local vm
for vm in ${JAVA_PKG_WANT_BUILD_VM}; do
- if [[ -d ${EPREFIX}/usr/lib/jvm/${vm} ]]; then
+ if [[ -d ${BROOT}/usr/lib/jvm/${vm} ]]; then
java-pkg-2_pkg_setup
return
fi
done
-
- if [[ ${MERGE_TYPE} != binary ]]; then
- if [[ -z ${JDK_HOME} ]]; then
- for slot in ${SLOT} $((SLOT-1)); do
- for variant in openj9- ''; do
- if has_version --host-root dev-java/${variant}openjdk:${slot}; then
- JDK_HOME=${EPREFIX}/usr/$(get_libdir)/${variant}openjdk-${slot}
- break
- elif has_version --host-root dev-java/${variant}openjdk-bin:${slot}; then
- JDK_HOME=$(best_version --host-root dev-java/${variant}openjdk-bin:${slot})
- JDK_HOME=${JDK_HOME#*/}
- JDK_HOME=${EPREFIX}/opt/${JDK_HOME%-r*}
- break
- fi
- done
- done
- fi
- [[ -n ${JDK_HOME} ]] || die "Build VM not found!"
- export JDK_HOME
- fi
}
src_unpack() {
@@ -177,17 +165,9 @@ src_prepare() {
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 omr -- "${FILESDIR}/omr-fam.patch"
-
- if [[ ${OPENJ9_PV} != 9999 ]]; then
- sed -i -e '/^OPENJDK_SHA :=/s/:=.*/:= __OPENJDK_SHA__/' \
- -e '/^OPENJ9_SHA :=/s/:=.*/:= '${OPENJ9_P}/ \
- -e '/^OPENJ9_TAG :=/s/:=.*/:= '${OPENJ9_P}/ \
- -e '/^OPENJ9OMR_SHA :=/s/:=.*/:= '${OPENJ9_P}/ \
- closed/OpenJ9.gmk || die
- fi
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
@@ -196,6 +176,20 @@ src_prepare() {
}
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
@@ -205,6 +199,7 @@ src_configure() {
local myconf=(
--disable-ccache
+ --disable-precompiled-headers
--disable-warnings-as-errors{,-omr,-openj9}
--enable-full-docs=no
--with-boot-jdk="${JDK_HOME}"
@@ -225,7 +220,6 @@ src_configure() {
--with-vendor-vm-bug-url="https://bugs.openjdk.java.net"
--with-vendor-version-string="${PVR}"
--with-version-pre=""
- --with-version-opt=""
--with-zlib=system
--enable-dtrace=$(usex systemtap yes no)
--enable-headless-only=$(usex headless-awt yes no)
@@ -233,10 +227,11 @@ src_configure() {
--with-cmake
$(use_enable ddr)
+ $(use_enable jitserver)
)
if use javafx; then
- local zip="${EPREFIX%/}/usr/$(get_libdir)/openjfx-${SLOT}/javafx-exports.zip"
+ local zip="${EPREFIX}/usr/$(get_libdir)/openjfx-${SLOT}/javafx-exports.zip"
if [[ -r ${zip} ]]; then
myconf+=( --with-import-modules="${zip}" )
else
@@ -244,13 +239,6 @@ src_configure() {
fi
fi
- # PaX breaks pch, bug #601016
- if use pch && ! host-is-pax; then
- myconf+=( --enable-precompiled-headers )
- else
- myconf+=( --disable-precompiled-headers )
- fi
-
(
unset _JAVA_OPTIONS JAVA JAVA_TOOL_OPTIONS JAVAC XARGS
CFLAGS= CXXFLAGS= LDFLAGS= \
@@ -276,13 +264,17 @@ src_compile() {
$(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#/}"
+ local ddest="${ED}/${dest#/}"
cd "${S}"/build/*-release/images/jdk || die
@@ -297,10 +289,6 @@ src_install() {
rm -v lib/libjsound.* || die
fi
- if ! use examples ; then
- rm -vr demo/ || die
- fi
-
if ! use source ; then
rm -v lib/src.zip || die
fi
@@ -310,12 +298,12 @@ src_install() {
dodir "${dest}"
cp -pPR * "${ddest}" || die
- dosym ../../../../../etc/ssl/certs/java/cacerts "${dest}"/lib/security/cacerts
+ dosym8 -r /etc/ssl/certs/java/cacerts "${dest}"/lib/security/cacerts
# must be done before running itself
java-vm_set-pax-markings "${ddest}"
- use gentoo-vm && java-vm_install-env "${FILESDIR}"/${PN}.env.sh
+ java-vm_install-env "${FILESDIR}"/${PN}.env.sh
java-vm_revdep-mask
java-vm_sandbox-predict /dev/random /proc/self/coredump_filter
@@ -325,3 +313,7 @@ src_install() {
dosym ../../../usr/share/doc/"${PF}" /usr/share/doc/"${PN}-${SLOT}"
fi
}
+
+pkg_postinst() {
+ java-vm-2_pkg_postinst
+}