Index: head/java/openjdk8/Makefile =================================================================== --- head/java/openjdk8/Makefile (revision 455242) +++ head/java/openjdk8/Makefile (revision 455243) @@ -1,455 +1,456 @@ # $FreeBSD$ PORTNAME= openjdk PORTVERSION= ${JDK_MAJOR_VERSION}.${JDK_UPDATE_VERSION}.${JDK_BUILD_NUMBER:S/^0//} +PORTREVISION= 1 CATEGORIES= java devel MASTER_SITES= http://download.java.net/openjdk/jdk${JDK_MAJOR_VERSION}/promoted/b${DIST_BUILD_NUMBER}/:jdk \ https://adopt-openjdk.ci.cloudbees.com/job/jtreg/${JTREG_JENKINS_BUILD}/artifact/:jtreg \ LOCAL/jkim:jdk,jtreg PKGNAMESUFFIX?= ${JDK_MAJOR_VERSION} DISTNAME= ${PORTNAME}-${JDK_MAJOR_VERSION}-src-b${DIST_BUILD_NUMBER}-03_mar_2014 DISTFILES= ${DISTNAME}.zip:jdk PATCH_SITES= LOCAL/glewis/openjdk8 PATCHFILES= patch-8u05-b13.xz \ patch-8u11-b13.xz \ patch-8u20-b26.xz \ patch-8u25-b17.xz \ patch-8u31-b13.xz \ patch-8u40-b25.xz \ patch-8u45-b14.xz \ patch-8u51-b16.xz \ patch-8u60-b23.xz \ patch-8u66-b17-1.xz \ patch-8u72-b15.xz \ patch-8u74-b02.xz \ patch-8u77-b03.xz \ patch-8u92-b14.xz \ patch-8u102-b14.xz \ patch-8u112-b16.xz \ patch-8u121-b13.xz \ patch-8u131-b11.xz \ patch-8u144-b01.xz \ patch-8u152-b16.xz MAINTAINER= java@FreeBSD.org COMMENT?= Java Development Kit ${JDK_MAJOR_VERSION} LICENSE= GPLv2 BUILD_DEPENDS= zip:archivers/zip \ ${LOCALBASE}/include/cups/cups.h:print/cups \ bash:shells/bash LIB_DEPENDS= libfreetype.so:print/freetype2 RUN_DEPENDS= javavm:java/javavmwrapper \ dejavu>0:x11-fonts/dejavu USES= compiler:features dos2unix gmake iconv pkgconfig \ shebangfix USE_AUTOTOOLS= autoconf .if !exists(/usr/bin/unzip) BUILD_DEPENDS+= ${UNZIP_CMD}:archivers/unzip .endif ONLY_FOR_ARCHS= aarch64 amd64 armv6 armv7 i386 powerpc powerpc64 WRKSRC= ${WRKDIR}/${PORTNAME} DOS2UNIX_FILES= jdk/src/bsd/doc/man/appletviewer.1 \ jdk/src/bsd/doc/man/extcheck.1 \ jdk/src/bsd/doc/man/idlj.1 \ jdk/src/bsd/doc/man/jar.1 \ jdk/src/bsd/doc/man/jarsigner.1 \ jdk/src/bsd/doc/man/java.1 \ jdk/src/bsd/doc/man/javac.1 \ jdk/src/bsd/doc/man/javadoc.1 \ jdk/src/bsd/doc/man/javah.1 \ jdk/src/bsd/doc/man/javap.1 \ jdk/src/bsd/doc/man/jcmd.1 \ jdk/src/bsd/doc/man/jconsole.1 \ jdk/src/bsd/doc/man/jdb.1 \ jdk/src/bsd/doc/man/jdeps.1 \ jdk/src/bsd/doc/man/jhat.1 \ jdk/src/bsd/doc/man/jinfo.1 \ jdk/src/bsd/doc/man/jjs.1 \ jdk/src/bsd/doc/man/jmap.1 \ jdk/src/bsd/doc/man/jps.1 \ jdk/src/bsd/doc/man/jrunscript.1 \ jdk/src/bsd/doc/man/jsadebugd.1 \ jdk/src/bsd/doc/man/jstack.1 \ jdk/src/bsd/doc/man/jstat.1 \ jdk/src/bsd/doc/man/jstatd.1 \ jdk/src/bsd/doc/man/keytool.1 \ jdk/src/bsd/doc/man/native2ascii.1 \ jdk/src/bsd/doc/man/orbd.1 \ jdk/src/bsd/doc/man/pack200.1 \ jdk/src/bsd/doc/man/policytool.1 \ jdk/src/bsd/doc/man/rmic.1 \ jdk/src/bsd/doc/man/rmid.1 \ jdk/src/bsd/doc/man/rmiregistry.1 \ jdk/src/bsd/doc/man/schemagen.1 \ jdk/src/bsd/doc/man/serialver.1 \ jdk/src/bsd/doc/man/servertool.1 \ jdk/src/bsd/doc/man/tnameserv.1 \ jdk/src/bsd/doc/man/unpack200.1 \ jdk/src/bsd/doc/man/wsgen.1 \ jdk/src/bsd/doc/man/wsimport.1 \ jdk/src/bsd/doc/man/xjc.1 \ jdk/src/linux/doc/man/appletviewer.1 \ jdk/src/linux/doc/man/extcheck.1 \ jdk/src/linux/doc/man/idlj.1 \ jdk/src/linux/doc/man/jar.1 \ jdk/src/linux/doc/man/jarsigner.1 \ jdk/src/linux/doc/man/java.1 \ jdk/src/linux/doc/man/javac.1 \ jdk/src/linux/doc/man/javadoc.1 \ jdk/src/linux/doc/man/javah.1 \ jdk/src/linux/doc/man/javap.1 \ jdk/src/linux/doc/man/jcmd.1 \ jdk/src/linux/doc/man/jconsole.1 \ jdk/src/linux/doc/man/jdb.1 \ jdk/src/linux/doc/man/jdeps.1 \ jdk/src/linux/doc/man/jhat.1 \ jdk/src/linux/doc/man/jinfo.1 \ jdk/src/linux/doc/man/jjs.1 \ jdk/src/linux/doc/man/jmap.1 \ jdk/src/linux/doc/man/jps.1 \ jdk/src/linux/doc/man/jrunscript.1 \ jdk/src/linux/doc/man/jsadebugd.1 \ jdk/src/linux/doc/man/jstack.1 \ jdk/src/linux/doc/man/jstat.1 \ jdk/src/linux/doc/man/jstatd.1 \ jdk/src/linux/doc/man/keytool.1 \ jdk/src/linux/doc/man/native2ascii.1 \ jdk/src/linux/doc/man/orbd.1 \ jdk/src/linux/doc/man/pack200.1 \ jdk/src/linux/doc/man/policytool.1 \ jdk/src/linux/doc/man/rmic.1 \ jdk/src/linux/doc/man/rmid.1 \ jdk/src/linux/doc/man/rmiregistry.1 \ jdk/src/linux/doc/man/schemagen.1 \ jdk/src/linux/doc/man/serialver.1 \ jdk/src/linux/doc/man/servertool.1 \ jdk/src/linux/doc/man/tnameserv.1 \ jdk/src/linux/doc/man/unpack200.1 \ jdk/src/linux/doc/man/wsgen.1 \ jdk/src/linux/doc/man/wsimport.1 \ jdk/src/linux/doc/man/xjc.1 \ jdk/src/share/classes/com/sun/org/apache/xml/internal/security/resource/xmlsecurity_en.properties \ jdk/src/solaris/doc/sun/man/man1/appletviewer.1 \ jdk/src/solaris/doc/sun/man/man1/extcheck.1 \ jdk/src/solaris/doc/sun/man/man1/idlj.1 \ jdk/src/solaris/doc/sun/man/man1/jar.1 \ jdk/src/solaris/doc/sun/man/man1/jarsigner.1 \ jdk/src/solaris/doc/sun/man/man1/java.1 \ jdk/src/solaris/doc/sun/man/man1/javac.1 \ jdk/src/solaris/doc/sun/man/man1/javadoc.1 \ jdk/src/solaris/doc/sun/man/man1/javah.1 \ jdk/src/solaris/doc/sun/man/man1/javap.1 \ jdk/src/solaris/doc/sun/man/man1/jcmd.1 \ jdk/src/solaris/doc/sun/man/man1/jconsole.1 \ jdk/src/solaris/doc/sun/man/man1/jdb.1 \ jdk/src/solaris/doc/sun/man/man1/jdeps.1 \ jdk/src/solaris/doc/sun/man/man1/jhat.1 \ jdk/src/solaris/doc/sun/man/man1/jinfo.1 \ jdk/src/solaris/doc/sun/man/man1/jjs.1 \ jdk/src/solaris/doc/sun/man/man1/jmap.1 \ jdk/src/solaris/doc/sun/man/man1/jps.1 \ jdk/src/solaris/doc/sun/man/man1/jrunscript.1 \ jdk/src/solaris/doc/sun/man/man1/jsadebugd.1 \ jdk/src/solaris/doc/sun/man/man1/jstack.1 \ jdk/src/solaris/doc/sun/man/man1/jstat.1 \ jdk/src/solaris/doc/sun/man/man1/jstatd.1 \ jdk/src/solaris/doc/sun/man/man1/keytool.1 \ jdk/src/solaris/doc/sun/man/man1/native2ascii.1 \ jdk/src/solaris/doc/sun/man/man1/orbd.1 \ jdk/src/solaris/doc/sun/man/man1/pack200.1 \ jdk/src/solaris/doc/sun/man/man1/policytool.1 \ jdk/src/solaris/doc/sun/man/man1/rmic.1 \ jdk/src/solaris/doc/sun/man/man1/rmid.1 \ jdk/src/solaris/doc/sun/man/man1/rmiregistry.1 \ jdk/src/solaris/doc/sun/man/man1/schemagen.1 \ jdk/src/solaris/doc/sun/man/man1/serialver.1 \ jdk/src/solaris/doc/sun/man/man1/servertool.1 \ jdk/src/solaris/doc/sun/man/man1/tnameserv.1 \ jdk/src/solaris/doc/sun/man/man1/unpack200.1 \ jdk/src/solaris/doc/sun/man/man1/wsgen.1 \ jdk/src/solaris/doc/sun/man/man1/wsimport.1 \ jdk/src/solaris/doc/sun/man/man1/xjc.1 \ nashorn/test/script/jfx.js \ nashorn/test/script/jfx/kaleidoscope.js \ nashorn/test/script/jfx/spread.js SHEBANG_FILES= configure _MAKE_JOBS= # CPPFLAGS+= -I${LOCALBASE}/include LDFLAGS+= -L${LOCALBASE}/lib MAKE_ENV= CLASSPATH="" JAVA_HOME="" LD_LIBRARY_PATH="" MAKE_ENV+= IGNORE_OLD_CONFIG=true MAKE_ENV+= COMPILER_WARNINGS_FATAL="false" JDK_BUILDDIR= ${WRKSRC}/build/${JDK_OSARCH}-normal-${JDK_BUILD_JVM}-${JDK_BUILD_TYPE} .if !defined(BUILD_JRE) JDK_IMAGEDIR= ${JDK_BUILDDIR}/images/j2sdk-image JRE_IMAGEDIR= ${JDK_BUILDDIR}/images/j2sdk-image/jre .else JRE_IMAGEDIR= ${JDK_BUILDDIR}/images/j2re-image .endif JDK_JVMDIR= lib/${ARCH:C/armv.*/arm/:S/powerpc64/ppc64/} JDK_OSARCH= bsd-${ARCH:S/amd64/x86_64/:C/armv.*/arm/:S/i386/x86/:S/powerpc64/ppc64/} INSTALLDIR= ${PREFIX}/${PKGBASE} NO_CCACHE= yes NOPRECIOUSMAKEVARS= yes JDK_MAJOR_VERSION= 8 JDK_UPDATE_VERSION= 152 JDK_BUILD_NUMBER= 16 DIST_BUILD_NUMBER= 132 JTREG_VERSION= 4.1 JTREG_BUILD_NUMBER= b08 JTREG_JENKINS_BUILD= 77 CONFIGURE_ARGS= --with-boot-jdk=${BOOTSTRAPJDKDIR} CONFIGURE_ARGS+= --with-build-number="b${JDK_BUILD_NUMBER}" .if ${JDK_UPDATE_VERSION} > 0 CONFIGURE_ARGS+= --with-update-version=${JDK_UPDATE_VERSION} .endif CONFIGURE_ARGS+= --disable-ccache \ --disable-freetype-bundling \ --disable-zip-debug-info \ --with-cacerts-file=${FILESDIR}/cacerts \ --with-cups=${LOCALBASE} \ --with-debug-level=${JDK_BUILD_TYPE} \ --with-freetype=${LOCALBASE} \ --with-freetype-include=${LOCALBASE}/include/freetype2 \ --with-jobs=${MAKE_JOBS_NUMBER} \ --with-jvm-variants=${JDK_BUILD_JVM} \ --with-milestone=fcs \ --with-package-path=${LOCALBASE} \ --with-zlib=system CONFIGURE_SCRIPT= ../../configure CONFIGURE_WRKSRC= ${WRKSRC}/common/autoconf OPTIONS_DEFINE= ALSA POLICY TZUPDATE X11 OPTIONS_DEFINE_armv6= FPUHACK OPTIONS_DEFINE_armv7= FPUHACK OPTIONS_DEFAULT= ALSA POLICY TZUPDATE X11 OPTIONS_DEFAULT_armv6= FPUHACK OPTIONS_DEFAULT_armv7= FPUHACK FPUHACK_DESC= Hack denormalized numbers in flush-to-zero mode POLICY_DESC= Install the Unlimited Strength Policy Files TZUPDATE_DESC= Update the time zone data ALSA_CONFIGURE_ENV_OFF= ALSA_NOT_NEEDED=yes ALSA_CONFIGURE_ON= --with-alsa=${LOCALBASE} ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib FPUHACK_EXTRA_PATCHES= ${PATCHDIR}/fpuhack.patch POLICY_CONFIGURE_ENABLE= unlimited-crypto TZUPDATE_RUN_DEPENDS= java-zoneinfo>0:java/java-zoneinfo X11_BUILD_DEPENDS_OFF= ${LOCALBASE}/include/X11/Xlib.h:x11/libX11 \ ${LOCALBASE}/include/X11/extensions/Xdbe.h:x11/libXext \ ${LOCALBASE}/include/X11/extensions/Xrender.h:x11/libXrender \ ${LOCALBASE}/include/X11/Intrinsic.h:x11-toolkits/libXt X11_CONFIGURE_OFF= --disable-headful X11_CONFIGURE_ON= --with-giflib=system \ --x-includes=${LOCALBASE}/include \ --x-libraries=${LOCALBASE}/lib X11_LIB_DEPENDS= libgif.so:graphics/giflib \ libfontconfig.so:x11-fonts/fontconfig X11_MAKE_ENV_OFF= BUILD_HEADLESS_ONLY=1 \ MAKEFLAGS=X_CFLAGS="-I${LOCALBASE}/include" X11_MAKE_ENV_ON= MAKEFLAGS="" X11_USE= XORG=x11,xext,xi,xrender,xt,xtst JAVAVMS_COMMENT= OpenJDK${JDK_MAJOR_VERSION} .if !defined(BUILD_JRE) OPTIONS_DEFINE+= TEST OPTIONS_DEFAULT+= RELEASE OPTIONS_SINGLE= BUILD OPTIONS_SINGLE_BUILD= DEBUG DEBUGFAST RELEASE BUILD_DESC= Select OpenJDK build type DEBUG_DESC= Build for debugging (without optimizations) DEBUGFAST_DESC= Build for debugging (with optimizations) RELEASE_DESC= Build for release (default) TEST_DESC= Run regression tests DEBUG_VARS= JDK_BUILD_TYPE=slowdebug DEBUGFAST_VARS= JDK_BUILD_TYPE=fastdebug RELEASE_BUILD_DEPENDS_OFF= ${LOCALBASE}/bin/objcopy:devel/binutils RELEASE_CONFIGURE_ON= --disable-debug-symbols RELEASE_VARS= JDK_BUILD_TYPE=release RELEASE_VARS_OFF= OBJCOPY=${LOCALBASE}/bin/objcopy TEST_ALL_TARGET= test TEST_ALL_TARGET_OFF= images TEST_CONFIGURE_ON= --with-jtreg=${WRKDIR}/jtreg TEST_DISTFILES= jtreg${JTREG_VERSION}-${JTREG_BUILD_NUMBER}${EXTRACT_SUFX}:jtreg .else ALL_TARGET= images CONFIGURE_ARGS+= --disable-debug-symbols JAVAVMS_COMMENT+= JRE JDK_BUILD_TYPE= release .endif AUTOCONF_ARGS= -I . -o generated-configure.sh generated-configure.ac # XXX configure script rejects CC/CPP/CXX with absolute paths. .for t in CC CPP CXX .if defined(${t}) && ${${t}:M/*} BUILD_${t}= ${${t}:C|.*/||g} CONFIGURE_ENV+= ${t}="${BUILD_${t}}" TOOLS_DIR+= ${${t}:S|/${BUILD_${t}}$||} .endif .endfor .if defined(TOOLS_DIR) CONFIGURE_ARGS+= --with-tools-dir="${TOOLS_DIR:u:S/ /:/g}" .endif .include BOOTSTRAP_JDKS= ${LOCALBASE}/openjdk8 \ ${LOCALBASE}/openjdk7 \ ${LOCALBASE}/bootstrap-openjdk8 # 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}/bootstrap-openjdk8 BUILD_DEPENDS+= ${BOOTSTRAPJDKDIR}/bin/javac:java/bootstrap-openjdk8 .endif .if ${ARCH} == armv6 || ${ARCH} == armv7 || ${ARCH} == i386 # XXX We must limit max heap size for 32-bit targets. CONFIGURE_ARGS+= --with-boot-jdk-jvmargs="-Xmx768m" MAKE_ENV+= JAVADOC_CMD_MEM="-Xmx768m" .endif .if ${ARCH} == amd64 || ${ARCH} == i386 || ${ARCH} == powerpc64 JDK_BUILD_JVM= server .else JDK_BUILD_JVM= zero LIB_DEPENDS+= libffi.so:devel/libffi .endif .if ${COMPILER_TYPE} == clang .if ${COMPILER_VERSION} >= 35 MAKE_ENV+= COMPILER_WARNINGS_FATAL=false .endif MAKE_ENV+= USE_CLANG=true .if ${COMPILER_FEATURES:Mlibc++} CONFIGURE_ENV+= LIBCXX="-lc++" .endif .endif # GCC is broken with PCH: https://lists.freebsd.org/pipermail/svn-src-all/2015-March/101722.html .if ${COMPILER_TYPE} == gcc .if ${ARCH} == "powerpc64" MAKE_ARGS+= USE_PRECOMPILED_HEADER=1 .else MAKE_ARGS+= USE_PRECOMPILED_HEADER=0 .endif .endif .if empty(ICONV_LIB) ICONV_CPPFLAGS= -DLIBICONV_PLUG .else ICONV_CPPFLAGS= -I${LOCALBASE}/include ICONV_LDFLAGS= -L${LOCALBASE}/lib ${ICONV_LIB} .endif post-extract: @${CP} ${FILESDIR}/jdk-test-javax-imageio-plugins-jpeg-truncated.jpg \ ${WRKSRC}/jdk/test/javax/imageio/plugins/jpeg/truncated.jpg @${CP} ${FILESDIR}/nashorn-test-script-jfx-flyingimage-golden-bsd.png \ ${WRKSRC}/nashorn/test/script/jfx/flyingimage/golden/bsd.png @${CP} ${FILESDIR}/nashorn-test-script-jfx-kaleidoscope-golden-bsd.png \ ${WRKSRC}/nashorn/test/script/jfx/kaleidoscope/golden/bsd.png @${CP} ${FILESDIR}/nashorn-test-script-jfx-spread-golden-bsd.png \ ${WRKSRC}/nashorn/test/script/jfx/spread/golden/bsd.png post-extract-TEST-on: @${LN} -sf ${WRKDIR}/jtreg/linux/bin ${WRKDIR}/jtreg/ post-patch: @${FIND} ${WRKSRC} -name '*.orig' -delete @${RMDIR} ${WRKSRC}/jdk/src/macosx/classes/java/net \ ${WRKSRC}/jdk/src/macosx/native/sun/nio/ch \ ${WRKSRC}/jdk/src/macosx/native/sun/nio @${SED} -e 's|%%LOCALBASE%%|${LOCALBASE}|' \ ${FILESDIR}/bsd.fontconfig.properties.in > \ ${WRKSRC}/jdk/src/solaris/classes/sun/awt/fontconfigs/bsd.fontconfig.properties @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' \ -e 's|%%OBJCOPY%%|${OBJCOPY}|' \ ${WRKSRC}/configure \ ${WRKSRC}/common/autoconf/toolchain.m4 \ ${WRKSRC}/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/Metacity.java \ ${WRKSRC}/jdk/src/share/classes/sun/print/PSPrinterJob.java \ ${WRKSRC}/jdk/src/solaris/classes/sun/nio/fs/BsdFileSystemProvider.java @${REINPLACE_CMD} -e 's|/usr/local/share/java/classes|${LOCALBASE}/share/java/classes|' \ ${WRKSRC}/jdk/src/bsd/doc/man/*.1 @${REINPLACE_CMD} -e 's|%%ICONV_CPPFLAGS%%|${ICONV_CPPFLAGS}|' \ -e 's|%%ICONV_LDFLAGS%%|${ICONV_LDFLAGS}|' \ ${WRKSRC}/jdk/make/lib/Awt2dLibraries.gmk \ ${WRKSRC}/jdk/make/lib/CoreLibraries.gmk \ ${WRKSRC}/jdk/make/lib/ServiceabilityLibraries.gmk .if defined(BUILD_JRE) @${REINPLACE_CMD} -e 's|-f Images.gmk$$|& jre-image|' \ -e 's|-f Images.gmk overlay-images$$|-f Images.gmk jre-overlay-image|' \ ${WRKSRC}/jdk/make/BuildJdk.gmk .endif @${CHMOD} 755 ${WRKSRC}/configure post-patch-ALSA-off: @${REINPLACE_CMD} '/EXTRA_SOUND_JNI_LIBS += jsoundalsa/d' \ ${WRKSRC}/jdk/make/lib/SoundLibraries.gmk pre-configure: @cd ${CONFIGURE_WRKSRC} && \ ${SED} -e "s|@DATE_WHEN_GENERATED@|$$(date +%s)|" configure.ac > \ generated-configure.ac post-build: .if !defined(BUILD_JRE) @${BOOTSTRAPJDKDIR}/bin/jar cfe \ ${JRE_IMAGEDIR}/lib/compilefontconfig.jar \ build.tools.compilefontconfig.CompileFontConfig \ -C ${JDK_BUILDDIR}/jdk/btclasses build/tools/compilefontconfig @${BOOTSTRAPJDKDIR}/bin/jar cfe \ ${JRE_IMAGEDIR}/lib/javazic.jar \ build.tools.tzdb.TzdbZoneRulesCompiler \ -C ${JDK_BUILDDIR}/jdk/btclasses build/tools/tzdb .endif post-build-TZUPDATE-on: @# Update time zones @${RM} -r ${JRE_IMAGEDIR}/lib/zi @${LN} -sf ${LOCALBASE}/share/java/zi ${JRE_IMAGEDIR}/lib do-install: @${MKDIR} ${STAGEDIR}${INSTALLDIR} .if !defined(BUILD_JRE) @cd ${JDK_IMAGEDIR} && ${COPYTREE_SHARE} . ${STAGEDIR}${INSTALLDIR} @cd ${STAGEDIR}${INSTALLDIR} && \ ${FIND} bin jre/bin -type f -exec ${CHMOD} ${BINMODE} {} \; && \ ${CHMOD} ${BINMODE} jre/${JDK_JVMDIR}/jexec \ jre/${JDK_JVMDIR}/jspawnhelper ${JDK_JVMDIR}/jexec @${ECHO} "@dir ${INSTALLDIR}/jre/lib/applet" >> ${TMPPLIST} .else @cd ${JRE_IMAGEDIR} && ${COPYTREE_SHARE} . ${STAGEDIR}${INSTALLDIR} @cd ${STAGEDIR}${INSTALLDIR} && \ ${FIND} bin -type f -exec ${CHMOD} ${BINMODE} {} \; && \ ${CHMOD} ${BINMODE} ${JDK_JVMDIR}/jexec ${JDK_JVMDIR}/jspawnhelper @${ECHO} "@dir ${INSTALLDIR}/lib/applet" >> ${TMPPLIST} .endif @${ECHO} "@javavm ${INSTALLDIR}/bin/java" >> ${TMPPLIST} @${FIND} ${STAGEDIR}${INSTALLDIR} -not -type d | ${SORT} | \ ${SED} -e 's|^${STAGEDIR}${PREFIX}/||' >> ${TMPPLIST} .include Index: head/java/openjdk8/files/patch-hotspot_src_os_bsd_vm_globals__bsd.hpp =================================================================== --- head/java/openjdk8/files/patch-hotspot_src_os_bsd_vm_globals__bsd.hpp (nonexistent) +++ head/java/openjdk8/files/patch-hotspot_src_os_bsd_vm_globals__bsd.hpp (revision 455243) @@ -0,0 +1,27 @@ +--- hotspot/src/os/bsd/vm/globals_bsd.hpp.orig 2014-03-04 02:52:13 UTC ++++ hotspot/src/os/bsd/vm/globals_bsd.hpp +@@ -35,19 +35,17 @@ + product(bool, UseBsdPosixThreadCPUClocks, true, \ + "enable fast Bsd Posix clocks where available") \ + /* NB: The default value of UseBsdPosixThreadCPUClocks may be \ +- overridden in Arguments::parse_each_vm_init_arg. */ \ +- \ +- product(bool, UseHugeTLBFS, false, \ +- "Use MAP_HUGETLB for large pages") \ +- \ +- product(bool, UseSHM, false, \ +- "Use SYSV shared memory for large pages") ++ overridden in Arguments::parse_each_vm_init_arg. */ + + // + // Defines Bsd-specific default values. The flags are available on all + // platforms, but they may have different default values on other platforms. + // ++#ifdef __FreeBSD__ ++define_pd_global(bool, UseLargePages, true); ++#else + define_pd_global(bool, UseLargePages, false); ++#endif + define_pd_global(bool, UseLargePagesIndividualAllocation, false); + define_pd_global(bool, UseOSErrorReporting, false); + define_pd_global(bool, UseThreadPriorities, true) ; Property changes on: head/java/openjdk8/files/patch-hotspot_src_os_bsd_vm_globals__bsd.hpp ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/java/openjdk8/files/patch-hotspot_src_os_bsd_vm_os__bsd.cpp =================================================================== --- head/java/openjdk8/files/patch-hotspot_src_os_bsd_vm_os__bsd.cpp (revision 455242) +++ head/java/openjdk8/files/patch-hotspot_src_os_bsd_vm_os__bsd.cpp (revision 455243) @@ -1,41 +1,226 @@ ---- hotspot/src/os/bsd/vm/os_bsd.cpp.orig 2014-03-04 02:52:13 UTC +--- hotspot/src/os/bsd/vm/os_bsd.cpp.orig 2017-12-01 00:32:02 UTC +++ hotspot/src/os/bsd/vm/os_bsd.cpp -@@ -1452,6 +1452,10 @@ void * os::dll_load(const char *filename, char *ebuf, +@@ -1588,6 +1588,10 @@ void * os::dll_load(const char *filename, char *ebuf, #define EM_X86_64 62 /* AMD x86-64 */ #endif + #ifndef EM_AARCH64 + #define EM_AARCH64 183 /* ARM AARCH64 */ + #endif + static const arch_t arch_array[]={ {EM_386, EM_386, ELFCLASS32, ELFDATA2LSB, (char*)"IA 32"}, {EM_486, EM_386, ELFCLASS32, ELFDATA2LSB, (char*)"IA 32"}, -@@ -1468,7 +1472,8 @@ void * os::dll_load(const char *filename, char *ebuf, +@@ -1604,7 +1608,8 @@ void * os::dll_load(const char *filename, char *ebuf, {EM_MIPS_RS3_LE, EM_MIPS_RS3_LE, ELFCLASS32, ELFDATA2LSB, (char*)"MIPSel"}, {EM_MIPS, EM_MIPS, ELFCLASS32, ELFDATA2MSB, (char*)"MIPS"}, {EM_PARISC, EM_PARISC, ELFCLASS32, ELFDATA2MSB, (char*)"PARISC"}, - {EM_68K, EM_68K, ELFCLASS32, ELFDATA2MSB, (char*)"M68k"} + {EM_68K, EM_68K, ELFCLASS32, ELFDATA2MSB, (char*)"M68k"}, + {EM_AARCH64, EM_AARCH64, ELFCLASS64, ELFDATA2LSB, (char*)"AARCH64"}, }; #if (defined IA32) -@@ -1485,6 +1490,8 @@ void * os::dll_load(const char *filename, char *ebuf, +@@ -1621,6 +1626,8 @@ void * os::dll_load(const char *filename, char *ebuf, static Elf32_Half running_arch_code=EM_PPC64; #elif (defined __powerpc__) static Elf32_Half running_arch_code=EM_PPC; + #elif (defined AARCH64) + static Elf32_Half running_arch_code=EM_AARCH64; #elif (defined ARM) static Elf32_Half running_arch_code=EM_ARM; #elif (defined S390) -@@ -1501,7 +1508,7 @@ void * os::dll_load(const char *filename, char *ebuf, +@@ -1637,7 +1644,7 @@ void * os::dll_load(const char *filename, char *ebuf, static Elf32_Half running_arch_code=EM_68K; #else #error Method os::dll_load requires that one of following is defined:\ - IA32, AMD64, IA64, __sparc, __powerpc__, ARM, S390, ALPHA, MIPS, MIPSEL, PARISC, M68K + AARCH64, IA32, AMD64, IA64, __sparc, __powerpc__, ARM, S390, ALPHA, MIPS, MIPSEL, PARISC, M68K #endif // Identify compatability class for VM's architecture and library's architecture +@@ -2395,14 +2402,18 @@ static address _highest_vm_reserved_address = NULL; + // 'requested_addr' is only treated as a hint, the return value may or + // may not start from the requested address. Unlike Bsd mmap(), this + // function returns NULL to indicate failure. +-static char* anon_mmap(char* requested_addr, size_t bytes, bool fixed) { ++static char* anon_mmap(char* requested_addr, size_t bytes, size_t alignment_hint, bool fixed) { + char * addr; + int flags; + ++ assert(!(fixed && (alignment_hint > 0)), "alignment hint meaningless with fixed mmap"); ++ + flags = MAP_PRIVATE | MAP_ANONYMOUS; + if (fixed) { + assert((uintptr_t)requested_addr % os::Bsd::page_size() == 0, "unaligned address"); + flags |= MAP_FIXED; ++ } else if (alignment_hint > 0) { ++ flags |= MAP_ALIGNED(ffs(alignment_hint) - 1); + } + + // Map reserved/uncommitted pages PROT_NONE so we fail early if we +@@ -2434,7 +2445,7 @@ static int anon_munmap(char * addr, size_t size) { + + char* os::pd_reserve_memory(size_t bytes, char* requested_addr, + size_t alignment_hint) { +- return anon_mmap(requested_addr, bytes, (requested_addr != NULL)); ++ return anon_mmap(requested_addr, bytes, alignment_hint, (requested_addr != NULL)); + } + + bool os::pd_release_memory(char* addr, size_t size) { +@@ -2480,19 +2491,93 @@ bool os::unguard_memory(char* addr, size_t size) { + return bsd_mprotect(addr, size, PROT_READ|PROT_WRITE); + } + +-bool os::Bsd::hugetlbfs_sanity_check(bool warn, size_t page_size) { +- return false; +-} +- + // Large page support + + static size_t _large_page_size = 0; + + void os::large_page_init() { ++ if (UseLargePages) { ++ // print a warning if any large page related flag is specified on command line ++ bool warn_on_failure = !FLAG_IS_DEFAULT(UseLargePages) || ++ !FLAG_IS_DEFAULT(LargePageSizeInBytes); ++ ++ UseLargePages = Bsd::superpage_sanity_check(warn_on_failure, &_large_page_size); ++ } + } + ++// Insertion sort for small arrays (descending order). ++static void insertion_sort_descending(size_t* array, int len) { ++ for (int i = 0; i < len; i++) { ++ size_t val = array[i]; ++ for (size_t key = i; key > 0 && array[key - 1] < val; --key) { ++ size_t tmp = array[key]; ++ array[key] = array[key - 1]; ++ array[key - 1] = tmp; ++ } ++ } ++} + ++bool os::Bsd::superpage_sanity_check(bool warn, size_t* page_size) { ++#ifdef __FreeBSD__ ++ const unsigned int usable_count = VM_Version::page_size_count(); ++ if (usable_count == 1) { ++ return false; ++ } ++ ++ // Fill the array of page sizes. ++ int n = ::getpagesizes(_page_sizes, page_sizes_max); ++ assert(n > 0, "FreeBSD bug?"); ++ ++ if (n == page_sizes_max) { ++ // Add a sentinel value (necessary only if the array was completely filled ++ // since it is static (zeroed at initialization)). ++ _page_sizes[--n] = 0; ++ DEBUG_ONLY(warning("increase the size of the os::_page_sizes array.");) ++ } ++ assert(_page_sizes[n] == 0, "missing sentinel"); ++ trace_page_sizes("available page sizes", _page_sizes, n); ++ ++ if (n == 1) return false; // Only one page size available. ++ ++ // Skip sizes larger than 4M (or LargePageSizeInBytes if it was set) and ++ // select up to usable_count elements. First sort the array, find the first ++ // acceptable value, then copy the usable sizes to the top of the array and ++ // trim the rest. Make sure to include the default page size :-). ++ // ++ // A better policy could get rid of the 4M limit by taking the sizes of the ++ // important VM memory regions (java heap and possibly the code cache) into ++ // account. ++ insertion_sort_descending(_page_sizes, n); ++ const size_t size_limit = ++ FLAG_IS_DEFAULT(LargePageSizeInBytes) ? 4 * M : LargePageSizeInBytes; ++ int beg; ++ for (beg = 0; beg < n && _page_sizes[beg] > size_limit; ++beg) /* empty */ ; ++ const int end = MIN2((int)usable_count, n) - 1; ++ for (int cur = 0; cur < end; ++cur, ++beg) { ++ _page_sizes[cur] = _page_sizes[beg]; ++ } ++ _page_sizes[end] = vm_page_size(); ++ _page_sizes[end + 1] = 0; ++ ++ if (_page_sizes[end] > _page_sizes[end - 1]) { ++ // Default page size is not the smallest; sort again. ++ insertion_sort_descending(_page_sizes, end + 1); ++ } ++ *page_size = _page_sizes[0]; ++ ++ trace_page_sizes("usable page sizes", _page_sizes, end + 1); ++ return true; ++#else ++ return false; ++#endif ++} ++ ++ + char* os::reserve_memory_special(size_t bytes, size_t alignment, char* req_addr, bool exec) { ++#ifdef __FreeBSD__ ++ fatal("os::reserve_memory_special should not be called on FreeBSD."); ++ return NULL; ++#else + fatal("This code is not used or maintained."); + + // "exec" is passed in but not used. Creating the shared image for +@@ -2552,9 +2637,14 @@ char* os::reserve_memory_special(size_t bytes, size_t + MemTracker::record_virtual_memory_reserve_and_commit((address)addr, bytes, CALLER_PC); + + return addr; ++#endif + } + + bool os::release_memory_special(char* base, size_t bytes) { ++#ifdef __FreeBSD__ ++ fatal("os::release_memory_special should not be called on FreeBSD."); ++ return false; ++#else + if (MemTracker::tracking_level() > NMT_minimal) { + Tracker tkr = MemTracker::get_virtual_memory_release_tracker(); + // detaching the SHM segment will also delete it, see reserve_memory_special() +@@ -2568,21 +2658,28 @@ bool os::release_memory_special(char* base, size_t byt + } else { + return shmdt(base) == 0; + } ++#endif + } + + size_t os::large_page_size() { + return _large_page_size; + } + +-// HugeTLBFS allows application to commit large page memory on demand; +-// with SysV SHM the entire memory region must be allocated as shared +-// memory. ++// FreeBSD allows application to commit large page memory on demand. + bool os::can_commit_large_page_memory() { +- return UseHugeTLBFS; ++#ifdef __FreeBSD__ ++ return true; ++#else ++ return false; ++#endif + } + + bool os::can_execute_large_page_memory() { +- return UseHugeTLBFS; ++#ifdef __FreeBSD__ ++ return true; ++#else ++ return false; ++#endif + } + + // Reserve memory at an arbitrary address, only if that area is +@@ -2614,7 +2711,7 @@ char* os::pd_attempt_reserve_memory_at(size_t bytes, c + + // Bsd mmap allows caller to pass an address as hint; give it a try first, + // if kernel honors the hint then we can return immediately. +- char * addr = anon_mmap(requested_addr, bytes, false); ++ char * addr = anon_mmap(requested_addr, bytes, 0, false); + if (addr == requested_addr) { + return requested_addr; + } Index: head/java/openjdk8/files/patch-hotspot_src_os_bsd_vm_os__bsd.hpp =================================================================== --- head/java/openjdk8/files/patch-hotspot_src_os_bsd_vm_os__bsd.hpp (nonexistent) +++ head/java/openjdk8/files/patch-hotspot_src_os_bsd_vm_os__bsd.hpp (revision 455243) @@ -0,0 +1,11 @@ +--- hotspot/src/os/bsd/vm/os_bsd.hpp.orig 2017-12-01 00:32:02 UTC ++++ hotspot/src/os/bsd/vm/os_bsd.hpp +@@ -87,7 +87,7 @@ class Bsd { + static void rebuild_cpu_to_node_map(); + static GrowableArray* cpu_to_node() { return _cpu_to_node; } + +- static bool hugetlbfs_sanity_check(bool warn, size_t page_size); ++ static bool superpage_sanity_check(bool warn, size_t *page_size); + + public: + Property changes on: head/java/openjdk8/files/patch-hotspot_src_os_bsd_vm_os__bsd.hpp ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/java/openjdk8/files/patch-hotspot_src_share_vm_runtime_arguments.cpp =================================================================== --- head/java/openjdk8/files/patch-hotspot_src_share_vm_runtime_arguments.cpp (nonexistent) +++ head/java/openjdk8/files/patch-hotspot_src_share_vm_runtime_arguments.cpp (revision 455243) @@ -0,0 +1,12 @@ +--- hotspot/src/share/vm/runtime/arguments.cpp.orig 2017-12-01 00:32:02.284351000 +0000 ++++ hotspot/src/share/vm/runtime/arguments.cpp 2017-12-01 00:38:48.362549000 +0000 +@@ -3974,7 +3974,8 @@ jint Arguments::parse(const JavaVMInitArgs* args) { + hotspotrc, hotspotrc); + } + +-#ifdef _ALLBSD_SOURCE // UseLargePages is not yet supported on BSD. ++#if defined(_ALLBSD_SOURCE) && !defined(__FreeBSD__) ++ // UseLargePages is not yet supported on BSD. + UNSUPPORTED_OPTION(UseLargePages, "-XX:+UseLargePages"); + #endif + Property changes on: head/java/openjdk8/files/patch-hotspot_src_share_vm_runtime_arguments.cpp ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property