aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/Make-lang.in
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/cp/Make-lang.in')
-rw-r--r--gcc/cp/Make-lang.in11
1 files changed, 9 insertions, 2 deletions
diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in
index 8770f6f..625a77c 100644
--- a/gcc/cp/Make-lang.in
+++ b/gcc/cp/Make-lang.in
@@ -90,11 +90,18 @@ c++_OBJS = $(CXX_OBJS) cc1plus-checksum.o cp/g++spec.o
cp-warn = $(STRICT_WARN)
# compute checksum over all object files and the options
+# re-use the checksum from the prev-final stage so it passes
+# the bootstrap comparison and allows comparing of the cc1 binary
cc1plus-checksum.c : build/genchecksum$(build_exeext) checksum-options \
$(CXX_OBJS) $(BACKEND) $(LIBDEPS)
- build/genchecksum$(build_exeext) $(CXX_OBJS) $(BACKEND) $(LIBDEPS) \
+ if [ -f ../stage_final ] \
+ && cmp -s ../stage_current ../stage_final; then \
+ cp ../prev-gcc/cc1plus-checksum.c cc1plus-checksum.c; \
+ else \
+ build/genchecksum$(build_exeext) $(CXX_OBJS) $(BACKEND) $(LIBDEPS) \
checksum-options > cc1plus-checksum.c.tmp && \
- $(srcdir)/../move-if-change cc1plus-checksum.c.tmp cc1plus-checksum.c
+ $(srcdir)/../move-if-change cc1plus-checksum.c.tmp cc1plus-checksum.c; \
+ fi
cc1plus$(exeext): $(CXX_OBJS) cc1plus-checksum.o $(BACKEND) $(LIBDEPS)
+$(LLINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \