diff options
Diffstat (limited to 'config')
-rw-r--r-- | config/arch/arm.in | 15 | ||||
-rw-r--r-- | config/cc/gcc.in | 1 | ||||
-rw-r--r-- | config/libc/newlib.in | 24 |
3 files changed, 34 insertions, 6 deletions
diff --git a/config/arch/arm.in b/config/arch/arm.in index 07ad5ed2..5b55c2ae 100644 --- a/config/arch/arm.in +++ b/config/arch/arm.in @@ -9,13 +9,13 @@ ## 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 LINUX_REQUIRE_3_7_or_later if ARCH_64 && KERNEL_LINUX ## help The ARM architecture, as defined by: @@ -26,11 +26,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 +51,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/cc/gcc.in b/config/cc/gcc.in index 037291fe..ea7103b8 100644 --- a/config/cc/gcc.in +++ b/config/cc/gcc.in @@ -81,6 +81,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 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" |