scripts/build/companion_tools.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Jan 03 22:57:25 2012 +0100 (2012-01-03)
changeset 2936 2dfea349d307
permissions -rw-r--r--
cc/gcc: build core compilers for canadian

Currently, we rely on an existing external cross-compiler targetting
the target, to build the C library.

This can pause quite a few problems if that compiler is different from
the one we are building, because it could introduce some ABI issues.

This patch removes this dependency, by building the core compilers
as we do for standard cross, and also by building the binutils and
gcc, for running on the build machine.

This means we no longer need to offer the cross-sompiler selection in
the menuconfig.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
richard@1727
     1
# Wrapper to build the companion tools facilities
richard@1727
     2
richard@1727
     3
# List all companion tools facilities, and parse their scripts
richard@1727
     4
CT_COMP_TOOLS_FACILITY_LIST=
richard@1727
     5
for f in "${CT_LIB_DIR}/scripts/build/companion_tools/"*.sh; do
richard@1727
     6
    _f="$(basename "${f}" .sh)"
richard@1727
     7
    _f="${_f#???-}"
richard@1727
     8
    __f="CT_COMP_TOOLS_${_f}"
richard@1727
     9
    if [ "${!__f}" = "y" ]; then
richard@1727
    10
        CT_DoLog DEBUG "Enabling companion tools '${_f}'"
richard@1727
    11
        . "${f}"
richard@1727
    12
        CT_COMP_TOOLS_FACILITY_LIST="${CT_COMP_TOOLS_FACILITY_LIST} ${_f}"
richard@1727
    13
    else
richard@1727
    14
        CT_DoLog DEBUG "Disabling companion tools '${_f}'"
richard@1727
    15
    fi
richard@1727
    16
done
richard@1727
    17
richard@1727
    18
# Download the companion tools facilities
richard@1727
    19
do_companion_tools_get() {
richard@1727
    20
    for f in ${CT_COMP_TOOLS_FACILITY_LIST}; do
richard@1727
    21
        do_companion_tools_${f}_get
richard@1727
    22
    done
richard@1727
    23
}
richard@1727
    24
richard@1727
    25
# Extract and patch the companion tools facilities
richard@1727
    26
do_companion_tools_extract() {
richard@1727
    27
    for f in ${CT_COMP_TOOLS_FACILITY_LIST}; do
richard@1727
    28
        do_companion_tools_${f}_extract
richard@1727
    29
    done
richard@1727
    30
}
richard@1727
    31
richard@1727
    32
# Build the companion tools facilities
richard@1727
    33
do_companion_tools() {
richard@1727
    34
    for f in ${CT_COMP_TOOLS_FACILITY_LIST}; do
richard@1727
    35
        do_companion_tools_${f}_build
richard@1727
    36
    done
richard@1727
    37
}
richard@1727
    38