common/bin/compare.sh
changeset 22467 b16a5ae55d50
parent 20049 f17192b4bc71
child 21759 e24e22311718
equal deleted inserted replaced
22466:25aaf85d1ada 22467:b16a5ae55d50
    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         TMP=$(LANG=C $DIFF $OTHER_FILE $THIS_FILE | \
    79         TMP=$(LC_ALL=C $DIFF $OTHER_FILE $THIS_FILE | \
    80             $GREP '^[<>]' | \
    80             $GREP '^[<>]' | \
    81             $SED -e '/[<>] Ant-Version: Apache Ant .*/d' \
    81             $SED -e '/[<>] Ant-Version: Apache Ant .*/d' \
    82 	         -e '/[<>] Created-By: .* (Oracle Corporation).*/d')
    82 	         -e '/[<>] Created-By: .* (Oracle Corporation).*/d')
    83     fi
    83     fi
    84     if test "x$SUFFIX" = "xjava"; then
    84     if test "x$SUFFIX" = "xjava"; then
    85         TMP=$(LANG=C $DIFF $OTHER_FILE $THIS_FILE | \
    85         TMP=$(LC_ALL=C $DIFF $OTHER_FILE $THIS_FILE | \
    86             $GREP '^[<>]' | \
    86             $GREP '^[<>]' | \
    87             $SED -e '/[<>] \* from.*\.idl/d' \
    87             $SED -e '/[<>] \* from.*\.idl/d' \
    88                  -e '/[<>] \*.*[0-9]\{4\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}-b[0-9]\{2\}.*/d' \
    88                  -e '/[<>] \*.*[0-9]\{4\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}_[0-9]\{2\}-b[0-9]\{2\}.*/d' \
    89                  -e '/[<>] \*.*[0-9]\{4\} [0-9][0-9]*:[0-9]\{2\}:[0-9]\{2\}.*/d' \
    89                  -e '/[<>] \*.*[0-9]\{4\} [0-9][0-9]*:[0-9]\{2\}:[0-9]\{2\}.*/d' \
    90                  -e '/\/\/ Generated from input file.*/d' \
    90                  -e '/\/\/ Generated from input file.*/d' \
   119 #        $CAT $OTHER_FILE | $SED -e 's/\([^\\]\):/\1\\:/g' -e  's/\([^\\]\)=/\1\\=/g' -e 's/#.*/#/g' \
   119 #        $CAT $OTHER_FILE | $SED -e 's/\([^\\]\):/\1\\:/g' -e  's/\([^\\]\)=/\1\\=/g' -e 's/#.*/#/g' \
   120 #            | $SED -f "$SRC_ROOT/common/makefiles/support/unicode2x.sed" \
   120 #            | $SED -f "$SRC_ROOT/common/makefiles/support/unicode2x.sed" \
   121 #  	    | $SED -e '/^#/d' -e '/^$/d' \
   121 #  	    | $SED -e '/^#/d' -e '/^$/d' \
   122 #            -e :a -e '/\\$/N; s/\\\n//; ta' \
   122 #            -e :a -e '/\\$/N; s/\\\n//; ta' \
   123 #  	    -e 's/^[ \t]*//;s/[ \t]*$//' \
   123 #  	    -e 's/^[ \t]*//;s/[ \t]*$//' \
   124 #	    -e 's/\\=/=/' | LANG=C $SORT > $OTHER_FILE.cleaned
   124 #	    -e 's/\\=/=/' | LC_ALL=C $SORT > $OTHER_FILE.cleaned
   125         TMP=$(LANG=C $DIFF $OTHER_FILE.cleaned $THIS_FILE)
   125         TMP=$(LC_ALL=C $DIFF $OTHER_FILE.cleaned $THIS_FILE)
   126     fi
   126     fi
   127     if test -n "$TMP"; then
   127     if test -n "$TMP"; then
   128         echo Files $OTHER_FILE and $THIS_FILE differ
   128         echo Files $OTHER_FILE and $THIS_FILE differ
   129         return 1
   129         return 1
   130     fi
   130     fi
   408     done
   408     done
   409 
   409 
   410     CONTENTS_DIFF_FILE=$WORK_DIR/$ZIP_FILE.diff
   410     CONTENTS_DIFF_FILE=$WORK_DIR/$ZIP_FILE.diff
   411     # On solaris, there is no -q option.
   411     # On solaris, there is no -q option.
   412     if [ "$OPENJDK_TARGET_OS" = "solaris" ]; then
   412     if [ "$OPENJDK_TARGET_OS" = "solaris" ]; then
   413         LANG=C $DIFF -r $OTHER_UNZIPDIR $THIS_UNZIPDIR \
   413         LC_ALL=C $DIFF -r $OTHER_UNZIPDIR $THIS_UNZIPDIR \
   414             | $GREP -v -e "^<" -e "^>" -e "^Common subdirectories:" \
   414             | $GREP -v -e "^<" -e "^>" -e "^Common subdirectories:" \
   415             > $CONTENTS_DIFF_FILE
   415             > $CONTENTS_DIFF_FILE
   416     else
   416     else
   417         LANG=C $DIFF -rq $OTHER_UNZIPDIR $THIS_UNZIPDIR > $CONTENTS_DIFF_FILE
   417         LC_ALL=C $DIFF -rq $OTHER_UNZIPDIR $THIS_UNZIPDIR > $CONTENTS_DIFF_FILE
   418     fi
   418     fi
   419 
   419 
   420     ONLY_OTHER=$($GREP "^Only in $OTHER_UNZIPDIR" $CONTENTS_DIFF_FILE)
   420     ONLY_OTHER=$($GREP "^Only in $OTHER_UNZIPDIR" $CONTENTS_DIFF_FILE)
   421     ONLY_THIS=$($GREP "^Only in $THIS_UNZIPDIR" $CONTENTS_DIFF_FILE)
   421     ONLY_THIS=$($GREP "^Only in $THIS_UNZIPDIR" $CONTENTS_DIFF_FILE)
   422 
   422 
   457         $CAT $WORK_DIR/$ZIP_FILE.difflist
   457         $CAT $WORK_DIR/$ZIP_FILE.difflist
   458 
   458 
   459         if [ -n "$SHOW_DIFFS" ]; then
   459         if [ -n "$SHOW_DIFFS" ]; then
   460             for i in $(cat $WORK_DIR/$ZIP_FILE.difflist) ; do
   460             for i in $(cat $WORK_DIR/$ZIP_FILE.difflist) ; do
   461                 if [ -f "${OTHER_UNZIPDIR}/$i.javap" ]; then
   461                 if [ -f "${OTHER_UNZIPDIR}/$i.javap" ]; then
   462                     LANG=C $DIFF ${OTHER_UNZIPDIR}/$i.javap ${THIS_UNZIPDIR}/$i.javap
   462                     LC_ALL=C $DIFF ${OTHER_UNZIPDIR}/$i.javap ${THIS_UNZIPDIR}/$i.javap
   463                 elif [ -f "${OTHER_UNZIPDIR}/$i.cleaned" ]; then
   463                 elif [ -f "${OTHER_UNZIPDIR}/$i.cleaned" ]; then
   464                     LANG=C $DIFF ${OTHER_UNZIPDIR}/$i.cleaned ${THIS_UNZIPDIR}/$i
   464                     LC_ALL=C $DIFF ${OTHER_UNZIPDIR}/$i.cleaned ${THIS_UNZIPDIR}/$i
   465                 else
   465                 else
   466                     LANG=C $DIFF ${OTHER_UNZIPDIR}/$i ${THIS_UNZIPDIR}/$i
   466                     LC_ALL=C $DIFF ${OTHER_UNZIPDIR}/$i ${THIS_UNZIPDIR}/$i
   467                 fi
   467                 fi
   468             done
   468             done
   469         fi
   469         fi
   470     fi
   470     fi
   471 
   471 
   701     else
   701     else
   702 	$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
   702 	$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
   703 	$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
   703 	$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
   704     fi
   704     fi
   705     
   705     
   706     LANG=C $DIFF $WORK_FILE_BASE.symbols.other $WORK_FILE_BASE.symbols.this > $WORK_FILE_BASE.symbols.diff
   706     LC_ALL=C $DIFF $WORK_FILE_BASE.symbols.other $WORK_FILE_BASE.symbols.this > $WORK_FILE_BASE.symbols.diff
   707     if [ -s $WORK_FILE_BASE.symbols.diff ]; then
   707     if [ -s $WORK_FILE_BASE.symbols.diff ]; then
   708         SYM_MSG=" diff  "
   708         SYM_MSG=" diff  "
   709         if [[ "$ACCEPTED_SYM_DIFF" != *"$BIN_FILE"* ]]; then
   709         if [[ "$ACCEPTED_SYM_DIFF" != *"$BIN_FILE"* ]]; then
   710             DIFF_SYM=true
   710             DIFF_SYM=true
   711             if [[ "$KNOWN_SYM_DIFF" != *"$BIN_FILE"* ]]; then
   711             if [[ "$KNOWN_SYM_DIFF" != *"$BIN_FILE"* ]]; then
   730     if [ -n "$LDD_CMD" ]; then
   730     if [ -n "$LDD_CMD" ]; then
   731 	(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)
   731 	(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)
   732 	(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)
   732 	(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)
   733 	(cd $FILE_WORK_DIR && $RM -f $NAME)
   733 	(cd $FILE_WORK_DIR && $RM -f $NAME)
   734 	
   734 	
   735 	LANG=C $DIFF $WORK_FILE_BASE.deps.other $WORK_FILE_BASE.deps.this > $WORK_FILE_BASE.deps.diff
   735 	LC_ALL=C $DIFF $WORK_FILE_BASE.deps.other $WORK_FILE_BASE.deps.this > $WORK_FILE_BASE.deps.diff
   736 	LANG=C $DIFF $WORK_FILE_BASE.deps.other.uniq $WORK_FILE_BASE.deps.this.uniq > $WORK_FILE_BASE.deps.diff.uniq
   736 	LC_ALL=C $DIFF $WORK_FILE_BASE.deps.other.uniq $WORK_FILE_BASE.deps.this.uniq > $WORK_FILE_BASE.deps.diff.uniq
   737 	
   737 	
   738 	if [ -s $WORK_FILE_BASE.deps.diff ]; then
   738 	if [ -s $WORK_FILE_BASE.deps.diff ]; then
   739             if [ -s $WORK_FILE_BASE.deps.diff.uniq ]; then
   739             if [ -s $WORK_FILE_BASE.deps.diff.uniq ]; then
   740 		DEP_MSG=" diff  "
   740 		DEP_MSG=" diff  "
   741             else
   741             else
   766     
   766     
   767     # Compare fulldump output
   767     # Compare fulldump output
   768     if [ -n "$FULLDUMP_CMD" ] && [ -z "$SKIP_FULLDUMP_DIFF" ]; then
   768     if [ -n "$FULLDUMP_CMD" ] && [ -z "$SKIP_FULLDUMP_DIFF" ]; then
   769         $FULLDUMP_CMD $OTHER_FILE > $WORK_FILE_BASE.fulldump.other 2>&1
   769         $FULLDUMP_CMD $OTHER_FILE > $WORK_FILE_BASE.fulldump.other 2>&1
   770         $FULLDUMP_CMD $THIS_FILE > $WORK_FILE_BASE.fulldump.this 2>&1
   770         $FULLDUMP_CMD $THIS_FILE > $WORK_FILE_BASE.fulldump.this 2>&1
   771         LANG=C $DIFF $WORK_FILE_BASE.fulldump.other $WORK_FILE_BASE.fulldump.this > $WORK_FILE_BASE.fulldump.diff
   771         LC_ALL=C $DIFF $WORK_FILE_BASE.fulldump.other $WORK_FILE_BASE.fulldump.this > $WORK_FILE_BASE.fulldump.diff
   772         
   772         
   773         if [ -s $WORK_FILE_BASE.fulldump.diff ]; then
   773         if [ -s $WORK_FILE_BASE.fulldump.diff ]; then
   774             ELF_DIFF_SIZE=$(ls -n $WORK_FILE_BASE.fulldump.diff | awk '{print $5}')
   774             ELF_DIFF_SIZE=$(ls -n $WORK_FILE_BASE.fulldump.diff | awk '{print $5}')
   775             ELF_MSG=$($PRINTF "%8d" $ELF_DIFF_SIZE)
   775             ELF_MSG=$($PRINTF "%8d" $ELF_DIFF_SIZE)
   776             if [[ "$ACCEPTED_ELF_DIFF" != *"$BIN_FILE"* ]]; then
   776             if [[ "$ACCEPTED_ELF_DIFF" != *"$BIN_FILE"* ]]; then
   800 	    DIS_DIFF_FILTER="$CAT"
   800 	    DIS_DIFF_FILTER="$CAT"
   801 	fi
   801 	fi
   802         $DIS_CMD $OTHER_FILE | $GREP -v $NAME | $DIS_DIFF_FILTER > $WORK_FILE_BASE.dis.other 2>&1
   802         $DIS_CMD $OTHER_FILE | $GREP -v $NAME | $DIS_DIFF_FILTER > $WORK_FILE_BASE.dis.other 2>&1
   803         $DIS_CMD $THIS_FILE  | $GREP -v $NAME | $DIS_DIFF_FILTER > $WORK_FILE_BASE.dis.this  2>&1
   803         $DIS_CMD $THIS_FILE  | $GREP -v $NAME | $DIS_DIFF_FILTER > $WORK_FILE_BASE.dis.this  2>&1
   804         
   804         
   805         LANG=C $DIFF $WORK_FILE_BASE.dis.other $WORK_FILE_BASE.dis.this > $WORK_FILE_BASE.dis.diff
   805         LC_ALL=C $DIFF $WORK_FILE_BASE.dis.other $WORK_FILE_BASE.dis.this > $WORK_FILE_BASE.dis.diff
   806         
   806         
   807         if [ -s $WORK_FILE_BASE.dis.diff ]; then
   807         if [ -s $WORK_FILE_BASE.dis.diff ]; then
   808             DIS_DIFF_SIZE=$(ls -n $WORK_FILE_BASE.dis.diff | awk '{print $5}')
   808             DIS_DIFF_SIZE=$(ls -n $WORK_FILE_BASE.dis.diff | awk '{print $5}')
   809             DIS_MSG=$($PRINTF "%8d" $DIS_DIFF_SIZE)
   809             DIS_MSG=$($PRINTF "%8d" $DIS_DIFF_SIZE)
   810             if [[ "$ACCEPTED_DIS_DIFF" != *"$BIN_FILE"* ]]; then
   810             if [[ "$ACCEPTED_DIS_DIFF" != *"$BIN_FILE"* ]]; then