No Rob. It is rare, but failures can occur as I explained. I also gave an example where it failed.
And,
Yes, Rob, now it gets confusing:
Yes, the compiler can rebuild itself but after bootstrapping initially:
As can be seen from:
Bootstrap compiler builds ppo1 - at that point the compiler is good - that builds ppo2 that builds ppo3: ppo1 is already a compiler from the version you want to build, only not yet optimized with WPO.
So if you want to build a maiden compiler from source, you will need a bootstrap compiler from one version earlier.
Get it?
After ppo1 is finished the compiler can rebuild itself. Proof is the wpo cycle.
(wpo stands for Whole Program Optimization, just in case)
The compiler makefile.fpc and makefile, not the root makefiles, contains the information you need to know.