mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2024-12-22 14:12:26 +00:00
80 lines
2.7 KiB
Bash
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
|
||
|
}
|