diff options
Diffstat (limited to 'java')
| -rw-r--r-- | java/Makefile | 1 | ||||
| -rw-r--r-- | java/openjdk25/Makefile | 188 | ||||
| -rw-r--r-- | java/openjdk25/distinfo | 3 | ||||
| -rw-r--r-- | java/openjdk25/files/patch-configure | 14 | ||||
| -rw-r--r-- | java/openjdk25/files/patch-make_autoconf_flags-cflags.m4 | 12 | ||||
| -rw-r--r-- | java/openjdk25/files/patch-make_autoconf_libraries.m4 | 15 | ||||
| -rw-r--r-- | java/openjdk25/files/patch-src_hotspot_os__cpu_bsd__ppc_os__bsd__ppc.cpp | 11 | ||||
| -rw-r--r-- | java/openjdk25/files/patch-src_hotspot_os_bsd_os__bsd.cpp | 11 | ||||
| -rw-r--r-- | java/openjdk25/files/patch-src_jdk.jdwp.agent_unix_native_libjdwp_exec__md.c | 20 | ||||
| -rw-r--r-- | java/openjdk25/pkg-descr | 1 | ||||
| -rw-r--r-- | java/openjdk25/pkg-message | 15 | 
11 files changed, 291 insertions, 0 deletions
| diff --git a/java/Makefile b/java/Makefile index 8bd76be6c979..e5c472c51030 100644 --- a/java/Makefile +++ b/java/Makefile @@ -90,6 +90,7 @@      SUBDIR += openjdk22      SUBDIR += openjdk23      SUBDIR += openjdk24 +    SUBDIR += openjdk25      SUBDIR += openjdk8      SUBDIR += openjdk8-jre      SUBDIR += openjfx14 diff --git a/java/openjdk25/Makefile b/java/openjdk25/Makefile new file mode 100644 index 000000000000..3c3e590bc437 --- /dev/null +++ b/java/openjdk25/Makefile @@ -0,0 +1,188 @@ +PORTNAME=	openjdk +DISTVERSIONPREFIX=	jdk- +DISTVERSION=	${JDK_FULL_VERSION:S/.0.0//} + +CATEGORIES=	java devel +PKGNAMESUFFIX?=	${JDK_MAJOR_VERSION} + +MAINTAINER=	java@FreeBSD.org +COMMENT=	Java Development Kit ${JDK_MAJOR_VERSION} +WWW=		https://openjdk.java.net/projects/jdk/25/ + +LICENSE=	GPLv2 + +ONLY_FOR_ARCHS=	aarch64 amd64 powerpc64 powerpc64le + +BUILD_DEPENDS=	zip:archivers/zip \ +		${LOCALBASE}/include/cups/cups.h:print/cups \ +		bash:shells/bash \ +		gsed:textproc/gsed +LIB_DEPENDS=	libasound.so:audio/alsa-lib \ +		libfontconfig.so:x11-fonts/fontconfig \ +		libfreetype.so:print/freetype2 \ +		libgif.so:graphics/giflib \ +		libharfbuzz.so:print/harfbuzz \ +		liblcms2.so:graphics/lcms2 \ +		libpng.so:graphics/png +RUN_DEPENDS=	javavm:java/javavmwrapper \ +		xorg-fonts-truetype>0:x11-fonts/xorg-fonts-truetype + +USES=	autoreconf:build compiler:features cpe gmake iconv jpeg pkgconfig xorg +USE_XORG=	x11 xext xi xrandr xrender xt xtst + +CPE_VENDOR=	oracle + +USE_GITHUB=	yes +GH_ACCOUNT=	freebsd + +NO_CCACHE=	yes + +# Suppress passing -j to do-build target via Mk/bsd.port.mk +# In the JDK build the number of parallel jobs is passed in via configure --with-num-cores=N +_MAKE_JOBS=	# +MAKE_ENV=	CLASSPATH="" \ +		JAVA_HOME="" \ +		LD_LIBRARY_PATH="" \ +		LOG=cmdlines \ +		MAKEFLAGS="" + +JDK_ARCH=	${ARCH:S/amd64/x86_64/:S/i386/x86/:S/powerpc64/ppc64/} +JDK_OSARCH=	bsd-${JDK_ARCH} +JDK_BUILDDIR=	${WRKSRC}/build/${JDK_OSARCH}-${JDK_BUILD_JVM}-${JDK_BUILD_TYPE} +.if defined(BUILD_JRE) +JDK_IMAGEDIR=	${JDK_BUILDDIR}/images/jre +.else +JDK_IMAGEDIR=	${JDK_BUILDDIR}/images/jdk +.endif +INSTALLDIR=	${PREFIX}/${PKGBASE} + +NOPRECIOUSMAKEVARS=	yes + +JDK_MAJOR_VERSION=	25 +JDK_MINOR_VERSION=	0 +JDK_PATCH_VERSION=	0 +JDK_BUILD_NUMBER=	36 +BSD_JDK_VERSION=	freebsd-1 +JDK_FULL_VERSION=	${JDK_MAJOR_VERSION}.${JDK_MINOR_VERSION}.${JDK_PATCH_VERSION}+${JDK_BUILD_NUMBER}-${BSD_JDK_VERSION} + +JDK_BUG_URL=	https://bugs.freebsd.org/bugzilla/enter_bug.cgi?product=Ports%20%26%20Packages&component=Individual%20Port(s)&short_desc=java/${PORTNAME}${JDK_MAJOR_VERSION}%3A%20 + +GNU_CONFIGURE=	yes +CONFIGURE_TARGET=${JDK_ARCH}-portbld-${OPSYS:tl}${OSREL} +CONFIGURE_ENV=	ac_cv_path_SED=${LOCALBASE}/bin/gsed +CONFIGURE_ARGS=	--with-boot-jdk=${BOOTSTRAPJDKDIR} \ +		--disable-ccache \ +		--disable-javac-server \ +		--with-alsa=${LOCALBASE} \ +		--with-cups=${LOCALBASE} \ +		--with-fontconfig=${LOCALBASE} \ +		--with-freetype=system \ +		--with-libjpeg=system \ +		--with-giflib=system \ +		--with-giflib-include=${LOCALBASE}/include \ +		--with-giflib-lib=${LOCALBASE}/lib \ +		--with-harfbuzz=system \ +		--with-libpng=system \ +		--with-num-cores=${MAKE_JOBS_NUMBER} \ +		--with-zlib=system \ +		--with-lcms=system \ +		--x-includes=${LOCALBASE}/include \ +		--x-libraries=${LOCALBASE}/lib \ +		--with-version-string=${JDK_MAJOR_VERSION}.${JDK_MINOR_VERSION}.${JDK_PATCH_VERSION}+${JDK_BUILD_NUMBER}-${BSD_JDK_VERSION} \ +		--with-native-debug-symbols=none \ +		--with-debug-level=release \ +		--with-vendor-name="OpenJDK BSD Porting Team" \ +		--with-vendor-url="https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/" \ +		--with-vendor-bug-url="${JDK_BUG_URL}" \ +		--with-vendor-vm-bug-url="${JDK_BUG_URL}" + +JAVAVMS_COMMENT=	OpenJDK${JDK_MAJOR_VERSION} + +.if defined(BUILD_JRE) +ALL_TARGET=		legacy-images +.else +ALL_TARGET=		images +.endif +JDK_BUILD_TYPE=		release + +.include <bsd.port.pre.mk> + +BOOTSTRAP_JDKS=	${LOCALBASE}/openjdk25 ${LOCALBASE}/openjdk24 + +# do we have valid native jdk installed? +.for BJDK in ${BOOTSTRAP_JDKS} +.  if !defined(BOOTSTRAPJDKDIR) && exists(${BJDK}/bin/javac) +BOOTSTRAPJDKDIR=	${BJDK} +.  endif +.endfor + +# if no valid jdk found, set dependency +.if !defined(BOOTSTRAPJDKDIR) +BOOTSTRAPJDKDIR?=	${LOCALBASE}/openjdk24 +BUILD_DEPENDS+=		${BOOTSTRAPJDKDIR}/bin/javac:java/openjdk24 +.endif + +JDK_BUILD_JVM=	server + +MAKE_ENV+=		--with-toolchain-type=${COMPILER_TYPE} +CONFIGURE_ARGS+=	--with-toolchain-type=${COMPILER_TYPE} +CONFIGURE_ARGS+=	--disable-warnings-as-errors + +.if ${COMPILER_TYPE} == gcc +USE_GCC=	yes +CONFIGURE_ARGS+=	--with-extra-ldflags="-Wl,-rpath=${LOCALBASE}/lib/gcc${GCC_DEFAULT} -L${LOCALBASE}/lib/gcc${GCC_DEFAULT}" \ +			--with-extra-cflags="-Wl,-rpath=${LOCALBASE}/lib/gcc${GCC_DEFAULT}" \ +			--with-extra-cxxflags="-Wl,-rpath=${LOCALBASE}/lib/gcc${GCC_DEFAULT}" +.else +MAKE_ENV+=	USE_CLANG=true +EXTRA_CFLAGS+=		-Wno-unused-but-set-parameter +EXTRA_CFLAGS+=		-Wno-bitwise-instead-of-logical +EXTRA_CFLAGS+=		-Wno-error=deprecated-non-prototype +CONFIGURE_ARGS+=	--with-extra-cflags="${EXTRA_CFLAGS}" +CONFIGURE_ARGS+=	--with-extra-cxxflags="${EXTRA_CFLAGS}" +.endif + +.if ${ARCH} == aarch64 +CONFIGURE_ARGS+=	--disable-dtrace +.endif + +.if empty(ICONV_LIB) +ICONV_CFLAGS=	-DLIBICONV_PLUG +.else +ICONV_CFLAGS=	-I${LOCALBASE}/include +ICONV_LDFLAGS=	-L${LOCALBASE}/lib +ICONV_LIBS=	${ICONV_LIB} +.endif + +post-patch: +	@${RM} ${WRKSRC}/src/hotspot/os_cpu/bsd_ppc/thread_bsd_ppc.cpp +	@${MV} ${WRKSRC}/src/hotspot/os_cpu/bsd_ppc/thread_bsd_ppc.hpp \ +		${WRKSRC}/src/hotspot/os_cpu/bsd_ppc/javaThread_bsd_ppc.hpp + +	@${FIND} ${WRKSRC} -name '*.orig' -delete +	@${CHMOD} 755 ${WRKSRC}/configure +	@${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' \ +		${WRKSRC}/configure \ +		${WRKSRC}/src/hotspot/os/bsd/os_bsd.cpp +	@${REINPLACE_CMD} -e 's|%%ICONV_CFLAGS%%|${ICONV_CFLAGS}|' \ +		-e 's|%%ICONV_LDFLAGS%%|${ICONV_LDFLAGS}|' \ +		-e 's|%%ICONV_LIBS%%|${ICONV_LIBS}|' \ +		${WRKSRC}/make/autoconf/libraries.m4 + +post-build: +.if defined(OPENJDK_SYMLINK_CACERTS) +	@${RM} ${JDK_IMAGEDIR}/lib/security/cacerts +	@${LN} -sf ${OPENJDK_SYMLINK_CACERTS} ${JDK_IMAGEDIR}/lib/security/cacerts +.endif + +do-install: +	@${MKDIR} ${STAGEDIR}${INSTALLDIR} +	@cd ${JDK_IMAGEDIR} && ${COPYTREE_SHARE} . ${STAGEDIR}${INSTALLDIR} +	@cd ${STAGEDIR}${INSTALLDIR} && \ +		${FIND} bin -type f -exec ${CHMOD} ${BINMODE} {} \; +	@${CHMOD} ${BINMODE} ${STAGEDIR}${INSTALLDIR}/lib/jspawnhelper +	@${ECHO} "@javavm ${INSTALLDIR}/bin/java" >> ${TMPPLIST} +	@${FIND} ${STAGEDIR}${INSTALLDIR} -not -type d | ${SORT} | \ +		${SED} -e 's|^${STAGEDIR}${PREFIX}/||' >> ${TMPPLIST} + +.include <bsd.port.post.mk> diff --git a/java/openjdk25/distinfo b/java/openjdk25/distinfo new file mode 100644 index 000000000000..94633f751513 --- /dev/null +++ b/java/openjdk25/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1761395132 +SHA256 (freebsd-openjdk-jdk-25+36-freebsd-1_GH0.tar.gz) = 3bd387e9c63a6610977cf7785b2887b154fdd9f7a9cf62a80809c1fd1b2eaebf +SIZE (freebsd-openjdk-jdk-25+36-freebsd-1_GH0.tar.gz) = 119485554 diff --git a/java/openjdk25/files/patch-configure b/java/openjdk25/files/patch-configure new file mode 100644 index 000000000000..4c97fddabcd2 --- /dev/null +++ b/java/openjdk25/files/patch-configure @@ -0,0 +1,14 @@ +--- configure.orig	2025-10-24 11:51:54 UTC ++++ configure +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!%%LOCALBASE%%/bin/bash + # + # Copyright (c) 2012, 2023, Oracle and/or its affiliates. All rights reserved. + # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +@@ -36,4 +36,4 @@ fi + # Delegate to wrapper, forcing wrapper to believe $0 is this script by using -c. + # This trick is needed to get autoconf to co-operate properly. + # The ${-:+-$-} construction passes on bash options. +-bash ${-:+-$-} -c ". \"${this_script_dir}/make/autoconf/configure\"" "${this_script_dir}/configure" CHECKME "${this_script_dir}" "$@" ++%%LOCALBASE%%/bin/bash ${-:+-$-} -c ". \"${this_script_dir}/make/autoconf/configure\"" "${this_script_dir}/configure" CHECKME "${this_script_dir}" "$@" diff --git a/java/openjdk25/files/patch-make_autoconf_flags-cflags.m4 b/java/openjdk25/files/patch-make_autoconf_flags-cflags.m4 new file mode 100644 index 000000000000..81bc372519f5 --- /dev/null +++ b/java/openjdk25/files/patch-make_autoconf_flags-cflags.m4 @@ -0,0 +1,12 @@ +--- make/autoconf/flags-cflags.m4.orig	2025-09-16 10:24:48 UTC ++++ make/autoconf/flags-cflags.m4 +@@ -780,6 +780,9 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP], +         # Use Power8, this is the first CPU to support PPC64 LE with ELFv2 ABI. +         $1_CFLAGS_CPU_JVM="${$1_CFLAGS_CPU_JVM} -DABI_ELFv2 -mcpu=power8 -mtune=power10" +       fi ++      if test "x$FLAGS_CPU" = xppc64; then ++        $1_CFLAGS_CPU_JVM="${$1_CFLAGS_CPU_JVM} -DABI_ELFv2 -mcpu=powerpc64 -mtune=power5" ++      fi +     fi +     if test "x$OPENJDK_TARGET_OS" = xaix; then +       $1_CFLAGS_CPU="-mcpu=pwr8" diff --git a/java/openjdk25/files/patch-make_autoconf_libraries.m4 b/java/openjdk25/files/patch-make_autoconf_libraries.m4 new file mode 100644 index 000000000000..9c86f7093ac7 --- /dev/null +++ b/java/openjdk25/files/patch-make_autoconf_libraries.m4 @@ -0,0 +1,15 @@ +--- make/autoconf/libraries.m4.orig	2025-10-24 12:39:13 UTC ++++ make/autoconf/libraries.m4 +@@ -212,9 +212,9 @@ AC_DEFUN_ONCE([LIB_SETUP_MISC_LIBS], +       ICONV_LDFLAGS="-L/usr/local/lib" +       ICONV_LIBS=-liconv +     elif test "x$OPENJDK_TARGET_OS_ENV" = "xbsd.freebsd"; then +-      ICONV_CFLAGS=-DLIBICONV_PLUG +-      ICONV_LDFLAGS= +-      ICONV_LIBS= ++      ICONV_CFLAGS=%%ICONV_CFLAGS%% ++      ICONV_LDFLAGS=%%ICONV_LDFLAGS%% ++      ICONV_LIBS=%%ICONV_LIBS%% +     else +       ICONV_CFLAGS= +       ICONV_LDFLAGS= diff --git a/java/openjdk25/files/patch-src_hotspot_os__cpu_bsd__ppc_os__bsd__ppc.cpp b/java/openjdk25/files/patch-src_hotspot_os__cpu_bsd__ppc_os__bsd__ppc.cpp new file mode 100644 index 000000000000..6710b9fea9e3 --- /dev/null +++ b/java/openjdk25/files/patch-src_hotspot_os__cpu_bsd__ppc_os__bsd__ppc.cpp @@ -0,0 +1,11 @@ +--- src/hotspot/os_cpu/bsd_ppc/os_bsd_ppc.cpp.orig	2025-10-30 14:38:45 UTC ++++ src/hotspot/os_cpu/bsd_ppc/os_bsd_ppc.cpp +@@ -179,7 +179,7 @@ intptr_t* os::fetch_bcp_from_context(const void* ucVoi +   assert(ucVoid != nullptr, "invariant"); +   const ucontext_t* uc = (const ucontext_t*)ucVoid; +   assert(os::Posix::ucontext_is_interpreter(uc), "invariant"); +-  return reinterpret_cast<intptr_t*>(uc->uc_mcontext.regs->gpr[14]); // R14_bcp ++  return reinterpret_cast<intptr_t*>(uc->uc_mcontext.mc_gpr[14]); // R14_bcp + } +  + frame os::get_sender_for_C_frame(frame* fr) { diff --git a/java/openjdk25/files/patch-src_hotspot_os_bsd_os__bsd.cpp b/java/openjdk25/files/patch-src_hotspot_os_bsd_os__bsd.cpp new file mode 100644 index 000000000000..402f0f475bc3 --- /dev/null +++ b/java/openjdk25/files/patch-src_hotspot_os_bsd_os__bsd.cpp @@ -0,0 +1,11 @@ +--- src/hotspot/os/bsd/os_bsd.cpp.orig	2021-09-29 21:25:10 UTC ++++ src/hotspot/os/bsd/os_bsd.cpp +@@ -361,7 +361,7 @@ +     #elif defined(__NetBSD__) +       #define DEFAULT_LIBPATH "/usr/lib:/usr/pkg/lib" +     #else +-      #define DEFAULT_LIBPATH "/usr/lib:/usr/local/lib" ++      #define DEFAULT_LIBPATH "/usr/lib:%%LOCALBASE%%/lib" +     #endif +   #else +     #define DEFAULT_LIBPATH OVERRIDE_LIBPATH diff --git a/java/openjdk25/files/patch-src_jdk.jdwp.agent_unix_native_libjdwp_exec__md.c b/java/openjdk25/files/patch-src_jdk.jdwp.agent_unix_native_libjdwp_exec__md.c new file mode 100644 index 000000000000..80ae4c90cdf7 --- /dev/null +++ b/java/openjdk25/files/patch-src_jdk.jdwp.agent_unix_native_libjdwp_exec__md.c @@ -0,0 +1,20 @@ +--- src/jdk.jdwp.agent/unix/native/libjdwp/exec_md.c.orig	2025-06-27 12:18:08 UTC ++++ src/jdk.jdwp.agent/unix/native/libjdwp/exec_md.c +@@ -70,6 +70,9 @@ closeDescriptors(void) + int + closeDescriptors(void) + { ++#if defined(__FreeBSD__) ++    closefrom(STDERR_FILENO + 1); ++#else +     DIR *dp; +     struct dirent *dirp; +     /* leave out standard input/output/error descriptors */ +@@ -114,6 +117,7 @@ closeDescriptors(void) +  +     (void)closedir(dp); +  ++#endif +     return 1; // success + } +  diff --git a/java/openjdk25/pkg-descr b/java/openjdk25/pkg-descr new file mode 100644 index 000000000000..a6701ff6ef33 --- /dev/null +++ b/java/openjdk25/pkg-descr @@ -0,0 +1 @@ +An open-source implementation of the Java Platform, Standard Edition. diff --git a/java/openjdk25/pkg-message b/java/openjdk25/pkg-message new file mode 100644 index 000000000000..c072654ad070 --- /dev/null +++ b/java/openjdk25/pkg-message @@ -0,0 +1,15 @@ +[ +{ type: install +  message: <<EOM +This OpenJDK implementation may require procfs(5) mounted on /proc. + +If you have not done it yet, please do the following: + +	mount -t procfs proc /proc + +To make it permanent, you need the following lines in /etc/fstab: + +	proc	/proc		procfs		rw	0	0 +EOM +} +] | 
