diff options
author | Remy Bohmer <linux@bohmer.net> | 2010-04-09 21:04:37 +0200 |
---|---|---|
committer | Remy Bohmer <linux@bohmer.net> | 2010-04-09 21:04:37 +0200 |
commit | 9c6c090d7b6f5a03213b8ac6bd33a5cb812ec4c4 (patch) | |
tree | 1cd8ec3358f24ff0e640a9f311c304659dd8adb3 | |
parent | 76ae48462aa57967eaee73159b3792e389101a90 (diff) | |
download | crosstool-ng-9c6c090d7b6f5a03213b8ac6bd33a5cb812ec4c4.tar.gz crosstool-ng-9c6c090d7b6f5a03213b8ac6bd33a5cb812ec4c4.tar.bz2 crosstool-ng-9c6c090d7b6f5a03213b8ac6bd33a5cb812ec4c4.zip |
cc/gcc: use proper host compiler for canadian bare-metal
While compiling a canadian toolchain for host=mingw32, build=linux,
target=m68k-elf the build fails because in this step of the gcc build
the Host compiler is used in this stage with the build-flags for the
build system. This results in an error where the header <sys/wait.h>
cannot be found.
This problem happens at least in the GCC-4.3.x and GCC-4.4.x range.
This is solved by passing the proper compilers on the Make cmd-line
Signed-off-by: Remy Bohmer <linux@bohmer.net>
-rw-r--r-- | scripts/build/cc/gcc.sh | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/scripts/build/cc/gcc.sh b/scripts/build/cc/gcc.sh index af940b83..fae185e8 100644 --- a/scripts/build/cc/gcc.sh +++ b/scripts/build/cc/gcc.sh @@ -238,7 +238,19 @@ do_cc_core() { install_rules="install-gcc" fi - CT_DoExecLog ALL make ${PARALLELMFLAGS} -C gcc ${libgcc_rule} + # On bare metal and canadian build the host-compiler is used when + # actually the build-system compiler is required. Choose the correct + # compilers for canadian build and use the defaults on other + # configurations. + if [ "${CT_BARE_METAL},${CT_CANADIAN}" = "y,y" ]; then + repair_cc="CC_FOR_BUILD=${CT_BUILD}-gcc \ + GCC_FOR_TARGET=${CT_TARGET}-gcc" + else + repair_cc="" + fi + + CT_DoExecLog ALL make ${PARALLELMFLAGS} -C gcc ${libgcc_rule} \ + ${repair_cc} sed -r -i -e 's@-lc@@g' gcc/${libgcc_rule} else # build_libgcc build_rules="all-gcc" |