How to compile a cross compiler using newlib Versions used was gcc-9.2 binutils-2.33.1 newlib-3.2.0 gmp-6.1.2 mpc-1.1.0 mpfr-4.0.2 isl-0.22.1 Download, unpack and create symlinks binutils, gcc, gmp, mpfr, and mpc: http://gnuftp.uib.no isl (OPTIONAL dependency for gcc): http://isl.gforge.inria.fr/ newlib: ftp://sourceware.org/pub/newlib/ Build the cross compiler First, figure out which target you need and that it is available for newlib/gcc and do something like this (adjust your configure options for your needs). export TARGET=m68k-elf export TARGET=i386-elf OBJDIR=/tmp/build PREFIX=/tmp/cross-${TARGET} export PATH=${PREFIX}/bin:${PATH} mkdir -p ${OBJDIR}/binutils.${TARGET} && cd ${OBJDIR}/binutils.${TARGET} && \ ${HOME}/binutils/configure --prefix=${PREFIX} --target=${TARGET} && \ sed -i 's/\-g /-pipe /' Makefile && \ make -j$(nproc) && make install-strip -j4 mkdir -p ${OBJDIR}/gcc.${TARGET} && cd ${OBJDIR}/gcc.${TARGET} && \ ${HOME}/gcc/configure --prefix=${PREFIX} --libexecdir=${PREFIX}/lib --target=${TARGET} --enable-languages=c,c++ \ --disable-libstdcxx-pch --with-newlib && \ sed -i 's/\-g /-pipe /' Makefile && \ make all-gcc -j$(nproc) && make install-strip-gcc -j4 mkdir -p ${OBJDIR}/newlib.${TARGET} && cd ${OBJDIR}/newlib.${TARGET} && \ ${HOME}/newlib/configure --prefix=${PREFIX} --target=${TARGET} && \ sed -i 's/\-g /-pipe /' Makefile && \ make -j$(nproc) && make install cd ${OBJDIR}/gcc.${TARGET} && \ make -j$(nproc) && make install-strip -j4 Optional: Clean up (probably) unneeded files and directories rm -rf ${PREFIX}/{include,lib/libcc*,share} find ${PREFIX} -name '*.la' -delete