Today I started resurrecting my old automatic dependency patch. I decided, this time, to take a more incremental approach. Thanks to git, I made a patch series, rather than one monster patch. Now we can easily test various parts of the change to more easily notice if, or when, we trip across the GNU make bug again.
I pushed the series to gcc.git tromey/auto-dependency-checking (which was supposed to be 'tracking', but which I mistyped completely unconsciously: the fingers have reasons which reason cannot know). Anyway.. The branch for now only implements automatic dependency tracking for host objects. This is the most useful case. The series on the branch is based on the observation that it is safe to leave explicit dependencies in the Makefile during the conversion. Conversions of various bits are done in separate patches. I've tested this a bit and it works ok. I tried clean builds with various -jN options to try to provoke missing dependencies, and caught a few bugs that way. Usually bugs are just a missing pre-dependency and are easy to fix. There may be more missing dependencies. Please try out this branch if you would. You can report bugs to me, just send the build log. There are still a few things that I haven't done yet: * Update the dependencies in files in config/ * Make auto dependency tracking work for build/*.o * Remove all the *_H macros from Makefile.in * Ada I suppose at least removing the dead macros would be good to have. The rest is nice but optional -- leaving them undone won't break anything. Tom