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" ] && [ "$OPENJDK_TARGET_CPU" = "x86" ]; 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/hprof/lib/libhprof.so
  46 ./demo/jvmti/minst/lib/libminst.so
  47 ./demo/jvmti/mtrace/lib/libmtrace.so
  48 ./demo/jvmti/versionCheck/lib/libversionCheck.so
  49 ./demo/jvmti/waiters/lib/libwaiters.so
  50 "
  51 
  52 ACCEPTED_BIN_DIFF="
  53 ./demo/jvmti/compiledMethodLoad/lib/libcompiledMethodLoad.so
  54 ./demo/jvmti/gctest/lib/libgctest.so
  55 ./demo/jvmti/heapTracker/lib/libheapTracker.so
  56 ./demo/jvmti/heapViewer/lib/libheapViewer.so
  57 ./demo/jvmti/hprof/lib/libhprof.so
  58 ./demo/jvmti/minst/lib/libminst.so
  59 ./demo/jvmti/mtrace/lib/libmtrace.so
  60 ./demo/jvmti/versionCheck/lib/libversionCheck.so
  61 ./demo/jvmti/waiters/lib/libwaiters.so
  62 ./jre/lib/i386/client/libjvm.so
  63 ./jre/lib/i386/libattach.so
  64 ./jre/lib/i386/libdt_socket.so
  65 ./jre/lib/i386/libhprof.so
  66 ./jre/lib/i386/libinstrument.so
  67 ./jre/lib/i386/libjava_crw_demo.so
  68 ./jre/lib/i386/libjsdt.so
  69 ./jre/lib/i386/libmanagement.so
  70 ./jre/lib/i386/libnpt.so
  71 ./jre/lib/i386/libverify.so
  72 ./jre/lib/i386/server/libjvm.so
  73 ./bin/appletviewer
  74 ./bin/extcheck
  75 ./bin/idlj
  76 ./bin/jar
  77 ./bin/jarsigner
  78 ./bin/java
  79 ./bin/javac
  80 ./bin/javadoc
  81 ./bin/javah
  82 ./bin/javap
  83 ./bin/jcmd
  84 ./bin/jconsole
  85 ./bin/jdb
  86 ./bin/jhat
  87 ./bin/jinfo
  88 ./bin/jmap
  89 ./bin/jps
  90 ./bin/jrunscript
  91 ./bin/jsadebugd
  92 ./bin/jstack
  93 ./bin/jstat
  94 ./bin/jstatd
  95 ./bin/keytool
  96 ./bin/native2ascii
  97 ./bin/orbd
  98 ./bin/pack200
  99 ./bin/policytool
 100 ./bin/rmic
 101 ./bin/rmid
 102 ./bin/rmiregistry
 103 ./bin/schemagen
 104 ./bin/serialver
 105 ./bin/servertool
 106 ./bin/tnameserv
 107 ./bin/wsgen
 108 ./bin/wsimport
 109 ./bin/xjc
 110 ./jre/bin/java
 111 ./jre/bin/keytool
 112 ./jre/bin/orbd
 113 ./jre/bin/pack200
 114 ./jre/bin/policytool
 115 ./jre/bin/rmid
 116 ./jre/bin/rmiregistry
 117 ./jre/bin/servertool
 118 ./jre/bin/tnameserv
 119 "
 120 
 121 fi
 122 
 123 if [ "$OPENJDK_TARGET_OS" = "linux" ] && [ "$OPENJDK_TARGET_CPU" = "x86_64" ]; then
 124 
 125 STRIP_BEFORE_COMPARE="
 126 ./demo/jvmti/compiledMethodLoad/lib/libcompiledMethodLoad.so
 127 ./demo/jvmti/gctest/lib/libgctest.so
 128 ./demo/jvmti/heapTracker/lib/libheapTracker.so
 129 ./demo/jvmti/heapViewer/lib/libheapViewer.so
 130 ./demo/jvmti/hprof/lib/libhprof.so
 131 ./demo/jvmti/minst/lib/libminst.so
 132 ./demo/jvmti/mtrace/lib/libmtrace.so
 133 ./demo/jvmti/versionCheck/lib/libversionCheck.so
 134 ./demo/jvmti/waiters/lib/libwaiters.so
 135 "
 136 
 137 ACCEPTED_BIN_DIFF="
 138 ./demo/jvmti/compiledMethodLoad/lib/libcompiledMethodLoad.so
 139 ./demo/jvmti/gctest/lib/libgctest.so
 140 ./demo/jvmti/heapTracker/lib/libheapTracker.so
 141 ./demo/jvmti/heapViewer/lib/libheapViewer.so
 142 ./demo/jvmti/hprof/lib/libhprof.so
 143 ./demo/jvmti/minst/lib/libminst.so
 144 ./demo/jvmti/mtrace/lib/libmtrace.so
 145 ./demo/jvmti/versionCheck/lib/libversionCheck.so
 146 ./demo/jvmti/waiters/lib/libwaiters.so
 147 ./jre/lib/amd64/libattach.so
 148 ./jre/lib/amd64/libdt_socket.so
 149 ./jre/lib/amd64/libhprof.so
 150 ./jre/lib/amd64/libinstrument.so
 151 ./jre/lib/amd64/libjava_crw_demo.so
 152 ./jre/lib/amd64/libjsdt.so
 153 ./jre/lib/amd64/libjsig.so
 154 ./jre/lib/amd64/libmanagement.so
 155 ./jre/lib/amd64/libnpt.so
 156 ./jre/lib/amd64/libsaproc.so
 157 ./jre/lib/amd64/libverify.so
 158 ./jre/lib/amd64/server/libjsig.so
 159 ./jre/lib/amd64/server/libjvm.so
 160 ./bin/appletviewer
 161 ./bin/extcheck
 162 ./bin/idlj
 163 ./bin/jar
 164 ./bin/jarsigner
 165 ./bin/java
 166 ./bin/javac
 167 ./bin/javadoc
 168 ./bin/javah
 169 ./bin/javap
 170 ./bin/jcmd
 171 ./bin/jconsole
 172 ./bin/jdb
 173 ./bin/jhat
 174 ./bin/jinfo
 175 ./bin/jmap
 176 ./bin/jps
 177 ./bin/jrunscript
 178 ./bin/jsadebugd
 179 ./bin/jstack
 180 ./bin/jstat
 181 ./bin/jstatd
 182 ./bin/keytool
 183 ./bin/native2ascii
 184 ./bin/orbd
 185 ./bin/pack200
 186 ./bin/policytool
 187 ./bin/rmic
 188 ./bin/rmid
 189 ./bin/rmiregistry
 190 ./bin/schemagen
 191 ./bin/serialver
 192 ./bin/servertool
 193 ./bin/tnameserv
 194 ./bin/wsgen
 195 ./bin/wsimport
 196 ./bin/xjc
 197 ./jre/bin/java
 198 ./jre/bin/keytool
 199 ./jre/bin/orbd
 200 ./jre/bin/pack200
 201 ./jre/bin/policytool
 202 ./jre/bin/rmid
 203 ./jre/bin/rmiregistry
 204 ./jre/bin/servertool
 205 ./jre/bin/tnameserv
 206 "
 207 
 208 fi
 209 
 210 if [ "$OPENJDK_TARGET_OS" = "solaris" ] && [ "$OPENJDK_TARGET_CPU" = "x86" ]; then
 211 
 212 STRIP_BEFORE_COMPARE="
 213 ./demo/jni/Poller/lib/libPoller.so
 214 ./demo/jvmti/compiledMethodLoad/lib/libcompiledMethodLoad.so
 215 ./demo/jvmti/gctest/lib/libgctest.so
 216 ./demo/jvmti/heapTracker/lib/libheapTracker.so
 217 ./demo/jvmti/heapViewer/lib/libheapViewer.so
 218 ./demo/jvmti/hprof/lib/libhprof.so
 219 ./demo/jvmti/minst/lib/libminst.so
 220 ./demo/jvmti/mtrace/lib/libmtrace.so
 221 ./demo/jvmti/versionCheck/lib/libversionCheck.so
 222 ./demo/jvmti/waiters/lib/libwaiters.so
 223 ./jre/lib/i386/jexec
 224 "
 225 
 226 SORT_SYMBOLS="
 227 ./jre/lib/i386/client/libjvm.so
 228 ./jre/lib/i386/libsaproc.so
 229 ./jre/lib/i386/server/libjvm.so
 230 "
 231 
 232 SKIP_BIN_DIFF="true"
 233 
 234 ACCEPTED_SMALL_SIZE_DIFF="
 235 ./demo/jni/Poller/lib/libPoller.so
 236 ./demo/jvmti/compiledMethodLoad/lib/libcompiledMethodLoad.so
 237 ./demo/jvmti/gctest/lib/libgctest.so
 238 ./demo/jvmti/heapTracker/lib/libheapTracker.so
 239 ./demo/jvmti/heapViewer/lib/libheapViewer.so
 240 ./demo/jvmti/hprof/lib/libhprof.so
 241 ./demo/jvmti/minst/lib/libminst.so
 242 ./demo/jvmti/mtrace/lib/libmtrace.so
 243 ./demo/jvmti/versionCheck/lib/libversionCheck.so
 244 ./demo/jvmti/waiters/lib/libwaiters.so
 245 ./jre/lib/i386/client/libjvm.so
 246 ./jre/lib/i386/jli/libjli.so
 247 ./jre/lib/i386/libJdbcOdbc.so
 248 ./jre/lib/i386/libattach.so
 249 ./jre/lib/i386/libawt.so
 250 ./jre/lib/i386/libawt_headless.so
 251 ./jre/lib/i386/libawt_xawt.so
 252 ./jre/lib/i386/libdcpr.so
 253 ./jre/lib/i386/libdt_socket.so
 254 ./jre/lib/i386/libfontmanager.so
 255 ./jre/lib/i386/libhprof.so
 256 ./jre/lib/i386/libinstrument.so
 257 ./jre/lib/i386/libj2gss.so
 258 ./jre/lib/i386/libj2pcsc.so
 259 ./jre/lib/i386/libj2pkcs11.so
 260 ./jre/lib/i386/libj2ucrypto.so
 261 ./jre/lib/i386/libjaas_unix.so
 262 ./jre/lib/i386/libjava.so
 263 ./jre/lib/i386/libjava_crw_demo.so
 264 ./jre/lib/i386/libjawt.so
 265 ./jre/lib/i386/libjdwp.so
 266 ./jre/lib/i386/libjfr.so
 267 ./jre/lib/i386/libjpeg.so
 268 ./jre/lib/i386/libjsdt.so
 269 ./jre/lib/i386/libjsound.so
 270 ./jre/lib/i386/libkcms.so
 271 ./jre/lib/i386/liblcms.so
 272 ./jre/lib/i386/libmanagement.so
 273 ./jre/lib/i386/libmlib_image.so
 274 ./jre/lib/i386/libnet.so
 275 ./jre/lib/i386/libnio.so
 276 ./jre/lib/i386/libnpt.so
 277 ./jre/lib/i386/libsctp.so
 278 ./jre/lib/i386/libsplashscreen.so
 279 ./jre/lib/i386/libsunec.so
 280 ./jre/lib/i386/libsunwjdga.so
 281 ./jre/lib/i386/libt2k.so
 282 ./jre/lib/i386/libunpack.so
 283 ./jre/lib/i386/libverify.so
 284 ./jre/lib/i386/libzip.so
 285 ./jre/lib/i386/libdeploy.so
 286 ./jre/lib/i386/libjavaplugin.so
 287 ./jre/lib/i386/libjavaplugin_jni.so
 288 ./jre/lib/i386/libjavaplugin_nscp.so
 289 ./jre/lib/i386/libjavaplugin_oji.so
 290 ./jre/lib/i386/libnpjp2.so
 291 ./jre/plugin/i386/ns4/libjavaplugin.so
 292 ./jre/plugin/i386/ns7/libjavaplugin_oji.so
 293 ./jre/lib/i386/server/libjvm.so
 294 ./jre/lib/i386/client/64/libjvm_db.so
 295 ./jre/lib/i386/client/64/libjvm_dtrace.so
 296 ./jre/lib/i386/client/libjvm_db.so
 297 ./jre/lib/i386/client/libjvm_dtrace.so
 298 ./jre/lib/i386/server/64/libjvm_db.so
 299 ./jre/lib/i386/server/64/libjvm_dtrace.so
 300 ./jre/lib/i386/server/libjvm_db.so
 301 ./jre/lib/i386/server/libjvm_dtrace.so
 302 ./bin/appletviewer
 303 ./bin/extcheck
 304 ./bin/idlj
 305 ./bin/jar
 306 ./bin/jarsigner
 307 ./bin/java
 308 ./bin/javac
 309 ./bin/javadoc
 310 ./bin/javah
 311 ./bin/javap
 312 ./bin/javaws
 313 ./bin/jcmd
 314 ./bin/jconsole
 315 ./bin/jdb
 316 ./bin/jhat
 317 ./bin/jinfo
 318 ./bin/jmap
 319 ./bin/jps
 320 ./bin/jrunscript
 321 ./bin/jsadebugd
 322 ./bin/jstack
 323 ./bin/jstat
 324 ./bin/jstatd
 325 ./bin/keytool
 326 ./bin/native2ascii
 327 ./bin/orbd
 328 ./bin/pack200
 329 ./bin/policytool
 330 ./bin/rmic
 331 ./bin/rmid
 332 ./bin/rmiregistry
 333 ./bin/schemagen
 334 ./bin/serialver
 335 ./bin/servertool
 336 ./bin/tnameserv
 337 ./bin/unpack200
 338 ./bin/wsgen
 339 ./bin/wsimport
 340 ./bin/xjc
 341 ./jre/bin/java
 342 ./jre/bin/java_vm
 343 ./jre/bin/javaws
 344 ./jre/bin/keytool
 345 ./jre/bin/orbd
 346 ./jre/bin/pack200
 347 ./jre/bin/policytool
 348 ./jre/bin/rmid
 349 ./jre/bin/rmiregistry
 350 ./jre/bin/servertool
 351 ./jre/bin/tnameserv
 352 ./jre/bin/unpack200
 353 ./jre/lib/i386/jexec
 354 "
 355 
 356 SKIP_FULLDUMP_DIFF="true"
 357 
 358 # Filter random C++ symbol strings.
 359 # Some numbers differ randomly.
 360 # Can't use space in these expressions as the shell will mess with them.
 361 DIS_DIFF_FILTER="$SED -e s/\.[a-zA-Z0-9_\$]\{15,15\}/<SYM>/g -e s/\([0-9a-f][0-9a-f].\)\{2,8\}[0-9a-f][0-9a-f]/<NUMS>/g -e s/\(0x\)[0-9a-f]*\([,(>]\)/\1<HEX>\2/g -e s/\(0x\)[0-9a-f]*$/\1<HEX>/g -e s/\(\#.\)[0-9a-f]*\(.<\)/\1<HEX>\2/g -e s/[\.A-Za-z0-9%]\{16,16\}$/<BIN>/g"
 362 
 363 fi
 364 
 365 if [ "$OPENJDK_TARGET_OS" = "solaris" ] && [ "$OPENJDK_TARGET_CPU" = "x86_64" ]; then
 366 
 367 STRIP_BEFORE_COMPARE="
 368 ./demo/jni/Poller/lib/amd64/libPoller.so
 369 ./demo/jvmti/compiledMethodLoad/lib/amd64/libcompiledMethodLoad.so
 370 ./demo/jvmti/gctest/lib/amd64/libgctest.so
 371 ./demo/jvmti/heapTracker/lib/amd64/libheapTracker.so
 372 ./demo/jvmti/heapViewer/lib/amd64/libheapViewer.so
 373 ./demo/jvmti/hprof/lib/amd64/libhprof.so
 374 ./demo/jvmti/minst/lib/amd64/libminst.so
 375 ./demo/jvmti/mtrace/lib/amd64/libmtrace.so
 376 ./demo/jvmti/versionCheck/lib/amd64/libversionCheck.so
 377 ./demo/jvmti/waiters/lib/amd64/libwaiters.so
 378 "
 379 
 380 SORT_SYMBOLS="
 381 ./jre/lib/amd64/server/libjvm.so
 382 ./jre/lib/amd64/libsaproc.so
 383 "
 384 
 385 SKIP_BIN_DIFF="true"
 386 
 387 ACCEPTED_SMALL_SIZE_DIFF="
 388 ./demo/jni/Poller/lib/amd64/libPoller.so
 389 ./demo/jvmti/compiledMethodLoad/lib/amd64/libcompiledMethodLoad.so
 390 ./demo/jvmti/gctest/lib/amd64/libgctest.so
 391 ./demo/jvmti/heapTracker/lib/amd64/libheapTracker.so
 392 ./demo/jvmti/heapViewer/lib/amd64/libheapViewer.so
 393 ./demo/jvmti/hprof/lib/amd64/libhprof.so
 394 ./demo/jvmti/minst/lib/amd64/libminst.so
 395 ./demo/jvmti/mtrace/lib/amd64/libmtrace.so
 396 ./demo/jvmti/versionCheck/lib/amd64/libversionCheck.so
 397 ./demo/jvmti/waiters/lib/amd64/libwaiters.so
 398 ./jre/lib/amd64/jli/libjli.so
 399 ./jre/lib/amd64/libJdbcOdbc.so
 400 ./jre/lib/amd64/libattach.so
 401 ./jre/lib/amd64/libawt.so
 402 ./jre/lib/amd64/libawt_headless.so
 403 ./jre/lib/amd64/libawt_xawt.so
 404 ./jre/lib/amd64/libdcpr.so
 405 ./jre/lib/amd64/libdt_socket.so
 406 ./jre/lib/amd64/libfontmanager.so
 407 ./jre/lib/amd64/libhprof.so
 408 ./jre/lib/amd64/libinstrument.so
 409 ./jre/lib/amd64/libj2gss.so
 410 ./jre/lib/amd64/libj2pcsc.so
 411 ./jre/lib/amd64/libj2pkcs11.so
 412 ./jre/lib/amd64/libj2ucrypto.so
 413 ./jre/lib/amd64/libjaas_unix.so
 414 ./jre/lib/amd64/libjava.so
 415 ./jre/lib/amd64/libjava_crw_demo.so
 416 ./jre/lib/amd64/libjawt.so
 417 ./jre/lib/amd64/libjdwp.so
 418 ./jre/lib/amd64/libjfr.so
 419 ./jre/lib/amd64/libjpeg.so
 420 ./jre/lib/amd64/libjsdt.so
 421 ./jre/lib/amd64/libjsound.so
 422 ./jre/lib/amd64/libkcms.so
 423 ./jre/lib/amd64/liblcms.so
 424 ./jre/lib/amd64/libmanagement.so
 425 ./jre/lib/amd64/libmlib_image.so
 426 ./jre/lib/amd64/libnet.so
 427 ./jre/lib/amd64/libnio.so
 428 ./jre/lib/amd64/libnpt.so
 429 ./jre/lib/amd64/libsctp.so
 430 ./jre/lib/amd64/libsplashscreen.so
 431 ./jre/lib/amd64/libsunec.so
 432 ./jre/lib/amd64/libsunwjdga.so
 433 ./jre/lib/amd64/libt2k.so
 434 ./jre/lib/amd64/libunpack.so
 435 ./jre/lib/amd64/libverify.so
 436 ./jre/lib/amd64/libzip.so
 437 ./jre/lib/amd64/server/64/libjvm_db.so
 438 ./jre/lib/amd64/server/64/libjvm_dtrace.so
 439 ./jre/lib/amd64/server/libjvm.so
 440 ./jre/lib/amd64/server/libjvm_db.so
 441 ./jre/lib/amd64/server/libjvm_dtrace.so
 442 ./bin/amd64/appletviewer
 443 ./bin/amd64/extcheck
 444 ./bin/amd64/idlj
 445 ./bin/amd64/jar
 446 ./bin/amd64/jarsigner
 447 ./bin/amd64/java
 448 ./bin/amd64/javac
 449 ./bin/amd64/javadoc
 450 ./bin/amd64/javah
 451 ./bin/amd64/javap
 452 ./bin/amd64/jcmd
 453 ./bin/amd64/jconsole
 454 ./bin/amd64/jdb
 455 ./bin/amd64/jhat
 456 ./bin/amd64/jinfo
 457 ./bin/amd64/jmap
 458 ./bin/amd64/jps
 459 ./bin/amd64/jrunscript
 460 ./bin/amd64/jsadebugd
 461 ./bin/amd64/jstack
 462 ./bin/amd64/jstat
 463 ./bin/amd64/jstatd
 464 ./bin/amd64/keytool
 465 ./bin/amd64/native2ascii
 466 ./bin/amd64/orbd
 467 ./bin/amd64/pack200
 468 ./bin/amd64/policytool
 469 ./bin/amd64/rmic
 470 ./bin/amd64/rmid
 471 ./bin/amd64/rmiregistry
 472 ./bin/amd64/schemagen
 473 ./bin/amd64/serialver
 474 ./bin/amd64/servertool
 475 ./bin/amd64/tnameserv
 476 ./bin/amd64/unpack200
 477 ./bin/amd64/wsgen
 478 ./bin/amd64/wsimport
 479 ./bin/amd64/xjc
 480 ./jre/bin/amd64/java
 481 ./jre/bin/amd64/keytool
 482 ./jre/bin/amd64/orbd
 483 ./jre/bin/amd64/pack200
 484 ./jre/bin/amd64/policytool
 485 ./jre/bin/amd64/rmid
 486 ./jre/bin/amd64/rmiregistry
 487 ./jre/bin/amd64/servertool
 488 ./jre/bin/amd64/tnameserv
 489 ./jre/bin/amd64/unpack200
 490 ./jre/lib/amd64/jexec
 491 "
 492 
 493 SKIP_FULLDUMP_DIFF="true"
 494 
 495 # Filter random C++ symbol strings.
 496 # Some numbers differ randomly.
 497 # Can't use space in these expressions as the shell will mess with them.
 498 DIS_DIFF_FILTER="$SED -e s/\.[a-zA-Z0-9_\$]\{15,15\}/<SYM>/g -e s/\([0-9a-f][0-9a-f].\)\{2,8\}[0-9a-f][0-9a-f]/<NUMS>/g -e s/\(0x\)[0-9a-f]*\([,(>]\)/\1<HEX>\2/g -e s/\(0x\)[0-9a-f]*$/\1<HEX>/g -e s/\(\#.\)[0-9a-f]*\(.<\)/\1<HEX>\2/g -e s/[\.A-Za-z0-9%]\{16,16\}$/<BIN>/g"
 499 
 500 fi
 501 
 502 if [ "$OPENJDK_TARGET_OS" = "solaris" ] && [ "$OPENJDK_TARGET_CPU" = "sparc" ]; then
 503 
 504 STRIP_BEFORE_COMPARE="
 505 ./demo/jni/Poller/lib/libPoller.so
 506 ./demo/jvmti/compiledMethodLoad/lib/libcompiledMethodLoad.so
 507 ./demo/jvmti/gctest/lib/libgctest.so
 508 ./demo/jvmti/heapTracker/lib/libheapTracker.so
 509 ./demo/jvmti/heapViewer/lib/libheapViewer.so
 510 ./demo/jvmti/hprof/lib/libhprof.so
 511 ./demo/jvmti/minst/lib/libminst.so
 512 ./demo/jvmti/mtrace/lib/libmtrace.so
 513 ./demo/jvmti/versionCheck/lib/libversionCheck.so
 514 ./demo/jvmti/waiters/lib/libwaiters.so
 515 ./jre/lib/sparc/jexec
 516 "
 517 
 518 SORT_SYMBOLS="
 519 ./demo/jvmti/waiters/lib/libwaiters.so
 520 ./jre/lib/sparc/client/64/libjvm_db.so
 521 ./jre/lib/sparc/client/64/libjvm_dtrace.so
 522 ./jre/lib/sparc/client/libjsig.so
 523 ./jre/lib/sparc/client/libjvm.so
 524 ./jre/lib/sparc/client/libjvm_db.so
 525 ./jre/lib/sparc/client/libjvm_dtrace.so
 526 ./jre/lib/sparc/libjsig.so
 527 ./jre/lib/sparc/libsaproc.so
 528 ./jre/lib/sparc/server/64/libjvm_db.so
 529 ./jre/lib/sparc/server/64/libjvm_dtrace.so
 530 ./jre/lib/sparc/server/libjsig.so
 531 ./jre/lib/sparc/server/libjvm.so
 532 ./jre/lib/sparc/server/libjvm_db.so
 533 ./jre/lib/sparc/server/libjvm_dtrace.so
 534 "
 535 
 536 SKIP_BIN_DIFF="true"
 537 
 538 ACCEPTED_SMALL_SIZE_DIFF="
 539 ./demo/jni/Poller/lib/libPoller.so
 540 ./demo/jvmti/compiledMethodLoad/lib/libcompiledMethodLoad.so
 541 ./demo/jvmti/gctest/lib/libgctest.so
 542 ./demo/jvmti/heapTracker/lib/libheapTracker.so
 543 ./demo/jvmti/heapViewer/lib/libheapViewer.so
 544 ./demo/jvmti/hprof/lib/libhprof.so
 545 ./demo/jvmti/minst/lib/libminst.so
 546 ./demo/jvmti/mtrace/lib/libmtrace.so
 547 ./demo/jvmti/versionCheck/lib/libversionCheck.so
 548 ./demo/jvmti/waiters/lib/libwaiters.so
 549 ./jre/lib/sparc/client/libjvm.so
 550 ./jre/lib/sparc/jli/libjli.so
 551 ./jre/lib/sparc/libJdbcOdbc.so
 552 ./jre/lib/sparc/libattach.so
 553 ./jre/lib/sparc/libawt.so
 554 ./jre/lib/sparc/libawt_headless.so
 555 ./jre/lib/sparc/libawt_xawt.so
 556 ./jre/lib/sparc/libdcpr.so
 557 ./jre/lib/sparc/libdt_socket.so
 558 ./jre/lib/sparc/libfontmanager.so
 559 ./jre/lib/sparc/libhprof.so
 560 ./jre/lib/sparc/libinstrument.so
 561 ./jre/lib/sparc/libj2gss.so
 562 ./jre/lib/sparc/libj2pcsc.so
 563 ./jre/lib/sparc/libj2pkcs11.so
 564 ./jre/lib/sparc/libj2ucrypto.so
 565 ./jre/lib/sparc/libjaas_unix.so
 566 ./jre/lib/sparc/libjava.so
 567 ./jre/lib/sparc/libjava_crw_demo.so
 568 ./jre/lib/sparc/libjawt.so
 569 ./jre/lib/sparc/libjdwp.so
 570 ./jre/lib/sparc/libjfr.so
 571 ./jre/lib/sparc/libjpeg.so
 572 ./jre/lib/sparc/libjsdt.so
 573 ./jre/lib/sparc/libjsound.so
 574 ./jre/lib/sparc/libkcms.so
 575 ./jre/lib/sparc/liblcms.so
 576 ./jre/lib/sparc/libmanagement.so
 577 ./jre/lib/sparc/libmlib_image.so
 578 ./jre/lib/sparc/libmlib_image_v.so
 579 ./jre/lib/sparc/libnet.so
 580 ./jre/lib/sparc/libnio.so
 581 ./jre/lib/sparc/libnpt.so
 582 ./jre/lib/sparc/libsctp.so
 583 ./jre/lib/sparc/libsplashscreen.so
 584 ./jre/lib/sparc/libsunec.so
 585 ./jre/lib/sparc/libsunwjdga.so
 586 ./jre/lib/sparc/libt2k.so
 587 ./jre/lib/sparc/libunpack.so
 588 ./jre/lib/sparc/libverify.so
 589 ./jre/lib/sparc/libzip.so
 590 ./jre/lib/sparc/libdeploy.so
 591 ./jre/lib/sparc/libjavaplugin.so
 592 ./jre/lib/sparc/libjavaplugin_jni.so
 593 ./jre/lib/sparc/libjavaplugin_nscp.so
 594 ./jre/lib/sparc/libjavaplugin_oji.so
 595 ./jre/lib/sparc/libnpjp2.so
 596 ./jre/plugin/sparc/ns4/libjavaplugin.so
 597 ./jre/plugin/sparc/ns7/libjavaplugin_oji.so
 598 ./jre/lib/sparc/server/libjvm.so
 599 ./bin/appletviewer
 600 ./bin/extcheck
 601 ./bin/idlj
 602 ./bin/jar
 603 ./bin/jarsigner
 604 ./bin/java
 605 ./bin/javac
 606 ./bin/javadoc
 607 ./bin/javah
 608 ./bin/javap
 609 ./bin/javaws
 610 ./bin/jcmd
 611 ./bin/jconsole
 612 ./bin/jdb
 613 ./bin/jhat
 614 ./bin/jinfo
 615 ./bin/jmap
 616 ./bin/jps
 617 ./bin/jrunscript
 618 ./bin/jsadebugd
 619 ./bin/jstack
 620 ./bin/jstat
 621 ./bin/jstatd
 622 ./bin/keytool
 623 ./bin/native2ascii
 624 ./bin/orbd
 625 ./bin/pack200
 626 ./bin/policytool
 627 ./bin/rmic
 628 ./bin/rmid
 629 ./bin/rmiregistry
 630 ./bin/schemagen
 631 ./bin/serialver
 632 ./bin/servertool
 633 ./bin/tnameserv
 634 ./bin/unpack200
 635 ./bin/wsgen
 636 ./bin/wsimport
 637 ./bin/xjc
 638 ./jre/bin/java
 639 ./jre/bin/java_vm
 640 ./jre/bin/javaws
 641 ./jre/bin/keytool
 642 ./jre/bin/orbd
 643 ./jre/bin/pack200
 644 ./jre/bin/policytool
 645 ./jre/bin/rmid
 646 ./jre/bin/rmiregistry
 647 ./jre/bin/servertool
 648 ./jre/bin/tnameserv
 649 ./jre/bin/unpack200
 650 ./jre/lib/sparc/jexec
 651 "
 652 
 653 # Filter random C++ symbol strings.
 654 # Some numbers differ randomly.
 655 DIS_DIFF_FILTER="$SED -e s/\$[a-zA-Z0-9_\$]\{15,15\}/<SYM>/g -e s/\([0-9a-f][0-9a-f].[0-9a-f][0-9a-f].[0-9a-f][0-9a-f].\)[0-9a-f][0-9a-f]/\1<NUM>/g -e s/\(%g1,.0x\)[0-9a-f]*\(,.%g1\)/\1<HEX>\2/g -e s/\(!.\)[0-9a-f]*\(.<SUNWprivate_1.1+0x\)[0-9a-f]*/\1<NUM>\2<HEX>/g"
 656 
 657 # Some xor instructions end up with different args in the lib but not in the object files.
 658 ACCEPTED_DIS_DIFF="
 659 ./demo/jvmti/waiters/lib/libwaiters.so
 660 "
 661 
 662 SKIP_FULLDUMP_DIFF="true"
 663 
 664 fi
 665 
 666 if [ "$OPENJDK_TARGET_OS" = "solaris" ] && [ "$OPENJDK_TARGET_CPU" = "sparcv9" ]; then
 667 
 668 STRIP_BEFORE_COMPARE="
 669 ./demo/jni/Poller/lib/sparcv9/libPoller.so
 670 ./demo/jvmti/compiledMethodLoad/lib/sparcv9/libcompiledMethodLoad.so
 671 ./demo/jvmti/gctest/lib/sparcv9/libgctest.so
 672 ./demo/jvmti/heapTracker/lib/sparcv9/libheapTracker.so
 673 ./demo/jvmti/heapViewer/lib/sparcv9/libheapViewer.so
 674 ./demo/jvmti/hprof/lib/sparcv9/libhprof.so
 675 ./demo/jvmti/minst/lib/sparcv9/libminst.so
 676 ./demo/jvmti/mtrace/lib/sparcv9/libmtrace.so
 677 ./demo/jvmti/versionCheck/lib/sparcv9/libversionCheck.so
 678 ./demo/jvmti/waiters/lib/sparcv9/libwaiters.so
 679 "
 680 
 681 SORT_SYMBOLS="
 682 ./demo/jvmti/waiters/lib/sparcv9/libwaiters.so
 683 ./jre/lib/sparcv9/libjsig.so
 684 ./jre/lib/sparcv9/libsaproc.so
 685 ./jre/lib/sparcv9/server/libjvm.so
 686 ./jre/lib/sparcv9/server/libjvm_dtrace.so
 687 "
 688 
 689 SKIP_BIN_DIFF="true"
 690 
 691 ACCEPTED_SMALL_SIZE_DIFF="
 692 ./demo/jni/Poller/lib/sparcv9/libPoller.so
 693 ./demo/jvmti/compiledMethodLoad/lib/sparcv9/libcompiledMethodLoad.so
 694 ./demo/jvmti/gctest/lib/sparcv9/libgctest.so
 695 ./demo/jvmti/heapTracker/lib/sparcv9/libheapTracker.so
 696 ./demo/jvmti/heapViewer/lib/sparcv9/libheapViewer.so
 697 ./demo/jvmti/hprof/lib/sparcv9/libhprof.so
 698 ./demo/jvmti/minst/lib/sparcv9/libminst.so
 699 ./demo/jvmti/mtrace/lib/sparcv9/libmtrace.so
 700 ./demo/jvmti/versionCheck/lib/sparcv9/libversionCheck.so
 701 ./demo/jvmti/waiters/lib/sparcv9/libwaiters.so
 702 ./jre/lib/sparcv9/client/libjvm.so
 703 ./jre/lib/sparcv9/jli/libjli.so
 704 ./jre/lib/sparcv9/libJdbcOdbc.so
 705 ./jre/lib/sparcv9/libattach.so
 706 ./jre/lib/sparcv9/libawt.so
 707 ./jre/lib/sparcv9/libawt_headless.so
 708 ./jre/lib/sparcv9/libawt_xawt.so
 709 ./jre/lib/sparcv9/libdcpr.so
 710 ./jre/lib/sparcv9/libdt_socket.so
 711 ./jre/lib/sparcv9/libfontmanager.so
 712 ./jre/lib/sparcv9/libhprof.so
 713 ./jre/lib/sparcv9/libinstrument.so
 714 ./jre/lib/sparcv9/libj2gss.so
 715 ./jre/lib/sparcv9/libj2pcsc.so
 716 ./jre/lib/sparcv9/libj2pkcs11.so
 717 ./jre/lib/sparcv9/libj2ucrypto.so
 718 ./jre/lib/sparcv9/libjaas_unix.so
 719 ./jre/lib/sparcv9/libjava.so
 720 ./jre/lib/sparcv9/libjava_crw_demo.so
 721 ./jre/lib/sparcv9/libjawt.so
 722 ./jre/lib/sparcv9/libjdwp.so
 723 ./jre/lib/sparcv9/libjfr.so
 724 ./jre/lib/sparcv9/libjpeg.so
 725 ./jre/lib/sparcv9/libjsdt.so
 726 ./jre/lib/sparcv9/libjsound.so
 727 ./jre/lib/sparcv9/libkcms.so
 728 ./jre/lib/sparcv9/liblcms.so
 729 ./jre/lib/sparcv9/libmanagement.so
 730 ./jre/lib/sparcv9/libmlib_image.so
 731 ./jre/lib/sparcv9/libmlib_image_v.so
 732 ./jre/lib/sparcv9/libnet.so
 733 ./jre/lib/sparcv9/libnio.so
 734 ./jre/lib/sparcv9/libnpt.so
 735 ./jre/lib/sparcv9/libsctp.so
 736 ./jre/lib/sparcv9/libsplashscreen.so
 737 ./jre/lib/sparcv9/libsunec.so
 738 ./jre/lib/sparcv9/libsunwjdga.so
 739 ./jre/lib/sparcv9/libt2k.so
 740 ./jre/lib/sparcv9/libunpack.so
 741 ./jre/lib/sparcv9/libverify.so
 742 ./jre/lib/sparcv9/libzip.so
 743 ./jre/lib/sparcv9/server/libjvm.so
 744 ./bin/sparcv9/appletviewer
 745 ./bin/sparcv9/extcheck
 746 ./bin/sparcv9/idlj
 747 ./bin/sparcv9/jar
 748 ./bin/sparcv9/jarsigner
 749 ./bin/sparcv9/java
 750 ./bin/sparcv9/javac
 751 ./bin/sparcv9/javadoc
 752 ./bin/sparcv9/javah
 753 ./bin/sparcv9/javap
 754 ./bin/sparcv9/jcmd
 755 ./bin/sparcv9/jconsole
 756 ./bin/sparcv9/jdb
 757 ./bin/sparcv9/jhat
 758 ./bin/sparcv9/jinfo
 759 ./bin/sparcv9/jmap
 760 ./bin/sparcv9/jps
 761 ./bin/sparcv9/jrunscript
 762 ./bin/sparcv9/jsadebugd
 763 ./bin/sparcv9/jstack
 764 ./bin/sparcv9/jstat
 765 ./bin/sparcv9/jstatd
 766 ./bin/sparcv9/keytool
 767 ./bin/sparcv9/native2ascii
 768 ./bin/sparcv9/orbd
 769 ./bin/sparcv9/pack200
 770 ./bin/sparcv9/policytool
 771 ./bin/sparcv9/rmic
 772 ./bin/sparcv9/rmid
 773 ./bin/sparcv9/rmiregistry
 774 ./bin/sparcv9/schemagen
 775 ./bin/sparcv9/serialver
 776 ./bin/sparcv9/servertool
 777 ./bin/sparcv9/tnameserv
 778 ./bin/sparcv9/unpack200
 779 ./bin/sparcv9/wsgen
 780 ./bin/sparcv9/wsimport
 781 ./bin/sparcv9/xjc
 782 ./jre/bin/sparcv9/java
 783 ./jre/bin/sparcv9/keytool
 784 ./jre/bin/sparcv9/orbd
 785 ./jre/bin/sparcv9/pack200
 786 ./jre/bin/sparcv9/policytool
 787 ./jre/bin/sparcv9/rmid
 788 ./jre/bin/sparcv9/rmiregistry
 789 ./jre/bin/sparcv9/servertool
 790 ./jre/bin/sparcv9/tnameserv
 791 ./jre/bin/sparcv9/unpack200
 792 "
 793 
 794 # Filter random C++ symbol strings.
 795 # Some numbers differ randomly.
 796 DIS_DIFF_FILTER="$SED -e s/\$[a-zA-Z0-9_\$]\{15,15\}/<SYM>/g -e s/[0-9a-f][0-9a-f].[0-9a-f][0-9a-f].[0-9a-f][0-9a-f].[0-9a-f][0-9a-f]/<NUMS>/g -e s/\(%g1,.0x\)[0-9a-f]*\(,.%g1\)/\1<HEX>\2/g -e s/\(!.\)[0-9a-f]*\(.<SUNWprivate_1.1+0x\)[0-9a-f]*/\1<NUM>\2<HEX>/g"
 797 
 798 # Some xor instructions end up with different args in the lib but not in the object files.
 799 ACCEPTED_DIS_DIFF="
 800 ./demo/jvmti/waiters/lib/sparcv9/libwaiters.so
 801 "
 802 
 803 SKIP_FULLDUMP_DIFF="true"
 804 
 805 fi
 806 
 807 
 808 if [ "$OPENJDK_TARGET_OS" = "windows" ]; then
 809 
 810 # Probably should add all libs here
 811 ACCEPTED_SMALL_SIZE_DIFF="
 812 ./demo/jvmti/gctest/lib/gctest.dll
 813 ./demo/jvmti/heapTracker/lib/heapTracker.dll
 814 ./demo/jvmti/minst/lib/minst.dll
 815 ./jre/bin/attach.dll
 816 ./jre/bin/java_crw_demo.dll
 817 ./jre/bin/jsoundds.dll
 818 ./bin/appletviewer.exe
 819 ./bin/extcheck.exe
 820 ./bin/idlj.exe
 821 ./bin/jar.exe
 822 ./bin/jarsigner.exe
 823 ./bin/java-rmi.exe
 824 ./bin/java.exe
 825 ./bin/javac.exe
 826 ./bin/javadoc.exe
 827 ./bin/javah.exe
 828 ./bin/javap.exe
 829 ./bin/javaw.exe
 830 ./bin/jcmd.exe
 831 ./bin/jconsole.exe
 832 ./bin/jdb.exe
 833 ./bin/jhat.exe
 834 ./bin/jinfo.exe
 835 ./bin/jmap.exe
 836 ./bin/jps.exe
 837 ./bin/jrunscript.exe
 838 ./bin/jsadebugd.exe
 839 ./bin/jstack.exe
 840 ./bin/jstat.exe
 841 ./bin/jstatd.exe
 842 ./bin/keytool.exe
 843 ./bin/kinit.exe
 844 ./bin/klist.exe
 845 ./bin/ktab.exe
 846 ./bin/native2ascii.exe
 847 ./bin/orbd.exe
 848 ./bin/pack200.exe
 849 ./bin/policytool.exe
 850 ./bin/rmic.exe
 851 ./bin/rmid.exe
 852 ./bin/rmiregistry.exe
 853 ./bin/schemagen.exe
 854 ./bin/serialver.exe
 855 ./bin/servertool.exe
 856 ./bin/tnameserv.exe
 857 ./bin/unpack200.exe
 858 ./bin/wsgen.exe
 859 ./bin/wsimport.exe
 860 ./bin/xjc.exe
 861 ./jre/bin/java-rmi.exe
 862 ./jre/bin/java.exe
 863 ./jre/bin/javaw.exe
 864 ./jre/bin/keytool.exe
 865 ./jre/bin/kinit.exe
 866 ./jre/bin/klist.exe
 867 ./jre/bin/ktab.exe
 868 ./jre/bin/orbd.exe
 869 ./jre/bin/pack200.exe
 870 ./jre/bin/policytool.exe
 871 ./jre/bin/rmid.exe
 872 ./jre/bin/rmiregistry.exe
 873 ./jre/bin/servertool.exe
 874 ./jre/bin/tnameserv.exe
 875 ./jre/bin/unpack200.exe
 876 "
 877 
 878 # On windows, there are unavoidable allignment issues making
 879 # a perfect disasm diff impossible. Filter out the following:
 880 # * Random parts of C++ symbols (this is a bit greedy, but does the trick)
 881 #   @XXXXX
 882 # * Hexadecimal addresses that are sometimes alligned differently.
 883 # * Dates in version strings XXXX_XX_XX.
 884 DIS_DIFF_FILTER="$SED -e s/[@?][A-Z0-9_]\{1,25\}/<SYM>/g -e s/^.\{2,2\}[0-9A-F]\{16,16\}.\{2,2\}//g -e s/[0-9A-F]\{4,16\}h/<HEXSTR>/g -e s/_[0-9]\{4,4\}_[0-9][0-9]_[0-9][0-9]/<DATE>/g"
 885 
 886 SKIP_BIN_DIFF="true"
 887 SKIP_FULLDUMP_DIFF="true"
 888 
 889 fi
 890 
 891 
 892 if [ "$OPENJDK_TARGET_OS" = "macosx" ]; then
 893 ACCEPTED_JARZIP_CONTENTS="
 894 /META-INF/INDEX.LIST
 895 "
 896 
 897 KNOWN_BIN_DIFF="
 898 ./jre/lib/libJObjC.dylib
 899 ./lib/libJObjC.dylib
 900 "
 901 
 902 ACCEPTED_BIN_DIFF="
 903 ./bin/appletviewer
 904 ./bin/extcheck
 905 ./bin/idlj
 906 ./bin/jar
 907 ./bin/jarsigner
 908 ./bin/java
 909 ./bin/javac
 910 ./bin/javadoc
 911 ./bin/javah
 912 ./bin/javap
 913 ./bin/jcmd
 914 ./bin/jconsole
 915 ./bin/jdb
 916 ./bin/jhat
 917 ./bin/jinfo
 918 ./bin/jmap
 919 ./bin/jps
 920 ./bin/jrunscript
 921 ./bin/jsadebugd
 922 ./bin/jstack
 923 ./bin/jstat
 924 ./bin/jstatd
 925 ./bin/keytool
 926 ./bin/native2ascii
 927 ./bin/orbd
 928 ./bin/pack200
 929 ./bin/policytool
 930 ./bin/rmic
 931 ./bin/rmid
 932 ./bin/rmiregistry
 933 ./bin/schemagen
 934 ./bin/serialver
 935 ./bin/servertool
 936 ./bin/tnameserv
 937 ./bin/wsgen
 938 ./bin/wsimport
 939 ./bin/xjc
 940 ./jre/bin/java
 941 ./jre/bin/keytool
 942 ./jre/bin/orbd
 943 ./jre/bin/pack200
 944 ./jre/bin/policytool
 945 ./jre/bin/rmid
 946 ./jre/bin/rmiregistry
 947 ./jre/bin/servertool
 948 ./jre/bin/tnameserv
 949 ./jre/lib/libsaproc.dylib
 950 ./jre/lib/server/libjvm.dylib
 951 ./lib/libsaproc.dylib
 952 ./lib/server/libjvm.dylib
 953 ./lib/deploy/JavaControlPanel.prefPane/Contents/MacOS/JavaControlPanel
 954 "
 955 
 956 KNOWN_SIZE_DIFF="
 957 ./jre/lib/libJObjC.dylib
 958 ./lib/libJObjC.dylib
 959 "
 960 
 961 SORT_SYMBOLS="
 962 ./jre/lib/libJObjC.dylib
 963 ./lib/libJObjC.dylib
 964 "
 965 
 966 KNOWN_SYM_DIFF="
 967 ./jre/lib/libJObjC.dylib
 968 ./lib/libJObjC.dylib
 969 "
 970 
 971 KNOWN_ELF_DIFF="
 972 ./jre/lib/libJObjC.dylib
 973 ./lib/libJObjC.dylib
 974 "
 975 
 976 KNOWN_DIS_DIFF="
 977 ./jre/lib/libJObjC.dylib
 978 ./lib/libJObjC.dylib
 979 "
 980 
 981 fi