scripts/build/arch/powerpc.sh
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Sun May 11 23:43:52 2014 +0200 (2014-05-11)
changeset 3320 78af1c99bc6d
parent 2723 94e5cee905f2
child 3322 eb13867a034c
permissions -rw-r--r--
scripts/functions: add target_endian_le and target_endian_be

We currently define target_endian_el and target_endian_eb to be the
tuple extension depending on endianness, defined to be respectively
'el' or 'eb' according to the endianness.

Some architecture do not use 'el' or 'eb', but use 'le' or 'be'.

Provide that as well, as two new variables: target_endian_le and
target_endian_be.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Cody P Schafer <dev@codyps.com>
yann@520
     1
# Compute powerpc-specific values
yann@520
     2
yann@1634
     3
CT_DoArchTupleValues () {
yann@1634
     4
    # The architecture part of the tuple, override only for 64-bit
yann@1634
     5
    if [ "${CT_ARCH_64}" = "y" ]; then
w@3169
     6
        CT_TARGET_ARCH="powerpc64${CT_ARCH_SUFFIX}"
yann@1634
     7
    fi
yann@1634
     8
yann@2723
     9
    # Only override values when ABI is not the default
mgherzan@2675
    10
    case "${CT_ARCH_powerpc_ABI}" in
yann@2723
    11
        eabi)
yann@2723
    12
            # EABI is only for bare-metal, so libc ∈ [none,newlib]
yann@2723
    13
            CT_TARGET_SYS="eabi"
yann@2723
    14
            ;;
mgherzan@2675
    15
        spe)
mgherzan@2675
    16
            case "${CT_LIBC}" in
yann@2723
    17
                none|newlib)    CT_TARGET_SYS="spe";;
yann@2723
    18
                *glibc)         CT_TARGET_SYS="gnuspe";;
yann@2723
    19
                uClibc)         CT_TARGET_SYS="uclibcgnuspe";;
mgherzan@2675
    20
            esac
mgherzan@2675
    21
            ;;
yann@1634
    22
    esac
yann@1634
    23
yann@1634
    24
    # Add extra flags for SPE if needed
mgherzan@2675
    25
    if [ "${CT_ARCH_powerpc_ABI_SPE}" = "y" ]; then
yann@1634
    26
        CT_ARCH_TARGET_CFLAGS="-mabi=spe -mspe"
yann@1634
    27
        CT_ARCH_CC_CORE_EXTRA_CONFIG="--enable-e500_double"
yann@1634
    28
        CT_ARCH_CC_EXTRA_CONFIG="--enable-e500_double"
yann@1634
    29
    fi
yann@1634
    30
}