summaryrefslogtreecommitdiff
path: root/config/arch
diff options
context:
space:
mode:
Diffstat (limited to 'config/arch')
-rw-r--r--config/arch/alpha.in62
-rw-r--r--config/arch/alpha.in.256
-rw-r--r--config/arch/arc.in16
-rw-r--r--config/arch/arm.in102
-rw-r--r--config/arch/arm.in.293
-rw-r--r--config/arch/avr.in1
-rw-r--r--config/arch/c6x.in18
-rw-r--r--config/arch/m68k.in2
-rw-r--r--config/arch/microblaze.in10
-rw-r--r--config/arch/mips.in42
-rw-r--r--config/arch/mips.in.238
-rw-r--r--config/arch/moxie.in11
-rw-r--r--config/arch/msp430.in10
-rw-r--r--config/arch/nios2.in5
-rw-r--r--config/arch/powerpc.in51
-rw-r--r--config/arch/powerpc.in.242
-rw-r--r--config/arch/pru.in8
-rw-r--r--config/arch/riscv.in19
-rw-r--r--config/arch/s390.in1
-rw-r--r--config/arch/sh.in70
-rw-r--r--config/arch/sh.in.225
-rw-r--r--config/arch/sparc.in6
-rw-r--r--config/arch/x86.in2
-rw-r--r--config/arch/xtensa.in19
-rw-r--r--config/arch/xtensa.in.233
25 files changed, 436 insertions, 306 deletions
diff --git a/config/arch/alpha.in b/config/arch/alpha.in
index 1c7ec96..c5d76e4 100644
--- a/config/arch/alpha.in
+++ b/config/arch/alpha.in
@@ -1,9 +1,65 @@
# Alpha specific configuration file
-## select ARCH_SUPPORTS_32
-## select ARCH_DEFAULT_32
+## no-package
+## select ARCH_SUPPORTS_64
+## select ARCH_DEFAULT_64
## select ARCH_USE_MMU
## select ARCH_SUPPORTS_WITH_CPU
## select ARCH_SUPPORTS_WITH_TUNE
-##
+
## help The Alpha architecture.
+
+choice
+ bool
+ prompt "Variant"
+
+config ARCH_ALPHA_EV4
+ bool
+ prompt "EV4"
+
+config ARCH_ALPHA_EV45
+ bool
+ prompt "EV45"
+
+config ARCH_ALPHA_EV5
+ bool
+ prompt "EV5"
+
+config ARCH_ALPHA_EV56
+ bool
+ prompt "EV56"
+
+config ARCH_ALPHA_EV6
+ bool
+ prompt "EV6"
+
+config ARCH_ALPHA_EV67
+ bool
+ prompt "EV67"
+
+endchoice
+
+config ARCH_ALPHA_VARIANT
+ string
+ default "ev4" if ARCH_ALPHA_EV4
+ default "ev45" if ARCH_ALPHA_EV45
+ default "ev5" if ARCH_ALPHA_EV5
+ default "ev56" if ARCH_ALPHA_EV56
+ default "ev6" if ARCH_ALPHA_EV6
+ default "ev67" if ARCH_ALPHA_EV67
+
+config ARCH_CPU
+ default "ev4" if ARCH_ALPHA_EV4
+ default "ev45" if ARCH_ALPHA_EV45
+ default "ev5" if ARCH_ALPHA_EV5
+ default "ev56" if ARCH_ALPHA_EV56
+ default "ev6" if ARCH_ALPHA_EV6
+ default "ev67" if ARCH_ALPHA_EV67
+
+config ARCH_TUNE
+ default "ev4" if ARCH_ALPHA_EV4
+ default "ev45" if ARCH_ALPHA_EV45
+ default "ev5" if ARCH_ALPHA_EV5
+ default "ev56" if ARCH_ALPHA_EV56
+ default "ev6" if ARCH_ALPHA_EV6
+ default "ev67" if ARCH_ALPHA_EV67
diff --git a/config/arch/alpha.in.2 b/config/arch/alpha.in.2
deleted file mode 100644
index aa52624..0000000
--- a/config/arch/alpha.in.2
+++ /dev/null
@@ -1,56 +0,0 @@
-# Alpha specific configuration file
-
-choice
- bool
- prompt "Variant"
-
-config ARCH_ALPHA_EV4
- bool
- prompt "EV4"
-
-config ARCH_ALPHA_EV45
- bool
- prompt "EV45"
-
-config ARCH_ALPHA_EV5
- bool
- prompt "EV5"
-
-config ARCH_ALPHA_EV56
- bool
- prompt "EV56"
-
-config ARCH_ALPHA_EV6
- bool
- prompt "EV6"
-
-config ARCH_ALPHA_EV67
- bool
- prompt "EV67"
-
-endchoice
-
-config ARCH_ALPHA_VARIANT
- string
- default "ev4" if ARCH_ALPHA_EV4
- default "ev45" if ARCH_ALPHA_EV45
- default "ev5" if ARCH_ALPHA_EV5
- default "ev56" if ARCH_ALPHA_EV56
- default "ev6" if ARCH_ALPHA_EV6
- default "ev67" if ARCH_ALPHA_EV67
-
-config ARCH_CPU
- default "ev4" if ARCH_ALPHA_EV4
- default "ev45" if ARCH_ALPHA_EV45
- default "ev5" if ARCH_ALPHA_EV5
- default "ev56" if ARCH_ALPHA_EV56
- default "ev6" if ARCH_ALPHA_EV6
- default "ev67" if ARCH_ALPHA_EV67
-
-config ARCH_TUNE
- default "ev4" if ARCH_ALPHA_EV4
- default "ev45" if ARCH_ALPHA_EV45
- default "ev5" if ARCH_ALPHA_EV5
- default "ev56" if ARCH_ALPHA_EV56
- default "ev6" if ARCH_ALPHA_EV6
- default "ev67" if ARCH_ALPHA_EV67
diff --git a/config/arch/arc.in b/config/arch/arc.in
new file mode 100644
index 0000000..d7c6e04
--- /dev/null
+++ b/config/arch/arc.in
@@ -0,0 +1,16 @@
+# ARC specific configuration file
+
+## no-package
+## select ARCH_SUPPORTS_32
+## select ARCH_DEFAULT_32
+## select ARCH_SUPPORTS_BOTH_MMU
+## select ARCH_DEFAULT_HAS_MMU
+## select ARCH_SUPPORTS_EITHER_ENDIAN
+## select ARCH_DEFAULT_LE
+## select ARCH_SUPPORTS_WITH_CPU
+## select GCC_REQUIRE_7_or_later
+## select BINUTILS_REQUIRE_2_30_or_later
+## select LINUX_REQUIRE_4_8_or_later if KERNEL_LINUX
+##
+## help The Synopsys DesignWare ARC architecture, see more info here:
+## help https://www.synopsys.com/designware-ip/processor-solutions/arc-processors.html
diff --git a/config/arch/arm.in b/config/arch/arm.in
index 5dbc717..07ad5ed 100644
--- a/config/arch/arm.in
+++ b/config/arch/arm.in
@@ -1,11 +1,13 @@
# ARM specific configuration file
+## no-package
## select ARCH_SUPPORTS_32
## select ARCH_SUPPORTS_64
## select ARCH_DEFAULT_32
## select ARCH_SUPPORTS_BOTH_MMU
## select ARCH_DEFAULT_HAS_MMU
-## select ARCH_SUPPORTS_BOTH_ENDIAN
+## select ARCH_SUPPORTS_FLAT_FORMAT
+## select ARCH_SUPPORTS_EITHER_ENDIAN
## select ARCH_DEFAULT_LE
## select ARCH_SUPPORTS_WITH_ARCH
## select ARCH_SUPPORTS_WITH_CPU
@@ -14,6 +16,102 @@
## select ARCH_SUPPORTS_WITH_FLOAT if ARCH_32
## select ARCH_SUPPORTS_WITH_FPU if ARCH_32
## select ARCH_SUPPORTS_SOFTFP if ARCH_32
-##
+## select LINUX_REQUIRE_3_7_or_later if ARCH_64 && KERNEL_LINUX
+
## help The ARM architecture, as defined by:
## help http://www.arm.com/
+
+if ARCH_32
+config ARCH_ARM_MODE
+ string
+ default "arm" if ARCH_ARM_MODE_ARM
+ default "thumb" if ARCH_ARM_MODE_THUMB
+
+choice
+ bool
+ prompt "Default instruction set mode"
+ default ARCH_ARM_MODE_ARM
+
+config ARCH_ARM_MODE_ARM
+ bool
+ prompt "arm"
+ help
+ Defaults to emitting instructions in the ARM mode.
+
+config ARCH_ARM_MODE_THUMB
+ bool
+ prompt "thumb"
+ help
+ Defaults to emitting instructions in the THUMB mode.
+
+endchoice
+
+config ARCH_ARM_INTERWORKING
+ bool
+ prompt "Use Thumb-interworking (READ HELP)"
+ help
+ Excerpt from the gcc manual:
+
+ > Generate code which supports calling between the ARM and Thumb
+ > instruction sets. Without this option the two instruction sets
+ > cannot be reliably used inside one program. The default is
+ > [not to use interwork], since slightly larger code is generated
+ > when [interwork] is specified.
+
+ NOTE: Interworking in crosstool-NG is not well-tested. Use at your
+ own risks, and report success and/or failure.
+
+# Until we only support EABI:
+config ARCH_ARM_ABI_OK
+ def_bool y
+ depends on ! ARCH_ARM_EABI
+ select ARCH_SUPPORTS_WITH_ABI
+
+# Little trick to force EABI *and* always show the prompt
+config ARCH_ARM_EABI_FORCE
+ bool
+ default y if ! OBSOLETE
+ select ARCH_ARM_EABI
+
+config ARCH_ARM_EABI
+ bool
+ prompt "Use EABI"
+ default y
+ help
+ Set up the toolchain so that it generates EABI-compliant binaries.
+
+ If you say 'n' here, then the toolchain will generate OABI binaries.
+ OABI has long been deprecated, and is now considered legacy.
+
+config ARCH_ARM_TUPLE_USE_EABIHF
+ bool
+ prompt "append 'hf' to the tuple (EXPERIMENTAL)"
+ depends on ARCH_FLOAT_HW
+ depends on ARCH_ARM_EABI # Until we only support that...
+ default y
+ help
+ Is you say 'y' here, then the tuple for the toolchain will end
+ up with *eabihf, instead of the usual *eabi.
+
+ *eabihf is used to denote that the toolchain *is* using the
+ hard-float ABI, while *eabi is just an indication of using the
+ soft-float ABI.
+
+ Ie. all one can say is: *eabihf ⊢ hard-float ABI
+
+ Saying 'n' here does *not* impact the ability of the toolchain to
+ generate hard-float instructions with the hard-float ABI. It is a
+ purely cosmetic thing, used by distros to differentiate their
+ hard-float-ABI-using ports from their soft-float-ABI-using ports.
+ (eg. Debian Wheezy and above).
+
+ This is an option, as not all versions of gcc/binutils do support
+ such tuple, and fail to build with *eabihf. Stock gcc version up
+ to, and including 4.7.2 have an issue or another with *eabihf.
+
+ This option is here for the future.
+
+ Say 'n', unless you are trying to fix gcc to properly recognise
+ the *eabihf tuples.
+
+endif
diff --git a/config/arch/arm.in.2 b/config/arch/arm.in.2
deleted file mode 100644
index a53ad33..0000000
--- a/config/arch/arm.in.2
+++ /dev/null
@@ -1,93 +0,0 @@
-# ARM specific configuration file
-
-config ARCH_ARM_MODE
- string
- default "arm" if ARCH_ARM_MODE_ARM
- default "thumb" if ARCH_ARM_MODE_THUMB
-
-choice
- bool
- prompt "Default instruction set mode"
- default ARCH_ARM_MODE_ARM
-
-config ARCH_ARM_MODE_ARM
- bool
- prompt "arm"
- help
- Defaults to emitting instructions in the ARM mode.
-
-config ARCH_ARM_MODE_THUMB
- bool
- prompt "thumb"
- help
- Defaults to emitting instructions in the THUMB mode.
-
-endchoice
-
-config ARCH_ARM_INTERWORKING
- bool
- prompt "Use Thumb-interworking (READ HELP)"
- help
- Excerpt from the gcc manual:
-
- > Generate code which supports calling between the ARM and Thumb
- > instruction sets. Without this option the two instruction sets
- > cannot be reliably used inside one program. The default is
- > [not to use interwork], since slightly larger code is generated
- > when [interwork] is specified.
-
- NOTE: Interworking in crosstool-NG is not sell-tested. Use at your
- own risks, and report success and/or failure.
-
-# Until we only support EABI:
-config ARCH_ARM_ABI_OK
- def_bool y
- depends on ! ARCH_ARM_EABI
- select ARCH_SUPPORTS_WITH_ABI
-
-# Little trick to force EABI *and* always show the prompt
-config ARCH_ARM_EABI_FORCE
- bool
- default y if ! OBSOLETE
- select ARCH_ARM_EABI
-
-config ARCH_ARM_EABI
- bool
- prompt "Use EABI"
- default y
- help
- Set up the toolchain so that it generates EABI-compliant binaries.
-
- If you say 'n' here, then the toolchain will generate OABI binaries.
- OABI has long been deprecated, and is now considered legacy.
-
-config ARCH_ARM_TUPLE_USE_EABIHF
- bool
- prompt "append 'hf' to the tuple (EXPERIMENTAL)"
- depends on ARCH_FLOAT_HW
- depends on ARCH_ARM_EABI # Until we only support that...
- default y
- help
- Is you say 'y' here, then the tuple for the toolchain will end
- up with *eabihf, instead of the usual *eabi.
-
- *eabihf is used to denote that the toolchain *is* using the
- hard-float ABI, while *eabi is just an indication of using the
- soft-float ABI.
-
- Ie. all one can say is: *eabihf ⊢ hard-float ABI
-
- Saying 'n' here does *not* impact the ability of the toolchain to
- generate hard-float instructions with the hard-float ABI. It is a
- purely cosmetic thing, used by distros to differentiate their
- hard-float-ABI-using ports from their soft-float-ABI-using ports.
- (eg. Debian Wheezy and above).
-
- This is an option, as not all versions of gcc/binutils do support
- such tuple, and fail to build with *eabihf. Stock gcc version up
- to, and including 4.7.2 have an issue or another with *eabihf.
-
- This option is here for the future.
-
- Say 'n', unless you are trying to fix gcc to properly recognise
- the *eabihf tuples.
diff --git a/config/arch/avr.in b/config/arch/avr.in
index cf8e9af..ddf0cb6 100644
--- a/config/arch/avr.in
+++ b/config/arch/avr.in
@@ -1,5 +1,6 @@
# AVR specific config options
+## no-package
## select ARCH_SUPPORTS_8
## select ARCH_DEFAULT_8
## select ARCH_REQUIRES_MULTILIB
diff --git a/config/arch/c6x.in b/config/arch/c6x.in
new file mode 100644
index 0000000..98589cc
--- /dev/null
+++ b/config/arch/c6x.in
@@ -0,0 +1,18 @@
+# c6x specific configuration file
+
+## no-package
+## select ARCH_SUPPORTS_32
+## select ARCH_DEFAULT_32
+## select ARCH_SUPPORTS_EITHER_ENDIAN
+## select ARCH_DEFAULT_LE
+## select ARCH_SUPPORTS_FLAT_FORMAT
+## select ARCH_SUPPORTS_WITH_CPU
+## select LINUX_REQUIRE_older_than_5_12
+## select LINUX_REQUIRE_3_7_or_later
+## depends on EXPERIMENTAL
+##
+## help The TI C6x (TMS320C6000) architecture
+## help https://www.ti.com/processors/digital-signal-processors
+## help For linux, kernel must be 3.7 or later (or custom) but not newer
+## help than 5.11.x (support for C6x was removed in 5.12).
+
diff --git a/config/arch/m68k.in b/config/arch/m68k.in
index 6c76e78..d21de00 100644
--- a/config/arch/m68k.in
+++ b/config/arch/m68k.in
@@ -1,8 +1,10 @@
# m68k specific configuration file
+## no-package
## select ARCH_SUPPORTS_32
## select ARCH_DEFAULT_32
## select ARCH_DEFAULT_BE
+## select ARCH_SUPPORTS_FLAT_FORMAT
## select ARCH_SUPPORTS_WITH_CPU
##
## help The m68k architecture
diff --git a/config/arch/microblaze.in b/config/arch/microblaze.in
index d236007..c8496ee 100644
--- a/config/arch/microblaze.in
+++ b/config/arch/microblaze.in
@@ -1,22 +1,24 @@
# MicroBlaze specific config options
+## no-package
## 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
+## select ARCH_SUPPORTS_FLAT_FORMAT
##
## help The MicroBlaze architecture, as defined by:
## help http://www.xilinx.com/
-## help
+## help
## help Upstream projects do not currently provide
## help full support for the microblaze architecture
## help and as such, this is marked as EXPERIMENTAL
## help for CT-NG.
-## help
+## help
## help Support is being added for a modern gcc,
## help binutils and gdb along with nptl threading
## help in glibc for microblaze.
diff --git a/config/arch/mips.in b/config/arch/mips.in
index 1168f5e..ad8b1c6 100644
--- a/config/arch/mips.in
+++ b/config/arch/mips.in
@@ -1,14 +1,52 @@
# MIPS specific config options
+## no-package
## select ARCH_SUPPORTS_32
## 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
## select ARCH_SUPPORTS_WITH_FLOAT
-##
+
## help The MIPS architecture, as defined by:
## help http://www.mips.com/
+
+choice
+ bool
+ prompt "ABI"
+
+config ARCH_mips_o32
+ bool
+ prompt "o32"
+ depends on (ARCH_32 || MULTILIB)
+ help
+ This is the -mabi=32 gcc option.
+
+config ARCH_mips_n32
+ bool
+ prompt "n32"
+ depends on ARCH_64
+ help
+ This is the -mabi=n32 gcc option.
+
+config ARCH_mips_n64
+ bool
+ prompt "n64"
+ depends on ARCH_64
+ help
+ This is the -mabi=64 gcc option.
+
+# Not supported on Linux:
+# o64 : seems related to *BSD
+# eabi : seems related to bare-metal
+
+endchoice
+
+config ARCH_mips_ABI
+ string
+ default "32" if ARCH_mips_o32
+ default "n32" if ARCH_mips_n32
+ default "64" if ARCH_mips_n64
diff --git a/config/arch/mips.in.2 b/config/arch/mips.in.2
deleted file mode 100644
index 35c60e0..0000000
--- a/config/arch/mips.in.2
+++ /dev/null
@@ -1,38 +0,0 @@
-# MIPS specific config options
-
-choice
- bool
- prompt "ABI"
-
-config ARCH_mips_o32
- bool
- prompt "o32"
- depends on (ARCH_32 || MULTILIB)
- help
- This is the -mabi=32 gcc option.
-
-config ARCH_mips_n32
- bool
- prompt "n32"
- depends on ARCH_64
- help
- This is the -mabi=n32 gcc option.
-
-config ARCH_mips_n64
- bool
- prompt "n64"
- depends on ARCH_64
- help
- This is the -mabi=64 gcc option.
-
-# Not supported on Linux:
-# o64 : seems related to *BSD
-# eabi : seems related to bare-metal
-
-endchoice
-
-config ARCH_mips_ABI
- string
- default "32" if ARCH_mips_o32
- default "n32" if ARCH_mips_n32
- default "64" if ARCH_mips_n64
diff --git a/config/arch/moxie.in b/config/arch/moxie.in
new file mode 100644
index 0000000..8d8bb22
--- /dev/null
+++ b/config/arch/moxie.in
@@ -0,0 +1,11 @@
+# Moxie soft-core architecture
+
+## no-package
+## select ARCH_SUPPORTS_32
+## select ARCH_DEFAULT_32
+## select ARCH_SUPPORTS_EITHER_ENDIAN
+## select ARCH_DEFAULT_BE
+## depends on EXPERIMENTAL
+
+## help The Moxie soft-core architecture, as defined by:
+## help http://moxielogic.org/blog/pages/architecture.html
diff --git a/config/arch/msp430.in b/config/arch/msp430.in
new file mode 100644
index 0000000..320eca8
--- /dev/null
+++ b/config/arch/msp430.in
@@ -0,0 +1,10 @@
+# MSP430 specific config options
+
+## no-package
+## select ARCH_SUPPORTS_16
+## select ARCH_DEFAULT_16
+## select ARCH_REQUIRES_MULTILIB
+## depends on EXPERIMENTAL
+##
+## help The 16-bit MSP430 architecture, as defined by:
+## help http://www.ti.com/lsds/ti/microcontrollers-16-bit-32-bit/msp/overview.page?HQS=msp430
diff --git a/config/arch/nios2.in b/config/arch/nios2.in
index 2674bfd..de28246 100644
--- a/config/arch/nios2.in
+++ b/config/arch/nios2.in
@@ -1,9 +1,12 @@
# NIOS232 specific configuration file
+## no-package
## select ARCH_SUPPORTS_32
## select ARCH_DEFAULT_32
+## select ARCH_SUPPORTS_BOTH_MMU
## select ARCH_DEFAULT_LE
-## select ARCH_SUPPORTS_WITH_CPU
+## select ARCH_SUPPORTS_WITH_ARCH
+## select ARCH_SUPPORTS_FLAT_FORMAT
##
## help The NIOS2 architecture, as defined by:
## help http://www.altera.com
diff --git a/config/arch/powerpc.in b/config/arch/powerpc.in
index 6dfc742..bb75ac0 100644
--- a/config/arch/powerpc.in
+++ b/config/arch/powerpc.in
@@ -1,15 +1,62 @@
-# powerpc specific configuration file
+# Powerpc specific configuration file
+## no-package
## 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
## select ARCH_SUPPORTS_WITH_CPU
## select ARCH_SUPPORTS_WITH_TUNE
## select ARCH_SUPPORTS_WITH_FLOAT
+## select ARCH_SUPPORTS_WITH_32_64
##
## help The PowerPC architecture, as defined by:
## help http://www.ibm.com/developerworks/eserver/articles/archguide.html
+
+config ARCH_powerpc_ABI
+ string
+ default "" if ARCH_powerpc_ABI_DEFAULT
+ default "eabi" if ARCH_powerpc_ABI_EABI
+ default "spe" if ARCH_powerpc_ABI_SPE
+
+choice
+ bool
+ prompt "ABI"
+ default ARCH_powerpc_ABI_DEFAULT
+
+config ARCH_powerpc_ABI_DEFAULT
+ bool
+ prompt "default"
+ help
+ The default ABI (System V.4).
+
+config ARCH_powerpc_ABI_EABI
+ bool
+ prompt "EABI"
+ depends on BARE_METAL
+ help
+ The Embedded ABI (stack alignment of 8 bytes, etc).
+
+config ARCH_powerpc_ABI_SPE
+ bool
+ prompt "SPE"
+ select GCC_REQUIRE_older_than_9
+ select GLIBC_REQUIRE_2_29_or_older
+ help
+ Add support for the Signal Processing Engine. This will set up
+ the toolchain so that it supports the SPE ABI extensions. This
+ mainly targets Freescale e500 processors.
+
+ Setting this option will append "spe" to the end of your target
+ tuple name (e.g., powerpc-e500v2-linux-gnuspe) so that the gcc
+ configure/build system will know to include SPE ABI support. It
+ will also automatically add "-mabi=spe -mspe" to your TARGET_CFLAGS,
+ and "--enable-e500_double" to your CC_EXTRA_CONFIG_ARRAY, so you
+ do not need to explicitly add them.
+
+ Support for SPE ABI has been removed in GCC 9.
+
+endchoice
diff --git a/config/arch/powerpc.in.2 b/config/arch/powerpc.in.2
deleted file mode 100644
index 2cbc370..0000000
--- a/config/arch/powerpc.in.2
+++ /dev/null
@@ -1,42 +0,0 @@
-# powerpc specific configuration file
-
-config ARCH_powerpc_ABI
- string
- default "" if ARCH_powerpc_ABI_DEFAULT
- default "eabi" if ARCH_powerpc_ABI_EABI
- default "spe" if ARCH_powerpc_ABI_SPE
-
-choice
- bool
- prompt "ABI"
- default ARCH_powerpc_ABI_DEFAULT
-
-config ARCH_powerpc_ABI_DEFAULT
- bool
- prompt "default"
- help
- The default ABI (System V.4).
-
-config ARCH_powerpc_ABI_EABI
- bool
- prompt "EABI"
- depends on BARE_METAL
- help
- The Embedded ABI (stack alignment of 8 bytes, etc).
-
-config ARCH_powerpc_ABI_SPE
- bool
- prompt "SPE"
- help
- Add support for the Signal Processing Engine. This will set up
- the toolchain so that it supports the SPE ABI extensions. This
- mainly targets Freescale e500 processors.
-
- Setting this option will append "spe" to the end of your target
- tuple name (e.g., powerpc-e500v2-linux-gnuspe) so that the gcc
- configure/build system will know to include SPE ABI support. It
- will also automatically add "-mabi=spe -mspe" to your TARGET_CFLAGS,
- and "--enable-e500_double" to your CC_EXTRA_CONFIG_ARRAY, so you
- do not need to explicitly add them.
-
-endchoice
diff --git a/config/arch/pru.in b/config/arch/pru.in
new file mode 100644
index 0000000..f26dc7a
--- /dev/null
+++ b/config/arch/pru.in
@@ -0,0 +1,8 @@
+# PRU specific config options
+
+## no-package
+## select ARCH_SUPPORTS_8
+## select ARCH_DEFAULT_8
+##
+## help The TI PRU core, as defined by:
+## help http://bbb.io/pru
diff --git a/config/arch/riscv.in b/config/arch/riscv.in
new file mode 100644
index 0000000..6b98520
--- /dev/null
+++ b/config/arch/riscv.in
@@ -0,0 +1,19 @@
+# RISC-V specific config options
+
+## no-package
+## depends on EXPERIMENTAL
+##
+## select ARCH_SUPPORTS_32
+## select ARCH_SUPPORTS_64
+## select ARCH_DEFAULT_32
+## select ARCH_SUPPORTS_BOTH_MMU
+## select ARCH_SUPPORTS_WITH_ABI
+## select ARCH_SUPPORTS_WITH_ARCH
+## select ARCH_SUPPORTS_WITH_TUNE
+## select GCC_REQUIRE_7_or_later
+## select BINUTILS_REQUIRE_2_28_or_later
+## select GDB_REQUIRE_8_0_or_later if DEBUG_GDB
+## select GLIBC_REQUIRE_2_29_or_later if LIBC_GLIBC
+
+## help The RISC-V architecture, as defined by:
+## help http://www.riscv.org/
diff --git a/config/arch/s390.in b/config/arch/s390.in
index 00bc879..64107b6 100644
--- a/config/arch/s390.in
+++ b/config/arch/s390.in
@@ -1,5 +1,6 @@
# s390 specific config options
+## no-package
## select ARCH_SUPPORTS_32
## select ARCH_SUPPORTS_64
## select ARCH_DEFAULT_32
diff --git a/config/arch/sh.in b/config/arch/sh.in
index 60de313..ff2ec14 100644
--- a/config/arch/sh.in
+++ b/config/arch/sh.in
@@ -1,11 +1,77 @@
# Super-H specific configuration file
+## no-package
## select ARCH_SUPPORTS_32
## select ARCH_DEFAULT_32
-## select ARCH_USE_MMU
-## select ARCH_SUPPORTS_BOTH_ENDIAN
+## select ARCH_SUPPORTS_BOTH_MMU
+## select ARCH_DEFAULT_HAS_MMU
+## select ARCH_SUPPORTS_FLAT_FORMAT
+## select ARCH_SUPPORTS_EITHER_ENDIAN
## select ARCH_DEFAULT_LE
## select ARCH_REQUIRES_MULTILIB
+## select ARCH_SUPPORTS_WITH_ENDIAN
##
## 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/
+
+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
+ select ARCH_SUPPORTS_WITH_CPU
+ 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"
+
+config ARCH_SH_SH4A
+ bool
+ prompt "sh4a"
+
+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/sh.in.2 b/config/arch/sh.in.2
deleted file mode 100644
index 82856ee..0000000
--- a/config/arch/sh.in.2
+++ /dev/null
@@ -1,25 +0,0 @@
-# Super-H specific configuration file
-
-choice
- bool
- prompt "Variant"
-
-config ARCH_SH_SH3
- bool
- prompt "sh3"
-
-config ARCH_SH_SH4
- bool
- prompt "sh4"
-
-config ARCH_SH_SH4A
- bool
- prompt "sh4a"
-
-endchoice
-
-config ARCH_SH_VARIANT
- string
- default "sh3" if ARCH_SH_SH3
- default "sh4" if ARCH_SH_SH4
- default "sh4a" if ARCH_SH_SH4A
diff --git a/config/arch/sparc.in b/config/arch/sparc.in
index 27eaf9c..fe46eaa 100644
--- a/config/arch/sparc.in
+++ b/config/arch/sparc.in
@@ -1,12 +1,16 @@
# SPARC specific config options
+## no-package
## select ARCH_SUPPORTS_32
## select ARCH_SUPPORTS_64
## select ARCH_DEFAULT_32
-## select ARCH_USE_MMU
+## select ARCH_SUPPORTS_BOTH_MMU
+## select ARCH_DEFAULT_HAS_MMU
+## select ARCH_SUPPORTS_FLAT_FORMAT
## select ARCH_SUPPORTS_WITH_CPU
## select ARCH_SUPPORTS_WITH_TUNE
## select ARCH_SUPPORTS_WITH_FLOAT
+## select ARCH_SUPPORTS_WITH_32_64 if GCC_6_or_later
##
## help The SUN SPARC architecture, as defined by:
## help 32 bit: http://www.sparc.org/standards/V8.pdf
diff --git a/config/arch/x86.in b/config/arch/x86.in
index 3863c02..ec16655 100644
--- a/config/arch/x86.in
+++ b/config/arch/x86.in
@@ -1,5 +1,6 @@
# x86 specific options
+## no-package
## select ARCH_SUPPORTS_32
## select ARCH_SUPPORTS_64
## select ARCH_DEFAULT_32
@@ -7,6 +8,7 @@
## select ARCH_SUPPORTS_WITH_ARCH
## select ARCH_SUPPORTS_WITH_CPU
## select ARCH_SUPPORTS_WITH_TUNE
+## select ARCH_SUPPORTS_WITH_32_64
##
## help The x86 architecture, as defined by:
## help 32-bit (ia32) : http://www.intel.com/
diff --git a/config/arch/xtensa.in b/config/arch/xtensa.in
index 3ffa4e8..14ba10d 100644
--- a/config/arch/xtensa.in
+++ b/config/arch/xtensa.in
@@ -1,11 +1,13 @@
# xtensa specific configuration file
+## no-package
## 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
-##
+## select ARCH_SUPPORTS_FLAT_FORMAT
+
## help The xtensa architecture
## help
## help Xtensa is a configurable and extensible processor architecture.
@@ -20,3 +22,16 @@
## help
## help The default option (ARCH_xtensa_fsf) uses a built-in configuration,
## help which may or may not work for a particular Xtensa processor.
+
+choice
+ prompt "Target Architecture Variant"
+ default ARCH_xtensa_fsf
+
+config XTENSA_CUSTOM
+ bool "Custom Xtensa processor configuration"
+ select TARGET_USE_OVERLAY
+
+config ARCH_xtensa_fsf
+ bool "fsf - Default configuration"
+
+endchoice
diff --git a/config/arch/xtensa.in.2 b/config/arch/xtensa.in.2
deleted file mode 100644
index 25ece70..0000000
--- a/config/arch/xtensa.in.2
+++ /dev/null
@@ -1,33 +0,0 @@
-choice
- prompt "Target Architecture Variant"
- default ARCH_xtensa_fsf
-
-config XTENSA_CUSTOM
- bool "Custom Xtensa processor configuration"
-
-config ARCH_xtensa_fsf
- bool "fsf - Default configuration"
-
-endchoice
-
-config ARCH_XTENSA_CUSTOM_NAME
- string "Custom Xtensa processor configuration name"
- depends on XTENSA_CUSTOM
- default ""
- help
- Enter the name of the custom processor configuration.
- Overlay file for that configuration must be called
- 'xtensa_<CUSTOM_NAME>.tar'.
-
- Leave blank to use the default 'xtensa-overlay.tar'.
- For more information about this option, please also consult
- section 'Using crosstool-NG to build Xtensa toolchains' in the
- docs/C - Misc. tutorials.txt
-
-config ARCH_XTENSA_CUSTOM_OVERLAY_LOCATION
- string "Full path to custom Xtensa processor configurations"
- depends on XTENSA_CUSTOM
- default ""
- help
- Enter the path to the directory for the custom processor
- configuration file.