crosstool-ng/scripts/build/arch/c6x.sh
Dan Tejada 3a3e645245 c6x: Remove multilib requirement
Restore tuple config check
     Add sample configuration

Signed-off-by: Dan Tejada <dan.tejada@cantada.com>
2020-11-02 16:21:26 -05:00

80 lines
2.7 KiB
Bash

# Compute c6x-specific values
CT_DoArchUClibcConfig() {
local cfg="${1}"
CT_DoArchUClibcSelectArch "${cfg}" "c6x"
}
CT_DoArchTupleValues() {
CT_TARGET_ARCH="tic6x"
#binutils does not like uclibc in the tuple
if [ "${CT_TARGET_SYS}" = "uclibc" ]; then
CT_TARGET_SYS=
fi
}
CT_DoArchUClibcHeaderDir() {
local dir_var="${1}"
local cflags="${2}"
# If it is non-default multilib, add a suffix with architecture (reported by gcc)
# to the headers installation path.
if [ -n "${cflags}" ]; then
eval "${dir_var}="$( ${CT_TARGET}-${CT_CC} -print-multiarch ${cflags} )
fi
}
CT_DoArchUClibcCflags() {
local cfg="${1}"
local cflags="${2}"
local f
# Set default little endian options
CT_KconfigDisableOption "ARCH_BIG_ENDIAN" "${cfg}"
CT_KconfigDisableOption "ARCH_WANTS_BIG_ENDIAN" "${cfg}"
CT_KconfigEnableOption "ARCH_LITTLE_ENDIAN" "${cfg}"
CT_KconfigEnableOption "ARCH_WANTS_LITTLE_ENDIAN" "${cfg}"
# Set arch options based on march switch
CT_KconfigDisableOption "CONFIG_TMS320C674X" "${cfg}"
CT_KconfigDisableOption "CONFIG_TMS320C64XPLUS" "${cfg}"
CT_KconfigDisableOption "CONFIG_TMS320C64X" "${cfg}"
CT_KconfigDisableOption "UCLIBC_HAS_FPU" "${cfg}"
CT_KconfigEnableOption "CONFIG_GENERIC_C6X" "${cfg}"
for f in ${cflags}; do
case "${f}" in
-march=*)
case "${f#-march=}" in
c674x)
CT_KconfigEnableOption "CONFIG_TMS320C674X" "${cfg}"
CT_KconfigEnableOption "UCLIBC_HAS_FPU" "${cfg}"
CT_KconfigDisableOption "CONFIG_GENERIC_C6X" "${cfg}"
;;
c64x+)
CT_KconfigEnableOption "CONFIG_TMS320C64XPLUS" "${cfg}"
CT_KconfigDisableOption "CONFIG_GENERIC_C6X" "${cfg}"
;;
c64x)
CT_KconfigEnableOption "CONFIG_TMS320C64X" "${cfg}"
CT_KconfigDisableOption "CONFIG_GENERIC_C6X" "${cfg}"
;;
c67x)
CT_KconfigEnableOption "UCLIBC_HAS_FPU" "${cfg}"
;;
c62x)
;;
*) CT_Abort "Unsupported architecture: ${f#-march=}";;
esac
;;
-mbig-endian)
CT_KconfigEnableOption "ARCH_BIG_ENDIAN" "${cfg}"
CT_KconfigEnableOption "ARCH_WANTS_BIG_ENDIAN" "${cfg}"
CT_KconfigDisableOption "ARCH_LITTLE_ENDIAN" "${cfg}"
CT_KconfigDisableOption "ARCH_WANTS_LITTLE_ENDIAN" "${cfg}"
;;
esac
done
}