https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108287
--- Comment #4 from Georg-Johann Lay <gjl at gcc dot gnu.org> --- Well, updating or creating some auto-generated files is intentional. What's not supported as of GCC documentation is configure'ing in the source tree: https://gcc.gnu.org/install/configure.html > First, we **highly** recommend that GCC be built into a separate directory > from the sources which does not reside within the source tree. > This is how we generally build GCC; building where srcdir == objdir > should still work, but doesn’t get extensive testing; building where > objdir is a subdirectory of srcdir is unsupported. The reason why it does not work for you might be: 1) Maybe you changed avr-mcus.def to support more devices. This change will trigger more changes, for example to auto-generated documentation (texi) bits. This means you are basically a maintainer, which in turn means you migth have more jobs to do, or tools to use than a simple user who just builds GCC from source. 2) When you get the sources from some repo like git, the checked-out sources might have timestamps that don't reflect their true state. This triggers make to re-build auto-generated files, even though no prerequisite was changed and the targets need not be rebuilt. To fix this, run ./contrib/gcc_update --touch from the top-level source dir. This script will touch some source files and fix their timestamps. You obviously need write permission for that.