This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Exhaustive Instructions for Toolchain Generation
- From: Joseph Myers <joseph at codesourcery dot com>
- To: R0b0t1 <r030t1 at gmail dot com>
- Cc: GCC Development <gcc at gcc dot gnu dot org>
- Date: Wed, 4 Oct 2017 15:25:45 +0000
- Subject: Re: Exhaustive Instructions for Toolchain Generation
- Authentication-results: sourceware.org; auth=none
- References: <CAAD4mYhF0JAkvLcBzHCocB9L5iTd5XU9K33WHeDsJo=_GxqfLg@mail.gmail.com> <CAH6eHdSLuB=uZ4Hseb-CQeT9=E8JTb8=J3yHxBu2DLm7kq=2DA@mail.gmail.com> <CAAD4mYinDcV_Avb9_KwLEmofAiSri_2kHiQrfdu1=LZL0+L3YA@mail.gmail.com> <CAH6eHdTC3yKYy56fZPS4BdCS4y3V2FFHJqhWmgu5VJzj9j-oAA@mail.gmail.com> <CAAD4mYjVnGZkCeezfLEos4QRyYcHJTmgA-322aMRzKVzwFttJA@mail.gmail.com> <CAAD4mYhvgxpn8R=OXDqHY5bLV18--sjA315qky9qLPicM68KRA@mail.gmail.com>
There are over 25000 words of GCC installation documentation in
install.texi, and that's not even including e.g. libstdc++ configure
options documented elsewhere. Other toolchain components also have such
documentation.
It's true that, as a consequence of the toolchain being made up of
multiple separately maintained components, the documentation focuses on
configuration of a single build of a single component, not on issues
relating to composing multiple such builds, of the same or different
components, into a complete toolchain - you have to digest large amounts
of documentation of individual components and deduce from that how to
compose multiple builds to solve your particular problem (which is quite
likely different from anyone else's particular problem - and there's a lot
to digest to even get a clear enough conceptual understanding of what
one's problem is and what the end result might look like).
But there are also plenty of toolchain build packages out there that do
such composition, and even if each of those is solving a problem different
from the one you have, studying those packages should give useful
information about how multiple builds are composed that helps you develop
your own such package. For example, I'd advise anyone wishing to
understand how to bootstrap a cross toolchain for a target using glibc to
look at the build-many-glibcs.py script in glibc that I wrote, as it uses
the preferred modern approach for building such a toolchain, whereas many
build scripts out there have workarounds for issues with old versions of
GCC or glibc that are no longer preferred or needed with current versions,
into which many improvements have gone to make building such a toolchain
smoother.
--
Joseph S. Myers
joseph@codesourcery.com