crosstool-ng/scripts/build/arch/mips.sh

50 lines
1.7 KiB
Bash
Raw Normal View History

# Compute MIPS-specific values
CT_DoArchTupleValues() {
# The architecture part of the tuple
CT_TARGET_ARCH="${CT_ARCH}${target_bits_64}${CT_ARCH_SUFFIX:-${target_endian_el}}"
# Override CFLAGS for endianness:
case "${CT_ARCH_ENDIAN}" in
big) CT_ARCH_ENDIAN_CFLAG="-EB";;
little) CT_ARCH_ENDIAN_CFLAG="-EL";;
esac
# Override ABI flags
CT_ARCH_ABI_CFLAG="-mabi=${CT_ARCH_mips_ABI}"
CT_ARCH_WITH_ABI="--with-abi=${CT_ARCH_mips_ABI}"
}
CT_DoArchUClibcConfig() {
local cfg="${1}"
CT_DoArchUClibcSelectArch "${cfg}" "${CT_ARCH}"
CT_KconfigDisableOption "CONFIG_MIPS_O32_ABI" "${cfg}"
CT_KconfigDisableOption "CONFIG_MIPS_N32_ABI" "${cfg}"
CT_KconfigDisableOption "CONFIG_MIPS_N64_ABI" "${cfg}"
case "${CT_ARCH_mips_ABI}" in
32)
CT_KconfigEnableOption "CONFIG_MIPS_O32_ABI" "${cfg}"
;;
n32)
CT_KconfigEnableOption "CONFIG_MIPS_N32_ABI" "${cfg}"
;;
64)
CT_KconfigEnableOption "CONFIG_MIPS_N64_ABI" "${cfg}"
;;
esac
# FIXME: uClibc (!ng) allows to select ISA in the config; should
# match from the selected ARCH_ARCH level... For now, delete and
# fall back to default.
CT_KconfigDeleteOption "CONFIG_MIPS_ISA_1" "${cfg}"
CT_KconfigDeleteOption "CONFIG_MIPS_ISA_2" "${cfg}"
CT_KconfigDeleteOption "CONFIG_MIPS_ISA_3" "${cfg}"
CT_KconfigDeleteOption "CONFIG_MIPS_ISA_4" "${cfg}"
CT_KconfigDeleteOption "CONFIG_MIPS_ISA_MIPS32" "${cfg}"
CT_KconfigDeleteOption "CONFIG_MIPS_ISA_MIPS32R2" "${cfg}"
CT_KconfigDeleteOption "CONFIG_MIPS_ISA_MIPS64" "${cfg}"
CT_KconfigDeleteOption "CONFIG_MIPS_ISA_MIPS64R2" "${cfg}"
}