aboutsummaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/arch/nios2.in4
-rw-r--r--config/arch/rx.in11
-rw-r--r--config/arch/sh.in41
-rw-r--r--config/binutils/binutils.in14
-rw-r--r--config/cc/gcc.in8
-rw-r--r--config/comp_libs/gmp.in5
-rw-r--r--config/comp_libs/gnumach.in0
-rw-r--r--config/comp_libs/mpc.in2
-rw-r--r--config/comp_libs/ncurses.in5
-rw-r--r--config/comp_libs/picolibc.in8
-rw-r--r--config/comp_tools/mig.in0
-rw-r--r--config/contrib/gcc-test-suite.in47
-rw-r--r--config/kernel/hurd.in5
-rw-r--r--config/libc/glibc.in12
-rw-r--r--config/libc/picolibc.in29
-rw-r--r--config/target.in126
-rw-r--r--config/test_suite.in7
17 files changed, 304 insertions, 20 deletions
diff --git a/config/arch/nios2.in b/config/arch/nios2.in
index c773860c..b5ebedb5 100644
--- a/config/arch/nios2.in
+++ b/config/arch/nios2.in
@@ -8,7 +8,9 @@
## select ARCH_SUPPORTS_WITH_ARCH
## select ARCH_SUPPORTS_FLAT_FORMAT
## select GCC_REQUIRE_older_than_15
-## select GDB_REQUIRE_older_than_16
+## select GDB_REQUIRE_older_than_16 if DEBUG_GDB
+## select GLIBC_REQUIRE_older_than_2_41 if LIBC_GLIBC
+## select BINUTILS_REQUIRE_older_than_2_44
##
## help The NIOS2 architecture, as defined by:
## help http://www.altera.com
diff --git a/config/arch/rx.in b/config/arch/rx.in
new file mode 100644
index 00000000..6e58d628
--- /dev/null
+++ b/config/arch/rx.in
@@ -0,0 +1,11 @@
+## no-package
+## select ARCH_SUPPORTS_32
+## select ARCH_DEFAULT_32
+## 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 RX architecture, as defined by:
+## help https://www.renesas.com/en/products/microcontrollers-microprocessors/rx-32-bit-performance-efficiency-mcus
diff --git a/config/arch/sh.in b/config/arch/sh.in
index ff2ec142..8ebdd744 100644
--- a/config/arch/sh.in
+++ b/config/arch/sh.in
@@ -3,8 +3,6 @@
## no-package
## select ARCH_SUPPORTS_32
## select ARCH_DEFAULT_32
-## select ARCH_SUPPORTS_BOTH_MMU
-## select ARCH_DEFAULT_HAS_MMU
## select ARCH_SUPPORTS_FLAT_FORMAT
## select ARCH_SUPPORTS_EITHER_ENDIAN
## select ARCH_DEFAULT_LE
@@ -21,6 +19,8 @@ choice
# 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.
+# --with-cpu can be used to set the mmu and precision options,
+# so dont include the options aswell
config ARCH_SH_SH
bool
prompt "unspecified"
@@ -62,16 +62,45 @@ config ARCH_SH_SH4A
bool
prompt "sh4a"
+config ARCH_SH_SH4AL
+ bool
+ prompt "sh4al"
+
endchoice
config ARCH_SH_VARIANT
string
- default "sh" if ARCH_SH_SH
+ 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 "sh2e" if ARCH_SH_SH2E
+ default "sh2a" if ARCH_SH_SH2A
default "sh3" if ARCH_SH_SH3
- default "sh3e" if ARCH_SH_SH3E
+ default "sh3e" if ARCH_SH_SH3E
default "sh4" if ARCH_SH_SH4
default "sh4a" if ARCH_SH_SH4A
+ default "sh4al" if ARCH_SH_SH4AL
+
+config ARCH_SH_ENABLE_FPU_OPTIONS
+ bool
+ default y if ARCH_SH_SH2A
+ default y if ARCH_SH_SH4
+ default y if ARCH_SH_SH4A
+ select ARCH_SUPPORTS_BOTH_MMU
+ select ARCH_DEFAULT_HAS_MMU
+
+config ARCH_SH_ENABLE_PRECISION_OPTIONS
+ bool
+ default y if ARCH_USE_MMU
+ select ARCH_SUPPORTS_WITH_FLOATING_PRECISION
+ select ARCH_SUPPORTS_PRECISION_UNSPECIFIED
+ select ARCH_SUPPORTS_PRECISION_SINGLE_ONLY
+ select ARCH_SUPPORTS_PRECISION_SINGLE_WITH_DOUBLE
+ select ARCH_DEFAULT_PRECISION_UNSPECIFIED
+
+config ARCH_SH_FLOAT_SUFFIX
+ string
+ default "" if !ARCH_SH_ENABLE_FPU_OPTIONS
+ default "_nofpu" if !ARCH_USE_MMU
+ default "_single" if ARCH_FLOATING_PRECISION_SINGLE_WITH_DOUBLE
+ default "_single_only" if ARCH_FLOATING_PRECISION_SINGLE_ONLY
diff --git a/config/binutils/binutils.in b/config/binutils/binutils.in
index 4a91a8f7..030e0b9d 100644
--- a/config/binutils/binutils.in
+++ b/config/binutils/binutils.in
@@ -13,10 +13,16 @@ config BINUTILS_GOLD_SUPPORTS_ARCH
default y if ARCH_SPARC
default y if ARCH_X86
+# Support for gold was deprecated and removed from binutils 2.44.
+config BINUTILS_HAS_GOLD
+ bool
+ default y if !BINUTILS_2_44_or_later
+ default y if !BINUTILS_SRC_RELEASE
+
config BINUTILS_GOLD_SUPPORT
bool
default y
- depends on BINUTILS_GOLD_SUPPORTS_ARCH
+ depends on BINUTILS_GOLD_SUPPORTS_ARCH && BINUTILS_HAS_GOLD
# Force using the BFD linker if needed. There are two options:
# - For some C libraries (eg. glibc at least), BFD ld must be
@@ -34,6 +40,11 @@ config BINUTILS_DEP_BISON
depends on BINUTILS_2_39_or_later && !CONFIGURE_has_bison_3_0_4_or_newer && (ARCH_X86 || (ARCH_ARM && ARCH_64))
select COMP_TOOLS_BISON
+if BINUTILS_2_44_or_later && BINUTILS_GOLD_SUPPORT && !BINUTILS_SRC_RELEASE
+comment "WARNING! For binutils >= 2.44 only enable gold support if supplied"
+comment "| through custom source tree."
+endif
+
choice
bool
prompt "Linkers to enable"
@@ -132,6 +143,7 @@ config BINUTILS_LINKER_DEFAULT
config BINUTILS_PLUGINS
bool
prompt "Enable support for plugins"
+ depends on !STATIC_TOOLCHAIN
help
binutils can be extended through the use of plugins.
Especially, gold can use the lto-plugin, as installed
diff --git a/config/cc/gcc.in b/config/cc/gcc.in
index b51c0bda..7928468c 100644
--- a/config/cc/gcc.in
+++ b/config/cc/gcc.in
@@ -265,6 +265,14 @@ config CC_GCC_LIBSTDCXX_HOSTED_DISABLE
Answer 'y' here to force freestanding mode, otherwise answer let
./configure decide.
+config CC_GCC_LIBSTDCXX_TARGET_CXXFLAGS
+ string
+ prompt "Target CXXFLAGS for libstdc++"
+ default ""
+ help
+ Used to add extra CXXFLAGS when compiling the target libstdc++
+ library (e.g. -fno-exceptions).
+
config CC_GCC_LIBMUDFLAP
bool
prompt "Compile libmudflap"
diff --git a/config/comp_libs/gmp.in b/config/comp_libs/gmp.in
index f49d1a71..7baac528 100644
--- a/config/comp_libs/gmp.in
+++ b/config/comp_libs/gmp.in
@@ -1 +1,6 @@
# GMP options
+config GMP_EXTRA_CFLAGS
+ string "extra target CFLAGS"
+ default "-std=gnu17" if GCC_15_or_later
+ help
+ Extra target CFLAGS to use when building.
diff --git a/config/comp_libs/gnumach.in b/config/comp_libs/gnumach.in
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/config/comp_libs/gnumach.in
diff --git a/config/comp_libs/mpc.in b/config/comp_libs/mpc.in
index 422935f0..2d948a78 100644
--- a/config/comp_libs/mpc.in
+++ b/config/comp_libs/mpc.in
@@ -1,3 +1 @@
# MPC options
-# MPC 1.0.x and earlier break with MPFR 4.0.0.
-## select MPFR_REQUIRE_older_than_4_0_0 if MPFR_NEEDED && !MPC_1_1_0_or_later
diff --git a/config/comp_libs/ncurses.in b/config/comp_libs/ncurses.in
index 4e7e6d47..3d257439 100644
--- a/config/comp_libs/ncurses.in
+++ b/config/comp_libs/ncurses.in
@@ -55,3 +55,8 @@ config NCURSES_TARGET_FALLBACKS
List of terminal descriptions that will be compiled into the curses
library for the target.
+config NCURSES_EXTRA_CFLAGS
+ string "extra target CFLAGS"
+ default "-std=gnu17" if GCC_15_or_later
+ help
+ Extra target CFLAGS fto use when building.
diff --git a/config/comp_libs/picolibc.in b/config/comp_libs/picolibc.in
index 4b283aec..c978c35b 100644
--- a/config/comp_libs/picolibc.in
+++ b/config/comp_libs/picolibc.in
@@ -27,6 +27,14 @@ config LIBC_PICOLIBC_GCC_LIBSTDCXX
the picolibc companion library. This version is linked when
"--specs=picolibcpp.specs" is specified.
+config LIBC_PICOLIBC_GCC_LIBSTDCXX_TARGET_CXXFLAGS
+ string
+ prompt "Target CXXFLAGS for libstdc++ picolibc variant"
+ default ""
+ help
+ Used to add extra CXXFLAGS when compiling the target libstdc++
+ picolibc library (e.g. -fno-exceptions).
+
comment "Configuration for picolibc can be found under"
comment "* -> C-library"
comment "* -> picolibc"
diff --git a/config/comp_tools/mig.in b/config/comp_tools/mig.in
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/config/comp_tools/mig.in
diff --git a/config/contrib/gcc-test-suite.in b/config/contrib/gcc-test-suite.in
new file mode 100644
index 00000000..6a4c876f
--- /dev/null
+++ b/config/contrib/gcc-test-suite.in
@@ -0,0 +1,47 @@
+choice
+ bool "How to execute tests"
+ default TEST_SUITE_GCC_SSH
+
+config TEST_SUITE_GCC_SSH
+ bool "Run test suite on remote host"
+ help
+ Select this option to execute GCC tests on a remote host,
+ specified by TEST_SUITE_GCC_HOST.
+
+config TEST_SUITE_GCC_QEMU
+ bool "Run test suite using qemu"
+ help
+ Select this option to execute GCC tests using qemu on the local
+ host.
+
+endchoice
+
+config TEST_SUITE_GCC_TARGET_HOSTNAME
+ string "Remote host to execute GCC tests"
+ default "127.0.0.1"
+ depends on TEST_SUITE_GCC_SSH
+ help
+ Set this to the remote host name where gcc tests will be run.
+
+config TEST_SUITE_GCC_TARGET_USERNAME
+ string "Username on remote host"
+ default "root"
+ depends on TEST_SUITE_GCC_SSH
+ help
+ Set this to the username on the remote hosts for GCC tests.
+
+config TEST_SUITE_GCC_QEMU_PROGRAM
+ string "Qemu program"
+ depends on TEST_SUITE_GCC_QEMU
+ help
+ Specifies the qemu program name. If unset, this will be "qemu-"
+ followed by the first component of the target name.
+
+config TEST_SUITE_GCC_QEMU_ARGS
+ string "Qemu program args"
+ depends on TEST_SUITE_GCC_QEMU
+ default "-L @SYSROOT@"
+ help
+ Specifies any arguments needed by qemu before the executable
+ filename. If unset, this will be "-L" followed by the path to
+ the sysroot in the installed toolchain.
diff --git a/config/kernel/hurd.in b/config/kernel/hurd.in
new file mode 100644
index 00000000..030a8aa6
--- /dev/null
+++ b/config/kernel/hurd.in
@@ -0,0 +1,5 @@
+# Hurd config options
+
+## select KERNEL_SUPPORTS_SHARED_LIBS
+##
+## help Build a toolchain targeting systems running GNU Hurd as a kernel
diff --git a/config/libc/glibc.in b/config/libc/glibc.in
index 8f1e0672..a34c4209 100644
--- a/config/libc/glibc.in
+++ b/config/libc/glibc.in
@@ -155,11 +155,11 @@ config GLIBC_HAS_OBSOLETE_RPC
def_bool y
depends on GLIBC_2_14_or_later && !GLIBC_2_32_or_later
-# As of 2.38 libcrypt is no longer built by default. It will likely be removed in a future
-# version.
+# As of 2.38 libcrypt is no longer built by default. It was completely removed
+# as of 2.39
config GLIBC_HAS_OBSOLETE_LIBCRYPT
def_bool y
- depends on GLIBC_2_38_or_later
+ depends on GLIBC_2_38_or_later && !GLIBC_2_39_or_later
config GLIBC_EXTRA_CONFIG_ARRAY
string
@@ -289,6 +289,12 @@ comment "| Building GLIBC locales requires that GLIBC supports "
comment "| the build machine as the target. "
endif # LIBC_GLIBC && GLIBC_LOCALES
+# Older Glibc versions are incompatible with newer makeinfo versions. Skip
+# building the user manual if needed.
+config GLIBC_MAKEINFO_WORKAROUND
+ def_bool y
+ depends on GLIBC_2_23_or_older
+
if KERNEL_LINUX
choice GLIBC_SUPPORTED_KERNEL
diff --git a/config/libc/picolibc.in b/config/libc/picolibc.in
index 6c4c6cac..c3014b11 100644
--- a/config/libc/picolibc.in
+++ b/config/libc/picolibc.in
@@ -40,31 +40,47 @@ config LIBC_PICOLIBC_IO_C99FMT
config LIBC_PICOLIBC_REGISTER_FINI
bool
- prompt "Enable finalization function registration using atexit"
+ prompt "Enable finalization function registration using atexit [unused]"
help
Enable finalization function registration using atexit.
+ This would be used when building with the legacy newlib exit
+ handling code which cannot be enabled in crosstool-ng, so
+ this option doesn't do anything.
+
config LIBC_PICOLIBC_ATEXIT_DYNAMIC_ALLOC
bool
- prompt "Enable dynamic allocation of atexit entries"
+ prompt "Enable dynamic allocation of atexit entries [unused]"
help
Enable dynamic allocation of atexit entries.
+ This would be used when building with the legacy newlib exit
+ handling code which cannot be enabled in crosstool-ng, so
+ this option doesn't do anything.
+
config LIBC_PICOLIBC_GLOBAL_ATEXIT
bool
- prompt "Enable atexit data structure as global variable"
+ prompt "Enable atexit data structure as global variable [unused]"
help
Enable atexit data structure as global variable, instead
of being thread-local.
+ This would be used when building with the legacy newlib exit
+ handling code which cannot be enabled in crosstool-ng, so
+ this option doesn't do anything.
+
config LIBC_PICOLIBC_LITE_EXIT
bool
- prompt "Enable lite exit"
+ prompt "Enable lite exit [unused]"
default y
help
Enable lite exit, a size-reduced implementation of exit that doesn't
invoke clean-up functions such as _fini or global destructors.
+ This would be used when building with the legacy newlib exit
+ handling code which cannot be enabled in crosstool-ng, so
+ this option doesn't do anything.
+
config LIBC_PICOLIBC_MULTITHREAD
bool
prompt "Enable support for multiple threads"
@@ -74,12 +90,15 @@ config LIBC_PICOLIBC_MULTITHREAD
config LIBC_PICOLIBC_RETARGETABLE_LOCKING
bool
- prompt "Enable retargetable locking"
+ prompt "Enable retargetable locking [unused]"
default y
help
Enable retargetable locking to allow the operating system to override
the dummy lock functions defined within picolibc.
+ This value was always required to match
+ LIBC_PICOLIBC_MULTITHREAD, so it is no longer used.
+
config LIBC_PICOLIBC_EXTRA_SECTIONS
bool
prompt "Place each function & data element in their own section"
diff --git a/config/target.in b/config/target.in
index 21302622..ed415394 100644
--- a/config/target.in
+++ b/config/target.in
@@ -434,6 +434,132 @@ config ARCH_FLOAT_SW
endchoice
+#--------------------------------------
+
+config ARCH_SUPPORTS_WITH_FLOATING_PRECISION
+ bool
+
+config ARCH_SUPPORTS_PRECISION_AUTO
+ bool
+
+config ARCH_SUPPORTS_PRECISION_SINGLE_ONLY
+ bool
+
+config ARCH_SUPPORTS_PRECISION_DOUBLE_ONLY
+ bool
+
+config ARCH_SUPPORTS_PRECISION_BOTH
+ bool
+
+config ARCH_SUPPORTS_PRECISION_SINGLE_WITH_DOUBLE
+ bool
+
+config ARCH_SUPPORTS_PRECISION_DOUBLE_WITH_SINGLE
+ bool
+
+config ARCH_SUPPORTS_PRECISION_UNSPECIFIED
+ bool
+
+config ARCH_DEFAULT_PRECISION_AUTO
+ bool
+
+config ARCH_DEFAULT_PRECISION_SINGLE_ONLY
+ bool
+
+config ARCH_DEFAULT_PRECISION_DOUBLE_ONLY
+ bool
+
+config ARCH_DEFAULT_PRECISION_BOTH
+ bool
+
+config ARCH_DEFAULT_PRECISION_SINGLE_WITH_DOUBLE
+ bool
+
+config ARCH_DEFAULT_PRECISION_DOUBLE_WITH_SINGLE
+ bool
+
+config ARCH_DEFAULT_PRECISION_UNSPECIFIED
+ bool
+
+choice
+ bool
+ prompt "Floating point precision:"
+ depends on ARCH_SUPPORTS_WITH_FLOATING_PRECISION
+ default ARCH_FLOATING_PRECISION_AUTO if ARCH_DEFAULT_PRECISION_AUTO
+ default ARCH_FLOATING_PRECISION_SINGLE_ONLY if ARCH_DEFAULT_PRECISION_SINGLE_ONLY
+ default ARCH_FLOATING_PRECISION_DOUBLE_ONLY if ARCH_DEFAULT_PRECISION_DOUBLE_ONLY
+ default ARCH_FLOATING_PRECISION_BOTH if ARCH_DEFAULT_PRECISION_BOTH
+ default ARCH_FLOATING_PRECISION_SINGLE_WITH_DOUBLE if ARCH_DEFAULT_PRECISION_SINGLE_WITH_DOUBLE
+ default ARCH_FLOATING_PRECISION_DOUBLE_WITH_SINGLE if ARCH_DEFAULT_PRECISION_DOUBLE_WITH_SINGLE
+ default ARCH_FLOATING_PRECISION_UNSPECIFIED if ARCH_DEFAULT_PRECISION_UNSPECIFIED
+
+config ARCH_FLOATING_PRECISION_AUTO
+ bool
+ prompt "auto (let gcc decide)"
+ depends on ARCH_SUPPORTS_PRECISION_AUTO
+ help
+ Instead of explicitly passing a float precision option, don't
+ pass any float precision options and let gcc figure it out.
+
+config ARCH_FLOATING_PRECISION_SINGLE_ONLY
+ bool
+ prompt "single (32-bit)"
+ depends on ARCH_SUPPORTS_PRECISION_SINGLE_ONLY
+ help
+ Use single precision floating point operations.
+
+config ARCH_FLOATING_PRECISION_DOUBLE_ONLY
+ bool
+ prompt "double (64-bit)"
+ depends on ARCH_SUPPORTS_PRECISION_DOUBLE_ONLY
+ help
+ Use double precision floating point operations.
+
+config ARCH_FLOATING_PRECISION_BOTH
+ bool
+ prompt "single and double (32-bit and 64-bit)"
+ depends on ARCH_SUPPORTS_PRECISION_BOTH
+ help
+ Use both single and double precision floating point operations.
+
+config ARCH_FLOATING_PRECISION_SINGLE_WITH_DOUBLE
+ bool
+ prompt "single with double (32-bit with 64-bit)"
+ depends on ARCH_SUPPORTS_PRECISION_SINGLE_WITH_DOUBLE
+ help
+ Use single precision floating point operations, but allow double
+ precision floating point operations when needed.
+
+config ARCH_FLOATING_PRECISION_DOUBLE_WITH_SINGLE
+ bool
+ prompt "double with single (64-bit with 32-bit)"
+ depends on ARCH_SUPPORTS_PRECISION_DOUBLE_WITH_SINGLE
+ help
+ Use double precision floating point operations, but allow single
+ precision floating point operations when needed.
+
+config ARCH_FLOATING_PRECISION_UNSPECIFIED
+ bool
+ prompt "default (leave unspecified)"
+ depends on ARCH_SUPPORTS_PRECISION_UNSPECIFIED
+ help
+ Use the default floating point precision for the architecture.
+
+endchoice
+
+config ARCH_FLOATING_PRECISION
+ string
+ depends on ARCH_SUPPORTS_WITH_FLOATING_PRECISION
+ default "auto" if ARCH_FLOATING_PRECISION_AUTO
+ default "single" if ARCH_FLOATING_PRECISION_SINGLE_ONLY
+ default "double" if ARCH_FLOATING_PRECISION_DOUBLE_ONLY
+ default "both" if ARCH_FLOATING_PRECISION_BOTH
+ default "single,double" if ARCH_FLOATING_PRECISION_SINGLE_WITH_DOUBLE
+ default "double,single" if ARCH_FLOATING_PRECISION_DOUBLE_WITH_SINGLE
+ default "" if ARCH_FLOATING_PRECISION_UNSPECIFIED
+
+#--------------------------------------
+
config TARGET_CFLAGS
string
prompt "Target CFLAGS"
diff --git a/config/test_suite.in b/config/test_suite.in
index 978635d3..8cfe1434 100644
--- a/config/test_suite.in
+++ b/config/test_suite.in
@@ -17,11 +17,14 @@ config TEST_SUITE_GCC
The GCC test suite includes a collection of various toolchain tests for GCC -
it utilizes the DejaGnu test framework.
- For some tests a network enabled target with ssh server is required.
-
A helper Makefile is provided for running the tests - please see the included
README for information on how to run the test suite.
+if TEST_SUITE_GCC
+source "config/contrib/gcc-test-suite.in"
+endif
+
endmenu
endif
+