So it seems that, contrary to the howto, the GCC libiberty is not a superset of the binutils version, which sort of makes this whole merged build kinda a bad idea. In particular, binutils fails because lrealpath is not in gcc's version (even 3.3.2).
The point of merging these trees, I thought, was to do a nice clean bootstrap. Otherwise you have to either do the whole compile twice (ick!) or build your final gcc with a binutils built with the older gcc (or other compiler).
Does anyone have any insight into the long-term prospect for merged bootstrap installs? If they're not possible, then what's the proper way to handle this?
-- Mario
Rupert Wood wrote:
Mario Nigrovic wrote:
I've seen lots of references implying that it's possible to have bootstrap gcc compile its binutils (gas, ld, etc), but I've searched and searched and all the docs just say it's possible, not *how* to do it!
It gets a mention in the simulator test instructions,
http://gcc.gnu.org/simtest-howto.html
The basic idea is to note that the root of gcc, gdb, binutils, etc. tarballs is all approximately the same, as are a few of the subdirectories (libiberty, include, etc.) In fact binutils and gdb come from the same CVS; virtually all of sources apart from gcc do. I think the combined tree is called the "Cygnus toolchain".
You have to make sure the gcc, binutils, etc. that you're combining are about the same age so one will build with the other one's libiberty and includes. Then you need to decide which tree's libiberty and include you're going to use - I forget which one's officially canonical. Then you can either make hard links with cpio as in the simtest howto or you could symlink the gcc, bohem-gc and runtime lib directories into the binutils source tree, or the bfd, binutils, gas, ld, opcodes, etc. directories into the binutils tree. Finally, you should be able to configure and build from the combined tree.
However, I don't think this offers any benefit over building then installing the binutils and then building and installing GCC for a target, especially if you're going to update the GCC more often than the binutils.
You may find more / better instructions in the CrossGCC FAQ.
Good luck, Rup.