-
Notifications
You must be signed in to change notification settings - Fork 742
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
java/openjdk18: Add a port of OpenJDK 18
- Loading branch information
Greg Lewis
authored and
Greg Lewis
committed
Apr 10, 2022
1 parent
563c4a8
commit 8ba1801
Showing
13 changed files
with
504 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,195 @@ | ||
PORTNAME= openjdk | ||
DISTVERSIONPREFIX= jdk- | ||
DISTVERSION= ${JDK_MAJOR_VERSION}+${JDK_BUILD_NUMBER}-${BSD_JDK_VERSION} | ||
CATEGORIES= java devel | ||
PKGNAMESUFFIX?= ${JDK_MAJOR_VERSION} | ||
|
||
MAINTAINER= java@FreeBSD.org | ||
COMMENT?= Java Development Kit ${JDK_MAJOR_VERSION} | ||
|
||
LICENSE= GPLv2 | ||
|
||
ONLY_FOR_ARCHS= aarch64 amd64 i386 powerpc64 powerpc64le | ||
|
||
BUILD_DEPENDS= zip:archivers/zip \ | ||
autoconf>0:devel/autoconf \ | ||
${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= 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= battleblow | ||
GH_PROJECT= jdk18 | ||
|
||
NO_CCACHE= yes | ||
|
||
_MAKE_JOBS= # | ||
MAKE_ENV= LANG="C" \ | ||
LC_ALL="C" \ | ||
CLASSPATH="" \ | ||
JAVA_HOME="" \ | ||
LD_LIBRARY_PATH="" \ | ||
CC=${CC} \ | ||
CXX=${CXX} \ | ||
CPP=${CPP} \ | ||
MAKEFLAGS="" | ||
|
||
JDK_OSARCH= bsd-${ARCH:S/amd64/x86_64/:S/i386/x86/:S/powerpc64/ppc64/} | ||
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= 18 | ||
JDK_MINOR_VERSION= 0 | ||
JDK_PATCH_VERSION= 0 | ||
JDK_BUILD_NUMBER= 37 | ||
BSD_JDK_VERSION= 1 | ||
|
||
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_ENV= CC=${CC} \ | ||
CXX=${CXX} \ | ||
CPP=${CPP} \ | ||
ac_cv_path_SED=${LOCALBASE}/bin/gsed | ||
CONFIGURE_ARGS= --with-boot-jdk=${BOOTSTRAPJDKDIR} \ | ||
--disable-ccache \ | ||
--disable-javac-server \ | ||
--disable-hotspot-gtest \ | ||
--with-alsa=${LOCALBASE} \ | ||
--with-cups=${LOCALBASE} \ | ||
--with-fontconfig=${LOCALBASE} \ | ||
--with-freetype=system \ | ||
--with-freetype-include=${LOCALBASE}/include/freetype2 \ | ||
--with-freetype-lib=${LOCALBASE}/lib \ | ||
--with-libjpeg=system \ | ||
--with-giflib=system \ | ||
--with-giflib-include=${LOCALBASE}/include \ | ||
--with-giflib-lib=${LOCALBASE}/lib \ | ||
--with-harfbuzz=system \ | ||
--with-libpng=system \ | ||
--with-zlib=system \ | ||
--with-lcms=system \ | ||
--x-includes=${LOCALBASE}/include \ | ||
--x-libraries=${LOCALBASE}/lib \ | ||
--with-cacerts-file=${FILESDIR}/cacerts \ | ||
--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}/openjdk18 | ||
.if ${ARCH} == aarch64 || ${ARCH} == amd64 || ${ARCH} == i386 || (defined(PPC_ABI) && ${PPC_ABI} == ELFv2) || ${ARCH} == powerpc64le | ||
BOOTSTRAP_JDKS+= ${LOCALBASE}/bootstrap-openjdk17 | ||
.endif | ||
BOOTSTRAP_JDKS+= ${LOCALBASE}/openjdk17 | ||
|
||
# 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) | ||
. if ${ARCH} == aarch64 || ${ARCH} == amd64 || ${ARCH} == i386 || (defined(PPC_ABI) && ${PPC_ABI} == ELFv2) || ${ARCH} == powerpc64le | ||
BOOTSTRAPJDKDIR?= ${LOCALBASE}/bootstrap-openjdk17 | ||
BUILD_DEPENDS+= ${BOOTSTRAPJDKDIR}/bin/javac:java/bootstrap-openjdk17 | ||
. else | ||
BOOTSTRAPJDKDIR?= ${LOCALBASE}/openjdk17 | ||
BUILD_DEPENDS+= ${BOOTSTRAPJDKDIR}/bin/javac:java/openjdk17 | ||
. endif | ||
.endif | ||
|
||
JDK_BUILD_JVM= server | ||
|
||
MAKE_ENV+= --with-toolchain-type=${COMPILER_TYPE} | ||
CONFIGURE_ARGS+= --with-toolchain-type=${COMPILER_TYPE} | ||
|
||
.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 | ||
.if ${COMPILER_VERSION} >= 130 | ||
CONFIGURE_ARGS+= --with-extra-cflags="-Wno-unused-but-set-parameter" | ||
.endif | ||
.endif | ||
|
||
.if ${ARCH} == aarch64 || ${ARCH:Mpowerpc64*} | ||
CONFIGURE_ARGS+= --disable-warnings-as-errors | ||
.endif | ||
.if ${ARCH} == aarch64 || (defined(PPC_ABI) && ${PPC_ABI} == ELFv1) | ||
CONFIGURE_ARGS+= --disable-dtrace | ||
.endif | ||
.if ${ARCH} == powerpc64 && ${OSREL:C/\.[0-9]//} == 12 | ||
EXTRA_PATCHES= ${PATCHDIR}/extra-patch-src_hotspot_cpu_ppc_vm__version__ppc.hpp | ||
.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: | ||
@${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 | ||
|
||
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> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
TIMESTAMP = 1649001594 | ||
SHA256 (battleblow-jdk18-jdk-18+37-1_GH0.tar.gz) = ff4b2610c1503308977026ddc820f77c221fc2db0c58256c39307e4f908e75d1 | ||
SIZE (battleblow-jdk18-jdk-18+37-1_GH0.tar.gz) = 105502778 |
Binary file not shown.
11 changes: 11 additions & 0 deletions
11
java/openjdk18/files/extra-patch-src_hotspot_cpu_ppc_vm__version__ppc.hpp
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
--- src/hotspot/cpu/ppc/vm_version_ppc.hpp.orig 2019-10-16 11:31:09.000000000 -0700 | ||
+++ src/hotspot/cpu/ppc/vm_version_ppc.hpp 2019-10-23 12:54:06.972903000 -0700 | ||
@@ -108,7 +108,7 @@ | ||
static bool has_lqarx() { return (_features & lqarx_m) != 0; } | ||
static bool has_vcipher() { return (_features & vcipher_m) != 0; } | ||
static bool has_vpmsumb() { return (_features & vpmsumb_m) != 0; } | ||
- static bool has_mfdscr() { return (_features & mfdscr_m) != 0; } | ||
+ static bool has_mfdscr() { return false; } | ||
static bool has_vsx() { return (_features & vsx_m) != 0; } | ||
static bool has_ldbrx() { return (_features & ldbrx_m) != 0; } | ||
static bool has_stdbrx() { return (_features & stdbrx_m) != 0; } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
--- configure.orig 2019-03-12 12:38:39.648907000 -0700 | ||
+++ configure 2019-03-12 12:39:04.275572000 -0700 | ||
@@ -1,4 +1,4 @@ | ||
-#!/bin/bash | ||
+#!%%LOCALBASE%%/bin/bash | ||
# | ||
# Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved. | ||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | ||
@@ -32,4 +32,4 @@ | ||
# 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 "$@" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
--- make/autoconf/flags-cflags.m4.orig 2020-01-08 09:12:31 UTC | ||
+++ make/autoconf/flags-cflags.m4 | ||
@@ -770,6 +770,10 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP], | ||
# for all archs except arm and ppc, prevent gcc to omit frame pointer | ||
$1_CFLAGS_CPU_JDK="${$1_CFLAGS_CPU_JDK} -fno-omit-frame-pointer" | ||
fi | ||
+ elif test "x$OPENJDK_TARGET_OS_ENV" = xbsd.freebsd; then | ||
+ if test "x$FLAGS_CPU" = xppc64; then | ||
+ $1_CFLAGS_CPU_JVM="${$1_CFLAGS_CPU_JVM} -DABI_ELFv2 -mcpu=powerpc64 -mtune=power5" | ||
+ fi | ||
fi | ||
|
||
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
--- make/autoconf/libraries.m4~ 2019-08-12 19:10:36.292217000 -0700 | ||
+++ make/autoconf/libraries.m4 2019-08-12 19:18:15.523606000 -0700 | ||
@@ -188,9 +188,9 @@ | ||
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= |
11 changes: 11 additions & 0 deletions
11
java/openjdk18/files/patch-make_modules_java.desktop_lib_Awt2dLibraries.gmk
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
--- make/modules/java.desktop/lib/Awt2dLibraries.gmk.orig 2021-09-18 15:30:22.109237000 -0700 | ||
+++ make/modules/java.desktop/lib/Awt2dLibraries.gmk 2021-09-18 15:31:02.024314000 -0700 | ||
@@ -530,7 +530,7 @@ | ||
LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \ | ||
LDFLAGS_aix := -Wl$(COMMA)-berok, \ | ||
LIBS := $(BUILD_LIBFONTMANAGER_FONTLIB), \ | ||
- LIBS_unix := -lawt -ljava -ljvm $(LIBM) $(LIBCXX), \ | ||
+ LIBS_unix := -lfontconfig -lawt -ljava -ljvm $(LIBM) $(LIBCXX), \ | ||
LIBS_macosx := -lawt_lwawt -framework CoreText -framework CoreFoundation -framework CoreGraphics, \ | ||
LIBS_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib gdi32.lib \ | ||
$(WIN_AWT_LIB), \ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |
Oops, something went wrong.