# HG changeset patch # User duke # Date 1499283133 -7200 # Node ID 5bbe2c7742a40b2ee5109be9ff0fa09306800c19 # Parent 03e2f4d0a42188d576c7d365a4622dca2dd17d64# Parent 8b116f192318e747c7ac2d6b7d197e33dddef386 Merge diff -r 03e2f4d0a421 -r 5bbe2c7742a4 .hgtags-top-repo --- a/.hgtags-top-repo Sat Apr 09 23:03:39 2016 +0100 +++ b/.hgtags-top-repo Wed Jul 05 21:32:13 2017 +0200 @@ -355,3 +355,4 @@ 925be13b3740d07a5958ccb5ab3c0ae1baba7055 jdk-9+110 f900d5afd9c83a0df8f36161c27c5e4c86a66f4c jdk-9+111 03543a758cd5890f2266e4b9678378a925dde22a jdk-9+112 +55b6d550828d1223b364e6ead4a56e56411c56df jdk-9+113 diff -r 03e2f4d0a421 -r 5bbe2c7742a4 common/autoconf/compare.sh.in --- a/common/autoconf/compare.sh.in Sat Apr 09 23:03:39 2016 +0100 +++ b/common/autoconf/compare.sh.in Wed Jul 05 21:32:13 2017 +0200 @@ -34,6 +34,7 @@ export OPENJDK_TARGET_OS="@OPENJDK_TARGET_OS@" export OPENJDK_TARGET_CPU="@OPENJDK_TARGET_CPU@" export OPENJDK_TARGET_CPU_LIBDIR="@OPENJDK_TARGET_CPU_LIBDIR@" +export DEBUG_LEVEL="@DEBUG_LEVEL@" export AWK="@AWK@" export BASH="@BASH@" @@ -47,8 +48,6 @@ export FILE="@FILE@" export FIND="@FIND@" export GREP="@GREP@" -export JAVAP="@FIXPATH@ @BOOT_JDK@/bin/javap @JAVA_TOOL_FLAGS_SMALL@" -export JIMAGE="@FIXPATH@ @BUILD_OUTPUT@/jdk/bin/jimage" export LDD="@LDD@" export LN="@LN@" export MKDIR="@MKDIR@" @@ -72,6 +71,17 @@ export SRC_ROOT="@TOPDIR@" export OUTPUT_ROOT="@OUTPUT_ROOT@" +if [ "@COMPILE_TYPE@" != "cross" ]; then + export JAVAP="@FIXPATH@ $OUTPUT_ROOT/jdk/bin/javap @JAVA_TOOL_FLAGS_SMALL@" + export JIMAGE="@FIXPATH@ $OUTPUT_ROOT/jdk/bin/jimage" +elif [ "@CREATE_BUILDJDK@" = "true" ]; then + export JAVAP="@FIXPATH@ $OUTPUT_ROOT/buildjdk/jdk/bin/javap @JAVA_TOOL_FLAGS_SMALL@" + export JIMAGE="@FIXPATH@ $OUTPUT_ROOT/buildjdk/jdk/bin/jimage" +else + export JAVAP="@FIXPATH@ @BUILD_JDK@/bin/javap @JAVA_TOOL_FLAGS_SMALL@" + export JIMAGE="@FIXPATH@ @BUILD_JDK@/bin/jimage" +fi + if [ "$OPENJDK_TARGET_OS" = "windows" ]; then export PATH="@VS_PATH@" fi diff -r 03e2f4d0a421 -r 5bbe2c7742a4 common/bin/compare.sh --- a/common/bin/compare.sh Sat Apr 09 23:03:39 2016 +0100 +++ b/common/bin/compare.sh Wed Jul 05 21:32:13 2017 +0200 @@ -75,6 +75,7 @@ THIS_FILE=$2 SUFFIX="${THIS_FILE##*.}" + NAME="${THIS_FILE##*/}" TMP=1 @@ -92,6 +93,7 @@ $GREP '^[<>]' | \ $SED -e '/[<>] \* from.*\.idl/d' \ -e '/[<>] .*[0-9]\{4\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}-b[0-9]\{2\}.*/d' \ + -e '/[<>] .*[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}-[0-9]\{6\}.*/d' \ -e '/[<>] \*.*[0-9]\{4\} [0-9][0-9]*:[0-9]\{2\}:[0-9]\{2\}.*/d' \ -e '/\/\/ Generated from input file.*/d' \ -e '/\/\/ This file was generated AUTOMATICALLY from a template file.*/d' \ @@ -100,12 +102,34 @@ # Ignore date strings in class files. # Anonymous lambda classes get randomly assigned counters in their names. if test "x$SUFFIX" = "xclass"; then + if [ "$NAME" = "module-info.class" ] || [ "$NAME" = "SystemModules.class" ] + then + # The SystemModules.class and module-info.class have several issues + # with random ordering of elements in HashSets. + MODULES_CLASS_FILTER="$SED \ + -e 's/,$//' \ + -e 's/;$//' \ + -e 's/^ *[0-9]*://' \ + -e 's/#[0-9]* */#/' \ + -e 's/ *\/\// \/\//' \ + -e 's/aload *[0-9]*/aload X/' \ + -e 's/ldc_w/ldc /' \ + | $SORT \ + " + $JAVAP -c -constants -l -p "${OTHER_FILE}" \ + | eval "$MODULES_CLASS_FILTER" > ${OTHER_FILE}.javap & + $JAVAP -c -constants -l -p "${THIS_FILE}" \ + | eval "$MODULES_CLASS_FILTER" > ${THIS_FILE}.javap & + wait + TMP=$($DIFF ${OTHER_FILE}.javap ${THIS_FILE}.javap) # To improve performance when large diffs are found, do a rough filtering of classes # elibeble for these exceptions - if $GREP -R -e '[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}-[0-9]\{6\}' \ - -e 'lambda\$[a-zA-Z0-9]*\$[0-9]' ${THIS_FILE} > /dev/null; then - $JAVAP -c -constants -l -p "${OTHER_FILE}" > ${OTHER_FILE}.javap - $JAVAP -c -constants -l -p "${THIS_FILE}" > ${THIS_FILE}.javap + elif $GREP -R -e '[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}-[0-9]\{6\}' \ + -e 'lambda\$[a-zA-Z0-9]*\$[0-9]' ${THIS_FILE} > /dev/null + then + $JAVAP -c -constants -l -p "${OTHER_FILE}" > ${OTHER_FILE}.javap & + $JAVAP -c -constants -l -p "${THIS_FILE}" > ${THIS_FILE}.javap & + wait TMP=$($DIFF ${OTHER_FILE}.javap ${THIS_FILE}.javap | \ $GREP '^[<>]' | \ $SED -e '/[<>].*[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}-[0-9]\{6\}.*/d' \ @@ -305,14 +329,19 @@ if [ -e $OTHER_DIR/$f ]; then SUFFIX="${f##*.}" if [ "$(basename $f)" = "release" ]; then - # Ignore differences in change numbers in release file. + # In release file, ignore differences in change numbers and order + # of modules in list. OTHER_FILE=$WORK_DIR/$f.other THIS_FILE=$WORK_DIR/$f.this $MKDIR -p $(dirname $OTHER_FILE) $MKDIR -p $(dirname $THIS_FILE) RELEASE_FILTER="$SED \ -e 's/\:[0-9a-f]\{12,12\}/:CHANGE/g' \ - -e 's/[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}-[0-9]\{6\}//g' + -e 's/[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}-[0-9]\{6\}//g' \ + -e 's/^#.*/#COMMENT/g' \ + -e 's/MODULES=/MODULES=\'$'\n/' \ + -e 's/,/\'$'\n/g' \ + | $SORT " $CAT $OTHER_DIR/$f | eval "$RELEASE_FILTER" > $OTHER_FILE $CAT $THIS_DIR/$f | eval "$RELEASE_FILTER" > $THIS_FILE @@ -330,8 +359,9 @@ -e 's/\(-- Generated by javadoc \).*\( --\)/\1(removed)\2/' \ -e 's/[A-Z][a-z]*, [A-Z][a-z]* [0-9][0-9]*, [0-9]\{4\} [0-9][0-9:]* [AMP]\{2,2\} [A-Z][A-Z]*//' " - $CAT $OTHER_DIR/$f | eval "$HTML_FILTER" > $OTHER_FILE - $CAT $THIS_DIR/$f | eval "$HTML_FILTER" > $THIS_FILE + $CAT $OTHER_DIR/$f | eval "$HTML_FILTER" > $OTHER_FILE & + $CAT $THIS_DIR/$f | eval "$HTML_FILTER" > $THIS_FILE & + wait else OTHER_FILE=$OTHER_DIR/$f THIS_FILE=$THIS_DIR/$f @@ -389,7 +419,7 @@ $RM -rf $THIS_UNZIPDIR $OTHER_UNZIPDIR $MKDIR -p $THIS_UNZIPDIR $MKDIR -p $OTHER_UNZIPDIR - if [ "$TYPE" = "jar" || "$TYPE" = "war" || "$TYPE" = "zip" || "$TYPE" = "jmod"] + if [ "$TYPE" = "jar" -o "$TYPE" = "war" -o "$TYPE" = "zip" -o "$TYPE" = "jmod" ] then (cd $THIS_UNZIPDIR && $UNARCHIVE $THIS_ZIP) (cd $OTHER_UNZIPDIR && $UNARCHIVE $OTHER_ZIP) @@ -526,7 +556,7 @@ # TODO filter? ZIPS=$(cd $THIS_DIR && $FIND . -type f -name "*.jar" -o -name "*.war" \ - -o -name "modules" -o -name "*.jmod" | $SORT | $FILTER) + -o -name "modules" | $SORT | $FILTER) if [ -n "$ZIPS" ]; then echo Jar files... @@ -600,8 +630,8 @@ && [ -f "$OTHER/support/native/java.base/java_objs/java.diz" ]; then OTHER_DIZ_FILE="$OTHER/support/native/java.base/java_objs/java.diz" elif [ "$NAME" = "jimage.exe" ] \ - && [ -f "$OTHER/support/native/jdk.dev/jimage_objs/jimage.diz" ]; then - OTHER_DIZ_FILE="$OTHER/support/native/jdk.dev/jimage_objs/jimage.diz" + && [ -f "$OTHER/support/native/jdk.jlink/jimage_objs/jimage.diz" ]; then + OTHER_DIZ_FILE="$OTHER/support/native/jdk.jlink/jimage_objs/jimage.diz" elif [ "$NAME" = "javacpl.exe" ] \ && [ -f "$OTHER/support/native/jdk.plugin/javacpl/javacpl.diz" ]; then OTHER_DIZ_FILE="$OTHER/support/native/jdk.plugin/javacpl/javacpl.diz" @@ -632,8 +662,8 @@ && [ -f "$THIS/support/native/java.base/java_objs/java.diz" ]; then THIS_DIZ_FILE="$THIS/support/native/java.base/java_objs/java.diz" elif [ "$NAME" = "jimage.exe" ] \ - && [ -f "$THIS/support/native/jdk.dev/jimage_objs/jimage.diz" ]; then - THIS_DIZ_FILE="$THIS/support/native/jdk.dev/jimage_objs/jimage.diz" + && [ -f "$THIS/support/native/jdk.jlink/jimage_objs/jimage.diz" ]; then + THIS_DIZ_FILE="$THIS/support/native/jdk.jlink/jimage_objs/jimage.diz" elif [ "$NAME" = "javacpl.exe" ] \ && [ -f "$THIS/support/native/jdk.plugin/javacpl/javacpl.diz" ]; then THIS_DIZ_FILE="$THIS/support/native/jdk.plugin/javacpl/javacpl.diz" @@ -732,6 +762,13 @@ SYM_SORT_CMD="cat" fi + if [ -n "$SYMBOLS_DIFF_FILTER" ] && [ -z "$NEED_SYMBOLS_DIFF_FILTER" ] \ + || [[ "$NEED_SYMBOLS_DIFF_FILTER" = *"$BIN_FILE"* ]]; then + this_SYMBOLS_DIFF_FILTER="$SYMBOLS_DIFF_FILTER" + else + this_SYMBOLS_DIFF_FILTER="$CAT" + fi + # Check symbols if [ "$OPENJDK_TARGET_OS" = "windows" ]; then # The output from dumpbin on windows differs depending on if the debug symbol @@ -750,8 +787,16 @@ $NM -j $ORIG_OTHER_FILE 2> /dev/null | $SYM_SORT_CMD > $WORK_FILE_BASE.symbols.other $NM -j $ORIG_THIS_FILE 2> /dev/null | $SYM_SORT_CMD > $WORK_FILE_BASE.symbols.this else - $NM -a $ORIG_OTHER_FILE 2> /dev/null | $GREP -v $NAME | $AWK '{print $2, $3, $4, $5}' | $SYM_SORT_CMD > $WORK_FILE_BASE.symbols.other - $NM -a $ORIG_THIS_FILE 2> /dev/null | $GREP -v $NAME | $AWK '{print $2, $3, $4, $5}' | $SYM_SORT_CMD > $WORK_FILE_BASE.symbols.this + $NM -a $ORIG_OTHER_FILE 2> /dev/null | $GREP -v $NAME \ + | $AWK '{print $2, $3, $4, $5}' \ + | eval "$this_SYMBOLS_DIFF_FILTER" \ + | $SYM_SORT_CMD \ + > $WORK_FILE_BASE.symbols.other + $NM -a $ORIG_THIS_FILE 2> /dev/null | $GREP -v $NAME \ + | $AWK '{print $2, $3, $4, $5}' \ + | eval "$this_SYMBOLS_DIFF_FILTER" \ + | $SYM_SORT_CMD \ + > $WORK_FILE_BASE.symbols.this fi LC_ALL=C $DIFF $WORK_FILE_BASE.symbols.other $WORK_FILE_BASE.symbols.this > $WORK_FILE_BASE.symbols.diff @@ -828,9 +873,10 @@ FULLDUMP_DIFF_FILTER="$CAT" fi $FULLDUMP_CMD $OTHER_FILE | eval "$BUILD_ID_FILTER" | eval "$FULLDUMP_DIFF_FILTER" \ - > $WORK_FILE_BASE.fulldump.other 2>&1 + > $WORK_FILE_BASE.fulldump.other 2>&1 & $FULLDUMP_CMD $THIS_FILE | eval "$BUILD_ID_FILTER" | eval "$FULLDUMP_DIFF_FILTER" \ - > $WORK_FILE_BASE.fulldump.this 2>&1 + > $WORK_FILE_BASE.fulldump.this 2>&1 & + wait LC_ALL=C $DIFF $WORK_FILE_BASE.fulldump.other $WORK_FILE_BASE.fulldump.this \ > $WORK_FILE_BASE.fulldump.diff @@ -854,18 +900,19 @@ FULLDUMP_MSG=" " DIFF_FULLDUMP= if [[ "$KNOWN_FULLDUMP_DIFF $ACCEPTED_FULLDUMP_DIFF" = *"$BIN_FILE"* ]]; then - FULLDUMP_MSG=" ! " + FULLDUMP_MSG=" ! " fi fi fi # Compare disassemble output if [ -n "$DIS_CMD" ] && [ -z "$SKIP_DIS_DIFF" ]; then - # By default we filter out differences that include references to symbols. - # To get a raw diff with the complete disassembly, set - # DIS_DIFF_FILTER="$CAT" - if [ -z "$DIS_DIFF_FILTER" ]; then - DIS_DIFF_FILTER="$GREP -v ' # .* <.*>$' | $SED -r -e 's/(\b|x)([0-9a-fA-F]+)(\b|:|>)/X/g'" + this_DIS_DIFF_FILTER="$CAT" + if [ -n "$DIS_DIFF_FILTER" ]; then + if [ -z "$NEED_DIS_DIFF_FILTER" ] \ + || [[ "$NEED_DIS_DIFF_FILTER" = *"$BIN_FILE"* ]]; then + this_DIS_DIFF_FILTER="$DIS_DIFF_FILTER" + fi fi if [ "$OPENJDK_TARGET_OS" = "windows" ]; then DIS_GREP_ARG=-a @@ -873,9 +920,10 @@ DIS_GREP_ARG= fi $DIS_CMD $OTHER_FILE | $GREP $DIS_GREP_ARG -v $NAME \ - | eval "$DIS_DIFF_FILTER" > $WORK_FILE_BASE.dis.other 2>&1 + | eval "$this_DIS_DIFF_FILTER" > $WORK_FILE_BASE.dis.other 2>&1 & $DIS_CMD $THIS_FILE | $GREP $DIS_GREP_ARG -v $NAME \ - | eval "$DIS_DIFF_FILTER" > $WORK_FILE_BASE.dis.this 2>&1 + | eval "$this_DIS_DIFF_FILTER" > $WORK_FILE_BASE.dis.this 2>&1 & + wait LC_ALL=C $DIFF $WORK_FILE_BASE.dis.other $WORK_FILE_BASE.dis.this > $WORK_FILE_BASE.dis.diff @@ -884,11 +932,15 @@ DIS_MSG=$($PRINTF "%8d" $DIS_DIFF_SIZE) if [[ "$ACCEPTED_DIS_DIFF" != *"$BIN_FILE"* ]]; then DIFF_DIS=true - if [[ "$KNOWN_DIS_DIFF" != *"$BIN_FILE"* ]]; then + if [ "$MAX_KNOWN_DIS_DIFF_SIZE" = "" ]; then + MAX_KNOWN_DIS_DIFF_SIZE="0" + fi + if [[ "$KNOWN_DIS_DIFF" = *"$BIN_FILE"* ]] \ + && [ "$DIS_DIFF_SIZE" -lt "$MAX_KNOWN_DIS_DIFF_SIZE" ]; then + DIS_MSG=" $DIS_MSG " + else DIS_MSG="*$DIS_MSG*" REGRESSIONS=true - else - DIS_MSG=" $DIS_MSG " fi else DIS_MSG="($DIS_MSG)" diff -r 03e2f4d0a421 -r 5bbe2c7742a4 common/bin/compare_exceptions.sh.incl --- a/common/bin/compare_exceptions.sh.incl Sat Apr 09 23:03:39 2016 +0100 +++ b/common/bin/compare_exceptions.sh.incl Wed Jul 05 21:32:13 2017 +0200 @@ -89,7 +89,9 @@ ./bin/jimage ./bin/jinfo ./bin/jjs + ./bin/jlink ./bin/jmap + ./bin/jmod ./bin/jps ./bin/jrunscript ./bin/jsadebugd @@ -113,21 +115,36 @@ ./bin/xjc " - # Issue with __FILE__ usage in generated header files prevent clean fulldump diff of - # server jvm with old hotspot build. - KNOWN_FULLDUMP_DIFF=" - ./lib$OPENJDK_TARGET_CPU_LIBDIR/client/libjvm.so - ./lib$OPENJDK_TARGET_CPU_LIBDIR/server/libjvm.so - ./lib$OPENJDK_TARGET_CPU_LIBDIR/minimal/libjvm.so - " + if [ "$OPENJDK_TARGET_CPU" = "arm" ]; then + # NOTE: When comparing the old and new hotspot builds, the link time + # optimization makes good comparisons impossible. Fulldump compare always + # fails and disassembly can end up with some functions in different order. + # So for now, accept the difference but put a limit on the size. The + # different order of functions shouldn't result in a very big diff. + KNOWN_FULLDUMP_DIFF=" + ./lib$OPENJDK_TARGET_CPU_LIBDIR/minimal/libjvm.so + " - if [ "$OPENJDK_TARGET_CPU" = "x86" ]; then - KNOWN_DIS_DIFF=" - ./lib$OPENJDK_TARGET_CPU_LIBDIR/server/libjvm.so + # Link time optimization adds random numbers to symbol names + NEED_DIS_DIFF_FILTER=" + ./lib$OPENJDK_TARGET_CPU_LIBDIR/minimal/libjvm.so + " + DIS_DIFF_FILTER="$SED -r \ + -e 's/\.[0-9]+/.X/g' \ + -e 's/\t[0-9a-f]{4} [0-9a-f]{4} /\tXXXX XXXX /' \ + -e 's/\t[0-9a-f]{5,} /\t /' \ " - DIS_DIFF_FILTER="$SED \ - -e 's/\(:\t\)\([0-9a-z]\{2,2\} \)\{1,7\}/\1/g' \ - -e 's/0x[0-9a-z]\{2,9\}//g'" + KNOWN_DIS_DIFF=" + ./lib$OPENJDK_TARGET_CPU_LIBDIR/minimal/libjvm.so + " + MAX_KNOWN_DIS_DIFF_SIZE="3000" + + NEED_SYMBOLS_DIFF_FILTER=" + ./lib$OPENJDK_TARGET_CPU_LIBDIR/minimal/libjvm.so + " + SYMBOLS_DIFF_FILTER="$SED -r \ + -e 's/\.[0-9]+/.X/g' + " fi fi @@ -224,7 +241,9 @@ ./bin/jimage ./bin/jinfo ./bin/jjs + ./bin/jlink ./bin/jmap + ./bin/jmod ./bin/jps ./bin/jrunscript ./bin/jsadebugd @@ -250,15 +269,10 @@ SKIP_FULLDUMP_DIFF="true" - # Filter random C++ symbol strings. - # Some numbers differ randomly. + # Random strings looking like this differ: <.XAKoKoPIac2W0OA. DIS_DIFF_FILTER="$SED \ - -e 's/\.[a-zA-Z0-9_\$]\{15\}//g' \ - -e 's/\(\# \)[0-9a-f]*\( <\)/\1\2/g' \ - -e 's/0x[0-9a-f]*$//g' \ - -e 's/0x[0-9a-f]*\([,(>]\)/\1/g' \ - -e 's/: [0-9a-f][0-9a-f]\( [0-9a-f][0-9a-f]\)\{2,10\}/: /g' \ - -e 's/ [\.A-Za-z0-9%@]\{16\}$/ /g'" + -e 's/<\.[A-Za-z0-9]\{\15}\./<.SYM./' \ + " fi @@ -356,7 +370,9 @@ ./bin/jimage ./bin/jinfo ./bin/jjs + ./bin/jlink ./bin/jmap + ./bin/jmod ./bin/jps ./bin/jrunscript ./bin/jsadebugd @@ -380,26 +396,32 @@ ./bin/xjc " - # Some numbers differ randomly. DIS_DIFF_FILTER="$SED \ - -e 's/\$[a-zA-Z0-9_\$]\{15\}//g' \ - -e 's/: [0-9a-f][0-9a-f]\( [0-9a-f][0-9a-f]\)\{2,10\}/: /g' \ - -e 's/, [0-9a-fx\-]\{1,8\}/, /g' \ - -e 's/call [0-9a-f]\{7\}/call /g' \ + -e 's/^[0-9a-f]\{16\}/:/' \ + -e 's/^ *[0-9a-f]\{3,8\}:/ :/' \ + -e 's/: [0-9a-f][0-9a-f]\( [0-9a-f][0-9a-f]\)\{2,10\}/: /' \ + -e 's/\$[a-zA-Z0-9_\$]\{15\}\././' \ + -e 's/, [0-9a-fx\-]\{1,8\}/, /g' \ -e 's/0x[0-9a-f]\{1,8\}//g' \ - -e 's/\! [0-9a-f]\{1,8\} /! /g'" + -e 's/\! [0-9a-f]\{1,8\} /! /' \ + -e 's/call [0-9a-f]\{4,7\}/call /' \ + -e 's/%hi(0),/%hi(),/' \ + " - # libjvm.so - # __FILE__ macro usage in debug.hpp causes differences between old and new - # hotspot builds in ad_sparc.o and ad_sparc_clone.o. The .o files compare - # equal when stripped, but at link time differences appear. Removing - # __FILE__ from ShouldNotCallThis() and ShouldNotReachHere() removes - # the differences. KNOWN_DIS_DIFF=" - ./lib/sparcv9/server/libjvm.so ./lib/sparcv9/libsaproc.so " + MAX_KNOWN_DIS_DIFF_SIZE="3000" + + # On slowdebug the disassembly can differ randomly. + if [ "$DEBUG_LEVEL" = "slowdebug" ]; then + ACCEPTED_DIS_DIFF=" + ./lib/sparcv9/libfontmanager.so + ./lib/sparcv9/server/libjvm.so + " + fi + SKIP_FULLDUMP_DIFF="true" fi @@ -419,6 +441,7 @@ ./demo/jvmti/minst/lib/minst.dll ./bin/attach.dll ./bin/jsoundds.dll + ./bin/client/jvm.dll ./bin/server/jvm.dll ./bin/appletviewer.exe ./bin/idlj.exe @@ -438,7 +461,9 @@ ./bin/jimage.exe ./bin/jinfo.exe ./bin/jjs.exe + ./bin/jlink.exe ./bin/jmap.exe + ./bin/jmod.exe ./bin/jps.exe ./bin/jrunscript.exe ./bin/jsadebugd.exe @@ -469,22 +494,39 @@ ./bin/jabswitch.exe " - # On windows, there are unavoidable allignment issues making - # a perfect disasm diff impossible. Filter out the following: - # * Random parts of C++ symbols (this is a bit greedy, but does the trick) - # @XXXXX - # * Hexadecimal addresses that are sometimes alligned differently. - # * Dates in version strings XXXX_XX_XX. - DIS_DIFF_FILTER="$SED \ - -e 's/^ [0-9A-F]\{16\}: //g' \ - -e 's/[@?][A-Za-z0-9_]\{1,25\}//g' \ - -e 's/\([\[+]\)[0-9A-F]\{4,16\}h\]/\1]/g' \ - -e 's/_[0-9]\{4\}_[0-9]\{2\}_[0-9]\{2\}/_/g'" - #DIS_DIFF_FILTER="$CAT" + if [ "$OPENJDK_TARGET_CPU" = "x86" ]; then + DIS_DIFF_FILTER="$SED -r \ + -e 's/^ [0-9A-F]{16}: //' \ + -e 's/^ [0-9A-F]{8}: / : /' \ + -e 's/(offset \?\?)_C@_.*/\1/' \ + -e 's/[@?][A-Za-z0-9_]{1,25}//' \ + -e 's/([-,+])[0-9A-F]{2,16}/\1/g' \ + -e 's/\[[0-9A-F]{4,16}h\]/[]/' \ + -e 's/: ([a-z]{2}[a-z ]{2}) [0-9A-F]{2,16}h?$/: \1 /' \ + -e 's/_20[0-9]{2}_[0-1][0-9]_[0-9]{2}/_/' \ + " + elif [ "$OPENJDK_TARGET_CPU" = "x86_64" ]; then + DIS_DIFF_FILTER="$SED -r \ + -e 's/^ [0-9A-F]{16}: //' \ + -e 's/\[[0-9A-F]{4,16}h\]/[]/' \ + -e 's/([,+])[0-9A-F]{2,16}h/\1/' \ + -e 's/([a-z]{2}[a-z ]{2}) [0-9A-F]{4,16}$/\1 /' \ + -e 's/\[\?\?_C@_.*/[]/' \ + " + fi SKIP_BIN_DIFF="true" SKIP_FULLDUMP_DIFF="true" + # NOTE: When comparing the old and new hotspot builds, the server jvm.dll + # cannot be made equal in disassembly. Some functions just always end up + # in different order. So for now, accept the difference but put a limit + # on the size. The different order of functions shouldn't result in a very + # big diff. + KNOWN_DIS_DIFF=" + ./bin/server/jvm.dll + " + MAX_KNOWN_DIS_DIFF_SIZE="2000000" fi @@ -512,7 +554,9 @@ ./bin/jimage ./bin/jinfo ./bin/jjs + ./bin/jlink ./bin/jmap + ./bin/jmod ./bin/jps ./bin/jrunscript ./bin/jsadebugd @@ -565,6 +609,7 @@ ./Contents/Home/lib/libverify.dylib ./Contents/Home/lib/libsaproc.dylib ./Contents/Home/lib/libsplashscreen.dylib + ./Contents/Home/lib/server/libjsig.dylib ./Contents/Home/lib/server/libjvm.dylib ./Contents/Home/lib/deploy/JavaControlPanel.prefPane/Contents/MacOS/JavaControlPanel ./Contents/Resources/JavaControlPanelHelper @@ -590,6 +635,7 @@ ./lib/libverify.dylib ./lib/libsaproc.dylib ./lib/libsplashscreen.dylib + ./lib/server/libjsig.dylib ./lib/server/libjvm.dylib ./lib/deploy/JavaControlPanel.prefPane/Contents/MacOS/JavaControlPanel ./Versions/A/Resources/finish_installation.app/Contents/MacOS/finish_installation @@ -606,7 +652,8 @@ DIS_DIFF_FILTER="LANG=C $SED \ -e 's/0x[0-9a-f]\{3,16\}//g' -e 's/^[0-9a-f]\{12,20\}//' \ - -e 's/## literal pool for: .Java HotSpot(TM) 64-Bit Server VM.*//g' + -e 's/-20[0-9][0-9]-[0-1][0-9]-[0-3][0-9]-[0-2][0-9]\{5\}//g' \ + -e 's/), built on .*/), /' \ " fi diff -r 03e2f4d0a421 -r 5bbe2c7742a4 make/CompileJavaModules.gmk --- a/make/CompileJavaModules.gmk Sat Apr 09 23:03:39 2016 +0100 +++ b/make/CompileJavaModules.gmk Wed Jul 05 21:32:13 2017 +0200 @@ -1,5 +1,5 @@ # -# Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -111,16 +111,6 @@ sun/awt/X11/doc-files \ # -# The exception handling of swing beaninfo -# These resources violates the convention of having code and resources together under -# $(JDK_TOPDIR)/src/.../classes directories -$(eval $(call SetupCopyFiles,COPY_BEANINFO, \ - SRC := $(JDK_TOPDIR)/make/data/swingbeaninfo/images, \ - DEST := $(JDK_OUTPUTDIR)/modules/java.desktop/javax/swing/beaninfo/images, \ - FILES := $(wildcard $(JDK_TOPDIR)/make/data/swingbeaninfo/images/*.gif))) - -java.desktop_COPY_EXTRA += $(COPY_BEANINFO) - java.desktop_EXCLUDE_FILES += \ javax/swing/plaf/nimbus/InternalFrameTitlePanePainter.java \ javax/swing/plaf/nimbus/OptionPaneMessageAreaPainter.java \ diff -r 03e2f4d0a421 -r 5bbe2c7742a4 make/Javadoc.gmk --- a/make/Javadoc.gmk Sat Apr 09 23:03:39 2016 +0100 +++ b/make/Javadoc.gmk Wed Jul 05 21:32:13 2017 +0200 @@ -74,6 +74,7 @@ JCONSOLE_FIRST_COPYRIGHT_YEAR = 2006 SCTPAPI_FIRST_COPYRIGHT_YEAR = 2009 TRACING_FIRST_COPYRIGHT_YEAR = 2008 +JSHELLAPI_FIRST_COPYRIGHT_YEAR = 2015 TREEAPI_FIRST_COPYRIGHT_YEAR = 2005 NASHORNAPI_FIRST_COPYRIGHT_YEAR = 2014 DYNALINKAPI_FIRST_COPYRIGHT_YEAR = 2015 @@ -1199,6 +1200,65 @@ ############################################################# # +# jshellapidocs +# + +ALL_OTHER_TARGETS += jshellapidocs + +JSHELLAPI_DOCDIR := $(JDK_API_DOCSDIR)/jshell +JSHELLAPI2COREAPI := ../../$(JDKJRE2COREAPI) +JSHELLAPI_DOCTITLE := JShell API +JSHELLAPI_WINDOWTITLE := JShell API +JSHELLAPI_HEADER := JSHELL API +JSHELLAPI_BOTTOM := $(call CommonBottom,$(JSHELLAPI_FIRST_COPYRIGHT_YEAR)) +JSHELLAPI_GROUPNAME := Packages +JSHELLAPI_REGEXP := jdk.jshell.* +# JSHELLAPI_PKGS is located in NON_CORE_PKGS.gmk + +JSHELLAPI_INDEX_HTML = $(JSHELLAPI_DOCDIR)/index.html +JSHELLAPI_OPTIONS_FILE = $(DOCSTMPDIR)/jshellapi.options +JSHELLAPI_PACKAGES_FILE = $(DOCSTMPDIR)/jshellapi.packages + +# The modules required to be documented +JSHELLAPI_MODULES = jdk.jshell + +jshellapidocs: $(JSHELLAPI_INDEX_HTML) + +# Set relative location to core api document root +$(JSHELLAPI_INDEX_HTML): GET2DOCSDIR=$(JSHELLAPI2COREAPI)/.. + +# Run javadoc if the index file is out of date or missing +$(JSHELLAPI_INDEX_HTML): $(JSHELLAPI_OPTIONS_FILE) $(JSHELLAPI_PACKAGES_FILE) $(COREAPI_INDEX_FILE) + $(prep-javadoc) + $(call JavadocSummary,$(JSHELLAPI_OPTIONS_FILE),$(JSHELLAPI_PACKAGES_FILE)) + $(JAVADOC_CMD_SMALL) -d $(@D) \ + @$(JSHELLAPI_OPTIONS_FILE) @$(JSHELLAPI_PACKAGES_FILE) + +# Create file with javadoc options in it +$(JSHELLAPI_OPTIONS_FILE): + $(prep-target) + @($(call COMMON_JAVADOCFLAGS) ; \ + $(call COMMON_JAVADOCTAGS) ; \ + $(call OptionOnly,-Xdoclint:all) ; \ + $(call OptionPair,-system,none) ; \ + $(call OptionPair,-modulesourcepath,$(RELEASEDOCS_MODULESOURCEPATH)) ; \ + $(call OptionPair,-addmods,$(JSHELLAPI_MODULES)) ; \ + $(call OptionPair,-encoding,ascii) ; \ + $(call OptionPair,-doctitle,$(JSHELLAPI_DOCTITLE)) ; \ + $(call OptionPair,-windowtitle,$(JSHELLAPI_WINDOWTITLE) $(DRAFT_WINTITLE)); \ + $(call OptionPair,-header,$(JSHELLAPI_HEADER)$(DRAFT_HEADER)) ; \ + $(call OptionPair,-bottom,$(JSHELLAPI_BOTTOM)$(DRAFT_BOTTOM)) ; \ + $(call OptionTrip,-group,$(JSHELLAPI_GROUPNAME),$(JSHELLAPI_REGEXP)); \ + $(call OptionTrip,-linkoffline,$(JSHELLAPI2COREAPI),$(COREAPI_DOCSDIR)/); \ + ) >> $@ + +# Create a file with the package names in it +$(JSHELLAPI_PACKAGES_FILE): $(call PackageDependencies,$(JSHELLAPI_PKGS)) + $(prep-target) + $(call PackageFilter,$(JSHELLAPI_PKGS)) + +############################################################# +# # treeapidocs # diff -r 03e2f4d0a421 -r 5bbe2c7742a4 make/Main.gmk --- a/make/Main.gmk Sat Apr 09 23:03:39 2016 +0100 +++ b/make/Main.gmk Wed Jul 05 21:32:13 2017 +0200 @@ -341,7 +341,8 @@ ifeq ($(CREATE_BUILDJDK), true) # This target is only called by the recursive call below. create-buildjdk-compile-hotspot-helper: hotspot - create-buildjdk-compile-modules-helper: jdk.jlink-launchers java.base-copy + create-buildjdk-compile-modules-helper: jdk.jlink-launchers java.base-copy \ + jdk.jdeps-launchers endif create-buildjdk-copy: diff -r 03e2f4d0a421 -r 5bbe2c7742a4 make/common/CORE_PKGS.gmk --- a/make/common/CORE_PKGS.gmk Sat Apr 09 23:03:39 2016 +0100 +++ b/make/common/CORE_PKGS.gmk Wed Jul 05 21:32:13 2017 +0200 @@ -82,6 +82,7 @@ java.awt \ java.awt.color \ java.awt.datatransfer \ + java.awt.desktop \ java.awt.dnd \ java.awt.event \ java.awt.font \ diff -r 03e2f4d0a421 -r 5bbe2c7742a4 make/common/Modules.gmk --- a/make/common/Modules.gmk Sat Apr 09 23:03:39 2016 +0100 +++ b/make/common/Modules.gmk Wed Jul 05 21:32:13 2017 +0200 @@ -66,6 +66,7 @@ jdk.sctp \ jdk.security.auth \ jdk.security.jgss \ + jdk.unsupported \ jdk.vm.ci \ # @@ -115,6 +116,7 @@ # JRE_TOOL_MODULES += \ + jdk.jdwp.agent \ jdk.pack200 \ jdk.scripting.nashorn.shell \ # diff -r 03e2f4d0a421 -r 5bbe2c7742a4 make/common/NON_CORE_PKGS.gmk --- a/make/common/NON_CORE_PKGS.gmk Sat Apr 09 23:03:39 2016 +0100 +++ b/make/common/NON_CORE_PKGS.gmk Wed Jul 05 21:32:13 2017 +0200 @@ -80,6 +80,8 @@ JCONSOLE_PKGS = com.sun.tools.jconsole +JSHELLAPI_PKGS = jdk.jshell + TREEAPI_PKGS = com.sun.source.doctree \ com.sun.source.tree \ com.sun.source.util diff -r 03e2f4d0a421 -r 5bbe2c7742a4 test/lib/share/classes/jdk/test/lib/Utils.java --- a/test/lib/share/classes/jdk/test/lib/Utils.java Sat Apr 09 23:03:39 2016 +0100 +++ b/test/lib/share/classes/jdk/test/lib/Utils.java Wed Jul 05 21:32:13 2017 +0200 @@ -48,7 +48,7 @@ import java.util.function.Function; import java.util.regex.Matcher; import java.util.regex.Pattern; -import sun.misc.Unsafe; +import jdk.internal.misc.Unsafe; import jdk.test.lib.process.*; import static jdk.test.lib.Asserts.assertTrue;