Problem with Canadian cross (was: Re: Error building libgcc: missing setting for CPP)

Ian Lance Taylor iant@google.com
Tue Jan 24 08:47:00 GMT 2012


Paul Smith <psmith@gnu.org> writes:

> So I first created a cross-compiler for OLDSYS, configuring binutils
> (2.22) and gcc (4.6.2) with --target=OLDSYS --with-sysroot=OLDSYSROOT
> (and building and installing into a separate directory of course).
>
> Then I started trying to create the Canadian cross, configuring binutils
> and GCC with --host=OLDSYS --target=NEWSYS --with-sysroot=NEWSYSROOT.
>
> When I do this, I can see it finding the OLDSYS compiler I built
> previously, and binutils configures and builds fine and if I check, the
> resulting binary is indeed a 32bit version and runs fine on OLDSYS.
>
> And, gcc appears to be working fine, for a while.  Then I get this
> error:
>
>   OLDSYS-gcc    -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -DNATIVE_CROSS \
>     -W [...] -DHAVE_CONFIG_H -o cpp gcc.o o [...] \
>     ../libcpp/libcpp.a ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a
>   NEWSYS-gcc -dumpspecs > tmp-specs
>   /bin/sh: NEWSYS-gcc: command not found

In order to build a Canadian Cross build-x-host-x-target, you need to
first build the build-x-host cross-compiler and the build-x-target
cross-compiler.  In this case I think you have failed to build the
build-x-target cross-compiler, which in your terminology would be
--target=NEWSYS.

Ian



More information about the Gcc-help mailing list