OpenJDK17: add recipe for 17.0.7+3 version

This commit is contained in:
Gerasim Troeglazov
2023-04-01 20:16:57 +10:00
parent dfc9fa5ac4
commit 012d5e9dac
2 changed files with 467 additions and 0 deletions

View File

@@ -0,0 +1,267 @@
SUMMARY="An open-source implementation of the Java Platform, SE"
DESCRIPTION="OpenJDK (Open Java Development Kit) is a free and open source \
implementation of the Java Platform, Standard Edition (Java SE). It is the \
result of an effort Sun Microsystems began in 2006.
The implementation is licensed under the GNU General Public License (GNU GPL) \
with a linking exception. Were it not for the GPL linking exception, components \
that linked to the Java class library would be subject to the terms of the GPL \
license. OpenJDK is the official Java SE 8 reference implementation."
HOMEPAGE="https://openjdk.java.net/"
COPYRIGHT="2007-2022 Oracle and/or its affiliates."
LICENSE="GNU GPL v2"
REVISION="1"
jdkBuild="jdk-${portVersion%.*}+${portVersion##*.}"
srcGitRev="7d96ea2c4f4b1cb9a256731f2332eb4f1e8d1c41"
SOURCE_URI="https://github.com/zelenoviy/jdk17u/archive/$srcGitRev.tar.gz"
CHECKSUM_SHA256="0ae2a041d0e5bf5591c4057d6201dddb3de3eb563913d3be734de8f98b6ac9cc"
SOURCE_DIR="jdk17u-$srcGitRev"
SOURCE_FILENAME="jdk17u-$jdkBuild-$srcGitRev.tar.gz"
SOURCE_URI_2="https://ftp.osuosl.org/pub/blfs/conglomeration/openjdk/jtreg-4.2-b13-433.tar.gz"
CHECKSUM_SHA256_2="ddf76660d4f519302b9c6310febcde3ff45313c435fff4e157854d1ff50785b1"
SOURCE_DIR_2="jtreg"
PATCHES="openjdk17-$portVersion.patchset"
ADDITIONAL_FILES="
elf.h
"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
DISABLE_SOURCE_PACKAGE="yes"
# at least as long as Ant and a complete SDK image are part of the "sources" package
PROVIDES="
openjdk17$secondaryArchSuffix = $portVersion compat >= 17
java:environment = 17
"
REQUIRES="
openjdk17${secondaryArchSuffix}_jre == $portVersion
"
PROVIDES_default="
openjdk17${secondaryArchSuffix}_default = $portVersion
cmd:jar = $portVersion compat >= 17
cmd:jarsigner = $portVersion compat >= 17
cmd:java = $portVersion compat >= 17
cmd:javac = $portVersion compat >= 17
cmd:javadoc = $portVersion compat >= 17
cmd:javah = $portVersion compat >= 17
cmd:javap = $portVersion compat >= 17
cmd:jcmd = $portVersion compat >= 17
cmd:jconsole = $portVersion compat >= 17
cmd:jdb = $portVersion compat >= 17
cmd:jinfo = $portVersion compat >= 17
cmd:jmap = $portVersion compat >= 17
cmd:jps = $portVersion compat >= 17
cmd:jstack = $portVersion compat >= 17
cmd:jstat = $portVersion compat >= 17
cmd:jstatd = $portVersion compat >= 17
cmd:keytool = $portVersion compat >= 17
cmd:rmiregistry = $portVersion compat >= 17
cmd:serialver = $portVersion compat >= 17
"
REQUIRES_default="
openjdk17$secondaryArchSuffix == $portVersion
"
CONFLICTS_default="
openjdk8${secondaryArchSuffix}_default
openjdk9${secondaryArchSuffix}_default
openjdk10${secondaryArchSuffix}_default
openjdk11${secondaryArchSuffix}_default
openjdk12${secondaryArchSuffix}_default
openjdk13${secondaryArchSuffix}_default
openjdk14${secondaryArchSuffix}_default
openjdk15${secondaryArchSuffix}_default
openjdk16${secondaryArchSuffix}_default
"
PROVIDES_jre="
openjdk17${secondaryArchSuffix}_jre = $portVersion compat >= 17
java:runtime = 17
"
REQUIRES_jre="
haiku$secondaryArchSuffix
lib:libfreetype$secondaryArchSuffix
lib:libiconv$secondaryArchSuffix
lib:libjpeg$secondaryArchSuffix
lib:libz$secondaryArchSuffix
ca_root_certificates_java
dejavu
"
SUMMARY_sources="JDK source files, demos and examples"
PROVIDES_sources="
openjdk17${secondaryArchSuffix}_sources = $portVersion compat >= 17
"
REQUIRES_sources="
openjdk17$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
gcc${secondaryArchSuffix}_syslibs
gcc${secondaryArchSuffix}_syslibs_devel
java:environment == 16
ca_root_certificates
devel:libfontconfig$secondaryArchSuffix
devel:libfreetype$secondaryArchSuffix
devel:libiconv$secondaryArchSuffix
devel:libjpeg$secondaryArchSuffix
devel:libLLVM_12$secondaryArchSuffix
devel:libz$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:cpio
cmd:clang >= 12
cmd:clang++ >= 12
cmd:make
cmd:gcc$secondaryArchSuffix
cmd:ld$secondaryArchSuffix
cmd:sed
cmd:tar
cmd:zip
cmd:gawk
cmd:hostname
cmd:find
cmd:unzip
cmd:unzipsfx
cmd:head
cmd:file
cmd:which
cmd:autoconf
cmd:pkg_config$secondaryArchSuffix
"
TEST_REQUIRES="
cmd:true
"
BUILD()
{
source /system/data/profile.d/openjdk16.sh
export PATH=$JDK16_HOME/bin:$PATH
export COMPANY=HaikuPorts
ln -sfn $sourceDir2 jtreg
cp $portDir/additional-files/elf.h src/hotspot/share/utilities
# If ASLR is enabled, the JVM can fail to find a large enough area for
# the heap.
export DISABLE_ASLR=1
# Verify that we can allocate a large enough heap before starting.
java -XX:ThreadStackSize=1536 -Xmx1024M -version
freeTypeHeaders=$(finddir B_SYSTEM_HEADERS_DIRECTORY)$secondaryArchSubDir/freetype2
freeTypeLib=$(finddir B_SYSTEM_DEVELOP_DIRECTORY)/lib$secondaryArchSubDir
export CC="/bin/clang"
export CXX="/bin/clang++"
bash ./configure \
--with-freetype-include="${freeTypeHeaders}" \
--with-freetype-lib="${freeTypeLib}" \
--with-jtreg=./jtreg \
--with-version-build="${portVersion//*.}" \
--with-version-pre="" \
--with-version-opt="" \
--with-num-cores=1 \
--with-memory-size=3072 \
--with-toolchain-type=clang \
--enable-javac-server \
--disable-warnings-as-errors \
--with-extra-cflags="-w" \
--with-extra-cxxflags="-w"
make images LOG=info
}
INSTALL()
{
# install the generated SDK image dir
jdkDir=$libDir/openjdk17
mkdir -p $jdkDir
cp -a build/haiku-*/images/jdk/* $jdkDir
# set up the cacerts link
ln -sf $dataDir/ssl/java/cacerts $jdkDir/conf/security/
# symlink the executables to binDir
mkdir -p $prefix/bin
bins="jar jarsigner javac javadoc javah javap jcmd jconsole jdb jinfo \
jmap jps jstack jstat jstatd serialver"
bins_runtime="java keytool rmiregistry"
man_runtime=""
for b in $bins $bins_runtime; do
symlinkRelative -s $jdkDir/bin/$b $prefix/bin
done
for b in $bins_runtime; do
man_runtime+=" $jdkDir/man/man1/$b.1"
done
mkdir -p $dataDir/profile.d
# create a profile.d file that sets up JAVA_HOME
jdkProfile=$dataDir/profile.d/openjdk.sh
echo "JAVA_HOME=$jdkDir" > $jdkProfile
echo "export JAVA_HOME" >> $jdkProfile
# create a profile.d file that sets up JDK17_HOME
jdkProfile=$dataDir/profile.d/openjdk17.sh
echo "JDK17_HOME=$jdkDir" > $jdkProfile
echo "export JDK17_HOME" >> $jdkProfile
# create a profile.d file that sets up JRE17_HOME
jreProfile=$dataDir/profile.d/openjre17.sh
echo "JRE17_HOME=$(getPackagePrefix jre)/$relativeLibDir/openjdk17" > $jreProfile
echo "export JRE17_HOME" >> $jreProfile
find $jdkDir -name '*.diz' -o -name '*.debuginfo' -delete
# not for jre
mv $jdkDir/lib/libattach.so $jdkDir/lib/ct.sym $prefix
packageEntries sources \
$jdkDir/lib/src.zip \
$jdkDir/demo
packageEntries jre \
$jdkDir/bin/java \
$jdkDir/bin/jrunscript \
$jdkDir/bin/keytool \
$jdkDir/bin/rmiregistry \
$jdkDir/conf \
$jdkDir/legal \
$jdkDir/lib \
$jdkDir/release \
$dataDir/profile.d/openjre17.sh \
$man_runtime
mkdir -p $jdkDir/lib
mv $prefix/libattach.so $prefix/ct.sym $jdkDir/lib/
packageEntries default \
$prefix/bin \
$dataDir/profile.d/openjdk.sh
}
TEST()
{
export DISABLE_ASLR=1
make test JOBS=1 TEST=jdk_lang
make test-only JOBS=1 TEST=jdk_util
make test-only JOBS=1 TEST=jdk_math
make test-only JOBS=1 TEST=jdk_io
make test-only JOBS=1 TEST=jdk_nio
make test-only JOBS=1 TEST=jdk_net
make test-only JOBS=1 TEST=jdk_time
make test-only JOBS=1 TEST=jdk_rmi
make test-only JOBS=1 TEST=jdk_security
make test-only JOBS=1 TEST=jdk_text
make test-only JOBS=1 TEST=jdk_management
make test-only JOBS=1 TEST=jdk_instrument
make test-only JOBS=1 TEST=jdk_jmx
make test-only JOBS=1 TEST=jdk_jdi
}

View File

@@ -0,0 +1,200 @@
From 509673bb73a3e2ba063d95973c82cda8306b73bf Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Mon, 27 Mar 2023 11:16:13 +1000
Subject: Fix build for x86 arch
diff --git a/src/hotspot/cpu/x86/interp_masm_x86.cpp b/src/hotspot/cpu/x86/interp_masm_x86.cpp
index d92885d..eacc83a 100644
--- a/src/hotspot/cpu/x86/interp_masm_x86.cpp
+++ b/src/hotspot/cpu/x86/interp_masm_x86.cpp
@@ -1339,7 +1339,7 @@ void InterpreterMacroAssembler::unlock_object(Register lock_reg) {
movptr(obj_reg, Address(lock_reg, BasicObjectLock::obj_offset_in_bytes()));
// Free entry
- movptr(Address(lock_reg, BasicObjectLock::obj_offset_in_bytes()), (int32_t)NULL_WORD);
+ movptr(Address(lock_reg, BasicObjectLock::obj_offset_in_bytes()), NULL_WORD);
if (UseBiasedLocking) {
biased_locking_exit(obj_reg, header_reg, done);
diff --git a/src/hotspot/cpu/x86/interp_masm_x86.hpp b/src/hotspot/cpu/x86/interp_masm_x86.hpp
index 0aecb6b..779aea3 100644
--- a/src/hotspot/cpu/x86/interp_masm_x86.hpp
+++ b/src/hotspot/cpu/x86/interp_masm_x86.hpp
@@ -183,7 +183,7 @@ class InterpreterMacroAssembler: public MacroAssembler {
void empty_expression_stack() {
movptr(rsp, Address(rbp, frame::interpreter_frame_monitor_block_top_offset * wordSize));
// NULL last_sp until next java call
- movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), (int32_t)NULL_WORD);
+ movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), NULL_WORD);
NOT_LP64(empty_FPU_stack());
}
diff --git a/src/hotspot/cpu/x86/sharedRuntime_x86_32.cpp b/src/hotspot/cpu/x86/sharedRuntime_x86_32.cpp
index 492ec59..1f9e7d7 100644
--- a/src/hotspot/cpu/x86/sharedRuntime_x86_32.cpp
+++ b/src/hotspot/cpu/x86/sharedRuntime_x86_32.cpp
@@ -2054,13 +2054,13 @@ nmethod* SharedRuntime::generate_native_wrapper(MacroAssembler* masm,
if (CheckJNICalls) {
// clear_pending_jni_exception_check
- __ movptr(Address(thread, JavaThread::pending_jni_exception_check_fn_offset()), NULL_WORD);
+ __ movptr(Address(thread, JavaThread::pending_jni_exception_check_fn_offset()), (intptr_t)NULL_WORD);
}
if (!is_critical_native) {
// reset handle block
__ movptr(rcx, Address(thread, JavaThread::active_handles_offset()));
- __ movl(Address(rcx, JNIHandleBlock::top_offset_in_bytes()), NULL_WORD);
+ __ movl(Address(rcx, JNIHandleBlock::top_offset_in_bytes()), (int32_t)NULL_WORD);
// Any exception pending?
__ cmpptr(Address(thread, in_bytes(Thread::pending_exception_offset())), (int32_t)NULL_WORD);
diff --git a/src/hotspot/cpu/x86/stubGenerator_x86_32.cpp b/src/hotspot/cpu/x86/stubGenerator_x86_32.cpp
index 654066a..848790d 100644
--- a/src/hotspot/cpu/x86/stubGenerator_x86_32.cpp
+++ b/src/hotspot/cpu/x86/stubGenerator_x86_32.cpp
@@ -2781,7 +2781,7 @@ class StubGenerator: public StubCodeGenerator {
__ jcc(Assembler::equal, L_key256_top);
//key128 begins here
- __ movptr(pos, 0); // init pos before L_multiBlock_loopTop
+ __ movptr(pos, (intptr_t)0); // init pos before L_multiBlock_loopTop
#define CTR_DoFour(opc, src_reg) \
__ opc(xmm_result0, src_reg); \
@@ -2947,11 +2947,11 @@ class StubGenerator: public StubCodeGenerator {
__ ret(0);
__ BIND (L_key192_top);
- __ movptr(pos, 0); // init pos before L_multiBlock_loopTop
+ __ movptr(pos, (intptr_t)0); // init pos before L_multiBlock_loopTop
__ jmp(L_multiBlock_loopTop[1]); //key192
__ BIND (L_key256_top);
- __ movptr(pos, 0); // init pos before L_multiBlock_loopTop
+ __ movptr(pos, (intptr_t)0); // init pos before L_multiBlock_loopTop
__ jmp(L_multiBlock_loopTop[2]); //key192
return start;
diff --git a/src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp b/src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp
index dcbb373..f024a6c 100644
--- a/src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp
+++ b/src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp
@@ -205,7 +205,7 @@ address TemplateInterpreterGenerator::generate_return_entry_for(TosState state,
// Restore stack bottom in case i2c adjusted stack
__ movptr(rsp, Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize));
// and NULL it as marker that esp is now tos until next java call
- __ movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), (int32_t)NULL_WORD);
+ __ movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), (intptr_t)NULL_WORD);
__ restore_bcp();
__ restore_locals();
@@ -253,7 +253,7 @@ address TemplateInterpreterGenerator::generate_deopt_entry_for(TosState state, i
#endif // _LP64
// NULL last_sp until next java call
- __ movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), (int32_t)NULL_WORD);
+ __ movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), (intptr_t)NULL_WORD);
__ restore_bcp();
__ restore_locals();
const Register thread = NOT_LP64(rcx) LP64_ONLY(r15_thread);
@@ -1434,7 +1434,7 @@ void TemplateInterpreterGenerator::generate_throw_exception() {
Interpreter::_rethrow_exception_entry = __ pc();
// Restore sp to interpreter_frame_last_sp even though we are going
// to empty the expression stack for the exception processing.
- __ movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), (int32_t)NULL_WORD);
+ __ movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), (intptr_t)NULL_WORD);
// rax: exception
// rdx: return address/pc that threw exception
__ restore_bcp(); // r13/rsi points to call/send
@@ -1580,7 +1580,7 @@ void TemplateInterpreterGenerator::generate_throw_exception() {
// Restore the last_sp and null it out
__ movptr(rsp, Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize));
- __ movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), (int32_t)NULL_WORD);
+ __ movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), (intptr_t)NULL_WORD);
__ restore_bcp();
__ restore_locals();
diff --git a/src/hotspot/os_cpu/haiku_x86/haiku_x86_32.S b/src/hotspot/os_cpu/haiku_x86/haiku_x86_32.S
index e803056..9cbf35d 100644
--- a/src/hotspot/os_cpu/haiku_x86/haiku_x86_32.S
+++ b/src/hotspot/os_cpu/haiku_x86/haiku_x86_32.S
@@ -475,20 +475,6 @@ ci_CopyLeft:
# Support for void Copy::conjoint_jlongs_atomic(jlong* from,
# jlong* to,
# size_t count)
- #
- # 32-bit
- #
- # count treated as signed
- #
- # if (from > to) {
- # while (--count >= 0) {
- # *to++ = *from++;
- # }
- # } else {
- # while (--count >= 0) {
- # to[count] = from[count];
- # }
- # }
.p2align 4,,15
.type _Copy_conjoint_jlongs_atomic,@function
_Copy_conjoint_jlongs_atomic:
diff --git a/src/hotspot/os_cpu/haiku_x86/os_haiku_x86.cpp b/src/hotspot/os_cpu/haiku_x86/os_haiku_x86.cpp
index 5c9c4f9..878630d 100644
--- a/src/hotspot/os_cpu/haiku_x86/os_haiku_x86.cpp
+++ b/src/hotspot/os_cpu/haiku_x86/os_haiku_x86.cpp
@@ -214,16 +214,6 @@ bool PosixSignals::pd_hotspot_signal_handler(int sig, siginfo_t* info,
return true;
}
-#ifndef AMD64
- // Halt if SI_KERNEL before more crashes get misdiagnosed as Java bugs
- // This can happen in any running code (currently more frequently in
- // interpreter code but has been seen in compiled code)
- if (sig == SIGSEGV && info->si_addr == 0 && info->si_code == SI_KERNEL) {
- fatal("An irrecoverable SI_KERNEL SIGSEGV has occurred due "
- "to unstable signal handling in this distribution.");
- }
-#endif // AMD64
-
// Handle ALL stack overflow variations here
if (sig == SIGSEGV) {
address addr = (address) info->si_addr;
@@ -570,7 +560,7 @@ void os::print_register_info(outputStream *st, const void *context) {
void os::setup_fpu() {
#ifndef AMD64
- address fpu_cntrl = StubRoutines::addr_fpu_cntrl_wrd_std();
+ address fpu_cntrl = StubRoutines::x86::addr_fpu_cntrl_wrd_std();
__asm__ volatile ( "fldcw (%0)" :
: "r" (fpu_cntrl) : "memory");
#endif // !AMD64
--
2.37.3
From da915b3046e86de050144fc2101afcbfe8fc5ca3 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Sat, 1 Apr 2023 20:04:08 +1000
Subject: Fix build with clang
diff --git a/make/autoconf/flags-cflags.m4 b/make/autoconf/flags-cflags.m4
index 4999123..c7e176f 100644
--- a/make/autoconf/flags-cflags.m4
+++ b/make/autoconf/flags-cflags.m4
@@ -543,7 +543,7 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
# are sure to conform to the same standard. Unfortunately neither our sources nor
# our toolchains are in a condition to support that. But what we loosely aim for is
# C99 level.
- if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang || test "x$TOOLCHAIN_TYPE" = xxlc; then
+ if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xxlc; then
# Explicitly set C99. clang and xlclang support the same flag.
LANGSTD_CFLAGS="-std=c99"
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
--
2.37.3