summaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/configure.in.in6
-rw-r--r--config/global/extract.in6
-rw-r--r--config/libc/glibc.in5
-rw-r--r--config/libc/picolibc.in124
4 files changed, 138 insertions, 3 deletions
diff --git a/config/configure.in.in b/config/configure.in.in
index e042019..526064b 100644
--- a/config/configure.in.in
+++ b/config/configure.in.in
@@ -15,6 +15,12 @@ config CONFIGURE_has_wget
config CONFIGURE_has_curl
@KCONFIG_curl@
+config CONFIGURE_has_meson
+ @KCONFIG_meson@
+
+config CONFIGURE_has_ninja
+ @KCONFIG_ninja@
+
config CONFIGURE_has_make_3_81_or_newer
@KCONFIG_make_3_81_or_newer@
diff --git a/config/global/extract.in b/config/global/extract.in
index ba7f5f4..4e62480 100644
--- a/config/global/extract.in
+++ b/config/global/extract.in
@@ -107,5 +107,7 @@ config LOCAL_PATCH_DIR
help
Enter the custom patch directory here.
- Note that you must ensure that the directory containing your custom
- patches is arranged the same way the official directory is.
+ Note that you must ensure that tree layout of the directory containing
+ your custom patches match the bundled patches one. For example, if you
+ have custom GCC patches for <gcc-version>, place them under
+ $LOCAL_PATCH_DIR/gcc/<gcc-version>.
diff --git a/config/libc/glibc.in b/config/libc/glibc.in
index f891392..8174dc4 100644
--- a/config/libc/glibc.in
+++ b/config/libc/glibc.in
@@ -145,9 +145,10 @@ config GLIBC_NO_SPARC_V8
# in 2.16, adding an option to enable that code. Crosstool-NG backports that code
# to 2.14/2.15, but there is no harm in throwing this option even if that patch
# is not applied.
+# The option and the code has finally been removed in 2.32
config GLIBC_HAS_OBSOLETE_RPC
def_bool y
- depends on GLIBC_2_14_or_later
+ depends on GLIBC_2_14_or_later && !CT_GLIBC_2_32_or_later
config GLIBC_EXTRA_CONFIG_ARRAY
string
@@ -400,6 +401,8 @@ config GLIBC_SSP
# GCC8-related fixes were only available in glibc 2.27.
config GLIBC_ENABLE_WERROR
bool "Enable -Werror during the build"
+ depends on !(ARCH_POWERPC && ARCH_64 && GLIBC_V_2_32)
+ depends on !(ARCH_SPARC && GLIBC_V_2_32)
default y if GCC_7_or_older
default y if GCC_8_or_later && GLIBC_2_27_or_later
help
diff --git a/config/libc/picolibc.in b/config/libc/picolibc.in
new file mode 100644
index 0000000..cc1d4d1
--- /dev/null
+++ b/config/libc/picolibc.in
@@ -0,0 +1,124 @@
+# picolibc options
+
+## depends on BARE_METAL && CONFIGURE_has_meson && CONFIGURE_has_ninja
+## select LIBC_SUPPORT_THREADS_NATIVE
+
+## select CC_CORE_PASSES_NEEDED if CANADIAN
+## select CC_CORE_PASS_2_NEEDED if ! CANADIAN
+
+## help Picolibc is a C library intended for use on embedded systems. It is a
+## help conglomeration of several library parts, all under BSD-compatible software
+## help licenses that make them easily usable on embedded products. Picolibc
+## help is only available in source form. It can be compiled for a wide
+## help array of processors, and will usually work on any architecture with
+## help the addition of a few low-level routines.
+
+config PICOLIBC_CXA_ATEXIT
+ def_bool y
+ select LIBC_PROVIDES_CXA_ATEXIT
+
+config LIBC_PICOLIBC_TARGET_CFLAGS
+ string
+ prompt "Target CFLAGS for picolibc"
+ default ""
+ help
+ Used to add specific options when compiling the target libraries
+ (eg. -ffunction-sections -fdata-sections), which can't be defined
+ in global TARGET_CFLAGS, because they shall be not used for the
+ gcc target libraries.
+ Note: Both TARGET_CFLAGS and LIBC_PICOLIBC_TARGET_CFLAGS are used
+ to compile the libraries.
+
+ Leave blank if you don't know better.
+
+config LIBC_PICOLIBC_IO_C99FMT
+ bool
+ prompt "Enable IOs on C99 formats"
+ default y
+ help
+ Enable support for IOs on C99 formats.
+
+config LIBC_PICOLIBC_REGISTER_FINI
+ bool
+ prompt "Enable finalization function registration using atexit"
+ help
+ Enable finalization function registration using atexit.
+
+config LIBC_PICOLIBC_ATEXIT_DYNAMIC_ALLOC
+ bool
+ prompt "Enable dynamic allocation of atexit entries"
+ help
+ Enable dynamic allocation of atexit entries.
+
+config LIBC_PICOLIBC_GLOBAL_ATEXIT
+ bool
+ prompt "Enable atexit data structure as global variable"
+ help
+ Enable atexit data structure as global variable, instead
+ of being thread-local.
+
+config LIBC_PICOLIBC_LITE_EXIT
+ bool
+ prompt "Enable lite exit"
+ 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.
+
+config LIBC_PICOLIBC_MULTITHREAD
+ bool
+ prompt "Enable support for multiple threads"
+ default y
+ help
+ Enable support for multiple threads.
+
+config LIBC_PICOLIBC_RETARGETABLE_LOCKING
+ bool
+ prompt "Enable retargetable locking"
+ help
+ Enable retargetable locking to allow the operating system to override
+ the dummy lock functions defined within picolibc.
+
+config LIBC_PICOLIBC_EXTRA_SECTIONS
+ bool
+ prompt "Place each function & data element in their own section"
+ help
+ Place each function & data symbol in their own section. This allows
+ the linker to garbage collect unused symbols at link time.
+
+config LIBC_PICOLIBC_ENABLE_TARGET_OPTSPACE
+ bool
+ prompt "Optimize picolibc for size"
+ default y
+ help
+ Pass --enable-target-optspace to picolibc configure.
+
+ This will compile picolibc with -Os.
+
+config LIBC_PICOLIBC_LTO
+ bool
+ prompt "Enable Link Time Optimization"
+ depends on CC_GCC_USE_LTO
+ help
+ Builds the libraries with -flto to enable more aggressive link time
+ optimization. You will need to add -flto-partition=one to your
+ application's link line to keep the RETURN assembler macro together
+ with it's consumers.
+
+config LIBC_PICOLIBC_NANO_MALLOC
+ bool
+ prompt "Enable Nano Malloc"
+ default y
+ help
+ PICOLIBC has two implementations of malloc family's functions, one in
+ `mallocr.c' and the other one in `nano-mallocr.c'. This options
+ enables the nano-malloc implementation, which is for small systems
+ with very limited memory. Note that this implementation does not
+ support `--enable-malloc-debugging' any more.
+
+config LIBC_PICOLIBC_EXTRA_CONFIG_ARRAY
+ string
+ prompt "Extra config for picolibc"
+ default ""
+ help
+ Extra flags to pass to meson when configuring picolibc.