1 #!/bin/bash
   2 #
   3 # Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
   4 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   5 #
   6 # This code is free software; you can redistribute it and/or modify it
   7 # under the terms of the GNU General Public License version 2 only, as
   8 # published by the Free Software Foundation.
   9 #
  10 # This code is distributed in the hope that it will be useful, but WITHOUT
  11 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  12 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  13 # version 2 for more details (a copy is included in the LICENSE file that
  14 # accompanied this code).
  15 #
  16 # You should have received a copy of the GNU General Public License version
  17 # 2 along with this work; if not, write to the Free Software Foundation,
  18 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  19 #
  20 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  21 # or visit www.oracle.com if you need additional information or have any
  22 # questions.
  23 #
  24 
  25 # This script is not to be run as stand-alone, it should be included from
  26 # compare.sh.
  27 
  28 ##########################################################################################
  29 # Check that we are run via inclusion from compare.sh and not as stand-alone.
  30 if [ -z "$COMPARE_EXCEPTIONS_INCLUDE" ]; then
  31     echo "Error: This script should not be run as stand-alone. It is included by compare.sh"
  32     exit 1
  33 fi
  34 
  35 ##########################################################################################
  36 # Diff exceptions
  37 
  38 if [ "$OPENJDK_TARGET_OS" = "linux" ]; then
  39 
  40   STRIP_BEFORE_COMPARE="
  41       ./demo/jvmti/compiledMethodLoad/lib/libcompiledMethodLoad.so
  42       ./demo/jvmti/gctest/lib/libgctest.so
  43       ./demo/jvmti/heapTracker/lib/libheapTracker.so
  44       ./demo/jvmti/heapViewer/lib/libheapViewer.so
  45       ./demo/jvmti/minst/lib/libminst.so
  46       ./demo/jvmti/mtrace/lib/libmtrace.so
  47       ./demo/jvmti/versionCheck/lib/libversionCheck.so
  48       ./demo/jvmti/waiters/lib/libwaiters.so
  49       "
  50 
  51   ACCEPTED_BIN_DIFF="
  52       ./demo/jvmti/compiledMethodLoad/lib/libcompiledMethodLoad.so
  53       ./demo/jvmti/gctest/lib/libgctest.so
  54       ./demo/jvmti/heapTracker/lib/libheapTracker.so
  55       ./demo/jvmti/heapViewer/lib/libheapViewer.so
  56       ./demo/jvmti/minst/lib/libminst.so
  57       ./demo/jvmti/mtrace/lib/libmtrace.so
  58       ./demo/jvmti/versionCheck/lib/libversionCheck.so
  59       ./demo/jvmti/waiters/lib/libwaiters.so
  60       ./lib$OPENJDK_TARGET_CPU_LIBDIR/client/libjsig.so
  61       ./lib$OPENJDK_TARGET_CPU_LIBDIR/client/libjvm.so
  62       ./lib$OPENJDK_TARGET_CPU_LIBDIR/libattach.so
  63       ./lib$OPENJDK_TARGET_CPU_LIBDIR/libdt_socket.so
  64       ./lib$OPENJDK_TARGET_CPU_LIBDIR/libinstrument.so
  65       ./lib$OPENJDK_TARGET_CPU_LIBDIR/libjsdt.so
  66       ./lib$OPENJDK_TARGET_CPU_LIBDIR/libjsig.so
  67       ./lib$OPENJDK_TARGET_CPU_LIBDIR/libmanagement.so
  68       ./lib$OPENJDK_TARGET_CPU_LIBDIR/libnet.so
  69       ./lib$OPENJDK_TARGET_CPU_LIBDIR/libnpt.so
  70       ./lib$OPENJDK_TARGET_CPU_LIBDIR/libverify.so
  71       ./lib$OPENJDK_TARGET_CPU_LIBDIR/minimal/libjsig.so
  72       ./lib$OPENJDK_TARGET_CPU_LIBDIR/minimal/libjvm.so
  73       ./lib$OPENJDK_TARGET_CPU_LIBDIR/server/libjsig.so
  74       ./lib$OPENJDK_TARGET_CPU_LIBDIR/server/libjvm.so
  75       ./bin/appletviewer
  76       ./bin/idlj
  77       ./bin/jar
  78       ./bin/jarsigner
  79       ./bin/java
  80       ./bin/javac
  81       ./bin/javadoc
  82       ./bin/javah
  83       ./bin/javap
  84       ./bin/jdeps
  85       ./bin/jcmd
  86       ./bin/jconsole
  87       ./bin/jdb
  88       ./bin/jhsdb
  89       ./bin/jimage
  90       ./bin/jinfo
  91       ./bin/jjs
  92       ./bin/jlink
  93       ./bin/jmap
  94       ./bin/jmod
  95       ./bin/jps
  96       ./bin/jrunscript
  97       ./bin/jsadebugd
  98       ./bin/jshell
  99       ./bin/jstack
 100       ./bin/jstat
 101       ./bin/jstatd
 102       ./bin/keytool
 103       ./bin/orbd
 104       ./bin/pack200
 105       ./bin/policytool
 106       ./bin/rmic
 107       ./bin/rmid
 108       ./bin/rmiregistry
 109       ./bin/schemagen
 110       ./bin/serialver
 111       ./bin/servertool
 112       ./bin/tnameserv
 113       ./bin/wsgen
 114       ./bin/wsimport
 115       ./bin/xjc
 116       "
 117 
 118   if [ "$OPENJDK_TARGET_CPU" = "arm" ]; then
 119     # NOTE: When comparing the old and new hotspot builds, the link time
 120     # optimization makes good comparisons impossible. Fulldump compare always
 121     # fails and disassembly can end up with some functions in different order.
 122     # So for now, accept the difference but put a limit on the size. The
 123     # different order of functions shouldn't result in a very big diff.
 124     KNOWN_FULLDUMP_DIFF="
 125         ./lib$OPENJDK_TARGET_CPU_LIBDIR/minimal/libjvm.so
 126         "
 127 
 128     # Link time optimization adds random numbers to symbol names
 129     NEED_DIS_DIFF_FILTER="
 130         ./lib$OPENJDK_TARGET_CPU_LIBDIR/minimal/libjvm.so
 131         "
 132     DIS_DIFF_FILTER="$SED -r \
 133         -e 's/\.[0-9]+/.X/g' \
 134         -e 's/\t[0-9a-f]{4} [0-9a-f]{4} /\tXXXX XXXX /' \
 135         -e 's/\t[0-9a-f]{5,} /\t<HEX> /' \
 136         "
 137     KNOWN_DIS_DIFF="
 138         ./lib$OPENJDK_TARGET_CPU_LIBDIR/minimal/libjvm.so
 139         "
 140     MAX_KNOWN_DIS_DIFF_SIZE="3000"
 141 
 142     NEED_SYMBOLS_DIFF_FILTER="
 143         ./lib$OPENJDK_TARGET_CPU_LIBDIR/minimal/libjvm.so
 144         "
 145     SYMBOLS_DIFF_FILTER="$SED -r \
 146         -e 's/\.[0-9]+/.X/g'
 147         "
 148   fi
 149 fi
 150 
 151 if [ "$OPENJDK_TARGET_OS" = "solaris" ] && [ "$OPENJDK_TARGET_CPU" = "x86_64" ]; then
 152 
 153   STRIP_BEFORE_COMPARE="
 154       ./demo/jni/Poller/lib/libPoller.so
 155       ./demo/jvmti/compiledMethodLoad/lib/libcompiledMethodLoad.so
 156       ./demo/jvmti/gctest/lib/libgctest.so
 157       ./demo/jvmti/heapTracker/lib/libheapTracker.so
 158       ./demo/jvmti/heapViewer/lib/libheapViewer.so
 159       ./demo/jvmti/minst/lib/libminst.so
 160       ./demo/jvmti/mtrace/lib/libmtrace.so
 161       ./demo/jvmti/versionCheck/lib/libversionCheck.so
 162       ./demo/jvmti/waiters/lib/libwaiters.so
 163       "
 164 
 165   SORT_SYMBOLS="
 166       ./lib/amd64/server/libjvm.so
 167       ./lib/amd64/libfontmanager.so
 168       ./lib/amd64/libjimage.so
 169       ./lib/amd64/libsaproc.so
 170       ./lib/amd64/libunpack.so
 171       ./bin/unpack200
 172       "
 173 
 174   SKIP_BIN_DIFF="true"
 175 
 176   ACCEPTED_SMALL_SIZE_DIFF="
 177       ./demo/jni/Poller/lib/libPoller.so
 178       ./demo/jvmti/compiledMethodLoad/lib/libcompiledMethodLoad.so
 179       ./demo/jvmti/gctest/lib/libgctest.so
 180       ./demo/jvmti/heapTracker/lib/libheapTracker.so
 181       ./demo/jvmti/heapViewer/lib/libheapViewer.so
 182       ./demo/jvmti/minst/lib/libminst.so
 183       ./demo/jvmti/mtrace/lib/libmtrace.so
 184       ./demo/jvmti/versionCheck/lib/libversionCheck.so
 185       ./demo/jvmti/waiters/lib/libwaiters.so
 186       ./lib/amd64/jli/libjli.so
 187       ./lib/amd64/jspawnhelper
 188       ./lib/amd64/libJdbcOdbc.so
 189       ./lib/amd64/libattach.so
 190       ./lib/amd64/libawt.so
 191       ./lib/amd64/libawt_headless.so
 192       ./lib/amd64/libawt_xawt.so
 193       ./lib/amd64/libdcpr.so
 194       ./lib/amd64/libdt_socket.so
 195       ./lib/amd64/libfontmanager.so
 196       ./lib/amd64/libinstrument.so
 197       ./lib/amd64/libj2gss.so
 198       ./lib/amd64/libj2pcsc.so
 199       ./lib/amd64/libj2pkcs11.so
 200       ./lib/amd64/libj2ucrypto.so
 201       ./lib/amd64/libjaas_unix.so
 202       ./lib/amd64/libjava.so
 203       ./lib/amd64/libjawt.so
 204       ./lib/amd64/libjdwp.so
 205       ./lib/amd64/libjpeg.so
 206       ./lib/amd64/libjsdt.so
 207       ./lib/amd64/libjsound.so
 208       ./lib/amd64/libkcms.so
 209       ./lib/amd64/liblcms.so
 210       ./lib/amd64/libmanagement.so
 211       ./lib/amd64/libmlib_image.so
 212       ./lib/amd64/libnet.so
 213       ./lib/amd64/libnio.so
 214       ./lib/amd64/libnpt.so
 215       ./lib/amd64/libsctp.so
 216       ./lib/amd64/libsplashscreen.so
 217       ./lib/amd64/libsunec.so
 218       ./lib/amd64/libsunwjdga.so
 219       ./lib/amd64/libt2k.so
 220       ./lib/amd64/libunpack.so
 221       ./lib/amd64/libverify.so
 222       ./lib/amd64/libzip.so
 223       ./lib/amd64/server/64/libjvm_db.so
 224       ./lib/amd64/server/64/libjvm_dtrace.so
 225       ./lib/amd64/server/libjvm.so
 226       ./lib/amd64/server/libjvm_db.so
 227       ./lib/amd64/server/libjvm_dtrace.so
 228       ./bin/appletviewer
 229       ./bin/idlj
 230       ./bin/jar
 231       ./bin/jarsigner
 232       ./bin/java
 233       ./bin/javac
 234       ./bin/javadoc
 235       ./bin/javah
 236       ./bin/javap
 237       ./bin/jdeps
 238       ./bin/jcmd
 239       ./bin/jconsole
 240       ./bin/jdb
 241       ./bin/jimage
 242       ./bin/jinfo
 243       ./bin/jjs
 244       ./bin/jlink
 245       ./bin/jmap
 246       ./bin/jmod
 247       ./bin/jps
 248       ./bin/jrunscript
 249       ./bin/jsadebugd
 250       ./bin/jstack
 251       ./bin/jstat
 252       ./bin/jstatd
 253       ./bin/keytool
 254       ./bin/orbd
 255       ./bin/pack200
 256       ./bin/policytool
 257       ./bin/rmic
 258       ./bin/rmid
 259       ./bin/rmiregistry
 260       ./bin/schemagen
 261       ./bin/serialver
 262       ./bin/servertool
 263       ./bin/tnameserv
 264       ./bin/unpack200
 265       ./bin/wsgen
 266       ./bin/wsimport
 267       ./bin/xjc
 268       "
 269 
 270   SKIP_FULLDUMP_DIFF="true"
 271 
 272   # Random strings looking like this differ: <.XAKoKoPIac2W0OA.
 273   DIS_DIFF_FILTER="$SED \
 274       -e 's/<\.[A-Za-z0-9]\{\15}\./<.SYM./' \
 275       "
 276 
 277 fi
 278 
 279 if [ "$OPENJDK_TARGET_OS" = "solaris" ] && [ "$OPENJDK_TARGET_CPU" = "sparcv9" ]; then
 280 
 281   STRIP_BEFORE_COMPARE="
 282       ./demo/jni/Poller/lib/libPoller.so
 283       ./demo/jvmti/compiledMethodLoad/lib/libcompiledMethodLoad.so
 284       ./demo/jvmti/gctest/lib/libgctest.so
 285       ./demo/jvmti/heapTracker/lib/libheapTracker.so
 286       ./demo/jvmti/heapViewer/lib/libheapViewer.so
 287       ./demo/jvmti/minst/lib/libminst.so
 288       ./demo/jvmti/mtrace/lib/libmtrace.so
 289       ./demo/jvmti/versionCheck/lib/libversionCheck.so
 290       ./demo/jvmti/waiters/lib/libwaiters.so
 291       "
 292 
 293   SORT_SYMBOLS="
 294       ./demo/jvmti/waiters/lib/libwaiters.so
 295       ./lib/sparcv9/libjsig.so
 296       ./lib/sparcv9/libfontmanager.so
 297       ./lib/sparcv9/libjimage.so
 298       ./lib/sparcv9/libsaproc.so
 299       ./lib/sparcv9/libunpack.so
 300       ./lib/sparcv9/server/libjvm.so
 301       ./lib/sparcv9/server/libjvm_dtrace.so
 302       ./bin/unpack200
 303       "
 304 
 305   SKIP_BIN_DIFF="true"
 306 
 307   ACCEPTED_SMALL_SIZE_DIFF="
 308       ./demo/jni/Poller/lib/libPoller.so
 309       ./demo/jvmti/compiledMethodLoad/lib/libcompiledMethodLoad.so
 310       ./demo/jvmti/gctest/lib/libgctest.so
 311       ./demo/jvmti/heapTracker/lib/libheapTracker.so
 312       ./demo/jvmti/heapViewer/lib/libheapViewer.so
 313       ./demo/jvmti/minst/lib/libminst.so
 314       ./demo/jvmti/mtrace/lib/libmtrace.so
 315       ./demo/jvmti/versionCheck/lib/libversionCheck.so
 316       ./demo/jvmti/waiters/lib/libwaiters.so
 317       ./lib/sparcv9/client/libjvm.so
 318       ./lib/sparcv9/jli/libjli.so
 319       ./lib/sparcv9/jspawnhelper
 320       ./lib/sparcv9/libJdbcOdbc.so
 321       ./lib/sparcv9/libattach.so
 322       ./lib/sparcv9/libawt.so
 323       ./lib/sparcv9/libawt_headless.so
 324       ./lib/sparcv9/libawt_xawt.so
 325       ./lib/sparcv9/libdcpr.so
 326       ./lib/sparcv9/libdt_socket.so
 327       ./lib/sparcv9/libfontmanager.so
 328       ./lib/sparcv9/libinstrument.so
 329       ./lib/sparcv9/libj2gss.so
 330       ./lib/sparcv9/libj2pcsc.so
 331       ./lib/sparcv9/libj2pkcs11.so
 332       ./lib/sparcv9/libj2ucrypto.so
 333       ./lib/sparcv9/libjaas_unix.so
 334       ./lib/sparcv9/libjava.so
 335       ./lib/sparcv9/libjawt.so
 336       ./lib/sparcv9/libjdwp.so
 337       ./lib/sparcv9/libjpeg.so
 338       ./lib/sparcv9/libjsdt.so
 339       ./lib/sparcv9/libjsound.so
 340       ./lib/sparcv9/libkcms.so
 341       ./lib/sparcv9/liblcms.so
 342       ./lib/sparcv9/libmanagement.so
 343       ./lib/sparcv9/libmlib_image.so
 344       ./lib/sparcv9/libmlib_image_v.so
 345       ./lib/sparcv9/libnet.so
 346       ./lib/sparcv9/libnio.so
 347       ./lib/sparcv9/libnpt.so
 348       ./lib/sparcv9/libsctp.so
 349       ./lib/sparcv9/libsplashscreen.so
 350       ./lib/sparcv9/libsunec.so
 351       ./lib/sparcv9/libsunwjdga.so
 352       ./lib/sparcv9/libt2k.so
 353       ./lib/sparcv9/libunpack.so
 354       ./lib/sparcv9/libverify.so
 355       ./lib/sparcv9/libzip.so
 356       ./lib/sparcv9/server/libjvm.so
 357       ./bin/appletviewer
 358       ./bin/idlj
 359       ./bin/jar
 360       ./bin/jarsigner
 361       ./bin/java
 362       ./bin/javac
 363       ./bin/javadoc
 364       ./bin/javah
 365       ./bin/javap
 366       ./bin/jdeps
 367       ./bin/jcmd
 368       ./bin/jconsole
 369       ./bin/jdb
 370       ./bin/jimage
 371       ./bin/jinfo
 372       ./bin/jjs
 373       ./bin/jlink
 374       ./bin/jmap
 375       ./bin/jmod
 376       ./bin/jps
 377       ./bin/jrunscript
 378       ./bin/jsadebugd
 379       ./bin/jstack
 380       ./bin/jstat
 381       ./bin/jstatd
 382       ./bin/keytool
 383       ./bin/orbd
 384       ./bin/pack200
 385       ./bin/policytool
 386       ./bin/rmic
 387       ./bin/rmid
 388       ./bin/rmiregistry
 389       ./bin/schemagen
 390       ./bin/serialver
 391       ./bin/servertool
 392       ./bin/tnameserv
 393       ./bin/unpack200
 394       ./bin/wsgen
 395       ./bin/wsimport
 396       ./bin/xjc
 397       "
 398 
 399   DIS_DIFF_FILTER="$SED \
 400       -e 's/^[0-9a-f]\{16\}/<ADDR>:/' \
 401       -e 's/^ *[0-9a-f]\{3,8\}:/  <ADDR>:/' \
 402       -e 's/:   [0-9a-f][0-9a-f]\( [0-9a-f][0-9a-f]\)\{2,10\}/: <NUMS>/' \
 403       -e 's/\$[a-zA-Z0-9_\$]\{15\}\./<SYM>./' \
 404       -e 's/, [0-9a-fx\-]\{1,8\}/, <ADDR>/g' \
 405       -e 's/0x[0-9a-f]\{1,8\}/<HEX>/g' \
 406       -e 's/\! [0-9a-f]\{1,8\} /! <ADDR> /' \
 407       -e 's/call  [0-9a-f]\{4,7\}/call  <ADDR>/' \
 408       -e 's/%hi(0),/%hi(<HEX>),/' \
 409       "
 410 
 411   KNOWN_DIS_DIFF="
 412       ./lib/sparcv9/libsaproc.so
 413   "
 414 
 415   MAX_KNOWN_DIS_DIFF_SIZE="3000"
 416 
 417   # On slowdebug the disassembly can differ randomly.
 418   if [ "$DEBUG_LEVEL" = "slowdebug" ]; then
 419     ACCEPTED_DIS_DIFF="
 420         ./lib/sparcv9/libfontmanager.so
 421         ./lib/sparcv9/server/libjvm.so
 422     "
 423   fi
 424 
 425   SKIP_FULLDUMP_DIFF="true"
 426 
 427 fi
 428 
 429 
 430 if [ "$OPENJDK_TARGET_OS" = "windows" ]; then
 431 
 432   ACCEPTED_JARZIP_CONTENTS="
 433       /modules_libs/java.security.jgss/w2k_lsa_auth.diz
 434       /modules_libs/java.security.jgss/w2k_lsa_auth.dll
 435       "
 436 
 437   # Probably should add all libs here
 438   ACCEPTED_SMALL_SIZE_DIFF="
 439       ./demo/jvmti/gctest/lib/gctest.dll
 440       ./demo/jvmti/heapTracker/lib/heapTracker.dll
 441       ./demo/jvmti/minst/lib/minst.dll
 442       ./bin/attach.dll
 443       ./bin/jsoundds.dll
 444       ./bin/client/jvm.dll
 445       ./bin/server/jvm.dll
 446       ./bin/appletviewer.exe
 447       ./bin/idlj.exe
 448       ./bin/jar.exe
 449       ./bin/jarsigner.exe
 450       ./bin/java-rmi.exe
 451       ./bin/java.exe
 452       ./bin/javac.exe
 453       ./bin/javadoc.exe
 454       ./bin/javah.exe
 455       ./bin/javap.exe
 456       ./bin/jdeps.exe
 457       ./bin/javaw.exe
 458       ./bin/jcmd.exe
 459       ./bin/jconsole.exe
 460       ./bin/jdb.exe
 461       ./bin/jimage.exe
 462       ./bin/jinfo.exe
 463       ./bin/jjs.exe
 464       ./bin/jlink.exe
 465       ./bin/jmap.exe
 466       ./bin/jmod.exe
 467       ./bin/jps.exe
 468       ./bin/jrunscript.exe
 469       ./bin/jsadebugd.exe
 470       ./bin/jstack.exe
 471       ./bin/jstat.exe
 472       ./bin/jstatd.exe
 473       ./bin/keytool.exe
 474       ./bin/kinit.exe
 475       ./bin/klist.exe
 476       ./bin/ktab.exe
 477       ./bin/orbd.exe
 478       ./bin/pack200.exe
 479       ./bin/policytool.exe
 480       ./bin/rmic.exe
 481       ./bin/rmid.exe
 482       ./bin/rmiregistry.exe
 483       ./bin/schemagen.exe
 484       ./bin/serialver.exe
 485       ./bin/servertool.exe
 486       ./bin/tnameserv.exe
 487       ./bin/unpack200.exe
 488       ./bin/wsgen.exe
 489       ./bin/wsimport.exe
 490       ./bin/xjc.exe
 491       "
 492 
 493   ACCEPTED_DIS_DIFF="
 494       ./bin/jabswitch.exe
 495       "
 496 
 497   if [ "$OPENJDK_TARGET_CPU" = "x86" ]; then
 498     DIS_DIFF_FILTER="$SED -r \
 499         -e 's/^  [0-9A-F]{16}: //' \
 500         -e 's/^  [0-9A-F]{8}: /  <ADDR>: /' \
 501         -e 's/(offset \?\?)_C@_.*/\1<SYM>/' \
 502         -e 's/[@?][A-Za-z0-9_]{1,25}/<SYM>/' \
 503         -e 's/([-,+])[0-9A-F]{2,16}/\1<HEXSTR>/g' \
 504         -e 's/\[[0-9A-F]{4,16}h\]/[<HEXSTR>]/' \
 505         -e 's/: ([a-z]{2}[a-z ]{2})        [0-9A-F]{2,16}h?$/: \1        <HEXSTR>/' \
 506         -e 's/_20[0-9]{2}_[0-1][0-9]_[0-9]{2}/_<DATE>/' \
 507         "
 508   elif [ "$OPENJDK_TARGET_CPU" = "x86_64" ]; then
 509     DIS_DIFF_FILTER="$SED -r \
 510         -e 's/^  [0-9A-F]{16}: //' \
 511         -e 's/\[[0-9A-F]{4,16}h\]/[<HEXSTR>]/' \
 512         -e 's/([,+])[0-9A-F]{2,16}h/\1<HEXSTR>/' \
 513         -e 's/([a-z]{2}[a-z ]{2})        [0-9A-F]{4,16}$/\1        <HEXSTR>/' \
 514         -e 's/\[\?\?_C@_.*/[<SYM>]/' \
 515         "
 516   fi
 517 
 518   SKIP_BIN_DIFF="true"
 519   SKIP_FULLDUMP_DIFF="true"
 520 
 521   # NOTE: When comparing the old and new hotspot builds, the server jvm.dll
 522   # cannot be made equal in disassembly. Some functions just always end up
 523   # in different order. So for now, accept the difference but put a limit
 524   # on the size. The different order of functions shouldn't result in a very
 525   # big diff.
 526   KNOWN_DIS_DIFF="
 527       ./bin/server/jvm.dll
 528       "
 529   MAX_KNOWN_DIS_DIFF_SIZE="2000000"
 530 fi
 531 
 532 
 533 if [ "$OPENJDK_TARGET_OS" = "macosx" ]; then
 534 
 535   ACCEPTED_JARZIP_CONTENTS="
 536       /META-INF/INDEX.LIST
 537       "
 538 
 539   ACCEPTED_BIN_DIFF="
 540       ./bin/appletviewer
 541       ./bin/idlj
 542       ./bin/jar
 543       ./bin/jarsigner
 544       ./bin/java
 545       ./bin/javac
 546       ./bin/javadoc
 547       ./bin/javah
 548       ./bin/javap
 549       ./bin/javaws
 550       ./bin/jdeps
 551       ./bin/jcmd
 552       ./bin/jconsole
 553       ./bin/jdb
 554       ./bin/jimage
 555       ./bin/jinfo
 556       ./bin/jjs
 557       ./bin/jlink
 558       ./bin/jmap
 559       ./bin/jmod
 560       ./bin/jps
 561       ./bin/jrunscript
 562       ./bin/jsadebugd
 563       ./bin/jstack
 564       ./bin/jstat
 565       ./bin/jstatd
 566       ./bin/keytool
 567       ./bin/orbd
 568       ./bin/pack200
 569       ./bin/policytool
 570       ./bin/rmic
 571       ./bin/rmid
 572       ./bin/rmiregistry
 573       ./bin/schemagen
 574       ./bin/serialver
 575       ./bin/servertool
 576       ./bin/tnameserv
 577       ./bin/wsgen
 578       ./bin/wsimport
 579       ./bin/xjc
 580       ./demo/jvmti/compiledMethodLoad/lib/libcompiledMethodLoad.dylib
 581       ./demo/jvmti/gctest/lib/libgctest.dylib
 582       ./demo/jvmti/heapTracker/lib/libheapTracker.dylib
 583       ./demo/jvmti/heapViewer/lib/libheapViewer.dylib
 584       ./demo/jvmti/minst/lib/libminst.dylib
 585       ./demo/jvmti/mtrace/lib/libmtrace.dylib
 586       ./demo/jvmti/versionCheck/lib/libversionCheck.dylib
 587       ./demo/jvmti/waiters/lib/libwaiters.dylib
 588       ./Contents/Home/bin/_javaws
 589       ./Contents/Home/bin/javaws
 590       ./Contents/Home/bin/idlj
 591       ./Contents/Home/bin/servertool
 592       ./Contents/Home/lib/shortcuts/JavaWSApplicationStub
 593       ./Contents/Home/lib/jli/libjli.dylib
 594       ./Contents/Home/lib/jspawnhelper
 595       ./Contents/Home/lib/libAppleScriptEngine.dylib
 596       ./Contents/Home/lib/libattach.dylib
 597       ./Contents/Home/lib/libawt_lwawt.dylib
 598       ./Contents/Home/lib/libdeploy.dylib
 599       ./Contents/Home/lib/libdt_socket.dylib
 600       ./Contents/Home/lib/libinstrument.dylib
 601       ./Contents/Home/lib/libjdwp.dylib
 602       ./Contents/Home/lib/libjsdt.dylib
 603       ./Contents/Home/lib/libjsig.dylib
 604       ./Contents/Home/lib/libmanagement.dylib
 605       ./Contents/Home/lib/libnpjp2.dylib
 606       ./Contents/Home/lib/libosx.dylib
 607       ./Contents/Home/lib/libosxapp.dylib
 608       ./Contents/Home/lib/libosxui.dylib
 609       ./Contents/Home/lib/libverify.dylib
 610       ./Contents/Home/lib/libsaproc.dylib
 611       ./Contents/Home/lib/libsplashscreen.dylib
 612       ./Contents/Home/lib/server/libjsig.dylib
 613       ./Contents/Home/lib/server/libjvm.dylib
 614       ./Contents/Home/lib/deploy/JavaControlPanel.prefPane/Contents/MacOS/JavaControlPanel
 615       ./Contents/Resources/JavaControlPanelHelper
 616       ./Contents/Resources/JavaUpdater.app/Contents/MacOS/JavaUpdater
 617       ./Contents/Resources/JavawsLauncher.app/Contents/MacOS/JavawsLauncher
 618       ./lib/shortcuts/JavaWSApplicationStub
 619       ./lib/jli/libjli.dylib
 620       ./lib/jspawnhelper
 621       ./lib/libAppleScriptEngine.dylib
 622       ./lib/libattach.dylib
 623       ./lib/libawt_lwawt.dylib
 624       ./lib/libdeploy.dylib
 625       ./lib/libdt_socket.dylib
 626       ./lib/libinstrument.dylib
 627       ./lib/libjdwp.dylib
 628       ./lib/libjsdt.dylib
 629       ./lib/libjsig.dylib
 630       ./lib/libmanagement.dylib
 631       ./lib/libnpjp2.dylib
 632       ./lib/libosx.dylib
 633       ./lib/libosxapp.dylib
 634       ./lib/libosxui.dylib
 635       ./lib/libverify.dylib
 636       ./lib/libsaproc.dylib
 637       ./lib/libsplashscreen.dylib
 638       ./lib/server/libjsig.dylib
 639       ./lib/server/libjvm.dylib
 640       ./lib/deploy/JavaControlPanel.prefPane/Contents/MacOS/JavaControlPanel
 641       ./Versions/A/Resources/finish_installation.app/Contents/MacOS/finish_installation
 642       ./Versions/A/Sparkle
 643       "
 644 
 645   SORT_SYMBOLS="
 646       ./Contents/Home/lib/libsaproc.dylib
 647       ./lib/libsaproc.dylib
 648       ./lib/libjsig.dylib
 649       "
 650 
 651   ACCEPTED_SMALL_SIZE_DIFF="$ACCEPTED_BIN_DIFF"
 652 
 653   DIS_DIFF_FILTER="LANG=C $SED \
 654       -e 's/0x[0-9a-f]\{3,16\}/<HEXSTR>/g' -e 's/^[0-9a-f]\{12,20\}/<ADDR>/' \
 655       -e 's/-20[0-9][0-9]-[0-1][0-9]-[0-3][0-9]-[0-2][0-9]\{5\}/<DATE>/g' \
 656       -e 's/), built on .*/), <DATE>/' \
 657       "
 658 
 659 fi