Hosted by:

Reliable Expertise and Top-Notch Courses

The basics ...

As is discussed in Chapter 4 of Building Embedded Linux Systems, building a functional GNU cross-development toolchain requires knowing a working toolchain components version combination for a given host and target. To help in doing so, the book includes table 4-2, which provides a few of these combinations. Because, as the book states, table 4-2 is far from complete, I am providing an up-to-date version of that table below.

If you have found a working toolchain combination which isn't listed here, feel free to post this version combination and any related instructions on the mailing list. This table will be updated following the suggestions and feedback on the list. Please keep in mind the following when posting new version combinations:

  • Don't send any version combinations to me (Karim) personally. This is counter-productive and will very likely result in your submission to be ignored. All version combination submissions should be made to the mailing list.
  • Clearly mark such submissions by prepending your mail's title with the [GNU-VERS] tag.
  • Do not post any but the most trivial patches to the list. No patches will be hosted on embeddedTUX.org. Find an alternative repository and provide a pointer to the mailing list.
  • Be as explicit as possible regarding your setup and clearly outline any steps you have followed which differ from those explained in the book. This will help others in making the best from the information you provide.

Known functional package version combinations

HostTargetKernelbinutilsgccglibcPatches
i386PPC2.10.12.95.32.2.14
i386PPC2.11.22.95.32.2.14
PPCi3862.10.12.95.32.2.3None
PPCi3862.13.2.13.2.12.3.1None
i386ARM2.4.1-rmk12.10.12.95.32.1.31
i386ARM-eb2.4.172.12.12.95.32.2.26
PPCARM2.10.12.95.32.2.31
i386MIPS2.8.1egcs-1.1.22.0.62
i386MIPS-el2.143.2.12.3.15
i386SuperH2.11.23.0.12.2.43
Sparc(Solaris)PPC2.4.02.10.12.95.22.1.3None

[1] See the "The -Dinihibit_libc hack" subsection in the "Building the Toolchain" section of "The GNU toolchain" chapter in AlephOne's "Guide to ARMLinux for Developers" for further information on the modifications to be made to gcc to make it build successfully.
[2] See Ralf Bächle's MIPS HOWTO for further information on the patches to apply.
[3] See Bill Gatliff's Running Linux on the Sega Dreamcast for further information on the patches to apply.
[4] See Karim Yaghmour's explanation about building a proper toolchain for MPC860 PPC CPUs here.
[5] You must apply these two patches from Dan Kegel's crosstool script:
  • glibc-2.2.5-mips-clone-local-label.patch
  • glibc-2.3.2-mips.patch

[6] See Dave Hylands' patches for building the cross-toolchain for a big-endian armv4b here.

Resources

While attempting to find new working toolchain version combinations you may find the following resources useful (in addition to those already listed in the book):

  • Dan Kegel's crosstool patches: While reliance on an automated cross-toolchain build scripts can come back to haunt you, Dan's work on a best-of-breed script has brought with it a sizeable advantage, a substantial collection of patches for GNU toolchain components. Ideally no such patches should be required. In reality, however, the GNU toolchain components often times require some slight changes in order to build properly and generate functional binaries.


Home | GNU Toolchain | Worksheet | Mailing List | Archive | Submit | About

© 2003 Karim Yaghmour