aboutsummaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/arch/arm.in16
-rw-r--r--config/arch/bpf.in9
-rw-r--r--config/arch/loongarch.in19
-rw-r--r--config/arch/mips.in1
-rw-r--r--config/arch/powerpc.in1
-rw-r--r--config/arch/riscv.in1
-rw-r--r--config/arch/s390.in1
-rw-r--r--config/arch/sparc.in1
-rw-r--r--config/arch/x86.in1
-rw-r--r--config/binutils/binutils.in11
-rw-r--r--config/cc.in16
-rw-r--r--config/cc/gcc.in26
-rw-r--r--config/configure.in.in15
-rw-r--r--config/kernel/windows.in2
-rw-r--r--config/libc/glibc.in7
-rw-r--r--config/libc/newlib.in24
-rw-r--r--config/target.in4
17 files changed, 139 insertions, 16 deletions
diff --git a/config/arch/arm.in b/config/arch/arm.in
index 07ad5ed2..e50ec376 100644
--- a/config/arch/arm.in
+++ b/config/arch/arm.in
@@ -9,13 +9,14 @@
## select ARCH_SUPPORTS_FLAT_FORMAT
## select ARCH_SUPPORTS_EITHER_ENDIAN
## select ARCH_DEFAULT_LE
-## select ARCH_SUPPORTS_WITH_ARCH
-## select ARCH_SUPPORTS_WITH_CPU
+## select ARCH_SUPPORTS_WITH_ARCH if !(MULTILIB && ARCH_32)
+## select ARCH_SUPPORTS_WITH_CPU if !(MULTILIB && ARCH_32)
## select ARCH_EXCLUSIVE_WITH_CPU
-## select ARCH_SUPPORTS_WITH_TUNE
-## select ARCH_SUPPORTS_WITH_FLOAT if ARCH_32
-## select ARCH_SUPPORTS_WITH_FPU if ARCH_32
-## select ARCH_SUPPORTS_SOFTFP if ARCH_32
+## select ARCH_SUPPORTS_WITH_TUNE if !(MULTILIB && ARCH_32)
+## select ARCH_SUPPORTS_WITH_FLOAT if ARCH_32 && !MULTILIB
+## select ARCH_SUPPORTS_WITH_FPU if ARCH_32 && !MULTILIB
+## select ARCH_SUPPORTS_SOFTFP if ARCH_32 && !MULTILIB
+## select ARCH_SUPPORTS_LIBSANITIZER
## select LINUX_REQUIRE_3_7_or_later if ARCH_64 && KERNEL_LINUX
## help The ARM architecture, as defined by:
@@ -26,11 +27,13 @@ config ARCH_ARM_MODE
string
default "arm" if ARCH_ARM_MODE_ARM
default "thumb" if ARCH_ARM_MODE_THUMB
+ depends on !MULTILIB
choice
bool
prompt "Default instruction set mode"
default ARCH_ARM_MODE_ARM
+ depends on !MULTILIB
config ARCH_ARM_MODE_ARM
bool
@@ -49,6 +52,7 @@ endchoice
config ARCH_ARM_INTERWORKING
bool
prompt "Use Thumb-interworking (READ HELP)"
+ depends on !MULTILIB
help
Excerpt from the gcc manual:
diff --git a/config/arch/bpf.in b/config/arch/bpf.in
new file mode 100644
index 00000000..9d0d7373
--- /dev/null
+++ b/config/arch/bpf.in
@@ -0,0 +1,9 @@
+# BPF specific configuration file
+
+## no-package
+## select ARCH_SUPPORTS_EITHER_ENDIAN
+## select ARCH_DEFAULT_LE
+## select GCC_VERY_NEW
+## select BINUTILS_VERY_NEW
+##
+## help The BPF architecture.
diff --git a/config/arch/loongarch.in b/config/arch/loongarch.in
new file mode 100644
index 00000000..6218c33d
--- /dev/null
+++ b/config/arch/loongarch.in
@@ -0,0 +1,19 @@
+# LoongArch specific config options
+
+## no-package
+## depends on EXPERIMENTAL
+##
+## select ARCH_SUPPORTS_64
+## select ARCH_DEFAULT_64
+## select ARCH_SUPPORTS_BOTH_MMU
+## select ARCH_SUPPORTS_WITH_ABI
+## select ARCH_SUPPORTS_WITH_ARCH
+## select ARCH_SUPPORTS_WITH_TUNE
+## select GCC_REQUIRE_12_or_later
+## select BINUTILS_REQUIRE_2_39_or_later
+## select LINUX_REQUIRE_5_19_or_later
+## select GDB_REQUIRE_12_1_or_later if DEBUG_GDB
+## select GLIBC_REQUIRE_2_36_or_later if LIBC_GLIBC
+
+## help The LoongArch architecture, as defined by:
+## help https://loongson.github.io/LoongArch-Documentation/README-EN.html
diff --git a/config/arch/mips.in b/config/arch/mips.in
index ad8b1c64..a8c15c33 100644
--- a/config/arch/mips.in
+++ b/config/arch/mips.in
@@ -10,6 +10,7 @@
## select ARCH_SUPPORTS_WITH_ARCH
## select ARCH_SUPPORTS_WITH_TUNE
## select ARCH_SUPPORTS_WITH_FLOAT
+## select ARCH_SUPPORTS_LIBSANITIZER if (!ARCH_64 || GCC_12_or_later)
## help The MIPS architecture, as defined by:
## help http://www.mips.com/
diff --git a/config/arch/powerpc.in b/config/arch/powerpc.in
index bb75ac0e..26954c88 100644
--- a/config/arch/powerpc.in
+++ b/config/arch/powerpc.in
@@ -12,6 +12,7 @@
## select ARCH_SUPPORTS_WITH_TUNE
## select ARCH_SUPPORTS_WITH_FLOAT
## select ARCH_SUPPORTS_WITH_32_64
+## select ARCH_SUPPORTS_LIBSANITIZER
##
## help The PowerPC architecture, as defined by:
## help http://www.ibm.com/developerworks/eserver/articles/archguide.html
diff --git a/config/arch/riscv.in b/config/arch/riscv.in
index 6b98520c..3e6ffbfb 100644
--- a/config/arch/riscv.in
+++ b/config/arch/riscv.in
@@ -10,6 +10,7 @@
## select ARCH_SUPPORTS_WITH_ABI
## select ARCH_SUPPORTS_WITH_ARCH
## select ARCH_SUPPORTS_WITH_TUNE
+## select ARCH_SUPPORTS_LIBSANITIZER if ARCH_64
## select GCC_REQUIRE_7_or_later
## select BINUTILS_REQUIRE_2_28_or_later
## select GDB_REQUIRE_8_0_or_later if DEBUG_GDB
diff --git a/config/arch/s390.in b/config/arch/s390.in
index 64107b69..7e34451f 100644
--- a/config/arch/s390.in
+++ b/config/arch/s390.in
@@ -6,6 +6,7 @@
## select ARCH_DEFAULT_32
## select ARCH_USE_MMU
## select ARCH_SUPPORTS_WITH_FPU
+## select ARCH_SUPPORTS_LIBSANITIZER
##
## help Defined by IBM in:
## help 32-bit ESA/390 : http://publibfp.boulder.ibm.com/cgi-bin/bookmgr/BOOKS/dz9ar008/CCONTENTS
diff --git a/config/arch/sparc.in b/config/arch/sparc.in
index fe46eaae..14d37e73 100644
--- a/config/arch/sparc.in
+++ b/config/arch/sparc.in
@@ -11,6 +11,7 @@
## select ARCH_SUPPORTS_WITH_TUNE
## select ARCH_SUPPORTS_WITH_FLOAT
## select ARCH_SUPPORTS_WITH_32_64 if GCC_6_or_later
+## select ARCH_SUPPORTS_LIBSANITIZER
##
## 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 ec166557..cfdb1824 100644
--- a/config/arch/x86.in
+++ b/config/arch/x86.in
@@ -9,6 +9,7 @@
## select ARCH_SUPPORTS_WITH_CPU
## select ARCH_SUPPORTS_WITH_TUNE
## select ARCH_SUPPORTS_WITH_32_64
+## select ARCH_SUPPORTS_LIBSANITIZER if ARCH_64
##
## help The x86 architecture, as defined by:
## help 32-bit (ia32) : http://www.intel.com/
diff --git a/config/binutils/binutils.in b/config/binutils/binutils.in
index 286ed4b5..f9b0c096 100644
--- a/config/binutils/binutils.in
+++ b/config/binutils/binutils.in
@@ -24,6 +24,12 @@ config BINUTILS_FORCE_LD_BFD_DEFAULT
config BINUTILS_FORCE_LD_BFD_ONLY
bool
+# Binutils 2.39 requires bison 3.0.4 or later for gprofng on x86/aarch64
+config BINUTILS_DEP_BISON
+ def_bool y
+ 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
+
choice
bool
prompt "Linkers to enable"
@@ -178,6 +184,11 @@ config BINUTILS_FOR_TARGET_BFD
prompt "libbfd"
default y
+config BINUTILS_FOR_TARGET_OPCODES
+ bool
+ prompt "libopcodes"
+ default y
+
endif # BINUTILS_FOR_TARGET
if ARCH_BINFMT_FLAT
diff --git a/config/cc.in b/config/cc.in
index abc68773..068d445a 100644
--- a/config/cc.in
+++ b/config/cc.in
@@ -20,6 +20,9 @@ config CC_SUPPORT_ADA
config CC_SUPPORT_D
bool
+config CC_SUPPORT_JIT
+ bool
+
config CC_SUPPORT_OBJC
bool
@@ -53,6 +56,17 @@ config CC_LANG_FORTRAN
Only select this if you know that your specific version of the
compiler supports this language.
+config CC_LANG_JIT
+ bool
+ prompt "JIT (EXPERIMENTAL)"
+ depends on CC_SUPPORT_JIT
+ depends on EXPERIMENTAL
+ help
+ Enable building the GCC JIT library.
+
+ Only select this if you know that your specific version of the
+ compiler supports the libgccjit.
+
if ! BARE_METAL
config CC_LANG_JAVA
@@ -67,7 +81,7 @@ config CC_LANG_JAVA
config CC_LANG_ADA
bool
- prompt "ADA (EXPERIMENTAL)"
+ prompt "Ada (EXPERIMENTAL)"
depends on CC_SUPPORT_ADA
depends on EXPERIMENTAL
help
diff --git a/config/cc/gcc.in b/config/cc/gcc.in
index 037291fe..d5b19c79 100644
--- a/config/cc/gcc.in
+++ b/config/cc/gcc.in
@@ -5,6 +5,7 @@
## select CC_SUPPORT_JAVA if !GCC_7_or_later && OBSOLETE
## select CC_SUPPORT_ADA
## select CC_SUPPORT_D
+## select CC_SUPPORT_JIT
## select CC_SUPPORT_OBJC
## select CC_SUPPORT_OBJCXX
## select CC_SUPPORT_GOLANG
@@ -81,6 +82,7 @@ config CC_GCC_MULTILIB_LIST
string "List of multilib variants"
depends on MULTILIB
default "m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single" if GCC_11_or_later && ARCH_SH
+ default "aprofile,rmprofile" if ARCH_ARM && ARCH_32
help
Architecture-specific option of expanding or restricting the list of
the multilib variants to be built. Refer to GCC installation manual
@@ -196,6 +198,18 @@ config CC_GCC_LTO_ZSTD
#-----------------------------------------------------------------------------
comment "Settings for libraries running on target"
+config CC_GCC_ENABLE_DEFAULT_PIE
+ bool
+ prompt "Enable Position Independent Executable as default"
+ default y
+ depends on GCC_6_or_later && ! WINDOWS && ! ARCH_MIPS && ! ARCH_AVR && ! ARCH_PRU
+ depends on !(ARCH_RISCV && BARE_METAL)
+ help
+ Pass --enable-default-pie to crossgcc's configure.
+
+ This will let crossgcc compile executable as Position Independent
+ Executable by default.
+
config CC_GCC_ENABLE_TARGET_OPTSPACE
bool
prompt "Optimize gcc libs for size"
@@ -257,17 +271,24 @@ config CC_GCC_LIBQUADMATH
The default is 'N'. Say 'Y' if you need it, and report success/failure.
config CC_GCC_LIBSANITIZER
- bool
+ tristate
prompt "Compile libsanitizer"
depends on THREADS_NATIVE
depends on !LIBC_UCLIBC_NG && !LIBC_MUSL # Currently lacks required headers (like netrom.h)
+ depends on ARCH_SUPPORTS_LIBSANITIZER
help
libsanitizer is a library which provides run-time sanitising of either
or both of:
- memory access patterns (out-of-bonds, use-after-free)
- racy data accesses (in multi-threaded programs)
- The default is 'N'. Say 'Y' if you need it, and report success/failure.
+ Option | libsanitizer | Associated ./configure switch
+ ---------+--------------------+--------------------------------
+ Y | forcibly used | --enable-libsanitizer
+ M | auto | (none, ./configure decides)
+ N | forcibly not used | --disable-libsanitizer
+
+ The default is 'N'. Say 'Y' or 'M' if you need it, and report success/failure.
config CC_GCC_LIBMPX
bool
@@ -285,7 +306,6 @@ config CC_GCC_LIBSTDCXX_VERBOSE
default n if BARE_METAL
default m if !BARE_METAL
prompt "Verbose libstdc++"
- depends on GCC_4_8_or_later
depends on CC_LANG_CXX
help
Write descriptive error messages on certain events.
diff --git a/config/configure.in.in b/config/configure.in.in
index a43fb61b..91093c2d 100644
--- a/config/configure.in.in
+++ b/config/configure.in.in
@@ -36,14 +36,14 @@ config CONFIGURE_has_libtool_2_4_or_newer
config CONFIGURE_has_libtoolize_2_4_or_newer
@KCONFIG_libtoolize_2_4_or_newer@
-config CONFIGURE_has_autoconf_2_65_or_newer
- @KCONFIG_autoconf_2_65_or_newer@
+config CONFIGURE_has_autoconf_2_71_or_newer
+ @KCONFIG_autoconf_2_71_or_newer@
-config CONFIGURE_has_autoreconf_2_65_or_newer
- @KCONFIG_autoreconf_2_65_or_newer@
+config CONFIGURE_has_autoreconf_2_71_or_newer
+ @KCONFIG_autoreconf_2_71_or_newer@
-config CONFIGURE_has_automake_1_15_or_newer
- @KCONFIG_automake_1_15_or_newer@
+config CONFIGURE_has_automake_1_16_or_newer
+ @KCONFIG_automake_1_16_or_newer@
config CONFIGURE_has_gnu_m4_1_4_12_or_newer
@KCONFIG_gnu_m4_1_4_12_or_newer@
@@ -54,6 +54,9 @@ config CONFIGURE_has_python_3_4_or_newer
config CONFIGURE_has_bison_2_7_or_newer
@KCONFIG_bison_2_7_or_newer@
+config CONFIGURE_has_bison_3_0_4_or_newer
+ @KCONFIG_bison_3_0_4_or_newer@
+
config CONFIGURE_has_python
@KCONFIG_python@
diff --git a/config/kernel/windows.in b/config/kernel/windows.in
index 33ca5af8..66275cc4 100644
--- a/config/kernel/windows.in
+++ b/config/kernel/windows.in
@@ -7,3 +7,5 @@
## select WINDOWS
##
## help Build a toolchain targeting systems running Windows as host
+
+## select KERNEL_SUPPORTS_SHARED_LIBS
diff --git a/config/libc/glibc.in b/config/libc/glibc.in
index 498450cb..39ab7930 100644
--- a/config/libc/glibc.in
+++ b/config/libc/glibc.in
@@ -172,6 +172,13 @@ config GLIBC_CONFIGPARMS
Note: If you need to pass more than one value, separate them with
'\n'. Eg.: var1=val1\nvar2=val2
+config GLIBC_ENABLE_DEBUG
+ bool
+ default y
+ prompt "Enable debug symbols"
+ help
+ Compile glibc using -g modifier.
+
config GLIBC_EXTRA_CFLAGS
string
prompt "extra target CFLAGS"
diff --git a/config/libc/newlib.in b/config/libc/newlib.in
index f1cb29be..7bba2293 100644
--- a/config/libc/newlib.in
+++ b/config/libc/newlib.in
@@ -55,6 +55,7 @@ config LIBC_NEWLIB_IO_LDBL
config LIBC_NEWLIB_IO_POS_ARGS
bool
prompt "Enable printf-family positional arg support"
+ depends on !LIBC_NEWLIB_NANO_FORMATTED_IO
help
Enable printf-family positional arg support.
@@ -199,6 +200,29 @@ config LIBC_NEWLIB_NANO_FORMATTED_IO
with size constraint issues. This option does not affect wide-char
formatted I/O functions.
+ Some notes about this feature:
+ 1) Floating-point support is split out of the formatted I/O code into
+ weak functions which are not linked by default. Programs that need
+ floating-point I/O support must explicitly request linking of one or
+ both of the floating-point functions: _printf_float or _scanf_float.
+ This can be done at link time using the -u option which can be passed
+ to either gcc or ld.
+
+ 2) The following configuration options are ignored for non-wide-char
+ formatted I/O functions, and can be thought of as disabled.
+
+ "Enable printf-family positional arg support"
+ "Enable IOs on C99 formats"
+ "Enable IOs on long long"
+ "Enable IOs on long doubles"
+
+ Additionally, "Enable IOs on floats and doubles" is supported in this
+ specific implementation, one can disable it to further reduce code size.
+ In this case, the floating-point specifiers will not be recognized or
+ handled, and the -u option will not work either.
+
+ Learn more: https://sourceware.org/newlib/README
+
config LIBC_NEWLIB_EXTRA_CONFIG_ARRAY
string
prompt "Extra config for newlib"
diff --git a/config/target.in b/config/target.in
index 995457a0..21302622 100644
--- a/config/target.in
+++ b/config/target.in
@@ -112,6 +112,10 @@ config ARCH_SUPPORTS_FLAT_FORMAT
bool
#--------------------------------------
+config ARCH_SUPPORTS_LIBSANITIZER
+ bool
+
+#--------------------------------------
config ARCH_SUPPORTS_EITHER_ENDIAN
bool
help