summaryrefslogtreecommitdiff
path: root/scripts/build/arch/s390.sh
blob: dff86a0c6fca55625b22b9005d8ff0f1aae03ab6 (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
32
33
34
35
36
37
38
39
# Compute s390-specific values

CT_DoArchTupleValues() {
    # That's the only thing to override
    if [ "${CT_ARCH_64}" = "y" ]; then
        CT_TARGET_ARCH="s390x${CT_ARCH_SUFFIX}"
    fi
}

#------------------------------------------------------------------------------
# Get multilib architecture-specific target
# Usage: CT_DoArchMultilibTarget "target variable" "multilib flags"
CT_DoArchMultilibTarget ()
{
    local target_var="${1}"; shift
    local -a multi_flags=( "$@" )
    local target_

    local m31=false
    local m64=false

    for m in "${multi_flags[@]}"; do
        case "${multi_flags}" in
            -m64) m64=true ;;
            -m31) m31=true ;;
        esac
    done

    eval target_=\"\${${target_var}}\"

    # Fix bitness
    case "${target_}" in
        s390-*)   $m64 && target_=${target_/#s390-/s390x-} ;;
        s390x-*)  $m31 && target_=${target_/#s390x-/s390-} ;;
    esac

    # Set the target variable
    eval ${target_var}=\"${target_}\"
}