for the binutils the required commands are: configure \ --disable-nls \ --prefix=/usr \ --mandir=/usr/share/man \ --infodir=/usr/share/info \ --target=${CROSS_ARCH}-linux make and for the gcc (after the binutils have been installed on the host): configure \ --enable-languages=c \ --disable-nls \ --disable-threads \ --disable-shared \ --disable-checking \ --prefix=/usr \ --mandir=/usr/share/man \ --infodir=/usr/share/info \ --target=${CROSS_ARCH}-linux make TARGET_LIBGCC2_CFLAGS='-Dinhibit_libc \ -D__gthr_posix_h' where ${CROSS_ARCH} is the target architecture you want to compile the toochain for, in my case, this where one of the following: alpha, arm, cris, hppa, hppa64, i386, ia64, m68k, mips, mips64, ppc, ppc64, s390, sh, sh4, sparc, sparc64, v850, x86_64 I decided to use binutils 2.14.90.0.8, and gcc 3.3.2, but soon discovered that gcc-3.3.2 will not be able to build a cross compiler for some archs like the alpha, ia64, powerpc and even i386 ;) without some modifications but with some help, I got all headers fixed.