diff options
author | Alexey Neyman <stilor@att.net> | 2017-08-29 15:36:52 -0700 |
---|---|---|
committer | Alexey Neyman <stilor@att.net> | 2017-09-03 12:11:23 -0700 |
commit | 413f5f610012ea24db9910084ea3b40db808147b (patch) | |
tree | 75e9c879151cfa7cd476fc43b1182ca63655813f /config/arch | |
parent | 1da3cc59df185144cb01fdd32a0dc1ca417d9106 (diff) | |
download | crosstool-ng-413f5f610012ea24db9910084ea3b40db808147b.tar.gz crosstool-ng-413f5f610012ea24db9910084ea3b40db808147b.tar.bz2 crosstool-ng-413f5f610012ea24db9910084ea3b40db808147b.zip |
Super-H multilib toolchain fixes
1. On SuperH, configuring GCC with explicit variant of the CPU
(like "sh4") limits the default set of multilibs to just that CPU
and requires --with-multilib-list to change. Allow for "unspecified"
variant, so that we can defer to GCC to determine the list.
2. Support toolchains with both endiannesses at the same time.
3. Add a SuperH/newlib sample
4. Add more flags processing for uClibc
Signed-off-by: Alexey Neyman <stilor@att.net>
Diffstat (limited to 'config/arch')
-rw-r--r-- | config/arch/arm.in | 2 | ||||
-rw-r--r-- | config/arch/microblaze.in | 4 | ||||
-rw-r--r-- | config/arch/mips.in | 2 | ||||
-rw-r--r-- | config/arch/powerpc.in | 2 | ||||
-rw-r--r-- | config/arch/sh.in | 43 | ||||
-rw-r--r-- | config/arch/xtensa.in | 2 |
6 files changed, 47 insertions, 8 deletions
diff --git a/config/arch/arm.in b/config/arch/arm.in index 269310d6..72c329f0 100644 --- a/config/arch/arm.in +++ b/config/arch/arm.in @@ -5,7 +5,7 @@ ## select ARCH_DEFAULT_32 ## select ARCH_SUPPORTS_BOTH_MMU ## select ARCH_DEFAULT_HAS_MMU -## select ARCH_SUPPORTS_BOTH_ENDIAN +## select ARCH_SUPPORTS_EITHER_ENDIAN ## select ARCH_DEFAULT_LE ## select ARCH_SUPPORTS_WITH_ARCH ## select ARCH_SUPPORTS_WITH_CPU diff --git a/config/arch/microblaze.in b/config/arch/microblaze.in index d2360077..8c73b00a 100644 --- a/config/arch/microblaze.in +++ b/config/arch/microblaze.in @@ -2,9 +2,9 @@ ## depends on EXPERIMENTAL ## -## select ARCH_SUPPORT_ARCH +## select ARCH_SUPPORTS_WITH_CPU ## select ARCH_FLOAT_SW -## select ARCH_SUPPORTS_BOTH_ENDIAN +## select ARCH_SUPPORTS_EITHER_ENDIAN ## select ARCH_DEFAULT_BE ## select ARCH_SUPPORTS_BOTH_MMU ## select ARCH_DEFAULT_HAS_MMU diff --git a/config/arch/mips.in b/config/arch/mips.in index 850fe113..8cc68dc1 100644 --- a/config/arch/mips.in +++ b/config/arch/mips.in @@ -4,7 +4,7 @@ ## select ARCH_SUPPORTS_64 ## select ARCH_DEFAULT_32 ## select ARCH_USE_MMU -## select ARCH_SUPPORTS_BOTH_ENDIAN +## select ARCH_SUPPORTS_EITHER_ENDIAN ## select ARCH_DEFAULT_BE ## select ARCH_SUPPORTS_WITH_ARCH ## select ARCH_SUPPORTS_WITH_TUNE diff --git a/config/arch/powerpc.in b/config/arch/powerpc.in index 276438f4..ae10e2db 100644 --- a/config/arch/powerpc.in +++ b/config/arch/powerpc.in @@ -3,7 +3,7 @@ ## select ARCH_SUPPORTS_32 ## select ARCH_SUPPORTS_64 ## select ARCH_DEFAULT_32 -## select ARCH_SUPPORTS_BOTH_ENDIAN +## select ARCH_SUPPORTS_EITHER_ENDIAN ## select ARCH_DEFAULT_BE ## select ARCH_USE_MMU ## select ARCH_SUPPORTS_WITH_ABI diff --git a/config/arch/sh.in b/config/arch/sh.in index be525b42..bda660cb 100644 --- a/config/arch/sh.in +++ b/config/arch/sh.in @@ -3,9 +3,11 @@ ## select ARCH_SUPPORTS_32 ## select ARCH_DEFAULT_32 ## select ARCH_USE_MMU -## select ARCH_SUPPORTS_BOTH_ENDIAN -## select ARCH_DEFAULT_LE +## select ARCH_SUPPORTS_EITHER_ENDIAN +## select ARCH_DEFAULT_LE_BE ## select ARCH_REQUIRES_MULTILIB +## select ARCH_SUPPORTS_WITH_ENDIAN +## select ARCH_SUPPORTS_WITH_CPU ## ## help The Super-H architecture, as defined by: ## help http://www.renesas.com/fmwk.jsp?cnt=superh_family_landing.jsp&fp=/products/mpumcu/superh_family/ @@ -14,10 +16,41 @@ choice bool prompt "Variant" +# GCC supports both endiannesses even if a specific CPU is selected (so long +# as that CPU can be both BE/LE), but the binutils (or specifically, ld) +# configures for both endiannesses only if sh-*-linux target is selected. +config ARCH_SH_SH + bool + prompt "unspecified" + select ARCH_SUPPORTS_BOTH_ENDIAN + help + If left unspecified, GCC will determine the set of multilibs to compile automatically + based on selected endianness, FPU mode and OS. + +config ARCH_SH_SH1 + bool + prompt "sh1" + +config ARCH_SH_SH2 + bool + prompt "sh2" + +config ARCH_SH_SH2E + bool + prompt "sh2e" + +config ARCH_SH_SH2A + bool + prompt "sh2a" + config ARCH_SH_SH3 bool prompt "sh3" +config ARCH_SH_SH3E + bool + prompt "sh3e" + config ARCH_SH_SH4 bool prompt "sh4" @@ -30,6 +63,12 @@ endchoice config ARCH_SH_VARIANT string + default "sh" if ARCH_SH_SH + default "sh1" if ARCH_SH_SH1 + default "sh2" if ARCH_SH_SH2 + default "sh2e" if ARCH_SH_SH2E + default "sh2a" if ARCH_SH_SH2A default "sh3" if ARCH_SH_SH3 + default "sh3e" if ARCH_SH_SH3E default "sh4" if ARCH_SH_SH4 default "sh4a" if ARCH_SH_SH4A diff --git a/config/arch/xtensa.in b/config/arch/xtensa.in index bf4fcb67..a376523a 100644 --- a/config/arch/xtensa.in +++ b/config/arch/xtensa.in @@ -1,7 +1,7 @@ # xtensa specific configuration file ## select ARCH_SUPPORTS_32 -## select ARCH_SUPPORTS_BOTH_ENDIAN +## select ARCH_SUPPORTS_EITHER_ENDIAN ## select ARCH_DEFAULT_LE ## select ARCH_SUPPORTS_BOTH_MMU ## select ARCH_DEFAULT_HAS_MMU |