--- a/make/scripts/compare.sh Tue Sep 18 10:29:56 2018 +0200
+++ b/make/scripts/compare.sh Tue Sep 18 10:35:42 2018 +0200
@@ -65,6 +65,59 @@
. "$COMPARE_EXCEPTIONS_INCLUDE"
################################################################################
+#
+# Disassembly diff filters. These filters try to filter out ephemeral parts of the
+# disassembly, such as hard-coded addresses, to be able to catch "actual" differences.
+
+if [ "$OPENJDK_TARGET_OS" = "solaris" ]; then
+ if [ "$OPENJDK_TARGET_CPU" = "sparcv9" ]; then
+ DIS_DIFF_FILTER="$SED \
+ -e 's/^[0-9a-f]\{16\}/<ADDR>:/' \
+ -e 's/^ *[0-9a-f]\{3,12\}:/ <ADDR>:/' \
+ -e 's/: [0-9a-f][0-9a-f]\( [0-9a-f][0-9a-f]\)\{2,10\}/: <NUMS>/' \
+ -e 's/\$[a-zA-Z0-9_\$]\{15\}\./<SYM>./' \
+ -e 's/, [0-9a-fx\-]\{1,8\}/, <ADDR>/g' \
+ -e 's/0x[0-9a-f]\{1,8\}/<HEX>/g' \
+ -e 's/\! [0-9a-f]\{1,8\} /! <ADDR> /' \
+ -e 's/call [0-9a-f]\{4,7\}/call <ADDR>/' \
+ -e 's/%hi(0),/%hi(<HEX>),/' \
+ "
+ elif [ "$OPENJDK_TARGET_CPU" = "x86_64" ]; then
+ # Random strings looking like this differ: <.XAKoKoPIac2W0OA.
+ DIS_DIFF_FILTER="$SED \
+ -e 's/<\.[A-Za-z0-9]\{\15}\./<.SYM./' \
+ "
+ fi
+elif [ "$OPENJDK_TARGET_OS" = "windows" ]; then
+ if [ "$OPENJDK_TARGET_CPU" = "x86" ]; then
+ DIS_DIFF_FILTER="$SED -r \
+ -e 's/^ [0-9A-F]{16}: //' \
+ -e 's/^ [0-9A-F]{8}: / <ADDR>: /' \
+ -e 's/(offset \?\?)_C@_.*/\1<SYM>/' \
+ -e 's/[@?][A-Za-z0-9_]{1,25}/<SYM>/' \
+ -e 's/([-,+])[0-9A-F]{2,16}/\1<HEXSTR>/g' \
+ -e 's/\[[0-9A-F]{4,16}h\]/[<HEXSTR>]/' \
+ -e 's/: ([a-z]{2}[a-z ]{2}) [0-9A-F]{2,16}h?$/: \1 <HEXSTR>/' \
+ -e 's/_20[0-9]{2}_[0-1][0-9]_[0-9]{2}/_<DATE>/' \
+ "
+ 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\]/[<HEXSTR>]/' \
+ -e 's/([,+])[0-9A-F]{2,16}h/\1<HEXSTR>/' \
+ -e 's/([a-z]{2}[a-z ]{2}) [0-9A-F]{4,16}$/\1 <HEXSTR>/' \
+ -e 's/\[\?\?_C@_.*/[<SYM>]/' \
+ "
+ fi
+elif [ "$OPENJDK_TARGET_OS" = "macosx" ]; then
+ DIS_DIFF_FILTER="LANG=C $SED \
+ -e 's/0x[0-9a-f]\{3,16\}/<HEXSTR>/g' -e 's/^[0-9a-f]\{12,20\}/<ADDR>/' \
+ -e 's/-20[0-9][0-9]-[0-1][0-9]-[0-3][0-9]-[0-2][0-9]\{5\}/<DATE>/g' \
+ -e 's/), built on .*/), <DATE>/' \
+ "
+fi
+
+################################################################################
# Compare text files and ignore specific differences:
#
# * Timestamps in Java sources generated by idl2java
--- a/make/scripts/compare_exceptions.sh.incl Tue Sep 18 10:29:56 2018 +0200
+++ b/make/scripts/compare_exceptions.sh.incl Tue Sep 18 10:35:42 2018 +0200
@@ -36,548 +36,37 @@
# Diff exceptions
if [ "$OPENJDK_TARGET_OS" = "linux" ]; then
-
- STRIP_BEFORE_COMPARE="
- "
-
ACCEPTED_BIN_DIFF="
- ./lib/client/libjsig.so
- ./lib/client/libjvm.so
- ./lib/libattach.so
- ./lib/libdt_socket.so
- ./lib/libinstrument.so
- ./lib/libjsdt.so
- ./lib/libjsig.so
- ./lib/libmanagement.so
- ./lib/libnet.so
- ./lib/libnpt.so
- ./lib/libverify.so
- ./lib/minimal/libjsig.so
- ./lib/minimal/libjvm.so
- ./lib/server/libjsig.so
./lib/server/libjvm.so
- ./bin/idlj
- ./bin/jar
- ./bin/jarsigner
- ./bin/java
- ./bin/javac
- ./bin/javadoc
- ./bin/javap
- ./bin/jdeps
- ./bin/jcmd
- ./bin/jconsole
- ./bin/jdb
- ./bin/jhsdb
- ./bin/jimage
- ./bin/jinfo
- ./bin/jjs
- ./bin/jlink
- ./bin/jmap
- ./bin/jmod
- ./bin/jps
- ./bin/jrunscript
- ./bin/jsadebugd
- ./bin/jshell
- ./bin/jstack
- ./bin/jstat
- ./bin/jstatd
- ./bin/keytool
- ./bin/orbd
- ./bin/pack200
- ./bin/rmic
- ./bin/rmid
- ./bin/rmiregistry
- ./bin/schemagen
- ./bin/serialver
- ./bin/servertool
- ./bin/tnameserv
- ./bin/wsgen
- ./bin/wsimport
- ./bin/xjc
"
-
- 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/minimal/libjvm.so
- "
-
- # Link time optimization adds random numbers to symbol names
- NEED_DIS_DIFF_FILTER="
- ./lib/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<HEX> /' \
- "
- KNOWN_DIS_DIFF="
- ./lib/minimal/libjvm.so
- "
- MAX_KNOWN_DIS_DIFF_SIZE="3000"
-
- NEED_SYMBOLS_DIFF_FILTER="
- ./lib/minimal/libjvm.so
- "
- SYMBOLS_DIFF_FILTER="$SED -r \
- -e 's/\.[0-9]+/.X/g'
- "
- fi
-fi
-
-if [ "$OPENJDK_TARGET_OS" = "solaris" ] && [ "$OPENJDK_TARGET_CPU" = "x86_64" ]; then
-
- STRIP_BEFORE_COMPARE="
- "
-
+elif [ "$OPENJDK_TARGET_OS" = "solaris" ]; then
+ SKIP_BIN_DIFF="true"
+ SKIP_FULLDUMP_DIFF="true"
+ MAX_KNOWN_DIS_DIFF_SIZE="3000"
SORT_SYMBOLS="
- ./lib/server/libjvm.so
./lib/libfontmanager.so
./lib/libjimage.so
- ./lib/libsaproc.so
./lib/libunpack.so
+ ./lib/server/libjvm.so
./bin/unpack200
"
-
- SKIP_BIN_DIFF="true"
-
- ACCEPTED_SMALL_SIZE_DIFF="
- ./lib/jli/libjli.so
- ./lib/jspawnhelper
- ./lib/libJdbcOdbc.so
- ./lib/libattach.so
- ./lib/libawt.so
- ./lib/libawt_headless.so
- ./lib/libawt_xawt.so
- ./lib/libdcpr.so
- ./lib/libdt_socket.so
- ./lib/libfontmanager.so
- ./lib/libinstrument.so
- ./lib/libj2gss.so
- ./lib/libj2pcsc.so
- ./lib/libj2pkcs11.so
- ./lib/libj2ucrypto.so
- ./lib/libjaas_unix.so
- ./lib/libjava.so
- ./lib/libjawt.so
- ./lib/libjdwp.so
- ./lib/libjpeg.so
- ./lib/libjsdt.so
- ./lib/libjsound.so
- ./lib/libkcms.so
- ./lib/liblcms.so
- ./lib/libmanagement.so
- ./lib/libmlib_image.so
- ./lib/libnet.so
- ./lib/libnio.so
- ./lib/libnpt.so
- ./lib/libsctp.so
- ./lib/libsplashscreen.so
- ./lib/libsunec.so
- ./lib/libsunwjdga.so
- ./lib/libunpack.so
- ./lib/libverify.so
- ./lib/libzip.so
- ./lib/server/64/libjvm_db.so
- ./lib/server/64/libjvm_dtrace.so
- ./lib/server/libjvm.so
- ./lib/server/libjvm_db.so
- ./lib/server/libjvm_dtrace.so
- ./bin/idlj
- ./bin/jar
- ./bin/jarsigner
- ./bin/java
- ./bin/javac
- ./bin/javadoc
- ./bin/javap
- ./bin/jdeps
- ./bin/jcmd
- ./bin/jconsole
- ./bin/jdb
- ./bin/jimage
- ./bin/jinfo
- ./bin/jjs
- ./bin/jlink
- ./bin/jmap
- ./bin/jmod
- ./bin/jps
- ./bin/jrunscript
- ./bin/jsadebugd
- ./bin/jstack
- ./bin/jstat
- ./bin/jstatd
- ./bin/keytool
- ./bin/orbd
- ./bin/pack200
- ./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"
-
- # Random strings looking like this differ: <.XAKoKoPIac2W0OA.
- DIS_DIFF_FILTER="$SED \
- -e 's/<\.[A-Za-z0-9]\{\15}\./<.SYM./' \
- "
-
-fi
-
-if [ "$OPENJDK_TARGET_OS" = "solaris" ] && [ "$OPENJDK_TARGET_CPU" = "sparcv9" ]; then
-
- STRIP_BEFORE_COMPARE="
- "
-
- SORT_SYMBOLS="
- ./lib/libjsig.so
+ KNOWN_DIS_DIFF="
./lib/libfontmanager.so
- ./lib/libjimage.so
- ./lib/libsaproc.so
- ./lib/libunpack.so
- ./lib/server/libjvm.so
- ./lib/server/libjvm_dtrace.so
- ./bin/unpack200
- "
-
- SKIP_BIN_DIFF="true"
-
- ACCEPTED_SMALL_SIZE_DIFF="
- ./lib/client/libjvm.so
- ./lib/jli/libjli.so
- ./lib/jspawnhelper
- ./lib/libJdbcOdbc.so
- ./lib/libattach.so
- ./lib/libawt.so
- ./lib/libawt_headless.so
- ./lib/libawt_xawt.so
- ./lib/libdcpr.so
- ./lib/libdt_socket.so
- ./lib/libfontmanager.so
- ./lib/libinstrument.so
- ./lib/libj2gss.so
- ./lib/libj2pcsc.so
- ./lib/libj2pkcs11.so
- ./lib/libj2ucrypto.so
- ./lib/libjaas_unix.so
- ./lib/libjava.so
- ./lib/libjawt.so
- ./lib/libjdwp.so
- ./lib/libjpeg.so
- ./lib/libjsdt.so
- ./lib/libjsound.so
- ./lib/libkcms.so
- ./lib/liblcms.so
- ./lib/libmanagement.so
- ./lib/libmlib_image.so
- ./lib/libmlib_image_v.so
- ./lib/libnet.so
- ./lib/libnio.so
- ./lib/libnpt.so
- ./lib/libsctp.so
- ./lib/libsplashscreen.so
- ./lib/libsunec.so
- ./lib/libsunwjdga.so
- ./lib/libunpack.so
- ./lib/libverify.so
- ./lib/libzip.so
- ./lib/server/libjvm.so
- ./bin/idlj
- ./bin/jar
- ./bin/jarsigner
- ./bin/java
- ./bin/javac
- ./bin/javadoc
- ./bin/javap
- ./bin/jdeps
- ./bin/jcmd
- ./bin/jconsole
- ./bin/jdb
- ./bin/jimage
- ./bin/jinfo
- ./bin/jjs
- ./bin/jlink
- ./bin/jmap
- ./bin/jmod
- ./bin/jps
- ./bin/jrunscript
- ./bin/jsadebugd
- ./bin/jstack
- ./bin/jstat
- ./bin/jstatd
- ./bin/keytool
- ./bin/orbd
- ./bin/pack200
- ./bin/rmic
- ./bin/rmid
- ./bin/rmiregistry
- ./bin/schemagen
- ./bin/serialver
- ./bin/servertool
- ./bin/tnameserv
- ./bin/unpack200
- ./bin/wsgen
- ./bin/wsimport
- ./bin/xjc
- "
-
- DIS_DIFF_FILTER="$SED \
- -e 's/^[0-9a-f]\{16\}/<ADDR>:/' \
- -e 's/^ *[0-9a-f]\{3,12\}:/ <ADDR>:/' \
- -e 's/: [0-9a-f][0-9a-f]\( [0-9a-f][0-9a-f]\)\{2,10\}/: <NUMS>/' \
- -e 's/\$[a-zA-Z0-9_\$]\{15\}\./<SYM>./' \
- -e 's/, [0-9a-fx\-]\{1,8\}/, <ADDR>/g' \
- -e 's/0x[0-9a-f]\{1,8\}/<HEX>/g' \
- -e 's/\! [0-9a-f]\{1,8\} /! <ADDR> /' \
- -e 's/call [0-9a-f]\{4,7\}/call <ADDR>/' \
- -e 's/%hi(0),/%hi(<HEX>),/' \
- "
-
- KNOWN_DIS_DIFF="
./lib/libsaproc.so
"
-
- MAX_KNOWN_DIS_DIFF_SIZE="3000"
-
- ACCEPTED_DIS_DIFF="
- ./lib/libfontmanager.so
- ./lib/libsaproc.so
- ./lib/server/libjvm.so
- "
-
+elif [ "$OPENJDK_TARGET_OS" = "windows" ]; then
+ SKIP_BIN_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.pdb
/modules_libs/java.security.jgss/w2k_lsa_auth.map
/modules_libs/java.security.jgss/w2k_lsa_auth.dll
"
-
- # Probably should add all libs here
- ACCEPTED_SMALL_SIZE_DIFF="
- ./bin/attach.dll
- ./bin/jsoundds.dll
- ./bin/client/jvm.dll
- ./bin/server/jvm.dll
- ./bin/idlj.exe
- ./bin/jar.exe
- ./bin/jarsigner.exe
- ./bin/java-rmi.exe
- ./bin/java.exe
- ./bin/javac.exe
- ./bin/javadoc.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/jlink.exe
- ./bin/jmap.exe
- ./bin/jmod.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/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
- "
-
- SORT_SYMBOLS="
- ./bin/fontmanager.dll
- "
-
- ACCEPTED_DIS_DIFF="
- ./bin/jabswitch.exe
- ./bin/fontmanager.dll
- "
-
- if [ "$OPENJDK_TARGET_CPU" = "x86" ]; then
- DIS_DIFF_FILTER="$SED -r \
- -e 's/^ [0-9A-F]{16}: //' \
- -e 's/^ [0-9A-F]{8}: / <ADDR>: /' \
- -e 's/(offset \?\?)_C@_.*/\1<SYM>/' \
- -e 's/[@?][A-Za-z0-9_]{1,25}/<SYM>/' \
- -e 's/([-,+])[0-9A-F]{2,16}/\1<HEXSTR>/g' \
- -e 's/\[[0-9A-F]{4,16}h\]/[<HEXSTR>]/' \
- -e 's/: ([a-z]{2}[a-z ]{2}) [0-9A-F]{2,16}h?$/: \1 <HEXSTR>/' \
- -e 's/_20[0-9]{2}_[0-1][0-9]_[0-9]{2}/_<DATE>/' \
- "
- 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\]/[<HEXSTR>]/' \
- -e 's/([,+])[0-9A-F]{2,16}h/\1<HEXSTR>/' \
- -e 's/([a-z]{2}[a-z ]{2}) [0-9A-F]{4,16}$/\1 <HEXSTR>/' \
- -e 's/\[\?\?_C@_.*/[<SYM>]/' \
- "
- 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
-
-
-if [ "$OPENJDK_TARGET_OS" = "macosx" ]; then
-
- ACCEPTED_JARZIP_CONTENTS="
- /META-INF/INDEX.LIST
- "
-
+elif [ "$OPENJDK_TARGET_OS" = "macosx" ]; then
ACCEPTED_BIN_DIFF="
- ./bin/idlj
- ./bin/jar
- ./bin/jarsigner
- ./bin/java
- ./bin/javac
- ./bin/javadoc
- ./bin/javap
- ./bin/javaws
- ./bin/jdeps
- ./bin/jcmd
- ./bin/jconsole
- ./bin/jdb
- ./bin/jimage
- ./bin/jinfo
- ./bin/jjs
- ./bin/jlink
- ./bin/jmap
- ./bin/jmod
- ./bin/jps
- ./bin/jrunscript
- ./bin/jsadebugd
- ./bin/jstack
- ./bin/jstat
- ./bin/jstatd
- ./bin/keytool
- ./bin/orbd
- ./bin/pack200
- ./bin/rmic
- ./bin/rmid
- ./bin/rmiregistry
- ./bin/schemagen
- ./bin/serialver
- ./bin/servertool
- ./bin/tnameserv
- ./bin/wsgen
- ./bin/wsimport
- ./bin/xjc
- ./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/libosxui.dylib
- ./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
- ./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/libjsig.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
"
-
- SORT_SYMBOLS="
- ./Contents/Home/lib/libsaproc.dylib
- ./lib/libsaproc.dylib
- ./lib/libjsig.dylib
- "
-
- ACCEPTED_SMALL_SIZE_DIFF="$ACCEPTED_BIN_DIFF"
-
- DIS_DIFF_FILTER="LANG=C $SED \
- -e 's/0x[0-9a-f]\{3,16\}/<HEXSTR>/g' -e 's/^[0-9a-f]\{12,20\}/<ADDR>/' \
- -e 's/-20[0-9][0-9]-[0-1][0-9]-[0-3][0-9]-[0-2][0-9]\{5\}/<DATE>/g' \
- -e 's/), built on .*/), <DATE>/' \
- "
-
fi