pkgsrc-WIP-changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
openjdk25: get the build further along on macOS
Module Name: pkgsrc-wip
Committed By: Tobias Nygren <tnn%NetBSD.org@localhost>
Pushed By: tnn
Date: Wed Sep 16 17:55:59 2026 +0200
Changeset: bb5ff83279e225d18bb6792a537eda137aa84c30
Modified Files:
openjdk25/Makefile
openjdk25/bootstrap.mk
openjdk25/distinfo
openjdk25/options.mk
openjdk25/patches/patch-make_autoconf_buildjdk-spec.gmk.template
openjdk25/patches/patch-make_autoconf_flags-cflags.m4
Log Message:
openjdk25: get the build further along on macOS
To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=bb5ff83279e225d18bb6792a537eda137aa84c30
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
diffstat:
openjdk25/Makefile | 8 +++++++-
openjdk25/bootstrap.mk | 9 +++++++++
openjdk25/distinfo | 7 +++++--
openjdk25/options.mk | 13 +++++++++++--
.../patch-make_autoconf_buildjdk-spec.gmk.template | 16 +++++++++++++++-
openjdk25/patches/patch-make_autoconf_flags-cflags.m4 | 14 +++++++++++++-
6 files changed, 60 insertions(+), 7 deletions(-)
diffs:
diff --git a/openjdk25/Makefile b/openjdk25/Makefile
index ba68467356..bb862f548b 100644
--- a/openjdk25/Makefile
+++ b/openjdk25/Makefile
@@ -64,9 +64,13 @@ CONFIGURE_ARGS+= --with-boot-jdk=${ALT_BOOTDIR}
CONFIGURE_ARGS+= --with-giflib=bundled
CONFIGURE_ARGS+= --with-lcms=bundled
CONFIGURE_ARGS+= --with-cups-include=${BUILDLINK_PREFIX.libcups}/include
+.if ${OPSYS} == "Darwin"
+CONFIGURE_ARGS+= --with-freetype=bundled
+.else
CONFIGURE_ARGS+= --with-freetype=system
CONFIGURE_ARGS+= --with-freetype-lib=${BUILDLINK_PREFIX.freetype2}/lib
CONFIGURE_ARGS+= --with-freetype-include=${BUILDLINK_PREFIX.freetype2}/include
+.endif
CONFIGURE_ARGS+= --with-jobs=${MAKE_JOBS:U1}
CONFIGURE_ARGS+= --with-num-cores=${MAKE_JOBS:U1}
CONFIGURE_ARGS+= --disable-precompiled-headers
@@ -88,7 +92,7 @@ MAKE_ENV+= CLASSPATH=
ALL_ENV+= SED="sed -g"
.endif
-BUILD_OPSYS= ${OPSYS:C/.*BSD/bsd/:S/DragonFly/bsd/:S/SunOS/solaris/:S/Linux/linux/}
+BUILD_OPSYS= ${OPSYS:C/.*BSD/bsd/:S/DragonFly/bsd/:S/SunOS/solaris/:S/Linux/linux/:S/Darwin/macosx/}
BUILD_ARCH= ${MACHINE_ARCH:S/i386/x86/:S/sparc64/sparcv9/:C/^e?arm.*$/arm/}
BUILDDIR= ${WRKSRC}/build/${BUILD_OPSYS}-${BUILD_ARCH}-${BUILD_VARIANT}-${BUILD_DEBUG_LEVEL}
BUILDLINK_PASSTHRU_RPATHDIRS+= ${PREFIX}/java/${JAVA_NAME}/lib
@@ -200,8 +204,10 @@ do-install:
CONFIGURE_ARGS+= --with-alsa=${BUILDLINK_PREFIX.alsa-lib}
.endif
.include "../../converters/libiconv/buildlink3.mk"
+.if ${OPSYS} != "Darwin"
.include "../../fonts/fontconfig/buildlink3.mk"
.include "../../graphics/freetype2/buildlink3.mk"
+.endif
# Headers from CUPS are required to build the native implementation of
# sun.print.* which is used by java.awt.print.
BUILDLINK_DEPMETHOD.libcups?= build
diff --git a/openjdk25/bootstrap.mk b/openjdk25/bootstrap.mk
index fe650886ab..aa7ed0f52f 100644
--- a/openjdk25/bootstrap.mk
+++ b/openjdk25/bootstrap.mk
@@ -49,6 +49,15 @@ EXTRACT_ONLY+= ${BOOT.linux-amd64}
ALT_BOOTDIR= ${WRKDIR}/jdk-25.0.4.1+1
.endif
+ONLY_FOR_PLATFORM+= Darwin-*-aarch64
+BOOT.darwin-aarch64+= OpenJDK25U-jdk_aarch64_mac_hotspot_25.0.4.1_1.tar.gz
+SITES.${BOOT.darwin-aarch64}= https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.4.1%2B1/
+.if !empty(MACHINE_PLATFORM:MDarwin-*-aarch64) || make(distinfo)
+DISTFILES+= ${BOOT.darwin-aarch64}
+EXTRACT_ONLY+= ${BOOT.darwin-aarch64}
+ALT_BOOTDIR= ${WRKDIR}/jdk-25.0.4.1+1/Contents/Home
+.endif
+
CONFIGURE_ENV+= LD_LIBRARY_PATH=${ALT_BOOTDIR}/lib
ALT_BOOTDIR?= ${WRKDIR}/bootstrap
diff --git a/openjdk25/distinfo b/openjdk25/distinfo
index 15bca7bc26..0fc325e4c8 100644
--- a/openjdk25/distinfo
+++ b/openjdk25/distinfo
@@ -1,5 +1,8 @@
$NetBSD: distinfo,v 1.17 2026/08/16 11:54:29 tnn Exp $
+BLAKE2s (OpenJDK25U-jdk_aarch64_mac_hotspot_25.0.4.1_1.tar.gz) = 3712b494106364a0d0de79aee436f96b01c62be56afb7a977bcef006a31b583f
+SHA512 (OpenJDK25U-jdk_aarch64_mac_hotspot_25.0.4.1_1.tar.gz) = 535f90a294ffe6adf47bc637605cd7ed5ba4d4c1c89eeeb61d293d8e8f727c0955792fae2c8073c15736f8d03e9756419fdc06adca0039f23aba149d38b7f21a
+Size (OpenJDK25U-jdk_aarch64_mac_hotspot_25.0.4.1_1.tar.gz) = 136355078 bytes
BLAKE2s (OpenJDK25U-jdk_x64_linux_hotspot_25.0.4.1_1.tar.gz) = 472b5de195b366f7e60f02c243155c8b541c9ccb714c0c72f9789dfabd452977
SHA512 (OpenJDK25U-jdk_x64_linux_hotspot_25.0.4.1_1.tar.gz) = c96f0d7a22068a488c6bc2ef908f946280d26ce384dbd879c6ae9a01a60441cfed8cff97f3dc5f02b939cc9fab5ad9279b5f497a3523195102cfcd151cac0816
Size (OpenJDK25U-jdk_x64_linux_hotspot_25.0.4.1_1.tar.gz) = 141329719 bytes
@@ -18,8 +21,8 @@ Size (bootstrap-jdk-1.25.0.4.7-netbsd-9-i386-20260907.tar.xz) = 116043068 bytes
BLAKE2s (jdk25u-jdk-25.0.4-7-1.tar.gz) = db81e919589070cbef63d5f4df43a690cb5119a72f75b12eb1a289621b4e2b97
SHA512 (jdk25u-jdk-25.0.4-7-1.tar.gz) = ac564673ce14b192f3136d3d92e6125d412f1f449b3fcbe1f47dd0af7a6ccf6ec4a8f4c5074dcab17faf09fc2df54e0430c1e28ea7b8e171169ad97f2213b3fe
Size (jdk25u-jdk-25.0.4-7-1.tar.gz) = 119810522 bytes
-SHA1 (patch-make_autoconf_buildjdk-spec.gmk.template) = 050c1ac0eaa96240651555264eb0e25d5537ab04
-SHA1 (patch-make_autoconf_flags-cflags.m4) = 863f94fc42117007d68cabf580689cdda194d5f7
+SHA1 (patch-make_autoconf_buildjdk-spec.gmk.template) = 123c0b42323c3de51ccb418486cc57ef8e5feb77
+SHA1 (patch-make_autoconf_flags-cflags.m4) = 577ea110cba90c55e1555d4bde0a02b8c6180101
SHA1 (patch-make_autoconf_hotspot.m4) = 6097c29677f4b84c3821b5cf7ac8c397376027d0
SHA1 (patch-make_autoconf_lib-alsa.m4) = 999fbf951363f6b49b22aad81537728f22d7c381
SHA1 (patch-make_autoconf_lib-bundled.m4) = 5f5b638a08abf2f2066a122a825cfa3db9e95139
diff --git a/openjdk25/options.mk b/openjdk25/options.mk
index 3ddfd94d3c..982b11509f 100644
--- a/openjdk25/options.mk
+++ b/openjdk25/options.mk
@@ -3,8 +3,12 @@
PKG_OPTIONS_VAR= PKG_OPTIONS.openjdk25
PKG_OPTIONS_OPTIONAL_GROUPS= variant
PKG_OPTIONS_GROUP.variant= jdk-zero-vm
-PKG_SUPPORTED_OPTIONS= debug dtrace jre-jce x11 static-libstdcpp jdk-bundled-zlib
-PKG_SUGGESTED_OPTIONS= jre-jce x11
+PKG_SUPPORTED_OPTIONS= debug dtrace jre-jce static-libstdcpp jdk-bundled-zlib
+PKG_SUGGESTED_OPTIONS= jre-jce
+.if ${OPSYS} != "Darwin"
+PKG_SUPPORTED_OPTIONS+= x11
+PKG_SUGGESTED_OPTIONS+= x11
+.endif
.if ${MACHINE_ARCH} == "aarch64" || ${MACHINE_ARCH} == "x86_64"
PKG_OPTIONS_GROUP.variant+= jdk-hotspot-vm
@@ -48,6 +52,11 @@ BUILDLINK_DEPMETHOD.libXt?= build
.include "../../x11/libXrender/buildlink3.mk"
.include "../../x11/libXtst/buildlink3.mk"
.include "../../x11/libXrandr/buildlink3.mk"
+.elif ${OPSYS} == "Darwin"
+# The Metal compiler is no longer part of Xcode itself.
+# You need to manually run `sudo xcodebuild -downloadComponent MetalToolchain`
+CONFIGURE_ARGS+= METAL="xcrun metal"
+CONFIGURE_ARGS+= METALLIB="xcrun metallib"
.else
CONFIGURE_ARGS+= --x-includes=${X11BASE}/include
CONFIGURE_ARGS+= --x-libraries=${X11BASE}/lib
diff --git a/openjdk25/patches/patch-make_autoconf_buildjdk-spec.gmk.template b/openjdk25/patches/patch-make_autoconf_buildjdk-spec.gmk.template
index b6cf1b0211..6e079c18e0 100644
--- a/openjdk25/patches/patch-make_autoconf_buildjdk-spec.gmk.template
+++ b/openjdk25/patches/patch-make_autoconf_buildjdk-spec.gmk.template
@@ -5,9 +5,23 @@ This is needed for native builds on platforms where hotspot is broken or not
supported. In that case the buildjdk can't be hardcoded to "server" but must
use "zero". This is fine for pkgsrc since we only ever build one variant.
+The buildjdk is run out of the build tree, so on Darwin its libraries must
+not claim to live in ${PREFIX}. c.f. flags-cflags.m4.
+
--- make/autoconf/buildjdk-spec.gmk.template.orig 2026-07-24 17:22:09.000000000 +0000
+++ make/autoconf/buildjdk-spec.gmk.template
-@@ -95,8 +95,9 @@ ENABLE_DEBUG_SYMBOLS := false
+@@ -53,6 +53,10 @@ SUPPORT_OUTPUTDIR := $(patsubst $(OUTPUT
+ JDK_OUTPUTDIR := $(patsubst $(OUTPUTDIR)%,$(BUILDJDK_OUTPUTDIR)%,$(JDK_OUTPUTDIR))
+ IMAGES_OUTPUTDIR := $(patsubst $(OUTPUTDIR)%,$(BUILDJDK_OUTPUTDIR)%,$(IMAGES_OUTPUTDIR))
+
++ifeq ($(OPENJDK_TARGET_OS), macosx)
++ SET_SHARED_LIBRARY_NAME = -Wl,-install_name,$(JDK_OUTPUTDIR)/lib/$(patsubst libjvm.%,$(JVM_VARIANT_MAIN)/libjvm.%,$1)
++endif
++
+ OPENJDK_BUILD_CPU_LEGACY := @OPENJDK_BUILD_CPU_LEGACY@
+ OPENJDK_BUILD_CPU_LEGACY_LIB := @OPENJDK_BUILD_CPU_LEGACY_LIB@
+ OPENJDK_BUILD_LIBC := @OPENJDK_BUILD_LIBC@
+@@ -95,8 +99,9 @@ DISABLE_WARNING_PREFIX := @BUILD_CC_DISA
# Save speed and disk space by not enabling debug symbols for the buildjdk
ENABLE_DEBUG_SYMBOLS := false
diff --git a/openjdk25/patches/patch-make_autoconf_flags-cflags.m4 b/openjdk25/patches/patch-make_autoconf_flags-cflags.m4
index 9b20cbe596..cabfc7d450 100644
--- a/openjdk25/patches/patch-make_autoconf_flags-cflags.m4
+++ b/openjdk25/patches/patch-make_autoconf_flags-cflags.m4
@@ -4,7 +4,7 @@ We prefer to use explicit run paths.
--- make/autoconf/flags-cflags.m4.orig 2026-07-24 17:22:09.000000000 +0000
+++ make/autoconf/flags-cflags.m4
-@@ -40,8 +40,8 @@ AC_DEFUN([FLAGS_SETUP_SHARED_LIBS],
+@@ -40,17 +40,17 @@ AC_DEFUN([FLAGS_SETUP_SHARED_LIBS],
# --disable-new-dtags forces use of RPATH instead of RUNPATH for rpaths.
# This protects internal library dependencies within the JDK from being
# overridden using LD_LIBRARY_PATH. See JDK-8326891 for more information.
@@ -15,6 +15,18 @@ We prefer to use explicit run paths.
SET_SHARED_LIBRARY_NAME='-Wl,-soname=[$]1'
elif test "x$TOOLCHAIN_TYPE" = xclang; then
+ if test "x$OPENJDK_TARGET_OS" = xmacosx; then
+ # Linking is different on MacOSX
+ SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0"
+- SET_EXECUTABLE_ORIGIN='-Wl,-rpath,@loader_path$(or [$]1,/.)'
+- SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
+- SET_SHARED_LIBRARY_NAME='-Wl,-install_name,@rpath/[$]1'
++ SET_EXECUTABLE_ORIGIN=''
++ SET_SHARED_LIBRARY_ORIGIN=''
++ SET_SHARED_LIBRARY_NAME='-Wl,-install_name,@PREFIX@/java/@JAVA_NAME@/lib/$(patsubst libjvm.%,${JVM_VARIANT_MAIN}/libjvm.%,[$]1)'
+
+ elif test "x$OPENJDK_TARGET_OS" = xaix; then
+ # Linking is different on aix
@@ -62,19 +62,12 @@ AC_DEFUN([FLAGS_SETUP_SHARED_LIBS],
else
# Default works for linux, might work on other platforms as well.
Home |
Main Index |
Thread Index |
Old Index