I feel very strongly that this should not be mandatory. I appreciate the trouble you have had, but I think that adding a mandatory cross-compile toolchain is too high a barrier for entry for novice buildrom users.
It's also wholly unnecessary. The only thing it would do is replace some build machinery that detects what specific toolchain commands to use with build machinery that detects how to build a specific toolchain.
I have always believed, and I will always believe that the reason that any given toolchain doesn't work out of the box is the fault of the software you are compiling and not the fault of the toolchain.
Strongly agreed, with the caveat that the toolchain *can* have bugs -- but it's childish to start blaming the toolchain until you have proof it's doing something wrong. Much more often it's pilot error.
The moment we start to turn a blind eye to our own faults and start blaming toolchains, then we have started down a slippery slope. Eventually, coreboot and buildrom and the payloads will only be compilable with a special toolchain that is six years old and we'll be content to sit around and blame it all on the compiler team.
Hey, coreboot runs into a broken linker more often than into a broken compiler, even ;-)
That all said, I would be perfectly happy to let the user specify a local toolchain to compile buildrom, as long as that behavior is configurable and the default remains to use the system toolchain.
The default should be to try to find some toolchain if nothing was specified, sure. A few lines of script for a lot of user-friendliness.
I'm sure that your experience with crosstools will be good for a wiki page describing the care and feeding of a cross-compile toolchain and how to use it with buildrom. I look forward to seeing that.
Aye.
But I beg you, please give us as much information as you have about your failures so that we can try to fix them in the code. And everybody else, we need to stop throwing our hands up when we encounter toolchain issues - we need to understand them and why there is a much better then average chance that it is our code that is to blame.
Better than 95% chance? :-)
Segher