scripts/build/binutils/elf2flt.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Wed Sep 09 00:02:01 2009 +0200 (2009-09-09)
changeset 1525 4647e6fb994a
child 1755 30d91bfc1f2a
permissions -rw-r--r--
gcc: add patch to fix EABI for armv4t

As pointed out by Martin GUY, gcc incorrectly generates armv5t
instrcutions for EABI, even for cores that are an armv4t.
The new patch (for the 4.3 series) fixes the problem by downgrading
the default CPU for EABI to being an armv4t core.
     1 # This file adds functions to build elf2flt
     2 # Copyright 2009 John Williams
     3 # Copyright 2007 Yann E. MORIN
     4 # Licensed under the GPL v2. See COPYING in the root of this package
     5 
     6 # Download elf2flt
     7 do_elf2flt_get() {
     8     CT_GetCVS "elf2flt-cvs-${CT_ELF2FLT_VERSION}"           \
     9               ":pserver:anonymous@cvs.uclinux.org:/var/cvs" \
    10               "elf2flt"                                     \
    11               "" \
    12               "elf2flt-cvs-${CT_ELF2FLT_VERSION}"
    13 }
    14 
    15 # Extract elf2flt
    16 do_elf2flt_extract() {
    17     CT_Extract "elf2flt-cvs-${CT_ELF2FLT_VERSION}"
    18     CT_Patch "elf2flt-cvs-${CT_ELF2FLT_VERSION}"
    19 }
    20 
    21 # Build elf2flt
    22 do_elf2flt() {
    23     [ -z ${CT_KERNEL_UCLINUX_BINFMT_FLAT} ] && return 0
    24     mkdir -p "${CT_BUILD_DIR}/build-elf2flt"
    25     cd "${CT_BUILD_DIR}/build-elf2flt"
    26 
    27     CT_DoStep INFO "Installing elf2flt"
    28 
    29     elf2flt_opts=
    30     binutils_bld=${CT_BUILD_DIR}/build-binutils
    31     binutils_src=${CT_SRC_DIR}/binutils-${CT_BINUTILS_VERSION}
    32 
    33     CT_DoLog EXTRA "Configuring elf2flt"
    34     CFLAGS="${CT_CFLAGS_FOR_HOST}"                              \
    35     CT_DoExecLog ALL                                            \
    36     "${CT_SRC_DIR}/elf2flt-cvs-${CT_ELF2FLT_VERSION}/configure" \
    37         --build=${CT_BUILD}                                     \
    38         --host=${CT_HOST}                                       \
    39         --target=${CT_TARGET}                                   \
    40         --prefix=${CT_PREFIX_DIR}                               \
    41         --with-bfd-include-dir=${binutils_bld}/bfd              \
    42         --with-binutils-include-dir=${binutils_src}/include     \
    43         --with-libbfd=${binutils_bld}/bfd/libbfd.a              \
    44         --with-libiberty=${binutils_bld}/libiberty/libiberty.a  \
    45         ${elf2flt_opts}                                         \
    46         ${CT_ELF2FLT_EXTRA_CONFIG}			
    47 
    48     CT_DoLog EXTRA "Building elf2flt"
    49     CT_DoExecLog ALL make ${PARALLELMFLAGS}
    50 
    51     CT_DoLog EXTRA "Installing elf2flt"
    52     CT_DoExecLog ALL make install
    53 
    54     # Make those new tools available to the core C compilers to come.
    55     # Note: some components want the ${TARGET}-{ar,as,ld,strip} commands as
    56     # well. Create that.
    57     mkdir -p "${CT_CC_CORE_STATIC_PREFIX_DIR}/${CT_TARGET}/bin"
    58     mkdir -p "${CT_CC_CORE_STATIC_PREFIX_DIR}/bin"
    59     mkdir -p "${CT_CC_CORE_SHARED_PREFIX_DIR}/${CT_TARGET}/bin"
    60     mkdir -p "${CT_CC_CORE_SHARED_PREFIX_DIR}/bin"
    61     for t in elf2flt flthdr; do
    62         ln -sv "${CT_PREFIX_DIR}/bin/${CT_TARGET}-${t}" "${CT_CC_CORE_STATIC_PREFIX_DIR}/${CT_TARGET}/bin/${t}"
    63         ln -sv "${CT_PREFIX_DIR}/bin/${CT_TARGET}-${t}" "${CT_CC_CORE_STATIC_PREFIX_DIR}/bin/${CT_TARGET}-${t}"
    64         ln -sv "${CT_PREFIX_DIR}/bin/${CT_TARGET}-${t}" "${CT_CC_CORE_SHARED_PREFIX_DIR}/${CT_TARGET}/bin/${t}"
    65         ln -sv "${CT_PREFIX_DIR}/bin/${CT_TARGET}-${t}" "${CT_CC_CORE_SHARED_PREFIX_DIR}/bin/${CT_TARGET}-${t}"
    66     done 2>&1 |CT_DoLog ALL
    67 
    68     CT_EndStep
    69 }