Add support code for the canadian-cross case. canadian
author"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Fri Jun 26 19:09:22 2009 +0200 (2009-06-26)
branchcanadian
changeset 14254131f2e955aa
parent 1424 8e87e701cf4c
child 1426 cb3b1f427968
Add support code for the canadian-cross case.

Add implementation for a candadian build option already
present in crosstool in order to build a cross-compiler
where build != host != target

Signed-off-by: Bart van der Meulen <bartvdrmeulen@gmail.com>
config/toolchain.in
scripts/build/cc/gcc.sh
scripts/crosstool-NG.sh.in
     1.1 --- a/config/toolchain.in	Fri Jun 26 19:09:22 2009 +0200
     1.2 +++ b/config/toolchain.in	Fri Jun 26 19:09:22 2009 +0200
     1.3 @@ -123,7 +123,7 @@
     1.4  
     1.5  config CANADIAN
     1.6      bool
     1.7 -    prompt "Canadian     (NO CODE!) (EXPERIMENTAL)"
     1.8 +    prompt "Canadian     (EXPERIMENTAL)"
     1.9      depends on EXPERIMENTAL
    1.10      help
    1.11        Build a canadian-toolchain.
     2.1 --- a/scripts/build/cc/gcc.sh	Fri Jun 26 19:09:22 2009 +0200
     2.2 +++ b/scripts/build/cc/gcc.sh	Fri Jun 26 19:09:22 2009 +0200
     2.3 @@ -41,6 +41,10 @@
     2.4  #------------------------------------------------------------------------------
     2.5  # Core gcc pass 1
     2.6  do_cc_core_pass_1() {
     2.7 +    # If we're building a canadian compiler no use to build the CC
     2.8 +    # core compiler, we're not using it
     2.9 +    [ -n "${CT_CANADIAN}" ] && return 0
    2.10 +
    2.11      # If we're building for bare metal, build the static core gcc,
    2.12      # with libgcc.
    2.13      # In case we're not bare metal, and we're NPTL, build the static core gcc.
    2.14 @@ -54,6 +58,10 @@
    2.15  
    2.16  # Core gcc pass 2
    2.17  do_cc_core_pass_2() {
    2.18 +    # If we're building a canadian compiler no use to build the CC
    2.19 +    # core compiler, we're not using it
    2.20 +    [ -n "${CT_CANADIAN}" ] && return 0
    2.21 +
    2.22      # In case we're building for bare metal, do nothing, we already have
    2.23      # our compiler.
    2.24      # In case we're NPTL, build the shared core gcc and the target libgcc.
     3.1 --- a/scripts/crosstool-NG.sh.in	Fri Jun 26 19:09:22 2009 +0200
     3.2 +++ b/scripts/crosstool-NG.sh.in	Fri Jun 26 19:09:22 2009 +0200
     3.3 @@ -223,8 +223,10 @@
     3.4  CT_DoExecLog ALL mkdir -p "${CT_CONFIG_DIR}"
     3.5  CT_DoExecLog ALL mkdir -p "${CT_INSTALL_DIR}"
     3.6  CT_DoExecLog ALL mkdir -p "${CT_PREFIX_DIR}"
     3.7 -CT_DoExecLog ALL mkdir -p "${CT_CC_CORE_STATIC_PREFIX_DIR}"
     3.8 -CT_DoExecLog ALL mkdir -p "${CT_CC_CORE_SHARED_PREFIX_DIR}"
     3.9 +if [ -z "${CT_CANADIAN}" ]; then
    3.10 +    CT_DoExecLog ALL mkdir -p "${CT_CC_CORE_STATIC_PREFIX_DIR}"
    3.11 +    CT_DoExecLog ALL mkdir -p "${CT_CC_CORE_SHARED_PREFIX_DIR}"
    3.12 +fi
    3.13  
    3.14  # Only create the state dir if asked for a restartable build
    3.15  [ -n "${CT_DEBUG_CT_SAVE_STEPS}" ] && CT_DoExecLog ALL mkdir -p "${CT_STATE_DIR}"
    3.16 @@ -319,10 +321,17 @@
    3.17  
    3.18      # Prepare mangling patterns to later modify BUILD and HOST (see below)
    3.19      case "${CT_TOOLCHAIN_TYPE}" in
    3.20 +        canadian)
    3.21 +            CT_REAL_TARGET="${CT_TARGET}"
    3.22 +            build_mangle="build_"
    3.23 +            host_mangle="host_"
    3.24 +            install_build_tools_for="BUILD HOST TARGET"
    3.25 +            ;;
    3.26          cross)
    3.27              CT_HOST="${CT_BUILD}"
    3.28              build_mangle="build_"
    3.29              host_mangle="build_"
    3.30 +            install_build_tools_for="BUILD HOST"
    3.31              ;;
    3.32          *)  CT_Abort "No code for '${CT_TOOLCHAIN_TYPE}' toolchain type!"
    3.33              ;;
    3.34 @@ -350,7 +359,7 @@
    3.35      # cross-tools for those mangled tuples.
    3.36      CT_DoLog DEBUG "Making build system tools available"
    3.37      CT_DoExecLog ALL mkdir -p "${CT_PREFIX_DIR}/buildtools"
    3.38 -    for m in BUILD HOST; do
    3.39 +    for m in ${install_build_tools_for}; do
    3.40          r="CT_REAL_${m}"
    3.41          v="CT_${m}"
    3.42          p="CT_${m}_PREFIX"
    3.43 @@ -418,6 +427,7 @@
    3.44      # so don't add those PATHs in this case...
    3.45      case "${CT_TOOLCHAIN_TYPE}" in
    3.46          cross)  export PATH="${CT_PREFIX_DIR}/buildtools:${CT_PREFIX_DIR}/bin:${CT_CC_CORE_SHARED_PREFIX_DIR}/bin:${CT_CC_CORE_STATIC_PREFIX_DIR}/bin:${PATH}";;
    3.47 +        canadian) export PATH="${CT_PREFIX_DIR}/buildtools:${PATH}";;
    3.48          *)  ;;
    3.49      esac
    3.50