diff options
Diffstat (limited to 'config')
-rw-r--r-- | config/arch/nios2.in | 4 | ||||
-rw-r--r-- | config/arch/rx.in | 11 | ||||
-rw-r--r-- | config/arch/sh.in | 41 | ||||
-rw-r--r-- | config/binutils/binutils.in | 14 | ||||
-rw-r--r-- | config/cc/gcc.in | 8 | ||||
-rw-r--r-- | config/comp_libs/gmp.in | 5 | ||||
-rw-r--r-- | config/comp_libs/gnumach.in | 0 | ||||
-rw-r--r-- | config/comp_libs/mpc.in | 2 | ||||
-rw-r--r-- | config/comp_libs/ncurses.in | 5 | ||||
-rw-r--r-- | config/comp_libs/picolibc.in | 8 | ||||
-rw-r--r-- | config/comp_tools/mig.in | 0 | ||||
-rw-r--r-- | config/contrib/gcc-test-suite.in | 47 | ||||
-rw-r--r-- | config/kernel/hurd.in | 5 | ||||
-rw-r--r-- | config/libc/glibc.in | 12 | ||||
-rw-r--r-- | config/libc/picolibc.in | 29 | ||||
-rw-r--r-- | config/target.in | 126 | ||||
-rw-r--r-- | config/test_suite.in | 7 |
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 + |