scripts/build/binutils/binutils.sh
author Daniel Price <daniel.price@gmail.com>
Tue Nov 20 16:59:17 2012 -0800 (2012-11-20)
changeset 3126 333d3e40cbd1
parent 3119 1c56c03b7ed5
child 3290 bddc642fc8eb
permissions -rw-r--r--
scripts: refine static linking check to better guide the user

The current mechanism to check if static linking is possible, and the mesage
displayed on failure, can be puzzling to the unsuspecting user.

Also, the current implementation is not using the existing infrastructure,
and is thus difficult to enhance with new tests.

So, switch to using the standard CT_DoExecLog infra, and use four tests to
check for the host compiler:
- check we can run it
- check it can build a trivial program
- check it can statically link that program
- check if it statically link with libstdc++

That should cover most of the problems. Hopefully.

(At the same time, fix a typo in a comment)

Signed-off-by: Daniel Price <daniel.price@gmail.com>
[yann.morin.1998@free.fr: split original patch for self-contained changes]
[yann.morin.1998@free.fr: use steps to better see gcc's output]
[yann.morin.1998@free.fr: commit log]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Message-Id: <163f86b5216fc08c672a.1353459722@nipigon.dssd.com>
Patchwork-Id: 200536
yann@1345
     1
# This file adds functions to build binutils
yann@1345
     2
# Copyright 2007 Yann E. MORIN
yann@1345
     3
# Licensed under the GPL v2. See COPYING in the root of this package
yann@1345
     4
yann@1345
     5
# Download binutils
yann@1345
     6
do_binutils_get() {
david@3089
     7
    if [ "${CT_BINUTILS_CUSTOM}" = "y" ]; then
david@3089
     8
        CT_GetCustom "binutils" "${CT_BINUTILS_VERSION}" \
david@3089
     9
                     "${CT_BINUTILS_CUSTOM_LOCATION}"
david@3089
    10
    else
david@3089
    11
        CT_GetFile "binutils-${CT_BINUTILS_VERSION}"                                        \
david@3089
    12
                   {ftp,http}://{ftp.gnu.org/gnu,ftp.kernel.org/pub/linux/devel}/binutils   \
david@3089
    13
                   ftp://gcc.gnu.org/pub/binutils/{releases,snapshots}
david@3089
    14
    fi
diorcet@3123
    15
diorcet@3123
    16
    if [ -n "${CT_ARCH_BINFMT_FLAT}" ]; then
diorcet@3123
    17
        CT_GetCVS "elf2flt-${CT_ELF2FLT_VERSION}"               \
diorcet@3123
    18
                  ":pserver:anonymous@cvs.uclinux.org:/var/cvs" \
diorcet@3123
    19
                  "elf2flt"                                     \
diorcet@3123
    20
                  ""                                            \
diorcet@3123
    21
                  "elf2flt-${CT_ELF2FLT_VERSION}"
diorcet@3123
    22
    fi
yann@1345
    23
}
yann@1345
    24
yann@1345
    25
# Extract binutils
yann@1345
    26
do_binutils_extract() {
david@3089
    27
    # If using custom directory location, nothing to do
david@3089
    28
    if [ "${CT_BINUTILS_CUSTOM}" = "y" \
david@3089
    29
         -a -d "${CT_SRC_DIR}/binutils-${CT_BINUTILS_VERSION}" ]; then
david@3089
    30
        return 0
david@3089
    31
    fi
david@3089
    32
yann@1345
    33
    CT_Extract "binutils-${CT_BINUTILS_VERSION}"
yann@1901
    34
    CT_Patch "binutils" "${CT_BINUTILS_VERSION}"
diorcet@3123
    35
diorcet@3123
    36
    if [ -n "${CT_ARCH_BINFMT_FLAT}" ]; then
diorcet@3123
    37
        CT_Extract "elf2flt-${CT_ELF2FLT_VERSION}"
diorcet@3123
    38
        CT_Patch "elf2flt" "${CT_ELF2FLT_VERSION}"
diorcet@3123
    39
    fi
yann@1345
    40
}
yann@1345
    41
yann@2928
    42
# Build binutils for build -> target
yann@2928
    43
do_binutils_for_build() {
yann@2928
    44
    local -a binutils_opts
yann@2928
    45
yann@2928
    46
    case "${CT_TOOLCHAIN_TYPE}" in
yann@2928
    47
        native|cross)   return 0;;
yann@2928
    48
    esac
yann@2928
    49
yann@2928
    50
    CT_DoStep INFO "Installing binutils for build"
yann@2928
    51
    CT_mkdir_pushd "${CT_BUILD_DIR}/build-binutils-build-${CT_BUILD}"
yann@2928
    52
yann@2928
    53
    binutils_opts+=( "host=${CT_BUILD}" )
yann@2928
    54
    binutils_opts+=( "prefix=${CT_BUILDTOOLS_PREFIX_DIR}" )
diorcet@3119
    55
    binutils_opts+=( "cflags=${CT_CFLAGS_FOR_BUILD}" )
diorcet@3119
    56
    binutils_opts+=( "ldflags=${CT_LDFLAGS_FOR_BUILD}" )
yann@2928
    57
yann@2928
    58
    do_binutils_backend "${binutils_opts[@]}"
yann@2928
    59
yann@2928
    60
    CT_Popd
diorcet@3123
    61
diorcet@3123
    62
    if [ -n "${CT_ARCH_BINFMT_FLAT}" ]; then
diorcet@3123
    63
        # We re-use binutils' options, plus our owns
diorcet@3123
    64
        binutils_opts+=( "binutils_src=${CT_SRC_DIR}/binutils-${CT_BINUTILS_VERSION}" )
diorcet@3123
    65
        binutils_opts+=( "binutils_bld=${CT_BUILD_DIR}/build-binutils-build-${CT_BUILD}" )
diorcet@3123
    66
diorcet@3123
    67
        CT_mkdir_pushd "${CT_BUILD_DIR}/build-elf2flt-build-${CT_BUILD}"
diorcet@3123
    68
diorcet@3123
    69
        do_elf2flt_backend "${binutils_opts[@]}"
diorcet@3123
    70
diorcet@3123
    71
        CT_Popd
diorcet@3123
    72
    fi
diorcet@3123
    73
yann@2928
    74
    CT_EndStep
yann@2928
    75
}
yann@2928
    76
yann@2926
    77
# Build binutils for host -> target
yann@2926
    78
do_binutils_for_host() {
yann@2926
    79
    local -a binutils_tools
yann@2926
    80
    local -a binutils_opts
yann@2926
    81
yann@2926
    82
    CT_DoStep INFO "Installing binutils for host"
yann@2926
    83
    CT_mkdir_pushd "${CT_BUILD_DIR}/build-binutils-host-${CT_HOST}"
yann@2926
    84
yann@2926
    85
    binutils_opts+=( "host=${CT_HOST}" )
yann@2926
    86
    binutils_opts+=( "prefix=${CT_PREFIX_DIR}" )
yann@2926
    87
    binutils_opts+=( "static_build=${CT_STATIC_TOOLCHAIN}" )
yann@2926
    88
    binutils_opts+=( "cflags=${CT_CFLAGS_FOR_HOST}" )
diorcet@3119
    89
    binutils_opts+=( "ldflags=${CT_LDFLAGS_FOR_HOST}" )
yann@2926
    90
    binutils_opts+=( "build_manuals=${CT_BUILD_MANUALS}" )
yann@2926
    91
yann@2926
    92
    do_binutils_backend "${binutils_opts[@]}"
yann@2926
    93
diorcet@3123
    94
    CT_Popd
diorcet@3123
    95
diorcet@3123
    96
    if [ -n "${CT_ARCH_BINFMT_FLAT}" ]; then
diorcet@3123
    97
        # We re-use binutils' options, plus our owns
diorcet@3123
    98
        binutils_opts+=( "binutils_src=${CT_SRC_DIR}/binutils-${CT_BINUTILS_VERSION}" )
diorcet@3123
    99
        binutils_opts+=( "binutils_bld=${CT_BUILD_DIR}/build-binutils-host-${CT_HOST}" )
diorcet@3123
   100
diorcet@3123
   101
        CT_mkdir_pushd "${CT_BUILD_DIR}/build-elf2flt-host-${CT_HOST}"
diorcet@3123
   102
diorcet@3123
   103
        do_elf2flt_backend "${binutils_opts[@]}"
diorcet@3123
   104
diorcet@3123
   105
        CT_Popd
diorcet@3123
   106
    fi
diorcet@3123
   107
yann@2926
   108
    # Make those new tools available to the core C compilers to come.
yann@2926
   109
    # Note: some components want the ${TARGET}-{ar,as,ld,strip} commands as
yann@2926
   110
    # well. Create that.
yann@2926
   111
    # Don't do it for canadian or cross-native, because the binutils
yann@2926
   112
    # are not executable on the build machine.
yann@2926
   113
    case "${CT_TOOLCHAIN_TYPE}" in
yann@2926
   114
        cross|native)
yann@2926
   115
            binutils_tools=( ar as ld strip )
diorcet@3123
   116
            if [ -n "${CT_ARCH_BINFMT_FLAT}" ]; then
diorcet@3123
   117
                binutils_tools+=( elf2flt flthdr )
diorcet@3123
   118
            fi
yann@2926
   119
            case "${CT_BINUTILS_LINKERS_LIST}" in
yann@2926
   120
                ld)         binutils_tools+=( ld.bfd ) ;;
yann@2926
   121
                gold)       binutils_tools+=( ld.gold ) ;;
yann@2926
   122
                ld,gold)    binutils_tools+=( ld.bfd ld.gold ) ;;
yann@2926
   123
                gold,ld)    binutils_tools+=( ld.bfd ld.gold ) ;;
yann@2926
   124
            esac
yann@2926
   125
            mkdir -p "${CT_BUILDTOOLS_PREFIX_DIR}/${CT_TARGET}/bin"
yann@2926
   126
            mkdir -p "${CT_BUILDTOOLS_PREFIX_DIR}/bin"
yann@2926
   127
            for t in "${binutils_tools[@]}"; do
yann@2926
   128
                CT_DoExecLog ALL ln -sv                                         \
yann@2926
   129
                                    "${CT_PREFIX_DIR}/bin/${CT_TARGET}-${t}"    \
yann@2926
   130
                                    "${CT_BUILDTOOLS_PREFIX_DIR}/${CT_TARGET}/bin/${t}"
yann@2926
   131
                CT_DoExecLog ALL ln -sv                                         \
yann@2926
   132
                                    "${CT_PREFIX_DIR}/bin/${CT_TARGET}-${t}"    \
yann@2926
   133
                                    "${CT_BUILDTOOLS_PREFIX_DIR}/bin/${CT_TARGET}-${t}"
yann@2926
   134
            done
yann@2926
   135
            ;;
yann@2926
   136
        *)  ;;
yann@2926
   137
    esac
yann@2926
   138
yann@2926
   139
    CT_EndStep
yann@2926
   140
}
yann@2926
   141
yann@2926
   142
# Build binutils for X -> target
yann@2926
   143
#     Parameter     : description               : type      : default
yann@2926
   144
#     host          : machine to run on         : tuple     : (none)
yann@2926
   145
#     prefix        : prefix to install into    : dir       : (none)
yann@2926
   146
#     static_build  : build statcially          : bool      : no
diorcet@3119
   147
#     cflags        : cflags to use             : string    : (empty)
diorcet@3119
   148
#     ldflags       : ldflags to use            : string    : (empty)
yann@2926
   149
#     build_manuals : whether to build manuals  : bool      : no
yann@2926
   150
do_binutils_backend() {
yann@2926
   151
    local host
yann@2926
   152
    local prefix
yann@2926
   153
    local static_build
yann@2926
   154
    local cflags
diorcet@3119
   155
    local ldflags
yann@2926
   156
    local build_manuals=no
yann@1483
   157
    local -a extra_config
bryanhundven@2210
   158
    local -a extra_make_flags
michael@2765
   159
    local -a manuals_for
michael@2765
   160
    local -a manuals_install
yann@2926
   161
    local arg
yann@1483
   162
yann@2926
   163
    for arg in "$@"; do
yann@2926
   164
        eval "${arg// /\\ }"
yann@2926
   165
    done
yann@1345
   166
yann@1345
   167
    CT_DoLog EXTRA "Configuring binutils"
yann@2244
   168
yann@2244
   169
    if [ "${CT_BINUTILS_HAS_GOLD}" = "y" ]; then
yann@2244
   170
        case "${CT_BINUTILS_LINKERS_LIST}" in
yann@2244
   171
            ld)
yann@2244
   172
                extra_config+=( --enable-ld=yes --enable-gold=no )
yann@2244
   173
                ;;
yann@2244
   174
            gold)
yann@2244
   175
                extra_config+=( --enable-ld=no --enable-gold=yes )
yann@2244
   176
                ;;
yann@2244
   177
            ld,gold)
yann@2244
   178
                extra_config+=( --enable-ld=default --enable-gold=yes )
yann@2244
   179
                ;;
yann@2244
   180
            gold,ld)
yann@2244
   181
                extra_config+=( --enable-ld=yes --enable-gold=default )
yann@2244
   182
                ;;
yann@2244
   183
        esac
zhenqiang@3032
   184
        if [ "${CT_BINUTILS_GOLD_THREADS}" = "y" ]; then
yann@2246
   185
            extra_config+=( --enable-threads )
yann@2246
   186
        fi
yann@2244
   187
    fi
yann@2245
   188
    if [ "${CT_BINUTILS_PLUGINS}" = "y" ]; then
yann@2245
   189
        extra_config+=( --enable-plugins )
yann@2245
   190
    fi
benoit@2488
   191
    if [ "${CT_BINUTILS_HAS_PKGVERSION_BUGURL}" = "y" ]; then
benoit@2503
   192
        extra_config+=("--with-pkgversion=${CT_PKGVERSION}")
benoit@2503
   193
        [ -n "${CT_TOOLCHAIN_BUGURL}" ] && extra_config+=("--with-bugurl=${CT_TOOLCHAIN_BUGURL}")
benoit@2488
   194
    fi
yann@2816
   195
    if [ "${CT_MULTILIB}" = "y" ]; then
yann@2816
   196
        extra_config+=("--enable-multilib")
yann@2816
   197
    else
yann@2816
   198
        extra_config+=("--disable-multilib")
yann@2816
   199
    fi
yann@2244
   200
zhenqiang@2779
   201
    [ "${CT_TOOLCHAIN_ENABLE_NLS}" != "y" ] && extra_config+=("--disable-nls")
zhenqiang@2779
   202
yann@2244
   203
    CT_DoLog DEBUG "Extra config passed: '${extra_config[*]}'"
yann@2244
   204
yann@2341
   205
    CT_DoExecLog CFG                                            \
yann@2926
   206
    CFLAGS="${cflags}"                                          \
yann@2926
   207
    CXXFLAGS="${cflags}"                                        \
diorcet@3119
   208
    LDFLAGS="${ldflags}"                                        \
yann@1345
   209
    "${CT_SRC_DIR}/binutils-${CT_BINUTILS_VERSION}/configure"   \
yann@1345
   210
        --build=${CT_BUILD}                                     \
yann@2926
   211
        --host=${host}                                          \
yann@1345
   212
        --target=${CT_TARGET}                                   \
yann@2926
   213
        --prefix=${prefix}                                      \
yann@1345
   214
        --disable-werror                                        \
yann@1483
   215
        "${extra_config[@]}"                                    \
yann@1345
   216
        ${CT_ARCH_WITH_FLOAT}                                   \
yann@2466
   217
        ${BINUTILS_SYSROOT_ARG}                                 \
yann@2467
   218
        "${CT_BINUTILS_EXTRA_CONFIG_ARRAY[@]}"
yann@1345
   219
yann@2926
   220
    if [ "${static_build}" = "y" ]; then
yann@2702
   221
        extra_make_flags+=("LDFLAGS=-static -all-static")
bryanhundven@2210
   222
        CT_DoLog EXTRA "Prepare binutils for static build"
yann@2702
   223
        CT_DoExecLog ALL make ${JOBSFLAGS} configure-host
bryanhundven@2210
   224
    fi
bryanhundven@2210
   225
yann@1345
   226
    CT_DoLog EXTRA "Building binutils"
yann@2275
   227
    CT_DoExecLog ALL make "${extra_make_flags[@]}" ${JOBSFLAGS}
yann@1345
   228
yann@1345
   229
    CT_DoLog EXTRA "Installing binutils"
yann@1345
   230
    CT_DoExecLog ALL make install
yann@1345
   231
yann@2926
   232
    if [ "${build_manuals}" = "y" ]; then
michael@2765
   233
        CT_DoLog EXTRA "Building and installing the binutils manuals"
michael@2765
   234
        manuals_for=( gas binutils ld gprof )
michael@2765
   235
        if [ "${CT_BINUTILS_LINKER_GOLD}" = "y" ]; then
michael@2765
   236
            manuals_for+=( gold )
michael@2765
   237
        fi
michael@2765
   238
        manuals_install=( "${manuals_for[@]/#/install-pdf-}" )
michael@2765
   239
        manuals_install+=( "${manuals_for[@]/#/install-html-}" )
michael@2765
   240
        CT_DoExecLog ALL make ${JOBSFLAGS} pdf html
michael@2765
   241
        CT_DoExecLog ALL make "${manuals_install[@]}"
michael@2765
   242
    fi
michael@2765
   243
yann@2247
   244
    # Install the wrapper if needed
yann@2247
   245
    if [ "${CT_BINUTILS_LD_WRAPPER}" = "y" ]; then
yann@2247
   246
        CT_DoLog EXTRA "Installing ld wrapper"
yann@2926
   247
        rm -f "${prefix}/bin/${CT_TARGET}-ld"
yann@2926
   248
        rm -f "${prefix}/${CT_TARGET}/bin/ld"
yann@2247
   249
        sed -r -e "s/@@DEFAULT_LD@@/${CT_BINUTILS_LINKER_DEFAULT}/" \
yann@2247
   250
            "${CT_LIB_DIR}/scripts/build/binutils/binutils-ld.in"   \
yann@2926
   251
            >"${prefix}/bin/${CT_TARGET}-ld"
yann@2926
   252
        chmod +x "${prefix}/bin/${CT_TARGET}-ld"
yann@2926
   253
        cp -a "${prefix}/bin/${CT_TARGET}-ld"   \
yann@2926
   254
              "${prefix}/${CT_TARGET}/bin/ld"
yann@2376
   255
yann@2376
   256
        # If needed, force using ld.bfd during the toolchain build
yann@2376
   257
        if [ "${CT_BINUTILS_FORCE_LD_BFD}" = "y" ]; then
yann@2376
   258
            export CTNG_LD_IS=bfd
yann@2376
   259
        fi
yann@2247
   260
    fi
yann@1345
   261
}
yann@1345
   262
diorcet@3123
   263
# Build elf2flt for X -> target
diorcet@3123
   264
#     Parameter     : description               : type      : default
diorcet@3123
   265
#     host          : machine to run on         : tuple     : (none)
diorcet@3123
   266
#     prefix        : prefix to install into    : dir       : (none)
diorcet@3123
   267
#     static_build  : build statcially          : bool      : no
diorcet@3123
   268
#     cflags        : cflags to use             : string    : (empty)
diorcet@3123
   269
#     ldflags       : ldflags to use            : string    : (empty)
diorcet@3123
   270
#     binutils_src  : source dir of binutils    : dir       : (none)
diorcet@3123
   271
#     binutils_bld  : build dir of binutils     : dir       : (none)
diorcet@3123
   272
#     build_manuals : whether to build manuals  : bool      : no
diorcet@3123
   273
do_elf2flt_backend() {
diorcet@3123
   274
    local host
diorcet@3123
   275
    local prefix
diorcet@3123
   276
    local static_build
diorcet@3123
   277
    local cflags
diorcet@3123
   278
    local ldflags
diorcet@3123
   279
    local binutils_bld
diorcet@3123
   280
    local binutils_src
diorcet@3123
   281
    local build_manuals
diorcet@3123
   282
    local arg
diorcet@3123
   283
diorcet@3123
   284
    for arg in "$@"; do
diorcet@3123
   285
        eval "${arg// /\\ }"
diorcet@3123
   286
    done
diorcet@3123
   287
diorcet@3123
   288
    CT_DoLog EXTRA "Configuring elf2flt"
diorcet@3123
   289
    CT_DoExecLog CFG                                            \
diorcet@3123
   290
    CFLAGS="${cflags}"                                          \
diorcet@3123
   291
    LDFLAGS="${ldflags}"                                        \
diorcet@3123
   292
    "${CT_SRC_DIR}/elf2flt-${CT_ELF2FLT_VERSION}/configure"     \
diorcet@3123
   293
        --build=${CT_BUILD}                                     \
diorcet@3123
   294
        --host=${host}                                          \
diorcet@3123
   295
        --target=${CT_TARGET}                                   \
diorcet@3123
   296
        --prefix=${prefix}                                      \
diorcet@3123
   297
        --with-bfd-include-dir=${binutils_bld}/bfd              \
diorcet@3123
   298
        --with-binutils-include-dir=${binutils_src}/include     \
diorcet@3123
   299
        --with-libbfd=${binutils_bld}/bfd/libbfd.a              \
diorcet@3123
   300
        --with-libiberty=${binutils_bld}/libiberty/libiberty.a  \
diorcet@3123
   301
        ${elf2flt_opts}                                         \
diorcet@3123
   302
        "${CT_ELF2FLT_EXTRA_CONFIG_ARRAY[@]}"
diorcet@3123
   303
diorcet@3123
   304
    CT_DoLog EXTRA "Building elf2flt"
diorcet@3123
   305
    CT_DoExecLog ALL make ${JOBSFLAGS}
diorcet@3123
   306
diorcet@3123
   307
    CT_DoLog EXTRA "Installing elf2flt"
diorcet@3123
   308
    CT_DoExecLog ALL make install
diorcet@3123
   309
}
diorcet@3123
   310
yann@1345
   311
# Now on for the target libraries
yann@2906
   312
do_binutils_for_target() {
yann@1483
   313
    local -a extra_config
yann@1483
   314
    local -a targets
yann@1483
   315
    local -a build_targets
yann@1483
   316
    local -a install_targets
yann@1483
   317
    local t
yann@1345
   318
yann@1483
   319
    [ "${CT_BINUTILS_FOR_TARGET_IBERTY}" = "y" ] && targets+=("libiberty")
yann@1483
   320
    [ "${CT_BINUTILS_FOR_TARGET_BFD}"    = "y" ] && targets+=("bfd")
yann@1483
   321
    for t in "${targets[@]}"; do
yann@1483
   322
        build_targets+=("all-${t}")
yann@1483
   323
        install_targets+=("install-${t}")
yann@1483
   324
    done
yann@1483
   325
yann@1483
   326
    if [ "${#targets[@]}" -ne 0 ]; then
yann@1345
   327
        CT_DoStep INFO "Installing binutils for target"
yann@1345
   328
        mkdir -p "${CT_BUILD_DIR}/build-binutils-for-target"
yann@1345
   329
        CT_Pushd "${CT_BUILD_DIR}/build-binutils-for-target"
yann@1345
   330
yann@1345
   331
        CT_DoLog EXTRA "Configuring binutils for target"
benoit@2488
   332
benoit@2488
   333
        if [ "${CT_BINUTILS_HAS_PKGVERSION_BUGURL}" = "y" ]; then
benoit@2503
   334
            extra_config+=("--with-pkgversion=${CT_PKGVERSION}")
benoit@2503
   335
            [ -n "${CT_TOOLCHAIN_BUGURL}" ] && extra_config+=("--with-bugurl=${CT_TOOLCHAIN_BUGURL}")
benoit@2488
   336
        fi
yann@2816
   337
        if [ "${CT_MULTILIB}" = "y" ]; then
yann@2816
   338
            extra_config+=("--enable-multilib")
yann@2816
   339
        else
yann@2816
   340
            extra_config+=("--disable-multilib")
yann@2816
   341
        fi
benoit@2488
   342
zhenqiang@2779
   343
        [ "${CT_TOOLCHAIN_ENABLE_NLS}" != "y" ] && extra_config+=("--disable-nls")
zhenqiang@2779
   344
yann@2333
   345
        CT_DoExecLog CFG                                            \
yann@1345
   346
        "${CT_SRC_DIR}/binutils-${CT_BINUTILS_VERSION}/configure"   \
yann@1345
   347
            --build=${CT_BUILD}                                     \
yann@1345
   348
            --host=${CT_TARGET}                                     \
yann@1345
   349
            --target=${CT_TARGET}                                   \
yann@1345
   350
            --prefix=/usr                                           \
yann@1345
   351
            --disable-werror                                        \
yann@1345
   352
            --enable-shared                                         \
yann@1345
   353
            --enable-static                                         \
yann@1483
   354
            "${extra_config[@]}"                                    \
yann@1345
   355
            ${CT_ARCH_WITH_FLOAT}                                   \
benoit@2804
   356
            "${CT_BINUTILS_EXTRA_CONFIG_ARRAY[@]}"
yann@1345
   357
yann@1483
   358
        CT_DoLog EXTRA "Building binutils' libraries (${targets[*]}) for target"
yann@2275
   359
        CT_DoExecLog ALL make ${JOBSFLAGS} "${build_targets[@]}"
yann@1483
   360
        CT_DoLog EXTRA "Installing binutils' libraries (${targets[*]}) for target"
yann@1483
   361
        CT_DoExecLog ALL make DESTDIR="${CT_SYSROOT_DIR}" "${install_targets[@]}"
yann@1345
   362
yann@1345
   363
        CT_Popd
yann@1345
   364
        CT_EndStep
yann@1345
   365
    fi
yann@1345
   366
}