https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118223
--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Eric Gallager from comment #4) > > Because it takes a long time and wastes electricity. If you are making huge refactoring of code, it will always require a full rebuild anyways. Especially when it comes to deleting header files that are used in many files. This is not something which simplely solvable except by have a flag day when these kind of changes happen; especially when it comes to huge projects. See https://en.wikipedia.org/wiki/Flag_day_(computing) for the definition of a flag day. Basically you need to coordinate with all of the developers for this kind of change anyways because they might be using that header file in one of those changes they are developing locally. This is kind of things is not something which is solvable in build systems but rather it is more about communication between developers and warning when things like this happen.