Changeset 603c8740 in mainline


Ignore:
Timestamp:
2011-03-28T20:33:03Z (14 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
cb4f078
Parents:
fd89cf9
Message:
  • bump to GCC 4.6 and binutils 2.21
  • add support for parallel toolchain builds
  • change default CROSS_PREFIX to /usr/local/cross
Location:
tools
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • tools/autotool.py

    rfd89cf9 r603c8740  
    501501                cross_prefix = os.environ['CROSS_PREFIX']
    502502        else:
    503                 cross_prefix = "/usr/local"
     503                cross_prefix = "/usr/local/cross"
    504504       
    505505        # Prefix binutils tools on Solaris
  • tools/toolchain.sh

    rfd89cf9 r603c8740  
    5252#endif
    5353EOF
     54
     55BINUTILS_VERSION="2.21"
     56GCC_VERSION="4.6.0"
     57
     58BASEDIR="`pwd`"
     59BINUTILS="binutils-${BINUTILS_VERSION}.tar.bz2"
     60GCC_CORE="gcc-core-${GCC_VERSION}.tar.bz2"
     61GCC_OBJC="gcc-objc-${GCC_VERSION}.tar.bz2"
     62GCC_CPP="gcc-g++-${GCC_VERSION}.tar.bz2"
    5463
    5564#
     
    139148        echo " sparc64    SPARC V9"
    140149        echo " all        build all targets"
     150        echo " parallel   same as 'all', but in parallel"
    141151        echo
    142152        echo "The toolchain will be installed to the directory specified by"
    143153        echo "the CROSS_PREFIX environment variable. If the variable is not"
    144         echo "defined, /usr/local will be used by default."
     154        echo "defined, /usr/local/cross will be used by default."
    145155        echo
    146156       
     
    194204}
    195205
    196 download_check() {
     206download_fetch() {
    197207        SOURCE="$1"
    198208        FILE="$2"
     
    208218}
    209219
     220source_check() {
     221        FILE="$1"
     222       
     223        if [ ! -f "${FILE}" ]; then
     224                echo
     225                echo "File ${FILE} not found."
     226               
     227                exit 4
     228        fi
     229}
     230
    210231cleanup_dir() {
    211232        DIR="$1"
     
    241262}
    242263
    243 patch_binutils() {
    244         PLATFORM="$1"
    245        
    246         if [ "${PLATFORM}" == "arm32" ] ; then
    247                 patch -p1 <<EOF
    248 diff -Naur binutils-2.20.orig/gas/config/tc-arm.c binutils-2.20/gas/config/tc-arm.c
    249 --- binutils-2.20.orig/gas/config/tc-arm.c      2009-08-30 00:10:59.000000000 +0200
    250 +++ binutils-2.20/gas/config/tc-arm.c   2009-11-02 14:25:11.000000000 +0100
    251 @@ -2485,8 +2485,9 @@
    252        know (frag->tc_frag_data.first_map == NULL);
    253        frag->tc_frag_data.first_map = symbolP;
    254      }
    255 -  if (frag->tc_frag_data.last_map != NULL)
    256 +  if (frag->tc_frag_data.last_map != NULL) {
    257      know (S_GET_VALUE (frag->tc_frag_data.last_map) < S_GET_VALUE (symbolP));
    258 +  }
    259    frag->tc_frag_data.last_map = symbolP;
    260  }
    261 EOF
    262                 check_error $? "Error patching binutils"
    263         fi
     264prepare() {
     265        show_dependencies
     266        check_dependecies
     267        show_countdown 10
     268       
     269        BINUTILS_SOURCE="ftp://ftp.gnu.org/gnu/binutils/"
     270        GCC_SOURCE="ftp://ftp.gnu.org/gnu/gcc/gcc-${GCC_VERSION}/"
     271       
     272        download_fetch "${BINUTILS_SOURCE}" "${BINUTILS}" "c84c5acc9d266f1a7044b51c85a823f5"
     273        download_fetch "${GCC_SOURCE}" "${GCC_CORE}" "b1957f3209080b2f55bc3756d3a62b7c"
     274        download_fetch "${GCC_SOURCE}" "${GCC_OBJC}" "120d4675366ee82ea52f9ed65b57da04"
     275        download_fetch "${GCC_SOURCE}" "${GCC_CPP}" "a30090fa655d0db4c970740d353c81f1"
    264276}
    265277
     
    268280        TARGET="$2"
    269281       
    270         BINUTILS_VERSION="2.20"
    271         GCC_VERSION="4.5.1"
    272        
    273         BINUTILS="binutils-${BINUTILS_VERSION}.tar.bz2"
    274         GCC_CORE="gcc-core-${GCC_VERSION}.tar.bz2"
    275         GCC_OBJC="gcc-objc-${GCC_VERSION}.tar.bz2"
    276         GCC_CPP="gcc-g++-${GCC_VERSION}.tar.bz2"
    277        
    278         BINUTILS_SOURCE="ftp://ftp.gnu.org/gnu/binutils/"
    279         GCC_SOURCE="ftp://ftp.gnu.org/gnu/gcc/gcc-${GCC_VERSION}/"
    280        
    281         WORKDIR="`pwd`"
     282        WORKDIR="${BASEDIR}/${PLATFORM}"
    282283        BINUTILSDIR="${WORKDIR}/binutils-${BINUTILS_VERSION}"
    283284        GCCDIR="${WORKDIR}/gcc-${GCC_VERSION}"
     
    285286       
    286287        if [ -z "${CROSS_PREFIX}" ] ; then
    287                 CROSS_PREFIX="/usr/local"
     288                CROSS_PREFIX="/usr/local/cross"
    288289        fi
    289290       
     
    291292       
    292293        echo ">>> Downloading tarballs"
    293         download_check "${BINUTILS_SOURCE}" "${BINUTILS}" "ee2d3e996e9a2d669808713360fa96f8"
    294         download_check "${GCC_SOURCE}" "${GCC_CORE}" "dc8959e31b01a65ce10d269614815054"
    295         download_check "${GCC_SOURCE}" "${GCC_OBJC}" "3c11b7037896e967eddf8178af2ddd98"
    296         download_check "${GCC_SOURCE}" "${GCC_CPP}" "b294953ff0bb2f20c7acb2bf005d832a"
     294        source_check "${BASEDIR}/${BINUTILS}"
     295        source_check "${BASEDIR}/${GCC_CORE}"
     296        source_check "${BASEDIR}/${GCC_OBJC}"
     297        source_check "${BASEDIR}/${GCC_CPP}"
    297298       
    298299        echo ">>> Removing previous content"
    299300        cleanup_dir "${PREFIX}"
    300         cleanup_dir "${OBJDIR}"
    301         cleanup_dir "${BINUTILSDIR}"
    302         cleanup_dir "${GCCDIR}"
     301        cleanup_dir "${WORKDIR}"
    303302       
    304303        create_dir "${PREFIX}" "destination directory"
     
    306305       
    307306        echo ">>> Unpacking tarballs"
    308         unpack_tarball "${BINUTILS}" "binutils"
    309         unpack_tarball "${GCC_CORE}" "GCC Core"
    310         unpack_tarball "${GCC_OBJC}" "Objective C"
    311         unpack_tarball "${GCC_CPP}" "C++"
     307        cd "${WORKDIR}"
     308        check_error $? "Change directory failed."
     309       
     310        unpack_tarball "${BASEDIR}/${BINUTILS}" "binutils"
     311        unpack_tarball "${BASEDIR}/${GCC_CORE}" "GCC Core"
     312        unpack_tarball "${BASEDIR}/${GCC_OBJC}" "Objective C"
     313        unpack_tarball "${BASEDIR}/${GCC_CPP}" "C++"
    312314       
    313315        echo ">>> Processing binutils (${PLATFORM})"
    314316        cd "${BINUTILSDIR}"
    315317        check_error $? "Change directory failed."
    316         patch_binutils "${PLATFORM}"
    317318       
    318319        change_title "binutils: configure (${PLATFORM})"
     
    336337        check_error $? "Error compiling/installing GCC."
    337338       
    338         cd "${WORKDIR}"
     339        cd "${BASEDIR}"
    339340        check_error $? "Change directory failed."
    340341       
    341342        echo ">>> Cleaning up"
    342         cleanup_dir "${OBJDIR}"
    343         cleanup_dir "${BINUTILSDIR}"
    344         cleanup_dir "${GCCDIR}"
     343        cleanup_dir "${WORKDIR}"
    345344       
    346345        echo
     
    352351fi
    353352
    354 show_dependencies
    355 check_dependecies
    356 show_countdown 10
    357 
    358353case "$1" in
    359354        "amd64")
     355                prepare
    360356                build_target "amd64" "amd64-linux-gnu"
    361357                ;;
    362358        "arm32")
     359                prepare
    363360                build_target "arm32" "arm-linux-gnu"
    364361                ;;
    365362        "ia32")
     363                prepare
    366364                build_target "ia32" "i686-pc-linux-gnu"
    367365                ;;
    368366        "ia64")
     367                prepare
    369368                build_target "ia64" "ia64-pc-linux-gnu"
    370369                ;;
    371         "ia64")
    372                 build_target "ia64" "ia64-pc-linux-gnu"
    373                 ;;
    374370        "mips32")
     371                prepare
    375372                build_target "mips32" "mipsel-linux-gnu"
    376373                ;;
    377374        "mips32eb")
     375                prepare
    378376                build_target "mips32eb" "mips-linux-gnu"
    379377                ;;
    380378        "mips64")
     379                prepare
    381380                build_target "mips64" "mips64el-linux-gnu"
    382381                ;;
    383382        "ppc32")
     383                prepare
    384384                build_target "ppc32" "ppc-linux-gnu"
    385385                ;;
    386386        "ppc64")
     387                prepare
    387388                build_target "ppc64" "ppc64-linux-gnu"
    388389                ;;
    389390        "sparc64")
     391                prepare
    390392                build_target "sparc64" "sparc64-linux-gnu"
    391393                ;;
    392394        "all")
     395                prepare
    393396                build_target "amd64" "amd64-linux-gnu"
    394397                build_target "arm32" "arm-linux-gnu"
    395398                build_target "ia32" "i686-pc-linux-gnu"
    396                 build_target "ia64" "ia64-pc-linux-gnu"
    397399                build_target "ia64" "ia64-pc-linux-gnu"
    398400                build_target "mips32" "mipsel-linux-gnu"
     
    403405                build_target "sparc64" "sparc64-linux-gnu"
    404406                ;;
     407        "parallel")
     408                prepare
     409                build_target "amd64" "amd64-linux-gnu" &
     410                build_target "arm32" "arm-linux-gnu" &
     411                build_target "ia32" "i686-pc-linux-gnu" &
     412                build_target "ia64" "ia64-pc-linux-gnu" &
     413                build_target "mips32" "mipsel-linux-gnu" &
     414                build_target "mips32eb" "mips-linux-gnu" &
     415                build_target "mips64" "mips64el-linux-gnu" &
     416                build_target "ppc32" "ppc-linux-gnu" &
     417                build_target "ppc64" "ppc64-linux-gnu" &
     418                build_target "sparc64" "sparc64-linux-gnu" &
     419                wait
     420                ;;
    405421        *)
    406422                show_usage
Note: See TracChangeset for help on using the changeset viewer.