common/bin/compare.sh
changeset 28356 3b985eeacb08
parent 27602 236555ddac42
child 29157 e911c898c14c
equal deleted inserted replaced
28355:00a473df1a5b 28356:3b985eeacb08
    20 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    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
    21 # or visit www.oracle.com if you need additional information or have any
    22 # questions.
    22 # questions.
    23 #
    23 #
    24 
    24 
    25 # This script is processed by configure before it's usable. It is run from 
    25 # This script is processed by configure before it's usable. It is run from
    26 # the root of the build directory.
    26 # the root of the build directory.
    27 
    27 
    28 
    28 
    29 ##########################################################################################
    29 ##########################################################################################
    30 
    30 
    74     SUFFIX="${THIS_FILE##*.}"
    74     SUFFIX="${THIS_FILE##*.}"
    75 
    75 
    76     TMP=1
    76     TMP=1
    77 
    77 
    78     if [[ "$THIS_FILE" = *"META-INF/MANIFEST.MF" ]]; then
    78     if [[ "$THIS_FILE" = *"META-INF/MANIFEST.MF" ]]; then
       
    79         # Filter out date string, ant version and java version differences.
    79         TMP=$(LC_ALL=C $DIFF $OTHER_FILE $THIS_FILE | \
    80         TMP=$(LC_ALL=C $DIFF $OTHER_FILE $THIS_FILE | \
    80             $GREP '^[<>]' | \
    81             $GREP '^[<>]' | \
    81             $SED -e '/[<>] Ant-Version: Apache Ant .*/d' \
    82             $SED -e '/[<>] Ant-Version: Apache Ant .*/d' \
    82 	         -e '/[<>] Created-By: .* (Oracle Corporation).*/d')
    83                  -e '/[<>] Created-By: .* (Oracle [Corpatin)]*/d' \
       
    84                  -e '/[<>]  [Corpatin]*)/d' \
       
    85                  -e '/[<>].*[0-9]\{4\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}-b[0-9]\{2\}.*/d')
    83     fi
    86     fi
    84     if test "x$SUFFIX" = "xjava"; then
    87     if test "x$SUFFIX" = "xjava"; then
    85         TMP=$(LC_ALL=C $DIFF $OTHER_FILE $THIS_FILE | \
    88         TMP=$(LC_ALL=C $DIFF $OTHER_FILE $THIS_FILE | \
    86             $GREP '^[<>]' | \
    89             $GREP '^[<>]' | \
    87             $SED -e '/[<>] \* from.*\.idl/d' \
    90             $SED -e '/[<>] \* from.*\.idl/d' \
    90                  -e '/\/\/ Generated from input file.*/d' \
    93                  -e '/\/\/ Generated from input file.*/d' \
    91                  -e '/\/\/ This file was generated AUTOMATICALLY from a template file.*/d' \
    94                  -e '/\/\/ This file was generated AUTOMATICALLY from a template file.*/d' \
    92                  -e '/\/\/ java GenerateCharacter.*/d')
    95                  -e '/\/\/ java GenerateCharacter.*/d')
    93     fi
    96     fi
    94     # Ignore date strings in class files.
    97     # Ignore date strings in class files.
    95     # On Macosx the system sources for generated java classes produce different output on 
    98     # On Macosx the system sources for generated java classes produce different output on
    96     # consequtive invocations seemingly randomly.
    99     # consequtive invocations seemingly randomly.
    97     # For example a method parameter randomly named "thePoint" or "aPoint". Ignore this.
   100     # For example a method parameter randomly named "thePoint" or "aPoint". Ignore this.
    98     # Anonymous lambda classes get randomly assigned counters in their names.
   101     # Anonymous lambda classes get randomly assigned counters in their names.
    99     if test "x$SUFFIX" = "xclass"; then
   102     if test "x$SUFFIX" = "xclass"; then
   100         # To improve performance when large diffs are found, do a rough filtering of classes
   103         # To improve performance when large diffs are found, do a rough filtering of classes
   101         # elibeble for these exceptions
   104         # elibeble for these exceptions
   102         if $GREP -R -e '[0-9]\{4\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}-b[0-9]\{2\}' \
   105         if $GREP -R -e '[0-9]\{4\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}-b[0-9]\{2\}' \
   103 	        -e '[0-9]\{2\}/[0-9]\{2\}/[0-9]\{4\}' \
   106                 -e '[0-9]\{2\}/[0-9]\{2\}/[0-9]\{4\}' \
   104 	        -e thePoint -e aPoint -e setItemsPtr \
   107                 -e thePoint -e aPoint -e setItemsPtr \
   105                 -e 'lambda\$[a-zA-Z0-9]*\$[0-9]' ${THIS_FILE} > /dev/null; then
   108                 -e 'lambda\$[a-zA-Z0-9]*\$[0-9]' ${THIS_FILE} > /dev/null; then
   106             $JAVAP -c -constants -l -p "${OTHER_FILE}" >  ${OTHER_FILE}.javap
   109             $JAVAP -c -constants -l -p "${OTHER_FILE}" >  ${OTHER_FILE}.javap
   107             $JAVAP -c -constants -l -p "${THIS_FILE}" > ${THIS_FILE}.javap
   110             $JAVAP -c -constants -l -p "${THIS_FILE}" > ${THIS_FILE}.javap
   108             TMP=$($DIFF ${OTHER_FILE}.javap ${THIS_FILE}.javap | \
   111             TMP=$($DIFF ${OTHER_FILE}.javap ${THIS_FILE}.javap | \
   109                 $GREP '^[<>]' | \
   112                 $GREP '^[<>]' | \
   110                 $SED -e '/[<>].*[0-9]\{4\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}-b[0-9]\{2\}.*/d' \
   113                 $SED -e '/[<>].*[0-9]\{4\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}-b[0-9]\{2\}.*/d' \
   111 		     -e '/[0-9]\{2\}\/[0-9]\{2\}\/[0-9]\{4\}/d' \
   114                      -e '/[0-9]\{2\}\/[0-9]\{2\}\/[0-9]\{4\}/d' \
   112  	             -e '/[<>].*Point   Lcom\/apple\/jobjc\/foundation\/NSPoint;/d' \
   115                      -e '/[<>].*Point   Lcom\/apple\/jobjc\/foundation\/NSPoint;/d' \
   113 	             -e '/[<>].*public com\.apple\.jobjc\.Pointer<com\.apple\.jobjc\..*itemsPtr();/d' \
   116                      -e '/[<>].*public com\.apple\.jobjc\.Pointer<com\.apple\.jobjc\..*itemsPtr();/d' \
   114 	             -e '/[<>].*public void setItemsPtr(com\.apple\.jobjc\.Pointer<com\.apple\.jobjc\..*);/d' \
   117                      -e '/[<>].*public void setItemsPtr(com\.apple\.jobjc\.Pointer<com\.apple\.jobjc\..*);/d' \
   115                      -e '/[<>].*lambda\$[a-zA-Z0-9]*\$[0-9]*/d')
   118                      -e '/[<>].*lambda\$[a-zA-Z0-9]*\$[0-9]*/d')
   116         fi
   119         fi
   117     fi
   120     fi
   118     if test "x$SUFFIX" = "xproperties"; then
   121     if test "x$SUFFIX" = "xproperties"; then
   119         # Run through nawk to add possibly missing newline at end of file.
   122         # Run through nawk to add possibly missing newline at end of file.
   120         $CAT $OTHER_FILE | $NAWK '{ print }' | LC_ALL=C $SORT > $OTHER_FILE.cleaned
   123         $CAT $OTHER_FILE | $NAWK '{ print }' | LC_ALL=C $SORT > $OTHER_FILE.cleaned
   121 # Disable this exception since we aren't changing the properties cleaning method yet.
   124 # Disable this exception since we aren't changing the properties cleaning method yet.
   122 #        $CAT $OTHER_FILE | $SED -e 's/\([^\\]\):/\1\\:/g' -e  's/\([^\\]\)=/\1\\=/g' -e 's/#.*/#/g' \
   125 #        $CAT $OTHER_FILE | $SED -e 's/\([^\\]\):/\1\\:/g' -e  's/\([^\\]\)=/\1\\=/g' -e 's/#.*/#/g' \
   123 #            | $SED -f "$SRC_ROOT/common/makefiles/support/unicode2x.sed" \
   126 #            | $SED -f "$SRC_ROOT/common/makefiles/support/unicode2x.sed" \
   124 #  	    | $SED -e '/^#/d' -e '/^$/d' \
   127 #            | $SED -e '/^#/d' -e '/^$/d' \
   125 #            -e :a -e '/\\$/N; s/\\\n//; ta' \
   128 #            -e :a -e '/\\$/N; s/\\\n//; ta' \
   126 #  	    -e 's/^[ \t]*//;s/[ \t]*$//' \
   129 #            -e 's/^[ \t]*//;s/[ \t]*$//' \
   127 #	    -e 's/\\=/=/' | LC_ALL=C $SORT > $OTHER_FILE.cleaned
   130 #            -e 's/\\=/=/' | LC_ALL=C $SORT > $OTHER_FILE.cleaned
   128         # Filter out date string differences.
   131         # Filter out date string differences.
   129         TMP=$(LC_ALL=C $DIFF $OTHER_FILE.cleaned $THIS_FILE | \
   132         TMP=$(LC_ALL=C $DIFF $OTHER_FILE.cleaned $THIS_FILE | \
   130             $GREP '^[<>]' | \
   133             $GREP '^[<>]' | \
   131             $SED -e '/[<>].*[0-9]\{4\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}-b[0-9]\{2\}.*/d')
   134             $SED -e '/[<>].*[0-9]\{4\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}-b[0-9]\{2\}.*/d')
   132     fi
   135     fi
   133     if test "x$SUFFIX" = "xMF"; then
   136     if test "x$SUFFIX" = "xhtml"; then
   134         # Filter out date string differences.
       
   135         TMP=$(LC_ALL=C $DIFF $OTHER_FILE $THIS_FILE | \
   137         TMP=$(LC_ALL=C $DIFF $OTHER_FILE $THIS_FILE | \
   136             $GREP '^[<>]' | \
   138             $GREP '^[<>]' | \
   137             $SED -e '/[<>].*[0-9]\{4\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}-b[0-9]\{2\}.*/d')
   139             $SED -e '/[<>] <!-- Generated by javadoc .* on .* -->/d' )
   138     fi
   140     fi
   139     if test -n "$TMP"; then
   141     if test -n "$TMP"; then
   140         echo Files $OTHER_FILE and $THIS_FILE differ
   142         echo Files $OTHER_FILE and $THIS_FILE differ
   141         return 1
   143         return 1
   142     fi
   144     fi
   156 
   158 
   157     (cd $OTHER_DIR && $FIND . -type d | $SORT > $WORK_DIR/dirs_other)
   159     (cd $OTHER_DIR && $FIND . -type d | $SORT > $WORK_DIR/dirs_other)
   158     (cd $THIS_DIR && $FIND . -type d | $SORT > $WORK_DIR/dirs_this)
   160     (cd $THIS_DIR && $FIND . -type d | $SORT > $WORK_DIR/dirs_this)
   159 
   161 
   160     $DIFF $WORK_DIR/dirs_other $WORK_DIR/dirs_this > $WORK_DIR/dirs_diff
   162     $DIFF $WORK_DIR/dirs_other $WORK_DIR/dirs_this > $WORK_DIR/dirs_diff
   161     
   163 
   162     echo -n Directory structure...
   164     echo -n Directory structure...
   163     if [ -s $WORK_DIR/dirs_diff ]; then
   165     if [ -s $WORK_DIR/dirs_diff ]; then
   164         echo Differences found.
   166         echo Differences found.
   165         REGRESSIONS=true
   167         REGRESSIONS=true
   166         # Differences in directories found.
   168         # Differences in directories found.
   190 
   192 
   191     $MKDIR -p $WORK_DIR
   193     $MKDIR -p $WORK_DIR
   192 
   194 
   193     (cd $OTHER_DIR && $FIND . ! -type d | $SORT > $WORK_DIR/files_other)
   195     (cd $OTHER_DIR && $FIND . ! -type d | $SORT > $WORK_DIR/files_other)
   194     (cd $THIS_DIR && $FIND . ! -type d | $SORT > $WORK_DIR/files_this)
   196     (cd $THIS_DIR && $FIND . ! -type d | $SORT > $WORK_DIR/files_this)
   195     
   197 
   196     $DIFF $WORK_DIR/files_other $WORK_DIR/files_this > $WORK_DIR/files_diff
   198     $DIFF $WORK_DIR/files_other $WORK_DIR/files_this > $WORK_DIR/files_diff
   197 
   199 
   198     echo -n File names...
   200     echo -n File names...
   199     if [ -s $WORK_DIR/files_diff ]; then
   201     if [ -s $WORK_DIR/files_diff ]; then
   200         echo Differences found.
   202         echo Differences found.
   234         if [ ! -f ${THIS_DIR}/$f ]; then continue; fi
   236         if [ ! -f ${THIS_DIR}/$f ]; then continue; fi
   235         OP=`ls -l ${OTHER_DIR}/$f | awk '{printf("%.10s\n", $1);}'`
   237         OP=`ls -l ${OTHER_DIR}/$f | awk '{printf("%.10s\n", $1);}'`
   236         TP=`ls -l ${THIS_DIR}/$f | awk '{printf("%.10s\n", $1);}'`
   238         TP=`ls -l ${THIS_DIR}/$f | awk '{printf("%.10s\n", $1);}'`
   237         if [ "$OP" != "$TP" ]
   239         if [ "$OP" != "$TP" ]
   238         then
   240         then
   239 	    if [ -z "$found" ]; then echo ; found="yes"; fi
   241             if [ -z "$found" ]; then echo ; found="yes"; fi
   240 	    $PRINTF "\told: ${OP} new: ${TP}\t$f\n"
   242             $PRINTF "\tother: ${OP} this: ${TP}\t$f\n"
   241         fi
   243         fi
   242     done
   244     done
   243     if [ -z "$found" ]; then 
   245     if [ -z "$found" ]; then
   244         echo "Identical!"
   246         echo "Identical!"
   245     else
   247     else
   246         REGRESSIONS=true
   248         REGRESSIONS=true
   247     fi
   249     fi
   248 }
   250 }
   263     do
   265     do
   264         if [ ! -f ${OTHER_DIR}/$f ]; then continue; fi
   266         if [ ! -f ${OTHER_DIR}/$f ]; then continue; fi
   265         if [ ! -f ${THIS_DIR}/$f ]; then continue; fi
   267         if [ ! -f ${THIS_DIR}/$f ]; then continue; fi
   266         OF=`cd ${OTHER_DIR} && $FILE -h $f | $SED 's/BuildID[^,]*//g'`
   268         OF=`cd ${OTHER_DIR} && $FILE -h $f | $SED 's/BuildID[^,]*//g'`
   267         TF=`cd ${THIS_DIR} && $FILE -h $f | $SED 's/BuildID[^,]*//g'`
   269         TF=`cd ${THIS_DIR} && $FILE -h $f | $SED 's/BuildID[^,]*//g'`
   268         if [ "$f" = "./src.zip" ] || [[ "$f" = *"/Home/src.zip" ]] || [[ "$f" = *"/lib/JObjC.jar" ]]
       
   269         then
       
   270 	    if [ "`echo $OF | $GREP -ic zip`" -gt 0 -a "`echo $TF | $GREP -ic zip`" -gt 0 ]
       
   271 	    then
       
   272 	        # the way we produces zip-files make it so that directories are stored in old file
       
   273 	        # but not in new (only files with full-path)
       
   274 	        # this makes file-5.09 report them as different
       
   275 	        continue;
       
   276 	    fi
       
   277         fi
       
   278         
       
   279         if [ "$OF" != "$TF" ]
   270         if [ "$OF" != "$TF" ]
   280         then
   271         then
   281 	    if [ -z "$found" ]; then echo ; found="yes"; fi
   272             if [ "`echo $OF | $GREP -c 'Zip archive data'`" -gt 0 ] \
   282 	    $PRINTF "\tother: ${OF}\n\tthis : ${TF}\n"
   273                 && [ "`echo $TF | $GREP -c 'Zip archive data'`" -gt 0 ]
       
   274             then
       
   275                 # the way we produce zip-files make it so that directories are stored in
       
   276                 # old file but not in new (only files with full-path) this makes file
       
   277                 # report them as different
       
   278                 continue
       
   279             else
       
   280                 if [ -z "$found" ]; then echo ; found="yes"; fi
       
   281                 $PRINTF "\tother: ${OF}\n\tthis : ${TF}\n"
       
   282             fi
   283         fi
   283         fi
   284     done
   284     done
   285     if [ -z "$found" ]; then 
   285     if [ -z "$found" ]; then
   286         echo "Identical!"
   286         echo "Identical!"
   287     else
   287     else
   288         REGRESSIONS=true
   288         REGRESSIONS=true
   289     fi
   289     fi
   290 }
   290 }
   294 
   294 
   295 compare_general_files() {
   295 compare_general_files() {
   296     THIS_DIR=$1
   296     THIS_DIR=$1
   297     OTHER_DIR=$2
   297     OTHER_DIR=$2
   298     WORK_DIR=$3
   298     WORK_DIR=$3
   299     
   299 
   300     GENERAL_FILES=$(cd $THIS_DIR && $FIND . -type f ! -name "*.so" ! -name "*.jar" ! -name "*.zip" \
   300     GENERAL_FILES=$(cd $THIS_DIR && $FIND . -type f ! -name "*.so" ! -name "*.jar" ! -name "*.zip" \
   301         ! -name "*.debuginfo" ! -name "*.dylib" ! -name "jexec" ! -name "*.jimage" \
   301         ! -name "*.debuginfo" ! -name "*.dylib" ! -name "jexec" ! -name "*.jimage" \
   302         ! -name "ct.sym" ! -name "*.diz" ! -name "*.dll" \
   302         ! -name "ct.sym" ! -name "*.diz" ! -name "*.dll" ! -name "*.cpl" \
   303         ! -name "*.pdb" ! -name "*.exp" ! -name "*.ilk" \
   303         ! -name "*.pdb" ! -name "*.exp" ! -name "*.ilk" \
   304         ! -name "*.lib" ! -name "*.war" ! -name "JavaControlPanel" \
   304         ! -name "*.lib" ! -name "*.war" ! -name "JavaControlPanel" \
       
   305         ! -name "*.obj" ! -name "*.o" ! -name "JavaControlPanelHelper" ! -name "JavaUpdater" \
   305         | $GREP -v "./bin/"  | $SORT | $FILTER)
   306         | $GREP -v "./bin/"  | $SORT | $FILTER)
   306 
   307 
   307     echo General files...
   308     echo General files...
   308     for f in $GENERAL_FILES
   309     for f in $GENERAL_FILES
   309     do
   310     do
   375     fi
   376     fi
   376 
   377 
   377     THIS_SUFFIX="${THIS_ZIP##*.}"
   378     THIS_SUFFIX="${THIS_ZIP##*.}"
   378     OTHER_SUFFIX="${OTHER_ZIP##*.}"
   379     OTHER_SUFFIX="${OTHER_ZIP##*.}"
   379     if [ "$THIS_SUFFIX" != "$OTHER_SUFFIX" ]; then
   380     if [ "$THIS_SUFFIX" != "$OTHER_SUFFIX" ]; then
   380         echo The files do not have the same suffix type!
   381         echo "The files do not have the same suffix type! ($THIS_SUFFIX != $OTHER_SUFFIX)"
   381         return 2
   382         return 2
   382     fi
   383     fi
   383 
   384 
   384     TYPE="$THIS_SUFFIX"
   385     TYPE="$THIS_SUFFIX"
   385 
   386 
   387     then
   388     then
   388         return 0
   389         return 0
   389     fi
   390     fi
   390     # Not quite identical, the might still contain the same data.
   391     # Not quite identical, the might still contain the same data.
   391     # Unpack the jar/zip files in temp dirs
   392     # Unpack the jar/zip files in temp dirs
   392     
   393 
   393     THIS_UNZIPDIR=$WORK_DIR/$ZIP_FILE.this
   394     THIS_UNZIPDIR=$WORK_DIR/$ZIP_FILE.this
   394     OTHER_UNZIPDIR=$WORK_DIR/$ZIP_FILE.other
   395     OTHER_UNZIPDIR=$WORK_DIR/$ZIP_FILE.other
   395     $RM -rf $THIS_UNZIPDIR $OTHER_UNZIPDIR
   396     $RM -rf $THIS_UNZIPDIR $OTHER_UNZIPDIR
   396     $MKDIR -p $THIS_UNZIPDIR
   397     $MKDIR -p $THIS_UNZIPDIR
   397     $MKDIR -p $OTHER_UNZIPDIR
   398     $MKDIR -p $OTHER_UNZIPDIR
   462             | $CUT -f 2 -d ' ' | $SED "s|$OTHER_UNZIPDIR/||g")
   463             | $CUT -f 2 -d ' ' | $SED "s|$OTHER_UNZIPDIR/||g")
   463     fi
   464     fi
   464 
   465 
   465     $RM -f $WORK_DIR/$ZIP_FILE.diffs
   466     $RM -f $WORK_DIR/$ZIP_FILE.diffs
   466     for file in $DIFFING_FILES; do
   467     for file in $DIFFING_FILES; do
   467 	if [[ "$ACCEPTED_JARZIP_CONTENTS $EXCEPTIONS" != *"$file"* ]]; then
   468         if [[ "$ACCEPTED_JARZIP_CONTENTS $EXCEPTIONS" != *"$file"* ]]; then
   468             diff_text $OTHER_UNZIPDIR/$file $THIS_UNZIPDIR/$file >> $WORK_DIR/$ZIP_FILE.diffs
   469             diff_text $OTHER_UNZIPDIR/$file $THIS_UNZIPDIR/$file >> $WORK_DIR/$ZIP_FILE.diffs
   469 	fi
   470         fi
   470     done
   471     done
   471 
   472 
   472     if [ -s "$WORK_DIR/$ZIP_FILE.diffs" ]; then
   473     if [ -s "$WORK_DIR/$ZIP_FILE.diffs" ]; then
   473         return_value=1
   474         return_value=1
   474         echo "        Differing files in $ZIP_FILE"
   475         echo "        Differing files in $ZIP_FILE"
   571     WORK_FILE_BASE=$WORK_DIR/$BIN_FILE
   572     WORK_FILE_BASE=$WORK_DIR/$BIN_FILE
   572     FILE_WORK_DIR=$(dirname $WORK_FILE_BASE)
   573     FILE_WORK_DIR=$(dirname $WORK_FILE_BASE)
   573 
   574 
   574     $MKDIR -p $FILE_WORK_DIR
   575     $MKDIR -p $FILE_WORK_DIR
   575 
   576 
       
   577     # Make soft links to original files from work dir to facilitate debugging
       
   578     $LN -f -s $THIS_FILE $WORK_FILE_BASE.this
       
   579     $LN -f -s $OTHER_FILE $WORK_FILE_BASE.other
       
   580 
   576     ORIG_THIS_FILE="$THIS_FILE"
   581     ORIG_THIS_FILE="$THIS_FILE"
   577     ORIG_OTHER_FILE="$OTHER_FILE"
   582     ORIG_OTHER_FILE="$OTHER_FILE"
   578 
   583 
   579     if [[ "$STRIP_BEFORE_COMPARE" = *"$BIN_FILE"* ]]; then
   584     if [[ "$STRIP_BEFORE_COMPARE" = *"$BIN_FILE"* ]]; then
   580         THIS_STRIPPED_FILE=$FILE_WORK_DIR/this/$NAME
   585         THIS_STRIPPED_FILE=$FILE_WORK_DIR/this/$NAME
   587         THIS_FILE="$THIS_STRIPPED_FILE"
   592         THIS_FILE="$THIS_STRIPPED_FILE"
   588         OTHER_FILE="$OTHER_STRIPPED_FILE"
   593         OTHER_FILE="$OTHER_STRIPPED_FILE"
   589     fi
   594     fi
   590 
   595 
   591     if [ "$OPENJDK_TARGET_OS" = "windows" ]; then
   596     if [ "$OPENJDK_TARGET_OS" = "windows" ]; then
   592 	unset _NT_SYMBOL_PATH
   597         unset _NT_SYMBOL_PATH
   593 	# On windows we need to unzip the debug symbols, if present
   598         # On windows we need to unzip the debug symbols, if present
   594 	OTHER_FILE_BASE=${OTHER_FILE/.dll/}
   599         OTHER_FILE_BASE=${OTHER_FILE/.dll/}
   595 	OTHER_FILE_BASE=${OTHER_FILE_BASE/.exe/}
   600         OTHER_FILE_BASE=${OTHER_FILE_BASE/.exe/}
   596 	DIZ_NAME=$(basename $OTHER_FILE_BASE).diz
   601         OTHER_FILE_BASE=${OTHER_FILE_BASE/.cpl/}
       
   602         DIZ_NAME=$(basename $OTHER_FILE_BASE).diz
   597         # java.exe and java.dll diz files will have the same name. Have to
   603         # java.exe and java.dll diz files will have the same name. Have to
   598 	# make sure java.exe gets the right one. This is only needed for 
   604         # make sure java.exe gets the right one. This is only needed for
   599 	# OTHER since in the new build, all pdb files are left around.
   605         # OTHER since in the new build, all pdb files are left around.
   600 	if [ "$NAME" = "java.exe" ] && [ -f "$OTHER/tmp/java/java/obj64/java.diz" ]; then
   606         if [ "$NAME" = "java.exe" ] && [ -f "$OTHER/tmp/java/java/obj64/java.diz" ]; then
   601 	    OTHER_DIZ_FILE="$OTHER/tmp/java/java/obj64/java.diz"
   607             OTHER_DIZ_FILE="$OTHER/tmp/java/java/obj64/java.diz"
   602 	elif [ -f "${OTHER_FILE_BASE}.diz" ]; then
   608         elif [ -f "${OTHER_FILE_BASE}.diz" ]; then
   603 	    OTHER_DIZ_FILE=${OTHER_FILE_BASE}.diz
   609             OTHER_DIZ_FILE=${OTHER_FILE_BASE}.diz
   604 	else
   610         else
   605             # Some files, jli.dll, appears twice in the image but only one of
   611             # Some files, jli.dll, appears twice in the image but only one of
   606 	    # thme has a diz file next to it.
   612             # thme has a diz file next to it.
   607 	    OTHER_DIZ_FILE="$($FIND $OTHER_DIR -name $DIZ_NAME | $SED 1q)"
   613             OTHER_DIZ_FILE="$($FIND $OTHER_DIR -name $DIZ_NAME | $SED 1q)"
   608 	    if [ ! -f "$OTHER_DIZ_FILE" ]; then
   614             if [ ! -f "$OTHER_DIZ_FILE" ]; then
   609 		# As a last resort, look for diz file in the whole build output
   615                 # As a last resort, look for diz file in the whole build output
   610 		# dir.
   616                 # dir.
   611 		OTHER_DIZ_FILE="$($FIND $OTHER -name $DIZ_NAME | $SED 1q)"
   617                 OTHER_DIZ_FILE="$($FIND $OTHER -name $DIZ_NAME | $SED 1q)"
   612 	    fi
   618             fi
   613 	fi
   619         fi
   614 	if [ -n "$OTHER_DIZ_FILE" ]; then
   620         if [ -n "$OTHER_DIZ_FILE" ]; then
   615 	    $MKDIR -p $FILE_WORK_DIR/other
   621             $MKDIR -p $FILE_WORK_DIR/other
   616 	    (cd $FILE_WORK_DIR/other ; $UNARCHIVE -o $OTHER_DIZ_FILE)
   622             (cd $FILE_WORK_DIR/other ; $UNARCHIVE -o $OTHER_DIZ_FILE)
   617 	    export _NT_SYMBOL_PATH="$FILE_WORK_DIR/other"
   623             export _NT_SYMBOL_PATH="$FILE_WORK_DIR/other"
   618 	fi
   624         fi
   619 	THIS_FILE_BASE=${THIS_FILE/.dll/}
   625         THIS_FILE_BASE=${THIS_FILE/.dll/}
   620 	THIS_FILE_BASE=${THIS_FILE_BASE/.exe/}
   626         THIS_FILE_BASE=${THIS_FILE_BASE/.exe/}
   621 	if [ -f "${THIS_FILE/.dll/}.diz" ]; then
   627         if [ -f "${THIS_FILE/.dll/}.diz" ]; then
   622 	    THIS_DIZ_FILE=${THIS_FILE/.dll/}.diz
   628             THIS_DIZ_FILE=${THIS_FILE/.dll/}.diz
   623 	else
   629         else
   624 	    THIS_DIZ_FILE="$($FIND $THIS_DIR -name $DIZ_NAME | $SED 1q)"
   630             THIS_DIZ_FILE="$($FIND $THIS_DIR -name $DIZ_NAME | $SED 1q)"
   625 	    if [ ! -f "$THIS_DIZ_FILE" ]; then
   631             if [ ! -f "$THIS_DIZ_FILE" ]; then
   626 		# As a last resort, look for diz file in the whole build output
   632                 # As a last resort, look for diz file in the whole build output
   627 		# dir.
   633                 # dir.
   628 		THIS_DIZ_FILE="$($FIND $THIS -name $DIZ_NAME | $SED 1q)"
   634                 THIS_DIZ_FILE="$($FIND $THIS -name $DIZ_NAME | $SED 1q)"
   629 	    fi
   635             fi
   630 	fi
   636         fi
   631 	if [ -n "$THIS_DIZ_FILE" ]; then
   637         if [ -n "$THIS_DIZ_FILE" ]; then
   632 	    $MKDIR -p $FILE_WORK_DIR/this
   638             $MKDIR -p $FILE_WORK_DIR/this
   633 	    (cd $FILE_WORK_DIR/this ; $UNARCHIVE -o $THIS_DIZ_FILE)
   639             (cd $FILE_WORK_DIR/this ; $UNARCHIVE -o $THIS_DIZ_FILE)
   634 	    export _NT_SYMBOL_PATH="$_NT_SYMBOL_PATH;$FILE_WORK_DIR/this"
   640             export _NT_SYMBOL_PATH="$_NT_SYMBOL_PATH;$FILE_WORK_DIR/this"
   635 	fi
   641         fi
   636     fi
   642     fi
   637 
   643 
   638     if [ -z "$SKIP_BIN_DIFF" ]; then
   644     if [ -z "$SKIP_BIN_DIFF" ]; then
   639         if cmp $OTHER_FILE $THIS_FILE > /dev/null; then
   645         if cmp $OTHER_FILE $THIS_FILE > /dev/null; then
   640         # The files were bytewise identical.
   646         # The files were bytewise identical.
   668     if [ $THIS_SIZE -ne $OTHER_SIZE ]; then
   674     if [ $THIS_SIZE -ne $OTHER_SIZE ]; then
   669         DIFF_SIZE_NUM=$($EXPR $THIS_SIZE - $OTHER_SIZE)
   675         DIFF_SIZE_NUM=$($EXPR $THIS_SIZE - $OTHER_SIZE)
   670         DIFF_SIZE_REL=$($EXPR $THIS_SIZE \* 100 / $OTHER_SIZE)
   676         DIFF_SIZE_REL=$($EXPR $THIS_SIZE \* 100 / $OTHER_SIZE)
   671         SIZE_MSG=$($PRINTF "%3d%% %4d" $DIFF_SIZE_REL $DIFF_SIZE_NUM)
   677         SIZE_MSG=$($PRINTF "%3d%% %4d" $DIFF_SIZE_REL $DIFF_SIZE_NUM)
   672         if [[ "$ACCEPTED_SMALL_SIZE_DIFF" = *"$BIN_FILE"* ]] && [ "$DIFF_SIZE_REL" -gt 98 ] \
   678         if [[ "$ACCEPTED_SMALL_SIZE_DIFF" = *"$BIN_FILE"* ]] && [ "$DIFF_SIZE_REL" -gt 98 ] \
   673 	    && [ "$DIFF_SIZE_REL" -lt 102 ]; then
   679             && [ "$DIFF_SIZE_REL" -lt 102 ]; then
   674             SIZE_MSG="($SIZE_MSG)"
   680             SIZE_MSG="($SIZE_MSG)"
   675             DIFF_SIZE=
   681             DIFF_SIZE=
   676         elif [ "$OPENJDK_TARGET_OS" = "windows" ] \
   682         elif [ "$OPENJDK_TARGET_OS" = "windows" ] \
   677 	    && [[ "$ACCEPTED_SMALL_SIZE_DIFF" = *"$BIN_FILE"* ]] \
   683             && [[ "$ACCEPTED_SMALL_SIZE_DIFF" = *"$BIN_FILE"* ]] \
   678 	    && [ "$DIFF_SIZE_NUM" = 512 ]; then
   684             && [ "$DIFF_SIZE_NUM" = 512 ]; then
   679 	    # On windows, size of binaries increase in 512 increments.
   685             # On windows, size of binaries increase in 512 increments.
   680             SIZE_MSG="($SIZE_MSG)"
   686             SIZE_MSG="($SIZE_MSG)"
   681             DIFF_SIZE=
   687             DIFF_SIZE=
   682         elif [ "$OPENJDK_TARGET_OS" = "windows" ] \
   688         elif [ "$OPENJDK_TARGET_OS" = "windows" ] \
   683 	    && [[ "$ACCEPTED_SMALL_SIZE_DIFF" = *"$BIN_FILE"* ]] \
   689             && [[ "$ACCEPTED_SMALL_SIZE_DIFF" = *"$BIN_FILE"* ]] \
   684 	    && [ "$DIFF_SIZE_NUM" = -512 ]; then
   690             && [ "$DIFF_SIZE_NUM" = -512 ]; then
   685 	    # On windows, size of binaries increase in 512 increments.
   691             # On windows, size of binaries increase in 512 increments.
   686             SIZE_MSG="($SIZE_MSG)"
   692             SIZE_MSG="($SIZE_MSG)"
   687             DIFF_SIZE=
   693             DIFF_SIZE=
   688         else
   694         else
   689             if [[ "$ACCEPTED_SIZE_DIFF" != *"$BIN_FILE"* ]]; then
   695             if [[ "$ACCEPTED_SIZE_DIFF" != *"$BIN_FILE"* ]]; then
   690                 DIFF_SIZE=true
   696                 DIFF_SIZE=true
   715 
   721 
   716     # Check symbols
   722     # Check symbols
   717     if [ "$OPENJDK_TARGET_OS" = "windows" ]; then
   723     if [ "$OPENJDK_TARGET_OS" = "windows" ]; then
   718         # The output from dumpbin on windows differs depending on if the debug symbol
   724         # The output from dumpbin on windows differs depending on if the debug symbol
   719         # files are still around at the location the binary is pointing too. Need
   725         # files are still around at the location the binary is pointing too. Need
   720 	# to filter out that extra information.
   726         # to filter out that extra information.
   721 	$DUMPBIN -exports $OTHER_FILE | $GREP  -E '^ +[0-9A-F]+ +[0-9A-F]+ [0-9A-F]+' | sed 's/ = .*//g' | cut -c27- | $SYM_SORT_CMD > $WORK_FILE_BASE.symbols.other
   727         $DUMPBIN -exports $OTHER_FILE | $GREP  -E '^ +[0-9A-F]+ +[0-9A-F]+ [0-9A-F]+' | sed 's/ = .*//g' | cut -c27- | $SYM_SORT_CMD > $WORK_FILE_BASE.symbols.other
   722 	$DUMPBIN -exports $THIS_FILE  | $GREP  -E '^ +[0-9A-F]+ +[0-9A-F]+ [0-9A-F]+' | sed 's/ = .*//g' | cut -c27- | $SYM_SORT_CMD > $WORK_FILE_BASE.symbols.this
   728         $DUMPBIN -exports $THIS_FILE  | $GREP  -E '^ +[0-9A-F]+ +[0-9A-F]+ [0-9A-F]+' | sed 's/ = .*//g' | cut -c27- | $SYM_SORT_CMD > $WORK_FILE_BASE.symbols.this
   723     elif [ "$OPENJDK_TARGET_OS" = "solaris" ]; then
   729     elif [ "$OPENJDK_TARGET_OS" = "solaris" ]; then
   724         # Some symbols get seemingly random 15 character prefixes. Filter them out.
   730         # Some symbols get seemingly random 15 character prefixes. Filter them out.
   725         $NM -a $ORIG_OTHER_FILE 2> /dev/null | $GREP -v $NAME | $AWK '{print $2, $3, $4, $5}' | $SED 's/^\([a-zA-Z] [\.\$]\)[a-zA-Z0-9_\$]\{15,15\}\./\1./g' | $SYM_SORT_CMD > $WORK_FILE_BASE.symbols.other
   731         $NM -a $ORIG_OTHER_FILE 2> /dev/null | $GREP -v $NAME | $AWK '{print $2, $3, $4, $5}' | $SED 's/^\([a-zA-Z] [\.\$]\)[a-zA-Z0-9_\$]\{15,15\}\./\1./g' | $SYM_SORT_CMD > $WORK_FILE_BASE.symbols.other
   726 	$NM -a $ORIG_THIS_FILE  2> /dev/null | $GREP -v $NAME | $AWK '{print $2, $3, $4, $5}' | $SED 's/^\([a-zA-Z] [\.\$]\)[a-zA-Z0-9_\$]\{15,15\}\./\1./g' | $SYM_SORT_CMD > $WORK_FILE_BASE.symbols.this
   732         $NM -a $ORIG_THIS_FILE  2> /dev/null | $GREP -v $NAME | $AWK '{print $2, $3, $4, $5}' | $SED 's/^\([a-zA-Z] [\.\$]\)[a-zA-Z0-9_\$]\{15,15\}\./\1./g' | $SYM_SORT_CMD > $WORK_FILE_BASE.symbols.this
   727     else
   733     else
   728 	$NM -a $ORIG_OTHER_FILE 2> /dev/null | $GREP -v $NAME | $AWK '{print $2, $3, $4, $5}' | $SYM_SORT_CMD > $WORK_FILE_BASE.symbols.other
   734         $NM -a $ORIG_OTHER_FILE 2> /dev/null | $GREP -v $NAME | $AWK '{print $2, $3, $4, $5}' | $SYM_SORT_CMD > $WORK_FILE_BASE.symbols.other
   729 	$NM -a $ORIG_THIS_FILE  2> /dev/null | $GREP -v $NAME | $AWK '{print $2, $3, $4, $5}' | $SYM_SORT_CMD > $WORK_FILE_BASE.symbols.this
   735         $NM -a $ORIG_THIS_FILE  2> /dev/null | $GREP -v $NAME | $AWK '{print $2, $3, $4, $5}' | $SYM_SORT_CMD > $WORK_FILE_BASE.symbols.this
   730     fi
   736     fi
   731     
   737 
   732     LC_ALL=C $DIFF $WORK_FILE_BASE.symbols.other $WORK_FILE_BASE.symbols.this > $WORK_FILE_BASE.symbols.diff
   738     LC_ALL=C $DIFF $WORK_FILE_BASE.symbols.other $WORK_FILE_BASE.symbols.this > $WORK_FILE_BASE.symbols.diff
   733     if [ -s $WORK_FILE_BASE.symbols.diff ]; then
   739     if [ -s $WORK_FILE_BASE.symbols.diff ]; then
   734         SYM_MSG=" diff  "
   740         SYM_MSG=" diff  "
   735         if [[ "$ACCEPTED_SYM_DIFF" != *"$BIN_FILE"* ]]; then
   741         if [[ "$ACCEPTED_SYM_DIFF" != *"$BIN_FILE"* ]]; then
   736             DIFF_SYM=true
   742             DIFF_SYM=true
   739                 REGRESSIONS=true
   745                 REGRESSIONS=true
   740             else
   746             else
   741                 SYM_MSG=" $SYM_MSG "
   747                 SYM_MSG=" $SYM_MSG "
   742             fi
   748             fi
   743         else
   749         else
   744             SYM_MSG="($SYM_MSG)"            
   750             SYM_MSG="($SYM_MSG)"
   745             DIFF_SYM=
   751             DIFF_SYM=
   746         fi
   752         fi
   747     else
   753     else
   748         SYM_MSG="         "
   754         SYM_MSG="         "
   749         DIFF_SYM=
   755         DIFF_SYM=
   752         fi
   758         fi
   753     fi
   759     fi
   754 
   760 
   755     # Check dependencies
   761     # Check dependencies
   756     if [ -n "$LDD_CMD" ]; then
   762     if [ -n "$LDD_CMD" ]; then
   757 	(cd $FILE_WORK_DIR && $CP $OTHER_FILE . && $LDD_CMD $NAME 2>/dev/null | $AWK '{ print $1;}' | $SORT | $TEE $WORK_FILE_BASE.deps.other | $UNIQ > $WORK_FILE_BASE.deps.other.uniq)
   763         (cd $FILE_WORK_DIR && $CP $OTHER_FILE . && $LDD_CMD $NAME 2>/dev/null | $AWK '{ print $1;}' | $SORT | $TEE $WORK_FILE_BASE.deps.other | $UNIQ > $WORK_FILE_BASE.deps.other.uniq)
   758 	(cd $FILE_WORK_DIR && $CP $THIS_FILE . && $LDD_CMD $NAME 2</dev/null | $AWK '{ print $1;}' | $SORT | $TEE $WORK_FILE_BASE.deps.this | $UNIQ > $WORK_FILE_BASE.deps.this.uniq)
   764         (cd $FILE_WORK_DIR && $CP $THIS_FILE . && $LDD_CMD $NAME 2</dev/null | $AWK '{ print $1;}' | $SORT | $TEE $WORK_FILE_BASE.deps.this | $UNIQ > $WORK_FILE_BASE.deps.this.uniq)
   759 	(cd $FILE_WORK_DIR && $RM -f $NAME)
   765         (cd $FILE_WORK_DIR && $RM -f $NAME)
   760 	
   766 
   761 	LC_ALL=C $DIFF $WORK_FILE_BASE.deps.other $WORK_FILE_BASE.deps.this > $WORK_FILE_BASE.deps.diff
   767         LC_ALL=C $DIFF $WORK_FILE_BASE.deps.other $WORK_FILE_BASE.deps.this > $WORK_FILE_BASE.deps.diff
   762 	LC_ALL=C $DIFF $WORK_FILE_BASE.deps.other.uniq $WORK_FILE_BASE.deps.this.uniq > $WORK_FILE_BASE.deps.diff.uniq
   768         LC_ALL=C $DIFF $WORK_FILE_BASE.deps.other.uniq $WORK_FILE_BASE.deps.this.uniq > $WORK_FILE_BASE.deps.diff.uniq
   763 	
   769 
   764 	if [ -s $WORK_FILE_BASE.deps.diff ]; then
   770         if [ -s $WORK_FILE_BASE.deps.diff ]; then
   765             if [ -s $WORK_FILE_BASE.deps.diff.uniq ]; then
   771             if [ -s $WORK_FILE_BASE.deps.diff.uniq ]; then
   766 		DEP_MSG=" diff  "
   772                 DEP_MSG=" diff  "
   767             else
   773             else
   768 		DEP_MSG=" redun "
   774                 DEP_MSG=" redun "
   769             fi
   775             fi
   770             if [[ "$ACCEPTED_DEP_DIFF" != *"$BIN_FILE"* ]]; then
   776             if [[ "$ACCEPTED_DEP_DIFF" != *"$BIN_FILE"* ]]; then
   771 		DIFF_DEP=true
   777                 DIFF_DEP=true
   772 		if [[ "$KNOWN_DEP_DIFF" != *"$BIN_FILE"* ]]; then
   778                 if [[ "$KNOWN_DEP_DIFF" != *"$BIN_FILE"* ]]; then
   773                     DEP_MSG="*$DEP_MSG*"
   779                     DEP_MSG="*$DEP_MSG*"
   774                     REGRESSIONS=true
   780                     REGRESSIONS=true
   775 		else
   781                 else
   776                     DEP_MSG=" $DEP_MSG "
   782                     DEP_MSG=" $DEP_MSG "
   777 		fi
   783                 fi
   778             else
   784             else
   779 		DEP_MSG="($DEP_MSG)"
   785                 DEP_MSG="($DEP_MSG)"
   780 		DIFF_DEP=
   786                 DIFF_DEP=
   781             fi
   787             fi
   782 	else
   788         else
   783 	    DEP_MSG="         "
   789             DEP_MSG="         "
   784 	    DIFF_DEP=
   790             DIFF_DEP=
   785             if [[ "$KNOWN_DEP_DIFF $ACCEPTED_DEP_DIFF" = *"$BIN_FILE"* ]]; then
   791             if [[ "$KNOWN_DEP_DIFF $ACCEPTED_DEP_DIFF" = *"$BIN_FILE"* ]]; then
   786                 DEP_MSG="     !      "
   792                 DEP_MSG="     !      "
   787             fi
   793             fi
   788 	fi
   794         fi
   789     else
   795     else
   790 	DEP_MSG="    -    "
   796         DEP_MSG="    -    "
   791     fi
   797     fi
   792     
   798 
   793     # Compare fulldump output
   799     # Compare fulldump output
   794     if [ -n "$FULLDUMP_CMD" ] && [ -z "$SKIP_FULLDUMP_DIFF" ]; then
   800     if [ -n "$FULLDUMP_CMD" ] && [ -z "$SKIP_FULLDUMP_DIFF" ]; then
   795         $FULLDUMP_CMD $OTHER_FILE > $WORK_FILE_BASE.fulldump.other 2>&1
   801         $FULLDUMP_CMD $OTHER_FILE > $WORK_FILE_BASE.fulldump.other 2>&1
   796         $FULLDUMP_CMD $THIS_FILE > $WORK_FILE_BASE.fulldump.this 2>&1
   802         $FULLDUMP_CMD $THIS_FILE > $WORK_FILE_BASE.fulldump.this 2>&1
   797         LC_ALL=C $DIFF $WORK_FILE_BASE.fulldump.other $WORK_FILE_BASE.fulldump.this > $WORK_FILE_BASE.fulldump.diff
   803         LC_ALL=C $DIFF $WORK_FILE_BASE.fulldump.other $WORK_FILE_BASE.fulldump.this > $WORK_FILE_BASE.fulldump.diff
   798         
   804 
   799         if [ -s $WORK_FILE_BASE.fulldump.diff ]; then
   805         if [ -s $WORK_FILE_BASE.fulldump.diff ]; then
   800             ELF_DIFF_SIZE=$(ls -n $WORK_FILE_BASE.fulldump.diff | awk '{print $5}')
   806             ELF_DIFF_SIZE=$(ls -n $WORK_FILE_BASE.fulldump.diff | awk '{print $5}')
   801             ELF_MSG=$($PRINTF "%8d" $ELF_DIFF_SIZE)
   807             ELF_MSG=$($PRINTF "%8d" $ELF_DIFF_SIZE)
   802             if [[ "$ACCEPTED_ELF_DIFF" != *"$BIN_FILE"* ]]; then
   808             if [[ "$ACCEPTED_ELF_DIFF" != *"$BIN_FILE"* ]]; then
   803                 DIFF_ELF=true
   809                 DIFF_ELF=true
   820         fi
   826         fi
   821     fi
   827     fi
   822 
   828 
   823     # Compare disassemble output
   829     # Compare disassemble output
   824     if [ -n "$DIS_CMD" ] && [ -z "$SKIP_DIS_DIFF" ]; then
   830     if [ -n "$DIS_CMD" ] && [ -z "$SKIP_DIS_DIFF" ]; then
   825 	if [ -z "$DIS_DIFF_FILTER" ]; then
   831         # By default we filter out differences that include references to symbols.
   826 	    DIS_DIFF_FILTER="$CAT"
   832         # To get a raw diff with the complete disassembly, set
   827 	fi
   833         # DIS_DIFF_FILTER="$CAT"
   828         $DIS_CMD $OTHER_FILE | $GREP -v $NAME | $DIS_DIFF_FILTER > $WORK_FILE_BASE.dis.other 2>&1
   834         if [ -z "$DIS_DIFF_FILTER" ]; then
   829         $DIS_CMD $THIS_FILE  | $GREP -v $NAME | $DIS_DIFF_FILTER > $WORK_FILE_BASE.dis.this  2>&1
   835             DIS_DIFF_FILTER="$GREP -v ' # .* <.*>$'"
   830         
   836         fi
       
   837         $DIS_CMD $OTHER_FILE | $GREP -v $NAME | eval "$DIS_DIFF_FILTER" > $WORK_FILE_BASE.dis.other 2>&1
       
   838         $DIS_CMD $THIS_FILE  | $GREP -v $NAME | eval "$DIS_DIFF_FILTER" > $WORK_FILE_BASE.dis.this  2>&1
       
   839 
   831         LC_ALL=C $DIFF $WORK_FILE_BASE.dis.other $WORK_FILE_BASE.dis.this > $WORK_FILE_BASE.dis.diff
   840         LC_ALL=C $DIFF $WORK_FILE_BASE.dis.other $WORK_FILE_BASE.dis.this > $WORK_FILE_BASE.dis.diff
   832         
   841 
   833         if [ -s $WORK_FILE_BASE.dis.diff ]; then
   842         if [ -s $WORK_FILE_BASE.dis.diff ]; then
   834             DIS_DIFF_SIZE=$(ls -n $WORK_FILE_BASE.dis.diff | awk '{print $5}')
   843             DIS_DIFF_SIZE=$(ls -n $WORK_FILE_BASE.dis.diff | awk '{print $5}')
   835             DIS_MSG=$($PRINTF "%8d" $DIS_DIFF_SIZE)
   844             DIS_MSG=$($PRINTF "%8d" $DIS_DIFF_SIZE)
   836             if [[ "$ACCEPTED_DIS_DIFF" != *"$BIN_FILE"* ]]; then
   845             if [[ "$ACCEPTED_DIS_DIFF" != *"$BIN_FILE"* ]]; then
   837                 DIFF_DIS=true
   846                 DIFF_DIS=true
   905 compare_all_libs() {
   914 compare_all_libs() {
   906     THIS_DIR=$1
   915     THIS_DIR=$1
   907     OTHER_DIR=$2
   916     OTHER_DIR=$2
   908     WORK_DIR=$3
   917     WORK_DIR=$3
   909 
   918 
   910     LIBS=$(cd $THIS_DIR && $FIND . -type f \( -name 'lib*.so' -o -name '*.dylib' -o -name '*.dll' -o -name 'JavaControlPanel' \) | $SORT | $FILTER)
   919     LIBS=$(cd $THIS_DIR && $FIND . -type f \( -name 'lib*.so' -o -name '*.dylib' \
       
   920         -o -name '*.dll' -o -name '*.obj' -o -name '*.o' \
       
   921         -o -name '*.cpl' \) | $SORT | $FILTER)
   911 
   922 
   912     if [ -n "$LIBS" ]; then
   923     if [ -n "$LIBS" ]; then
   913         echo Libraries...
   924         echo Libraries...
   914         print_binary_diff_header
   925         print_binary_diff_header
   915         for l in $LIBS; do
   926         for l in $LIBS; do
   965 
   976 
   966 COMPARE_ROOT=/tmp/cimages.$USER
   977 COMPARE_ROOT=/tmp/cimages.$USER
   967 $MKDIR -p $COMPARE_ROOT
   978 $MKDIR -p $COMPARE_ROOT
   968 if [ "$OPENJDK_TARGET_OS" = "windows" ]; then
   979 if [ "$OPENJDK_TARGET_OS" = "windows" ]; then
   969     if [ "$(uname -o)" = "Cygwin" ]; then
   980     if [ "$(uname -o)" = "Cygwin" ]; then
   970 	COMPARE_ROOT=$(cygpath -msa $COMPARE_ROOT)
   981         COMPARE_ROOT=$(cygpath -msa $COMPARE_ROOT)
   971     fi
   982     fi
   972 fi
   983 fi
   973 
   984 
   974 THIS="$( cd "$( dirname "$0" )" && pwd )"
   985 THIS="$( cd "$( dirname "$0" )" && pwd )"
   975 echo "$THIS"
   986 echo "$THIS"
  1089             CMP_TYPES=false
  1100             CMP_TYPES=false
  1090             CMP_ZIPS=true
  1101             CMP_ZIPS=true
  1091             CMP_JARS=true
  1102             CMP_JARS=true
  1092             CMP_LIBS=true
  1103             CMP_LIBS=true
  1093             CMP_EXECS=true
  1104             CMP_EXECS=true
  1094             
  1105 
  1095             if [ -z "$FILTER" ]; then
  1106             if [ -z "$FILTER" ]; then
  1096                 FILTER="$GREP"
  1107                 FILTER="$GREP"
  1097             fi
  1108             fi
  1098             FILTER="$FILTER -e $1"
  1109             FILTER="$FILTER -e $1"
  1099             ;;
  1110             ;;
  1175         THIS_J2RE="$THIS/images/jre"
  1186         THIS_J2RE="$THIS/images/jre"
  1176         OTHER_J2SDK="$OTHER/images/jdk"
  1187         OTHER_J2SDK="$OTHER/images/jdk"
  1177         OTHER_J2RE="$OTHER/images/jre"
  1188         OTHER_J2RE="$OTHER/images/jre"
  1178         echo "Selecting jdk images for compare"
  1189         echo "Selecting jdk images for compare"
  1179     else
  1190     else
  1180 	echo "No common images found."
  1191         echo "No common images found."
  1181 	exit 1
  1192         exit 1
  1182     fi
  1193     fi
  1183 
  1194 
  1184     if [ -d "$THIS/images/jdk-bundle" ] && [ -d "$OTHER/images/jdk-bundle" ]; then
  1195     if [ -d "$THIS/images/jdk-bundle" ] && [ -d "$OTHER/images/jdk-bundle" ]; then
  1185         THIS_J2SDK_BUNDLE="$THIS/images/jdk-bundle"
  1196         THIS_J2SDK_BUNDLE="$THIS/images/jdk-bundle"
  1186         THIS_J2RE_BUNDLE="$THIS/images/jre-bundle"
  1197         THIS_J2RE_BUNDLE="$THIS/images/jre-bundle"
  1187         OTHER_J2SDK_BUNDLE="$OTHER/images/jdk-bundle"
  1198         OTHER_J2SDK_BUNDLE="$OTHER/images/jdk-bundle"
  1188         OTHER_J2RE_BUNDLE="$OTHER/images/jre-bundle"
  1199         OTHER_J2RE_BUNDLE="$OTHER/images/jre-bundle"
  1189         echo "Also comparing macosx bundles"
  1200         echo "Also comparing macosx bundles"
       
  1201     fi
       
  1202 
       
  1203     if [ -d "$THIS/deploy" ] && [ -d "$OTHER/deploy" ]; then
       
  1204         THIS_DEPLOY_BUNDLE_DIR="$THIS/deploy/dist/installer/bundles"
       
  1205         OTHER_DEPLOY_BUNDLE_DIR="$OTHER/deploy/bundles"
       
  1206         echo "Also comparing deploy/bundles"
       
  1207         if [ "$OPENJDK_TARGET_OS" = "macosx" ]; then
       
  1208             THIS_DEPLOY_APPLET_PLUGIN_DIR="$THIS/deploy/JavaAppletPlugin.plugin"
       
  1209             OTHER_DEPLOY_APPLET_PLUGIN_DIR="$OTHER/deploy/JavaAppletPlugin.plugin"
       
  1210             echo "Also comparing JavaAppletPlugin"
       
  1211         fi
  1190     fi
  1212     fi
  1191 
  1213 
  1192     if [ -d "$OTHER/images" ]; then
  1214     if [ -d "$OTHER/images" ]; then
  1193         OTHER_SEC_DIR="$OTHER/images"
  1215         OTHER_SEC_DIR="$OTHER/images"
  1194     else
  1216     else
  1210     fi
  1232     fi
  1211 
  1233 
  1212     if [ -d "$THIS/docs" ] && [ -d "$OTHER/docs" ]; then
  1234     if [ -d "$THIS/docs" ] && [ -d "$OTHER/docs" ]; then
  1213         THIS_DOCS="$THIS/docs"
  1235         THIS_DOCS="$THIS/docs"
  1214         OTHER_DOCS="$OTHER/docs"
  1236         OTHER_DOCS="$OTHER/docs"
  1215 	echo "Also comparing docs"
  1237         echo "Also comparing docs"
  1216     else
  1238     else
  1217         echo "WARNING! Docs haven't been built and won't be compared."
  1239         echo "WARNING! Docs haven't been built and won't be compared."
  1218     fi
  1240     fi
  1219 fi
  1241 fi
  1220 
  1242 
  1225     if [ -n "$THIS_J2SDK" ] && [ -n "$OTHER_J2SDK" ]; then
  1247     if [ -n "$THIS_J2SDK" ] && [ -n "$OTHER_J2SDK" ]; then
  1226         echo -n "J2SDK "
  1248         echo -n "J2SDK "
  1227         compare_dirs $THIS_J2SDK $OTHER_J2SDK $COMPARE_ROOT/j2sdk
  1249         compare_dirs $THIS_J2SDK $OTHER_J2SDK $COMPARE_ROOT/j2sdk
  1228         echo -n "J2RE  "
  1250         echo -n "J2RE  "
  1229         compare_dirs $THIS_J2RE $OTHER_J2RE $COMPARE_ROOT/j2re
  1251         compare_dirs $THIS_J2RE $OTHER_J2RE $COMPARE_ROOT/j2re
  1230         
  1252 
  1231         echo -n "J2SDK "
  1253         echo -n "J2SDK "
  1232         compare_files $THIS_J2SDK $OTHER_J2SDK $COMPARE_ROOT/j2sdk
  1254         compare_files $THIS_J2SDK $OTHER_J2SDK $COMPARE_ROOT/j2sdk
  1233         echo -n "J2RE  "
  1255         echo -n "J2RE  "
  1234         compare_files $THIS_J2RE $OTHER_J2RE $COMPARE_ROOT/j2re
  1256         compare_files $THIS_J2RE $OTHER_J2RE $COMPARE_ROOT/j2re
  1235     fi
  1257     fi
  1236     if [ -n "$THIS_J2SDK_BUNDLE" ] && [ -n "$OTHER_J2SDK_BUNDLE" ]; then
  1258     if [ -n "$THIS_J2SDK_BUNDLE" ] && [ -n "$OTHER_J2SDK_BUNDLE" ]; then
  1237         echo -n "J2SDK Bundle "
  1259         echo -n "J2SDK Bundle "
  1238         compare_dirs $THIS_J2SDK_BUNDLE $OTHER_J2SDK_BUNDLE $COMPARE_ROOT/jdk-bundle
  1260         compare_dirs $THIS_J2SDK_BUNDLE $OTHER_J2SDK_BUNDLE $COMPARE_ROOT/jdk-bundle
  1239         echo -n "J2RE  Bundle "
  1261         echo -n "J2RE  Bundle "
  1240         compare_dirs $THIS_J2RE_BUNDLE $OTHER_J2RE_BUNDLE $COMPARE_ROOT/jre-bundle
  1262         compare_dirs $THIS_J2RE_BUNDLE $OTHER_J2RE_BUNDLE $COMPARE_ROOT/jre-bundle
  1241         
  1263 
  1242         echo -n "J2SDK Bundle "
  1264         echo -n "J2SDK Bundle "
  1243         compare_files $THIS_J2SDK_BUNDLE $OTHER_J2SDK_BUNDLE $COMPARE_ROOT/jdk-bundle
  1265         compare_files $THIS_J2SDK_BUNDLE $OTHER_J2SDK_BUNDLE $COMPARE_ROOT/jdk-bundle
  1244         echo -n "J2RE  Bundle "
  1266         echo -n "J2RE  Bundle "
  1245         compare_files $THIS_J2RE_BUNDLE $OTHER_J2RE_BUNDLE $COMPARE_ROOT/jre-bundle
  1267         compare_files $THIS_J2RE_BUNDLE $OTHER_J2RE_BUNDLE $COMPARE_ROOT/jre-bundle
  1246     fi
  1268     fi
  1251         compare_files $THIS_DOCS $OTHER_DOCS $COMPARE_ROOT/docs
  1273         compare_files $THIS_DOCS $OTHER_DOCS $COMPARE_ROOT/docs
  1252     fi
  1274     fi
  1253     if [ -n "$THIS_BASE_DIR" ] && [ -n "$OTHER_BASE_DIR" ]; then
  1275     if [ -n "$THIS_BASE_DIR" ] && [ -n "$OTHER_BASE_DIR" ]; then
  1254         compare_dirs $THIS_BASE_DIR $OTHER_BASE_DIR $COMPARE_ROOT/base_dir
  1276         compare_dirs $THIS_BASE_DIR $OTHER_BASE_DIR $COMPARE_ROOT/base_dir
  1255         compare_files $THIS_BASE_DIR $OTHER_BASE_DIR $COMPARE_ROOT/base_dir
  1277         compare_files $THIS_BASE_DIR $OTHER_BASE_DIR $COMPARE_ROOT/base_dir
       
  1278     fi
       
  1279     if [ -n "$THIS_DEPLOY_APPLET_PLUGIN_DIR" ] && [ -n "$OTHER_DEPLOY_APPLET_PLUGIN_DIR" ]; then
       
  1280         echo -n "JavaAppletPlugin "
       
  1281         compare_dirs $THIS_DEPLOY_APPLET_PLUGIN_DIR $OTHER_DEPLOY_APPLET_PLUGIN_DIR $COMPARE_ROOT/plugin
       
  1282         echo -n "JavaAppletPlugin "
       
  1283         compare_files $THIS_DEPLOY_APPLET_PLUGIN_DIR $OTHER_DEPLOY_APPLET_PLUGIN_DIR $COMPARE_ROOT/plugin
  1256     fi
  1284     fi
  1257 fi
  1285 fi
  1258 
  1286 
  1259 if [ "$CMP_PERMS" = "true" ]; then
  1287 if [ "$CMP_PERMS" = "true" ]; then
  1260     if [ -n "$THIS_J2SDK" ] && [ -n "$OTHER_J2SDK" ]; then
  1288     if [ -n "$THIS_J2SDK" ] && [ -n "$OTHER_J2SDK" ]; then
  1264         compare_permissions $THIS_J2RE $OTHER_J2RE $COMPARE_ROOT/j2re
  1292         compare_permissions $THIS_J2RE $OTHER_J2RE $COMPARE_ROOT/j2re
  1265     fi
  1293     fi
  1266     if [ -n "$THIS_BASE_DIR" ] && [ -n "$OTHER_BASE_DIR" ]; then
  1294     if [ -n "$THIS_BASE_DIR" ] && [ -n "$OTHER_BASE_DIR" ]; then
  1267         compare_permissions $THIS_BASE_DIR $OTHER_BASE_DIR $COMPARE_ROOT/base_dir
  1295         compare_permissions $THIS_BASE_DIR $OTHER_BASE_DIR $COMPARE_ROOT/base_dir
  1268     fi
  1296     fi
       
  1297     if [ -n "$THIS_DEPLOY_APPLET_PLUGIN_DIR" ] && [ -n "$OTHER_DEPLOY_APPLET_PLUGIN_DIR" ]; then
       
  1298         echo -n "JavaAppletPlugin "
       
  1299         compare_permissions $THIS_DEPLOY_APPLET_PLUGIN_DIR $OTHER_DEPLOY_APPLET_PLUGIN_DIR $COMPARE_ROOT/plugin
       
  1300     fi
  1269 fi
  1301 fi
  1270 
  1302 
  1271 if [ "$CMP_TYPES" = "true" ]; then
  1303 if [ "$CMP_TYPES" = "true" ]; then
  1272     if [ -n "$THIS_J2SDK" ] && [ -n "$OTHER_J2SDK" ]; then
  1304     if [ -n "$THIS_J2SDK" ] && [ -n "$OTHER_J2SDK" ]; then
  1273         echo -n "J2SDK "
  1305         echo -n "J2SDK "
  1282         compare_file_types $THIS_J2RE_BUNDLE $OTHER_J2RE_BUNDLE $COMPARE_ROOT/jre-bundle
  1314         compare_file_types $THIS_J2RE_BUNDLE $OTHER_J2RE_BUNDLE $COMPARE_ROOT/jre-bundle
  1283     fi
  1315     fi
  1284     if [ -n "$THIS_BASE_DIR" ] && [ -n "$OTHER_BASE_DIR" ]; then
  1316     if [ -n "$THIS_BASE_DIR" ] && [ -n "$OTHER_BASE_DIR" ]; then
  1285         compare_file_types $THIS_BASE_DIR $OTHER_BASE_DIR $COMPARE_ROOT/base_dir
  1317         compare_file_types $THIS_BASE_DIR $OTHER_BASE_DIR $COMPARE_ROOT/base_dir
  1286     fi
  1318     fi
       
  1319     if [ -n "$THIS_DEPLOY_APPLET_PLUGIN_DIR" ] && [ -n "$OTHER_DEPLOY_APPLET_PLUGIN_DIR" ]; then
       
  1320         echo -n "JavaAppletPlugin "
       
  1321         compare_file_types $THIS_DEPLOY_APPLET_PLUGIN_DIR $OTHER_DEPLOY_APPLET_PLUGIN_DIR $COMPARE_ROOT/plugin
       
  1322     fi
  1287 fi
  1323 fi
  1288 
  1324 
  1289 if [ "$CMP_GENERAL" = "true" ]; then
  1325 if [ "$CMP_GENERAL" = "true" ]; then
  1290     if [ -n "$THIS_J2SDK" ] && [ -n "$OTHER_J2SDK" ]; then
  1326     if [ -n "$THIS_J2SDK" ] && [ -n "$OTHER_J2SDK" ]; then
  1291         echo -n "J2SDK "
  1327         echo -n "J2SDK "
  1304         compare_general_files $THIS_DOCS $OTHER_DOCS $COMPARE_ROOT/docs
  1340         compare_general_files $THIS_DOCS $OTHER_DOCS $COMPARE_ROOT/docs
  1305     fi
  1341     fi
  1306     if [ -n "$THIS_BASE_DIR" ] && [ -n "$OTHER_BASE_DIR" ]; then
  1342     if [ -n "$THIS_BASE_DIR" ] && [ -n "$OTHER_BASE_DIR" ]; then
  1307         compare_general_files $THIS_BASE_DIR $OTHER_BASE_DIR $COMPARE_ROOT/base_dir
  1343         compare_general_files $THIS_BASE_DIR $OTHER_BASE_DIR $COMPARE_ROOT/base_dir
  1308     fi
  1344     fi
       
  1345     if [ -n "$THIS_DEPLOY_APPLET_PLUGIN_DIR" ] && [ -n "$OTHER_DEPLOY_APPLET_PLUGIN_DIR" ]; then
       
  1346         echo -n "JavaAppletPlugin "
       
  1347         compare_general_files $THIS_DEPLOY_APPLET_PLUGIN_DIR $OTHER_DEPLOY_APPLET_PLUGIN_DIR $COMPARE_ROOT/plugin
       
  1348     fi
  1309 fi
  1349 fi
  1310 
  1350 
  1311 if [ "$CMP_ZIPS" = "true" ]; then
  1351 if [ "$CMP_ZIPS" = "true" ]; then
  1312     if [ -n "$THIS_J2SDK" ] && [ -n "$OTHER_J2SDK" ]; then
  1352     if [ -n "$THIS_J2SDK" ] && [ -n "$OTHER_J2SDK" ]; then
  1313         compare_all_zip_files $THIS_J2SDK $OTHER_J2SDK $COMPARE_ROOT/j2sdk
  1353         compare_all_zip_files $THIS_J2SDK $OTHER_J2SDK $COMPARE_ROOT/j2sdk
  1331         fi
  1371         fi
  1332     fi
  1372     fi
  1333     if [ -n "$THIS_BASE_DIR" ] && [ -n "$OTHER_BASE_DIR" ]; then
  1373     if [ -n "$THIS_BASE_DIR" ] && [ -n "$OTHER_BASE_DIR" ]; then
  1334         compare_all_zip_files $THIS_BASE_DIR $OTHER_BASE_DIR $COMPARE_ROOT/base_dir
  1374         compare_all_zip_files $THIS_BASE_DIR $OTHER_BASE_DIR $COMPARE_ROOT/base_dir
  1335     fi
  1375     fi
       
  1376     if [ -n "$THIS_DEPLOY_BUNDLE_DIR" ] && [ -n "$OTHER_DEPLOY_BUNDLE_DIR" ]; then
       
  1377         compare_all_zip_files $THIS_DEPLOY_BUNDLE_DIR $OTHER_DEPLOY_BUNDLE_DIR $COMPARE_ROOT/deploy-bundle
       
  1378     fi
       
  1379     if [ -n "$THIS_DEPLOY_APPLET_PLUGIN_DIR" ] && [ -n "$OTHER_DEPLOY_APPLET_PLUGIN_DIR" ]; then
       
  1380         compare_all_zip_files $THIS_DEPLOY_APPLET_PLUGIN_DIR $OTHER_DEPLOY_APPLET_PLUGIN_DIR $COMPARE_ROOT/plugin
       
  1381     fi
  1336 fi
  1382 fi
  1337 
  1383 
  1338 if [ "$CMP_JARS" = "true" ]; then
  1384 if [ "$CMP_JARS" = "true" ]; then
  1339     if [ -n "$THIS_J2SDK" ] && [ -n "$OTHER_J2SDK" ]; then
  1385     if [ -n "$THIS_J2SDK" ] && [ -n "$OTHER_J2SDK" ]; then
  1340         compare_all_jar_files $THIS_J2SDK $OTHER_J2SDK $COMPARE_ROOT/j2sdk
  1386         compare_all_jar_files $THIS_J2SDK $OTHER_J2SDK $COMPARE_ROOT/j2sdk
  1341     fi
  1387     fi
  1342     if [ -n "$THIS_BASE_DIR" ] && [ -n "$OTHER_BASE_DIR" ]; then
  1388     if [ -n "$THIS_BASE_DIR" ] && [ -n "$OTHER_BASE_DIR" ]; then
  1343         compare_all_jar_files $THIS_BASE_DIR $OTHER_BASE_DIR $COMPARE_ROOT/base_dir
  1389         compare_all_jar_files $THIS_BASE_DIR $OTHER_BASE_DIR $COMPARE_ROOT/base_dir
       
  1390     fi
       
  1391     if [ -n "$THIS_DEPLOY_APPLET_PLUGIN_DIR" ] && [ -n "$OTHER_DEPLOY_APPLET_PLUGIN_DIR" ]; then
       
  1392         compare_all_jar_files $THIS_DEPLOY_APPLET_PLUGIN_DIR $OTHER_DEPLOY_APPLET_PLUGIN_DIR $COMPARE_ROOT/plugin
  1344     fi
  1393     fi
  1345 fi
  1394 fi
  1346 
  1395 
  1347 if [ "$CMP_LIBS" = "true" ]; then
  1396 if [ "$CMP_LIBS" = "true" ]; then
  1348     if [ -n "$THIS_J2SDK" ] && [ -n "$OTHER_J2SDK" ]; then
  1397     if [ -n "$THIS_J2SDK" ] && [ -n "$OTHER_J2SDK" ]; then
  1354         fi
  1403         fi
  1355     fi
  1404     fi
  1356     if [ -n "$THIS_BASE_DIR" ] && [ -n "$OTHER_BASE_DIR" ]; then
  1405     if [ -n "$THIS_BASE_DIR" ] && [ -n "$OTHER_BASE_DIR" ]; then
  1357         compare_all_libs $THIS_BASE_DIR $OTHER_BASE_DIR $COMPARE_ROOT/base_dir
  1406         compare_all_libs $THIS_BASE_DIR $OTHER_BASE_DIR $COMPARE_ROOT/base_dir
  1358     fi
  1407     fi
       
  1408     if [ -n "$THIS_DEPLOY_APPLET_PLUGIN_DIR" ] && [ -n "$OTHER_DEPLOY_APPLET_PLUGIN_DIR" ]; then
       
  1409         echo -n "JavaAppletPlugin "
       
  1410         compare_all_libs $THIS_DEPLOY_APPLET_PLUGIN_DIR $OTHER_DEPLOY_APPLET_PLUGIN_DIR $COMPARE_ROOT/plugin
       
  1411     fi
  1359 fi
  1412 fi
  1360 
  1413 
  1361 if [ "$CMP_EXECS" = "true" ]; then
  1414 if [ "$CMP_EXECS" = "true" ]; then
  1362     if [ -n "$THIS_J2SDK" ] && [ -n "$OTHER_J2SDK" ]; then
  1415     if [ -n "$THIS_J2SDK" ] && [ -n "$OTHER_J2SDK" ]; then
  1363         compare_all_execs $THIS_J2SDK $OTHER_J2SDK $COMPARE_ROOT/j2sdk
  1416         compare_all_execs $THIS_J2SDK $OTHER_J2SDK $COMPARE_ROOT/j2sdk
       
  1417         if [ "$OPENJDK_TARGET_OS" = "macosx" ]; then
       
  1418             echo -n "J2RE  "
       
  1419             compare_all_execs $THIS_J2RE $OTHER_J2RE $COMPARE_ROOT/j2re
       
  1420         fi
  1364     fi
  1421     fi
  1365     if [ -n "$THIS_BASE_DIR" ] && [ -n "$OTHER_BASE_DIR" ]; then
  1422     if [ -n "$THIS_BASE_DIR" ] && [ -n "$OTHER_BASE_DIR" ]; then
  1366         compare_all_execs $THIS_BASE_DIR $OTHER_BASE_DIR $COMPARE_ROOT/base_dir
  1423         compare_all_execs $THIS_BASE_DIR $OTHER_BASE_DIR $COMPARE_ROOT/base_dir
       
  1424     fi
       
  1425     if [ -n "$THIS_DEPLOY_APPLET_PLUGIN_DIR" ] && [ -n "$OTHER_DEPLOY_APPLET_PLUGIN_DIR" ]; then
       
  1426         echo -n "JavaAppletPlugin "
       
  1427         compare_all_execs $THIS_DEPLOY_APPLET_PLUGIN_DIR $OTHER_DEPLOY_APPLET_PLUGIN_DIR $COMPARE_ROOT/plugin
  1367     fi
  1428     fi
  1368 fi
  1429 fi
  1369 
  1430 
  1370 echo
  1431 echo
  1371 
  1432