As we discussed in the last meeting, we reset the ports tree and began from scratch, even though this change involves porting all the packages. Starting small and growing gradually, this approach will reduce build times and consequently lower energy consumption in a world affected by climate change. We will add new ports as users needs arise; ok h3artbl33d@

This commit is contained in:
purplerain 2024-05-26 03:08:12 +00:00
parent 83a0aaf92c
commit 9a3af55370
Signed by: purplerain
GPG key ID: F42C07F07E2E35B7
59377 changed files with 98673 additions and 4712155 deletions

View file

@ -1,23 +1,22 @@
ONLY_FOR_ARCHS= i386 amd64 aarch64
ONLY_FOR_ARCHS= i386 amd64 aarch64 sparc64
USE_WXNEEDED= Yes
USE_NOBTCFI= Yes
DPB_PROPERTIES= parallel
COMMENT= OpenJDK Software Development Kit v${VERSION_STR}
BASE_VER= 11.0.20
PATCH_VER= 8
BSD_PORT_REL= 1
BASE_VER= 11.0.23
PATCH_VER= 9
BSD_PORT_REL= 2
VERSION_STR= ${BASE_VER}+${PATCH_VER}-${BSD_PORT_REL}
PACKAGE_VER= ${BASE_VER}.${PATCH_VER}.${BSD_PORT_REL}
PKGNAME= jdk-${PACKAGE_VER}
PKGSTEM= jdk-11
EPOCH= 0
REVISION= 0
DIST_SUBDIR= jdk
DISTNAME= jdk-${VERSION_STR}
WRKDIST= ${WRKDIR}/jdk11u-jdk-${BASE_VER}-${PATCH_VER}-${BSD_PORT_REL}
BOOTJDK_DATE= 20230630
BOOTJDK_DATE= 20240331
CATEGORIES= devel/jdk java
@ -27,8 +26,8 @@ FLAVOR?=
HOMEPAGE= http://openjdk.java.net/
SITES= https://github.com/battleblow/jdk11u/archive/
SITES.boot= https://spacehopper.org/mirrors/ \
http://www.intricatesoftware.com/distfiles/
SITES.boot= http://www.intricatesoftware.com/distfiles/ \
https://spacehopper.org/mirrors/
MAINTAINER= Kurt Miller <kurt@openbsd.org>
@ -45,7 +44,8 @@ NO_TEST= Yes
SUPDISTFILES.boot = \
openjdk-jdk11u-bootjdk-i386-${BOOTJDK_DATE}.tar.gz \
openjdk-jdk11u-bootjdk-amd64-${BOOTJDK_DATE}.tar.gz \
openjdk-jdk11u-bootjdk-aarch64-${BOOTJDK_DATE}.tar.gz
openjdk-jdk11u-bootjdk-aarch64-${BOOTJDK_DATE}.tar.gz \
openjdk-jdk11u-bootjdk-sparc64-${BOOTJDK_DATE}.tar.gz
COMPILER= base-clang ports-gcc
@ -60,7 +60,8 @@ BUILD_DEPENDS+= jdk->=11v0,<12v0:devel/jdk/11
BOOT_JDK= ${LOCALBASE}/jdk-11
.else
BOOT_JDK_DIST= openjdk-jdk11u-bootjdk-${MACHINE_ARCH}-${BOOTJDK_DATE}.tar.gz
. if (${MACHINE_ARCH}==amd64) || (${MACHINE_ARCH}==i386) || (${MACHINE_ARCH}==aarch64)
. if (${MACHINE_ARCH}==amd64) || (${MACHINE_ARCH}==i386) || \
(${MACHINE_ARCH}==aarch64) || (${MACHINE_ARCH}==sparc64)
DISTFILES.boot= ${BOOT_JDK_DIST}
. endif
MAKE_ENV+= LD_LIBRARY_PATH=${WRKDIR}/bootjdk-libs
@ -112,6 +113,7 @@ CONFIGURE_ARGS= DOT="" FLOCK="" GIT="" HG="" PANDOC="" \
--with-giflib=system \
--with-giflib-include=${LOCALBASE}/include \
--with-giflib-lib=${LOCALBASE}/lib \
--with-stdc++lib=dynamic \
--disable-option-checking \
--disable-ccache \
--disable-hotspot-gtest \
@ -151,11 +153,11 @@ PKG_ARGS+= -Dci=1
PKG_ARGS+= -Dci=0
.endif
JVMARCH= ${MACHINE_ARCH:S/i386/x86/:S/amd64/x86_64/}
JVMARCH= ${MACHINE_ARCH:S/i386/x86/:S/amd64/x86_64/:S/sparc64/sparcv9/}
BUILDDIR= ${WRKDIST}/build/bsd-${JVMARCH}-normal-server-release
IMAGEDIR= ${BUILDDIR}/images/jdk
WRKTMP= ${WRKDIR}/tmp
post-extract:
sed -i "s|#!/bin/bash|#!\${LOCALBASE}/bin/bash|" ${WRKDIST}/configure
chmod +x ${WRKDIST}/configure
@ -174,7 +176,7 @@ post-build:
do-install:
${INSTALL_DATA_DIR} ${PREFIX}/${PKGSTEM}
cd ${IMAGEDIR} && tar -cf - * | tar -C ${PREFIX}/${PKGSTEM} -xf -
cd ${IMAGEDIR} && tar -cf - * | tar -C ${PREFIX}/${PKGSTEM} -xf -
# The bootjdk is the jdk image with some parts deleted
# and a copy of the system shared libs needed to run it.
@ -187,17 +189,19 @@ build-bootjdk: build
@${_PBUILD} mkdir -p ${WRKTMP}/bootjdk-libs
@cd ${IMAGEDIR} && \
tar -cf - * | \
${_PBUILD} tar -C ${WRKTMP}/bootjdk -xf -
${_PBUILD} tar -C ${WRKTMP}/bootjdk -xf -
@cd ${WRKTMP}/bootjdk && \
${_PBUILD} rm -rf demo jmods man sample
@cd ${WRKTMP}/bootjdk/lib && \
${_PBUILD} rm libsplashscreen.so libinstrument.so libawt_xawt.so \
liblcms.so libfontmanager.so libjdwp.so libjavajpeg.so
${_PBUILD} rm libsplashscreen.so libinstrument.so \
libawt_xawt.so liblcms.so libfontmanager.so libjdwp.so \
libjavajpeg.so
@find ${WRKTMP}/bootjdk/lib ${WRKTMP}/bootjdk/bin \
-exec sh -c 'file {} | grep -q ELF && \
${_PBUILD} strip -S {}' \;
@LD_LIBRARY_PATH="${WRKTMP}/bootjdk/lib" \
find ${WRKTMP}/bootjdk -type f -perm -500 -exec ldd {} + 2>/dev/null | \
find ${WRKTMP}/bootjdk -type f -perm -500 \
-exec ldd {} + 2>/dev/null | \
grep rlib | cut -d"/" -f 2-20 | sort -u | grep -v "\.so$$" | \
xargs -I % ${_PBUILD} cp /% ${WRKTMP}/bootjdk-libs
@cd ${WRKTMP} && \

View file

@ -1,8 +1,10 @@
SHA256 (jdk/jdk-11.0.20+8-1.tar.gz) = T7f8zEYqjGWY+gZa6iA6GzA+8bb/r/Ox/bBOKxnjBsw=
SHA256 (jdk/openjdk-jdk11u-bootjdk-aarch64-20230630.tar.gz) = 0Y+t94GfrfSHIls9LeH1G1pN45VL3JRQ/fMdFhntIyQ=
SHA256 (jdk/openjdk-jdk11u-bootjdk-amd64-20230630.tar.gz) = MwLQzx6Lw5fvzGAyhwmreLwhMTY188J0Oa9xY0AvbdM=
SHA256 (jdk/openjdk-jdk11u-bootjdk-i386-20230630.tar.gz) = BsW8OBLxjNzkCCPpWM8mxRSB/wm2YSuSnlpzuH8MIp0=
SIZE (jdk/jdk-11.0.20+8-1.tar.gz) = 116277026
SIZE (jdk/openjdk-jdk11u-bootjdk-aarch64-20230630.tar.gz) = 113608056
SIZE (jdk/openjdk-jdk11u-bootjdk-amd64-20230630.tar.gz) = 114794808
SIZE (jdk/openjdk-jdk11u-bootjdk-i386-20230630.tar.gz) = 103778873
SHA256 (jdk/jdk-11.0.23+9-2.tar.gz) = 3StfPuSAq7KH17NtXsn6AtPUoTQYKNss4nA1JYyOEf8=
SHA256 (jdk/openjdk-jdk11u-bootjdk-aarch64-20240331.tar.gz) = 6skKydxPeLmFShPvL3bEFAhpQCZtABnsr3lZAQNLhBo=
SHA256 (jdk/openjdk-jdk11u-bootjdk-amd64-20240331.tar.gz) = jL36o7kWGZ3V92z+P9iuwXjy7/sajPCO0hNQhmPpvfU=
SHA256 (jdk/openjdk-jdk11u-bootjdk-i386-20240331.tar.gz) = B/UNqvHV7dTlo00uNzK1DZs1Pxftujj7O0ojDTi3sQ8=
SHA256 (jdk/openjdk-jdk11u-bootjdk-sparc64-20240331.tar.gz) = eU7fzUu7xWUcrkacuv25/18rzC/w7grqOL1rW3FzwdM=
SIZE (jdk/jdk-11.0.23+9-2.tar.gz) = 116467928
SIZE (jdk/openjdk-jdk11u-bootjdk-aarch64-20240331.tar.gz) = 114820919
SIZE (jdk/openjdk-jdk11u-bootjdk-amd64-20240331.tar.gz) = 115315575
SIZE (jdk/openjdk-jdk11u-bootjdk-i386-20240331.tar.gz) = 104499540
SIZE (jdk/openjdk-jdk11u-bootjdk-sparc64-20240331.tar.gz) = 107472498

View file

@ -1,18 +0,0 @@
Index: make/autoconf/flags-ldflags.m4
--- make/autoconf/flags-ldflags.m4.orig
+++ make/autoconf/flags-ldflags.m4
@@ -127,12 +127,12 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
if test "x$OPENJDK_TARGET_OS_ENV" = xbsd.openbsd; then
AC_MSG_CHECKING([if ld requires -z wxneeded])
PUSHED_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS -Wl,-z,wxneeded"
+ LDFLAGS="$LDFLAGS -Wl,-z,wxneeded -Wl,-z,nobtcfi"
AC_LINK_IFELSE([AC_LANG_SOURCE([[int main() { }]])],
[
if $READELF -l conftest$ac_exeext | $GREP WXNEED > /dev/null; then
AC_MSG_RESULT([yes])
- OS_LDFLAGS="-Wl,-z,wxneeded"
+ OS_LDFLAGS="-Wl,-z,wxneeded -Wl,-z,nobtcfi"
else
AC_MSG_RESULT([no])
fi

View file

@ -5,7 +5,7 @@ get the debug package without bloating the size of the jdk package.
Index: make/common/NativeCompilation.gmk
--- make/common/NativeCompilation.gmk.orig
+++ make/common/NativeCompilation.gmk
@@ -1003,9 +1003,7 @@ define SetupNativeCompilationBody
@@ -1008,9 +1008,7 @@ define SetupNativeCompilationBody
# Setup the command line creating debuginfo files, to be run after linking.
# It cannot be run separately since it updates the original target file
$1_CREATE_DEBUGINFO_CMDS := \

View file

@ -1,11 +0,0 @@
Index: src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp
--- src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp.orig
+++ src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp
@@ -1321,7 +1321,6 @@ address TemplateInterpreterGenerator::generate_native_
__ ldr(r10, Address(rmethod, Method::native_function_offset()));
address unsatisfied = (SharedRuntime::native_method_throw_unsatisfied_link_error_entry());
__ mov(rscratch2, unsatisfied);
- __ ldr(rscratch2, rscratch2);
__ cmp(r10, rscratch2);
__ br(Assembler::NE, L);
__ call_VM(noreg,

View file

@ -1,18 +0,0 @@
Add support for detecting the primordial thread
Index: src/hotspot/os/bsd/os_bsd.cpp
--- src/hotspot/os/bsd/os_bsd.cpp.orig
+++ src/hotspot/os/bsd/os_bsd.cpp
@@ -4407,6 +4407,12 @@ static void current_stack_region(address * bottom, siz
os::current_stack_pointer() < *bottom + *size, "just checking");
}
+#ifdef __OpenBSD__
+bool os::is_primordial_thread() {
+ return (pthread_main_np() == 1);
+}
+#endif
+
address os::current_stack_base() {
address bottom;
size_t size;

View file

@ -0,0 +1,19 @@
Reduce the number of sched_yield(2) before sleeping 10ms to work-around an
issue on sparc64
Index: src/hotspot/share/gc/shared/gc_globals.hpp
--- src/hotspot/share/gc/shared/gc_globals.hpp.orig
+++ src/hotspot/share/gc/shared/gc_globals.hpp
@@ -376,10 +376,10 @@
develop(uintx, PromotionFailureALotInterval, 5, \
"Total collections between promotion failures a lot") \
\
- experimental(uintx, WorkStealingSleepMillis, 1, \
+ experimental(uintx, WorkStealingSleepMillis, 10, \
"Sleep time when sleep is used for yields") \
\
- experimental(uintx, WorkStealingYieldsBeforeSleep, 5000, \
+ experimental(uintx, WorkStealingYieldsBeforeSleep, 1, \
"Number of yields before a sleep is done during work stealing") \
\
experimental(uintx, WorkStealingHardSpins, 4096, \

View file

@ -1,14 +0,0 @@
Add support for detecting the primordial thread
Index: src/hotspot/share/runtime/os.hpp
--- src/hotspot/share/runtime/os.hpp.orig
+++ src/hotspot/share/runtime/os.hpp
@@ -508,7 +508,7 @@ class os: AllStatic {
// need special-case handling of the primordial thread if it attaches
// to the VM.
static bool is_primordial_thread(void)
-#if defined(_WINDOWS) || defined(BSD)
+#if defined(_WINDOWS) || (defined(BSD) && !defined(__OpenBSD__))
// No way to identify the primordial thread.
{ return false; }
#else

View file

@ -1,19 +0,0 @@
Disable stack guarding on the primordial thread because its protections
are immutable. Note this will interfere with the primordial thread throwing
StackOverflowError exceptions.
Index: src/hotspot/share/runtime/thread.cpp
--- src/hotspot/share/runtime/thread.cpp.orig
+++ src/hotspot/share/runtime/thread.cpp
@@ -2608,7 +2608,11 @@ size_t JavaThread::_stack_shadow_zone_size = 0;
void JavaThread::create_stack_guard_pages() {
if (!os::uses_stack_guard_pages() ||
_stack_guard_state != stack_guard_unused ||
+#ifdef __OpenBSD__
+ (os::is_primordial_thread())) {
+#else
(DisablePrimordialThreadGuardPages && os::is_primordial_thread())) {
+#endif
log_info(os, thread)("Stack guard page creation for thread "
UINTX_FORMAT " disabled", os::current_thread_id());
return;

View file

@ -1,14 +0,0 @@
Start using waitid(2)
Index: src/java.base/unix/native/libjava/ProcessHandleImpl_unix.c
--- src/java.base/unix/native/libjava/ProcessHandleImpl_unix.c.orig
+++ src/java.base/unix/native/libjava/ProcessHandleImpl_unix.c
@@ -259,7 +259,7 @@ Java_java_lang_ProcessHandleImpl_waitForProcessExit0(J
return status;
}
} else {
-#if defined(__OpenBSD__)
+#if defined(__OpenBSD__) && OpenBSD < 202304
return os_waitForProcessExitNoReap(pid);
#else
/*

View file

@ -1,24 +0,0 @@
Start using waitid(2)
Index: src/java.base/unix/native/libjava/ProcessHandleImpl_unix.h
--- src/java.base/unix/native/libjava/ProcessHandleImpl_unix.h.orig
+++ src/java.base/unix/native/libjava/ProcessHandleImpl_unix.h
@@ -25,6 +25,10 @@
#include <sys/types.h>
+#ifdef __OpenBSD__
+ #include <sys/param.h>
+#endif
+
/*
* Declaration of ProcessHandleImpl functions common on all Unix platforms.
* 'unix_' functions have a single implementation in ProcessHandleImpl_unix.c
@@ -75,6 +79,6 @@ extern void unix_fillArgArray(JNIEnv *env, jobject jin
extern void os_initNative(JNIEnv *env, jclass clazz);
-#if defined(__OpenBSD__)
+#if defined(__OpenBSD__) && OpenBSD < 202304
extern int os_waitForProcessExitNoReap(pid_t pid);
#endif