If aarch64-tune.md was older than gentune.sh or aarch64-cores.def, we'd try to overwrite it even if the current contents were correct. This could cause problems with read-only source directories and could cause spurious copying for rsync --archive.
Tested on aarch64-linux-gnu. Also tested by changing aarch64-cores.def and making sure that the file was updated appropriately. Richard 2020-01-06 Richard Sandiford <richard.sandif...@arm.com> gcc/ * config/aarch64/t-aarch64 ($(srcdir)/config/aarch64/aarch64-tune.md): Depend on... (s-aarch64-tune-md): ...this new stamp file. Pipe the new contents to a temporary file and use move-if-change to update the real file where necessary. Index: gcc/config/aarch64/t-aarch64 =================================================================== --- gcc/config/aarch64/t-aarch64 2020-01-06 12:58:16.453794569 +0000 +++ gcc/config/aarch64/t-aarch64 2020-01-06 13:01:23.332565292 +0000 @@ -24,11 +24,15 @@ OPTIONS_H_EXTRA += $(srcdir)/config/aarc $(srcdir)/config/aarch64/aarch64-fusion-pairs.def \ $(srcdir)/config/aarch64/aarch64-tuning-flags.def -$(srcdir)/config/aarch64/aarch64-tune.md: $(srcdir)/config/aarch64/gentune.sh \ +$(srcdir)/config/aarch64/aarch64-tune.md: s-aarch64-tune-md; @true +s-aarch64-tune-md: $(srcdir)/config/aarch64/gentune.sh \ $(srcdir)/config/aarch64/aarch64-cores.def $(SHELL) $(srcdir)/config/aarch64/gentune.sh \ $(srcdir)/config/aarch64/aarch64-cores.def > \ + tmp-aarch64-tune.md + $(SHELL) $(srcdir)/../move-if-change tmp-aarch64-tune.md \ $(srcdir)/config/aarch64/aarch64-tune.md + $(STAMP) s-aarch64-tune-md aarch64-builtins.o: $(srcdir)/config/aarch64/aarch64-builtins.c $(CONFIG_H) \ $(SYSTEM_H) coretypes.h $(TM_H) \