Welcome to toolchain.org

Why?

So, what's a "toolchain"? My definition is: all of the Linux tools I need to start from source code (C, C++, or others), and then create and debug an executable program. For example, most if not all Linux distributions use binutils, glibc, GCC, and gdb.

There are some things that nag at me a bit, though, and I'd like to make them more straightforward:

  • Building a native Linux toolchain from source -- since every distribution has some quirks that they put in, I'd like to be able to build from pure upstream source. Or, the other case is to experiment -- perhaps use a different upstream branch, for one or more components. Or, perhaps I'd like to experiment with complete replacements for any of these components -- maybe a different compiler, or a whole rewrite of an assembler, for example.
  • Building a cross-toolchain for Linux from source -- there are several mechanisms out there for doing this, but I've yet to find any of them satisfactory, especially for the ia64 architecture (a pet peeve of mine). I'd like to have the same flexibility to experiment with cross-tools that I want to have with native tools.

Last but not least, I'd also like to give something back to the open source communities that have helped me so much during my career. So, I also offer this site as a place to start collecting and disseminating some of the tips and tricks needed to work with toolchains, and to modify them to meet your needs. You can never tell which little tidbit of info stashed away in someone's experience will be the key that solves a problem.

Starting Points

Solving the Problems

Learning how to use Trac

For a complete list of local wiki pages, see TitleIndex.