diff options
Diffstat (limited to 'scripts/build')
-rw-r--r-- | scripts/build/arch/microblaze.sh | 15 | ||||
-rw-r--r-- | scripts/build/arch/sh.sh | 53 | ||||
-rw-r--r-- | scripts/build/cc/gcc.sh | 2 | ||||
-rw-r--r-- | scripts/build/libc/uClibc.sh | 4 |
4 files changed, 41 insertions, 33 deletions
diff --git a/scripts/build/arch/microblaze.sh b/scripts/build/arch/microblaze.sh index e9d9811..5b85012 100644 --- a/scripts/build/arch/microblaze.sh +++ b/scripts/build/arch/microblaze.sh @@ -3,21 +3,6 @@ CT_DoArchTupleValues () { # The architecture part of the tuple: CT_TARGET_ARCH="${CT_ARCH}${CT_ARCH_SUFFIX:-${target_endian_el}}" - - # gcc ./configure flags - CT_ARCH_WITH_ARCH= - CT_ARCH_WITH_ABI= - CT_ARCH_WITH_CPU= - CT_ARCH_WITH_TUNE= - CT_ARCH_WITH_FPU= - CT_ARCH_WITH_FLOAT= - - # CFLAGS - case "${CT_ARCH_FLOAT_HW},${CT_ARCH_FLOAT_SW}" in - y,) CT_ARCH_FLOAT_CFLAG="-mhard-float" ;; - ,y) CT_ARCH_FLOAT_CFLAG="-msoft-float" ;; - esac - } CT_DoArchUClibcConfig() { diff --git a/scripts/build/arch/sh.sh b/scripts/build/arch/sh.sh index 59bc08a..27db4d2 100644 --- a/scripts/build/arch/sh.sh +++ b/scripts/build/arch/sh.sh @@ -4,36 +4,29 @@ CT_DoArchTupleValues () { # The architecture part of the tuple: CT_TARGET_ARCH="${CT_ARCH_SH_VARIANT}${CT_ARCH_SUFFIX:-${target_endian_eb}}" - # gcc ./configure flags - CT_ARCH_WITH_ARCH= - CT_ARCH_WITH_ABI= - CT_ARCH_WITH_CPU= - CT_ARCH_WITH_TUNE= - CT_ARCH_WITH_FPU= - CT_ARCH_WITH_FLOAT= - - # Endianness stuff + # Endianness stuff (uses non-standard CFLAGS). If both are compiled, let the + # compiler's default or multilib iterator be used. case "${CT_ARCH_ENDIAN}" in big) CT_ARCH_ENDIAN_CFLAG=-mb;; little) CT_ARCH_ENDIAN_CFLAG=-ml;; esac - # CFLAGS + # Instead of -m{soft,hard}-float, uses CPU type + CT_ARCH_FLOAT_CFLAG= case "${CT_ARCH_SH_VARIANT}" in sh3) CT_ARCH_ARCH_CFLAG=-m3;; sh4*) # softfp is not possible for SuperH, no need to test for it. case "${CT_ARCH_FLOAT}" in hard) - CT_ARCH_ARCH_CFLAG="-m4${CT_ARCH_SH_VARIANT##sh?}" + CT_ARCH_ARCH_CFLAG="-m4${CT_ARCH_SH_VARIANT##sh4}" ;; soft) - CT_ARCH_ARCH_CFLAG="-m4${CT_ARCH_SH_VARIANT##sh?}-nofpu" + CT_ARCH_ARCH_CFLAG="-m4${CT_ARCH_SH_VARIANT##sh4}-nofpu" ;; esac ;; esac - CT_ARCH_FLOAT_CFLAG= } CT_DoArchMultilibList() { @@ -81,6 +74,36 @@ CT_DoArchUClibcCflags() { for f in ${cflags}; do case "${f}" in + -ml) + CT_KconfigDisableOption "ARCH_BIG_ENDIAN" "${dst}" + CT_KconfigDisableOption "ARCH_WANTS_BIG_ENDIAN" "${dst}" + CT_KconfigEnableOption "ARCH_LITTLE_ENDIAN" "${dst}" + CT_KconfigEnableOption "ARCH_WANTS_LITTLE_ENDIAN" "${dst}" + ;; + -mb) + CT_KconfigEnableOption "ARCH_BIG_ENDIAN" "${dst}" + CT_KconfigEnableOption "ARCH_WANTS_BIG_ENDIAN" "${dst}" + CT_KconfigDisableOption "ARCH_LITTLE_ENDIAN" "${dst}" + CT_KconfigDisableOption "ARCH_WANTS_LITTLE_ENDIAN" "${dst}" + ;; + -m2|-m2a|-m2a-nofpu|-m3|-m4|-m4-nofpu|-m4a|-m4a-nofpu) + CT_KconfigDisableOption "CONFIG_SH2" "${cfg}" + CT_KconfigDisableOption "CONFIG_SH2A" "${cfg}" + CT_KconfigDisableOption "CONFIG_SH3" "${cfg}" + CT_KconfigDisableOption "CONFIG_SH4" "${cfg}" + CT_KconfigDisableOption "CONFIG_SH4A" "${cfg}" + CT_KconfigDisableOption "UCLIBC_HAS_FPU" "${cfg}" + case "${f}" in + -m2) + CT_KconfigEnableOption "CONFIG_SH2" "${cfg}" + ;; + -m2a) + CT_KconfigEnableOption "CONFIG_SH2A" "${cfg}" + CT_KconfigEnableOption "UCLIBC_HAS_FPU" "${cfg}" + ;; + -m2a-nofpu) + CT_KconfigEnableOption "CONFIG_SH2A" "${cfg}" + ;; -m3) CT_KconfigEnableOption "CONFIG_SH3" "${cfg}" ;; @@ -90,7 +113,6 @@ CT_DoArchUClibcCflags() { ;; -m4-nofpu) CT_KconfigEnableOption "CONFIG_SH4" "${cfg}" - CT_KconfigDisableOption "UCLIBC_HAS_FPU" "${cfg}" ;; -m4a) CT_KconfigEnableOption "CONFIG_SH4A" "${cfg}" @@ -98,8 +120,9 @@ CT_DoArchUClibcCflags() { ;; -m4a-nofpu) CT_KconfigEnableOption "CONFIG_SH4A" "${cfg}" - CT_KconfigDisableOption "UCLIBC_HAS_FPU" "${cfg}" ;; + esac + ;; esac done } diff --git a/scripts/build/cc/gcc.sh b/scripts/build/cc/gcc.sh index 2609873..6e9036f 100644 --- a/scripts/build/cc/gcc.sh +++ b/scripts/build/cc/gcc.sh @@ -350,7 +350,7 @@ do_gcc_core_backend() { CT_DoExecLog ALL cp -a "${CT_HEADERS_DIR}" "${prefix}/${CT_TARGET}/include" fi - for tmp in ARCH ABI CPU TUNE FPU FLOAT; do + for tmp in ARCH ABI CPU TUNE FPU FLOAT ENDIAN; do eval tmp="\${CT_ARCH_WITH_${tmp}}" if [ -n "${tmp}" ]; then extra_config+=("${tmp}") diff --git a/scripts/build/libc/uClibc.sh b/scripts/build/libc/uClibc.sh index af07888..599283e 100644 --- a/scripts/build/libc/uClibc.sh +++ b/scripts/build/libc/uClibc.sh @@ -224,13 +224,13 @@ manage_uClibc_config() { CT_DoExecLog ALL cp "${src}" "${dst}" case "${CT_ARCH_ENDIAN}" in - big) + big|big,little) CT_KconfigDisableOption "ARCH_LITTLE_ENDIAN" "${dst}" CT_KconfigDisableOption "ARCH_WANTS_LITTLE_ENDIAN" "${dst}" CT_KconfigEnableOption "ARCH_BIG_ENDIAN" "${dst}" CT_KconfigEnableOption "ARCH_WANTS_BIG_ENDIAN" "${dst}" ;; - little) + little|little,big) CT_KconfigDisableOption "ARCH_BIG_ENDIAN" "${dst}" CT_KconfigDisableOption "ARCH_WANTS_BIG_ENDIAN" "${dst}" CT_KconfigEnableOption "ARCH_LITTLE_ENDIAN" "${dst}" |