diff options
Diffstat (limited to 'config')
-rw-r--r-- | config/arch/arm.in | 16 | ||||
-rw-r--r-- | config/arch/bpf.in | 9 | ||||
-rw-r--r-- | config/arch/loongarch.in | 19 | ||||
-rw-r--r-- | config/arch/mips.in | 1 | ||||
-rw-r--r-- | config/arch/powerpc.in | 1 | ||||
-rw-r--r-- | config/arch/riscv.in | 1 | ||||
-rw-r--r-- | config/arch/s390.in | 1 | ||||
-rw-r--r-- | config/arch/sparc.in | 1 | ||||
-rw-r--r-- | config/arch/x86.in | 1 | ||||
-rw-r--r-- | config/binutils/binutils.in | 11 | ||||
-rw-r--r-- | config/cc.in | 16 | ||||
-rw-r--r-- | config/cc/gcc.in | 26 | ||||
-rw-r--r-- | config/configure.in.in | 15 | ||||
-rw-r--r-- | config/kernel/windows.in | 2 | ||||
-rw-r--r-- | config/libc/glibc.in | 7 | ||||
-rw-r--r-- | config/libc/newlib.in | 24 | ||||
-rw-r--r-- | config/target.in | 4 |
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 |