<pre style='margin:0'>
Nils Breunese (breun) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/8d0f44405a83b5e85d0b62a8e4f12e8997d330ae">https://github.com/macports/macports-ports/commit/8d0f44405a83b5e85d0b62a8e4f12e8997d330ae</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 8d0f44405a8 openjdk24: new submission (#27945)
</span>8d0f44405a8 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 8d0f44405a83b5e85d0b62a8e4f12e8997d330ae
</span>Author: Nils Breunese <breun@macports.org>
AuthorDate: Wed Mar 19 15:57:15 2025 +0100

<span style='display:block; white-space:pre;color:#404040;'>    openjdk24: new submission (#27945)
</span>---
 java/openjdk24/Portfile                            | 182 +++++++++++++++++++++
 .../files/JDK-8340341-clang-16-workaround.patch    |  14 ++
 2 files changed, 196 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/java/openjdk24/Portfile b/java/openjdk24/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..c7f6af5ca70
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/java/openjdk24/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,182 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem          1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set feature 24
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# See https://github.com/openjdk/jdk/blob/master/doc/building.md#boot-jdk-requirements
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set boot_feature 23
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name                openjdk${feature}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# See https://github.com/openjdk/jdk24u/tags for the version and build number that matches the latest tag that ends with '-ga'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version             ${feature}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set build 36
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+categories          java devel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+supported_archs     x86_64 arm64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license             GPL-2+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers         {breun.nl:nils @breun} openmaintainer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description         OpenJDK ${feature} (Short Term Support until September 2025)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description    {*}${description} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    \n\nJDK ${feature} builds of OpenJDK, the Open-Source implementation \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    of the Java Platform, Standard Edition, and related projects.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+homepage            https://openjdk.org/projects/jdk/${feature}/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+master_sites        https://github.com/openjdk/jdk${feature}u/archive/refs/tags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+distname            jdk-${version}-ga
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+worksrcdir          jdk${feature}u-${distname}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums           rmd160  de461bb8ca8bf3f7c852f7ad1ca8bdd5fc111fa5 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  62cfe6846267a31edb1a4f451b1b1c6fddd25b7ec8522d32387f5450963b9996 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    120680620
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set bootjdk_port    openjdk${boot_feature}-zulu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib         port:freetype \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:libiconv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_build       port:${bootjdk_port} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:autoconf \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:gmake \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:bash
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Boot JDK license/redistributability should not affect license/redistributability of this port
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license_noconflict  ${bootjdk_port}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+pre-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    reinplace "s|libffi.so.?|libffi.?.dylib|g" ${worksrcpath}/make/autoconf/lib-ffi.m4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    reinplace "s|xmacosx|xwindows|g" ${worksrcpath}/make/autoconf/lib-freetype.m4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Temporary workaround for clang 16.0-16.1: https://trac.macports.org/ticket/70819
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles          JDK-8340341-clang-16-workaround.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set tpath ${prefix}/Library/Java
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+use_xcode           yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+use_configure    yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.cmd       ${prefix}/bin/bash configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.pre_args  --prefix=${tpath}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set bug_url "https://trac.macports.org/newticket?port=${name}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# default configure args
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args      --with-debug-level=release \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-native-debug-symbols=none \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-version-string=${version}+${build} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-sysroot=`xcrun --sdk macosx --show-sdk-path` \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-extra-cflags="${configure.cflags}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-extra-cxxflags="${configure.cxxflags}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-extra-ldflags="${configure.ldflags}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-boot-jdk=/Library/Java/JavaVirtualMachines/jdk-${boot_feature}-azul-zulu.jdk/Contents/Home \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-freetype=system \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-freetype-include=${prefix}/include/freetype2 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-freetype-lib=${prefix}/lib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --disable-warnings-as-errors \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --disable-precompiled-headers \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-vendor-name="MacPorts" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-vendor-url="https://www.macports.org" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-vendor-bug-url="${bug_url}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-vendor-vm-bug-url="${bug_url}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-conf-name=release
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {[option configure.ccache]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # replace MacPorts ccache integration into JDK
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.ccache        no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_build-append    path:bin/ccache:ccache
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append   --enable-ccache \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            --with-ccache-dir=${ccache_dir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant release \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    conflicts debug optimized \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    description {OpenJDK with no debug information, all optimizations and no asserts} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append   --with-debug-level=release
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant optimized \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    conflicts debug release \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    description {OpenJDK with no debug information, all optimizations, no asserts and HotSpot is 'optimized'} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append   --with-debug-level=optimized
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant debug \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    conflicts optimized release \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    description {OpenJDK with debug information, all optimizations and all asserts} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append   --with-debug-level=fastdebug
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-delete   --with-native-debug-symbols=none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant client \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    conflicts core minimal server zero \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    description {JVM with normal interpreter, C1 and no C2 compiler} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append   --with-jvm-variants=client
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant server \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    conflicts client core minimal zero \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    description {JVM with normal interpreter, and a tiered C1/C2 compiler} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append   --with-jvm-variants=server
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant minimal \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    conflicts client core server zero \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    description {JVM with reduced form of normal interpreter having C1, no C2 compiler and optional features stripped out} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append   --with-jvm-variants=minimal
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant core \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    conflicts client minimal server zero \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    description {JVM with normal interpreter only and no compiler} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append   --with-jvm-variants=core
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant zero \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    conflicts client core minimal server \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    description {JVM with C++ based interpreter only, no compiler} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append   --with-jvm-variants=zero \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            --with-libffi=${prefix} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            --enable-libffi-bundling
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_lib-append         port:libffi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {![variant_isset debug] && ![variant_isset optimized] && ![variant_isset release]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    default_variants-append +release
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {![variant_isset client] && ![variant_isset core] && ![variant_isset minimal] && ![variant_isset server]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    default_variants-append +server
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+build.type          gnu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+build.target        images
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+use_parallel_build  no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set jdkn jdk-${version}.jdk
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set bundle_dir build/release/images/jdk-bundle/${jdkn}/Contents
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+test.run            yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+test.cmd            ${bundle_dir}/Home/bin/java
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+test.target         --version
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set jvms /Library/Java/JavaVirtualMachines
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set jdk ${jvms}/jdk-${feature}-macports.jdk
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -m 755 -d ${destroot}${prefix}${jdk}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    copy ${worksrcpath}/${bundle_dir} ${destroot}${prefix}${jdk}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # macOS Java tools expect to find Java virtual machines under /Library/Java/JavaVirtualMachines, so let's create a symlink there
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -m 755 -d ${destroot}${jvms}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ln -s ${prefix}${jdk} ${destroot}${jdk}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# macOS Java tools expect to find Java virtual machines under /Library/Java/JavaVirtualMachines, which is not under ${prefix}.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+destroot.violate_mtree      yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    delete ${worksrcpath}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+notes "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If you want to make ${name} the default JDK, add this to shell profile:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+export JAVA_HOME=${jdk}/Contents/Home
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+livecheck.type      regex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+livecheck.url       https://github.com/openjdk/jdk${feature}u/tags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+livecheck.regex     jdk-(${feature}\.\[0-9.\]+)-ga
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/java/openjdk24/files/JDK-8340341-clang-16-workaround.patch b/java/openjdk24/files/JDK-8340341-clang-16-workaround.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..5c471b151c5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/java/openjdk24/files/JDK-8340341-clang-16-workaround.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,14 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- make/hotspot/lib/JvmOverrideFiles.gmk.orig     2024-06-04 18:47:50
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ make/hotspot/lib/JvmOverrideFiles.gmk  2024-09-22 23:45:41
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -89,6 +89,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # for the clang bug was still needed.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     BUILD_LIBJVM_loopTransform.cpp_CXXFLAGS := $(CXX_O_FLAG_NONE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # See JDK-8340341
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ifeq ($(firstword $(subst ., ,$(CXX_VERSION_NUMBER))), 16)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      BUILD_LIBJVM_stackMapTable.cpp_CXXFLAGS := -O1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # The following files are compiled at various optimization
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # levels due to optimization issues encountered at the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # default level. The Clang compiler issues a compile
</span></pre><pre style='margin:0'>

</pre>