diff --git a/common/autoconf/compare.sh.in b/common/autoconf/compare.sh.in index 05f0f6c6729..f8f97ec02d2 100644 --- a/common/autoconf/compare.sh.in +++ b/common/autoconf/compare.sh.in @@ -33,6 +33,7 @@ export LEGACY_BUILD_DIR=@OPENJDK_TARGET_OS@-@OPENJDK_TARGET_CPU_LEGACY@ export OPENJDK_TARGET_OS="@OPENJDK_TARGET_OS@" export OPENJDK_TARGET_CPU="@OPENJDK_TARGET_CPU@" +export OPENJDK_TARGET_CPU_LIBDIR="@OPENJDK_TARGET_CPU_LIBDIR@" export AWK="@AWK@" export BASH="@BASH@" diff --git a/common/bin/compare.sh b/common/bin/compare.sh index b417e8ed819..12f95a8e7d0 100644 --- a/common/bin/compare.sh +++ b/common/bin/compare.sh @@ -102,32 +102,21 @@ diff_text() { if test "x$SUFFIX" = "xclass"; then # 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]\{2\}_[0-9]\{2\}-b[0-9]\{2\}' \ - -e '[0-9]\{2\}/[0-9]\{2\}/[0-9]\{4\}' \ + 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 TMP=$($DIFF ${OTHER_FILE}.javap ${THIS_FILE}.javap | \ $GREP '^[<>]' | \ - $SED -e '/[<>].*[0-9]\{4\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}-b[0-9]\{2\}.*/d' \ - -e '/[0-9]\{2\}\/[0-9]\{2\}\/[0-9]\{4\}/d' \ + $SED -e '/[<>].*[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}-[0-9]\{6\}.*/d' \ -e '/[<>].*lambda\$[a-zA-Z0-9]*\$[0-9]*/d') fi fi if test "x$SUFFIX" = "xproperties"; then - # Run through nawk to add possibly missing newline at end of file. - $CAT $OTHER_FILE | $NAWK '{ print }' | LC_ALL=C $SORT > $OTHER_FILE.cleaned -# Disable this exception since we aren't changing the properties cleaning method yet. -# $CAT $OTHER_FILE | $SED -e 's/\([^\\]\):/\1\\:/g' -e 's/\([^\\]\)=/\1\\=/g' -e 's/#.*/#/g' \ -# | $SED -f "$SRC_ROOT/common/makefiles/support/unicode2x.sed" \ -# | $SED -e '/^#/d' -e '/^$/d' \ -# -e :a -e '/\\$/N; s/\\\n//; ta' \ -# -e 's/^[ \t]*//;s/[ \t]*$//' \ -# -e 's/\\=/=/' | LC_ALL=C $SORT > $OTHER_FILE.cleaned # Filter out date string differences. - TMP=$(LC_ALL=C $DIFF $OTHER_FILE.cleaned $THIS_FILE | \ + TMP=$(LC_ALL=C $DIFF $OTHER_FILE $THIS_FILE | \ $GREP '^[<>]' | \ - $SED -e '/[<>].*[0-9]\{4\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}-b[0-9]\{2\}.*/d') + $SED -e '/[<>].*[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}-[0-9]\{6\}.*/d') fi if test "x$SUFFIX" = "xhtml"; then # Some javadoc versions do not put quotes around font size @@ -306,7 +295,8 @@ compare_general_files() { ! -name "*.lib" ! -name "*.war" ! -name "JavaControlPanel" \ ! -name "*.obj" ! -name "*.o" ! -name "JavaControlPanelHelper" \ ! -name "JavaUpdater" ! -name "JavaWSApplicationStub" \ - ! -name "jspawnhelper" ! -name "*.a" \ + ! -name "jspawnhelper" ! -name "JavawsLauncher" ! -name "*.a" \ + ! -name "finish_installation" ! -name "Sparkle" \ | $GREP -v "./bin/" | $SORT | $FILTER) echo Other files with binary differences... @@ -320,29 +310,28 @@ compare_general_files() { THIS_FILE=$WORK_DIR/$f.this $MKDIR -p $(dirname $OTHER_FILE) $MKDIR -p $(dirname $THIS_FILE) - $CAT $OTHER_DIR/$f | $SED 's/\:[0-9a-f]\{12,12\}/:CHANGE/g' > $OTHER_FILE - $CAT $THIS_DIR/$f | $SED 's/\:[0-9a-f]\{12,12\}/:CHANGE/g' > $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' + " + $CAT $OTHER_DIR/$f | eval "$RELEASE_FILTER" > $OTHER_FILE + $CAT $THIS_DIR/$f | eval "$RELEASE_FILTER" > $THIS_FILE elif [ "x$SUFFIX" = "xhtml" ]; then # Ignore time stamps in docs files OTHER_FILE=$WORK_DIR/$f.other THIS_FILE=$WORK_DIR/$f.this - $MKDIR -p $(dirname $OTHER_FILE) - $MKDIR -p $(dirname $THIS_FILE) + $MKDIR -p $(dirname $OTHER_FILE) $(dirname $THIS_FILE) + # Older versions of compare might have left soft links with + # these names. + $RM $OTHER_FILE $THIS_FILE #Note that | doesn't work on mac sed. - $CAT $OTHER_DIR/$f | $SED -e 's/\(-- Generated by javadoc \).*\( --\)/\1(removed)\2/' \ - -e 's/\(\)/\1(removed)\2/' \ - -e 's/[A-Z][a-z]*, [A-Z][a-z]* [0-9][0-9]*, [12][0-9]* [0-9][0-9:]* [AMP]\{2,2\} [A-Z][A-Z]*/(removed)/' \ - -e 's/[A-Z][a-z]* [A-Z][a-z]* [0-9][0-9] [0-9][0-9:]* [A-Z][A-Z]* [12][0-9]*/(removed)/' \ - -e 's/^\( from \).*\(\.idl\)$/\1(removed)\2/' \ - -e 's/^\(.*\)\( o'"'"'clock \)\([A-Z][A-Z][A-Z]\)/(removed)\2(removed)/' \ - > $OTHER_FILE - $CAT $THIS_DIR/$f | $SED -e 's/\(-- Generated by javadoc \).*\( --\)/\1(removed)\2/' \ - -e 's/\(\)/\1(removed)\2/' \ - -e 's/[A-Z][a-z]*, [A-Z][a-z]* [0-9][0-9]*, [12][0-9]* [0-9][0-9:]* [AMP]\{2,2\} [A-Z][A-Z]*/(removed)/' \ - -e 's/[A-Z][a-z]* [A-Z][a-z]* [0-9][0-9] [0-9][0-9:]* [A-Z][A-Z]* [12][0-9]*/(removed)/' \ - -e 's/^\( from \).*\(\.idl\)$/\1(removed)\2/' \ - -e 's/^\(.*\)\( o'"'"'clock \)\([A-Z][A-Z][A-Z]\)/(removed)\2(removed)/' \ - > $THIS_FILE + HTML_FILTER="$SED \ + -e 's/[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}-[0-9]\{6\}//g' \ + -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 else OTHER_FILE=$OTHER_DIR/$f THIS_FILE=$THIS_DIR/$f @@ -605,11 +594,17 @@ compare_bin_file() { OTHER_FILE_BASE=${OTHER_FILE_BASE/.exe/} OTHER_FILE_BASE=${OTHER_FILE_BASE/.cpl/} DIZ_NAME=$(basename $OTHER_FILE_BASE).diz - # java.exe and java.dll diz files will have the same name. Have to - # make sure java.exe gets the right one. This is only needed for - # OTHER since in the new build, all pdb files are left around. - if [ "$NAME" = "java.exe" ] && [ -f "$OTHER/tmp/java/java/obj64/java.diz" ]; then - OTHER_DIZ_FILE="$OTHER/tmp/java/java/obj64/java.diz" + # Some .exe files have the same name as a .dll file. Make sure the exe + # files get the right debug symbols. + if [ "$NAME" = "java.exe" ] \ + && [ -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" + 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" elif [ -f "${OTHER_FILE_BASE}.diz" ]; then OTHER_DIZ_FILE=${OTHER_FILE_BASE}.diz else @@ -627,9 +622,22 @@ compare_bin_file() { (cd $FILE_WORK_DIR/other ; $UNARCHIVE -o $OTHER_DIZ_FILE) export _NT_SYMBOL_PATH="$FILE_WORK_DIR/other" fi + THIS_FILE_BASE=${THIS_FILE/.dll/} THIS_FILE_BASE=${THIS_FILE_BASE/.exe/} - if [ -f "${THIS_FILE/.dll/}.diz" ]; then + THIS_FILE_BASE=${THIS_FILE_BASE/.cpl/} + # Some .exe files have the same name as a .dll file. Make sure the exe + # files get the right debug symbols. + if [ "$NAME" = "java.exe" ] \ + && [ -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" + 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" + elif [ -f "${THIS_FILE_BASE}.diz" ]; then THIS_DIZ_FILE=${THIS_FILE/.dll/}.diz else THIS_DIZ_FILE="$($FIND $THIS_DIR -name $DIZ_NAME | $SED 1q)" @@ -856,8 +864,15 @@ compare_bin_file() { if [ -z "$DIS_DIFF_FILTER" ]; then DIS_DIFF_FILTER="$GREP -v ' # .* <.*>$' | $SED -r -e 's/(\b|x)([0-9a-fA-F]+)(\b|:|>)/X/g'" fi - $DIS_CMD $OTHER_FILE | $GREP -v $NAME | eval "$DIS_DIFF_FILTER" > $WORK_FILE_BASE.dis.other 2>&1 - $DIS_CMD $THIS_FILE | $GREP -v $NAME | eval "$DIS_DIFF_FILTER" > $WORK_FILE_BASE.dis.this 2>&1 + if [ "$OPENJDK_TARGET_OS" = "windows" ]; then + DIS_GREP_ARG=-a + else + 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 + $DIS_CMD $THIS_FILE | $GREP $DIS_GREP_ARG -v $NAME \ + | eval "$DIS_DIFF_FILTER" > $WORK_FILE_BASE.dis.this 2>&1 LC_ALL=C $DIFF $WORK_FILE_BASE.dis.other $WORK_FILE_BASE.dis.this > $WORK_FILE_BASE.dis.diff @@ -974,6 +989,15 @@ compare_all_execs() { -o -name '*.jar' -o -name '*.diz' -o -name 'jcontrol' -o -name '*.properties' \ -o -name '*.data' -o -name '*.bfc' -o -name '*.src' -o -name '*.txt' \ -o -name '*.cfg' -o -name 'meta-index' -o -name '*.properties.ja' \ + -o -name '*.xml' -o -name '*.html' -o -name '*.png' -o -name 'README' \ + -o -name '*.zip' -o -name '*.jimage' -o -name '*.java' -o -name '*.mf' \ + -o -name '*.jpg' -o -name '*.wsdl' -o -name '*.js' -o -name '*.sh' \ + -o -name '*.bat' -o -name '*LICENSE' -o -name '*.d' -o -name '*store' \ + -o -name 'blacklist' -o -name '*certs' -o -name '*.ttf' \ + -o -name '*.jfc' -o -name '*.dat' -o -name 'release' -o -name '*.dir'\ + -o -name '*.sym' -o -name '*.idl' -o -name '*.h' -o -name '*.access' \ + -o -name '*.template' -o -name '*.policy' -o -name '*.security' \ + -o -name 'COPYRIGHT' -o -name '*.1' \ -o -name 'classlist' \) | $SORT | $FILTER) fi @@ -1278,6 +1302,15 @@ if [ "$SKIP_DEFAULT" != "true" ]; then echo " $OTHER_DEPLOY_APPLET_PLUGIN_DIR" fi + if [ -d "$THIS/install/sparkle/Sparkle.framework" ] \ + && [ -d "$OTHER/install/sparkle/Sparkle.framework" ]; then + THIS_SPARKLE_DIR="$THIS/install/sparkle/Sparkle.framework" + OTHER_SPARKLE_DIR="$OTHER/install/sparkle/Sparkle.framework" + echo "Also comparing install sparkle framework" + echo " $THIS_SPARKLE_DIR" + echo " $OTHER_SPARKLE_DIR" + fi + if [ -d "$OTHER/images" ]; then OTHER_SEC_DIR="$OTHER/images" else @@ -1298,9 +1331,9 @@ if [ "$SKIP_DEFAULT" != "true" ]; then THIS_JGSS_WINDOWS_BIN="$THIS_SEC_DIR/$JGSS_WINDOWS_BIN" fi - if [ -d "$THIS/docs" ] && [ -d "$OTHER/docs" ]; then - THIS_DOCS="$THIS/docs" - OTHER_DOCS="$OTHER/docs" + if [ -d "$THIS/images/docs" ] && [ -d "$OTHER/images/docs" ]; then + THIS_DOCS="$THIS/images/docs" + OTHER_DOCS="$OTHER/images/docs" echo "Also comparing docs" else echo "WARNING! Docs haven't been built and won't be compared." @@ -1314,23 +1347,23 @@ if [ "$CMP_NAMES" = "true" ]; then if [ -n "$THIS_JDK" ] && [ -n "$OTHER_JDK" ]; then echo -n "JDK " compare_dirs $THIS_JDK $OTHER_JDK $COMPARE_ROOT/jdk - echo -n "JRE " + echo -n "JRE " compare_dirs $THIS_JRE $OTHER_JRE $COMPARE_ROOT/jre echo -n "JDK " compare_files $THIS_JDK $OTHER_JDK $COMPARE_ROOT/jdk - echo -n "JRE " + echo -n "JRE " compare_files $THIS_JRE $OTHER_JRE $COMPARE_ROOT/jre fi if [ -n "$THIS_JDK_BUNDLE" ] && [ -n "$OTHER_JDK_BUNDLE" ]; then echo -n "JDK Bundle " compare_dirs $THIS_JDK_BUNDLE $OTHER_JDK_BUNDLE $COMPARE_ROOT/jdk-bundle - echo -n "JRE Bundle " + echo -n "JRE Bundle " compare_dirs $THIS_JRE_BUNDLE $OTHER_JRE_BUNDLE $COMPARE_ROOT/jre-bundle echo -n "JDK Bundle " compare_files $THIS_JDK_BUNDLE $OTHER_JDK_BUNDLE $COMPARE_ROOT/jdk-bundle - echo -n "JRE Bundle " + echo -n "JRE Bundle " compare_files $THIS_JRE_BUNDLE $OTHER_JRE_BUNDLE $COMPARE_ROOT/jre-bundle fi if [ -n "$THIS_DOCS" ] && [ -n "$OTHER_DOCS" ]; then @@ -1349,13 +1382,19 @@ if [ "$CMP_NAMES" = "true" ]; then echo -n "JavaAppletPlugin " compare_files $THIS_DEPLOY_APPLET_PLUGIN_DIR $OTHER_DEPLOY_APPLET_PLUGIN_DIR $COMPARE_ROOT/plugin fi + if [ -n "$THIS_SPARKLE_DIR" ] && [ -n "$OTHER_SPARKLE_DIR" ]; then + echo -n "Sparkle.framework " + compare_dirs $THIS_SPARKLE_DIR $OTHER_SPARKLE_DIR $COMPARE_ROOT/sparkle + echo -n "Sparkle.framework " + compare_files $THIS_SPARKLE_DIR $OTHER_SPARKLE_DIR $COMPARE_ROOT/sparkle + fi fi if [ "$CMP_PERMS" = "true" ]; then if [ -n "$THIS_JDK" ] && [ -n "$OTHER_JDK" ]; then echo -n "JDK " compare_permissions $THIS_JDK $OTHER_JDK $COMPARE_ROOT/jdk - echo -n "JRE " + echo -n "JRE " compare_permissions $THIS_JRE $OTHER_JRE $COMPARE_ROOT/jre fi if [ -n "$THIS_BASE_DIR" ] && [ -n "$OTHER_BASE_DIR" ]; then @@ -1365,19 +1404,23 @@ if [ "$CMP_PERMS" = "true" ]; then echo -n "JavaAppletPlugin " compare_permissions $THIS_DEPLOY_APPLET_PLUGIN_DIR $OTHER_DEPLOY_APPLET_PLUGIN_DIR $COMPARE_ROOT/plugin fi + if [ -n "$THIS_SPARKLE_DIR" ] && [ -n "$OTHER_SPARKLE_DIR" ]; then + echo -n "Sparkle.framework " + compare_permissions $THIS_SPARKLE_DIR $OTHER_SPARKLE_DIR $COMPARE_ROOT/sparkle + fi fi if [ "$CMP_TYPES" = "true" ]; then if [ -n "$THIS_JDK" ] && [ -n "$OTHER_JDK" ]; then echo -n "JDK " compare_file_types $THIS_JDK $OTHER_JDK $COMPARE_ROOT/jdk - echo -n "JRE " + echo -n "JRE " compare_file_types $THIS_JRE $OTHER_JRE $COMPARE_ROOT/jre fi if [ -n "$THIS_JDK_BUNDLE" ] && [ -n "$OTHER_JDK_BUNDLE" ]; then echo -n "JDK Bundle " compare_file_types $THIS_JDK_BUNDLE $OTHER_JDK_BUNDLE $COMPARE_ROOT/jdk-bundle - echo -n "JRE Bundle " + echo -n "JRE Bundle " compare_file_types $THIS_JRE_BUNDLE $OTHER_JRE_BUNDLE $COMPARE_ROOT/jre-bundle fi if [ -n "$THIS_BASE_DIR" ] && [ -n "$OTHER_BASE_DIR" ]; then @@ -1387,19 +1430,23 @@ if [ "$CMP_TYPES" = "true" ]; then echo -n "JavaAppletPlugin " compare_file_types $THIS_DEPLOY_APPLET_PLUGIN_DIR $OTHER_DEPLOY_APPLET_PLUGIN_DIR $COMPARE_ROOT/plugin fi + if [ -n "$THIS_SPARKLE_DIR" ] && [ -n "$OTHER_SPARKLE_DIR" ]; then + echo -n "Sparkle.framework " + compare_file_types $THIS_SPARKLE_DIR $OTHER_SPARKLE_DIR $COMPARE_ROOT/sparkle + fi fi if [ "$CMP_GENERAL" = "true" ]; then if [ -n "$THIS_JDK" ] && [ -n "$OTHER_JDK" ]; then echo -n "JDK " compare_general_files $THIS_JDK $OTHER_JDK $COMPARE_ROOT/jdk - echo -n "JRE " + echo -n "JRE " compare_general_files $THIS_JRE $OTHER_JRE $COMPARE_ROOT/jre fi if [ -n "$THIS_JDK_BUNDLE" ] && [ -n "$OTHER_JDK_BUNDLE" ]; then echo -n "JDK Bundle " compare_general_files $THIS_JDK_BUNDLE $OTHER_JDK_BUNDLE $COMPARE_ROOT/jdk-bundle - echo -n "JRE Bundle " + echo -n "JRE Bundle " compare_general_files $THIS_JRE_BUNDLE $OTHER_JRE_BUNDLE $COMPARE_ROOT/jre-bundle fi if [ -n "$THIS_DOCS" ] && [ -n "$OTHER_DOCS" ]; then @@ -1413,6 +1460,10 @@ if [ "$CMP_GENERAL" = "true" ]; then echo -n "JavaAppletPlugin " compare_general_files $THIS_DEPLOY_APPLET_PLUGIN_DIR $OTHER_DEPLOY_APPLET_PLUGIN_DIR $COMPARE_ROOT/plugin fi + if [ -n "$THIS_SPARKLE_DIR" ] && [ -n "$OTHER_SPARKLE_DIR" ]; then + echo -n "Sparkle.framework " + compare_general_files $THIS_SPARKLE_DIR $OTHER_SPARKLE_DIR $COMPARE_ROOT/sparkle + fi fi if [ "$CMP_ZIPS" = "true" ]; then @@ -1465,7 +1516,7 @@ if [ "$CMP_LIBS" = "true" ]; then echo -n "JDK " compare_all_libs $THIS_JDK $OTHER_JDK $COMPARE_ROOT/jdk if [ "$OPENJDK_TARGET_OS" = "macosx" ]; then - echo -n "JRE " + echo -n "JRE " compare_all_libs $THIS_JRE $OTHER_JRE $COMPARE_ROOT/jre fi fi @@ -1476,13 +1527,17 @@ if [ "$CMP_LIBS" = "true" ]; then echo -n "JavaAppletPlugin " compare_all_libs $THIS_DEPLOY_APPLET_PLUGIN_DIR $OTHER_DEPLOY_APPLET_PLUGIN_DIR $COMPARE_ROOT/plugin fi + if [ -n "$THIS_SPARKLE_DIR" ] && [ -n "$OTHER_SPARKLE_DIR" ]; then + echo -n "Sparkle.framework " + compare_all_libs $THIS_SPARKLE_DIR $OTHER_SPARKLE_DIR $COMPARE_ROOT/sparkle + fi fi if [ "$CMP_EXECS" = "true" ]; then if [ -n "$THIS_JDK" ] && [ -n "$OTHER_JDK" ]; then compare_all_execs $THIS_JDK $OTHER_JDK $COMPARE_ROOT/jdk if [ "$OPENJDK_TARGET_OS" = "macosx" ]; then - echo -n "JRE " + echo -n "JRE " compare_all_execs $THIS_JRE $OTHER_JRE $COMPARE_ROOT/jre fi fi @@ -1493,6 +1548,10 @@ if [ "$CMP_EXECS" = "true" ]; then echo -n "JavaAppletPlugin " compare_all_execs $THIS_DEPLOY_APPLET_PLUGIN_DIR $OTHER_DEPLOY_APPLET_PLUGIN_DIR $COMPARE_ROOT/plugin fi + if [ -n "$THIS_SPARKLE_DIR" ] && [ -n "$OTHER_SPARKLE_DIR" ]; then + echo -n "Sparkle.framework " + compare_all_execs $THIS_SPARKLE_DIR $OTHER_SPARKLE_DIR $COMPARE_ROOT/sparkle + fi fi echo diff --git a/common/bin/compare_exceptions.sh.incl b/common/bin/compare_exceptions.sh.incl index 1ee38e29021..9bba20809e2 100644 --- a/common/bin/compare_exceptions.sh.incl +++ b/common/bin/compare_exceptions.sh.incl @@ -35,637 +35,579 @@ fi ########################################################################################## # Diff exceptions -if [ "$OPENJDK_TARGET_OS" = "linux" ] && [ "$OPENJDK_TARGET_CPU" = "x86" ]; then +if [ "$OPENJDK_TARGET_OS" = "linux" ]; then -STRIP_BEFORE_COMPARE=" -./demo/jvmti/compiledMethodLoad/lib/libcompiledMethodLoad.so -./demo/jvmti/gctest/lib/libgctest.so -./demo/jvmti/heapTracker/lib/libheapTracker.so -./demo/jvmti/heapViewer/lib/libheapViewer.so -./demo/jvmti/minst/lib/libminst.so -./demo/jvmti/mtrace/lib/libmtrace.so -./demo/jvmti/versionCheck/lib/libversionCheck.so -./demo/jvmti/waiters/lib/libwaiters.so -" + STRIP_BEFORE_COMPARE=" + ./demo/jvmti/compiledMethodLoad/lib/libcompiledMethodLoad.so + ./demo/jvmti/gctest/lib/libgctest.so + ./demo/jvmti/heapTracker/lib/libheapTracker.so + ./demo/jvmti/heapViewer/lib/libheapViewer.so + ./demo/jvmti/minst/lib/libminst.so + ./demo/jvmti/mtrace/lib/libmtrace.so + ./demo/jvmti/versionCheck/lib/libversionCheck.so + ./demo/jvmti/waiters/lib/libwaiters.so + " -ACCEPTED_BIN_DIFF=" -./demo/jvmti/compiledMethodLoad/lib/libcompiledMethodLoad.so -./demo/jvmti/gctest/lib/libgctest.so -./demo/jvmti/heapTracker/lib/libheapTracker.so -./demo/jvmti/heapViewer/lib/libheapViewer.so -./demo/jvmti/minst/lib/libminst.so -./demo/jvmti/mtrace/lib/libmtrace.so -./demo/jvmti/versionCheck/lib/libversionCheck.so -./demo/jvmti/waiters/lib/libwaiters.so -./lib/i386/client/libjsig.so -./lib/i386/client/libjvm.so -./lib/i386/libattach.so -./lib/i386/libdt_socket.so -./lib/i386/libinstrument.so -./lib/i386/libjsdt.so -./lib/i386/libjsig.so -./lib/i386/libmanagement.so -./lib/i386/libnet.so -./lib/i386/libnpt.so -./lib/i386/libverify.so -./lib/i386/server/libjsig.so -./lib/i386/server/libjvm.so -./bin/appletviewer -./bin/idlj -./bin/jar -./bin/jarsigner -./bin/java -./bin/javac -./bin/javadoc -./bin/javah -./bin/javap -./bin/jdeps -./bin/jcmd -./bin/jconsole -./bin/jdb -./bin/jimage -./bin/jinfo -./bin/jjs -./bin/jmap -./bin/jps -./bin/jrunscript -./bin/jsadebugd -./bin/jstack -./bin/jstat -./bin/jstatd -./bin/keytool -./bin/orbd -./bin/pack200 -./bin/policytool -./bin/rmic -./bin/rmid -./bin/rmiregistry -./bin/schemagen -./bin/serialver -./bin/servertool -./bin/tnameserv -./bin/wsgen -./bin/wsimport -./bin/xjc -" + ACCEPTED_BIN_DIFF=" + ./demo/jvmti/compiledMethodLoad/lib/libcompiledMethodLoad.so + ./demo/jvmti/gctest/lib/libgctest.so + ./demo/jvmti/heapTracker/lib/libheapTracker.so + ./demo/jvmti/heapViewer/lib/libheapViewer.so + ./demo/jvmti/minst/lib/libminst.so + ./demo/jvmti/mtrace/lib/libmtrace.so + ./demo/jvmti/versionCheck/lib/libversionCheck.so + ./demo/jvmti/waiters/lib/libwaiters.so + ./lib$OPENJDK_TARGET_CPU_LIBDIR/client/libjsig.so + ./lib$OPENJDK_TARGET_CPU_LIBDIR/client/libjvm.so + ./lib$OPENJDK_TARGET_CPU_LIBDIR/libattach.so + ./lib$OPENJDK_TARGET_CPU_LIBDIR/libdt_socket.so + ./lib$OPENJDK_TARGET_CPU_LIBDIR/libinstrument.so + ./lib$OPENJDK_TARGET_CPU_LIBDIR/libjsdt.so + ./lib$OPENJDK_TARGET_CPU_LIBDIR/libjsig.so + ./lib$OPENJDK_TARGET_CPU_LIBDIR/libmanagement.so + ./lib$OPENJDK_TARGET_CPU_LIBDIR/libnet.so + ./lib$OPENJDK_TARGET_CPU_LIBDIR/libnpt.so + ./lib$OPENJDK_TARGET_CPU_LIBDIR/libverify.so + ./lib$OPENJDK_TARGET_CPU_LIBDIR/minimal/libjsig.so + ./lib$OPENJDK_TARGET_CPU_LIBDIR/minimal/libjvm.so + ./lib$OPENJDK_TARGET_CPU_LIBDIR/server/libjsig.so + ./lib$OPENJDK_TARGET_CPU_LIBDIR/server/libjvm.so + ./bin/appletviewer + ./bin/idlj + ./bin/jar + ./bin/jarsigner + ./bin/java + ./bin/javac + ./bin/javadoc + ./bin/javah + ./bin/javap + ./bin/jdeps + ./bin/jcmd + ./bin/jconsole + ./bin/jdb + ./bin/jhsdb + ./bin/jimage + ./bin/jinfo + ./bin/jjs + ./bin/jmap + ./bin/jps + ./bin/jrunscript + ./bin/jsadebugd + ./bin/jshell + ./bin/jstack + ./bin/jstat + ./bin/jstatd + ./bin/keytool + ./bin/orbd + ./bin/pack200 + ./bin/policytool + ./bin/rmic + ./bin/rmid + ./bin/rmiregistry + ./bin/schemagen + ./bin/serialver + ./bin/servertool + ./bin/tnameserv + ./bin/wsgen + ./bin/wsimport + ./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/i386/server/libjvm.so -" -KNOWN_DIS_DIFF=" -./lib/i386/server/libjvm.so -" -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'" -fi - -if [ "$OPENJDK_TARGET_OS" = "linux" ] && [ "$OPENJDK_TARGET_CPU" = "x86_64" ]; then - -STRIP_BEFORE_COMPARE=" -./demo/jvmti/compiledMethodLoad/lib/libcompiledMethodLoad.so -./demo/jvmti/gctest/lib/libgctest.so -./demo/jvmti/heapTracker/lib/libheapTracker.so -./demo/jvmti/heapViewer/lib/libheapViewer.so -./demo/jvmti/minst/lib/libminst.so -./demo/jvmti/mtrace/lib/libmtrace.so -./demo/jvmti/versionCheck/lib/libversionCheck.so -./demo/jvmti/waiters/lib/libwaiters.so -" - -ACCEPTED_BIN_DIFF=" -./demo/jvmti/compiledMethodLoad/lib/libcompiledMethodLoad.so -./demo/jvmti/gctest/lib/libgctest.so -./demo/jvmti/heapTracker/lib/libheapTracker.so -./demo/jvmti/heapViewer/lib/libheapViewer.so -./demo/jvmti/minst/lib/libminst.so -./demo/jvmti/mtrace/lib/libmtrace.so -./demo/jvmti/versionCheck/lib/libversionCheck.so -./demo/jvmti/waiters/lib/libwaiters.so -./lib/amd64/libattach.so -./lib/amd64/libdt_socket.so -./lib/amd64/libinstrument.so -./lib/amd64/libjsdt.so -./lib/amd64/libjsig.so -./lib/amd64/libmanagement.so -./lib/amd64/libnet.so -./lib/amd64/libnpt.so -./lib/amd64/libsaproc.so -./lib/amd64/libverify.so -./lib/amd64/server/libjsig.so -./lib/amd64/server/libjvm.so -./bin/appletviewer -./bin/idlj -./bin/jar -./bin/jarsigner -./bin/java -./bin/javac -./bin/javadoc -./bin/javah -./bin/javap -./bin/jdeps -./bin/jcmd -./bin/jconsole -./bin/jdb -./bin/jimage -./bin/jinfo -./bin/jjs -./bin/jmap -./bin/jps -./bin/jrunscript -./bin/jsadebugd -./bin/jstack -./bin/jstat -./bin/jstatd -./bin/keytool -./bin/orbd -./bin/pack200 -./bin/policytool -./bin/rmic -./bin/rmid -./bin/rmiregistry -./bin/schemagen -./bin/serialver -./bin/servertool -./bin/tnameserv -./bin/wsgen -./bin/wsimport -./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/amd64/server/libjvm.so -" + # 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" = "x86" ]; then + KNOWN_DIS_DIFF=" + ./lib$OPENJDK_TARGET_CPU_LIBDIR/server/libjvm.so + " + 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'" + fi fi if [ "$OPENJDK_TARGET_OS" = "solaris" ] && [ "$OPENJDK_TARGET_CPU" = "x86_64" ]; then -STRIP_BEFORE_COMPARE=" -./demo/jni/Poller/lib/libPoller.so -./demo/jvmti/compiledMethodLoad/lib/libcompiledMethodLoad.so -./demo/jvmti/gctest/lib/libgctest.so -./demo/jvmti/heapTracker/lib/libheapTracker.so -./demo/jvmti/heapViewer/lib/libheapViewer.so -./demo/jvmti/minst/lib/libminst.so -./demo/jvmti/mtrace/lib/libmtrace.so -./demo/jvmti/versionCheck/lib/libversionCheck.so -./demo/jvmti/waiters/lib/libwaiters.so -" + STRIP_BEFORE_COMPARE=" + ./demo/jni/Poller/lib/libPoller.so + ./demo/jvmti/compiledMethodLoad/lib/libcompiledMethodLoad.so + ./demo/jvmti/gctest/lib/libgctest.so + ./demo/jvmti/heapTracker/lib/libheapTracker.so + ./demo/jvmti/heapViewer/lib/libheapViewer.so + ./demo/jvmti/minst/lib/libminst.so + ./demo/jvmti/mtrace/lib/libmtrace.so + ./demo/jvmti/versionCheck/lib/libversionCheck.so + ./demo/jvmti/waiters/lib/libwaiters.so + " -SORT_SYMBOLS=" -./lib/amd64/server/libjvm.so -./lib/amd64/libsaproc.so -" + SORT_SYMBOLS=" + ./lib/amd64/server/libjvm.so + ./lib/amd64/libfontmanager.so + ./lib/amd64/libjimage.so + ./lib/amd64/libsaproc.so + ./lib/amd64/libunpack.so + ./bin/unpack200 + " -SKIP_BIN_DIFF="true" + SKIP_BIN_DIFF="true" -ACCEPTED_SMALL_SIZE_DIFF=" -./demo/jni/Poller/lib/libPoller.so -./demo/jvmti/compiledMethodLoad/lib/libcompiledMethodLoad.so -./demo/jvmti/gctest/lib/libgctest.so -./demo/jvmti/heapTracker/lib/libheapTracker.so -./demo/jvmti/heapViewer/lib/libheapViewer.so -./demo/jvmti/minst/lib/libminst.so -./demo/jvmti/mtrace/lib/libmtrace.so -./demo/jvmti/versionCheck/lib/libversionCheck.so -./demo/jvmti/waiters/lib/libwaiters.so -./lib/amd64/jli/libjli.so -./lib/amd64/jspawnhelper -./lib/amd64/libJdbcOdbc.so -./lib/amd64/libattach.so -./lib/amd64/libawt.so -./lib/amd64/libawt_headless.so -./lib/amd64/libawt_xawt.so -./lib/amd64/libdcpr.so -./lib/amd64/libdt_socket.so -./lib/amd64/libfontmanager.so -./lib/amd64/libinstrument.so -./lib/amd64/libj2gss.so -./lib/amd64/libj2pcsc.so -./lib/amd64/libj2pkcs11.so -./lib/amd64/libj2ucrypto.so -./lib/amd64/libjaas_unix.so -./lib/amd64/libjava.so -./lib/amd64/libjawt.so -./lib/amd64/libjdwp.so -./lib/amd64/libjfr.so -./lib/amd64/libjpeg.so -./lib/amd64/libjsdt.so -./lib/amd64/libjsound.so -./lib/amd64/libkcms.so -./lib/amd64/liblcms.so -./lib/amd64/libmanagement.so -./lib/amd64/libmlib_image.so -./lib/amd64/libnet.so -./lib/amd64/libnio.so -./lib/amd64/libnpt.so -./lib/amd64/libsctp.so -./lib/amd64/libsplashscreen.so -./lib/amd64/libsunec.so -./lib/amd64/libsunwjdga.so -./lib/amd64/libt2k.so -./lib/amd64/libunpack.so -./lib/amd64/libverify.so -./lib/amd64/libzip.so -./lib/amd64/server/64/libjvm_db.so -./lib/amd64/server/64/libjvm_dtrace.so -./lib/amd64/server/libjvm.so -./lib/amd64/server/libjvm_db.so -./lib/amd64/server/libjvm_dtrace.so -./bin/appletviewer -./bin/idlj -./bin/jar -./bin/jarsigner -./bin/java -./bin/javac -./bin/javadoc -./bin/javah -./bin/javap -./bin/jdeps -./bin/jcmd -./bin/jconsole -./bin/jdb -./bin/jimage -./bin/jinfo -./bin/jjs -./bin/jmap -./bin/jps -./bin/jrunscript -./bin/jsadebugd -./bin/jstack -./bin/jstat -./bin/jstatd -./bin/keytool -./bin/orbd -./bin/pack200 -./bin/policytool -./bin/rmic -./bin/rmid -./bin/rmiregistry -./bin/schemagen -./bin/serialver -./bin/servertool -./bin/tnameserv -./bin/unpack200 -./bin/wsgen -./bin/wsimport -./bin/xjc -" + ACCEPTED_SMALL_SIZE_DIFF=" + ./demo/jni/Poller/lib/libPoller.so + ./demo/jvmti/compiledMethodLoad/lib/libcompiledMethodLoad.so + ./demo/jvmti/gctest/lib/libgctest.so + ./demo/jvmti/heapTracker/lib/libheapTracker.so + ./demo/jvmti/heapViewer/lib/libheapViewer.so + ./demo/jvmti/minst/lib/libminst.so + ./demo/jvmti/mtrace/lib/libmtrace.so + ./demo/jvmti/versionCheck/lib/libversionCheck.so + ./demo/jvmti/waiters/lib/libwaiters.so + ./lib/amd64/jli/libjli.so + ./lib/amd64/jspawnhelper + ./lib/amd64/libJdbcOdbc.so + ./lib/amd64/libattach.so + ./lib/amd64/libawt.so + ./lib/amd64/libawt_headless.so + ./lib/amd64/libawt_xawt.so + ./lib/amd64/libdcpr.so + ./lib/amd64/libdt_socket.so + ./lib/amd64/libfontmanager.so + ./lib/amd64/libinstrument.so + ./lib/amd64/libj2gss.so + ./lib/amd64/libj2pcsc.so + ./lib/amd64/libj2pkcs11.so + ./lib/amd64/libj2ucrypto.so + ./lib/amd64/libjaas_unix.so + ./lib/amd64/libjava.so + ./lib/amd64/libjawt.so + ./lib/amd64/libjdwp.so + ./lib/amd64/libjfr.so + ./lib/amd64/libjpeg.so + ./lib/amd64/libjsdt.so + ./lib/amd64/libjsound.so + ./lib/amd64/libkcms.so + ./lib/amd64/liblcms.so + ./lib/amd64/libmanagement.so + ./lib/amd64/libmlib_image.so + ./lib/amd64/libnet.so + ./lib/amd64/libnio.so + ./lib/amd64/libnpt.so + ./lib/amd64/libsctp.so + ./lib/amd64/libsplashscreen.so + ./lib/amd64/libsunec.so + ./lib/amd64/libsunwjdga.so + ./lib/amd64/libt2k.so + ./lib/amd64/libunpack.so + ./lib/amd64/libverify.so + ./lib/amd64/libzip.so + ./lib/amd64/server/64/libjvm_db.so + ./lib/amd64/server/64/libjvm_dtrace.so + ./lib/amd64/server/libjvm.so + ./lib/amd64/server/libjvm_db.so + ./lib/amd64/server/libjvm_dtrace.so + ./bin/appletviewer + ./bin/idlj + ./bin/jar + ./bin/jarsigner + ./bin/java + ./bin/javac + ./bin/javadoc + ./bin/javah + ./bin/javap + ./bin/jdeps + ./bin/jcmd + ./bin/jconsole + ./bin/jdb + ./bin/jimage + ./bin/jinfo + ./bin/jjs + ./bin/jmap + ./bin/jps + ./bin/jrunscript + ./bin/jsadebugd + ./bin/jstack + ./bin/jstat + ./bin/jstatd + ./bin/keytool + ./bin/orbd + ./bin/pack200 + ./bin/policytool + ./bin/rmic + ./bin/rmid + ./bin/rmiregistry + ./bin/schemagen + ./bin/serialver + ./bin/servertool + ./bin/tnameserv + ./bin/unpack200 + ./bin/wsgen + ./bin/wsimport + ./bin/xjc + " -SKIP_FULLDUMP_DIFF="true" + SKIP_FULLDUMP_DIFF="true" -# Filter random C++ symbol strings. -# Some numbers differ randomly. -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'" + # Filter random C++ symbol strings. + # Some numbers differ randomly. + 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'" fi if [ "$OPENJDK_TARGET_OS" = "solaris" ] && [ "$OPENJDK_TARGET_CPU" = "sparcv9" ]; then -STRIP_BEFORE_COMPARE=" -./demo/jni/Poller/lib/libPoller.so -./demo/jvmti/compiledMethodLoad/lib/libcompiledMethodLoad.so -./demo/jvmti/gctest/lib/libgctest.so -./demo/jvmti/heapTracker/lib/libheapTracker.so -./demo/jvmti/heapViewer/lib/libheapViewer.so -./demo/jvmti/minst/lib/libminst.so -./demo/jvmti/mtrace/lib/libmtrace.so -./demo/jvmti/versionCheck/lib/libversionCheck.so -./demo/jvmti/waiters/lib/libwaiters.so -" + STRIP_BEFORE_COMPARE=" + ./demo/jni/Poller/lib/libPoller.so + ./demo/jvmti/compiledMethodLoad/lib/libcompiledMethodLoad.so + ./demo/jvmti/gctest/lib/libgctest.so + ./demo/jvmti/heapTracker/lib/libheapTracker.so + ./demo/jvmti/heapViewer/lib/libheapViewer.so + ./demo/jvmti/minst/lib/libminst.so + ./demo/jvmti/mtrace/lib/libmtrace.so + ./demo/jvmti/versionCheck/lib/libversionCheck.so + ./demo/jvmti/waiters/lib/libwaiters.so + " -SORT_SYMBOLS=" -./demo/jvmti/waiters/lib/libwaiters.so -./lib/sparcv9/libjsig.so -./lib/sparcv9/libsaproc.so -./lib/sparcv9/server/libjvm.so -./lib/sparcv9/server/libjvm_dtrace.so -" + SORT_SYMBOLS=" + ./demo/jvmti/waiters/lib/libwaiters.so + ./lib/sparcv9/libjsig.so + ./lib/sparcv9/libfontmanager.so + ./lib/sparcv9/libjimage.so + ./lib/sparcv9/libsaproc.so + ./lib/sparcv9/libunpack.so + ./lib/sparcv9/server/libjvm.so + ./lib/sparcv9/server/libjvm_dtrace.so + ./bin/unpack200 + " -SKIP_BIN_DIFF="true" + SKIP_BIN_DIFF="true" -ACCEPTED_SMALL_SIZE_DIFF=" -./demo/jni/Poller/lib/libPoller.so -./demo/jvmti/compiledMethodLoad/lib/libcompiledMethodLoad.so -./demo/jvmti/gctest/lib/libgctest.so -./demo/jvmti/heapTracker/lib/libheapTracker.so -./demo/jvmti/heapViewer/lib/libheapViewer.so -./demo/jvmti/minst/lib/libminst.so -./demo/jvmti/mtrace/lib/libmtrace.so -./demo/jvmti/versionCheck/lib/libversionCheck.so -./demo/jvmti/waiters/lib/libwaiters.so -./lib/sparcv9/client/libjvm.so -./lib/sparcv9/jli/libjli.so -./lib/sparcv9/jspawnhelper -./lib/sparcv9/libJdbcOdbc.so -./lib/sparcv9/libattach.so -./lib/sparcv9/libawt.so -./lib/sparcv9/libawt_headless.so -./lib/sparcv9/libawt_xawt.so -./lib/sparcv9/libdcpr.so -./lib/sparcv9/libdt_socket.so -./lib/sparcv9/libfontmanager.so -./lib/sparcv9/libinstrument.so -./lib/sparcv9/libj2gss.so -./lib/sparcv9/libj2pcsc.so -./lib/sparcv9/libj2pkcs11.so -./lib/sparcv9/libj2ucrypto.so -./lib/sparcv9/libjaas_unix.so -./lib/sparcv9/libjava.so -./lib/sparcv9/libjawt.so -./lib/sparcv9/libjdwp.so -./lib/sparcv9/libjfr.so -./lib/sparcv9/libjpeg.so -./lib/sparcv9/libjsdt.so -./lib/sparcv9/libjsound.so -./lib/sparcv9/libkcms.so -./lib/sparcv9/liblcms.so -./lib/sparcv9/libmanagement.so -./lib/sparcv9/libmlib_image.so -./lib/sparcv9/libmlib_image_v.so -./lib/sparcv9/libnet.so -./lib/sparcv9/libnio.so -./lib/sparcv9/libnpt.so -./lib/sparcv9/libsctp.so -./lib/sparcv9/libsplashscreen.so -./lib/sparcv9/libsunec.so -./lib/sparcv9/libsunwjdga.so -./lib/sparcv9/libt2k.so -./lib/sparcv9/libunpack.so -./lib/sparcv9/libverify.so -./lib/sparcv9/libzip.so -./lib/sparcv9/server/libjvm.so -./bin/appletviewer -./bin/idlj -./bin/jar -./bin/jarsigner -./bin/java -./bin/javac -./bin/javadoc -./bin/javah -./bin/javap -./bin/jdeps -./bin/jcmd -./bin/jconsole -./bin/jdb -./bin/jimage -./bin/jinfo -./bin/jjs -./bin/jmap -./bin/jps -./bin/jrunscript -./bin/jsadebugd -./bin/jstack -./bin/jstat -./bin/jstatd -./bin/keytool -./bin/orbd -./bin/pack200 -./bin/policytool -./bin/rmic -./bin/rmid -./bin/rmiregistry -./bin/schemagen -./bin/serialver -./bin/servertool -./bin/tnameserv -./bin/unpack200 -./bin/wsgen -./bin/wsimport -./bin/xjc -" + ACCEPTED_SMALL_SIZE_DIFF=" + ./demo/jni/Poller/lib/libPoller.so + ./demo/jvmti/compiledMethodLoad/lib/libcompiledMethodLoad.so + ./demo/jvmti/gctest/lib/libgctest.so + ./demo/jvmti/heapTracker/lib/libheapTracker.so + ./demo/jvmti/heapViewer/lib/libheapViewer.so + ./demo/jvmti/minst/lib/libminst.so + ./demo/jvmti/mtrace/lib/libmtrace.so + ./demo/jvmti/versionCheck/lib/libversionCheck.so + ./demo/jvmti/waiters/lib/libwaiters.so + ./lib/sparcv9/client/libjvm.so + ./lib/sparcv9/jli/libjli.so + ./lib/sparcv9/jspawnhelper + ./lib/sparcv9/libJdbcOdbc.so + ./lib/sparcv9/libattach.so + ./lib/sparcv9/libawt.so + ./lib/sparcv9/libawt_headless.so + ./lib/sparcv9/libawt_xawt.so + ./lib/sparcv9/libdcpr.so + ./lib/sparcv9/libdt_socket.so + ./lib/sparcv9/libfontmanager.so + ./lib/sparcv9/libinstrument.so + ./lib/sparcv9/libj2gss.so + ./lib/sparcv9/libj2pcsc.so + ./lib/sparcv9/libj2pkcs11.so + ./lib/sparcv9/libj2ucrypto.so + ./lib/sparcv9/libjaas_unix.so + ./lib/sparcv9/libjava.so + ./lib/sparcv9/libjawt.so + ./lib/sparcv9/libjdwp.so + ./lib/sparcv9/libjfr.so + ./lib/sparcv9/libjpeg.so + ./lib/sparcv9/libjsdt.so + ./lib/sparcv9/libjsound.so + ./lib/sparcv9/libkcms.so + ./lib/sparcv9/liblcms.so + ./lib/sparcv9/libmanagement.so + ./lib/sparcv9/libmlib_image.so + ./lib/sparcv9/libmlib_image_v.so + ./lib/sparcv9/libnet.so + ./lib/sparcv9/libnio.so + ./lib/sparcv9/libnpt.so + ./lib/sparcv9/libsctp.so + ./lib/sparcv9/libsplashscreen.so + ./lib/sparcv9/libsunec.so + ./lib/sparcv9/libsunwjdga.so + ./lib/sparcv9/libt2k.so + ./lib/sparcv9/libunpack.so + ./lib/sparcv9/libverify.so + ./lib/sparcv9/libzip.so + ./lib/sparcv9/server/libjvm.so + ./bin/appletviewer + ./bin/idlj + ./bin/jar + ./bin/jarsigner + ./bin/java + ./bin/javac + ./bin/javadoc + ./bin/javah + ./bin/javap + ./bin/jdeps + ./bin/jcmd + ./bin/jconsole + ./bin/jdb + ./bin/jimage + ./bin/jinfo + ./bin/jjs + ./bin/jmap + ./bin/jps + ./bin/jrunscript + ./bin/jsadebugd + ./bin/jstack + ./bin/jstat + ./bin/jstatd + ./bin/keytool + ./bin/orbd + ./bin/pack200 + ./bin/policytool + ./bin/rmic + ./bin/rmid + ./bin/rmiregistry + ./bin/schemagen + ./bin/serialver + ./bin/servertool + ./bin/tnameserv + ./bin/unpack200 + ./bin/wsgen + ./bin/wsimport + ./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/0x[0-9a-f]\{1,8\}//g' \ - -e 's/\! [0-9a-f]\{1,8\} /! /g'" + # 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/0x[0-9a-f]\{1,8\}//g' \ + -e 's/\! [0-9a-f]\{1,8\} /! /g'" -# 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 -" + # 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 + " -SKIP_FULLDUMP_DIFF="true" + SKIP_FULLDUMP_DIFF="true" fi if [ "$OPENJDK_TARGET_OS" = "windows" ]; then -ACCEPTED_JARZIP_CONTENTS=" -/modules_libs/java.security.jgss/w2k_lsa_auth.diz -/modules_libs/java.security.jgss/w2k_lsa_auth.dll -" + ACCEPTED_JARZIP_CONTENTS=" + /modules_libs/java.security.jgss/w2k_lsa_auth.diz + /modules_libs/java.security.jgss/w2k_lsa_auth.dll + " -# Probably should add all libs here -ACCEPTED_SMALL_SIZE_DIFF=" -./demo/jvmti/gctest/lib/gctest.dll -./demo/jvmti/heapTracker/lib/heapTracker.dll -./demo/jvmti/minst/lib/minst.dll -./bin/attach.dll -./bin/jsoundds.dll -./bin/server/jvm.dll -./bin/appletviewer.exe -./bin/idlj.exe -./bin/jar.exe -./bin/jarsigner.exe -./bin/java-rmi.exe -./bin/java.exe -./bin/javac.exe -./bin/javadoc.exe -./bin/javah.exe -./bin/javap.exe -./bin/jdeps.exe -./bin/javaw.exe -./bin/jcmd.exe -./bin/jconsole.exe -./bin/jdb.exe -./bin/jimage.exe -./bin/jinfo.exe -./bin/jjs.exe -./bin/jmap.exe -./bin/jps.exe -./bin/jrunscript.exe -./bin/jsadebugd.exe -./bin/jstack.exe -./bin/jstat.exe -./bin/jstatd.exe -./bin/keytool.exe -./bin/kinit.exe -./bin/klist.exe -./bin/ktab.exe -./bin/orbd.exe -./bin/pack200.exe -./bin/policytool.exe -./bin/rmic.exe -./bin/rmid.exe -./bin/rmiregistry.exe -./bin/schemagen.exe -./bin/serialver.exe -./bin/servertool.exe -./bin/tnameserv.exe -./bin/unpack200.exe -./bin/wsgen.exe -./bin/wsimport.exe -./bin/xjc.exe -" + # Probably should add all libs here + ACCEPTED_SMALL_SIZE_DIFF=" + ./demo/jvmti/gctest/lib/gctest.dll + ./demo/jvmti/heapTracker/lib/heapTracker.dll + ./demo/jvmti/minst/lib/minst.dll + ./bin/attach.dll + ./bin/jsoundds.dll + ./bin/server/jvm.dll + ./bin/appletviewer.exe + ./bin/idlj.exe + ./bin/jar.exe + ./bin/jarsigner.exe + ./bin/java-rmi.exe + ./bin/java.exe + ./bin/javac.exe + ./bin/javadoc.exe + ./bin/javah.exe + ./bin/javap.exe + ./bin/jdeps.exe + ./bin/javaw.exe + ./bin/jcmd.exe + ./bin/jconsole.exe + ./bin/jdb.exe + ./bin/jimage.exe + ./bin/jinfo.exe + ./bin/jjs.exe + ./bin/jmap.exe + ./bin/jps.exe + ./bin/jrunscript.exe + ./bin/jsadebugd.exe + ./bin/jstack.exe + ./bin/jstat.exe + ./bin/jstatd.exe + ./bin/keytool.exe + ./bin/kinit.exe + ./bin/klist.exe + ./bin/ktab.exe + ./bin/orbd.exe + ./bin/pack200.exe + ./bin/policytool.exe + ./bin/rmic.exe + ./bin/rmid.exe + ./bin/rmiregistry.exe + ./bin/schemagen.exe + ./bin/serialver.exe + ./bin/servertool.exe + ./bin/tnameserv.exe + ./bin/unpack200.exe + ./bin/wsgen.exe + ./bin/wsimport.exe + ./bin/xjc.exe + " -# jabswitch.exe is compiled and linked with incremental turned on in the old -# build. This makes no sense, so it's turned off in the new build. -ACCEPTED_SIZE_DIFF=" -./bin/jabswitch.exe -" -ACCEPTED_DIS_DIFF=" -./bin/jabswitch.exe -" + ACCEPTED_DIS_DIFF=" + ./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" + # 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" -SKIP_BIN_DIFF="true" -SKIP_FULLDUMP_DIFF="true" + SKIP_BIN_DIFF="true" + SKIP_FULLDUMP_DIFF="true" fi if [ "$OPENJDK_TARGET_OS" = "macosx" ]; then -ACCEPTED_JARZIP_CONTENTS=" -/META-INF/INDEX.LIST -" -ACCEPTED_BIN_DIFF=" -./bin/appletviewer -./bin/idlj -./bin/jar -./bin/jarsigner -./bin/java -./bin/javac -./bin/javadoc -./bin/javah -./bin/javap -./bin/javaws -./bin/jdeps -./bin/jcmd -./bin/jconsole -./bin/jdb -./bin/jimage -./bin/jinfo -./bin/jjs -./bin/jmap -./bin/jps -./bin/jrunscript -./bin/jsadebugd -./bin/jstack -./bin/jstat -./bin/jstatd -./bin/keytool -./bin/orbd -./bin/pack200 -./bin/policytool -./bin/rmic -./bin/rmid -./bin/rmiregistry -./bin/schemagen -./bin/serialver -./bin/servertool -./bin/tnameserv -./bin/wsgen -./bin/wsimport -./bin/xjc -./demo/jvmti/compiledMethodLoad/lib/libcompiledMethodLoad.dylib -./demo/jvmti/gctest/lib/libgctest.dylib -./demo/jvmti/heapTracker/lib/libheapTracker.dylib -./demo/jvmti/heapViewer/lib/libheapViewer.dylib -./demo/jvmti/minst/lib/libminst.dylib -./demo/jvmti/mtrace/lib/libmtrace.dylib -./demo/jvmti/versionCheck/lib/libversionCheck.dylib -./demo/jvmti/waiters/lib/libwaiters.dylib -./Contents/Home/bin/_javaws -./Contents/Home/bin/idlj -./Contents/Home/bin/servertool -./Contents/Home/lib/shortcuts/JavaWSApplicationStub -./Contents/Home/lib/jli/libjli.dylib -./Contents/Home/lib/libAppleScriptEngine.dylib -./Contents/Home/lib/libattach.dylib -./Contents/Home/lib/libawt_lwawt.dylib -./Contents/Home/lib/libdeploy.dylib -./Contents/Home/lib/libdt_socket.dylib -./Contents/Home/lib/libinstrument.dylib -./Contents/Home/lib/libjdwp.dylib -./Contents/Home/lib/libjsdt.dylib -./Contents/Home/lib/libjsig.dylib -./Contents/Home/lib/libmanagement.dylib -./Contents/Home/lib/libnpjp2.dylib -./Contents/Home/lib/libosx.dylib -./Contents/Home/lib/libosxapp.dylib -./Contents/Home/lib/libverify.dylib -./Contents/Home/lib/libsaproc.dylib -./Contents/Home/lib/libsplashscreen.dylib -./Contents/Home/lib/server/libjvm.dylib -./Contents/Home/lib/deploy/JavaControlPanel.prefPane/Contents/MacOS/JavaControlPanel -./Contents/Resources/JavaControlPanelHelper -./Contents/Resources/JavaUpdater.app/Contents/MacOS/JavaUpdater -./lib/shortcuts/JavaWSApplicationStub -./lib/jli/libjli.dylib -./lib/libAppleScriptEngine.dylib -./lib/libattach.dylib -./lib/libawt_lwawt.dylib -./lib/libdeploy.dylib -./lib/libdt_socket.dylib -./lib/libinstrument.dylib -./lib/libjdwp.dylib -./lib/libjsdt.dylib -./lib/libjsig.dylib -./lib/libmanagement.dylib -./lib/libnpjp2.dylib -./lib/libosx.dylib -./lib/libosxapp.dylib -./lib/libverify.dylib -./lib/libsaproc.dylib -./lib/libsplashscreen.dylib -./lib/server/libjvm.dylib -./lib/deploy/JavaControlPanel.prefPane/Contents/MacOS/JavaControlPanel -" + ACCEPTED_JARZIP_CONTENTS=" + /META-INF/INDEX.LIST + " -SORT_SYMBOLS=" -./Contents/Home/lib/libsaproc.dylib -./lib/libsaproc.dylib -./lib/libjsig.dylib -" + ACCEPTED_BIN_DIFF=" + ./bin/appletviewer + ./bin/idlj + ./bin/jar + ./bin/jarsigner + ./bin/java + ./bin/javac + ./bin/javadoc + ./bin/javah + ./bin/javap + ./bin/javaws + ./bin/jdeps + ./bin/jcmd + ./bin/jconsole + ./bin/jdb + ./bin/jimage + ./bin/jinfo + ./bin/jjs + ./bin/jmap + ./bin/jps + ./bin/jrunscript + ./bin/jsadebugd + ./bin/jstack + ./bin/jstat + ./bin/jstatd + ./bin/keytool + ./bin/orbd + ./bin/pack200 + ./bin/policytool + ./bin/rmic + ./bin/rmid + ./bin/rmiregistry + ./bin/schemagen + ./bin/serialver + ./bin/servertool + ./bin/tnameserv + ./bin/wsgen + ./bin/wsimport + ./bin/xjc + ./demo/jvmti/compiledMethodLoad/lib/libcompiledMethodLoad.dylib + ./demo/jvmti/gctest/lib/libgctest.dylib + ./demo/jvmti/heapTracker/lib/libheapTracker.dylib + ./demo/jvmti/heapViewer/lib/libheapViewer.dylib + ./demo/jvmti/minst/lib/libminst.dylib + ./demo/jvmti/mtrace/lib/libmtrace.dylib + ./demo/jvmti/versionCheck/lib/libversionCheck.dylib + ./demo/jvmti/waiters/lib/libwaiters.dylib + ./Contents/Home/bin/_javaws + ./Contents/Home/bin/javaws + ./Contents/Home/bin/idlj + ./Contents/Home/bin/servertool + ./Contents/Home/lib/shortcuts/JavaWSApplicationStub + ./Contents/Home/lib/jli/libjli.dylib + ./Contents/Home/lib/jspawnhelper + ./Contents/Home/lib/libAppleScriptEngine.dylib + ./Contents/Home/lib/libattach.dylib + ./Contents/Home/lib/libawt_lwawt.dylib + ./Contents/Home/lib/libdeploy.dylib + ./Contents/Home/lib/libdt_socket.dylib + ./Contents/Home/lib/libinstrument.dylib + ./Contents/Home/lib/libjdwp.dylib + ./Contents/Home/lib/libjsdt.dylib + ./Contents/Home/lib/libjsig.dylib + ./Contents/Home/lib/libmanagement.dylib + ./Contents/Home/lib/libnpjp2.dylib + ./Contents/Home/lib/libosx.dylib + ./Contents/Home/lib/libosxapp.dylib + ./Contents/Home/lib/libverify.dylib + ./Contents/Home/lib/libsaproc.dylib + ./Contents/Home/lib/libsplashscreen.dylib + ./Contents/Home/lib/server/libjvm.dylib + ./Contents/Home/lib/deploy/JavaControlPanel.prefPane/Contents/MacOS/JavaControlPanel + ./Contents/Resources/JavaControlPanelHelper + ./Contents/Resources/JavaUpdater.app/Contents/MacOS/JavaUpdater + ./Contents/Resources/JavawsLauncher.app/Contents/MacOS/JavawsLauncher + ./lib/shortcuts/JavaWSApplicationStub + ./lib/jli/libjli.dylib + ./lib/jspawnhelper + ./lib/libAppleScriptEngine.dylib + ./lib/libattach.dylib + ./lib/libawt_lwawt.dylib + ./lib/libdeploy.dylib + ./lib/libdt_socket.dylib + ./lib/libinstrument.dylib + ./lib/libjdwp.dylib + ./lib/libjsdt.dylib + ./lib/libjsig.dylib + ./lib/libmanagement.dylib + ./lib/libnpjp2.dylib + ./lib/libosx.dylib + ./lib/libosxapp.dylib + ./lib/libosxui.dylib + ./lib/libverify.dylib + ./lib/libsaproc.dylib + ./lib/libsplashscreen.dylib + ./lib/server/libjvm.dylib + ./lib/deploy/JavaControlPanel.prefPane/Contents/MacOS/JavaControlPanel + ./Versions/A/Resources/finish_installation.app/Contents/MacOS/finish_installation + ./Versions/A/Sparkle + " -ACCEPTED_SMALL_SIZE_DIFF="$ACCEPTED_BIN_DIFF" + SORT_SYMBOLS=" + ./Contents/Home/lib/libsaproc.dylib + ./lib/libsaproc.dylib + ./lib/libjsig.dylib + " -DIS_DIFF_FILTER="LANG=C $SED \ - -e 's/0x[0-9a-f]\{3,16\}//g' -e 's/^[0-9a-f]\{12,20\}//'" + ACCEPTED_SMALL_SIZE_DIFF="$ACCEPTED_BIN_DIFF" + + 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' + " fi diff --git a/make/Init.gmk b/make/Init.gmk index 3c7a664e6e4..4ed492c68fc 100644 --- a/make/Init.gmk +++ b/make/Init.gmk @@ -319,6 +319,7 @@ else # HAS_SPEC=true $(call PrepareCompareBuild) post-compare-build: + $(call WaitForSmartJavacFinish) $(call CleanupCompareBuild) $(call CompareBuildDoComparison) diff --git a/make/InitSupport.gmk b/make/InitSupport.gmk index 6632a5c888b..493591ebbec 100644 --- a/make/InitSupport.gmk +++ b/make/InitSupport.gmk @@ -353,14 +353,17 @@ else # $(HAS_SPEC)=true # Parse COMPARE_BUILD into COMPARE_BUILD_* # Syntax: COMPARE_BUILD=CONF=:PATCH=: # MAKE=:COMP_OPTS=: - # COMP_DIR=| + # COMP_DIR=|: + # FAIL= # If neither CONF or PATCH is given, assume means CONF if it # begins with "--", otherwise assume it means PATCH. # MAKE and COMP_OPTS can only be used with CONF and/or PATCH specified. # If any value contains "+", it will be replaced by space. + # FAIL can be set to false to have the return value of compare be ignored. define ParseCompareBuild ifneq ($$(COMPARE_BUILD), ) COMPARE_BUILD_OUTPUT_ROOT := $(TOPDIR)/build/compare-build/$(CONF_NAME) + COMPARE_BUILD_FAIL := true ifneq ($$(findstring :, $$(COMPARE_BUILD)), ) $$(foreach part, $$(subst :, , $$(COMPARE_BUILD)), \ @@ -379,6 +382,9 @@ else # $(HAS_SPEC)=true $$(if $$(filter COMP_DIR=%, $$(part)), \ $$(eval COMPARE_BUILD_COMP_DIR=$$(strip $$(subst +, , $$(patsubst COMP_DIR=%, %, $$(part))))) \ ) \ + $$(if $$(filter FAIL=%, $$(part)), \ + $$(eval COMPARE_BUILD_FAIL=$$(strip $$(subst +, , $$(patsubst FAIL=%, %, $$(part))))) \ + ) \ ) else # Separate handling for single field case, to allow for spaces in values. @@ -402,6 +408,9 @@ else # $(HAS_SPEC)=true $$(error Patch file $$(COMPARE_BUILD_PATCH) does not exist) endif endif + ifneq ($$(COMPARE_BUILD_FAIL), true) + COMPARE_BUILD_IGNORE_RESULT := || true + endif endif endef @@ -443,9 +452,10 @@ else # $(HAS_SPEC)=true $(ECHO) "Comparing between comparison rebuild (this/new) and baseline (other/old)" $(if $(COMPARE_BUILD_COMP_DIR), \ +(cd $(COMPARE_BUILD_OUTPUT_ROOT) && ./compare.sh $(COMPARE_BUILD_COMP_OPTS) \ - -2dirs $(COMPARE_BUILD_OUTPUT_ROOT)/$(COMPARE_BUILD_COMP_DIR) $(OUTPUT_ROOT)/$(COMPARE_BUILD_COMP_DIR) || true), \ + -2dirs $(COMPARE_BUILD_OUTPUT_ROOT)/$(COMPARE_BUILD_COMP_DIR) \ + $(OUTPUT_ROOT)/$(COMPARE_BUILD_COMP_DIR) $(COMPARE_BUILD_IGNORE_RESULT)), \ +(cd $(COMPARE_BUILD_OUTPUT_ROOT) && ./compare.sh $(COMPARE_BUILD_COMP_OPTS) \ - -o $(OUTPUT_ROOT) || true) \ + -o $(OUTPUT_ROOT) $(COMPARE_BUILD_IGNORE_RESULT)) \ ) endef