summaryrefslogtreecommitdiff
path: root/arch/arm/functions
blob: 5eb4977fd7fee22016b05518c336e1ecb68c2ce8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# Compute ARM-specific values

CT_DoArchValues() {
    # The architecture part of the tuple:
    CT_TARGET_ARCH="${CT_ARCH}${target_endian_eb}"

    # The system part of the tuple:
    case "${CT_LIBC},${CT_ARCH_ARM_EABI}" in
        *glibc,)    CT_TARGET_SYS=gnu;;
        *glibc,y)   CT_TARGET_SYS=gnueabi;;
        uClibc,)    CT_TARGET_SYS=uclibc;;
        uClibc,y)   CT_TARGET_SYS=uclibcgnueabi;;
    esac

    case "${CT_ARCH_ABI},${CT_ARCH_ARM_EABI}" in
        *,) ;;
        aapcs,y)
            CT_DoLog DEBUG "'--with-abi=aapcs' is in fact '-mabi=aapcs-linux' when used in CFLAGS."
            CT_ARCH_ABI_CFLAGS="-mabi=aapcs-linux"
            ;;
        ,y)
            CT_DoLog WARN "Forcing ABI to 'aapcs-linux' for use with EABI."
            CT_ARCH_WITH_ABI="--with-abi=aapcs"
            CT_ARCH_ABI_CFLAGS="-mabi=aapcs-linux"
            ;;
        *,y)
            CT_DoLog ERROR "ABI='${CT_ARCH_ABI}' not supported for EABI."
            CT_Abort "If you know you are right, please edit 'arch/arm/functions' in crosstool-NG sources."
            ;;
    esac
}