On Fri, 2019-09-20 at 15:18 -0400, k...@intricatesoftware.com wrote: > Update devel/jdk/11 to 11.0.5+8 which includes aarch64 support. > * 11.0.5 is not released officially yet so this is realy a pre- > release of 11.0.5 and will be updated again when the final > upstream release occurs. > * Adds aarch64 support. > * Contains many upstream changes between 11.0.4+11 and 11.0.5+8 > * Contains many bsd-port changes to improve stablity and > compatiblity. > * Update java.port.mk module to support jdk/11 only on aarch64. > * aarch64 pbuild data size limit may need to be bumped - working > that out now.
ulimit -Sd 1572864 works to build the jdk on aarch64. > Index: java.port.mk > =================================================================== > RCS file: /cvs/ports/devel/jdk/java.port.mk,v > retrieving revision 1.37 > diff -u -p -u -r1.37 java.port.mk > --- java.port.mk 11 Jun 2019 00:36:04 -0000 1.37 > +++ java.port.mk 20 Sep 2019 19:02:14 -0000 > @@ -5,7 +5,6 @@ > # version. Valid values for x.y are 1.8 or 11. > > MODJAVA_VER?= > -ONLY_FOR_ARCHS?= i386 amd64 > > # Based on the MODJAVA_VER, NO_BUILD and MACHINE_ARCH, the following > # things will be setup: > @@ -25,14 +24,27 @@ ONLY_FOR_ARCHS?= i386 amd64 > # to set the default JAVA_HOME or JAVACMD vars for a package. > # > > -.if ${MODJAVA_VER:S/+//} == "1.8" > - JAVA_HOME= ${LOCALBASE}/jdk-1.8.0 > - MODJAVA_BUILD_DEPENDS= jdk->=1.8v0,<1.9v0:devel/jdk/1.8 > -.elif ${MODJAVA_VER:S/+//} == "11" > +.if ${MODJAVA_VER:S/+//} != "1.8" && ${MODJAVA_VER:S/+//} != "11" > + ERRORS+="Fatal: MODJAVA_VER must be set to a valid value." > +.endif > + > +.if ${MODJAVA_VER} == "1.8" > + ONLY_FOR_ARCHS?= i386 amd64 > +.else > + ONLY_FOR_ARCHS?= i386 amd64 aarch64 > +.endif > + > +.if ${MACHINE_ARCH} == "aarch64" > JAVA_HOME= ${LOCALBASE}/jdk-11 > MODJAVA_BUILD_DEPENDS+= jdk->=11v0,<12v0:devel/jdk/11 > .else > - ERRORS+="Fatal: MODJAVA_VER must be set to a valid value." > +. if ${MODJAVA_VER:S/+//} == "1.8" > + JAVA_HOME= ${LOCALBASE}/jdk-1.8.0 > + MODJAVA_BUILD_DEPENDS= jdk->=1.8v0,<1.9v0:devel/jdk/1.8 > +. else > + JAVA_HOME= ${LOCALBASE}/jdk-11 > + MODJAVA_BUILD_DEPENDS+= jdk->=11v0,<12v0:devel/jdk/11 > +. endif > .endif > > .if ${MODJAVA_VER:M*+} > Index: 11/Makefile > =================================================================== > RCS file: /cvs/ports/devel/jdk/11/Makefile,v > retrieving revision 1.9 > diff -u -p -u -r1.9 Makefile > --- 11/Makefile 13 Sep 2019 16:18:33 -0000 1.9 > +++ 11/Makefile 20 Sep 2019 19:02:14 -0000 > @@ -1,12 +1,12 @@ > # $OpenBSD: Makefile,v 1.9 2019/09/13 16:18:33 kurt Exp $ > > -ONLY_FOR_ARCHS= i386 amd64 > +ONLY_FOR_ARCHS= i386 amd64 aarch64 > USE_WXNEEDED= Yes > DPB_PROPERTIES= parallel > > COMMENT= OpenJDK Software Development Kit v${VERSION_STR} > -BASE_VER= 11.0.4 > -PATCH_VER= 11 > +BASE_VER= 11.0.5 > +PATCH_VER= 8 > BSD_PORT_REL= 1 > VERSION_STR= ${BASE_VER}+${PATCH_VER}-${BSD_PORT_REL} > PACKAGE_VER= ${BASE_VER}.${PATCH_VER}.${BSD_PORT_REL} > @@ -18,7 +18,7 @@ DIST_SUBDIR= jdk > DISTNAME= jdk-${VERSION_STR} > DISTFILES= ${DISTNAME}${EXTRACT_SUFX} > WRKDIST= > ${WRKDIR}/openjdk-jdk11u-jdk-${BASE_VER}-${PATCH_VER}-${BSD_PORT_REL} > -BOOTJDK_DATE= 20190325 > +BOOTJDK_DATE= 20190919 > > CATEGORIES= devel/jdk java > > @@ -42,7 +42,8 @@ WANTLIB += iconv jpeg lcms2 m png pthrea > NO_TEST= Yes > > SUPDISTFILES+= openjdk-jdk11u-bootjdk-i386-${BOOTJDK_DATE}.tar.gz:1 \ > - openjdk-jdk11u-bootjdk-amd64-${BOOTJDK_DATE}.tar.gz:1 > + openjdk-jdk11u-bootjdk-amd64-${BOOTJDK_DATE}.tar.gz:1 \ > + openjdk-jdk11u-bootjdk-aarch64-${BOOTJDK_DATE}.tar.gz:1 > > COMPILER= base-clang ports-gcc > > @@ -56,8 +57,8 @@ ERRORS += "Fatal: This flavor requires a > BUILD_DEPENDS+= jdk->=11v0,<12v0:devel/jdk/11 > BOOT_JDK= ${LOCALBASE}/jdk-11 > .else > -BOOT_JDK_DIST= openjdk-jdk11u-bootjdk-${ARCH}-${BOOTJDK_DATE}.tar.gz > -. if (${ARCH}==amd64) || (${ARCH}==i386) > +BOOT_JDK_DIST= > openjdk-jdk11u-bootjdk-${MACHINE_ARCH}-${BOOTJDK_DATE}.tar.gz > +. if (${MACHINE_ARCH}==amd64) || (${MACHINE_ARCH}==i386) || > (${MACHINE_ARCH}==aarch64) > DISTFILES+= ${BOOT_JDK_DIST}:1 > . endif > MAKE_ENV+= LD_LIBRARY_PATH=${WRKDIR}/bootjdk-libs > @@ -128,6 +129,14 @@ PKG_ARGS+= -Daot=1 > PKG_ARGS+= -Daot=0 > .endif > > +.if ${MACHINE_ARCH} == "aarch64" > +# aot is not working yet on aarch64 > +CONFIGURE_ARGS+=--enable-aot=no > +PKG_ARGS+= -Dci=1 > +.else > +PKG_ARGS+= -Dci=0 > +.endif > + > JVMARCH= ${MACHINE_ARCH:S/i386/x86/:S/amd64/x86_64/} > IMAGEDIR= ${WRKDIST}/build/bsd-${JVMARCH}-normal-server-release/images/jdk > WRKTMP= ${WRKDIR}/tmp > @@ -156,7 +165,7 @@ build-bootjdk: build > 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 % cp /% ${WRKTMP}/bootjdk-libs > - @cd ${WRKTMP} && tar czf openjdk-jdk11u-bootjdk-${ARCH}-$$(date > +%Y%m%d).tar.gz bootjdk* > - @echo "New bootjdk is located at > ${WRKTMP}/openjdk-jdk11u-bootjdk-${ARCH}-$$(date +%Y%m%d).tar.gz" > + @cd ${WRKTMP} && tar czf openjdk-jdk11u-bootjdk-${MACHINE_ARCH}-$$(date > +%Y%m%d).tar.gz bootjdk* > + @echo "New bootjdk is located at > ${WRKTMP}/openjdk-jdk11u-bootjdk-${MACHINE_ARCH}-$$(date +%Y%m%d).tar.gz" > > .include <bsd.port.mk> > Index: 11/distinfo > =================================================================== > RCS file: /cvs/ports/devel/jdk/11/distinfo,v > retrieving revision 1.4 > diff -u -p -u -r1.4 distinfo > --- 11/distinfo 23 Jul 2019 11:55:42 -0000 1.4 > +++ 11/distinfo 20 Sep 2019 19:02:14 -0000 > @@ -1,6 +1,8 @@ > -SHA256 (jdk/jdk-11.0.4+11-1.tar.gz) = > 7tCx3DDRbhTvRwGGyf4hw24C2pXyZXdUuEAuhLgDllw= > -SHA256 (jdk/openjdk-jdk11u-bootjdk-amd64-20190325.tar.gz) = > uADjYEnch2TUXtDpWe9rAfgLXR7NvqOKsOrdpKH4qNY= > -SHA256 (jdk/openjdk-jdk11u-bootjdk-i386-20190325.tar.gz) = > nI7/p0nVpFbiD01gpCl5QSfjtOeI/41PumOKfK/HeOA= > -SIZE (jdk/jdk-11.0.4+11-1.tar.gz) = 116997649 > -SIZE (jdk/openjdk-jdk11u-bootjdk-amd64-20190325.tar.gz) = 113818989 > -SIZE (jdk/openjdk-jdk11u-bootjdk-i386-20190325.tar.gz) = 101841640 > +SHA256 (jdk/jdk-11.0.5+8-1.tar.gz) = > 9jkYgaNzlXD9KcZKStlYBh2YP5amkmeowkf/h0IXdKc= > +SHA256 (jdk/openjdk-jdk11u-bootjdk-aarch64-20190919.tar.gz) = > Rt/ZLdUf8FZXf2Ss7uw7aDHkrNCW/CN/AOdL0sj/CF8= > +SHA256 (jdk/openjdk-jdk11u-bootjdk-amd64-20190919.tar.gz) = > sOBqXutJcjIJC2HBAHKl5RwDObxMvaxNO5VtNfReWus= > +SHA256 (jdk/openjdk-jdk11u-bootjdk-i386-20190919.tar.gz) = > ixD5L58A+3YBMi9Ve+2bWn6CCHmdCGhDzALRCIVCc4U= > +SIZE (jdk/jdk-11.0.5+8-1.tar.gz) = 117115267 > +SIZE (jdk/openjdk-jdk11u-bootjdk-aarch64-20190919.tar.gz) = 103258821 > +SIZE (jdk/openjdk-jdk11u-bootjdk-amd64-20190919.tar.gz) = 113594555 > +SIZE (jdk/openjdk-jdk11u-bootjdk-i386-20190919.tar.gz) = 102061258 > Index: 11/patches/patch-make_autoconf_flags-cflags_m4 > =================================================================== > RCS file: 11/patches/patch-make_autoconf_flags-cflags_m4 > diff -N 11/patches/patch-make_autoconf_flags-cflags_m4 > --- 11/patches/patch-make_autoconf_flags-cflags_m4 23 Jul 2019 11:55:42 > -0000 1.1 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,25 +0,0 @@ > -$OpenBSD: patch-make_autoconf_flags-cflags_m4,v 1.1 2019/07/23 11:55:42 kurt > Exp $ > - > -On x86 (32bit) with clang add -mstackrealign to JVM CFLAGS: > -* On x86 32bit, the JVM builds with -mstack-alignment=16 which is > - required for SSE instruction support in hotstpot. However, this option > - only maintains 16 byte alignment and does not realign the stack when > - called from native i386 code with 4 byte alignment. Jdk 8 had this > - option as well and was lost in the refactoring of the JDK in later > - versions. > -* It also corrects fastdebug build assert failures in stubRoutines.cpp. > - > -Index: make/autoconf/flags-cflags.m4 > ---- make/autoconf/flags-cflags.m4.orig > -+++ make/autoconf/flags-cflags.m4 > -@@ -519,6 +519,10 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER], > - # works for all platforms. > - TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM > -mno-omit-leaf-frame-pointer -mstack-alignment=16" > - > -+ if test "x$OPENJDK_TARGET_CPU" = xx86; then > -+ TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM -mstackrealign" > -+ fi > -+ > - if test "x$OPENJDK_TARGET_OS" = xlinux; then > - TOOLCHAIN_CFLAGS_JDK="-pipe" > - TOOLCHAIN_CFLAGS_JDK_CONLY="-fno-strict-aliasing" # technically NOT > for CXX > Index: 11/patches/patch-make_hotspot_lib_JvmOverrideFiles_gmk > =================================================================== > RCS file: 11/patches/patch-make_hotspot_lib_JvmOverrideFiles_gmk > diff -N 11/patches/patch-make_hotspot_lib_JvmOverrideFiles_gmk > --- 11/patches/patch-make_hotspot_lib_JvmOverrideFiles_gmk 23 Jul 2019 > 11:55:42 -0000 1.1 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,34 +0,0 @@ > -$OpenBSD: patch-make_hotspot_lib_JvmOverrideFiles_gmk,v 1.1 2019/07/23 > 11:55:42 kurt Exp $ > - > -Reduce optimization level for parse2.cpp on x86 with clang: > -* jtreg test hotspot/jtreg/compiler/c2/Test8062950.java fails when > - parse2.cpp is optimized above -O1 with clang on x86. > - > -Index: make/hotspot/lib/JvmOverrideFiles.gmk > ---- make/hotspot/lib/JvmOverrideFiles.gmk.orig > -+++ make/hotspot/lib/JvmOverrideFiles.gmk > -@@ -210,6 +210,14 @@ else ifeq ($(OPENJDK_TARGET_OS), bsd) > - endif > - > - ifeq ($(TOOLCHAIN_TYPE), clang) > -+ ifeq ($(OPENJDK_TARGET_CPU), x86) > -+ ifneq ($(DEBUG_LEVEL), slowdebug) > -+ # hotspot/jtreg/compiler/c2/Test8062950.java test fails on x86 > -+ # with clang when parse2.cpp is optimized above -O1 > -+ BUILD_LIBJVM_parse2.cpp_CXXFLAGS := -O1 > -+ endif > -+ endif > -+ > - # The following files are compiled at various optimization > - # levels due to optimization issues encountered at the > - # default level. The Clang compiler issues a compile > -@@ -224,7 +232,8 @@ else ifeq ($(OPENJDK_TARGET_OS), bsd) > - sharedRuntimeTrig.cpp \ > - sharedRuntimeTrans.cpp \ > - loopTransform.cpp \ > -- unsafe.cpp > -+ unsafe.cpp \ > -+ parse2.cpp \ > - # > - endif > - > Index: 11/patches/patch-src_hotspot_os_cpu_bsd_x86_os_bsd_x86_cpp > =================================================================== > RCS file: 11/patches/patch-src_hotspot_os_cpu_bsd_x86_os_bsd_x86_cpp > diff -N 11/patches/patch-src_hotspot_os_cpu_bsd_x86_os_bsd_x86_cpp > --- 11/patches/patch-src_hotspot_os_cpu_bsd_x86_os_bsd_x86_cpp 23 Jul > 2019 11:55:42 -0000 1.1 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,41 +0,0 @@ > -$OpenBSD: patch-src_hotspot_os_cpu_bsd_x86_os_bsd_x86_cpp,v 1.1 2019/07/23 > 11:55:42 kurt Exp $ > - > -Enable os::verify_stack_alignment() on BSD: > -* Add implementation for stack alignment checking. > -* Disable optimization on os::current_stack_pointer() for clang to > - prevent clang from optimizing away the stack alignment on x86 and to > - prevent inlining into os::verify_stack_alignment() which also gets > - over optimized and breaks the checking of stack alignment. > - > -Index: src/hotspot/os_cpu/bsd_x86/os_bsd_x86.cpp > ---- src/hotspot/os_cpu/bsd_x86/os_bsd_x86.cpp.orig > -+++ src/hotspot/os_cpu/bsd_x86/os_bsd_x86.cpp > -@@ -271,16 +271,18 @@ > - # endif > - #endif > - > --address os::current_stack_pointer() { > - #if defined(__clang__) || defined(__llvm__) > -+address os::current_stack_pointer() __attribute__ ((optnone)) { > - intptr_t* esp; > - __asm__ __volatile__ ("mov %%" SPELL_REG_SP ", %0":"=r"(esp):); > - return (address) esp; > -+} > - #else > -+address os::current_stack_pointer() { > - register void *esp __asm__ (SPELL_REG_SP); > - return (address) esp; > --#endif > - } > -+#endif > - > - char* os::non_memory_address_word() { > - // Must never look like an address returned by reserve_memory, > -@@ -975,6 +977,7 @@ void os::setup_fpu() { > - > - #ifndef PRODUCT > - void os::verify_stack_alignment() { > -+ assert(((intptr_t)os::current_stack_pointer() & > (StackAlignmentInBytes-1)) == 0, "incorrect stack alignment"); > - } > - #endif > - > Index: 11/pkg/PFRAG.ci > =================================================================== > RCS file: 11/pkg/PFRAG.ci > diff -N 11/pkg/PFRAG.ci > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ 11/pkg/PFRAG.ci 20 Sep 2019 19:02:14 -0000 > @@ -0,0 +1,6 @@ > +@comment $OpenBSD: PFRAG.ci,v$ > +jdk-11/jmods/jdk.internal.vm.ci.jmod > +jdk-11/legal/jdk.internal.vm.ci/ > +jdk-11/legal/jdk.internal.vm.ci/ADDITIONAL_LICENSE_INFO > +jdk-11/legal/jdk.internal.vm.ci/ASSEMBLY_EXCEPTION > +jdk-11/legal/jdk.internal.vm.ci/LICENSE > Index: 11/pkg/PLIST > =================================================================== > RCS file: /cvs/ports/devel/jdk/11/pkg/PLIST,v > retrieving revision 1.1.1.1 > diff -u -p -u -r1.1.1.1 PLIST > --- 11/pkg/PLIST 28 Mar 2019 17:47:53 -0000 1.1.1.1 > +++ 11/pkg/PLIST 20 Sep 2019 19:02:14 -0000 > @@ -677,3 +677,4 @@ jdk-11/man/man1/ > jdk-11/release > share/doc/pkg-readmes/${PKGSTEM} > %%aot%% > +%%ci%%