------- Additional Comments From eesrjhc at bath dot ac dot uk  2005-06-15 
12:10 -------
Subject: Re:  bootstrap fails when comparing stage 2 with stage 3 due to use of 
obsoleted "tail +16c" syntax

On Wednesday 15 June 2005 12:52, you wrote:
> ------- Additional Comments From pinskia at gcc dot gnu dot org 
> 2005-06-15 11:52 ------- Also since this is on GNU/Linux, gnucompare
> case should be invoking, so I assume you cmp is wrong/ missing also.

No, cmp is present and working.

If you look at the gcc/Makefile.in, circa lines 4129:

slowcompare slowcompare3 slowcompare4 slowcompare-lean slowcompare3-lean 
slowcompare4-lean \
fastcompare fastcompare3 fastcompare4 fastcompare-lean fastcompare3-lean 
fastcompare4-lean \
 gnucompare  gnucompare3  gnucompare4  gnucompare-lean  gnucompare3-lean  
gnucompare4-lean: force
        -rm -f .bad_compare
        case "$@" in *compare | *compare-lean ) stage=2 ;; * ) stage=`echo $@ | 
sed -e 's,^[a-z]*compare\([0-9][0-9]*\).*,\1,'` ;; esac; \
        for dir in . $(SUBDIRS) libgcc; do \
          if [ "`echo $$dir/*$(objext)`" != "$$dir/*$(objext)" ] ; then \
            for file in $$dir/*$(objext); do \
              case $$file in \
                ./cc*-checksum$(objext) | libgcc/* ) \
                    tail +16c ./$$file > tmp-foo1 \
                    && tail +16c stage$$stage/$$file > tmp-foo2 \
                    && ( cmp tmp-foo1 tmp-foo2 > /dev/null 2>&1 \
                         || echo warning: $$file differs || true ) \
                  ;; \
                *)  case "$@" in \
                  slowcompare* ) \
                    tail +16c ./$$file > tmp-foo1; \
                    tail +16c stage$$stage/$$file > tmp-foo2 \
                      && (cmp tmp-foo1 tmp-foo2 > /dev/null 2>&1 \
                          || echo $$file differs >> .bad_compare) || true; \
                    ;; \
                  fastcompare* ) \
                    cmp $$file stage$$stage/$$file 16 16 > /dev/null 2>&1; \
                    test $$? -eq 1 && echo $$file differs >> .bad_compare || 
true; \
                    ;; \
                  gnucompare* ) \
                    cmp --ignore-initial=16 $$file stage$$stage/$$file > 
/dev/null 2>&1; \
                    test $$? -eq 1 && echo $$file differs >> .bad_compare || 
true; \
                    ;; \
                esac ; \
              esac ; \
            done; \
          else true; fi; \
        done
        -rm -f tmp-foo*
        case "$@" in *compare | *compare-lean ) stage=2 ;; * ) stage=`echo $@ | 
sed -e 's,^[a-z]*compare\([0-9][0-9]*\).*,\1,'` ;; esac; \
        if [ -f .bad_compare ]; then \
          echo "Bootstrap comparison failure!"; \
          cat .bad_compare; \
          exit 1; \
        else \
          case "$@" in \
            *-lean ) rm -rf stage$$stage ;; \
            *) ;; \
          esac; true; \
        fi


the files in ./cc*-checksum$(objext) | libgcc/* are checked with tail
+16c, while the rest of the files are checked by a method that depends
on the compare switch.

Best wishes,
Roger.




-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22075

Reply via email to