# HG changeset patch # User "Yann E. MORIN" # Date 1222798758 0 # Node ID 187d34a9adf44313d7b2668540837d55be68b7e2 # Parent 4d770d1f65a0895e4564f5dace0604862e24b878 Better handle the second pass core gcc build, differentiating between gcc prior to 4.3 with gcc from 4.3. Simplify detecting wether gcc is 4.3 and later, or older than 4.3 (we already know from .config). /trunk/scripts/build/cc/gcc.sh | 22 13 9 0 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff -r 4d770d1f65a0 -r 187d34a9adf4 scripts/build/cc/gcc.sh --- a/scripts/build/cc/gcc.sh Mon Sep 29 20:51:16 2008 +0000 +++ b/scripts/build/cc/gcc.sh Tue Sep 30 18:19:18 2008 +0000 @@ -43,12 +43,20 @@ do_cc_core_pass_2() { # In case we're building for bare metal, do nothing, we already have # our compiler. - # In case we're NPTL, build the shared core gcc. - # In any other case, build the static core gcc and the target libgcc. + # In case we're NPTL, build the shared core gcc and the target libgcc. + # In any other case, build the static core gcc and, if using gcc-4.3+, + # also build the target libgcc. case "${CT_BARE_METAL},${CT_THREADS}" in y,*) ;; - ,nptl) do_cc_core mode=shared build_libgcc=yes;; - *) do_cc_core mode=static build_libgcc=no;; + ,nptl) + do_cc_core mode=shared build_libgcc=yes + ;; + *) if [ "${CT_CC_GCC_4_3_or_later}" = "y" ]; then + do_cc_core mode=static build_libgcc=yes + else + do_cc_core mode=static build_libgcc=no + fi + ;; esac } @@ -171,11 +179,7 @@ # Starting with GCC 4.3, libgcc.mk is no longer built, # and libgcc.mvars is used instead. - gcc_version_major=$(echo ${CT_CC_VERSION} |sed -r -e 's/^([^\.]+)\..*/\1/') - gcc_version_minor=$(echo ${CT_CC_VERSION} |sed -r -e 's/^[^\.]+\.([^.]+).*/\1/') - - if [ ${gcc_version_major} -eq 4 -a ${gcc_version_minor} -ge 3 \ - -o ${gcc_version_major} -gt 4 ]; then + if [ "${CT_CC_GCC_4_3_or_later}" = "y" ]; then libgcc_rule="libgcc.mvars" build_rules="all-gcc all-target-libgcc" install_rules="install-gcc install-target-libgcc"