On 14/05/08 10:58 -0400, Marc Karasek wrote:
Jordan, Marc, Ron, et all.
I found the problem with building coreboot-v2. It was the binutils. I believe the seg fault in linking tint/coreinfo is the same issue. I will try to verify this soon.
I would like to propose that we move to a cross-compile type of environment. We could use crosstools scripts to build a complete environment that would go under /opt/crosstools. This could then be used by buildrom to build with. The advantage is that everyone will be on the same page in terms of gcc/binutils/glibc versions and we can have a better control over what tools are used. It gets us away from any distro/tools dependencies. It will also let us test new toolchains in a very controlled environment. Another added bonus with a common set of tools is that third-party developers can use this without worrying about toolchain issues.
I have some experience in using cross-compilers from other embedded projects. I have already setup crosstools with gcc 4.1.0 / binutils 2.16 / glibc 2.3.6 on my system. I could take on the task of modifying buildrom to use this toolchain instead of the "native" toolchain. I
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.
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. 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. Thats not a future I relish.
If libpayload based payloads are not building, then I consider that a personal failure, and we need to resolve it. Please send me the details.
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. 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.
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.
Thanks, Jordan