mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2024-12-24 06:56:40 +00:00
f2ffdf798d
Create a separate 'libc_backend_once', install headers into a subdirectory (different sets of headers are installed for 32- and 64-bit architectures), and create a symlink for the dynamic linker location expected by GCC. Signed-off-by: Alexey Neyman <stilor@att.net>
72 lines
2.5 KiB
Bash
72 lines
2.5 KiB
Bash
# 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}"
|
|
}
|
|
|
|
CT_DoArchUClibcCflags() {
|
|
local cfg="${1}"
|
|
local cflags="${2}"
|
|
local f
|
|
|
|
for f in ${cflags}; do
|
|
case "${f}" in
|
|
-mabi=*)
|
|
CT_KconfigDisableOption "CONFIG_MIPS_O32_ABI" "${cfg}"
|
|
CT_KconfigDisableOption "CONFIG_MIPS_N32_ABI" "${cfg}"
|
|
CT_KconfigDisableOption "CONFIG_MIPS_N64_ABI" "${cfg}"
|
|
case "${f#-mabi=}" 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}";;
|
|
*) CT_Abort "Unsupported ABI: ${f#-mabi=}";;
|
|
esac
|
|
;;
|
|
esac
|
|
done
|
|
}
|