summaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
authorAlexey Neyman <stilor@att.net>2017-05-27 07:01:49 (GMT)
committerAlexey Neyman <stilor@att.net>2017-07-08 17:57:56 (GMT)
commit57426168ad2c7e8367786ed466c86f6aeb49b3c3 (patch)
tree61510389772124cc07aff4ab8b53f4fc6ed9a460 /config
parente7deac3aad394325f9e6fc6fda41d34ec94a59e0 (diff)
Convert the rest of packages to new framework
Signed-off-by: Alexey Neyman <stilor@att.net>
Diffstat (limited to 'config')
-rw-r--r--config/cc.in2
-rw-r--r--config/cc/gcc.in409
-rw-r--r--config/cc/gcc.in.2408
-rw-r--r--config/kernel.in2
-rw-r--r--config/kernel/linux.in283
-rw-r--r--config/libc/avr-libc.in64
-rw-r--r--config/libc/bionic.in90
-rw-r--r--config/libc/glibc.in240
-rw-r--r--config/libc/glibc.in.266
-rw-r--r--config/libc/mingw-w64.in39
-rw-r--r--config/libc/mingw.in159
-rw-r--r--config/libc/musl.in64
-rw-r--r--config/libc/newlib.in205
-rw-r--r--config/libc/newlib.in.214
-rw-r--r--config/libc/uClibc.in144
-rw-r--r--config/libc/uClibc.in.25
16 files changed, 549 insertions, 1645 deletions
diff --git a/config/cc.in b/config/cc.in
index 81f168c..03bc8d7 100644
--- a/config/cc.in
+++ b/config/cc.in
@@ -135,4 +135,6 @@ config CC_LANG_OTHERS
Eg. gcc-4.1+ has a toy programming language, treelang. As it is not useful
in real life, it is not available in the selection above.
+source "config/gen/cc.in.2"
+
endmenu
diff --git a/config/cc/gcc.in b/config/cc/gcc.in
index c0feaef..cdcda9d 100644
--- a/config/cc/gcc.in
+++ b/config/cc/gcc.in
@@ -15,412 +15,3 @@
## help output, and lots of other features.
source "config/versions/gcc.in"
-
-# Only enable gcc's support for plugins if binutils has it as well
-# They are useful only when doing LTO, but it does no harm enabling
-# them even without LTO.
-config CC_GCC_ENABLE_PLUGINS
- bool
- depends on BINUTILS_PLUGINS
- depends on ! STATIC_TOOLCHAIN
- default y
-
-# If binutils installs gold, enable support for gold in gcc
-config CC_GCC_GOLD
- bool
- depends on BINUTILS_GOLD_INSTALLED
- default y
-
-config CC_GCC_HAS_LIBMPX
- depends on GCC_5_or_later
- bool
-
-config CC_LANG_JAVA_USE_ECJ
- bool
- default y
- depends on CC_LANG_JAVA
-
-config CC_GCC_ENABLE_CXX_FLAGS
- string
- prompt "Flags to pass to --enable-cxx-flags"
- default ""
- help
- Enter here the value of the gcc's ./configure option --enable-cxx-flags.
- Leave empty if you don't know better.
-
- Note: just pass in the option _value_, that is only the part that goes
- after the '=' sign.
-
-config CC_GCC_CORE_EXTRA_CONFIG_ARRAY
- string
- prompt "Core gcc extra config"
- default ""
- depends on CC_CORE_PASS_1_NEEDED || CC_CORE_PASS_2_NEEDED
- help
- Extra flags to pass onto ./configure when configuring the core gcc.
-
- The core gcc is a stripped down, C-only compiler needed to build
- the C library. Kinda bootstrap gcc, if you wish.
-
- You can enter multiple arguments here, and arguments can contain spaces
- if they are properly quoted (or escaped, but prefer quotes). Eg.:
- --with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
-
-config CC_GCC_EXTRA_CONFIG_ARRAY
- string
- prompt "gcc extra config"
- default ""
- help
- Extra flags to pass onto ./configure when configuring gcc.
-
- You can enter multiple arguments here, and arguments can contain spaces
- if they are properly quoted (or escaped, but prefer quotes). Eg.:
- --with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
-
-config CC_GCC_MULTILIB_LIST
- string
- prompt "List of multilib variants"
- depends on MULTILIB
- help
- Architecture-specific option of expanding or restricting the list of
- the multilib variants to be built. Refer to GCC installation manual
- for the format of this option for a particular architecture.
- Leave empty to use the default list for this architecture.
-
-config STATIC_TOOLCHAIN
- bool
- select CC_GCC_STATIC_LIBSTDCXX
-
-config CC_GCC_STATIC_LIBSTDCXX
- bool
- prompt "Link libstdc++ statically into the gcc binary"
- default y
- depends on CONFIGURE_has_static_link || CANADIAN || CROSS_NATIVE
- select WANTS_STATIC_LINK if CROSS || NATIVE
- select WANTS_STATIC_LINK_CXX if CROSS || NATIVE
- help
- Newer gcc versions require some c++ libraries. So statically
- linking libstdc++ increases the likeliness that the gcc binary will
- run on machines other than the one which it was built on, without
- having to worry about distributing the matching version of libstdc++
- along with it.
-
-config CC_GCC_SYSTEM_ZLIB
- bool
- prompt "Use system zlib"
- help
- Do not use bundled zlib, and use the zlib already available for
- the host (eg. the system library).
-
- If zlib is built as a companion library, selecting this option
- will use it.
-
- If you want to build a static toolchain, you will need to also
- install the static version of zlib for your host.
-
- If unsure, say 'n'.
-
-config CC_GCC_CONFIG_TLS
- tristate
- prompt "Configure TLS (Thread Local Storage)"
- default m
- help
- Specify that the target supports TLS (Thread Local Storage). Usually
- configure can correctly determine if TLS is supported. In cases where
- it guesses incorrectly, TLS can be explicitly enabled or disabled.
- This can happen if the assembler supports TLS but the C library does
- not, or if the assumptions made by the configure test are incorrect.
-
- Option | TLS use | Associated ./configure switch
- ---------+--------------------+--------------------------------
- Y | forcibly used | --enable-tls
- M | auto | (none, ./configure decides)
- N | forcibly not used | --disable-tls
-
- If unsure, say 'M'.
-
-#-----------------------------------------------------------------------------
-# Optimisation features
-
-comment "Optimisation features"
-
-# Defined in config/cc/gcc.in
-# For graphite: gcc needs cloog and isl
-# In >= gcc-5.x, cloog is no longer needed, but isl is.
-# Prompt in config/cc/gcc.in.2
-config CC_GCC_USE_GRAPHITE
- bool "Enable GRAPHITE loop optimisations"
- default y
- select CLOOG_NEEDED if !CC_GCC_5_or_later
- select ISL_NEEDED
- help
- Enable the GRAPHITE loop optimsations.
-
- On some systems (eg. Cygwin), CLooG and ISL (required to enable
- GRAPHITE) may not build properly (yet), so you'll have to say 'N'
- here (or help debug the issues)
-
- TODO: Is this still true on Cygwin?
-
-# The way LTO works is a bit twisted.
-# See: http://gcc.gnu.org/wiki/LinkTimeOptimization#Requirements
-# Basically:
-# - if binutils has plugins: LTO is handled by ld/gold by loading
-# the plugin when linking
-# - if binutils does not have plugins: LTO is handled by collect2
-# In any case, LTO support does not depend on plugins, but takes
-# advantage of it
-config CC_GCC_USE_LTO
- bool "Enable LTO"
- default y
- depends on ! STATIC_TOOLCHAIN
- help
- Enable the Link Time Optimisations.
-
-#-----------------------------------------------------------------------------
-comment "Settings for libraries running on target"
-
-config CC_GCC_ENABLE_TARGET_OPTSPACE
- bool
- prompt "Optimize gcc libs for size"
- default y
- help
- Pass --enable-target-optspace to crossgcc's configure.
-
- This will compile crossgcc's libs with -Os.
-
-config CC_GCC_LIBMUDFLAP
- bool
- prompt "Compile libmudflap"
- help
- libmudflap is a pointer-use checking tool, which can detect
- various mis-usages of pointers in C and (to some extents) C++.
-
- You should say 'N' here, as libmduflap generates instrumented
- code (thus it is a bit bigger and a bit slower) and requires
- re-compilation and re-link, while it exists better run-time
- alternatives (eg. DUMA, dmalloc...) that need neither re-
- compilation nor re-link.
-
-config CC_GCC_LIBGOMP
- bool
- prompt "Compile libgomp"
- depends on !THREADS_NONE
- help
- libgomp is "the GNU implementation of the OpenMP Application Programming
- Interface (API) for multi-platform shared-memory parallel programming in
- C/C++ and Fortran". See:
- http://gcc.gnu.org/onlinedocs/libgomp/
-
- GNU OpenMP support requires threading.
-
- The default is 'N'. Say 'Y' if you need it, and report success/failure.
-
-config CC_GCC_LIBSSP
- bool
- prompt "Compile libssp"
- help
- libssp is the run-time Stack-Smashing Protection library.
-
- The default is 'N'. Say 'Y' if you need it, and report success/failure.
-
-config CC_GCC_LIBQUADMATH
- bool
- prompt "Compile libquadmath"
- help
- libquadmath is a library which provides quad-precision mathematical
- functions on targets supporting the __float128 datatype. See:
- http://gcc.gnu.org/onlinedocs/libquadmath/
-
- The default is 'N'. Say 'Y' if you need it, and report success/failure.
-
-config CC_GCC_LIBSANITIZER
- bool
- prompt "Compile libsanitizer"
- depends on THREADS_NATIVE
- depends on ! LIBC_uClibc && ! LIBC_musl # Currently lacks required headers (like netrom.h)
- 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.
-
-config CC_GCC_LIBMPX
- bool
- default y
- prompt "Compile libmpx"
- depends on CC_GCC_HAS_LIBMPX
- depends on ARCH_x86
- # MUSL does not define libc types that GCC requires. Mingw lacks certain headers.
- depends on !LIBC_musl && ! LIBC_mingw
- help
- Enable GCC support for Intel Memory Protection Extensions (MPX).
-
-#-----------------------------------------------------------------------------
-
-comment "Misc. obscure options."
-
-config CC_CXA_ATEXIT
- bool
- prompt "Use __cxa_atexit"
- default y
- depends on ! BARE_METAL || LIBC_PROVIDES_CXA_ATEXIT
- help
- If you get the missing symbol "__cxa_atexit" when building C++ programs,
- you might want to try disabling this option.
-
-config CC_GCC_DISABLE_PCH
- bool
- prompt "Do not build PCH"
- help
- Say 'y' here to not use Pre-Compiled Headers in the resulting toolchain.
- at the expense of speed when compiling C++ code.
-
- For some configurations (most notably canadian?), PCH are broken, and
- need to be disabled. Please see:
- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40974
-
-config CC_GCC_SJLJ_EXCEPTIONS
- tristate
- prompt "Use sjlj for exceptions"
- depends on ! BARE_METAL
- default m
- help
- 'sjlj' is short for setjmp/longjmp.
-
- On some architectures, stack unwinding during exception handling
- works perfectly well without using sjlj, while on some others,
- use of sjlj is required for proper stack unwinding.
-
- Option | sjlj use | Associated ./configure switch
- ---------+--------------------+--------------------------------
- Y | forcibly used | --enable-sjlj-exceptions
- M | auto | (none, ./configure decides)
- N | forcibly not used | --disable-sjlj-exceptions
-
- It should be safe to say 'M' or 'N'.
-
- It can happen that ./configure is wrong in some cases. Known
- case is for ARM big endian, where you should say 'N'.
-
-config CC_GCC_LDBL_128
- tristate
- prompt "Enable 128-bit long doubles"
- default m
- help
- Saying 'Y' will force gcc to use 128-bit wide long doubles
- Saying 'N' will force gcc to use 64-bit wide long doubles
- Saying 'M' will let gcc choose (default is 128-bit for
- glibc >= 2.4, 64-bit otherwise)
-
- If in doubt, keep the default, ie. 'M'.
-
-config CC_GCC_BUILD_ID
- bool
- prompt "Enable build-id"
- help
- Tells GCC to pass --build-id option to the linker for all final
- links (links performed without the -r or --relocatable option),
- if the linker supports it. If you say 'y' here, but your linker
- does not support --build-id option, a warning is issued and this
- option is ignored.
-
- The default is off.
-
-choice CC_GCC_LNK_HASH_STYLE_CHOICE
- bool
- prompt "linker hash style"
- depends on BINUTILS_HAS_HASH_STYLE
-
-config CC_GCC_LNK_HASH_STYLE_DEFAULT
- bool
- prompt "Default"
- help
- Do not specify any value, and use the default value (sysv).
-
-config CC_GCC_LNK_HASH_STYLE_SYSV
- bool
- prompt "sysv"
- help
- Force use of the SYSV hash style.
-
-config CC_GCC_LNK_HASH_STYLE_GNU
- bool
- prompt "gnu"
- help
- Force use of the GNU hash style.
-
-config CC_GCC_LNK_HASH_STYLE_BOTH
- bool
- prompt "both"
- help
- Force use of both hash styles.
-
-endchoice # CC_GCC_LNK_HASH_STYLE_CHOICE
-
-config CC_GCC_LNK_HASH_STYLE
- string
- default "" if CC_GCC_LNK_HASH_STYLE_DEFAULT
- default "sysv" if CC_GCC_LNK_HASH_STYLE_SYSV
- default "gnu" if CC_GCC_LNK_HASH_STYLE_GNU
- default "both" if CC_GCC_LNK_HASH_STYLE_BOTH
-
-choice CC_GCC_DEC_FLOATS_CHOICE
- bool "Decimal floats"
- default CC_GCC_DEC_FLOATS_AUTO
- help
- Choose what type of decimal floats to support.
-
- Note that using decimal floats requires a C library that provides
- support for fenv (namely, the fenv.h header). This is the case
- for (e)glibc, and uClibc on x86/32. For other C libraries, or
- uClibc on other archs, this might not be the case, so you should
- disable support for decimal floats.
-
- The default is to let ./configure decide.
-
-config CC_GCC_DEC_FLOAT_AUTO
- bool "auto"
- help
- Let ./configure decide. If you say 'y' here, gcc will default to:
- - 'bid' for x86 (32- and 64-bit)
- - 'dpd' for powerpc
- - 'no' for the other architectures
-
-config CC_GCC_DEC_FLOAT_BID
- bool "bid"
- help
- Use the 'binary integer decimal' format for decimal floats.
-
-config CC_GCC_DEC_FLOAT_DPD
- bool "dpd"
- help
- Use the 'densely packed decimal' for decimal floats.
-
-config CC_GCC_DEC_FLOATS_NO
- bool "no"
- help
- Do not support decimal floats. The default.
-
-endchoice # CC_GCC_DEC_FLOATS_CHOICE
-
-config CC_GCC_DEC_FLOATS
- string
- default "" if CC_GCC_DEC_FLOATS_AUTO
- default "bid" if CC_GCC_DEC_FLOATS_BID
- default "dpd" if CC_GCC_DEC_FLOATS_DPD
- default "no" if CC_GCC_DEC_FLOATS_NO
-
-#-----------------------------------------------------------------------------
-
-config CC_GCC_HAS_ARCH_OPTIONS
- bool
-
-comment "archictecture-specific options"
- depends on CC_GCC_HAS_ARCH_OPTIONS
-
-if ARCH_mips
-source "config/cc/gcc.in.mips"
-endif # ARCH_mips
diff --git a/config/cc/gcc.in.2 b/config/cc/gcc.in.2
new file mode 100644
index 0000000..e238076
--- /dev/null
+++ b/config/cc/gcc.in.2
@@ -0,0 +1,408 @@
+# Only enable gcc's support for plugins if binutils has it as well
+# They are useful only when doing LTO, but it does no harm enabling
+# them even without LTO.
+config CC_GCC_ENABLE_PLUGINS
+ bool
+ depends on BINUTILS_PLUGINS
+ depends on ! STATIC_TOOLCHAIN
+ default y
+
+# If binutils installs gold, enable support for gold in gcc
+config CC_GCC_GOLD
+ bool
+ depends on BINUTILS_GOLD_INSTALLED
+ default y
+
+config CC_GCC_HAS_LIBMPX
+ depends on GCC_5_or_later
+ bool
+
+config CC_LANG_JAVA_USE_ECJ
+ bool
+ default y
+ depends on CC_LANG_JAVA
+
+config CC_GCC_ENABLE_CXX_FLAGS
+ string
+ prompt "Flags to pass to --enable-cxx-flags"
+ default ""
+ help
+ Enter here the value of the gcc's ./configure option --enable-cxx-flags.
+ Leave empty if you don't know better.
+
+ Note: just pass in the option _value_, that is only the part that goes
+ after the '=' sign.
+
+config CC_GCC_CORE_EXTRA_CONFIG_ARRAY
+ string
+ prompt "Core gcc extra config"
+ default ""
+ depends on CC_CORE_PASS_1_NEEDED || CC_CORE_PASS_2_NEEDED
+ help
+ Extra flags to pass onto ./configure when configuring the core gcc.
+
+ The core gcc is a stripped down, C-only compiler needed to build
+ the C library. Kinda bootstrap gcc, if you wish.
+
+ You can enter multiple arguments here, and arguments can contain spaces
+ if they are properly quoted (or escaped, but prefer quotes). Eg.:
+ --with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
+
+config CC_GCC_EXTRA_CONFIG_ARRAY
+ string
+ prompt "gcc extra config"
+ default ""
+ help
+ Extra flags to pass onto ./configure when configuring gcc.
+
+ You can enter multiple arguments here, and arguments can contain spaces
+ if they are properly quoted (or escaped, but prefer quotes). Eg.:
+ --with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
+
+config CC_GCC_MULTILIB_LIST
+ string
+ prompt "List of multilib variants"
+ depends on MULTILIB
+ help
+ Architecture-specific option of expanding or restricting the list of
+ the multilib variants to be built. Refer to GCC installation manual
+ for the format of this option for a particular architecture.
+ Leave empty to use the default list for this architecture.
+
+config STATIC_TOOLCHAIN
+ bool
+ select CC_GCC_STATIC_LIBSTDCXX
+
+config CC_GCC_STATIC_LIBSTDCXX
+ bool
+ prompt "Link libstdc++ statically into the gcc binary"
+ default y
+ depends on CONFIGURE_has_static_link || CANADIAN || CROSS_NATIVE
+ select WANTS_STATIC_LINK if CROSS || NATIVE
+ select WANTS_STATIC_LINK_CXX if CROSS || NATIVE
+ help
+ Newer gcc versions require some c++ libraries. So statically
+ linking libstdc++ increases the likeliness that the gcc binary will
+ run on machines other than the one which it was built on, without
+ having to worry about distributing the matching version of libstdc++
+ along with it.
+
+config CC_GCC_SYSTEM_ZLIB
+ bool
+ prompt "Use system zlib"
+ help
+ Do not use bundled zlib, and use the zlib already available for
+ the host (eg. the system library).
+
+ If zlib is built as a companion library, selecting this option
+ will use it.
+
+ If you want to build a static toolchain, you will need to also
+ install the static version of zlib for your host.
+
+ If unsure, say 'n'.
+
+config CC_GCC_CONFIG_TLS
+ tristate
+ prompt "Configure TLS (Thread Local Storage)"
+ default m
+ help
+ Specify that the target supports TLS (Thread Local Storage). Usually
+ configure can correctly determine if TLS is supported. In cases where
+ it guesses incorrectly, TLS can be explicitly enabled or disabled.
+ This can happen if the assembler supports TLS but the C library does
+ not, or if the assumptions made by the configure test are incorrect.
+
+ Option | TLS use | Associated ./configure switch
+ ---------+--------------------+--------------------------------
+ Y | forcibly used | --enable-tls
+ M | auto | (none, ./configure decides)
+ N | forcibly not used | --disable-tls
+
+ If unsure, say 'M'.
+
+#-----------------------------------------------------------------------------
+# Optimisation features
+
+comment "Optimisation features"
+
+# Defined in config/cc/gcc.in
+# For graphite: gcc needs cloog and isl
+# In >= gcc-5.x, cloog is no longer needed, but isl is.
+# Prompt in config/cc/gcc.in.2
+config CC_GCC_USE_GRAPHITE
+ bool "Enable GRAPHITE loop optimisations"
+ default y
+ select CLOOG_NEEDED if !CC_GCC_5_or_later
+ select ISL_NEEDED
+ help
+ Enable the GRAPHITE loop optimsations.
+
+ On some systems (eg. Cygwin), CLooG and ISL (required to enable
+ GRAPHITE) may not build properly (yet), so you'll have to say 'N'
+ here (or help debug the issues)
+
+ TODO: Is this still true on Cygwin?
+
+# The way LTO works is a bit twisted.
+# See: http://gcc.gnu.org/wiki/LinkTimeOptimization#Requirements
+# Basically:
+# - if binutils has plugins: LTO is handled by ld/gold by loading
+# the plugin when linking
+# - if binutils does not have plugins: LTO is handled by collect2
+# In any case, LTO support does not depend on plugins, but takes
+# advantage of it
+config CC_GCC_USE_LTO
+ bool "Enable LTO"
+ default y
+ depends on ! STATIC_TOOLCHAIN
+ help
+ Enable the Link Time Optimisations.
+
+#-----------------------------------------------------------------------------
+comment "Settings for libraries running on target"
+
+config CC_GCC_ENABLE_TARGET_OPTSPACE
+ bool
+ prompt "Optimize gcc libs for size"
+ default y
+ help
+ Pass --enable-target-optspace to crossgcc's configure.
+
+ This will compile crossgcc's libs with -Os.
+
+config CC_GCC_LIBMUDFLAP
+ bool
+ prompt "Compile libmudflap"
+ help
+ libmudflap is a pointer-use checking tool, which can detect
+ various mis-usages of pointers in C and (to some extents) C++.
+
+ You should say 'N' here, as libmduflap generates instrumented
+ code (thus it is a bit bigger and a bit slower) and requires
+ re-compilation and re-link, while it exists better run-time
+ alternatives (eg. DUMA, dmalloc...) that need neither re-
+ compilation nor re-link.
+
+config CC_GCC_LIBGOMP
+ bool
+ prompt "Compile libgomp"
+ depends on !THREADS_NONE
+ help
+ libgomp is "the GNU implementation of the OpenMP Application Programming
+ Interface (API) for multi-platform shared-memory parallel programming in
+ C/C++ and Fortran". See:
+ http://gcc.gnu.org/onlinedocs/libgomp/
+
+ GNU OpenMP support requires threading.
+
+ The default is 'N'. Say 'Y' if you need it, and report success/failure.
+
+config CC_GCC_LIBSSP
+ bool
+ prompt "Compile libssp"
+ help
+ libssp is the run-time Stack-Smashing Protection library.
+
+ The default is 'N'. Say 'Y' if you need it, and report success/failure.
+
+config CC_GCC_LIBQUADMATH
+ bool
+ prompt "Compile libquadmath"
+ help
+ libquadmath is a library which provides quad-precision mathematical
+ functions on targets supporting the __float128 datatype. See:
+ http://gcc.gnu.org/onlinedocs/libquadmath/
+
+ The default is 'N'. Say 'Y' if you need it, and report success/failure.
+
+config CC_GCC_LIBSANITIZER
+ bool
+ prompt "Compile libsanitizer"
+ depends on THREADS_NATIVE
+ depends on ! LIBC_uClibc && ! LIBC_musl # Currently lacks required headers (like netrom.h)
+ 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.
+
+config CC_GCC_LIBMPX
+ bool
+ default y
+ prompt "Compile libmpx"
+ depends on CC_GCC_HAS_LIBMPX
+ depends on ARCH_x86
+ # MUSL does not define libc types that GCC requires. Mingw lacks certain headers.
+ depends on !LIBC_musl && ! LIBC_mingw
+ help
+ Enable GCC support for Intel Memory Protection Extensions (MPX).
+
+#-----------------------------------------------------------------------------
+
+comment "Misc. obscure options."
+
+config CC_CXA_ATEXIT
+ bool
+ prompt "Use __cxa_atexit"
+ default y
+ depends on ! BARE_METAL || LIBC_PROVIDES_CXA_ATEXIT
+ help
+ If you get the missing symbol "__cxa_atexit" when building C++ programs,
+ you might want to try disabling this option.
+
+config CC_GCC_DISABLE_PCH
+ bool
+ prompt "Do not build PCH"
+ help
+ Say 'y' here to not use Pre-Compiled Headers in the resulting toolchain.
+ at the expense of speed when compiling C++ code.
+
+ For some configurations (most notably canadian?), PCH are broken, and
+ need to be disabled. Please see:
+ http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40974
+
+config CC_GCC_SJLJ_EXCEPTIONS
+ tristate
+ prompt "Use sjlj for exceptions"
+ depends on ! BARE_METAL
+ default m
+ help
+ 'sjlj' is short for setjmp/longjmp.
+
+ On some architectures, stack unwinding during exception handling
+ works perfectly well without using sjlj, while on some others,
+ use of sjlj is required for proper stack unwinding.
+
+ Option | sjlj use | Associated ./configure switch
+ ---------+--------------------+--------------------------------
+ Y | forcibly used | --enable-sjlj-exceptions
+ M | auto | (none, ./configure decides)
+ N | forcibly not used | --disable-sjlj-exceptions
+
+ It should be safe to say 'M' or 'N'.
+
+ It can happen that ./configure is wrong in some cases. Known
+ case is for ARM big endian, where you should say 'N'.
+
+config CC_GCC_LDBL_128
+ tristate
+ prompt "Enable 128-bit long doubles"
+ default m
+ help
+ Saying 'Y' will force gcc to use 128-bit wide long doubles
+ Saying 'N' will force gcc to use 64-bit wide long doubles
+ Saying 'M' will let gcc choose (default is 128-bit for
+ glibc >= 2.4, 64-bit otherwise)
+
+ If in doubt, keep the default, ie. 'M'.
+
+config CC_GCC_BUILD_ID
+ bool
+ prompt "Enable build-id"
+ help
+ Tells GCC to pass --build-id option to the linker for all final
+ links (links performed without the -r or --relocatable option),
+ if the linker supports it. If you say 'y' here, but your linker
+ does not support --build-id option, a warning is issued and this
+ option is ignored.
+
+ The default is off.
+
+choice CC_GCC_LNK_HASH_STYLE_CHOICE
+ bool
+ prompt "linker hash style"
+ depends on BINUTILS_HAS_HASH_STYLE
+
+config CC_GCC_LNK_HASH_STYLE_DEFAULT
+ bool
+ prompt "Default"
+ help
+ Do not specify any value, and use the default value (sysv).
+
+config CC_GCC_LNK_HASH_STYLE_SYSV
+ bool
+ prompt "sysv"
+ help
+ Force use of the SYSV hash style.
+
+config CC_GCC_LNK_HASH_STYLE_GNU
+ bool
+ prompt "gnu"
+ help
+ Force use of the GNU hash style.
+
+config CC_GCC_LNK_HASH_STYLE_BOTH
+ bool
+ prompt "both"
+ help
+ Force use of both hash styles.
+
+endchoice # CC_GCC_LNK_HASH_STYLE_CHOICE
+
+config CC_GCC_LNK_HASH_STYLE
+ string
+ default "" if CC_GCC_LNK_HASH_STYLE_DEFAULT
+ default "sysv" if CC_GCC_LNK_HASH_STYLE_SYSV
+ default "gnu" if CC_GCC_LNK_HASH_STYLE_GNU
+ default "both" if CC_GCC_LNK_HASH_STYLE_BOTH
+
+choice CC_GCC_DEC_FLOATS_CHOICE
+ bool "Decimal floats"
+ default CC_GCC_DEC_FLOATS_AUTO
+ help
+ Choose what type of decimal floats to support.
+
+ Note that using decimal floats requires a C library that provides
+ support for fenv (namely, the fenv.h header). This is the case
+ for (e)glibc, and uClibc on x86/32. For other C libraries, or
+ uClibc on other archs, this might not be the case, so you should
+ disable support for decimal floats.
+
+ The default is to let ./configure decide.
+
+config CC_GCC_DEC_FLOAT_AUTO
+ bool "auto"
+ help
+ Let ./configure decide. If you say 'y' here, gcc will default to:
+ - 'bid' for x86 (32- and 64-bit)
+ - 'dpd' for powerpc
+ - 'no' for the other architectures
+
+config CC_GCC_DEC_FLOAT_BID
+ bool "bid"
+ help
+ Use the 'binary integer decimal' format for decimal floats.
+
+config CC_GCC_DEC_FLOAT_DPD
+ bool "dpd"
+ help
+ Use the 'densely packed decimal' for decimal floats.
+
+config CC_GCC_DEC_FLOATS_NO
+ bool "no"
+ help
+ Do not support decimal floats. The default.
+
+endchoice # CC_GCC_DEC_FLOATS_CHOICE
+
+config CC_GCC_DEC_FLOATS
+ string
+ default "" if CC_GCC_DEC_FLOATS_AUTO
+ default "bid" if CC_GCC_DEC_FLOATS_BID
+ default "dpd" if CC_GCC_DEC_FLOATS_DPD
+ default "no" if CC_GCC_DEC_FLOATS_NO
+
+#-----------------------------------------------------------------------------
+
+config CC_GCC_HAS_ARCH_OPTIONS
+ bool
+
+comment "archictecture-specific options"
+ depends on CC_GCC_HAS_ARCH_OPTIONS
+
+if ARCH_mips
+source "config/cc/gcc.in.mips"
+endif # ARCH_mips
diff --git a/config/kernel.in b/config/kernel.in
index c04f2cb..2ae7656 100644
--- a/config/kernel.in
+++ b/config/kernel.in
@@ -4,9 +4,11 @@ menu "Operating System"
# Config option used throughout the config and code to determine wether
# we have a kernel or not (there might be different bare metal stuff)...
+# FIXME use CT_KERNEL_bare_metal instead
config BARE_METAL
bool
+# FIXME use CT_KERNEL_windows instead
config WINDOWS
bool
diff --git a/config/kernel/linux.in b/config/kernel/linux.in
index dc0f5e5..e1edb48 100644
--- a/config/kernel/linux.in
+++ b/config/kernel/linux.in
@@ -5,290 +5,11 @@
##
## help Build a toolchain targeting systems running Linux as a kernel.
-config KERNEL_LINUX_CUSTOM
- bool
- prompt "custom tarball or directory"
- help
- The choosen linux version shall be not downloaded. Instead use
- a custom location to get the source.
-
-if KERNEL_LINUX_CUSTOM
-
-config KERNEL_LINUX_CUSTOM_LOCATION
- string
- prompt "Path to custom source, tarball or directory"
- help
- Enter the path to the directory or tarball of your source for linux.
-
- If the path is a tarball, it should extract to: <name>-<version>/
- where the name is this component, linux, and the version is set
- below in the custom version string.
-
-config KERNEL_LINUX_CUSTOM_VERSION
- string
- prompt "Custom Linux version"
- help
- Enter the version number for your custom linux.
-
-config KERNEL_VERSION
- string
- default KERNEL_LINUX_CUSTOM_VERSION
-
-endif # KERNEL_LINUX_CUSTOM
-
-if ! KERNEL_LINUX_CUSTOM
-
# GLIBC and kernel are special when it comes to obsoletion. Users
# of crosstool-ng depend on the ability to build new toolchains matching
# the kernel/libc versions of a particular target system, and LTS releases
# are still using quite ancient versions. Please do not retire versions
# (including versions in between) until the EOL dates indicated below.
-choice
- bool
- prompt "Linux kernel version"
-# Don't remove next line
-# CT_INSERT_VERSION_BELOW
-
-config KERNEL_V_4_11
- bool
- prompt "4.11.3"
-
-config KERNEL_V_4_10
- bool
- prompt "4.10.17 (EOL)"
-
-config KERNEL_V_4_9
- bool
- prompt "4.9.30"
-
-config KERNEL_V_4_8
- bool
- prompt "4.8.17 (EOL)"
- depends on OBSOLETE
-
-config KERNEL_V_4_7
- bool
- prompt "4.7.10 (EOL)"
- depends on OBSOLETE
-
-config KERNEL_V_4_6
- bool
- prompt "4.6.7 (EOL)"
- depends on OBSOLETE
-
-config KERNEL_V_4_5
- bool
- prompt "4.5.7 (EOL)"
- depends on OBSOLETE
-
-# EOL 04/2021 [Ubuntu16.04]
-config KERNEL_V_4_4
- bool
- prompt "4.4.70"
-
-config KERNEL_V_4_3
- bool
- prompt "4.3.6 (EOL)"
- depends on OBSOLETE
-
-config KERNEL_V_4_2
- bool
- prompt "4.2.8 (EOL)"
- depends on OBSOLETE
-
-config KERNEL_V_4_1
- bool
- prompt "4.1.40"
-
-config KERNEL_V_4_0
- bool
- prompt "4.0.9 (EOL)"
- depends on OBSOLETE
-
-config KERNEL_V_3_19
- bool
- prompt "3.19.8 (EOL)"
- depends on OBSOLETE
-
-config KERNEL_V_3_18
- bool
- prompt "3.18.55 (EOL)"
- depends on OBSOLETE
-
-config KERNEL_V_3_17
- bool
- prompt "3.17.8 (EOL)"
- depends on OBSOLETE
-
-config KERNEL_V_3_16
- bool
- prompt "3.16.43"
-
-config KERNEL_V_3_15
- bool
- prompt "3.15.10 (EOL)"
- depends on OBSOLETE
-
-config KERNEL_V_3_14
- bool
- prompt "3.14.79 (EOL)"
- depends on OBSOLETE
-
-# EOL 04/2019 [Ubuntu14.04]
-config KERNEL_V_3_13
- bool
- prompt "3.13.11 (EOL)"
- depends on OBSOLETE
-
-config KERNEL_V_3_12
- bool
- prompt "3.12.74"
-
-config KERNEL_V_3_11
- bool
- prompt "3.11.10 (EOL)"
- depends on OBSOLETE
-
-# EOL 06/2024 [CentOS7.x]
-config KERNEL_V_3_10
- bool
- prompt "3.10.105"
-
-config KERNEL_V_3_9
- bool
- prompt "3.9.11 (EOL)"
- depends on OBSOLETE
-
-config KERNEL_V_3_8
- bool
- prompt "3.8.13 (EOL)"
- depends on OBSOLETE
-
-config KERNEL_V_3_7
- bool
- prompt "3.7.10 (EOL)"
- depends on OBSOLETE
-
-config KERNEL_V_3_6
- bool
- prompt "3.6.11 (EOL)"
- depends on OBSOLETE
-
-config KERNEL_V_3_5
- bool
- prompt "3.5.7 (EOL)"
- depends on OBSOLETE
-
-config KERNEL_V_3_4
- bool
- prompt "3.4.113"
-
-config KERNEL_V_3_3
- bool
- prompt "3.3.8 (EOL)"
- depends on OBSOLETE
-
-# EOL 04/2017 [Ubuntu12.04]
-config KERNEL_V_3_2
- bool
- prompt "3.2.88"
-
-config KERNEL_V_3_1
- bool
- prompt "3.1.10 (EOL)"
- depends on OBSOLETE
-
-config KERNEL_V_3_0
- bool
- prompt "3.0.101 (EOL)"
- depends on OBSOLETE
-
-config KERNEL_V_2_6_39
- bool
- prompt "2.6.39.4 (EOL)"
- depends on OBSOLETE
-
-config KERNEL_V_2_6_38
- bool
- prompt "2.6.38.8 (EOL)"
- depends on OBSOLETE
-
-config KERNEL_V_2_6_37
- bool
- prompt "2.6.37.6 (EOL)"
- depends on OBSOLETE
-
-config KERNEL_V_2_6_36
- bool
- prompt "2.6.36.4 (EOL)"
- depends on OBSOLETE
-
-config KERNEL_V_2_6_35
- bool
- prompt "2.6.35.9 (EOL)"
- depends on OBSOLETE
-
-config KERNEL_V_2_6_34
- bool
- prompt "2.6.34.7 (EOL)"
- depends on OBSOLETE
-
-config KERNEL_V_2_6_33
- bool
- prompt "2.6.33.7 (EOL)"
- depends on OBSOLETE
-
-# EOL 11/2020 [CentOS6.x]
-config KERNEL_V_2_6_32
- bool
- prompt "2.6.32.27 (EOL)"
- depends on OBSOLETE
-
-endchoice
-
-config KERNEL_VERSION
- string
-# Don't remove next line
-# CT_INSERT_VERSION_STRING_BELOW
- default "4.11.3" if KERNEL_V_4_11
- default "4.10.17" if KERNEL_V_4_10
- default "4.9.30" if KERNEL_V_4_9
- default "4.8.17" if KERNEL_V_4_8
- default "4.7.10" if KERNEL_V_4_7
- default "4.6.7" if KERNEL_V_4_6
- default "4.5.7" if KERNEL_V_4_5
- default "4.4.70" if KERNEL_V_4_4
- default "4.3.6" if KERNEL_V_4_3
- default "4.2.8" if KERNEL_V_4_2
- default "4.1.40" if KERNEL_V_4_1
- default "4.0.9" if KERNEL_V_4_0
- default "3.19.8" if KERNEL_V_3_19
- default "3.18.55" if KERNEL_V_3_18
- default "3.17.8" if KERNEL_V_3_17
- default "3.16.43" if KERNEL_V_3_16
- default "3.15.10" if KERNEL_V_3_15
- default "3.14.79" if KERNEL_V_3_14
- default "3.13.11" if KERNEL_V_3_13
- default "3.12.74" if KERNEL_V_3_12
- default "3.11.10" if KERNEL_V_3_11
- default "3.10.105" if KERNEL_V_3_10
- default "3.9.11" if KERNEL_V_3_9
- default "3.8.13" if KERNEL_V_3_8
- default "3.7.10" if KERNEL_V_3_7
- default "3.6.11" if KERNEL_V_3_6
- default "3.5.7" if KERNEL_V_3_5
- default "3.4.113" if KERNEL_V_3_4
- default "3.3.8" if KERNEL_V_3_3
- default "3.2.88" if KERNEL_V_3_2
- default "3.1.10" if KERNEL_V_3_1
- default "3.0.101" if KERNEL_V_3_0
- default "2.6.39.4" if KERNEL_V_2_6_39
- default "2.6.38.8" if KERNEL_V_2_6_38
- default "2.6.37.6" if KERNEL_V_2_6_37
- default "2.6.36.4" if KERNEL_V_2_6_36
- default "2.6.35.9" if KERNEL_V_2_6_35
- default "2.6.34.7" if KERNEL_V_2_6_34
- default "2.6.33.7" if KERNEL_V_2_6_33
- default "2.6.32.27" if KERNEL_V_2_6_32
+# Such pinned versions are indicated in version.desc files with a comment.
-endif # ! KERNEL_LINUX_CUSTOM
+source "config/versions/linux.in"
diff --git a/config/libc/avr-libc.in b/config/libc/avr-libc.in
index 2b8d891..6abbe01 100644
--- a/config/libc/avr-libc.in
+++ b/config/libc/avr-libc.in
@@ -9,66 +9,4 @@
## help Atmel AVR 8-bit RISC microcontrollers. In addition, the library
## help provides the basic startup code needed by most applications.
-config LIBC_AVR_LIBC_CUSTOM
- bool
- prompt "Custom avr-libc"
- depends on EXPERIMENTAL
- help
- The choosen avr-libc version shall be not downloaded. Instead use
- a custom location to get the source.
-
-if LIBC_AVR_LIBC_CUSTOM
-
-config LIBC_AVR_LIBC_CUSTOM_LOCATION
- string
- prompt "Full path to custom avr-libc source"
- help
- Enter the path to the directory or tarball of your source for avr-libc.
-
- If the path is a tarball, it should extract to: <name>-<version>/
- where the name is this component, avr-libc, and the version is set
- below in the custom version string.
-
-config LIBC_AVR_LIBC_CUSTOM_VERSION
- string
- prompt "Custom AVR-Libc version"
- help
- Enter the version number for your custom avr-libc.
-
-config LIBC_VERSION
- string
- default LIBC_AVR_LIBC_CUSTOM_VERSION
-
-endif # LIBC_AVR_LIBC_CUSTOM
-
-if ! LIBC_AVR_LIBC_CUSTOM
-
-choice
- bool
- prompt "avr-libc version"
-# Don't remove next line
-# CT_INSERT_VERSION_BELOW
-
-config LIBC_AVR_LIBC_V_2_0_0
- bool
- prompt "2.0.0"
-
-config LIBC_AVR_LIBC_V_1_8_1
- bool
- prompt "1.8.1"
-
-config LIBC_AVR_LIBC_V_1_8_0
- bool
- prompt "1.8.0"
-
-endchoice
-
-config LIBC_VERSION
- string
-# Don't remove next line
-# CT_INSERT_VERSION_STRING_BELOW
- default "2.0.0" if LIBC_AVR_LIBC_V_2_0_0
- default "1.8.1" if LIBC_AVR_LIBC_V_1_8_1
- default "1.8.0" if LIBC_AVR_LIBC_V_1_8_0
-
-endif # ! LIBC_AVR_LIBC_CUSTOM
+source "config/versions/avr-libc.in"
diff --git a/config/libc/bionic.in b/config/libc/bionic.in
index 9e04130..ab51e6b 100644
--- a/config/libc/bionic.in
+++ b/config/libc/bionic.in
@@ -11,98 +11,17 @@
## help This platform has no TLS (Thread Local Storage) support so that option must be
## help disabled in the Compiler options.
+source "config/versions/bionic.in"
+
config THREADS
default "posix"
-config LIBC_BIONIC_CUSTOM
- bool
- prompt "Custom bionic"
- help
- The chosen bionic-libc version shall be not downloaded. Instead use
- a custom location to get the source.
-
-if LIBC_BIONIC_CUSTOM
-
-config LIBC_BIONIC_CUSTOM_LOCATION
- string
- prompt "Full path to custom bionic source"
- help
- Enter the path to the directory or tarball of your source for bionic.
-
- If the path is a zip archive, it should extract to: <name>-<version>/
- where the name is android-ndk, and the version is set
- below in the custom version string.
-
-config LIBC_BIONIC_CUSTOM_VERSION
- string
- prompt "Custom BIONIC version"
- help
- Enter the version number for your custom bionic.
-
-config LIBC_VERSION
- string
- default LIBC_BIONIC_CUSTOM_VERSION
-
-endif # LIBC_BIONIC_CUSTOM
-
-if ! LIBC_BIONIC_CUSTOM
-
-choice
- bool
- prompt "bionic version"
-# Don't remove next line
-# CT_INSERT_VERSION_BELOW
-
-config LIBC_BIONIC_V_15beta1
- bool
- prompt "15beta1"
-
-config LIBC_BIONIC_V_14b
- bool
- prompt "14b"
-
-config LIBC_BIONIC_V_13b
- bool
- prompt "13b (OBSOLETE)"
- depends on OBSOLETE
-
-config LIBC_BIONIC_V_12b
- bool
- prompt "12b (OBSOLETE)"
- depends on OBSOLETE
-
-config LIBC_BIONIC_V_11c
- bool
- prompt "11c (OBSOLETE)"
- depends on OBSOLETE
-
-config LIBC_BIONIC_V_10e
- bool
- prompt "10e (OBSOLETE)"
- depends on OBSOLETE
-
-endchoice
-
-config LIBC_VERSION
- string
-# Don't remove next line
-# CT_INSERT_VERSION_STRING_BELOW
- default "r15-beta1" if LIBC_BIONIC_V_15beta1
- default "r14b" if LIBC_BIONIC_V_14b
- default "r13b" if LIBC_BIONIC_V_13b
- default "r12b" if LIBC_BIONIC_V_12b
- default "r11c" if LIBC_BIONIC_V_11c
- default "r10e" if LIBC_BIONIC_V_10e
-
-endif # ! LIBC_BIONIC_CUSTOM
-
+# FIXME does API level depend on the bionic version? generate that, too?
choice
bool
prompt "Android API level"
help
The minimum for 64 bit support is 21.
-# Don't remove next line
-# CT_INSERT_VERSION_BELOW
config ANDROID_API_24
bool
@@ -169,8 +88,6 @@ endchoice
config ANDROID_API
string
-# Don't remove next line
-# CT_INSERT_VERSION_STRING_BELOW
default "24" if ANDROID_API_24
default "23" if ANDROID_API_23
default "22" if ANDROID_API_22
@@ -184,4 +101,3 @@ config ANDROID_API
default "13" if ANDROID_API_13
default "12" if ANDROID_API_12
default "9" if ANDROID_API_9
-
diff --git a/config/libc/glibc.in b/config/libc/glibc.in
index 9e4ff56..c0c633d 100644
--- a/config/libc/glibc.in
+++ b/config/libc/glibc.in
@@ -5,218 +5,50 @@
## select LIBC_SUPPORT_THREADS_NATIVE
## select CC_CORE_PASSES_NEEDED
## select GETTEXT_NEEDED
+## select BINUTILS_FORCE_LD_BFD_DEFAULT
##
## help The de-facto standard for Linux distributions.
## help Feature-rich, but large... Most useful for desktop-like systems.
-config THREADS
- default "nptl"
-
-config LIBC_GLIBC_CUSTOM
- bool
- prompt "Custom glibc"
- depends on EXPERIMENTAL
- select LIBC_CUSTOM
- select LIBC_GLIBC_2_20_or_later
- help
- The choosen glibc version shall be not downloaded. Instead use
- a custom location to get the source.
-
-if LIBC_GLIBC_CUSTOM
-
-config LIBC_GLIBC_CUSTOM_LOCATION
- string
- prompt "Full path to custom glibc source"
- help
- Enter the path to the directory or tarball of your source for glibc.
-
- If the path is a tarball, it should extract to: <name>-<version>/
- where the name is this component, glibc, and the version is set
- below in the custom version string.
-
-config LIBC_GLIBC_CUSTOM_VERSION
- string
- prompt "Custom GLIBC version"
- help
- Enter the version number for your custom glibc.
-
-config LIBC_VERSION
- string
- default LIBC_GLIBC_CUSTOM_VERSION
-
-endif # LIBC_GLIBC_CUSTOM
-
-if ! LIBC_GLIBC_CUSTOM
-
-config CC_GLIBC_SHOW_LINARO
- bool
- prompt "Show Linaro versions"
- help
- Linaro is maintaining some advanced/more stable/experimental versions
- of glibc, especially for the ARM architecture.
-
- Those versions have not been blessed by the glibc comunity (nor have they
- been cursed either!), but they look to be pretty much stable, and even
- more stable than the upstream versions. YMMV...
-
- If you do not know what this Linaro stuff is, then simply say 'n' here,
- and rest in peace. OTOH, if you know what you are doing, you will be
- able to use and enjoy :-) the Linaro versions by saying 'y' here.
-
- Linaro: http://www.linaro.org/
-
# GLIBC and kernel are special when it comes to obsoletion. Users
# of crosstool-ng depend on the ability to build new toolchains matching
# the kernel/libc versions of a particular target system, and LTS releases
# are still using quite ancient versions. Please do not retire versions
-# (including versions in between) until the EOL dates indicated below.
-choice
- bool
- prompt "glibc version"
-# Don't remove next line
-# CT_INSERT_VERSION_BELOW
-
-config LIBC_GLIBC_V_2_25
- bool
- prompt "2.25"
- select LIBC_GLIBC_2_23_or_later
-
-config LIBC_GLIBC_V_2_24
- bool
- prompt "2.24"
- select LIBC_GLIBC_2_23_or_later
-
-# EOL 04/2021 [Ubuntu16.04]
-config LIBC_GLIBC_V_2_23
- bool
- prompt "2.23"
- select LIBC_GLIBC_2_23_or_later
-
-config LIBC_GLIBC_V_2_22
- bool
- prompt "2.22 (OBSOLETE)"
- select LIBC_GLIBC_2_20_or_later
- depends on OBSOLETE
-
-config LIBC_GLIBC_V_2_21
- bool
- prompt "2.21 (OBSOLETE)"
- select LIBC_GLIBC_2_20_or_later
- depends on OBSOLETE
-
-config LIBC_GLIBC_LINARO_V_2_20
- bool
- prompt "Linaro 2.20-2014.11 (OBSOLETE)"
- select LIBC_GLIBC_2_20_or_later
- depends on CC_GLIBC_SHOW_LINARO
- depends on OBSOLETE
+# (including versions in between) until the EOL dates indicated in version.desc.
+source "config/versions/glibc.in"
-config LIBC_GLIBC_V_2_20
- bool
- prompt "2.20 (OBSOLETE)"
- select LIBC_GLIBC_2_20_or_later
- depends on OBSOLETE
-
-# EOL 04/2019 [Ubuntu14.04]
-config LIBC_GLIBC_V_2_19
- bool
- prompt "2.19 (OBSOLETE)"
- depends on OBSOLETE
- select LIBC_GLIBC_2_17_or_later
-
-config LIBC_GLIBC_V_2_18
- bool
- prompt "2.18 (OBSOLETE)"
- depends on OBSOLETE
- select LIBC_GLIBC_2_17_or_later
-
-# EOL 06/2024 [CentOS7.x]
-config LIBC_GLIBC_V_2_17
- bool
- prompt "2.17 (OBSOLETE)"
- depends on OBSOLETE
- select LIBC_GLIBC_2_17_or_later
-
-config LIBC_GLIBC_V_2_16_0
- bool
- prompt "2.16.0 (OBSOLETE)"
- depends on OBSOLETE
-
-# EOL 04/2017 [Ubuntu12.04]
-config LIBC_GLIBC_V_2_15
- bool
- prompt "2.15 (OBSOLETE)"
- depends on OBSOLETE
-
-config LIBC_GLIBC_V_2_14_1
- bool
- prompt "2.14.1 (OBSOLETE)"
- depends on OBSOLETE
-
-config LIBC_GLIBC_V_2_14
- bool
- prompt "2.14 (OBSOLETE)"
- depends on OBSOLETE
-
-config LIBC_GLIBC_V_2_13
- bool
- prompt "2.13 (OBSOLETE)"
- depends on OBSOLETE
-
-# This version did not have glibc-ports addon released
-config LIBC_GLIBC_V_2_12_2
- bool
- prompt "2.12.2 (OBSOLETE)"
- depends on OBSOLETE
- depends on !LIBC_GLIBC_NEEDS_PORTS
-
-# EOL 11/2020 [CentOS6.x]
-config LIBC_GLIBC_V_2_12_1
- bool
- prompt "2.12.1 (OBSOLETE)"
- depends on OBSOLETE
-
-endchoice
-
-endif # ! LIBC_GLIBC_CUSTOM
-
-# Checked by SPARC build: SPARCv8 is dropped in 2.23.
-config LIBC_GLIBC_2_23_or_later
- select LIBC_GLIBC_2_20_or_later
- bool
-
-# DeMark 2.20 as no longer needs to set NPTL as an addon.
-# It is no longer possible to build glibc without pthread!
-config LIBC_GLIBC_2_20_or_later
- bool
- select LIBC_GLIBC_2_17_or_later
-
-# DeMark no more ports
-config LIBC_GLIBC_2_17_or_later
- bool
-
-if ! LIBC_GLIBC_CUSTOM
+config THREADS
+ default "nptl"
-config LIBC_VERSION
- string
-# Don't remove next line
-# CT_INSERT_VERSION_STRING_BELOW
- default "2.25" if LIBC_GLIBC_V_2_25
- default "2.24" if LIBC_GLIBC_V_2_24
- default "2.23" if LIBC_GLIBC_V_2_23
- default "2.22" if LIBC_GLIBC_V_2_22
- default "2.21" if LIBC_GLIBC_V_2_21
- default "linaro-2.20-2014.11" if LIBC_GLIBC_LINARO_V_2_20
- default "2.20" if LIBC_GLIBC_V_2_20
- default "2.19" if LIBC_GLIBC_V_2_19
- default "2.18" if LIBC_GLIBC_V_2_18
- default "2.17" if LIBC_GLIBC_V_2_17
- default "2.16.0" if LIBC_GLIBC_V_2_16_0
- default "2.15" if LIBC_GLIBC_V_2_15
- default "2.14.1" if LIBC_GLIBC_V_2_14_1
- default "2.14" if LIBC_GLIBC_V_2_14
- default "2.13" if LIBC_GLIBC_V_2_13
- default "2.12.2" if LIBC_GLIBC_V_2_12_2
- default "2.12.1" if LIBC_GLIBC_V_2_12_1
+# SPARCv8 support retired in 2.23
+config GLIBC_NO_SPARC_V8
+ def_bool y
+ depends on GLIBC_2_23_or_later
+
+# With 2.20, NPTL is in default glibc
+config GLIBC_HAS_NPTL_ADDON
+ def_bool y
+ depends on !GLIBC_2_20_or_later
+
+# With 2.20, all architectures are in main tree
+config GLIBC_HAS_PORTS_ADDON
+ def_bool y
+ depends on !GLIBC_2_20_or_later
+
+# With 2.17 and later, 'ports' addon is shipped in glibc tarball
+config GLIBC_PORTS_EXTERNAL
+ def_bool y
+ depends on !GLIBC_2_17_or_later
+
+# Some architectures require the ports addon. List them one by one here:
+# This list must be carefully in sync with the architectures names
+# we can find in config/arch/*
+config GLIBC_NEEDS_PORTS
+ def_bool y
+ depends on ARCH_alpha || ARCH_arm || ARCH_m68k || ARCH_mips || ARCH_powerpc
+
+# Ports are no longer an add-on starting with 2.20
+config GLIBC_USE_PORTS
+ def_bool y
+ depends on GLIBC_NEEDS_PORTS && GLIBC_HAS_PORTS_ADDON
-endif # ! LIBC_GLIBC_CUSTOM
diff --git a/config/libc/glibc.in.2 b/config/libc/glibc.in.2
index 93b7b59..f1c224c 100644
--- a/config/libc/glibc.in.2
+++ b/config/libc/glibc.in.2
@@ -1,31 +1,7 @@
# This file contains the common configuration options
# that apply to both glibc.
-# Some architectures require the ports addon. List them one by one here:
-# This list must be carefully in sync with the architectures names
-# we can find in config/arch/*
-
-# Ports were integrated into the main tarball in 2.17
-config LIBC_GLIBC_PORTS_EXTERNAL
- def_bool y
- depends on !LIBC_GLIBC_2_17_or_later
-
-config LIBC_GLIBC_NEEDS_PORTS
- def_bool y
- depends on ARCH_alpha || ARCH_arm || ARCH_m68k || ARCH_mips || ARCH_powerpc
-
-# Ports are no longer an add-on starting with 2.20
-config LIBC_GLIBC_USE_PORTS
- def_bool y
- depends on LIBC_GLIBC_NEEDS_PORTS && !LIBC_GLIBC_2_20_or_later
-
-# Force using the BFD linker during the toolchain build
-config LIBC_glibc_family
- bool
- default y
- select BINUTILS_FORCE_LD_BFD_DEFAULT
-
-config LIBC_GLIBC_EXTRA_CONFIG_ARRAY
+config GLIBC_EXTRA_CONFIG_ARRAY
string
prompt "extra config"
default ""
@@ -36,7 +12,7 @@ config LIBC_GLIBC_EXTRA_CONFIG_ARRAY
if they are properly quoted (or escaped, but prefer quotes). Eg.:
--with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
-config LIBC_GLIBC_CONFIGPARMS
+config GLIBC_CONFIGPARMS
string
prompt "Extra config params (READ HELP)"
default "" if ! ARCH_sh
@@ -51,14 +27,14 @@ config LIBC_GLIBC_CONFIGPARMS
Note: If you need to pass more than one value, separate them with
'\n'. Eg.: var1=val1\nvar2=val2
-config LIBC_GLIBC_EXTRA_CFLAGS
+config GLIBC_EXTRA_CFLAGS
string
prompt "extra target CFLAGS"
default ""
help
Extra target CFLAGS to use when building.
-config LIBC_ENABLE_FORTIFIED_BUILD
+config GLIBC_ENABLE_FORTIFIED_BUILD
bool
prompt "Enable fortified build (EXPERIMENTAL)"
depends on EXPERIMENTAL
@@ -78,13 +54,13 @@ config LIBC_ENABLE_FORTIFIED_BUILD
here. Otherwise, be still and say 'n' (the default). ;-)
-config LIBC_DISABLE_VERSIONING
+config GLIBC_DISABLE_VERSIONING
bool
prompt "Disable symbols versioning"
help
Do not include versioning information in the library objects.
-config LIBC_OLDEST_ABI
+config GLIBC_OLDEST_ABI
string
prompt "Oldest supported ABI"
default ""
@@ -96,7 +72,7 @@ config LIBC_OLDEST_ABI
If this option is not set, (e)glibc will choose for you.
-config LIBC_GLIBC_FORCE_UNWIND
+config GLIBC_FORCE_UNWIND
bool
prompt "Force unwind support (READ HELP!)"
default y
@@ -112,7 +88,7 @@ config LIBC_GLIBC_FORCE_UNWIND
of glibc on some architectures
(seen on s390, s390x and x86_64).
-config LIBC_ADDONS_LIST
+config GLIBC_ADDONS_LIST
string
prompt "Extra addons"
default ""
@@ -128,7 +104,7 @@ config LIBC_ADDONS_LIST
Eg.: libidn
-config LIBC_LOCALES
+config GLIBC_LOCALES
bool
prompt "Build and install locales"
help
@@ -149,12 +125,12 @@ endif # LIBC_glibc && LIBC_LOCALES
if KERNEL_linux
-choice LIBC_GLIBC_SUPPORTED_KERNEL
+choice GLIBC_SUPPORTED_KERNEL
bool
prompt "Minimum supported kernel version"
- default LIBC_GLIBC_KERNEL_VERSION_AS_HEADERS
+ default GLIBC_KERNEL_VERSION_AS_HEADERS
-config LIBC_GLIBC_KERNEL_VERSION_NONE
+config GLIBC_KERNEL_VERSION_NONE
bool
prompt "Let ./configure decide"
help
@@ -172,7 +148,7 @@ config LIBC_GLIBC_KERNEL_VERSION_NONE
powerpc* Requires Linux 2.4.19
arm*-*-linux-*gnueabi Requires Linux 2.6.16
-config LIBC_GLIBC_KERNEL_VERSION_AS_HEADERS
+config GLIBC_KERNEL_VERSION_AS_HEADERS
bool
prompt "Same as kernel headers (default)"
help
@@ -195,7 +171,7 @@ config LIBC_GLIBC_KERNEL_VERSION_AS_HEADERS
chosen kernel headers version (CT_KERNEL_VERSION), you can choose
"y" here.
-config LIBC_GLIBC_KERNEL_VERSION_CHOSEN
+config GLIBC_KERNEL_VERSION_CHOSEN
bool
prompt "Specific kernel version"
help
@@ -213,9 +189,9 @@ config LIBC_GLIBC_KERNEL_VERSION_CHOSEN
Most people can leave this at the default value of "2.6.9".
-if LIBC_GLIBC_KERNEL_VERSION_CHOSEN
+if GLIBC_KERNEL_VERSION_CHOSEN
-config LIBC_GLIBC_MIN_KERNEL_VERSION
+config GLIBC_MIN_KERNEL_VERSION
string
prompt "Minimum kernel version to support"
default "2.6.9"
@@ -232,14 +208,14 @@ config LIBC_GLIBC_MIN_KERNEL_VERSION
Note that no sanity check is performed by crosstool-NG to ensure
that the value you enter here is appropriate for your target.
-endif # LIBC_GLIBC_KERNEL_VERSION_CHOSEN
+endif # GLIBC_KERNEL_VERSION_CHOSEN
endchoice
-config LIBC_GLIBC_MIN_KERNEL
+config GLIBC_MIN_KERNEL
string
- default "" if LIBC_GLIBC_KERNEL_VERSION_NONE
- default KERNEL_VERSION if LIBC_GLIBC_KERNEL_VERSION_AS_HEADERS
- default LIBC_GLIBC_MIN_KERNEL_VERSION if LIBC_GLIBC_KERNEL_VERSION_CHOSEN
+ default "" if GLIBC_KERNEL_VERSION_NONE
+ default KERNEL_VERSION if GLIBC_KERNEL_VERSION_AS_HEADERS
+ default GLIBC_MIN_KERNEL_VERSION if GLIBC_KERNEL_VERSION_CHOSEN
endif # KERNEL_linux
diff --git a/config/libc/mingw-w64.in b/config/libc/mingw-w64.in
new file mode 100644
index 0000000..769c976
--- /dev/null
+++ b/config/libc/mingw-w64.in
@@ -0,0 +1,39 @@
+# mingw options
+
+## depends on WINDOWS
+##
+## select LIBC_SUPPORT_THREADS_NATIVE
+## select LIBC_SUPPORT_THREADS_POSIX
+## select CC_CORE_PASS_2_NEEDED
+##
+## help The de-facto standard for Mingw distributions.
+
+source "config/versions/mingw-w64.in"
+
+config THREADS
+ default "win32" if THREADS_NATIVE
+ default "posix" if THREADS_POSIX
+
+config MINGW_SECURE_API
+ bool "Expose secure API prototypes"
+ default y
+
+config MINGW_DIRECTX
+ bool "Include DirectX development files"
+
+config MINGW_DDK
+ bool "Include DDK development files"
+
+config MINGW_TOOLS
+ bool "Include the companion tools"
+ default y
+ help
+ Build the companion tools with mingw such as widl, gendef,
+ and genpeimg.
+
+config MINGW_TOOL_LIST_ARRAY
+ string "List of mingw-w64 tools to build"
+ default "gendef genidl genlib genpeimg widl"
+ depends on MINGW_TOOLS
+ help
+ List of mingw-w64 tools to build.
diff --git a/config/libc/mingw.in b/config/libc/mingw.in
deleted file mode 100644
index 0ca1823..0000000
--- a/config/libc/mingw.in
+++ /dev/null
@@ -1,159 +0,0 @@
-# mingw options
-
-## depends on WINDOWS
-##
-## select LIBC_SUPPORT_THREADS_NATIVE
-## select LIBC_SUPPORT_THREADS_POSIX
-## select CC_CORE_PASS_2_NEEDED
-##
-## help The de-facto standard for Mingw distributions.
-
-config THREADS
- default "win32" if THREADS_NATIVE
- default "posix" if THREADS_POSIX
-
-choice
- bool
- prompt "Windows API version"
-
-# Don't remove next line
-# CT_INSERT_VERSION_BELOW
-
-config WINAPI_V_5_0_2
- bool
- prompt "5.0.2"
-
-config WINAPI_V_5_0_1
- bool
- prompt "5.0.1 (OBSOLETE)"
- depends on OBSOLETE
-
-config WINAPI_V_5_0_0
- bool
- prompt "5.0.0 (OBSOLETE)"
- depends on OBSOLETE
-
-config WINAPI_V_4_0_6
- bool
- prompt "4.0.6"
-
-config WINAPI_V_4_0_5
- bool
- prompt "4.0.5 (OBSOLETE)"
- depends on OBSOLETE
-
-config WINAPI_V_4_0_4
- bool
- prompt "4.0.4 (OBSOLETE)"
- depends on OBSOLETE
-
-config WINAPI_V_4_0_2
- bool
- prompt "4.0.2 (OBSOLETE)"
- depends on OBSOLETE
-
-config WINAPI_V_4_0_1
- bool
- prompt "4.0.1 (OBSOLETE)"
- depends on OBSOLETE
-
-config WINAPI_V_4_0_0
- bool
- prompt "4.0.0 (OBSOLETE)"
- depends on OBSOLETE
-
-config WINAPI_V_3_3_0
- bool
- prompt "3.3.0 (OBSOLETE)"
- depends on OBSOLETE
-
-config WINAPI_V_3_2_0
- bool
- prompt "3.2.0 (OBSOLETE)"
- depends on OBSOLETE
-
-config WINAPI_V_3_1_0
- bool
- prompt "3.1.0 (OBSOLETE)"
- depends on OBSOLETE
-
-config WINAPI_V_3_0_0
- bool
- prompt "3.0.0 (OBSOLETE)"
- depends on OBSOLETE
-
-config WINAPI_V_2_0_9
- bool
- prompt "2.0.9 (OBSOLETE)"
- depends on OBSOLETE
-
-config WINAPI_V_2_0_8
- bool
- prompt "2.0.8 (OBSOLETE)"
- depends on OBSOLETE
-
-config WINAPI_V_2_0_7
- bool
- prompt "2.0.7 (OBSOLETE)"
- depends on OBSOLETE
-
-config WINAPI_V_select
- bool
- prompt "Other version"
-
-config WINAPI_V_DEVEL
- bool
- prompt "devel"
- depends on EXPERIMENTAL
- depends on CONFIGURE_has_git
-
-endchoice
-
-config WINAPI_VERSION
- string
- prompt "Windows API version" if WINAPI_V_select
- default "devel" if WINAPI_V_DEVEL
-# Don't remove next line
-# CT_INSERT_VERSION_STRING_BELOW
- default "5.0.2" if WINAPI_V_5_0_2
- default "5.0.1" if WINAPI_V_5_0_1
- default "5.0.0" if WINAPI_V_5_0_0
- default "4.0.6" if WINAPI_V_4_0_6
- default "4.0.5" if WINAPI_V_4_0_5
- default "4.0.4" if WINAPI_V_4_0_4
- default "4.0.2" if WINAPI_V_4_0_2
- default "4.0.1" if WINAPI_V_4_0_1
- default "4.0.0" if WINAPI_V_4_0_0
- default "3.3.0" if WINAPI_V_3_3_0
- default "3.2.0" if WINAPI_V_3_2_0
- default "3.1.0" if WINAPI_V_3_1_0
- default "3.0.0" if WINAPI_V_3_0_0
- default "2.0.9" if WINAPI_V_2_0_9
- default "2.0.8" if WINAPI_V_2_0_8
- default "2.0.7" if WINAPI_V_2_0_7
- help
- Enter the version number of the Windows API files to use
-
-config MINGW_SECURE_API
- bool "Expose secure API prototypes"
- default y
-
-config MINGW_DIRECTX
- bool "Include DirectX development files"
-
-config MINGW_DDK
- bool "Include DDK development files"
-
-config MINGW_TOOLS
- bool "Include the companion tools"
- default y
- help
- Build the companion tools with mingw such as widl, gendef,
- and genpeimg.
-
-config MINGW_TOOL_LIST_ARRAY
- string "List of mingw-w64 tools to build"
- default "gendef genidl genlib genpeimg widl"
- depends on MINGW_TOOLS
- help
- List of mingw-w64 tools to build.
diff --git a/config/libc/musl.in b/config/libc/musl.in
index 5ea166f..24f522a 100644
--- a/config/libc/musl.in
+++ b/config/libc/musl.in
@@ -10,66 +10,8 @@
## help devices. musl is lightweight, fast, simple, free, and strives to be
## help correct in the sense of standards-conformance and safety.
+source "config/versions/musl.in"
+
+# FIXME why? it claims "native", why report "musl"?
config THREADS
default "musl"
-
-config LIBC_MUSL_CUSTOM
- bool
- prompt "Custom musl"
- depends on EXPERIMENTAL
- help
- The choosen musl-libc version shall be not downloaded. Instead use
- a custom location to get the source.
-
-if LIBC_MUSL_CUSTOM
-
-config LIBC_MUSL_CUSTOM_LOCATION
- string
- prompt "Full path to custom musl-libc source"
- help
- Enter the path to the directory or tarball of your source for musl.
-
- If the path is a tarball, it should extract to: <name>-<version>/
- where the name is this component, musl, and the version is set
- below in the custom version string.
-
-config LIBC_MUSL_CUSTOM_VERSION
- string
- prompt "Custom MUSL version"
- help
- Enter the version number for your custom musl-libc.
-
-config LIBC_VERSION
- string
- default LIBC_MUSL_CUSTOM_VERSION
-
-endif # LIBC_MUSL_CUSTOM
-
-if ! LIBC_MUSL_CUSTOM
-
-choice
- bool
- prompt "musl version"
-# Don't remove next line
-# CT_INSERT_VERSION_BELOW
-
-config LIBC_MUSL_V_1_1_16
- bool
- prompt "1.1.16"
- depends on EXPERIMENTAL
-
-config LIBC_MUSL_V_1_1_15
- bool
- prompt "1.1.15 (OBSOLETE)"
- depends on EXPERIMENTAL && OBSOLETE
-
-endchoice
-
-config LIBC_VERSION
- string
-# Don't remove next line
-# CT_INSERT_VERSION_STRING_BELOW
- default "1.1.16" if LIBC_MUSL_V_1_1_16
- default "1.1.15" if LIBC_MUSL_V_1_1_15
-
-endif # ! LIBC_MUSL_CUSTOM
diff --git a/config/libc/newlib.in b/config/libc/newlib.in
index 68e8b62..5354fef 100644
--- a/config/libc/newlib.in
+++ b/config/libc/newlib.in
@@ -12,209 +12,12 @@
## 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 LIBC_NEWLIB_CUSTOM
- bool
- prompt "Custom newlib"
- depends on EXPERIMENTAL
- select LIBC_NEWLIB_2_5_or_later
- help
- The choosen newlib version shall be not downloaded. Instead use
- a custom location to get the source.
-if LIBC_NEWLIB_CUSTOM
-
-config LIBC_NEWLIB_CUSTOM_LOCATION
- string
- prompt "Full path to custom newlib source"
- help
- Enter the path to the directory or tarball of your source for newlib.
-
- If the path is a tarball, it should extract to: <name>-<version>/
- where the name is this component, newlib, and the version is set
- below in the custom version string.
-
-config LIBC_NEWLIB_CUSTOM_VERSION
- string
- prompt "Custom NEWLIB version"
- help
- Enter the version number for your custom newlib.
-
-config LIBC_VERSION
- string
- default LIBC_NEWLIB_CUSTOM_VERSION
-
-endif # LIBC_NEWLIB_CUSTOM
-
-if ! LIBC_NEWLIB_CUSTOM
-
-config CC_NEWLIB_SHOW_LINARO
- bool
- prompt "Show Linaro versions"
- help
- Linaro is maintaining some advanced/more stable/experimental versions
- of newlib, especially for the ARM architecture.
-
- Those versions have not been blessed by the newlib comunity (nor have they
- been cursed either!), but they look to be pretty much stable, and even
- more stable than the upstream versions. YMMV...
-
- If you do not know what this Linaro stuff is, then simply say 'n' here,
- and rest in peace. OTOH, if you know what you are doing, you will be
- able to use and enjoy :-) the Linaro versions by saying 'y' here.
-
- Linaro: http://www.linaro.org/
-
-choice
- bool
- prompt "newlib version"
-# Don't remove next line
-# CT_INSERT_VERSION_BELOW
-config LIBC_NEWLIB_V_2_5_0
- bool
- prompt "2.5.0.20170519"
- select LIBC_NEWLIB_2_5
-
-config LIBC_NEWLIB_V_2_4_0
- bool
- prompt "2.4.0.20161025"
- select LIBC_NEWLIB_2_4
-
-config LIBC_NEWLIB_V_2_3_0
- bool
- prompt "2.3.0.20160226"
- select LIBC_NEWLIB_2_3
-
-config LIBC_NEWLIB_LINARO_V_2_2_0
- bool
- prompt "Linaro 2.2.0-2015.01"
- depends on CC_NEWLIB_SHOW_LINARO
- select LIBC_NEWLIB_2_2
-
-config LIBC_NEWLIB_V_2_2_0
- bool
- prompt "2.2.0.20151023"
- select LIBC_NEWLIB_2_2
-
-config LIBC_NEWLIB_LINARO_V_2_1_0
- bool
- prompt "Linaro 2.1.0-2014.09"
- depends on CC_NEWLIB_SHOW_LINARO
- select LIBC_NEWLIB_2_1
-
-config LIBC_NEWLIB_V_2_1_0
- bool
- prompt "2.1.0"
- select LIBC_NEWLIB_2_1
-
-config LIBC_NEWLIB_V_2_0_0
- bool
- prompt "2.0.0"
- select LIBC_NEWLIB_2_0
-
-config LIBC_NEWLIB_V_1_20_0
- bool
- prompt "1.20.0"
-
-config LIBC_NEWLIB_V_1_19_0
- bool
- prompt "1.19.0"
-
-config LIBC_NEWLIB_V_1_18_0
- bool
- prompt "1.18.0"
-
-config LIBC_NEWLIB_V_1_17_0
- bool
- prompt "1.17.0"
-
-endchoice
-
-endif # ! LIBC_NEWLIB_CUSTOM
-
-config LIBC_NEWLIB_2_5
- bool
- select LIBC_NEWLIB_2_5_or_later
-
-config LIBC_NEWLIB_2_4
- bool
- select LIBC_NEWLIB_2_4_or_later
-
-config LIBC_NEWLIB_2_3
- bool
- select LIBC_NEWLIB_2_3_or_later
-
-config LIBC_NEWLIB_2_2
- bool
- select LIBC_NEWLIB_2_2_or_later
-
-config LIBC_NEWLIB_2_1
- bool
- select LIBC_NEWLIB_2_1_or_later
-
-config LIBC_NEWLIB_2_0
- bool
- select LIBC_NEWLIB_2_0_or_later
-
-config LIBC_NEWLIB_2_5_or_later
- bool
- select LIBC_NEWLIB_2_4_or_later
-
-config LIBC_NEWLIB_2_4_or_later
- bool
- select LIBC_NEWLIB_2_3_or_later
-
-config LIBC_NEWLIB_2_3_or_later
- bool
- select LIBC_NEWLIB_2_2_or_later
-
-config LIBC_NEWLIB_2_2_or_later
- bool
- select LIBC_NEWLIB_2_1_or_later
-
-config LIBC_NEWLIB_2_1_or_later
- bool
- select LIBC_NEWLIB_2_0_or_later
+source "config/versions/newlib.in"
# maybe older versions of newlib will support it too, but this
# needs to be checked
-config LIBC_NEWLIB_2_0_or_later
- bool
+config NEWLIB_CXA_ATEXIT
+ def_bool y
+ depends on NEWLIB_2_0_or_later
select LIBC_PROVIDES_CXA_ATEXIT
-
-if ! LIBC_NEWLIB_CUSTOM
-config LIBC_VERSION
- string
-# Don't remove next line
-# CT_INSERT_VERSION_STRING_BELOW
- default "2.5.0.20170519" if LIBC_NEWLIB_V_2_5_0
- default "2.4.0.20161025" if LIBC_NEWLIB_V_2_4_0
- default "2.3.0.20160226" if LIBC_NEWLIB_V_2_3_0
- default "linaro-2.2.0-2015.01" if LIBC_NEWLIB_LINARO_V_2_2_0
- default "2.2.0.20151023" if LIBC_NEWLIB_V_2_2_0
- default "linaro-2.1.0-2014.09" if LIBC_NEWLIB_LINARO_V_2_1_0
- default "2.1.0" if LIBC_NEWLIB_V_2_1_0
- default "2.0.0" if LIBC_NEWLIB_V_2_0_0
- default "1.20.0" if LIBC_NEWLIB_V_1_20_0
- default "1.19.0" if LIBC_NEWLIB_V_1_19_0
- default "1.18.0" if LIBC_NEWLIB_V_1_18_0
- default "1.17.0" if LIBC_NEWLIB_V_1_17_0
- help
- Enter the tag you want to use.
- Leave empty to use the 'head' of the repository.
-
-endif # ! LIBC_NEWLIB_CUSTOM
-
-config LIBC_NEWLIB_TARGET_CFLAGS
- string
- prompt "Target CFLAGS for newlib"
- 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_NEWLIB_TARGET_CFLAGS are used
- to compile the libraries.
-
- Leave blank if you don't know better.
diff --git a/config/libc/newlib.in.2 b/config/libc/newlib.in.2
index 96bd22b..f73128c 100644
--- a/config/libc/newlib.in.2
+++ b/config/libc/newlib.in.2
@@ -1,5 +1,19 @@
# newlib second-part options
+config LIBC_NEWLIB_TARGET_CFLAGS
+ string
+ prompt "Target CFLAGS for newlib"
+ 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_NEWLIB_TARGET_CFLAGS are used
+ to compile the libraries.
+
+ Leave blank if you don't know better.
+
config LIBC_NEWLIB_IO_C99FMT
bool
prompt "Enable IOs on C99 formats"
diff --git a/config/libc/uClibc.in b/config/libc/uClibc.in
index a85cf21..8f91aa0 100644
--- a/config/libc/uClibc.in
+++ b/config/libc/uClibc.in
@@ -4,6 +4,7 @@
##
## select LIBC_SUPPORT_THREADS_LT
## select LIBC_SUPPORT_THREADS_NONE
+## select LIBC_SUPPORT_THREADS_NATIVE if UCLIBC_0_9_33_2_or_later
## select CC_CORE_PASSES_NEEDED
##
## help The de-facto standard for embeded linux systems.
@@ -11,6 +12,8 @@
## help Highly configurable, thus as feature-rich as you
## help need, without compromising for size.
+source "config/versions/uClibc-ng.in"
+
config THREADS
default "nptl" if THREADS_NATIVE
default "linuxthreads" if THREADS_LT
@@ -20,141 +23,18 @@ comment "'softfp' ABI and uClibc is not entirely tested in crosstool-NG"
comment "You may experience issues, although it should work just fine"
endif # ARCH_FLOAT_SOFTFP
-config LIBC_UCLIBC_CUSTOM
- bool
- prompt "Custom uClibc"
- depends on EXPERIMENTAL
- help
- The choosen uclibc version shall be not downloaded. Instead use
- a custom location to get the source.
-
-if LIBC_UCLIBC_CUSTOM
-
-choice
- bool
- prompt "uClibc Version Name"
-
-config LIBC_UCLIBC_CUSTOM_UCLIBC
- bool "uClibc (OBSOLETE)"
- depends on OBSOLETE
- select LIBC_UCLIBC_0_9_33_2_or_later
-
-config LIBC_UCLIBC_CUSTOM_UCLIBC_NG
- bool "uClibc-ng (1.0.15 or later)"
- select LIBC_UCLIBC_NG_1_0_15_or_later
-
-config LIBC_UCLIBC_CUSTOM_UCLIBC_NG_OLD
- bool "uClibc-ng (older than 1.0.15)"
- select LIBC_UCLIBC_NG_1_0_0_or_later
-
-endchoice
-
-config LIBC_UCLIBC_CUSTOM_LOCATION
- string
- prompt "Full path to custom uClibc source"
- help
- Enter the path to the directory or tarball of your source for uClibc.
-
- If the path is a tarball, it should extract to: <name>-<version>/
- where the name is this component will be set by the uClibc Version Name
- option from above, and the version is set below in the custom version
- string.
-
-config LIBC_UCLIBC_CUSTOM_VERSION
- string
- prompt "Custom uClibc Version"
- help
- Enter the version number for your custom uClibc.
- Version 1.0.18 is only enabled in EXPERIMENTAL builds due to issues
- with static libraries.
-
-config LIBC_VERSION
- string
- default LIBC_UCLIBC_CUSTOM_VERSION
-
-endif # LIBC_UCLIBC_CUSTOM
-
-if ! LIBC_UCLIBC_CUSTOM
-
-choice
- bool
- prompt "uClibc version"
-# Don't remove next line
-# CT_INSERT_VERSION_BELOW
-
-config LIBC_UCLIBC_NG_V_1_0_25
- bool
- prompt "1.0.25"
- select LIBC_UCLIBC_NG_1_0_15_or_later
-
-config LIBC_UCLIBC_NG_V_1_0_24
- bool
- prompt "1.0.24"
- select LIBC_UCLIBC_NG_1_0_15_or_later
-
-config LIBC_UCLIBC_NG_V_1_0_23
- bool
- prompt "1.0.23"
- select LIBC_UCLIBC_NG_1_0_15_or_later
-
-config LIBC_UCLIBC_NG_V_1_0_22
- bool
- prompt "1.0.22"
- select LIBC_UCLIBC_NG_1_0_15_or_later
-
-config LIBC_UCLIBC_NG_V_1_0_21
- bool
- prompt "1.0.21 (OBSOLETE)"
- depends on OBSOLETE
- select LIBC_UCLIBC_NG_1_0_15_or_later
-
-config LIBC_UCLIBC_NG_V_1_0_20
- bool
- prompt "1.0.20 (OBSOLETE)"
- depends on OBSOLETE
- select LIBC_UCLIBC_NG_1_0_15_or_later
-
-config LIBC_UCLIBC_V_0_9_33_2
- bool
- prompt "0.9.33.2 (OBSOLETE)"
- depends on OBSOLETE
- select LIBC_UCLIBC_0_9_33_2_or_later
-
-endchoice
-
-config LIBC_VERSION
- string
-# Don't remove next line
-# CT_INSERT_VERSION_STRING_BELOW
- default "1.0.25" if LIBC_UCLIBC_NG_V_1_0_25
- default "1.0.24" if LIBC_UCLIBC_NG_V_1_0_24
- default "1.0.23" if LIBC_UCLIBC_NG_V_1_0_23
- default "1.0.22" if LIBC_UCLIBC_NG_V_1_0_22
- default "1.0.21" if LIBC_UCLIBC_NG_V_1_0_21
- default "1.0.20" if LIBC_UCLIBC_NG_V_1_0_20
- default "0.9.33.2" if LIBC_UCLIBC_V_0_9_33_2
-
-endif # ! LIBC_UCLIBC_CUSTOM
-
-config LIBC_UCLIBC_NG_1_0_15_or_later
- bool
- select LIBC_UCLIBC_NG_1_0_0_or_later
-
-config LIBC_UCLIBC_NG_1_0_0_or_later
- bool
- select LIBC_UCLIBC_NG
- select LIBC_UCLIBC_0_9_33_2_or_later
-
-config LIBC_UCLIBC_0_9_33_2_or_later
- bool
- select LIBC_SUPPORT_THREADS_NATIVE
- select LIBC_UCLIBC_PARALLEL
-
config LIBC_UCLIBC_PARALLEL
- bool
+ def_bool y
+ depends on UCLIBC_0_9_33_2_or_later
config LIBC_UCLIBC_NG
- bool
+ def_bool y
+ depends on UCLIBC_1_0_0_or_later
+
+# uClibc-ng 1.0.15 did away with 2 implementations of linuxthreads
+config UCLIBC_MERGED_LINUXTHREADS
+ def_bool y
+ depends on UCLIBC_1_0_15_or_later
choice
bool
diff --git a/config/libc/uClibc.in.2 b/config/libc/uClibc.in.2
index 1b34855..7bf8f2a 100644
--- a/config/libc/uClibc.in.2
+++ b/config/libc/uClibc.in.2
@@ -1,6 +1,6 @@
# uClibc second-part option
-if THREADS_LT && !LIBC_UCLIBC_NG_1_0_15_or_later
+if THREADS_LT && !UCLIBC_MERGED_LINUXTHREADS
choice
bool
@@ -30,12 +30,11 @@ endchoice
endif # THREADS_LT
-# uClibc-ng 1.0.15 did away with 2 implementations of linuxthreads
config LIBC_UCLIBC_LNXTHRD
string
default "" if THREADS_NONE
default "" if THREADS_NATIVE
- default "" if LIBC_UCLIBC_NG_1_0_15_or_later
+ default "" if UCLIBC_MERGED_LINUXTHREADS
default "old" if LIBC_UCLIBC_LNXTHRD_OLD
default "new" if LIBC_UCLIBC_LNXTHRD_NEW