scripts/build/cc/gcc.sh
author Remy Bohmer <linux@bohmer.net>
Thu May 27 23:18:19 2010 +0200 (2010-05-27)
changeset 2060 51e4597b07fc
parent 2043 efb1058baa31
child 2070 bcd33fce4db9
permissions -rw-r--r--
scripts: add option to strip all toolchain executables

To reduce filesizes of the toolchain and even improve build times
of projects to be build with this toolchain it is usefull to strip
the delivered toolchain executables. Since it is not likely that we
will debug the toolchain executables itself we do not need the
debug information inside the executables itself.

Signed-off-by: Remy Bohmer <linux@bohmer.net>
     1 # This file adds the function to build the gcc C compiler
     2 # Copyright 2007 Yann E. MORIN
     3 # Licensed under the GPL v2. See COPYING in the root of this package
     4 
     5 # Download gcc
     6 do_cc_get() {
     7     # Ah! gcc folks are kind of 'different': they store the tarballs in
     8     # subdirectories of the same name! That's because gcc is such /crap/ that
     9     # it is such /big/ that it needs being splitted for distribution! Sad. :-(
    10     # Arrgghh! Some of those versions does not follow this convention:
    11     # gcc-3.3.3 lives in releases/gcc-3.3.3, while gcc-2.95.* isn't in a
    12     # subdirectory! You bastard!
    13     CT_GetFile "gcc-${CT_CC_VERSION}"                                                       \
    14                {ftp,http}://ftp.gnu.org/gnu/gcc{,{,/releases}/gcc-${CT_CC_VERSION}}         \
    15                ftp://ftp.irisa.fr/pub/mirrors/gcc.gnu.org/gcc/releases/gcc-${CT_CC_VERSION} \
    16                ftp://ftp.uvsq.fr/pub/gcc/snapshots/${CT_CC_VERSION}
    17 
    18     # Starting with GCC 4.3, ecj is used for Java, and will only be
    19     # built if the configure script finds ecj.jar at the top of the
    20     # GCC source tree, which will not be there unless we get it and
    21     # put it there ourselves
    22     if [ "${CT_CC_LANG_JAVA_USE_ECJ}" = "y" ]; then
    23         CT_GetFile ecj-latest .jar ftp://gcc.gnu.org/pub/java   \
    24                                    ftp://sourceware.org/pub/java
    25     fi
    26 }
    27 
    28 # Extract gcc
    29 do_cc_extract() {
    30     CT_Extract "gcc-${CT_CC_VERSION}"
    31     CT_Patch "gcc" "${CT_CC_VERSION}"
    32 
    33     # Copy ecj-latest.jar to ecj.jar at the top of the GCC source tree
    34     if [ "${CT_CC_LANG_JAVA_USE_ECJ}" = "y"                     \
    35          -a ! -f "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/ecj.jar"   \
    36        ]; then
    37         CT_DoExecLog ALL cp -v "${CT_TARBALLS_DIR}/ecj-latest.jar" "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/ecj.jar"
    38     fi
    39 }
    40 
    41 #------------------------------------------------------------------------------
    42 # Core gcc pass 1
    43 do_cc_core_pass_1() {
    44     # If we're building for bare metal, build the static core gcc,
    45     # with libgcc.
    46     # In case we're not bare metal and building a canadian compiler, do nothing
    47     # In case we're not bare metal, and we're NPTL, build the static core gcc.
    48     # In any other case, do nothing.
    49     case "${CT_BARE_METAL},${CT_CANADIAN},${CT_THREADS}" in
    50         y,*,*)  do_cc_core mode=static;;
    51         ,y,*)   ;;
    52         ,,nptl) do_cc_core mode=static;;
    53         *)      ;;
    54     esac
    55 }
    56 
    57 # Core gcc pass 2
    58 do_cc_core_pass_2() {
    59     # In case we're building for bare metal, do nothing, we already have
    60     # our compiler.
    61     # In case we're not bare metal and building a canadian compiler, do nothing
    62     # In case we're NPTL, build the shared core gcc and the target libgcc.
    63     # In any other case, build the static core gcc and, if using gcc-4.3+,
    64     # also build the target libgcc.
    65     case "${CT_BARE_METAL},${CT_CANADIAN},${CT_THREADS}" in
    66         y,*,*)  do_cc_core mode=baremetal build_libgcc=yes build_libstdcxx=yes;;
    67         ,y,*)   ;;
    68         ,,nptl)
    69             do_cc_core mode=shared build_libgcc=yes
    70             ;;
    71         ,,win32) do_cc_core mode=static build_libgcc=yes
    72             ;;
    73         *)  if [ "${CT_CC_GCC_4_3_or_later}" = "y" ]; then
    74                 do_cc_core mode=static build_libgcc=yes
    75             else
    76                 do_cc_core mode=static
    77             fi
    78             ;;
    79     esac
    80 }
    81 
    82 #------------------------------------------------------------------------------
    83 # Build core gcc
    84 # This function is used to build both the static and the shared core C conpiler,
    85 # with or without the target libgcc. We need to know wether:
    86 #  - we're building static, shared or bare metal: mode=[static|shared|baremetal]
    87 #  - we need to build libgcc or not             : build_libgcc=[yes|no]     (default: no)
    88 #  - we need to build libstdc++ or not          : build_libstdcxx=[yes|no]  (default: no)
    89 # Usage: do_cc_core_static mode=[static|shared|baremetal] build_libgcc=[yes|no]
    90 do_cc_core() {
    91     local mode
    92     local build_libgcc=no
    93     local build_libstdcxx=no
    94     local core_prefix_dir
    95     local lang_opt
    96     local tmp
    97     local -a extra_config
    98     local core_LDFLAGS
    99     local -a core_targets
   100 
   101     while [ $# -ne 0 ]; do
   102         eval "${1}"
   103         shift
   104     done
   105 
   106     lang_opt=c
   107     case "${mode}" in
   108         static)
   109             core_prefix_dir="${CT_CC_CORE_STATIC_PREFIX_DIR}"
   110             extra_config+=("--with-newlib")
   111             extra_config+=("--enable-threads=no")
   112             extra_config+=("--disable-shared")
   113             copy_headers=y  # For baremetal, as there's no headers to copy,
   114                             # we copy an empty directory. So, who cares?
   115             ;;
   116         shared)
   117             core_prefix_dir="${CT_CC_CORE_SHARED_PREFIX_DIR}"
   118             extra_config+=("--enable-shared")
   119             copy_headers=y
   120             ;;
   121         baremetal)
   122             core_prefix_dir="${CT_PREFIX_DIR}"
   123             extra_config+=("--with-newlib")
   124             extra_config+=("--enable-threads=no")
   125             extra_config+=("--disable-shared")
   126             [ "${CT_CC_LANG_CXX}" = "y" ] && lang_opt="${lang_opt},c++"
   127             copy_headers=n
   128             ;;
   129         *)
   130             CT_Abort "Internal Error: 'mode' must be one of: 'static', 'shared' or 'baremetal', not '${mode:-(empty)}'"
   131             ;;
   132     esac
   133 
   134     CT_DoStep INFO "Installing ${mode} core C compiler"
   135     mkdir -p "${CT_BUILD_DIR}/build-cc-core-${mode}"
   136     cd "${CT_BUILD_DIR}/build-cc-core-${mode}"
   137 
   138     # Bare metal delivers the core compiler as final compiler, so add version info and bugurl
   139     [ -n "${CT_CC_BUGURL}" ]     && extra_config+=("--with-bugurl=${CT_CC_BUGURL}")
   140     [ -n "${CT_CC_PKGVERSION}" ] && extra_config+=("--with-pkgversion=${CT_CC_PKGVERSION}")
   141 
   142     if [ "${copy_headers}" = "y" ]; then
   143         CT_DoLog DEBUG "Copying headers to install area of bootstrap gcc, so it can build libgcc2"
   144         CT_DoExecLog ALL cp -a "${CT_HEADERS_DIR}" "${core_prefix_dir}/${CT_TARGET}/include"
   145     fi
   146 
   147     CT_DoLog EXTRA "Configuring ${mode} core C compiler"
   148 
   149     for tmp in ARCH ABI CPU TUNE FPU FLOAT; do
   150         eval tmp="\${CT_ARCH_WITH_${tmp}}"
   151         if [ -n "${tmp}" ]; then
   152             extra_config+=("${tmp}")
   153         fi
   154     done
   155     if [ "${CT_CC_CXA_ATEXIT}" = "y" ]; then
   156         extra_config+=("--enable-__cxa_atexit")
   157     else
   158         extra_config+=("--disable-__cxa_atexit")
   159     fi
   160 
   161     # When companion libraries are build static (eg !shared),
   162     # the libstdc++ is not pulled automatically, although it
   163     # is needed. Shoe-horn it in our LDFLAGS
   164     if [ "${CT_COMPLIBS_SHARED}" != "y" ]; then
   165         core_LDFLAGS='-lstdc++'
   166     fi
   167     if [ "${CT_CC_GCC_USE_GMP_MPFR}" = "y" ]; then
   168         extra_config+=("--with-gmp=${CT_COMPLIBS_DIR}")
   169         extra_config+=("--with-mpfr=${CT_COMPLIBS_DIR}")
   170     fi
   171     if [ "${CT_CC_GCC_USE_PPL_CLOOG}" = "y" ]; then
   172         extra_config+=("--with-ppl=${CT_COMPLIBS_DIR}")
   173         extra_config+=("--with-cloog=${CT_COMPLIBS_DIR}")
   174     fi
   175     if [ "${CT_CC_GCC_USE_MPC_LIBELF}" = "y" ]; then
   176         extra_config+=("--with-mpc=${CT_COMPLIBS_DIR}")
   177         extra_config+=("--with-libelf=${CT_COMPLIBS_DIR}")
   178     fi
   179 
   180     if [ "${CT_CC_GCC_ENABLE_TARGET_OPTSPACE}" = "y" ]; then
   181         extra_config+=("--enable-target-optspace")
   182     fi
   183 
   184     CT_DoLog DEBUG "Extra config passed: '${extra_config[*]}'"
   185 
   186     # Use --with-local-prefix so older gccs don't look in /usr/local (http://gcc.gnu.org/PR10532)
   187     CC_FOR_BUILD="${CT_BUILD}-gcc"                  \
   188     CFLAGS="${CT_CFLAGS_FOR_HOST}"                  \
   189     LDFLAGS="${core_LDFLAGS}"                       \
   190     CT_DoExecLog ALL                                \
   191     "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/configure"  \
   192         --build=${CT_BUILD}                         \
   193         --host=${CT_HOST}                           \
   194         --target=${CT_TARGET}                       \
   195         --prefix="${core_prefix_dir}"               \
   196         --with-local-prefix="${CT_SYSROOT_DIR}"     \
   197         --disable-multilib                          \
   198         --disable-libmudflap                        \
   199         ${CC_CORE_SYSROOT_ARG}                      \
   200         "${extra_config[@]}"                        \
   201         --disable-nls                               \
   202         --enable-symvers=gnu                        \
   203         --enable-languages="${lang_opt}"            \
   204         ${CT_CC_CORE_EXTRA_CONFIG}
   205 
   206     if [ "${build_libgcc}" = "yes" ]; then
   207         # HACK: we need to override SHLIB_LC from gcc/config/t-slibgcc-elf-ver or
   208         # gcc/config/t-libunwind so -lc is removed from the link for
   209         # libgcc_s.so, as we do not have a target -lc yet.
   210         # This is not as ugly as it appears to be ;-) All symbols get resolved
   211         # during the glibc build, and we provide a proper libgcc_s.so for the
   212         # cross toolchain during the final gcc build.
   213         #
   214         # As we cannot modify the source tree, nor override SHLIB_LC itself
   215         # during configure or make, we have to edit the resultant
   216         # gcc/libgcc.mk itself to remove -lc from the link.
   217         # This causes us to have to jump through some hoops...
   218         #
   219         # To produce libgcc.mk to edit we firstly require libiberty.a,
   220         # so we configure then build it.
   221         # Next we have to configure gcc, create libgcc.mk then edit it...
   222         # So much easier if we just edit the source tree, but hey...
   223         if [ ! -f "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/gcc/BASE-VER" ]; then
   224             CT_DoExecLog ALL make configure-libiberty
   225             CT_DoExecLog ALL make ${PARALLELMFLAGS} -C libiberty libiberty.a
   226             CT_DoExecLog ALL make configure-gcc configure-libcpp
   227             CT_DoExecLog ALL make ${PARALLELMFLAGS} all-libcpp
   228         else
   229             CT_DoExecLog ALL make configure-gcc configure-libcpp configure-build-libiberty
   230             CT_DoExecLog ALL make ${PARALLELMFLAGS} all-libcpp all-build-libiberty
   231         fi
   232         # HACK: gcc-4.2 uses libdecnumber to build libgcc.mk, so build it here.
   233         if [ -d "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/libdecnumber" ]; then
   234             CT_DoExecLog ALL make configure-libdecnumber
   235             CT_DoExecLog ALL make ${PARALLELMFLAGS} -C libdecnumber libdecnumber.a
   236         fi
   237 
   238         # Starting with GCC 4.3, libgcc.mk is no longer built,
   239         # and libgcc.mvars is used instead.
   240 
   241         if [ "${CT_CC_GCC_4_3_or_later}" = "y" ]; then
   242             libgcc_rule="libgcc.mvars"
   243             core_targets=( gcc target-libgcc )
   244         else
   245             libgcc_rule="libgcc.mk"
   246             core_targets=( gcc )
   247         fi
   248 
   249         # On bare metal and canadian build the host-compiler is used when
   250         # actually the build-system compiler is required. Choose the correct
   251         # compilers for canadian build and use the defaults on other
   252         # configurations.
   253         if [ "${CT_BARE_METAL},${CT_CANADIAN}" = "y,y" ]; then
   254             repair_cc="CC_FOR_BUILD=${CT_BUILD}-gcc \
   255                        GCC_FOR_TARGET=${CT_TARGET}-gcc"
   256         else
   257             repair_cc=""
   258         fi
   259 
   260         CT_DoExecLog ALL make ${PARALLELMFLAGS} -C gcc ${libgcc_rule} \
   261                               ${repair_cc}
   262         sed -r -i -e 's@-lc@@g' gcc/${libgcc_rule}
   263     else # build_libgcc
   264         core_targets=( gcc )
   265     fi   # ! build libgcc
   266     if [    "${build_libstdcxx}" = "yes"    \
   267          -a "${CT_CC_LANG_CXX}"  = "y"      \
   268        ]; then
   269         core_targets+=( target-libstdc++-v3 )
   270     fi
   271 
   272     CT_DoLog EXTRA "Building ${mode} core C compiler"
   273     CT_DoExecLog ALL make ${PARALLELMFLAGS} "${core_targets[@]/#/all-}"
   274 
   275     CT_DoLog EXTRA "Installing ${mode} core C compiler"
   276     CT_DoExecLog ALL make "${core_targets[@]/#/install-}"
   277 
   278     # Create a symlink ${CT_TARGET}-cc to ${CT_TARGET}-gcc to always be able
   279     # to call the C compiler with the same, somewhat canonical name.
   280     # check whether compiler has an extension
   281     file="$( ls -1 "${core_prefix_dir}/bin/${CT_TARGET}-gcc."* 2>/dev/null || true )"
   282     [ -z "${file}" ] || ext=".${file##*.}"
   283     CT_DoExecLog ALL ln -sv "${CT_TARGET}-gcc${ext}" "${core_prefix_dir}/bin/${CT_TARGET}-cc${ext}"
   284 
   285     CT_EndStep
   286 }
   287 
   288 #------------------------------------------------------------------------------
   289 # Build final gcc
   290 do_cc() {
   291     local -a extra_config
   292     local tmp
   293     local final_LDFLAGS
   294 
   295     # If building for bare metal, nothing to be done here, the static core conpiler is enough!
   296     [ "${CT_BARE_METAL}" = "y" ] && return 0
   297 
   298     CT_DoStep INFO "Installing final compiler"
   299 
   300     mkdir -p "${CT_BUILD_DIR}/build-cc"
   301     cd "${CT_BUILD_DIR}/build-cc"
   302 
   303     CT_DoLog EXTRA "Configuring final compiler"
   304 
   305     # Enable selected languages
   306     lang_opt="c"
   307     [ "${CT_CC_LANG_CXX}" = "y"      ] && lang_opt="${lang_opt},c++"
   308     [ "${CT_CC_LANG_FORTRAN}" = "y"  ] && lang_opt="${lang_opt},fortran"
   309     [ "${CT_CC_LANG_ADA}" = "y"      ] && lang_opt="${lang_opt},ada"
   310     [ "${CT_CC_LANG_JAVA}" = "y"     ] && lang_opt="${lang_opt},java"
   311     [ "${CT_CC_LANG_OBJC}" = "y"     ] && lang_opt="${lang_opt},objc"
   312     [ "${CT_CC_LANG_OBJCXX}" = "y"   ] && lang_opt="${lang_opt},obj-c++"
   313     CT_Test "Building ADA language is not yet supported. Will try..." "${CT_CC_LANG_ADA}" = "y"
   314     CT_Test "Building Objective-C language is not yet supported. Will try..." "${CT_CC_LANG_OBJC}" = "y"
   315     CT_Test "Building Objective-C++ language is not yet supported. Will try..." "${CT_CC_LANG_OBJCXX}" = "y"
   316     CT_Test "Building ${CT_CC_LANG_OTHERS//,/ } language(s) is not yet supported. Will try..." -n "${CT_CC_LANG_OTHERS}"
   317     lang_opt=$(echo "${lang_opt},${CT_CC_LANG_OTHERS}" |sed -r -e 's/,+/,/g; s/,*$//;')
   318 
   319     extra_config+=("--enable-languages=${lang_opt}")
   320     extra_config+=("--disable-multilib")
   321     for tmp in ARCH ABI CPU TUNE FPU FLOAT; do
   322         eval tmp="\${CT_ARCH_WITH_${tmp}}"
   323         if [ -n "${tmp}" ]; then
   324             extra_config+=("${tmp}")
   325         fi
   326     done
   327 
   328     [ "${CT_SHARED_LIBS}" = "y" ]                   || extra_config+=("--disable-shared")
   329     [ -n "${CT_CC_PKGVERSION}" ]                    && extra_config+=("--with-pkgversion=${CT_CC_PKGVERSION}")
   330     [ -n "${CT_CC_BUGURL}" ]                        && extra_config+=("--with-bugurl=${CT_CC_BUGURL}")
   331     case "${CT_CC_GCC_SJLJ_EXCEPTIONS}" in
   332         y)  extra_config+=("--enable-sjlj-exceptions");;
   333         m)  ;;
   334         "") extra_config+=("--disable-sjlj-exceptions");;
   335     esac
   336     if [ "${CT_CC_CXA_ATEXIT}" = "y" ]; then
   337         extra_config+=("--enable-__cxa_atexit")
   338     else
   339         extra_config+=("--disable-__cxa_atexit")
   340     fi
   341     if [ -n "${CC_ENABLE_CXX_FLAGS}" ]; then
   342         extra_config+=("--enable-cxx-flags=${CC_ENABLE_CXX_FLAGS}")
   343     fi
   344     if [ "${CT_CC_GCC_LIBMUDFLAP}" = "y" ]; then
   345         extra_config+=(--enable-libmudflap)
   346     else
   347         extra_config+=(--disable-libmudflap)
   348     fi
   349 
   350     if [ "${CT_CC_STATIC_LIBSTDCXX}" = "y" ]; then
   351         # this is from CodeSourcery arm-2010q1-202-arm-none-linux-gnueabi.src.tar.bz2
   352         # build script
   353         # FIXME: if the host gcc is gcc-4.5 then presumably we could use -static-libstdc++,
   354         # see http://gcc.gnu.org/ml/gcc-patches/2009-06/msg01635.html
   355         extra_config+=("--with-host-libstdcxx=-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm")
   356     elif [ "${CT_COMPLIBS_SHARED}" != "y" ]; then
   357         # When companion libraries are build static (eg !shared),
   358         # the libstdc++ is not pulled automatically, although it
   359         # is needed. Shoe-horn it in our LDFLAGS
   360         final_LDFLAGS='-lstdc++'
   361     fi
   362     if [ "${CT_CC_GCC_USE_GMP_MPFR}" = "y" ]; then
   363         extra_config+=("--with-gmp=${CT_COMPLIBS_DIR}")
   364         extra_config+=("--with-mpfr=${CT_COMPLIBS_DIR}")
   365     fi
   366     if [ "${CT_CC_GCC_USE_PPL_CLOOG}" = "y" ]; then
   367         extra_config+=("--with-ppl=${CT_COMPLIBS_DIR}")
   368         extra_config+=("--with-cloog=${CT_COMPLIBS_DIR}")
   369     fi
   370     if [ "${CT_CC_GCC_USE_MPC_LIBELF}" = "y" ]; then
   371         extra_config+=("--with-mpc=${CT_COMPLIBS_DIR}")
   372         extra_config+=("--with-libelf=${CT_COMPLIBS_DIR}")
   373     fi
   374 
   375     if [ "${CT_THREADS}" = "none" ]; then
   376         extra_config+=("--disable-threads")
   377         if [ "${CT_CC_GCC_4_2_or_later}" = y ]; then
   378             extra_config+=("--disable-libgomp")
   379         fi
   380     else
   381         if [ "${CT_THREADS}" = "win32" ]; then
   382             extra_config+=("--enable-threads=win32")
   383             extra_config+=("--disable-win32-registry")
   384         else
   385             extra_config+=("--enable-threads=posix")
   386         fi
   387     fi
   388 
   389     if [ "${CT_CC_GCC_ENABLE_TARGET_OPTSPACE}" = "y" ]; then
   390         extra_config+=("--enable-target-optspace")
   391     fi
   392     if [ "${CT_CC_GCC_DISABLE_PCH}" = "y" ]; then
   393         extra_config+=("--disable-libstdcxx-pch")
   394     fi
   395 
   396     CT_DoLog DEBUG "Extra config passed: '${extra_config[*]}'"
   397 
   398     # --enable-symvers=gnu really only needed for sh4 to work around a
   399     # detection problem only matters for gcc-3.2.x and later, I think.
   400     # --disable-nls to work around crash bug on ppc405, but also because
   401     # embedded systems don't really need message catalogs...
   402     CC_FOR_BUILD="${CT_BUILD}-gcc"                  \
   403     CFLAGS="${CT_CFLAGS_FOR_HOST}"                  \
   404     LDFLAGS="${final_LDFLAGS}"                      \
   405     CFLAGS_FOR_TARGET="${CT_TARGET_CFLAGS}"         \
   406     CXXFLAGS_FOR_TARGET="${CT_TARGET_CFLAGS}"       \
   407     LDFLAGS_FOR_TARGET="${CT_TARGET_LDFLAGS}"       \
   408     CT_DoExecLog ALL                                \
   409     "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/configure"  \
   410         --build=${CT_BUILD}                         \
   411         --host=${CT_HOST}                           \
   412         --target=${CT_TARGET}                       \
   413         --prefix="${CT_PREFIX_DIR}"                 \
   414         ${CC_SYSROOT_ARG}                           \
   415         "${extra_config[@]}"                        \
   416         --with-local-prefix="${CT_SYSROOT_DIR}"     \
   417         --disable-nls                               \
   418         --enable-symvers=gnu                        \
   419         --enable-c99                                \
   420         --enable-long-long                          \
   421         ${CT_CC_EXTRA_CONFIG}
   422 
   423     if [ "${CT_CANADIAN}" = "y" ]; then
   424         CT_DoLog EXTRA "Building libiberty"
   425         CT_DoExecLog ALL make ${PARALLELMFLAGS} all-build-libiberty
   426     fi
   427 
   428     CT_DoLog EXTRA "Building final compiler"
   429     CT_DoExecLog ALL make ${PARALLELMFLAGS} all
   430 
   431     CT_DoLog EXTRA "Installing final compiler"
   432     CT_DoExecLog ALL make install
   433 
   434     # Create a symlink ${CT_TARGET}-cc to ${CT_TARGET}-gcc to always be able
   435     # to call the C compiler with the same, somewhat canonical name.
   436     # check whether compiler has an extension
   437     file="$( ls -1 "${CT_PREFIX_DIR}/bin/${CT_TARGET}-gcc."* 2>/dev/null || true )"
   438     [ -z "${file}" ] || ext=".${file##*.}"
   439     CT_DoExecLog ALL ln -sv "${CT_TARGET}-gcc${ext}" "${CT_PREFIX_DIR}/bin/${CT_TARGET}-cc${ext}"
   440 
   441     CT_EndStep
   442 }