summaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/arch/alpha.in57
-rw-r--r--config/arch/alpha.in.256
-rw-r--r--config/arch/arm.in97
-rw-r--r--config/arch/arm.in.296
-rw-r--r--config/arch/mips.in39
-rw-r--r--config/arch/mips.in.238
-rw-r--r--config/arch/powerpc.in43
-rw-r--r--config/arch/powerpc.in.242
-rw-r--r--config/arch/sh.in24
-rw-r--r--config/arch/sh.in.225
-rw-r--r--config/arch/xtensa.in15
-rw-r--r--config/arch/xtensa.in.233
-rw-r--r--config/binutils.in4
-rw-r--r--config/binutils/binutils.in197
-rw-r--r--config/binutils/binutils.in.282
-rw-r--r--config/cc.in11
-rw-r--r--config/cc/gcc.in520
-rw-r--r--config/cc/gcc.in.2387
-rw-r--r--config/comp_libs.in (renamed from config/companion_libs.in)51
-rw-r--r--config/comp_libs/cloog.in11
-rw-r--r--config/comp_libs/expat.in3
-rw-r--r--config/comp_libs/gettext.in3
-rw-r--r--config/comp_libs/gmp.in7
-rw-r--r--config/comp_libs/isl.in26
-rw-r--r--config/comp_libs/libelf.in3
-rw-r--r--config/comp_libs/libiconv.in3
-rw-r--r--config/comp_libs/mpc.in3
-rw-r--r--config/comp_libs/mpfr.in3
-rw-r--r--config/comp_libs/ncurses.in (renamed from config/companion_libs/ncurses.in)18
-rw-r--r--config/comp_libs/zlib.in3
-rw-r--r--config/comp_tools.in (renamed from config/companion_tools.in)2
-rw-r--r--config/comp_tools/autoconf.in7
-rw-r--r--config/comp_tools/automake.in6
-rw-r--r--config/comp_tools/libtool.in6
-rw-r--r--config/comp_tools/m4.in5
-rw-r--r--config/comp_tools/make.in10
-rw-r--r--config/companion_libs/cloog.in51
-rw-r--r--config/companion_libs/expat.in25
-rw-r--r--config/companion_libs/gettext.in25
-rw-r--r--config/companion_libs/gmp.in83
-rw-r--r--config/companion_libs/isl.in92
-rw-r--r--config/companion_libs/libelf.in25
-rw-r--r--config/companion_libs/libiconv.in24
-rw-r--r--config/companion_libs/mpc.in61
-rw-r--r--config/companion_libs/mpfr.in67
-rw-r--r--config/companion_libs/zlib.in19
-rw-r--r--config/companion_tools/autoconf.in29
-rw-r--r--config/companion_tools/automake.in40
-rw-r--r--config/companion_tools/libtool.in23
-rw-r--r--config/companion_tools/m4.in34
-rw-r--r--config/companion_tools/make.in45
-rw-r--r--config/config.in4
-rw-r--r--config/debug/duma.in22
-rw-r--r--config/debug/gdb.in316
-rw-r--r--config/debug/gdb.in.gdbserver2
-rw-r--r--config/debug/gdb.in.native4
-rw-r--r--config/debug/ltrace.in28
-rw-r--r--config/debug/strace.in97
-rw-r--r--config/global/extract.in27
-rw-r--r--config/kernel.in10
-rw-r--r--config/kernel/linux.in302
-rw-r--r--config/kernel/linux.in.240
-rw-r--r--config/kernel/windows.in2
-rw-r--r--config/libc.in23
-rw-r--r--config/libc/avr-libc.in67
-rw-r--r--config/libc/avr-libc.in.28
-rw-r--r--config/libc/bionic.in94
-rw-r--r--config/libc/glibc.in409
-rw-r--r--config/libc/glibc.in.2245
-rw-r--r--config/libc/mingw-w64.in39
-rw-r--r--config/libc/mingw.in159
-rw-r--r--config/libc/musl.in83
-rw-r--r--config/libc/musl.in.251
-rw-r--r--config/libc/newlib.in305
-rw-r--r--config/libc/newlib.in.2176
-rw-r--r--config/libc/uClibc.in239
-rw-r--r--config/libc/uClibc.in.2110
-rw-r--r--config/target.in29
-rw-r--r--config/toolchain.in2
79 files changed, 1477 insertions, 3995 deletions
diff --git a/config/arch/alpha.in b/config/arch/alpha.in
index 1c7ec96..f0d7fe0 100644
--- a/config/arch/alpha.in
+++ b/config/arch/alpha.in
@@ -5,5 +5,60 @@
## select ARCH_USE_MMU
## select ARCH_SUPPORTS_WITH_CPU
## select ARCH_SUPPORTS_WITH_TUNE
-##
+
## help The Alpha architecture.
+
+choice
+ bool
+ prompt "Variant"
+
+config ARCH_ALPHA_EV4
+ bool
+ prompt "EV4"
+
+config ARCH_ALPHA_EV45
+ bool
+ prompt "EV45"
+
+config ARCH_ALPHA_EV5
+ bool
+ prompt "EV5"
+
+config ARCH_ALPHA_EV56
+ bool
+ prompt "EV56"
+
+config ARCH_ALPHA_EV6
+ bool
+ prompt "EV6"
+
+config ARCH_ALPHA_EV67
+ bool
+ prompt "EV67"
+
+endchoice
+
+config ARCH_ALPHA_VARIANT
+ string
+ default "ev4" if ARCH_ALPHA_EV4
+ default "ev45" if ARCH_ALPHA_EV45
+ default "ev5" if ARCH_ALPHA_EV5
+ default "ev56" if ARCH_ALPHA_EV56
+ default "ev6" if ARCH_ALPHA_EV6
+ default "ev67" if ARCH_ALPHA_EV67
+
+config ARCH_CPU
+ default "ev4" if ARCH_ALPHA_EV4
+ default "ev45" if ARCH_ALPHA_EV45
+ default "ev5" if ARCH_ALPHA_EV5
+ default "ev56" if ARCH_ALPHA_EV56
+ default "ev6" if ARCH_ALPHA_EV6
+ default "ev67" if ARCH_ALPHA_EV67
+
+config ARCH_TUNE
+ default "ev4" if ARCH_ALPHA_EV4
+ default "ev45" if ARCH_ALPHA_EV45
+ default "ev5" if ARCH_ALPHA_EV5
+ default "ev56" if ARCH_ALPHA_EV56
+ default "ev6" if ARCH_ALPHA_EV6
+ default "ev67" if ARCH_ALPHA_EV67
diff --git a/config/arch/alpha.in.2 b/config/arch/alpha.in.2
deleted file mode 100644
index aa52624..0000000
--- a/config/arch/alpha.in.2
+++ /dev/null
@@ -1,56 +0,0 @@
-# Alpha specific configuration file
-
-choice
- bool
- prompt "Variant"
-
-config ARCH_ALPHA_EV4
- bool
- prompt "EV4"
-
-config ARCH_ALPHA_EV45
- bool
- prompt "EV45"
-
-config ARCH_ALPHA_EV5
- bool
- prompt "EV5"
-
-config ARCH_ALPHA_EV56
- bool
- prompt "EV56"
-
-config ARCH_ALPHA_EV6
- bool
- prompt "EV6"
-
-config ARCH_ALPHA_EV67
- bool
- prompt "EV67"
-
-endchoice
-
-config ARCH_ALPHA_VARIANT
- string
- default "ev4" if ARCH_ALPHA_EV4
- default "ev45" if ARCH_ALPHA_EV45
- default "ev5" if ARCH_ALPHA_EV5
- default "ev56" if ARCH_ALPHA_EV56
- default "ev6" if ARCH_ALPHA_EV6
- default "ev67" if ARCH_ALPHA_EV67
-
-config ARCH_CPU
- default "ev4" if ARCH_ALPHA_EV4
- default "ev45" if ARCH_ALPHA_EV45
- default "ev5" if ARCH_ALPHA_EV5
- default "ev56" if ARCH_ALPHA_EV56
- default "ev6" if ARCH_ALPHA_EV6
- default "ev67" if ARCH_ALPHA_EV67
-
-config ARCH_TUNE
- default "ev4" if ARCH_ALPHA_EV4
- default "ev45" if ARCH_ALPHA_EV45
- default "ev5" if ARCH_ALPHA_EV5
- default "ev56" if ARCH_ALPHA_EV56
- default "ev6" if ARCH_ALPHA_EV6
- default "ev67" if ARCH_ALPHA_EV67
diff --git a/config/arch/arm.in b/config/arch/arm.in
index 5dbc717..269310d 100644
--- a/config/arch/arm.in
+++ b/config/arch/arm.in
@@ -14,6 +14,101 @@
## select ARCH_SUPPORTS_WITH_FLOAT if ARCH_32
## select ARCH_SUPPORTS_WITH_FPU if ARCH_32
## select ARCH_SUPPORTS_SOFTFP if ARCH_32
-##
+
## help The ARM architecture, as defined by:
## help http://www.arm.com/
+
+if ARCH_32
+config ARCH_ARM_MODE
+ string
+ default "arm" if ARCH_ARM_MODE_ARM
+ default "thumb" if ARCH_ARM_MODE_THUMB
+
+choice
+ bool
+ prompt "Default instruction set mode"
+ default ARCH_ARM_MODE_ARM
+
+config ARCH_ARM_MODE_ARM
+ bool
+ prompt "arm"
+ help
+ Defaults to emitting instructions in the ARM mode.
+
+config ARCH_ARM_MODE_THUMB
+ bool
+ prompt "thumb"
+ help
+ Defaults to emitting instructions in the THUMB mode.
+
+endchoice
+
+config ARCH_ARM_INTERWORKING
+ bool
+ prompt "Use Thumb-interworking (READ HELP)"
+ help
+ Excerpt from the gcc manual:
+
+ > Generate code which supports calling between the ARM and Thumb
+ > instruction sets. Without this option the two instruction sets
+ > cannot be reliably used inside one program. The default is
+ > [not to use interwork], since slightly larger code is generated
+ > when [interwork] is specified.
+
+ NOTE: Interworking in crosstool-NG is not sell-tested. Use at your
+ own risks, and report success and/or failure.
+
+# Until we only support EABI:
+config ARCH_ARM_ABI_OK
+ def_bool y
+ depends on ! ARCH_ARM_EABI
+ select ARCH_SUPPORTS_WITH_ABI
+
+# Little trick to force EABI *and* always show the prompt
+config ARCH_ARM_EABI_FORCE
+ bool
+ default y if ! OBSOLETE
+ select ARCH_ARM_EABI
+
+config ARCH_ARM_EABI
+ bool
+ prompt "Use EABI"
+ default y
+ help
+ Set up the toolchain so that it generates EABI-compliant binaries.
+
+ If you say 'n' here, then the toolchain will generate OABI binaries.
+ OABI has long been deprecated, and is now considered legacy.
+
+config ARCH_ARM_TUPLE_USE_EABIHF
+ bool
+ prompt "append 'hf' to the tuple (EXPERIMENTAL)"
+ depends on ARCH_FLOAT_HW
+ depends on ARCH_ARM_EABI # Until we only support that...
+ default y
+ help
+ Is you say 'y' here, then the tuple for the toolchain will end
+ up with *eabihf, instead of the usual *eabi.
+
+ *eabihf is used to denote that the toolchain *is* using the
+ hard-float ABI, while *eabi is just an indication of using the
+ soft-float ABI.
+
+ Ie. all one can say is: *eabihf ⊢ hard-float ABI
+
+ Saying 'n' here does *not* impact the ability of the toolchain to
+ generate hard-float instructions with the hard-float ABI. It is a
+ purely cosmetic thing, used by distros to differentiate their
+ hard-float-ABI-using ports from their soft-float-ABI-using ports.
+ (eg. Debian Wheezy and above).
+
+ This is an option, as not all versions of gcc/binutils do support
+ such tuple, and fail to build with *eabihf. Stock gcc version up
+ to, and including 4.7.2 have an issue or another with *eabihf.
+
+ This option is here for the future.
+
+ Say 'n', unless you are trying to fix gcc to properly recognise
+ the *eabihf tuples.
+
+endif
diff --git a/config/arch/arm.in.2 b/config/arch/arm.in.2
deleted file mode 100644
index 166c78f..0000000
--- a/config/arch/arm.in.2
+++ /dev/null
@@ -1,96 +0,0 @@
-# ARM specific configuration file
-
-if ARCH_32
-config ARCH_ARM_MODE
- string
- default "arm" if ARCH_ARM_MODE_ARM
- default "thumb" if ARCH_ARM_MODE_THUMB
-
-choice
- bool
- prompt "Default instruction set mode"
- default ARCH_ARM_MODE_ARM
-
-config ARCH_ARM_MODE_ARM
- bool
- prompt "arm"
- help
- Defaults to emitting instructions in the ARM mode.
-
-config ARCH_ARM_MODE_THUMB
- bool
- prompt "thumb"
- help
- Defaults to emitting instructions in the THUMB mode.
-
-endchoice
-
-config ARCH_ARM_INTERWORKING
- bool
- prompt "Use Thumb-interworking (READ HELP)"
- help
- Excerpt from the gcc manual:
-
- > Generate code which supports calling between the ARM and Thumb
- > instruction sets. Without this option the two instruction sets
- > cannot be reliably used inside one program. The default is
- > [not to use interwork], since slightly larger code is generated
- > when [interwork] is specified.
-
- NOTE: Interworking in crosstool-NG is not sell-tested. Use at your
- own risks, and report success and/or failure.
-
-# Until we only support EABI:
-config ARCH_ARM_ABI_OK
- def_bool y
- depends on ! ARCH_ARM_EABI
- select ARCH_SUPPORTS_WITH_ABI
-
-# Little trick to force EABI *and* always show the prompt
-config ARCH_ARM_EABI_FORCE
- bool
- default y if ! OBSOLETE
- select ARCH_ARM_EABI
-
-config ARCH_ARM_EABI
- bool
- prompt "Use EABI"
- default y
- help
- Set up the toolchain so that it generates EABI-compliant binaries.
-
- If you say 'n' here, then the toolchain will generate OABI binaries.
- OABI has long been deprecated, and is now considered legacy.
-
-config ARCH_ARM_TUPLE_USE_EABIHF
- bool
- prompt "append 'hf' to the tuple (EXPERIMENTAL)"
- depends on ARCH_FLOAT_HW
- depends on ARCH_ARM_EABI # Until we only support that...
- default y
- help
- Is you say 'y' here, then the tuple for the toolchain will end
- up with *eabihf, instead of the usual *eabi.
-
- *eabihf is used to denote that the toolchain *is* using the
- hard-float ABI, while *eabi is just an indication of using the
- soft-float ABI.
-
- Ie. all one can say is: *eabihf ⊢ hard-float ABI
-
- Saying 'n' here does *not* impact the ability of the toolchain to
- generate hard-float instructions with the hard-float ABI. It is a
- purely cosmetic thing, used by distros to differentiate their
- hard-float-ABI-using ports from their soft-float-ABI-using ports.
- (eg. Debian Wheezy and above).
-
- This is an option, as not all versions of gcc/binutils do support
- such tuple, and fail to build with *eabihf. Stock gcc version up
- to, and including 4.7.2 have an issue or another with *eabihf.
-
- This option is here for the future.
-
- Say 'n', unless you are trying to fix gcc to properly recognise
- the *eabihf tuples.
-
-endif
diff --git a/config/arch/mips.in b/config/arch/mips.in
index 1168f5e..850fe11 100644
--- a/config/arch/mips.in
+++ b/config/arch/mips.in
@@ -9,6 +9,43 @@
## select ARCH_SUPPORTS_WITH_ARCH
## select ARCH_SUPPORTS_WITH_TUNE
## select ARCH_SUPPORTS_WITH_FLOAT
-##
+
## help The MIPS architecture, as defined by:
## help http://www.mips.com/
+
+choice
+ bool
+ prompt "ABI"
+
+config ARCH_mips_o32
+ bool
+ prompt "o32"
+ depends on (ARCH_32 || MULTILIB)
+ help
+ This is the -mabi=32 gcc option.
+
+config ARCH_mips_n32
+ bool
+ prompt "n32"
+ depends on ARCH_64
+ help
+ This is the -mabi=n32 gcc option.
+
+config ARCH_mips_n64
+ bool
+ prompt "n64"
+ depends on ARCH_64
+ help
+ This is the -mabi=64 gcc option.
+
+# Not supported on Linux:
+# o64 : seems related to *BSD
+# eabi : seems related to bare-metal
+
+endchoice
+
+config ARCH_mips_ABI
+ string
+ default "32" if ARCH_mips_o32
+ default "n32" if ARCH_mips_n32
+ default "64" if ARCH_mips_n64
diff --git a/config/arch/mips.in.2 b/config/arch/mips.in.2
deleted file mode 100644
index 35c60e0..0000000
--- a/config/arch/mips.in.2
+++ /dev/null
@@ -1,38 +0,0 @@
-# MIPS specific config options
-
-choice
- bool
- prompt "ABI"
-
-config ARCH_mips_o32
- bool
- prompt "o32"
- depends on (ARCH_32 || MULTILIB)
- help
- This is the -mabi=32 gcc option.
-
-config ARCH_mips_n32
- bool
- prompt "n32"
- depends on ARCH_64
- help
- This is the -mabi=n32 gcc option.
-
-config ARCH_mips_n64
- bool
- prompt "n64"
- depends on ARCH_64
- help
- This is the -mabi=64 gcc option.
-
-# Not supported on Linux:
-# o64 : seems related to *BSD
-# eabi : seems related to bare-metal
-
-endchoice
-
-config ARCH_mips_ABI
- string
- default "32" if ARCH_mips_o32
- default "n32" if ARCH_mips_n32
- default "64" if ARCH_mips_n64
diff --git a/config/arch/powerpc.in b/config/arch/powerpc.in
index 6dfc742..276438f 100644
--- a/config/arch/powerpc.in
+++ b/config/arch/powerpc.in
@@ -1,4 +1,4 @@
-# powerpc specific configuration file
+# Powerpc specific configuration file
## select ARCH_SUPPORTS_32
## select ARCH_SUPPORTS_64
@@ -13,3 +13,44 @@
##
## help The PowerPC architecture, as defined by:
## help http://www.ibm.com/developerworks/eserver/articles/archguide.html
+
+config ARCH_powerpc_ABI
+ string
+ default "" if ARCH_powerpc_ABI_DEFAULT
+ default "eabi" if ARCH_powerpc_ABI_EABI
+ default "spe" if ARCH_powerpc_ABI_SPE
+
+choice
+ bool
+ prompt "ABI"
+ default ARCH_powerpc_ABI_DEFAULT
+
+config ARCH_powerpc_ABI_DEFAULT
+ bool
+ prompt "default"
+ help
+ The default ABI (System V.4).
+
+config ARCH_powerpc_ABI_EABI
+ bool
+ prompt "EABI"
+ depends on BARE_METAL
+ help
+ The Embedded ABI (stack alignment of 8 bytes, etc).
+
+config ARCH_powerpc_ABI_SPE
+ bool
+ prompt "SPE"
+ help
+ Add support for the Signal Processing Engine. This will set up
+ the toolchain so that it supports the SPE ABI extensions. This
+ mainly targets Freescale e500 processors.
+
+ Setting this option will append "spe" to the end of your target
+ tuple name (e.g., powerpc-e500v2-linux-gnuspe) so that the gcc
+ configure/build system will know to include SPE ABI support. It
+ will also automatically add "-mabi=spe -mspe" to your TARGET_CFLAGS,
+ and "--enable-e500_double" to your CC_EXTRA_CONFIG_ARRAY, so you
+ do not need to explicitly add them.
+
+endchoice
diff --git a/config/arch/powerpc.in.2 b/config/arch/powerpc.in.2
deleted file mode 100644
index 2cbc370..0000000
--- a/config/arch/powerpc.in.2
+++ /dev/null
@@ -1,42 +0,0 @@
-# powerpc specific configuration file
-
-config ARCH_powerpc_ABI
- string
- default "" if ARCH_powerpc_ABI_DEFAULT
- default "eabi" if ARCH_powerpc_ABI_EABI
- default "spe" if ARCH_powerpc_ABI_SPE
-
-choice
- bool
- prompt "ABI"
- default ARCH_powerpc_ABI_DEFAULT
-
-config ARCH_powerpc_ABI_DEFAULT
- bool
- prompt "default"
- help
- The default ABI (System V.4).
-
-config ARCH_powerpc_ABI_EABI
- bool
- prompt "EABI"
- depends on BARE_METAL
- help
- The Embedded ABI (stack alignment of 8 bytes, etc).
-
-config ARCH_powerpc_ABI_SPE
- bool
- prompt "SPE"
- help
- Add support for the Signal Processing Engine. This will set up
- the toolchain so that it supports the SPE ABI extensions. This
- mainly targets Freescale e500 processors.
-
- Setting this option will append "spe" to the end of your target
- tuple name (e.g., powerpc-e500v2-linux-gnuspe) so that the gcc
- configure/build system will know to include SPE ABI support. It
- will also automatically add "-mabi=spe -mspe" to your TARGET_CFLAGS,
- and "--enable-e500_double" to your CC_EXTRA_CONFIG_ARRAY, so you
- do not need to explicitly add them.
-
-endchoice
diff --git a/config/arch/sh.in b/config/arch/sh.in
index 60de313..be525b4 100644
--- a/config/arch/sh.in
+++ b/config/arch/sh.in
@@ -9,3 +9,27 @@
##
## help The Super-H architecture, as defined by:
## help http://www.renesas.com/fmwk.jsp?cnt=superh_family_landing.jsp&fp=/products/mpumcu/superh_family/
+
+choice
+ bool
+ prompt "Variant"
+
+config ARCH_SH_SH3
+ bool
+ prompt "sh3"
+
+config ARCH_SH_SH4
+ bool
+ prompt "sh4"
+
+config ARCH_SH_SH4A
+ bool
+ prompt "sh4a"
+
+endchoice
+
+config ARCH_SH_VARIANT
+ string
+ default "sh3" if ARCH_SH_SH3
+ default "sh4" if ARCH_SH_SH4
+ default "sh4a" if ARCH_SH_SH4A
diff --git a/config/arch/sh.in.2 b/config/arch/sh.in.2
deleted file mode 100644
index 82856ee..0000000
--- a/config/arch/sh.in.2
+++ /dev/null
@@ -1,25 +0,0 @@
-# Super-H specific configuration file
-
-choice
- bool
- prompt "Variant"
-
-config ARCH_SH_SH3
- bool
- prompt "sh3"
-
-config ARCH_SH_SH4
- bool
- prompt "sh4"
-
-config ARCH_SH_SH4A
- bool
- prompt "sh4a"
-
-endchoice
-
-config ARCH_SH_VARIANT
- string
- default "sh3" if ARCH_SH_SH3
- default "sh4" if ARCH_SH_SH4
- default "sh4a" if ARCH_SH_SH4A
diff --git a/config/arch/xtensa.in b/config/arch/xtensa.in
index 3ffa4e8..bf4fcb6 100644
--- a/config/arch/xtensa.in
+++ b/config/arch/xtensa.in
@@ -5,7 +5,7 @@
## select ARCH_DEFAULT_LE
## select ARCH_SUPPORTS_BOTH_MMU
## select ARCH_DEFAULT_HAS_MMU
-##
+
## help The xtensa architecture
## help
## help Xtensa is a configurable and extensible processor architecture.
@@ -20,3 +20,16 @@
## help
## help The default option (ARCH_xtensa_fsf) uses a built-in configuration,
## help which may or may not work for a particular Xtensa processor.
+
+choice
+ prompt "Target Architecture Variant"
+ default ARCH_xtensa_fsf
+
+config XTENSA_CUSTOM
+ bool "Custom Xtensa processor configuration"
+ select TARGET_USE_OVERLAY
+
+config ARCH_xtensa_fsf
+ bool "fsf - Default configuration"
+
+endchoice
diff --git a/config/arch/xtensa.in.2 b/config/arch/xtensa.in.2
deleted file mode 100644
index 25ece70..0000000
--- a/config/arch/xtensa.in.2
+++ /dev/null
@@ -1,33 +0,0 @@
-choice
- prompt "Target Architecture Variant"
- default ARCH_xtensa_fsf
-
-config XTENSA_CUSTOM
- bool "Custom Xtensa processor configuration"
-
-config ARCH_xtensa_fsf
- bool "fsf - Default configuration"
-
-endchoice
-
-config ARCH_XTENSA_CUSTOM_NAME
- string "Custom Xtensa processor configuration name"
- depends on XTENSA_CUSTOM
- default ""
- help
- Enter the name of the custom processor configuration.
- Overlay file for that configuration must be called
- 'xtensa_<CUSTOM_NAME>.tar'.
-
- Leave blank to use the default 'xtensa-overlay.tar'.
- For more information about this option, please also consult
- section 'Using crosstool-NG to build Xtensa toolchains' in the
- docs/C - Misc. tutorials.txt
-
-config ARCH_XTENSA_CUSTOM_OVERLAY_LOCATION
- string "Full path to custom Xtensa processor configurations"
- depends on XTENSA_CUSTOM
- default ""
- help
- Enter the path to the directory for the custom processor
- configuration file.
diff --git a/config/binutils.in b/config/binutils.in
index 0c6d5c0..a483881 100644
--- a/config/binutils.in
+++ b/config/binutils.in
@@ -33,10 +33,6 @@ config ARCH_BINFMT_FDPIC
endchoice
-config BINUTILS
- string
-
source "config/gen/binutils.in"
-source "config/gen/binutils.in.2"
endmenu
diff --git a/config/binutils/binutils.in b/config/binutils/binutils.in
index c83cbb1..3cb58f9 100644
--- a/config/binutils/binutils.in
+++ b/config/binutils/binutils.in
@@ -2,174 +2,29 @@
comment "GNU binutils"
-config BINUTILS_CUSTOM
- bool
- prompt "Custom binutils"
- depends on EXPERIMENTAL
- select BINUTILS_2_26_or_later
- help
- The choosen binutils version shall be not downloaded. Instead use
- a custom location to get the source.
-
-if BINUTILS_CUSTOM
-
-config BINUTILS_CUSTOM_LOCATION
- string
- prompt "Full path to custom binutils source"
- help
- Enter the path to the directory or tarball of your source for binutils.
-
- If the path is a tarball, it should extract to: <name>-<version>/
- where the name is this component, binutils, and the version is set
- below in the custom version string.
-
-config BINUTILS_CUSTOM_VERSION
- string
- prompt "Binutils Custom Version number"
- help
- Enter the version number for your custom binutils.
-
-config BINUTILS_VERSION
- string
- default BINUTILS_CUSTOM_VERSION
-
-endif # BINUTILS_CUSTOM
-
-if ! BINUTILS_CUSTOM
-
-config BINUTILS_SHOW_LINARO
- bool
- prompt "Show Linaro versions"
- help
- Linaro is maintaining some advanced/more stable/experimental versions
- of binutils, especially for the ARM architecture.
-
- Those versions have not been blessed by the binutils 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 "binutils version"
-# Don't remove next line
-# CT_INSERT_VERSION_BELOW
-
-config BINUTILS_V_2_28
- bool
- prompt "2.28"
- select BINUTILS_2_27_or_later
-
-config BINUTILS_V_2_27
- bool
- prompt "2.27"
- select BINUTILS_2_27_or_later
-
-config BINUTILS_V_2_26
- bool
- prompt "2.26"
- select BINUTILS_2_26_or_later
-
-config BINUTILS_V_2_25_1
- bool
- prompt "2.25.1 (OBSOLETE)"
- select BINUTILS_2_25_1_or_later
- depends on OBSOLETE
-
-config BINUTILS_LINARO_V_2_25
- bool
- prompt "linaro-2.25.0-2015.01-2 (OBSOLETE)"
- select BINUTILS_2_25_or_later
- depends on BINUTILS_SHOW_LINARO
- depends on OBSOLETE
-
-config BINUTILS_LINARO_V_2_24
- bool
- prompt "linaro-2.24.0-2014.11-2 (OBSOLETE)"
- select BINUTILS_2_24_or_later
- depends on BINUTILS_SHOW_LINARO
- depends on OBSOLETE
-
-config BINUTILS_V_2_24
- bool
- prompt "2.24 (OBSOLETE)"
- select BINUTILS_2_24_or_later
- depends on OBSOLETE
-
-config BINUTILS_LINARO_V_2_23_2
- bool
- prompt "linaro-2.23.2-2013.10-4 (OBSOLETE)"
- select BINUTILS_2_23_2_or_later
- depends on BINUTILS_SHOW_LINARO
- depends on OBSOLETE
-
-config BINUTILS_V_2_23_2
- bool
- prompt "2.23.2 (OBSOLETE)"
- select BINUTILS_2_23_2_or_later
- depends on OBSOLETE
-
-endchoice
-
-config BINUTILS_VERSION
- string
-# Don't remove next line
-# CT_INSERT_VERSION_STRING_BELOW
- default "2.28" if BINUTILS_V_2_28
- default "2.27" if BINUTILS_V_2_27
- default "2.26" if BINUTILS_V_2_26
- default "2.25.1" if BINUTILS_V_2_25_1
- default "linaro-2.25.0-2015.01-2" if BINUTILS_LINARO_V_2_25
- default "linaro-2.24.0-2014.11-2" if BINUTILS_LINARO_V_2_24
- default "2.24" if BINUTILS_V_2_24
- default "linaro-2.23.2-2013.10-4" if BINUTILS_LINARO_V_2_23_2
- default "2.23.2" if BINUTILS_V_2_23_2
-
-endif # ! BINUTILS_CUSTOM
-
-config BINUTILS_2_27_or_later
- bool
- select BINUTILS_2_26_or_later
+source "config/versions/binutils.in"
-config BINUTILS_2_26_or_later
- bool
- select BINUTILS_2_25_1_or_later
-
-config BINUTILS_2_25_1_or_later
- bool
- select BINUTILS_2_25_or_later
-
-config BINUTILS_2_25_or_later
- bool
- select BINUTILS_2_24_or_later
-
-config BINUTILS_2_24_or_later
+config BINUTILS_HAS_HASH_STYLE
+ default y if BINUTILS_2_23_or_later
bool
- select BINUTILS_2_23_2_or_later
-config BINUTILS_2_23_2_or_later
+config BINUTILS_HAS_GOLD
+ default y if BINUTILS_2_23_or_later
bool
- select BINUTILS_HAS_GOLD
- select BINUTILS_HAS_HASH_STYLE
- select BINUTILS_HAS_PKGVERSION_BUGURL
- select BINUTILS_HAS_PLUGINS
-config BINUTILS_HAS_HASH_STYLE
+config BINUTILS_HAS_PLUGINS
+ default y if BINUTILS_2_23_or_later
bool
-config BINUTILS_HAS_GOLD
+config BINUTILS_HAS_PKGVERSION_BUGURL
+ default y if BINUTILS_2_23_or_later
bool
# gold only suports the listed architectures
config BINUTILS_GOLD_SUPPORTS_ARCH
bool
- default y if ARCH_arm
- default y if ARCH_x86
+ default y if ARCH_ARM
+ default y if ARCH_X86
config BINUTILS_GOLD_SUPPORT
bool
@@ -178,12 +33,6 @@ config BINUTILS_GOLD_SUPPORT
depends on BINUTILS_GOLD_SUPPORTS_ARCH
depends on ! STATIC_TOOLCHAIN
-config BINUTILS_HAS_PLUGINS
- bool
-
-config BINUTILS_HAS_PKGVERSION_BUGURL
- bool
-
# Force using the BFD linker if needed. There are two options:
# - For some C libraries (eg. glibc at least), BFD ld must be
# built and be selected by default.
@@ -331,3 +180,27 @@ config BINUTILS_FOR_TARGET_BFD
default y
endif # BINUTILS_FOR_TARGET
+
+if ARCH_BINFMT_FLAT
+
+comment "elf2flt"
+
+config ELF2FLT_REQUIRES
+ def_bool y
+ select ZLIB
+ select BINUTILS_FORCE_LD_BFD_ONLY
+
+source "config/versions/elf2flt.in"
+
+config ELF2FLT_EXTRA_CONFIG_ARRAY
+ string
+ prompt "elf2flt extra config"
+ default ""
+ help
+ Extra flags passed onto ./configure when configuring
+
+ 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
+
+endif # ARCH_BINFMT_FLAT
diff --git a/config/binutils/binutils.in.2 b/config/binutils/binutils.in.2
deleted file mode 100644
index f913355..0000000
--- a/config/binutils/binutils.in.2
+++ /dev/null
@@ -1,82 +0,0 @@
-# elf2flt options
-
-if ARCH_BINFMT_FLAT
-
-config ELF2FLT_REQUIRES
- def_bool y
- select ZLIB
- select BINUTILS_FORCE_LD_BFD_ONLY
-
-comment "elf2flt"
-
-choice
- bool
- prompt "elf2flt version"
-
-config ELF2FLT_GIT
- bool
- prompt "git"
- depends on CONFIGURE_has_git
- help
- Grab the latest version of elf2flt from the CVS repository
-
-config ELF2FLT_CUSTOM
- bool
- prompt "Custom elf2flt"
- depends on EXPERIMENTAL || !CONFIGURE_has_git
- help
- The choosen elf2flt version shall be not downloaded. Instead use
- a custom location to get the source.
-
-endchoice
-
-if ELF2FLT_GIT
-
-config ELF2FLT_GIT_CSET
- string
- prompt "git cset"
- default "6d80ab6c93409e796f85da404bde84b841231531"
- help
- Enter the git changeset to use.
-
- The default currently points to the HEAD of the git tree.
-
-endif # ELF2FLT_GIT
-
-config ELF2FLT_VERSION
- string
- default ELF2FLT_GIT_CSET if ELF2FLT_GIT
- default ELF2FLT_CUSTOM_VERSION if ELF2FLT_CUSTOM
-
-if ELF2FLT_CUSTOM
-
-config ELF2FLT_CUSTOM_LOCATION
- string
- prompt "Full path to custom elf2flt source"
- help
- Enter the path to the directory or tarball of your source for elf2flt.
-
- If the path is a tarball, it should extract to: <name>-<version>/
- where the name is this component, elf2flt, and the version is set
- below in the custom version string.
-
-config ELF2FLT_CUSTOM_VERSION
- string
- prompt "elf2flt custom version number"
- help
- Enter the version number for your custom elf2flt.
-
-endif # ELF2FLT_CUSTOM
-
-config ELF2FLT_EXTRA_CONFIG_ARRAY
- string
- prompt "elf2flt extra config"
- default ""
- help
- Extra flags passed onto ./configure when configuring
-
- 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
-
-endif # ARCH_BINFMT_FLAT
diff --git a/config/cc.in b/config/cc.in
index 81f168c..187a48d 100644
--- a/config/cc.in
+++ b/config/cc.in
@@ -2,13 +2,6 @@
menu "C compiler"
-config CC
- string
- default "gcc"
-
-config CC_VERSION
- string
-
config CC_CORE_PASSES_NEEDED
bool
select CC_CORE_PASS_1_NEEDED
@@ -20,8 +13,6 @@ config CC_CORE_PASS_1_NEEDED
config CC_CORE_PASS_2_NEEDED
bool
-source "config/gen/cc.in"
-
config CC_SUPPORT_CXX
bool
@@ -43,6 +34,8 @@ config CC_SUPPORT_OBJCXX
config CC_SUPPORT_GOLANG
bool
+source "config/gen/cc.in"
+
comment "Additional supported languages:"
config CC_LANG_CXX
diff --git a/config/cc/gcc.in b/config/cc/gcc.in
index d86a300..a11e8cd 100644
--- a/config/cc/gcc.in
+++ b/config/cc/gcc.in
@@ -1,216 +1,432 @@
-# Compiler options
-#
+# GCC options
+
## default y
-## select CC_SUPPORT_CXX if !LIBC_none
+## select CC_SUPPORT_CXX if !LIBC_NONE
## select CC_SUPPORT_FORTRAN
-## select CC_SUPPORT_JAVA if !CC_GCC_6_or_later
+## select CC_SUPPORT_JAVA if !GCC_7_or_later
## select CC_SUPPORT_ADA
## select CC_SUPPORT_OBJC
## select CC_SUPPORT_OBJCXX
## select CC_SUPPORT_GOLANG
-##
+# GCC7 requires ISL 0.15+
+## select ISL_REQUIRE_0_15_or_later if ISL_NEEDED && GCC_7_or_later
+# GCC6 requires ISL 0.14+ (it says 0.14-0.16, but accepts newer ISL as well)
+## select ISL_REQUIRE_0_14_or_later if ISL_NEEDED && GCC_6_or_later
+# GCC5 requires ISL 0.12+ (again, it says 0.12-0.16, but also accepts newer ISL)
+## select ISL_REQUIRE_0_12_or_later if ISL_NEEDED && GCC_5_or_later
+# GCC4.9 requires ISL 0.10..0.15
+# GCC4.8 requires ISL 0.10..0.14
+## select ISL_REQUIRE_0_10_or_later if ISL_NEEDED && GCC_4_8_or_later
+## select ISL_REQUIRE_0_15_or_older if ISL_NEEDED && GCC_4_9_or_later && !GCC_5_or_later
+## select ISL_REQUIRE_0_14_or_older if ISL_NEEDED && GCC_4_8_or_later && !GCC_4_9_or_later
+
## help gcc is the full-blown GNU compiler. This is what most people will choose.
## help
## help gcc supports many languages, a powerful code parser, optimised binary
## help output, and lots of other features.
-config CC_GCC_CUSTOM
- bool
- prompt "Custom gcc"
- depends on EXPERIMENTAL
- select CC_GCC_latest
- help
- The choosen gcc version shall be not downloaded. Instead use
- a custom location to get the source.
-
-if CC_GCC_CUSTOM
-
-config CC_GCC_CUSTOM_LOCATION
- string
- prompt "Full path to custom gcc source"
- help
- Enter the path to the directory or tarball of your source for gcc.
+source "config/versions/gcc.in"
- If the path is a tarball, it should extract to: <name>-<version>/
- where the name is this component, gcc, and the version is set
- below in the custom version string.
+# 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
+ def_bool y
+ depends on BINUTILS_PLUGINS
+ depends on ! STATIC_TOOLCHAIN
-config CC_GCC_CUSTOM_VERSION
- string
- prompt "Custom GCC Version"
- help
- Enter the version number for your custom gcc.
+# Affects the build of musl
+config GCC_BUG_61144
+ bool
+ default y if GCC_4_9_or_later && !GCC_4_9_2_or_later
-config CC_GCC_VERSION
- string
- default CC_GCC_CUSTOM_VERSION
+# If binutils installs gold, enable support for gold in gcc
+config CC_GCC_GOLD
+ def_bool y
+ depends on BINUTILS_GOLD_INSTALLED
-endif #CC_GCC_CUSTOM
+config CC_GCC_HAS_LIBMPX
+ def_bool y
+ depends on GCC_5_or_later
-if ! CC_GCC_CUSTOM
+config CC_LANG_JAVA_USE_ECJ
+ def_bool y
+ depends on CC_LANG_JAVA
-config CC_GCC_SHOW_LINARO
- bool
- prompt "Show Linaro versions"
+config CC_GCC_ENABLE_CXX_FLAGS
+ string "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 "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 "gcc extra config"
+ default ""
help
- Linaro is maintaining some advanced/more stable/experimental versions
- of gcc, especially for the ARM architecture.
+ 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 "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.
- Those versions have not been blessed by the gcc comunity (nor have they
- been cursed either!), but they look to be pretty much stable, and even
- more stable than the upstream versions. YMMV...
+config STATIC_TOOLCHAIN
+ bool
+ select CC_GCC_STATIC_LIBSTDCXX
- 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.
+config CC_GCC_STATIC_LIBSTDCXX
+ bool "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 "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.
+config CC_GCC_USE_GRAPHITE
+ bool "Enable GRAPHITE loop optimisations"
+ default y
+ select CLOOG_NEEDED if !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.
- Linaro: http://www.linaro.org/
+#-----------------------------------------------------------------------------
+comment "Settings for libraries running on target"
-choice
+config CC_GCC_ENABLE_TARGET_OPTSPACE
bool
- prompt "gcc version"
-
-# Don't remove next line
-# CT_INSERT_VERSION_BELOW
+ 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_V_7_1_0
+config CC_GCC_LIBMUDFLAP
bool
- prompt "7.1.0"
- select CC_GCC_7
-
-config CC_GCC_V_linaro_6_3
+ 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 "linaro-6.3-2017.05"
- depends on CC_GCC_SHOW_LINARO
- select CC_GCC_6
+ 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/
-config CC_GCC_V_6_3_0
- bool
- prompt "6.3.0"
- select CC_GCC_6
+ GNU OpenMP support requires threading.
-config CC_GCC_V_linaro_5_4
- bool
- prompt "linaro-5.4-2017.05"
- depends on CC_GCC_SHOW_LINARO
- select CC_GCC_5
+ The default is 'N'. Say 'Y' if you need it, and report success/failure.
-config CC_GCC_V_5_4_0
+config CC_GCC_LIBSSP
bool
- prompt "5.4.0"
- select CC_GCC_5
+ 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_V_linaro_4_9
+config CC_GCC_LIBQUADMATH
bool
- prompt "linaro-4.9-2017.01"
- depends on CC_GCC_SHOW_LINARO
- select CC_GCC_4_9
+ 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_V_4_9_4
+config CC_GCC_LIBSANITIZER
bool
- prompt "4.9.4"
- select CC_GCC_4_9
+ 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)
-config CC_GCC_V_linaro_4_8
- bool
- prompt "linaro-4.8-2015.06 (OBSOLETE)"
- depends on CC_GCC_SHOW_LINARO
- depends on OBSOLETE
- select CC_GCC_4_8
+ The default is 'N'. Say 'Y' if you need it, and report success/failure.
-config CC_GCC_V_4_8_5
+config CC_GCC_LIBMPX
bool
- prompt "4.8.5 (OBSOLETE)"
- select CC_GCC_4_8
- depends on OBSOLETE
-
-endchoice
+ 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_W64
+ help
+ Enable GCC support for Intel Memory Protection Extensions (MPX).
-endif # ! CC_GCC_CUSTOM
+#-----------------------------------------------------------------------------
-config CC_GCC_4_8
- bool
- select CC_GCC_4_8_or_later
+comment "Misc. obscure options."
-config CC_GCC_4_8_or_later
+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_4_9
+config CC_GCC_DISABLE_PCH
bool
- select CC_GCC_4_9_or_later
-
-config CC_GCC_4_9_or_later
+ 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
- select CC_GCC_4_8_or_later
-
-config CC_GCC_5
+ 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
- select CC_GCC_5_or_later
+ prompt "linker hash style"
+ depends on BINUTILS_HAS_HASH_STYLE
-config CC_GCC_5_or_later
+config CC_GCC_LNK_HASH_STYLE_DEFAULT
bool
- select CC_GCC_4_9_or_later
- select CC_GCC_HAS_LIBMPX
+ prompt "Default"
+ help
+ Do not specify any value, and use the default value (sysv).
-config CC_GCC_6
+config CC_GCC_LNK_HASH_STYLE_SYSV
bool
- select CC_GCC_6_or_later
+ prompt "sysv"
+ help
+ Force use of the SYSV hash style.
-config CC_GCC_6_or_later
+config CC_GCC_LNK_HASH_STYLE_GNU
bool
- select CC_GCC_5_or_later
+ prompt "gnu"
+ help
+ Force use of the GNU hash style.
-config CC_GCC_7
+config CC_GCC_LNK_HASH_STYLE_BOTH
bool
- select CC_GCC_7_or_later
+ prompt "both"
+ help
+ Force use of both hash styles.
-config CC_GCC_7_or_later
- bool
- select CC_GCC_6_or_later
+endchoice # CC_GCC_LNK_HASH_STYLE_CHOICE
-config CC_GCC_latest
- bool
- select CC_GCC_7_or_later
+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
-# 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
+config CC_GCC_DEC_FLOAT_BID
+ bool "bid"
+ help
+ Use the 'binary integer decimal' format for decimal floats.
-# 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_DEC_FLOAT_DPD
+ bool "dpd"
+ help
+ Use the 'densely packed decimal' for decimal floats.
-config CC_GCC_HAS_LIBMPX
- bool
+config CC_GCC_DEC_FLOATS_NO
+ bool "no"
+ help
+ Do not support decimal floats. The default.
-if ! CC_GCC_CUSTOM
+endchoice # CC_GCC_DEC_FLOATS_CHOICE
-config CC_GCC_VERSION
+config CC_GCC_DEC_FLOATS
string
-# Don't remove next line
-# CT_INSERT_VERSION_STRING_BELOW
- default "7.1.0" if CC_GCC_V_7_1_0
- default "linaro-6.3-2017.05" if CC_GCC_V_linaro_6_3
- default "6.3.0" if CC_GCC_V_6_3_0
- default "linaro-5.4-2017.05" if CC_GCC_V_linaro_5_4
- default "5.4.0" if CC_GCC_V_5_4_0
- default "linaro-4.9-2017.01" if CC_GCC_V_linaro_4_9
- default "4.9.4" if CC_GCC_V_4_9_4
- default "linaro-4.8-2015.06" if CC_GCC_V_linaro_4_8
- default "4.8.5" if CC_GCC_V_4_8_5
-
-endif # ! CC_GCC_CUSTOM
+ 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_LANG_JAVA_USE_ECJ
+#-----------------------------------------------------------------------------
+
+config CC_GCC_HAS_ARCH_OPTIONS
bool
- default y
- depends on CC_LANG_JAVA
-source "config/cc/gcc.in.2"
+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
deleted file mode 100644
index 79a6225..0000000
--- a/config/cc/gcc.in.2
+++ /dev/null
@@ -1,387 +0,0 @@
-# gcc configuration options
-
-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)"
- depends on !LIBC_bionic
- 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/companion_libs.in b/config/comp_libs.in
index fae49ec..009aac8 100644
--- a/config/companion_libs.in
+++ b/config/comp_libs.in
@@ -122,44 +122,61 @@ config NCURSES_TARGET
config ZLIB
bool "Build local zlib"
+# FIXME this needs to have a list of options
+# [ ] libfoo for build
+# [ ] libfoo for host (if canadian)
+# [ ] libfoo for target
+# libfoo options -->
+#
+# Then have other packages *set default* for build/host
+# (but not select, so that user can utilize build's or host's system library)
+# and *select* the target (so that we build it if we must, and let user optionally
+# build it if he wants). Upon any of these options LIBFOO_{BUILD,HOST,TARGET}
+# being set, set LIBFOO_ENABLED and use that as a qualifier for submenu.
+# For now, just have comments delineating the libs.
if ZLIB
-source "config/companion_libs/zlib.in"
+comment "zlib options"
+source "config/comp_libs/zlib.in"
endif
if LIBICONV
-source "config/companion_libs/libiconv.in"
+comment "libiconv options"
+source "config/comp_libs/libiconv.in"
endif
if GETTEXT
-source "config/companion_libs/gettext.in"
+comment "gettext options"
+source "config/comp_libs/gettext.in"
endif
if GMP
-source "config/companion_libs/gmp.in"
+comment "GMP options"
+source "config/comp_libs/gmp.in"
endif
if MPFR
-source "config/companion_libs/mpfr.in"
+comment "MPFR options"
+source "config/comp_libs/mpfr.in"
endif
if ISL
-source "config/companion_libs/isl.in"
+comment "ISL options"
+source "config/comp_libs/isl.in"
endif
if CLOOG
-source "config/companion_libs/cloog.in"
+comment "CLooG options"
+source "config/comp_libs/cloog.in"
endif
if MPC
-source "config/companion_libs/mpc.in"
+comment "MPC options"
+source "config/comp_libs/mpc.in"
endif
if LIBELF || LIBELF_TARGET
-comment "libelf version needed to build for target"
- depends on !LIBELF
-source "config/companion_libs/libelf.in"
+comment "libelf options"
+source "config/comp_libs/libelf.in"
endif
if EXPAT || EXPAT_TARGET
-comment "expat version needed to build for target"
- depends on !EXPAT
-source "config/companion_libs/expat.in"
+comment "expat options"
+source "config/comp_libs/expat.in"
endif
if NCURSES || NCURSES_TARGET
-comment "ncurses version needed to build for target"
- depends on !NCURSES
-source "config/companion_libs/ncurses.in"
+comment "ncurses options"
+source "config/comp_libs/ncurses.in"
endif
if COMPLIBS
diff --git a/config/comp_libs/cloog.in b/config/comp_libs/cloog.in
new file mode 100644
index 0000000..b894de9
--- /dev/null
+++ b/config/comp_libs/cloog.in
@@ -0,0 +1,11 @@
+# CLooG options
+## depends on OBSOLETE
+
+# CLooG 0.18.4 requires ISL 0.12 or newer
+# CLooG 0.18.1/0.18.0 requires ISL 0.12 or older
+
+source "config/versions/cloog.in"
+
+config CLOOG_HAS_WITH_GMP_ISL_OSL
+ bool
+ default y if CLOOG_0_18_or_later
diff --git a/config/comp_libs/expat.in b/config/comp_libs/expat.in
new file mode 100644
index 0000000..a2753a4
--- /dev/null
+++ b/config/comp_libs/expat.in
@@ -0,0 +1,3 @@
+# expat config file
+
+source "config/versions/expat.in"
diff --git a/config/comp_libs/gettext.in b/config/comp_libs/gettext.in
new file mode 100644
index 0000000..4928ede
--- /dev/null
+++ b/config/comp_libs/gettext.in
@@ -0,0 +1,3 @@
+# gettext options
+
+source "config/versions/gettext.in"
diff --git a/config/comp_libs/gmp.in b/config/comp_libs/gmp.in
new file mode 100644
index 0000000..28359cd
--- /dev/null
+++ b/config/comp_libs/gmp.in
@@ -0,0 +1,7 @@
+# GMP options
+
+source "config/versions/gmp.in"
+
+config GMP_HAS_MPBSD
+ bool
+ default y if !GMP_5_1_or_later
diff --git a/config/comp_libs/isl.in b/config/comp_libs/isl.in
new file mode 100644
index 0000000..9c74078
--- /dev/null
+++ b/config/comp_libs/isl.in
@@ -0,0 +1,26 @@
+# ISL options
+# FIXME these currently have no effect
+## select CLOOG_REQUIRE_0_18_1_or_older if !ISL_0_12_or_later
+## select CLOOG_REQUIRE_0_18_4_or_later if !ISL_0_14_or_older
+
+source "config/versions/isl.in"
+
+# FIXME should be auto-generated once companion libs are using gen-kconfig (and hence, ## syntax)
+config ISL_CLOOG_auto_select_1
+ def_bool y
+ depends on CLOOG_NEEDED && !ISL_0_12_or_later
+ select CLOOG_REQUIRE_0_18_1_or_older
+
+# FIXME should be auto-generated once companion libs are using gen-kconfig (and hence, ## syntax)
+config ISL_CLOOG_auto_select_2
+ def_bool y
+ depends on CLOOG_NEEDED && !ISL_0_13_or_older
+ select CLOOG_REQUIRE_0_18_4_or_later
+
+config ISL_NEEDS_WITH_GMP
+ bool
+ default y if !ISL_0_12_or_later
+
+config ISL_HAS_WITH_PIPLIB
+ bool
+ default y if !ISL_0_14_or_later
diff --git a/config/comp_libs/libelf.in b/config/comp_libs/libelf.in
new file mode 100644
index 0000000..5b268c1
--- /dev/null
+++ b/config/comp_libs/libelf.in
@@ -0,0 +1,3 @@
+# libelf config file
+
+source "config/versions/libelf.in"
diff --git a/config/comp_libs/libiconv.in b/config/comp_libs/libiconv.in
new file mode 100644
index 0000000..99d3365
--- /dev/null
+++ b/config/comp_libs/libiconv.in
@@ -0,0 +1,3 @@
+# libiconv options
+
+source "config/versions/libiconv.in"
diff --git a/config/comp_libs/mpc.in b/config/comp_libs/mpc.in
new file mode 100644
index 0000000..790e755
--- /dev/null
+++ b/config/comp_libs/mpc.in
@@ -0,0 +1,3 @@
+# MPC options
+
+source "config/versions/mpc.in"
diff --git a/config/comp_libs/mpfr.in b/config/comp_libs/mpfr.in
new file mode 100644
index 0000000..5ed7ac8
--- /dev/null
+++ b/config/comp_libs/mpfr.in
@@ -0,0 +1,3 @@
+# GMP options
+
+source "config/versions/mpfr.in"
diff --git a/config/companion_libs/ncurses.in b/config/comp_libs/ncurses.in
index 68ecbb7..7087fbe 100644
--- a/config/companion_libs/ncurses.in
+++ b/config/comp_libs/ncurses.in
@@ -1,22 +1,6 @@
# expat config file
-choice
- bool
- prompt "ncurses version"
-# Don't remove next line
-# CT_INSERT_VERSION_BELOW
-
-config NCURSES_V_6_0
- bool
- prompt "6.0"
-
-endchoice
-
-config NCURSES_VERSION
- string
-# Don't remove next line
-# CT_INSERT_VERSION_STRING_BELOW
- default "6.0" if NCURSES_V_6_0
+source "config/versions/ncurses.in"
config NCURSES_NEW_ABI
bool "ncurses 6.0 ABI support"
diff --git a/config/comp_libs/zlib.in b/config/comp_libs/zlib.in
new file mode 100644
index 0000000..70668e2
--- /dev/null
+++ b/config/comp_libs/zlib.in
@@ -0,0 +1,3 @@
+# Zlib options
+
+source "config/versions/zlib.in"
diff --git a/config/companion_tools.in b/config/comp_tools.in
index e5ef3fc..020a070 100644
--- a/config/companion_tools.in
+++ b/config/comp_tools.in
@@ -10,6 +10,6 @@ config COMP_TOOLS_FOR_HOST
tools into the final toolchain (rather than just using them
to build it).
-source "config/gen/companion_tools.in"
+source "config/gen/comp_tools.in"
endmenu
diff --git a/config/comp_tools/autoconf.in b/config/comp_tools/autoconf.in
new file mode 100644
index 0000000..b49017d
--- /dev/null
+++ b/config/comp_tools/autoconf.in
@@ -0,0 +1,7 @@
+# Autoconf
+
+## default y if !CONFIGURE_has_autoconf_2_63_or_newer
+## default y if !CONFIGURE_has_autoreconf_2_63_or_newer
+## help Autoconf
+
+source "config/versions/autoconf.in"
diff --git a/config/comp_tools/automake.in b/config/comp_tools/automake.in
new file mode 100644
index 0000000..455200e
--- /dev/null
+++ b/config/comp_tools/automake.in
@@ -0,0 +1,6 @@
+# Automake
+
+## default y if !CONFIGURE_has_automake_1_15_or_newer
+## help Automake
+
+source "config/versions/automake.in"
diff --git a/config/comp_tools/libtool.in b/config/comp_tools/libtool.in
new file mode 100644
index 0000000..071b53e
--- /dev/null
+++ b/config/comp_tools/libtool.in
@@ -0,0 +1,6 @@
+# Libtool
+
+## default y if !CONFIGURE_has_libtool_2_4_or_newer
+## default y if !CONFIGURE_has_libtoolize_2_4_or_newer
+
+source "config/versions/libtool.in"
diff --git a/config/comp_tools/m4.in b/config/comp_tools/m4.in
new file mode 100644
index 0000000..1a81a9f
--- /dev/null
+++ b/config/comp_tools/m4.in
@@ -0,0 +1,5 @@
+# GNU m4
+
+## default y if !CONFIGURE_has_gnu_m4_1_4_12_or_newer
+
+source "config/versions/m4.in"
diff --git a/config/comp_tools/make.in b/config/comp_tools/make.in
new file mode 100644
index 0000000..07331d5
--- /dev/null
+++ b/config/comp_tools/make.in
@@ -0,0 +1,10 @@
+# GNU make
+
+## default y if !CONFIGURE_has_make_3_81_or_newer
+
+source "config/versions/make.in"
+
+config MAKE_GMAKE_SYMLINK
+ bool
+ prompt "Add gmake symlink to companion gnu/make"
+ depends on COMP_TOOLS_MAKE
diff --git a/config/companion_libs/cloog.in b/config/companion_libs/cloog.in
deleted file mode 100644
index 95b283c..0000000
--- a/config/companion_libs/cloog.in
+++ /dev/null
@@ -1,51 +0,0 @@
-# CLooG options
-## depends on OBSOLETE
-
-# CLooG 0.18.4 requires ISL 0.12 or newer
-# CLooG 0.18.1/0.18.0 frequires ISL 0.12 or older
-choice
- bool
- prompt "CLooG version"
-
-# Don't remove next line
-# CT_INSERT_VERSION_BELOW
-
-config CLOOG_V_0_18_4
- bool
- prompt "0.18.4"
- depends on ISL_V_0_12_or_later
- select CLOOG_0_18_4_or_later
-
-config CLOOG_V_0_18_1
- bool
- prompt "0.18.1 (OBSOLETE)"
- depends on !ISL_V_0_14_or_later
- depends on OBSOLETE
- select CLOOG_0_18_or_later
-
-config CLOOG_V_0_18_0
- bool
- prompt "0.18.0 (OBSOLETE)"
- depends on !ISL_V_0_14_or_later
- depends on OBSOLETE
- select CLOOG_0_18_or_later
-
-endchoice
-
-config CLOOG_VERSION
- string
-# Don't remove next line
-# CT_INSERT_VERSION_STRING_BELOW
- default "0.18.4" if CLOOG_V_0_18_4
- default "0.18.1" if CLOOG_V_0_18_1
- default "0.18.0" if CLOOG_V_0_18_0
-
-config CLOOG_0_18_4_or_later
- bool
- select CLOOG_0_18_or_later
-
-config CLOOG_0_18_or_later
- bool
-
-config CLOOG_NEEDS_AUTORECONF
- bool
diff --git a/config/companion_libs/expat.in b/config/companion_libs/expat.in
deleted file mode 100644
index 4c2f2e2..0000000
--- a/config/companion_libs/expat.in
+++ /dev/null
@@ -1,25 +0,0 @@
-# expat config file
-
-choice
- bool
- prompt "expat version"
-# Don't remove next line
-# CT_INSERT_VERSION_BELOW
-
-config EXPAT_V_2_2_1
- bool
- prompt "2.2.1"
-
-config EXPAT_V_2_1_1
- bool
- prompt "2.1.1 (OBSOLETE)"
- depends on OBSOLETE
-
-endchoice
-
-config EXPAT_VERSION
- string
-# Don't remove next line
-# CT_INSERT_VERSION_STRING_BELOW
- default "2.2.1" if EXPAT_V_2_2_1
- default "2.1.1" if EXPAT_V_2_1_1
diff --git a/config/companion_libs/gettext.in b/config/companion_libs/gettext.in
deleted file mode 100644
index d76955a..0000000
--- a/config/companion_libs/gettext.in
+++ /dev/null
@@ -1,25 +0,0 @@
-# gettext options
-
-choice
- bool
- prompt "gettext version"
-# Don't remove next line
-# CT_INSERT_VERSION_BELOW
-
-config GETTEXT_V_0_19_8_1
- bool
- prompt "0.19.8.1"
-
-config GETTEXT_V_0_19_7
- bool
- prompt "0.19.7 (OBSOLETE)"
- depends on OBSOLETE
-
-endchoice
-
-config GETTEXT_VERSION
- string
-# Don't remove next line
-# CT_INSERT_VERSION_STRING_BELOW
- default "0.19.8.1" if GETTEXT_V_0_19_8_1
- default "0.19.7" if GETTEXT_V_0_19_7
diff --git a/config/companion_libs/gmp.in b/config/companion_libs/gmp.in
deleted file mode 100644
index 167c772..0000000
--- a/config/companion_libs/gmp.in
+++ /dev/null
@@ -1,83 +0,0 @@
-# GMP options
-
-choice
- bool
- prompt "GMP version"
-# Don't remove next line
-# CT_INSERT_VERSION_BELOW
-
-config GMP_V_6_1_2
- bool
- prompt "6.1.2"
- select GMP_5_0_2_or_later
-
-config GMP_V_6_1_0
- bool
- prompt "6.1.0 (OBSOLETE)"
- select GMP_5_0_2_or_later
- depends on OBSOLETE
-
-config GMP_V_6_0_0
- bool
- prompt "6.0.0a (OBSOLETE)"
- select GMP_5_0_2_or_later
- depends on OBSOLETE
-
-config GMP_V_5_1_3
- bool
- prompt "5.1.3 (OBSOLETE)"
- select GMP_5_0_2_or_later
- depends on OBSOLETE
-
-config GMP_V_5_1_1
- bool
- prompt "5.1.1 (OBSOLETE)"
- select GMP_5_0_2_or_later
- depends on OBSOLETE
-
-config GMP_V_5_0_2
- bool
- prompt "5.0.2 (OBSOLETE)"
- select GMP_5_0_2_or_later
- depends on OBSOLETE
-
-config GMP_V_5_0_1
- bool
- prompt "5.0.1 (OBSOLETE)"
- depends on OBSOLETE
-
-config GMP_V_4_3_2
- bool
- prompt "4.3.2 (OBSOLETE)"
- depends on OBSOLETE
-
-config GMP_V_4_3_1
- bool
- prompt "4.3.1 (OBSOLETE)"
- depends on OBSOLETE
-
-config GMP_V_4_3_0
- bool
- prompt "4.3.0 (OBSOLETE)"
- depends on OBSOLETE
-
-endchoice
-
-# To disable --enable-mpbsd
-config GMP_5_0_2_or_later
- bool
-
-config GMP_VERSION
- string
-# Don't remove next line
-# CT_INSERT_VERSION_STRING_BELOW
- default "6.1.2" if GMP_V_6_1_2
- default "6.1.0" if GMP_V_6_1_0
- default "6.0.0a" if GMP_V_6_0_0
- default "5.1.3" if GMP_V_5_1_3
- default "5.1.1" if GMP_V_5_1_1
- default "5.0.2" if GMP_V_5_0_2
- default "5.0.1" if GMP_V_5_0_1
- default "4.3.2" if GMP_V_4_3_2
- default "4.3.1" if GMP_V_4_3_1
- default "4.3.0" if GMP_V_4_3_0
diff --git a/config/companion_libs/isl.in b/config/companion_libs/isl.in
deleted file mode 100644
index bb2766f..0000000
--- a/config/companion_libs/isl.in
+++ /dev/null
@@ -1,92 +0,0 @@
-# ISL options
-
-# GCC 4.8 supports ISL 0.10 to 0.14
-# GCC 4.9 supports ISL 0.10 to 0.15
-# GCC 5 supports ISL 0.12 to 0.16
-# GCC 6 supports ISL 0.14 to 0.16
-# Starting with GCC 5, GCC's configure no longer checks the ISL version explicitly,
-# despite what the configure's message says ("checking for isl 0.15 or 0.16").
-# Instead, it verifies that certain interfaces are available, so it accepts 0.17.1
-# or 0.18 under that check. Include them as experimental just in case anyone needs
-# the bugfixes in these releases.
-choice
- bool
- prompt "ISL version"
-# Don't remove next line
-# CT_INSERT_VERSION_BELOW
-
-config ISL_V_0_18
- bool
- prompt "0.18"
- depends on EXPERIMENTAL # Not officially recommended by GCC
- depends on CC_GCC_5_or_later
- select ISL_V_0_16_or_later
-
-config ISL_V_0_17_1
- bool
- prompt "0.17.1"
- depends on EXPERIMENTAL # Not officially recommended by GCC
- depends on CC_GCC_5_or_later
- select ISL_V_0_16_or_later
-
-config ISL_V_0_16_1
- bool
- prompt "0.16.1"
- depends on CC_GCC_5_or_later
- select ISL_V_0_16_or_later
-
-# Linaro version of 4.9 does not support ISL 0.15, but most recent
-# mainline 4.9 release (4.9.4) does.
-config ISL_V_0_15
- bool
- prompt "0.15"
- depends on CC_GCC_4_9_or_later
- select ISL_V_0_15_or_later
-
-config ISL_V_0_14
- bool
- prompt "0.14 (OBSOLETE)"
- select ISL_V_0_14_or_later
- depends on OBSOLETE
-
-config ISL_V_0_12_2
- bool
- prompt "0.12.2 (OBSOLETE)"
- depends on !CC_GCC_6_or_later
- select ISL_V_0_12_or_later
- depends on OBSOLETE
-
-config ISL_V_0_11_1
- bool
- prompt "0.11.1 (OBSOLETE)"
- depends on !CC_GCC_4_9_or_later
- depends on OBSOLETE
-
-endchoice
-
-config ISL_V_0_16_or_later
- bool
- select ISL_V_0_15_or_later
-
-config ISL_V_0_15_or_later
- bool
- select ISL_V_0_14_or_later
-
-config ISL_V_0_14_or_later
- bool
- select ISL_V_0_12_or_later
-
-config ISL_V_0_12_or_later
- bool
-
-config ISL_VERSION
- string
-# Don't remove next line
-# CT_INSERT_VERSION_STRING_BELOW
- default "0.18" if ISL_V_0_18
- default "0.17.1" if ISL_V_0_17_1
- default "0.16.1" if ISL_V_0_16_1
- default "0.15" if ISL_V_0_15
- default "0.14" if ISL_V_0_14
- default "0.12.2" if ISL_V_0_12_2
- default "0.11.1" if ISL_V_0_11_1
diff --git a/config/companion_libs/libelf.in b/config/companion_libs/libelf.in
deleted file mode 100644
index b01ab36..0000000
--- a/config/companion_libs/libelf.in
+++ /dev/null
@@ -1,25 +0,0 @@
-# libelf config file
-
-choice
- bool
- prompt "libelf version"
-# Don't remove next line
-# CT_INSERT_VERSION_BELOW
-
-config LIBELF_V_0_8_13
- bool
- prompt "0.8.13"
-
-config LIBELF_V_0_8_12
- bool
- prompt "0.8.12 (OBSOLETE)"
- depends on OBSOLETE
-
-endchoice
-
-config LIBELF_VERSION
- string
-# Don't remove next line
-# CT_INSERT_VERSION_STRING_BELOW
- default "0.8.13" if LIBELF_V_0_8_13
- default "0.8.12" if LIBELF_V_0_8_12
diff --git a/config/companion_libs/libiconv.in b/config/companion_libs/libiconv.in
deleted file mode 100644
index d871681..0000000
--- a/config/companion_libs/libiconv.in
+++ /dev/null
@@ -1,24 +0,0 @@
-# libiconv options
-
-choice
- bool
- prompt "libiconv version"
-# Don't remove next line
-# CT_INSERT_VERSION_BELOW
-
-config LIBICONV_V_1_15
- bool
- prompt "1.15"
-
-config LIBICONV_V_1_14
- bool
- prompt "1.14"
-
-endchoice
-
-config LIBICONV_VERSION
- string
-# Don't remove next line
-# CT_INSERT_VERSION_STRING_BELOW
- default "1.15" if LIBICONV_V_1_15
- default "1.14" if LIBICONV_V_1_14
diff --git a/config/companion_libs/mpc.in b/config/companion_libs/mpc.in
deleted file mode 100644
index cd8132d..0000000
--- a/config/companion_libs/mpc.in
+++ /dev/null
@@ -1,61 +0,0 @@
-# MPC options
-
-choice
- bool
- prompt "MPC version"
-# Don't remove next line
-# CT_INSERT_VERSION_BELOW
-
-config MPC_V_1_0_3
- bool
- prompt "1.0.3"
-
-config MPC_V_1_0_2
- bool
- prompt "1.0.2 (OBSOLETE)"
- depends on OBSOLETE
-
-config MPC_V_1_0_1
- bool
- prompt "1.0.1 (OBSOLETE)"
- depends on OBSOLETE
-
-config MPC_V_1_0
- bool
- prompt "1.0 (OBSOLETE)"
- depends on OBSOLETE
-
-config MPC_V_0_9
- bool
- prompt "0.9 (OBSOLETE)"
- depends on OBSOLETE
-
-config MPC_V_0_8_2
- bool
- prompt "0.8.2 (OBSOLETE)"
- depends on OBSOLETE
-
-config MPC_V_0_8_1
- bool
- prompt "0.8.1 (OBSOLETE)"
- depends on OBSOLETE
-
-config MPC_V_0_7
- bool
- prompt "0.7 (OBSOLETE)"
- depends on OBSOLETE
-
-endchoice
-
-config MPC_VERSION
- string
-# Don't remove next line
-# CT_INSERT_VERSION_STRING_BELOW
- default "1.0.3" if MPC_V_1_0_3
- default "1.0.2" if MPC_V_1_0_2
- default "1.0.1" if MPC_V_1_0_1
- default "1.0" if MPC_V_1_0
- default "0.9" if MPC_V_0_9
- default "0.8.2" if MPC_V_0_8_2
- default "0.8.1" if MPC_V_0_8_1
- default "0.7" if MPC_V_0_7
diff --git a/config/companion_libs/mpfr.in b/config/companion_libs/mpfr.in
deleted file mode 100644
index ce33b3d..0000000
--- a/config/companion_libs/mpfr.in
+++ /dev/null
@@ -1,67 +0,0 @@
-# GMP options
-
-choice
- bool
- prompt "MPFR version"
-# Don't remove next line
-# CT_INSERT_VERSION_BELOW
-
-config MPFR_V_3_1_5
- bool
- prompt "3.1.5"
-
-config MPFR_V_3_1_3
- bool
- prompt "3.1.3 (OBSOLETE)"
- depends on OBSOLETE
-
-config MPFR_V_3_1_2
- bool
- prompt "3.1.2 (OBSOLETE)"
- depends on OBSOLETE
-
-config MPFR_V_3_1_0
- bool
- prompt "3.1.0 (OBSOLETE)"
- depends on OBSOLETE
-
-config MPFR_V_3_0_1
- bool
- prompt "3.0.1 (OBSOLETE)"
- depends on OBSOLETE
-
-config MPFR_V_3_0_0
- bool
- prompt "3.0.0 (OBSOLETE)"
- depends on OBSOLETE
-
-config MPFR_V_2_4_2
- bool
- prompt "2.4.2 (OBSOLETE)"
- depends on OBSOLETE
-
-config MPFR_V_2_4_1
- bool
- prompt "2.4.1 (OBSOLETE)"
- depends on OBSOLETE
-
-config MPFR_V_2_4_0
- bool
- prompt "2.4.0 (OBSOLETE)"
- depends on OBSOLETE
-
-endchoice
-
-config MPFR_VERSION
- string
-# Don't remove next line
-# CT_INSERT_VERSION_STRING_BELOW
- default "3.1.5" if MPFR_V_3_1_5
- default "3.1.3" if MPFR_V_3_1_3
- default "3.1.2" if MPFR_V_3_1_2
- default "3.1.0" if MPFR_V_3_1_0
- default "3.0.1" if MPFR_V_3_0_1
- default "3.0.0" if MPFR_V_3_0_0
- default "2.4.2" if MPFR_V_2_4_2
- default "2.4.1" if MPFR_V_2_4_1
- default "2.4.0" if MPFR_V_2_4_0
diff --git a/config/companion_libs/zlib.in b/config/companion_libs/zlib.in
deleted file mode 100644
index df93682..0000000
--- a/config/companion_libs/zlib.in
+++ /dev/null
@@ -1,19 +0,0 @@
-# Zlib options
-
-choice
- bool
- prompt "zlib version"
-# Don't remove next line
-# CT_INSERT_VERSION_BELOW
-
-config ZLIB_V_1_2_11
- bool
- prompt "1.2.11"
-
-endchoice
-
-config ZLIB_VERSION
- string
-# Don't remove next line
-# CT_INSERT_VERSION_STRING_BELOW
- default "1.2.11" if ZLIB_V_1_2_11
diff --git a/config/companion_tools/autoconf.in b/config/companion_tools/autoconf.in
deleted file mode 100644
index b85e1f9..0000000
--- a/config/companion_tools/autoconf.in
+++ /dev/null
@@ -1,29 +0,0 @@
-# Autoconf
-
-## default y if !CONFIGURE_has_autoconf_2_63_or_newer
-## default y if !CONFIGURE_has_autoreconf_2_63_or_newer
-## help Autoconf
-
-choice
- bool
- prompt "Autoconf version"
-# Don't remove next line
-# CT_INSERT_VERSION_BELOW
-
-config AUTOCONF_V_2_69
- bool
- prompt "2.69"
-
-config AUTOCONF_V_2_65
- bool
- prompt "2.65 (OBSOLETE)"
- depends on OBSOLETE
-
-endchoice
-
-config AUTOCONF_VERSION
- string
-# Don't remove next line
-# CT_INSERT_VERSION_STRING_BELOW
- default "2.69" if AUTOCONF_V_2_69
- default "2.65" if AUTOCONF_V_2_65
diff --git a/config/companion_tools/automake.in b/config/companion_tools/automake.in
deleted file mode 100644
index 31d036b..0000000
--- a/config/companion_tools/automake.in
+++ /dev/null
@@ -1,40 +0,0 @@
-# Automake
-
-## default y if !CONFIGURE_has_automake_1_15_or_newer
-## help Automake
-
-choice
- bool
- prompt "Automake version"
-# Don't remove next line
-# CT_INSERT_VERSION_BELOW
-
-config AUTOMAKE_V_1_15
- bool
- prompt "1.15"
-
-config AUTOMAKE_V_1_14
- bool
- prompt "1.14 (OBSOLETE)"
- depends on OBSOLETE
-
-config AUTOMAKE_V_1_11_6
- bool
- prompt "1.11.6 (OBSOLETE)"
- depends on OBSOLETE
-
-config AUTOMAKE_V_1_11_1
- bool
- prompt "1.11.1 (OBSOLETE)"
- depends on OBSOLETE
-
-endchoice
-
-config AUTOMAKE_VERSION
- string
-# Don't remove next line
-# CT_INSERT_VERSION_STRING_BELOW
- default "1.15" if AUTOMAKE_V_1_15
- default "1.14" if AUTOMAKE_V_1_14
- default "1.11.6" if AUTOMAKE_V_1_11_6
- default "1.11.1" if AUTOMAKE_V_1_11_1
diff --git a/config/companion_tools/libtool.in b/config/companion_tools/libtool.in
deleted file mode 100644
index 5c14fa0..0000000
--- a/config/companion_tools/libtool.in
+++ /dev/null
@@ -1,23 +0,0 @@
-# Libtool
-
-## default y if !CONFIGURE_has_libtool_2_4_or_newer
-## default y if !CONFIGURE_has_libtoolize_2_4_or_newer
-## help Libtool
-
-choice
- bool
- prompt "Libtool version"
-# Don't remove next line
-# CT_INSERT_VERSION_BELOW
-
-config LIBTOOL_V_2_4_6
- bool
- prompt "2.4.6"
-
-endchoice
-
-config LIBTOOL_VERSION
- string
-# Don't remove next line
-# CT_INSERT_VERSION_STRING_BELOW
- default "2.4.6" if LIBTOOL_V_2_4_6
diff --git a/config/companion_tools/m4.in b/config/companion_tools/m4.in
deleted file mode 100644
index eb6a3d3..0000000
--- a/config/companion_tools/m4.in
+++ /dev/null
@@ -1,34 +0,0 @@
-# GNU m4
-
-## default y if !CONFIGURE_has_gnu_m4_1_4_12_or_newer
-## help GNU m4
-
-choice
- bool
- prompt "m4 version"
-# Don't remove next line
-# CT_INSERT_VERSION_BELOW
-
-config M4_V_1_4_18
- bool
- prompt "1.4.18"
-
-config M4_V_1_4_17
- bool
- prompt "1.4.17 (OBSOLETE)"
- depends on OBSOLETE
-
-config M4_V_1_4_13
- bool
- prompt "1.4.13 (OBSOLETE)"
- depends on OBSOLETE
-
-endchoice
-
-config M4_VERSION
- string
-# Don't remove next line
-# CT_INSERT_VERSION_STRING_BELOW
- default "1.4.18" if M4_V_1_4_18
- default "1.4.17" if M4_V_1_4_17
- default "1.4.13" if M4_V_1_4_13
diff --git a/config/companion_tools/make.in b/config/companion_tools/make.in
deleted file mode 100644
index b6834a7..0000000
--- a/config/companion_tools/make.in
+++ /dev/null
@@ -1,45 +0,0 @@
-# GNU make
-
-## default y if !CONFIGURE_has_make_3_81_or_newer
-## help GNU make
-
-choice
- bool
- prompt "make version"
-# Don't remove next line
-# CT_INSERT_VERSION_BELOW
-
-config MAKE_V_4_2_1
- bool
- prompt "4.2.1"
-
-config MAKE_V_4_1
- bool
- prompt "4.1 (OBSOLETE)"
- depends on OBSOLETE
-
-config MAKE_V_4_0
- bool
- prompt "4.0 (OBSOLETE)"
- depends on OBSOLETE
-
-config MAKE_V_3_81
- bool
- prompt "3.81 (OBSOLETE)"
- depends on OBSOLETE
-
-endchoice
-
-config MAKE_GMAKE_SYMLINK
- bool
- prompt "Add gmake symlink to companion gnu/make"
- depends on COMP_TOOLS_make
-
-config MAKE_VERSION
- string
-# Don't remove next line
-# CT_INSERT_VERSION_STRING_BELOW
- default "4.2.1" if MAKE_V_4_2_1
- default "4.1" if MAKE_V_4_1
- default "4.0" if MAKE_V_4_0
- default "3.81" if MAKE_V_3_81
diff --git a/config/config.in b/config/config.in
index 21b0c7e..6b0b911 100644
--- a/config/config.in
+++ b/config/config.in
@@ -7,6 +7,6 @@ source "config/binutils.in"
source "config/libc.in"
source "config/cc.in"
source "config/debug.in"
-source "config/companion_libs.in"
-source "config/companion_tools.in"
+source "config/comp_libs.in"
+source "config/comp_tools.in"
source "config/test_suite.in"
diff --git a/config/debug/duma.in b/config/debug/duma.in
index f9e727b..c837c65 100644
--- a/config/debug/duma.in
+++ b/config/debug/duma.in
@@ -1,12 +1,14 @@
# D.U.M.A. - Detect Unintended Memory Access - Memory checker
## depends on ! BARE_METAL
-## depends on ! LIBC_bionic
+## depends on ! LIBC_BIONIC
## help D.U.M.A. - Detect Unintended Memory Access
## help A memory bound checker, with additional features.
## help Formerly known as Electric Fence.
+source "config/versions/duma.in"
+
config DUMA_SO
bool
prompt "Build a shared library"
@@ -18,21 +20,3 @@ config DUMA_CUSTOM_WRAPPER
prompt "Install custom D.U.M.A wrapper"
default y
depends on DUMA_SO
-
-choice
- bool
- prompt "D.U.M.A. version"
-# Don't remove next line
-# CT_INSERT_VERSION_BELOW
-
-config DUMA_V_2_5_15
- bool
- prompt "2_5_15"
-
-endchoice
-
-config DUMA_VERSION
- string
-# Don't remove next line
-# CT_INSERT_VERSION_STRING_BELOW
- default "2_5_15" if DUMA_V_2_5_15
diff --git a/config/debug/gdb.in b/config/debug/gdb.in
index b1d101b..3fe486f 100644
--- a/config/debug/gdb.in
+++ b/config/debug/gdb.in
@@ -2,326 +2,20 @@
## help gdb is the GNU debugger
+source "config/versions/gdb.in"
+
source "config/debug/gdb.in.cross"
source "config/debug/gdb.in.native"
source "config/debug/gdb.in.gdbserver"
-comment "gdb version"
-
-config GDB_CUSTOM
- bool
- prompt "Custom gdb"
- depends on EXPERIMENTAL
- select GDB_8_0_or_later
- help
- The choosen gdb version shall be not downloaded. Instead use
- a custom location to get the source.
-
-if GDB_CUSTOM
-
-config GDB_CUSTOM_LOCATION
- string
- prompt "Full path to custom gdb source"
- help
- Enter the path to the directory or tarball of your source for gcc.
-
- If the path is a tarball, it should extract to: <name>-<version>/
- where the name is this component, gcc, and the version is set
- below in the custom version string.
-
-config GDB_CUSTOM_VERSION
- string
- prompt "Custom GDB version"
- help
- Enter the version number for your custom gdb.
-
-config GDB_VERSION
- string
- default GDB_CUSTOM_VERSION
-
-endif # GDB_CUSTOM
-
-if ! GDB_CUSTOM
-
-config DEBUG_GDB_SHOW_LINARO
- bool
- prompt "Show Linaro versions"
- depends on OBSOLETE
- help
- Linaro is maintaining some advanced/more stable/experimental versions
- of gdb, especially for the ARM architecture.
-
- Those versions have not been blessed by the gdb community (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 "gdb version"
-# Don't remove next line
-# CT_INSERT_VERSION_BELOW
-
-config GDB_V_8_0
- bool
- prompt "8.0"
- select GDB_8_0_or_later
-
-config GDB_V_7_12_1
- bool
- prompt "7.12.1"
- select GDB_7_12_or_later
-
-config GDB_V_7_11_1
- bool
- prompt "7.11.1"
- select GDB_7_2_or_later
-
-config GDB_V_7_10_1
- bool
- prompt "7.10.1 (OBSOLETE)"
- select GDB_7_2_or_later
- depends on OBSOLETE
-
-config GDB_V_7_10
- bool
- prompt "7.10 (OBSOLETE)"
- depends on OBSOLETE
- select GDB_7_2_or_later
-
-config GDB_V_7_9_1
- bool
- prompt "7.9.1 (OBSOLETE)"
- depends on OBSOLETE
- select GDB_7_2_or_later
-
-config GDB_V_7_9
- bool
- prompt "7.9 (OBSOLETE)"
- depends on OBSOLETE
- select GDB_7_2_or_later
-
-config GDB_V_linaro_7_8
- bool
- prompt "linaro-7.8-2014.09 (OBSOLETE)"
- depends on DEBUG_GDB_SHOW_LINARO
- depends on OBSOLETE
- select GDB_7_2_or_later
-
-config GDB_V_7_8_2
- bool
- prompt "7.8.2 (OBSOLETE)"
- depends on OBSOLETE
- select GDB_7_2_or_later
-
-
-config GDB_V_7_8_1
- bool
- prompt "7.8.1 (OBSOLETE)"
- depends on OBSOLETE
- select GDB_7_2_or_later
-
-config GDB_V_7_8
- bool
- prompt "7.8 (OBSOLETE)"
- depends on OBSOLETE
- select GDB_7_2_or_later
-
-config GDB_V_linaro_7_7_1
- bool
- prompt "linaro-7.7.1-2014.06 (OBSOLETE)"
- depends on DEBUG_GDB_SHOW_LINARO
- depends on OBSOLETE
- select GDB_7_2_or_later
-
-config GDB_V_7_7_1
- bool
- prompt "7.7.1 (OBSOLETE)"
- depends on OBSOLETE
- select GDB_7_2_or_later
-
-config GDB_V_linaro_7_7
- bool
- prompt "linaro-7.7-2014.05 (OBSOLETE)"
- depends on DEBUG_GDB_SHOW_LINARO
- depends on OBSOLETE
- select GDB_7_2_or_later
-
-config GDB_V_7_7
- bool
- prompt "7.7 (OBSOLETE)"
- depends on OBSOLETE
- select GDB_7_2_or_later
-
-config GDB_V_linaro_7_6
- bool
- prompt "linaro-7.6.1-2013.10 (OBSOLETE)"
- depends on DEBUG_GDB_SHOW_LINARO
- select GDB_7_2_or_later
-
-config GDB_V_7_6_1
- bool
- prompt "7.6.1 (OBSOLETE)"
- depends on OBSOLETE
- select GDB_7_2_or_later
-
-config GDB_V_linaro_7_5
- bool
- prompt "linaro-7.5-2012.12 (OBSOLETE)"
- depends on DEBUG_GDB_SHOW_LINARO
- depends on OBSOLETE
- select GDB_7_2_or_later
-
-config GDB_V_7_5_1
- bool
- prompt "7.5.1 (OBSOLETE)"
- depends on OBSOLETE
- select GDB_7_2_or_later
-
-config GDB_V_linaro_7_4
- bool
- prompt "linaro-7.4-2012.06 (OBSOLETE)"
- depends on DEBUG_GDB_SHOW_LINARO
- depends on OBSOLETE
- select GDB_7_2_or_later
-
-config GDB_V_7_4_1
- bool
- prompt "7.4.1 (OBSOLETE)"
- depends on OBSOLETE
- select GDB_7_2_or_later
-
-config GDB_V_7_4
- bool
- prompt "7.4 (OBSOLETE)"
- depends on OBSOLETE
- select GDB_7_2_or_later
-
-config GDB_V_linaro_7_3
- bool
- prompt "linaro-7.3-2011.12 (OBSOLETE)"
- depends on DEBUG_GDB_SHOW_LINARO
- depends on OBSOLETE
- select GDB_7_2_or_later
-
-config GDB_V_7_3_1
- bool
- prompt "7.3.1 (OBSOLETE)"
- depends on OBSOLETE
- select GDB_7_2_or_later
-
-config GDB_V_7_3a
- bool
- prompt "7.3a (OBSOLETE)"
- depends on OBSOLETE
- select GDB_7_2_or_later
-
-config GDB_V_7_2a
- bool
- prompt "7.2a (OBSOLETE)"
- depends on OBSOLETE
- select GDB_7_2_or_later
-
-config GDB_V_7_1a
- bool
- prompt "7.1a (OBSOLETE)"
- depends on OBSOLETE
- select GDB_7_0_or_later
-
-config GDB_V_7_0_1a
- bool
- prompt "7.0.1a (OBSOLETE)"
- depends on OBSOLETE
- select GDB_7_0_or_later
-
-config GDB_V_7_0a
- bool
- prompt "7.0a (OBSOLETE)"
- depends on OBSOLETE
- select GDB_7_0_or_later
-
-config GDB_V_6_8a
- bool
- prompt "6.8a (OBSOLETE)"
- depends on OBSOLETE
-
-endchoice
-
-endif # ! GDB_CUSTOM
-
-config GDB_8_0_or_later
- bool
- select GDB_7_12_or_later
-
-config GDB_7_12_or_later
- bool
- select GDB_7_2_or_later
-
-config GDB_7_2_or_later
- bool
- select GDB_7_0_or_later
-
-config GDB_7_0_or_later
- bool
- select GDB_HAS_PKGVERSION_BUGURL
- select GDB_HAS_PYTHON
- select GDB_INSTALL_GDBINIT
-
config GDB_HAS_PKGVERSION_BUGURL
bool
+ default y if GDB_7_0_or_later
config GDB_HAS_PYTHON
bool
+ default y if GDB_7_0_or_later
config GDB_INSTALL_GDBINIT
bool
-
-# GDB 8.0 now requires C++ for build. GDB 7.12 offered a configure
-# switch to fall back to C.
-config GDB_TARGET_DISABLE_CXX_BUILD
- def_bool y
- depends on GDB_7_12_or_later && !GDB_8_0_or_later
-
-if ! GDB_CUSTOM
-
-config GDB_VERSION
- string
-# Don't remove next line
-# CT_INSERT_VERSION_STRING_BELOW
- default "8.0" if GDB_V_8_0
- default "7.12.1" if GDB_V_7_12_1
- default "7.11.1" if GDB_V_7_11_1
- default "7.10.1" if GDB_V_7_10_1
- default "7.10" if GDB_V_7_10
- default "7.9.1" if GDB_V_7_9_1
- default "7.9" if GDB_V_7_9
- default "7.8.2" if GDB_V_7_8_2
- default "linaro-7.8-2014.09" if GDB_V_linaro_7_8
- default "7.8.1" if GDB_V_7_8_1
- default "7.8" if GDB_V_7_8
- default "linaro-7.7.1-2014.06-1" if GDB_V_linaro_7_7_1
- default "7.7.1" if GDB_V_7_7_1
- default "linaro-7.7-2014.05" if GDB_V_linaro_7_7
- default "7.7" if GDB_V_7_7
- default "linaro-7.6.1-2013.10" if GDB_V_linaro_7_6
- default "7.6.1" if GDB_V_7_6_1
- default "linaro-7.5-2012.12" if GDB_V_linaro_7_5
- default "7.5.1" if GDB_V_7_5_1
- default "linaro-7.4-2012.06" if GDB_V_linaro_7_4
- default "7.4.1" if GDB_V_7_4_1
- default "7.4" if GDB_V_7_4
- default "linaro-7.3-2011.12" if GDB_V_linaro_7_3
- default "7.3.1" if GDB_V_7_3_1
- default "7.3a" if GDB_V_7_3a
- default "7.2a" if GDB_V_7_2a
- default "7.1a" if GDB_V_7_1a
- default "7.0.1a" if GDB_V_7_0_1a
- default "7.0a" if GDB_V_7_0a
- default "6.8a" if GDB_V_6_8a
-
-endif # ! GDB_CUSTOM
+ default y if GDB_7_0_or_later
diff --git a/config/debug/gdb.in.gdbserver b/config/debug/gdb.in.gdbserver
index db0884e..8e999b4 100644
--- a/config/debug/gdb.in.gdbserver
+++ b/config/debug/gdb.in.gdbserver
@@ -5,7 +5,7 @@ config GDB_GDBSERVER
prompt "gdbserver"
default y
depends on ! BARE_METAL
- select LIBC_UCLIBC_WCHAR if LIBC_uClibc && GDB_8_0_or_later
+ select LIBC_UCLIBC_WCHAR if LIBC_UCLIBC && GDB_8_0_or_later
help
Build and install a gdbserver for the target, to run on the target.
diff --git a/config/debug/gdb.in.native b/config/debug/gdb.in.native
index 80b50fc..48c8575 100644
--- a/config/debug/gdb.in.native
+++ b/config/debug/gdb.in.native
@@ -4,9 +4,9 @@ config GDB_NATIVE
bool
prompt "Native gdb"
depends on ! BARE_METAL
- depends on ! LIBC_bionic
+ depends on ! LIBC_BIONIC
depends on CC_LANG_CXX || !GDB_8_0_or_later
- select LIBC_UCLIBC_WCHAR if LIBC_uClibc && GDB_8_0_or_later
+ select LIBC_UCLIBC_WCHAR if LIBC_UCLIBC && GDB_8_0_or_later
select EXPAT_TARGET
select NCURSES_TARGET
help
diff --git a/config/debug/ltrace.in b/config/debug/ltrace.in
index fab6b81..01ad147 100644
--- a/config/debug/ltrace.in
+++ b/config/debug/ltrace.in
@@ -1,40 +1,18 @@
# ltrace
## select LIBELF_TARGET
-## depends on ! LIBC_bionic
+## depends on ! LIBC_BIONIC
##
## help ltrace is a program that simply runs the specified command until it exits.
## help It intercepts and records the dynamic library calls which are called by
## help the executed process and the signals which are received by that process.
## help It can also intercept and print the system calls executed by the program.
-choice
- bool
- prompt "ltrace version"
-# Don't remove next line
-# CT_INSERT_VERSION_BELOW
-
-config LTRACE_V_0_7_3
- bool
- prompt "0.7.3"
-
-config LTRACE_V_0_5_3
- bool
- prompt "0.5.3 (OBSOLETE)"
- depends on OBSOLETE
- select LTRACE_0_5_3_CONFIGURE
-
-endchoice
-
-config LTRACE_VERSION
- string
-# Don't remove next line
-# CT_INSERT_VERSION_STRING_BELOW
- default "0.7.3" if LTRACE_V_0_7_3
- default "0.5.3" if LTRACE_V_0_5_3
+source "config/versions/ltrace.in"
# Ltrace 0.5.3 had a unique hand-crafted configure script that has to be
# run differently from any preceding or following releases. This serves
# as a reminder to remove that code once 0.5.3 support is dropped.
config LTRACE_0_5_3_CONFIGURE
bool
+ default y if LTRACE_V_0_5_3
diff --git a/config/debug/strace.in b/config/debug/strace.in
index e77702b..160a518 100644
--- a/config/debug/strace.in
+++ b/config/debug/strace.in
@@ -1,98 +1,5 @@
# strace
-## depends on ! LIBC_bionic
+## depends on ! LIBC_BIONIC
-choice
- bool
- prompt "strace version"
-# Don't remove next line
-# CT_INSERT_VERSION_BELOW
-
-config STRACE_V_4_16
- bool
- prompt "4.16"
-
-config STRACE_V_4_15
- bool
- prompt "4.15"
-
-config STRACE_V_4_14
- bool
- prompt "4.14 (OBSOLETE)"
- depends on OBSOLETE
-
-config STRACE_V_4_13
- bool
- prompt "4.13 (OBSOLETE)"
- depends on OBSOLETE
-
-config STRACE_V_4_12
- bool
- prompt "4.12 (OBSOLETE)"
- depends on OBSOLETE
-
-config STRACE_V_4_11
- bool
- prompt "4.11 (OBSOLETE)"
- depends on OBSOLETE
-
-config STRACE_V_4_10
- bool
- prompt "4.10 (OBSOLETE)"
- depends on OBSOLETE
-
-config STRACE_V_4_9
- bool
- prompt "4.9 (OBSOLETE)"
- depends on OBSOLETE
-
-config STRACE_V_4_8
- bool
- prompt "4.8 (OBSOLETE)"
- depends on OBSOLETE
-
-config STRACE_V_4_7
- bool
- prompt "4.7 (OBSOLETE)"
- depends on OBSOLETE
-
-config STRACE_V_4_6
- bool
- prompt "4.6 (OBSOLETE)"
- depends on OBSOLETE
-
-config STRACE_V_4_5_20
- bool
- prompt "4.5.20 (OBSOLETE)"
- depends on OBSOLETE
-
-config STRACE_V_4_5_19
- bool
- prompt "4.5.19 (OBSOLETE)"
- depends on OBSOLETE
-
-config STRACE_V_4_5_18
- bool
- prompt "4.5.18 (OBSOLETE)"
- depends on OBSOLETE
-
-endchoice
-
-config STRACE_VERSION
- string
-# Don't remove next line
-# CT_INSERT_VERSION_STRING_BELOW
- default "4.16" if STRACE_V_4_16
- default "4.15" if STRACE_V_4_15
- default "4.14" if STRACE_V_4_14
- default "4.13" if STRACE_V_4_13
- default "4.12" if STRACE_V_4_12
- default "4.11" if STRACE_V_4_11
- default "4.10" if STRACE_V_4_10
- default "4.9" if STRACE_V_4_9
- default "4.8" if STRACE_V_4_8
- default "4.7" if STRACE_V_4_7
- default "4.6" if STRACE_V_4_6
- default "4.5.20" if STRACE_V_4_5_20
- default "4.5.19" if STRACE_V_4_5_19
- default "4.5.18" if STRACE_V_4_5_18
+source "config/versions/strace.in"
diff --git a/config/global/extract.in b/config/global/extract.in
index b754775..582e69c 100644
--- a/config/global/extract.in
+++ b/config/global/extract.in
@@ -73,24 +73,6 @@ config PATCH_LOCAL_BUNDLED
Apply your local patches, then apply the patches
bundled with crosstool-NG.
-config PATCH_BUNDLED_FALLBACK_LOCAL
- bool
- prompt "Bundled only, local if no bundled"
- select PATCH_USE_LOCAL
- select PATCH_SINGLE
- help
- Apply the patches bundled with crosstool-NG;
- if there's no bundled patches, apply your local patches.
-
-config PATCH_LOCAL_FALLBACK_BUNDLED
- bool
- prompt "Local only, bundled if no local"
- select PATCH_USE_LOCAL
- select PATCH_SINGLE
- help
- Only apply your local patches;
- if there's no local patches, apply patches bundled with crosstool-NG.
-
config PATCH_NONE
bool
prompt "None"
@@ -110,19 +92,16 @@ config PATCH_ORDER
string
default "bundled" if PATCH_BUNDLED
default "local" if PATCH_LOCAL
- default "bundled,local" if PATCH_BUNDLED_LOCAL || PATCH_BUNDLED_FALLBACK_LOCAL
- default "local,bundled" if PATCH_LOCAL_BUNDLED || PATCH_LOCAL_FALLBACK_BUNDLED
+ default "bundled,local" if PATCH_BUNDLED_LOCAL
+ default "local,bundled" if PATCH_LOCAL_BUNDLED
default "none" if PATCH_NONE
-config PATCH_SINGLE
- bool
-
config PATCH_USE_LOCAL
bool
config LOCAL_PATCH_DIR
string
- prompt "| Local patch directory"
+ prompt "Local patch directory"
default ""
depends on PATCH_USE_LOCAL
help
diff --git a/config/kernel.in b/config/kernel.in
index c04f2cb..579cc23 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
@@ -16,12 +18,6 @@ config WINDOWS
config KERNEL_SUPPORTS_SHARED_LIBS
bool
-config KERNEL
- string
-
-config KERNEL_VERSION
- string
-
source "config/gen/kernel.in"
comment "Common kernel options"
@@ -37,6 +33,4 @@ config SHARED_LIBS
You might not want shared libraries if you're building for a target that
don't support it (maybe some nommu targets, for example, or bare metal).
-source "config/gen/kernel.in.2"
-
endmenu
diff --git a/config/kernel/linux.in b/config/kernel/linux.in
index dc0f5e5..b8d433a 100644
--- a/config/kernel/linux.in
+++ b/config/kernel/linux.in
@@ -1,294 +1,54 @@
# Linux kernel options
-## depends on ! ARCH_avr
+## depends on ! ARCH_AVR
## select KERNEL_SUPPORTS_SHARED_LIBS
-##
-## 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
+## help Build a toolchain targeting systems running Linux as a kernel.
# 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
+# Such pinned versions are indicated in version.desc files with a comment.
-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
+source "config/versions/linux.in"
-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
+choice
bool
- prompt "2.6.35.9 (EOL)"
- depends on OBSOLETE
+ prompt "Kernel verbosity:"
+ default KERNEL_LINUX_VERBOSITY_0
-config KERNEL_V_2_6_34
+config KERNEL_LINUX_VERBOSITY_0
bool
- prompt "2.6.34.7 (EOL)"
- depends on OBSOLETE
+ prompt "Simplified"
+ help
+ Print simplified command lines.
-config KERNEL_V_2_6_33
+config KERNEL_LINUX_VERBOSITY_1
bool
- prompt "2.6.33.7 (EOL)"
- depends on OBSOLETE
+ prompt "Full commands"
+ help
+ Print full command lines.
-# EOL 11/2020 [CentOS6.x]
-config KERNEL_V_2_6_32
+config KERNEL_LINUX_VERBOSITY_2
bool
- prompt "2.6.32.27 (EOL)"
- depends on OBSOLETE
+ prompt "Exec reasons"
+ help
+ Print the reasons why a make target is rebuild.
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
+config KERNEL_LINUX_VERBOSE_LEVEL
+ int
+ default 0 if KERNEL_LINUX_VERBOSITY_0
+ default 1 if KERNEL_LINUX_VERBOSITY_1
+ default 2 if KERNEL_LINUX_VERBOSITY_2
-endif # ! KERNEL_LINUX_CUSTOM
+config KERNEL_LINUX_INSTALL_CHECK
+ bool
+ prompt "Check installed headers"
+ default y
+ help
+ If you are in doubt that installed headers are buggy, say 'Y'
+ here to have an extra check passed onto the headers.
diff --git a/config/kernel/linux.in.2 b/config/kernel/linux.in.2
deleted file mode 100644
index 80e13f3..0000000
--- a/config/kernel/linux.in.2
+++ /dev/null
@@ -1,40 +0,0 @@
-# Linux kernel options
-
-choice
- bool
- prompt "Kernel verbosity:"
- default KERNEL_LINUX_VERBOSITY_0
-
-config KERNEL_LINUX_VERBOSITY_0
- bool
- prompt "Simplified"
- help
- Print simplified command lines.
-
-config KERNEL_LINUX_VERBOSITY_1
- bool
- prompt "Full commands"
- help
- Print full command lines.
-
-config KERNEL_LINUX_VERBOSITY_2
- bool
- prompt "Exec reasons"
- help
- Print the reasons why a make target is rebuild.
-
-endchoice
-
-config KERNEL_LINUX_VERBOSE_LEVEL
- int
- default 0 if KERNEL_LINUX_VERBOSITY_0
- default 1 if KERNEL_LINUX_VERBOSITY_1
- default 2 if KERNEL_LINUX_VERBOSITY_2
-
-config KERNEL_LINUX_INSTALL_CHECK
- bool
- prompt "Check installed headers"
- default y
- help
- If you are in doubt that installed headers are buggy, say 'Y'
- here to have an extra check passed onto the headers.
diff --git a/config/kernel/windows.in b/config/kernel/windows.in
index 797c023..e649787 100644
--- a/config/kernel/windows.in
+++ b/config/kernel/windows.in
@@ -1,6 +1,6 @@
# windows config options
-## depends on ARCH_x86
+## depends on ARCH_X86
## depends on EXPERIMENTAL
##
## select WINDOWS
diff --git a/config/libc.in b/config/libc.in
index 708c3b6..c132fc6 100644
--- a/config/libc.in
+++ b/config/libc.in
@@ -2,23 +2,6 @@
menu "C-library"
-config LIBC
- string
-
-config LIBC_VERSION
- string
- help
- Enter the date of the snapshot you want to use in the form: YYYYMMDD
- where YYYY is the 4-digit year, MM the 2-digit month and DD the 2-digit
- day in the month.
-
- Please note:
- - glibc has snapshots done every monday, and only the last ten are kept.
- - uClibc has daily snapshots, and only the last 30-or-so are kept.
-
- So if you want to be able to re-build your toolchain later, you will
- have to save your C library tarball by yourself.
-
source "config/gen/libc.in"
config LIBC_SUPPORT_THREADS_ANY
@@ -47,7 +30,7 @@ config THREADS
string
default "none" if THREADS_NONE
-if ! LIBC_none
+if ! LIBC_NONE
comment "Common C library options"
@@ -123,8 +106,6 @@ config LIBC_XLDD
for the native ldd. Please see the help, by running it
with '--help' for more explanations.
-source "config/gen/libc.in.2"
-
-endif # ! LIBC_none
+endif # ! LIBC_NONE
endmenu
diff --git a/config/libc/avr-libc.in b/config/libc/avr-libc.in
index 2b8d891..836fed8 100644
--- a/config/libc/avr-libc.in
+++ b/config/libc/avr-libc.in
@@ -1,6 +1,6 @@
# avr-libc options
-## depends on ARCH_avr
+## depends on ARCH_AVR
## depends on ! LINUX && ! WINDOWS && BARE_METAL
##
## select LIBC_SUPPORT_THREADS_NONE
@@ -9,66 +9,11 @@
## 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
+source "config/versions/avr-libc.in"
-config LIBC_AVR_LIBC_CUSTOM_LOCATION
+config LIBC_AVR_LIBC_EXTRA_CONFIG_ARRAY
string
- prompt "Full path to custom avr-libc source"
+ prompt "Extra config for avr-libc"
+ default ""
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
+ Extra flags to pass onto ./configure when configuring the avr-libc.
diff --git a/config/libc/avr-libc.in.2 b/config/libc/avr-libc.in.2
deleted file mode 100644
index 89a182f..0000000
--- a/config/libc/avr-libc.in.2
+++ /dev/null
@@ -1,8 +0,0 @@
-# avr-libc second-part options
-
-config LIBC_AVR_LIBC_EXTRA_CONFIG_ARRAY
- string
- prompt "Extra config for avr-libc"
- default ""
- help
- Extra flags to pass onto ./configure when configuring the avr-libc.
diff --git a/config/libc/bionic.in b/config/libc/bionic.in
index 9e04130..eafc482 100644
--- a/config/libc/bionic.in
+++ b/config/libc/bionic.in
@@ -1,9 +1,9 @@
# bionic options
## depends on ! WINDOWS && ! BARE_METAL
-## depends on ARCH_arm || ARCH_mips || ARCH_x86
+## depends on ARCH_ARM || ARCH_MIPS || ARCH_X86
## depends on EXPERIMENTAL
-## depends on CC_GCC_6_or_later
+## depends on GCC_6_or_later
##
## select LIBC_SUPPORT_THREADS_POSIX
##
@@ -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/android-ndk.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..363ab34 100644
--- a/config/libc/glibc.in
+++ b/config/libc/glibc.in
@@ -1,222 +1,289 @@
-# glibc options
+# This file contains the common configuration options
+# that apply to both glibc.
## depends on ! WINDOWS && ! BARE_METAL && ARCH_USE_MMU
-##
## select LIBC_SUPPORT_THREADS_NATIVE
## select CC_CORE_PASSES_NEEDED
+# TBD: select GETTEXT for build only, not for host
## 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.
+# 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 in version.desc.
+source "config/versions/glibc.in"
+if GLIBC_USE_PORTS_EXTERNAL
+source "config/versions/glibc-ports.in"
+endif
+
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
+# Known add-ons and when they exist(ed)
+# crypt external in 2.1, no longer an add-on since 2.2
+# libidn external in 2.3.4 .. 2.10, still an add-on
+# linuxthreads external in 2.0.1 .. 2.5, no longer available since 2.6 [*]
+# localedata external in 2.0.1 .. 2.0.6, no longer an add-on since 2.1 [*]
+# ports external in 2.3.4 .. 2.16, no longer an add-on since 2.20
+# nptl never external, no longer an add-on since 2.20
+#
+# Given the list of currently supported glibc releases, we only need to worry about
+# 'libidn', 'ports' and 'nptl' add-ons. Of these, only 'ports' can be an external
+# tarball; and only 'libidn' is user-selectable ('ports' & 'nptl' are selected
+# by crosstool-NG, as dictated by the architecture and thread model).
+#
+# I had trouble locating the sources in the repository for some of the released
+# versions. E.g., there is a 2.5 version of linuxthreads, but the tag for 2.5 in Git
+# does not have the linuxthreads directory at all. Similarly, 2.0.6 tag did not have
+# localedata. Since these releases are no longer supported by crosstool-NG, this is
+# of pure historical interest now, however.
+
+config GLIBC_HAS_NPTL_ADDON
+ def_bool y
+ depends on !GLIBC_2_20_or_later
+
+config GLIBC_HAS_PORTS_ADDON
+ def_bool y
+ depends on !GLIBC_2_20_or_later
+
+config GLIBC_HAS_PORTS_ADDON_EXTERNAL
+ def_bool y
+ depends on !GLIBC_2_17_or_later
+
+# In case it folds into main distribution in some future release, too
+config GLIBC_HAS_LIBIDN_ADDON
+ def_bool y
+
+# 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_USE_PORTS_ADDON
+ def_bool y
+ depends on ARCH_ALPHA || ARCH_ARM || ARCH_M68K || ARCH_MIPS || ARCH_POWERPC
+ depends on GLIBC_HAS_PORTS_ADDON
+
+config GLIBC_USE_PORTS_EXTERNAL
+ def_bool y
+ depends on GLIBC_USE_PORTS_ADDON && GLIBC_HAS_PORTS_ADDON_EXTERNAL
+
+config GLIBC_USE_NPTL_ADDON
+ def_bool y
+ depends on THREADS_NATIVE && GLIBC_HAS_NPTL_ADDON
+
+config GLIBC_USE_LIBIDN_ADDON
+ bool "Build libidn add-on"
help
- The choosen glibc version shall be not downloaded. Instead use
- a custom location to get the source.
+ Enables the libidn add-on in GNU libc.
-if LIBC_GLIBC_CUSTOM
+# SPARCv8 support retired in 2.23
+config GLIBC_NO_SPARC_V8
+ def_bool y
+ depends on GLIBC_2_23_or_later
-config LIBC_GLIBC_CUSTOM_LOCATION
+config GLIBC_EXTRA_CONFIG_ARRAY
string
- prompt "Full path to custom glibc source"
+ prompt "extra config"
+ default ""
help
- Enter the path to the directory or tarball of your source for glibc.
+ Extra flags to pass onto ./configure when configuring.
- 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.
+ 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 LIBC_GLIBC_CUSTOM_VERSION
+config GLIBC_CONFIGPARMS
string
- prompt "Custom GLIBC version"
+ prompt "Extra config params (READ HELP)"
+ default "" if ! ARCH_SH
+ default "no-z-defs=yes" if ARCH_SH
help
- Enter the version number for your custom glibc.
+ Some architectures need to set options in the file configparms.
+ This is the case for sh3/4, which really need to set configparms
+ to "no-z-defs=yes" as of gcc-3.4/glibc-2.3.2.
+
+ Unless you are building a toolchain for sh3/4, you should leave that empty.
+
+ Note: If you need to pass more than one value, separate them with
+ '\n'. Eg.: var1=val1\nvar2=val2
-config LIBC_VERSION
+config GLIBC_EXTRA_CFLAGS
string
- default LIBC_GLIBC_CUSTOM_VERSION
-
-endif # LIBC_GLIBC_CUSTOM
-
-if ! LIBC_GLIBC_CUSTOM
+ prompt "extra target CFLAGS"
+ default ""
+ help
+ Extra target CFLAGS to use when building.
-config CC_GLIBC_SHOW_LINARO
+config GLIBC_ENABLE_FORTIFIED_BUILD
bool
- prompt "Show Linaro versions"
+ prompt "Enable fortified build (EXPERIMENTAL)"
+ depends on EXPERIMENTAL
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 say 'y' here, then glibc will be using fortified versions
+ of functions with format arguments (eg. vsyslog, printf...), and
+ do a sanity check on the format at runtime, to avoid some of the
+ common format string attacks.
- 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.
+ This is currently not supported, and will most probably result in
+ a broken build, with an error message like:
+ ../misc/syslog.c: In function '__vsyslog_chk':
+ ../misc/syslog.c:123: sorry, unimplemented: inlining failed in
+ call to 'syslog': function body not available
- Linaro: http://www.linaro.org/
+ If you are brave enough and want to debug the issue, then say 'y'
+ here. Otherwise, be still and say 'n' (the default). ;-)
-# 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
+config GLIBC_DISABLE_VERSIONING
bool
- prompt "2.22 (OBSOLETE)"
- select LIBC_GLIBC_2_20_or_later
- depends on OBSOLETE
+ prompt "Disable symbols versioning"
+ help
+ Do not include versioning information in the library objects.
-config LIBC_GLIBC_V_2_21
- bool
- prompt "2.21 (OBSOLETE)"
- select LIBC_GLIBC_2_20_or_later
- depends on OBSOLETE
+config GLIBC_OLDEST_ABI
+ string
+ prompt "Oldest supported ABI"
+ default ""
+ help
+ Set the oldest ABI supported by the C library.
+
+ Setting this option, for example, to 2.2 will provide ABI support
+ back to (e)glibc-2.2.
-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
+ If this option is not set, (e)glibc will choose for you.
-config LIBC_GLIBC_V_2_20
+config GLIBC_FORCE_UNWIND
bool
- prompt "2.20 (OBSOLETE)"
- select LIBC_GLIBC_2_20_or_later
- depends on OBSOLETE
+ prompt "Force unwind support (READ HELP!)"
+ default y
+ help
+ If your toolchain fails building while building the C library
+ start files, or the complete C library, with a message like:
+ configure: error: forced unwind support is required
+
+ then you may try changing this option. Otherwise, leave it to
+ the default 'y'.
+
+ The issue seems to be related to building NPTL on old versions
+ of glibc on some architectures
+ (seen on s390, s390x and x86_64).
-# EOL 04/2019 [Ubuntu14.04]
-config LIBC_GLIBC_V_2_19
+config GLIBC_LOCALES
bool
- prompt "2.19 (OBSOLETE)"
- depends on OBSOLETE
- select LIBC_GLIBC_2_17_or_later
-
-config LIBC_GLIBC_V_2_18
+ prompt "Build and install locales"
+ help
+ Whether to build and install the libc locale files for the target,
+ which is required in order to support internationalization.
+
+if LIBC_GLIBC && GLIBC_LOCALES
+comment "WARNING! "
+comment "| The built locales will be usable if and only if the build "
+comment "| machine and the target: "
+comment "| - have the same endianness, "
+comment "| - and have the same alignment requirements for uint32_t. "
+comment "| You will have to check by yourself (for now). "
+comment "WARNING! "
+comment "| Building GLIBC locales requires that GLIBC supports "
+comment "| the build machine as the target. "
+endif # LIBC_GLIBC && GLIBC_LOCALES
+
+if KERNEL_LINUX
+
+choice GLIBC_SUPPORTED_KERNEL
bool
- prompt "2.18 (OBSOLETE)"
- depends on OBSOLETE
- select LIBC_GLIBC_2_17_or_later
+ prompt "Minimum supported kernel version"
+ default GLIBC_KERNEL_VERSION_AS_HEADERS
-# EOL 06/2024 [CentOS7.x]
-config LIBC_GLIBC_V_2_17
+config GLIBC_KERNEL_VERSION_NONE
bool
- prompt "2.17 (OBSOLETE)"
- depends on OBSOLETE
- select LIBC_GLIBC_2_17_or_later
-
-config LIBC_GLIBC_V_2_16_0
+ prompt "Let ./configure decide"
+ help
+ Let ./configure decide what minimum kernel version glibc will be
+ able to run against.
+
+ This will include legacy compatibility code for older kernels in
+ the C library, thus ensuring that it will run on a large number
+ of old kernels.
+
+ The minimum kernel version supported will be dependent upon the
+ target you build for. For example:
+ alpha*-*-linux-gnu Requires Linux 2.6.9 for NPTL
+ sh[34]-*-linux-gnu Requires Linux 2.6.11
+ powerpc* Requires Linux 2.4.19
+ arm*-*-linux-*gnueabi Requires Linux 2.6.16
+
+config GLIBC_KERNEL_VERSION_AS_HEADERS
bool
- prompt "2.16.0 (OBSOLETE)"
- depends on OBSOLETE
+ prompt "Same as kernel headers (default)"
+ help
+ Normally, you'll want glibc to run against the same kernel
+ version as the one used for the headers.
+
+ This is the default.
+
+ If enabled, crosstool-ng will use the chosen version of kernel
+ headers for the glibc minimum kernel version supported, which is
+ what gets passed to "--enable-kernel=" when configuring glibc.
+
+ Enabling this will ensure that no legacy compatibility code for
+ older kernels is built into your C libraries, but it will
+ be unable to run on kernel versions older than whichever kernel
+ headers version you've built the toolchain for.
+
+ If you know for sure that your toolchain will never need to build
+ applications that will run under a kernel version older than your
+ chosen kernel headers version (CT_KERNEL_VERSION), you can choose
+ "y" here.
-# EOL 04/2017 [Ubuntu12.04]
-config LIBC_GLIBC_V_2_15
+config GLIBC_KERNEL_VERSION_CHOSEN
bool
- prompt "2.15 (OBSOLETE)"
- depends on OBSOLETE
+ prompt "Specific kernel version"
+ help
+ Specify the earliest Linux kernel version you want glibc to
+ include support for. This does not have to match the kernel
+ headers version used for your toolchain. This controls what is
+ passed to the "--enable-kernel=" option to the glibc configure
+ script.
-config LIBC_GLIBC_V_2_14_1
- bool
- prompt "2.14.1 (OBSOLETE)"
- depends on OBSOLETE
+ If you want to be able to statically link programs with your
+ toolchain's C library, make sure this kernel version is lower than
+ all kernels you wish to support to avoid "FATAL: kernel too old"
+ errors. The higher the version you specify, the less legacy code
+ will be built into libc.
-config LIBC_GLIBC_V_2_14
- bool
- prompt "2.14 (OBSOLETE)"
- depends on OBSOLETE
+ Most people can leave this at the default value of "2.6.9".
-config LIBC_GLIBC_V_2_13
- bool
- prompt "2.13 (OBSOLETE)"
- depends on OBSOLETE
+if GLIBC_KERNEL_VERSION_CHOSEN
-# 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
+config GLIBC_MIN_KERNEL_VERSION
+ string
+ prompt "Minimum kernel version to support"
+ default "2.6.9"
+ help
+ Enter here the lowest kernel version glibc will be able to run against.
+
+ The minimum kernel version supported will be dependent upon the
+ target you build for. For example:
+ alpha*-*-linux-gnu Requires Linux 2.6.9 for NPTL
+ sh[34]-*-linux-gnu Requires Linux 2.6.11
+ powerpc* Requires Linux 2.4.19
+ arm*-*-linux-*gnueabi Requires Linux 2.6.16
+
+ Note that no sanity check is performed by crosstool-NG to ensure
+ that the value you enter here is appropriate for your target.
-# EOL 11/2020 [CentOS6.x]
-config LIBC_GLIBC_V_2_12_1
- bool
- prompt "2.12.1 (OBSOLETE)"
- depends on OBSOLETE
+endif # GLIBC_KERNEL_VERSION_CHOSEN
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 LIBC_VERSION
+config GLIBC_MIN_KERNEL
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
-
-endif # ! LIBC_GLIBC_CUSTOM
+ default "" if GLIBC_KERNEL_VERSION_NONE
+ default LINUX_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/glibc.in.2 b/config/libc/glibc.in.2
deleted file mode 100644
index 93b7b59..0000000
--- a/config/libc/glibc.in.2
+++ /dev/null
@@ -1,245 +0,0 @@
-# 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
- string
- prompt "extra config"
- default ""
- help
- Extra flags to pass onto ./configure when configuring.
-
- 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 LIBC_GLIBC_CONFIGPARMS
- string
- prompt "Extra config params (READ HELP)"
- default "" if ! ARCH_sh
- default "no-z-defs=yes" if ARCH_sh
- help
- Some architectures need to set options in the file configparms.
- This is the case for sh3/4, which really need to set configparms
- to "no-z-defs=yes" as of gcc-3.4/glibc-2.3.2.
-
- Unless you are building a toolchain for sh3/4, you should leave that empty.
-
- Note: If you need to pass more than one value, separate them with
- '\n'. Eg.: var1=val1\nvar2=val2
-
-config LIBC_GLIBC_EXTRA_CFLAGS
- string
- prompt "extra target CFLAGS"
- default ""
- help
- Extra target CFLAGS to use when building.
-
-config LIBC_ENABLE_FORTIFIED_BUILD
- bool
- prompt "Enable fortified build (EXPERIMENTAL)"
- depends on EXPERIMENTAL
- help
- If you say 'y' here, then glibc will be using fortified versions
- of functions with format arguments (eg. vsyslog, printf...), and
- do a sanity check on the format at runtime, to avoid some of the
- common format string attacks.
-
- This is currently not supported, and will most probably result in
- a broken build, with an error message like:
- ../misc/syslog.c: In function '__vsyslog_chk':
- ../misc/syslog.c:123: sorry, unimplemented: inlining failed in
- call to 'syslog': function body not available
-
- If you are brave enough and want to debug the issue, then say 'y'
- here. Otherwise, be still and say 'n' (the default). ;-)
-
-
-config LIBC_DISABLE_VERSIONING
- bool
- prompt "Disable symbols versioning"
- help
- Do not include versioning information in the library objects.
-
-config LIBC_OLDEST_ABI
- string
- prompt "Oldest supported ABI"
- default ""
- help
- Set the oldest ABI supported by the C library.
-
- Setting this option, for example, to 2.2 will provide ABI support
- back to (e)glibc-2.2.
-
- If this option is not set, (e)glibc will choose for you.
-
-config LIBC_GLIBC_FORCE_UNWIND
- bool
- prompt "Force unwind support (READ HELP!)"
- default y
- help
- If your toolchain fails building while building the C library
- start files, or the complete C library, with a message like:
- configure: error: forced unwind support is required
-
- then you may try changing this option. Otherwise, leave it to
- the default 'y'.
-
- The issue seems to be related to building NPTL on old versions
- of glibc on some architectures
- (seen on s390, s390x and x86_64).
-
-config LIBC_ADDONS_LIST
- string
- prompt "Extra addons"
- default ""
- help
- Extra addons to include. Space separated list.
-
- You need to specify neither linuxthreads nor nptl, as they are added
- automagically for you depending on the threading model you chose
- earlier and on libc version selected.
-
- Also, do not specify ports even if applicable to the selected libc
- version/architecture; it is selected automatically.
-
- Eg.: libidn
-
-config LIBC_LOCALES
- bool
- prompt "Build and install locales"
- help
- Whether to build and install the libc locale files for the target,
- which is required in order to support internationalization.
-
-if LIBC_glibc && LIBC_LOCALES
-comment "WARNING! "
-comment "| The built locales will be usable if and only if the build "
-comment "| machine and the target: "
-comment "| - have the same endianness, "
-comment "| - and have the same alignment requirements for uint32_t. "
-comment "| You will have to check by yourself (for now). "
-comment "WARNING! "
-comment "| Building GLIBC locales requires that GLIBC supports "
-comment "| the build machine as the target. "
-endif # LIBC_glibc && LIBC_LOCALES
-
-if KERNEL_linux
-
-choice LIBC_GLIBC_SUPPORTED_KERNEL
- bool
- prompt "Minimum supported kernel version"
- default LIBC_GLIBC_KERNEL_VERSION_AS_HEADERS
-
-config LIBC_GLIBC_KERNEL_VERSION_NONE
- bool
- prompt "Let ./configure decide"
- help
- Let ./configure decide what minimum kernel version glibc will be
- able to run against.
-
- This will include legacy compatibility code for older kernels in
- the C library, thus ensuring that it will run on a large number
- of old kernels.
-
- The minimum kernel version supported will be dependent upon the
- target you build for. For example:
- alpha*-*-linux-gnu Requires Linux 2.6.9 for NPTL
- sh[34]-*-linux-gnu Requires Linux 2.6.11
- powerpc* Requires Linux 2.4.19
- arm*-*-linux-*gnueabi Requires Linux 2.6.16
-
-config LIBC_GLIBC_KERNEL_VERSION_AS_HEADERS
- bool
- prompt "Same as kernel headers (default)"
- help
- Normally, you'll want glibc to run against the same kernel
- version as the one used for the headers.
-
- This is the default.
-
- If enabled, crosstool-ng will use the chosen version of kernel
- headers for the glibc minimum kernel version supported, which is
- what gets passed to "--enable-kernel=" when configuring glibc.
-
- Enabling this will ensure that no legacy compatibility code for
- older kernels is built into your C libraries, but it will
- be unable to run on kernel versions older than whichever kernel
- headers version you've built the toolchain for.
-
- If you know for sure that your toolchain will never need to build
- applications that will run under a kernel version older than your
- chosen kernel headers version (CT_KERNEL_VERSION), you can choose
- "y" here.
-
-config LIBC_GLIBC_KERNEL_VERSION_CHOSEN
- bool
- prompt "Specific kernel version"
- help
- Specify the earliest Linux kernel version you want glibc to
- include support for. This does not have to match the kernel
- headers version used for your toolchain. This controls what is
- passed to the "--enable-kernel=" option to the glibc configure
- script.
-
- If you want to be able to statically link programs with your
- toolchain's C library, make sure this kernel version is lower than
- all kernels you wish to support to avoid "FATAL: kernel too old"
- errors. The higher the version you specify, the less legacy code
- will be built into libc.
-
- Most people can leave this at the default value of "2.6.9".
-
-if LIBC_GLIBC_KERNEL_VERSION_CHOSEN
-
-config LIBC_GLIBC_MIN_KERNEL_VERSION
- string
- prompt "Minimum kernel version to support"
- default "2.6.9"
- help
- Enter here the lowest kernel version glibc will be able to run against.
-
- The minimum kernel version supported will be dependent upon the
- target you build for. For example:
- alpha*-*-linux-gnu Requires Linux 2.6.9 for NPTL
- sh[34]-*-linux-gnu Requires Linux 2.6.11
- powerpc* Requires Linux 2.4.19
- arm*-*-linux-*gnueabi Requires Linux 2.6.16
-
- 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
-
-endchoice
-
-config LIBC_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
-
-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..e16e85a 100644
--- a/config/libc/musl.in
+++ b/config/libc/musl.in
@@ -1,75 +1,66 @@
-# musl options
+# musl second-part option
## depends on ! WINDOWS && ! BARE_METAL
## depends on EXPERIMENTAL
-##
## select LIBC_SUPPORT_THREADS_NATIVE
## select CC_CORE_PASSES_NEEDED
-##
+
## help Musl is a new standard library to power a new generation of Linux-based
## 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"
+
+# TBD why? it claims "native", why report "musl"?
config THREADS
default "musl"
-config LIBC_MUSL_CUSTOM
+config LIBC_MUSL_DEBUG
bool
- prompt "Custom musl"
- depends on EXPERIMENTAL
+ prompt "Build with debugging information"
help
- The choosen musl-libc version shall be not downloaded. Instead use
- a custom location to get the source.
-
-if LIBC_MUSL_CUSTOM
+ This option enables debugging information, this will increase the size of
+ the resulting library.
-config LIBC_MUSL_CUSTOM_LOCATION
- string
- prompt "Full path to custom musl-libc source"
+config LIBC_MUSL_WARNINGS
+ bool
+ prompt "Build with recommended warnings flags"
help
- Enter the path to the directory or tarball of your source for musl.
+ Build musl-libc with extra warnings, useful for musl-libc development.
- 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.
+choice
+ prompt "How to optimize musl-libc"
+ default LIBC_MUSL_OPTIMIZE_AUTO
-config LIBC_MUSL_CUSTOM_VERSION
- string
- prompt "Custom MUSL version"
+config LIBC_MUSL_OPTIMIZE_NONE
+ bool
+ prompt "Do not optimize musl-libc"
help
- Enter the version number for your custom musl-libc.
+ This option sets `--enable-optimize=no' to disable optimization.
-config LIBC_VERSION
- string
- default LIBC_MUSL_CUSTOM_VERSION
-
-endif # LIBC_MUSL_CUSTOM
-
-if ! LIBC_MUSL_CUSTOM
-
-choice
+config LIBC_MUSL_OPTIMIZE_AUTO
bool
- prompt "musl version"
-# Don't remove next line
-# CT_INSERT_VERSION_BELOW
+ prompt "Use musl-libc's automatic optimization"
+ help
+ This option sets `--enable-optimize=auto' to automatically set optimization.
-config LIBC_MUSL_V_1_1_16
+config LIBC_MUSL_OPTIMIZE_SPEED
bool
- prompt "1.1.16"
- depends on EXPERIMENTAL
+ prompt "Optimize musl-libc for speed"
+ help
+ This option sets `--enable-optimize=yes' to set optimization to -O3 for speed.
-config LIBC_MUSL_V_1_1_15
+config LIBC_MUSL_OPTIMIZE_SIZE
bool
- prompt "1.1.15 (OBSOLETE)"
- depends on EXPERIMENTAL && OBSOLETE
+ prompt "Optimize musl-libc for size"
+ help
+ This option sets `--enable-optimize=size' to set optimization to -Os for size.
endchoice
-config LIBC_VERSION
+config LIBC_MUSL_OPTIMIZE
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
+ default "no" if LIBC_MUSL_OPTIMIZE_NONE
+ default "auto" if LIBC_MUSL_OPTIMIZE_AUTO
+ default "yes" if LIBC_MUSL_OPTIMIZE_SPEED
+ default "size" if LIBC_MUSL_OPTIMIZE_SIZE
diff --git a/config/libc/musl.in.2 b/config/libc/musl.in.2
deleted file mode 100644
index f4abcc4..0000000
--- a/config/libc/musl.in.2
+++ /dev/null
@@ -1,51 +0,0 @@
-# musl second-part option
-
-config LIBC_MUSL_DEBUG
- bool
- prompt "Build with debugging information"
- help
- This option enables debugging information, this will increase the size of
- the resulting library.
-
-config LIBC_MUSL_WARNINGS
- bool
- prompt "Build with recommended warnings flags"
- help
- Build musl-libc with extra warnings, useful for musl-libc development.
-
-choice
- prompt "How to optimize musl-libc"
- default LIBC_MUSL_OPTIMIZE_AUTO
-
-config LIBC_MUSL_OPTIMIZE_NONE
- bool
- prompt "Do not optimize musl-libc"
- help
- This option sets `--enable-optimize=no' to disable optimization.
-
-config LIBC_MUSL_OPTIMIZE_AUTO
- bool
- prompt "Use musl-libc's automatic optimization"
- help
- This option sets `--enable-optimize=auto' to automatically set optimization.
-
-config LIBC_MUSL_OPTIMIZE_SPEED
- bool
- prompt "Optimize musl-libc for speed"
- help
- This option sets `--enable-optimize=yes' to set optimization to -O3 for speed.
-
-config LIBC_MUSL_OPTIMIZE_SIZE
- bool
- prompt "Optimize musl-libc for size"
- help
- This option sets `--enable-optimize=size' to set optimization to -Os for size.
-
-endchoice
-
-config LIBC_MUSL_OPTIMIZE
- string
- default "no" if LIBC_MUSL_OPTIMIZE_NONE
- default "auto" if LIBC_MUSL_OPTIMIZE_AUTO
- default "yes" if LIBC_MUSL_OPTIMIZE_SPEED
- default "size" if LIBC_MUSL_OPTIMIZE_SIZE
diff --git a/config/libc/newlib.in b/config/libc/newlib.in
index 68e8b62..f43a67d 100644
--- a/config/libc/newlib.in
+++ b/config/libc/newlib.in
@@ -1,220 +1,219 @@
# newlib options
## depends on BARE_METAL
-##
## select LIBC_SUPPORT_THREADS_NONE
## select CC_CORE_PASSES_NEEDED if CANADIAN
## select CC_CORE_PASS_2_NEEDED if ! CANADIAN
-##
+
## help Newlib is a C library intended for use on embedded systems. It is a
## help conglomeration of several library parts, all under free software
## help licenses that make them easily usable on embedded products. Newlib
## 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
+source "config/versions/newlib.in"
-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.
+# maybe older versions of newlib will support it too, but this
+# needs to be checked
+config NEWLIB_CXA_ATEXIT
+ def_bool y
+ depends on NEWLIB_2_0_or_later
+ select LIBC_PROVIDES_CXA_ATEXIT
- 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 NEWLIB_HAS_NANO_MALLOC
+ def_bool y
+ depends on NEWLIB_2_1_or_later
-config LIBC_NEWLIB_CUSTOM_VERSION
- string
- prompt "Custom NEWLIB version"
- help
- Enter the version number for your custom newlib.
+config NEWLIB_HAS_NANO_FORMATTED_IO
+ def_bool y
+ depends on NEWLIB_2_2_or_later
-config LIBC_VERSION
+config LIBC_NEWLIB_TARGET_CFLAGS
string
- default LIBC_NEWLIB_CUSTOM_VERSION
-
-endif # LIBC_NEWLIB_CUSTOM
-
-if ! LIBC_NEWLIB_CUSTOM
-
-config CC_NEWLIB_SHOW_LINARO
- bool
- prompt "Show Linaro versions"
+ prompt "Target CFLAGS for newlib"
+ default ""
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
+ 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.
-config LIBC_NEWLIB_V_2_4_0
- bool
- prompt "2.4.0.20161025"
- select LIBC_NEWLIB_2_4
+ Leave blank if you don't know better.
-config LIBC_NEWLIB_V_2_3_0
+config LIBC_NEWLIB_IO_C99FMT
bool
- prompt "2.3.0.20160226"
- select LIBC_NEWLIB_2_3
+ prompt "Enable IOs on C99 formats"
+ help
+ Enable support for IOs on C99 formats.
-config LIBC_NEWLIB_LINARO_V_2_2_0
+config LIBC_NEWLIB_IO_LL
bool
- prompt "Linaro 2.2.0-2015.01"
- depends on CC_NEWLIB_SHOW_LINARO
- select LIBC_NEWLIB_2_2
+ prompt "Enable IOs on long long"
+ help
+ Enable support for IOs on long long integers.
-config LIBC_NEWLIB_V_2_2_0
+config LIBC_NEWLIB_IO_FLOAT
bool
- prompt "2.2.0.20151023"
- select LIBC_NEWLIB_2_2
+ prompt "Enable IOs on floats and doubles"
+ help
+ Enable support for IOs on floating point
+ values (float and double).
-config LIBC_NEWLIB_LINARO_V_2_1_0
+config LIBC_NEWLIB_IO_LDBL
bool
- prompt "Linaro 2.1.0-2014.09"
- depends on CC_NEWLIB_SHOW_LINARO
- select LIBC_NEWLIB_2_1
+ prompt "Enable IOs on long doubles"
+ depends on LIBC_NEWLIB_IO_FLOAT
+ help
+ Enable support for IOs on long doubles.
-config LIBC_NEWLIB_V_2_1_0
+config LIBC_NEWLIB_IO_POS_ARGS
bool
- prompt "2.1.0"
- select LIBC_NEWLIB_2_1
+ prompt "Enable printf-family positional arg support"
+ help
+ Enable printf-family positional arg support.
-config LIBC_NEWLIB_V_2_0_0
+config LIBC_NEWLIB_FVWRITE_IN_STREAMIO
bool
- prompt "2.0.0"
- select LIBC_NEWLIB_2_0
+ prompt "Vector buffer mechanism to support stream IO buffering"
+ default y
+ help
+ NEWLIB implements the vector buffer mechanism to support stream IO
+ buffering required by C standard. This feature is possibly
+ unnecessary for embedded systems which won't change file buffering
+ with functions like `setbuf' or `setvbuf'. The buffering mechanism
+ still acts as default for STDIN/STDOUT/STDERR even if this option
+ is specified.
-config LIBC_NEWLIB_V_1_20_0
+config LIBC_NEWLIB_UNBUF_STREAM_OPT
bool
- prompt "1.20.0"
+ prompt "Optimize fprintf to unbuffered unix file"
+ default y
+ help
+ NEWLIB does optimization when `fprintf to write only unbuffered unix
+ file'. It creates a temorary buffer to do the optimization that
+ increases stack consumption by about `BUFSIZ' bytes. Disabling this option
+ disables the optimization and saves size of text and stack.
-config LIBC_NEWLIB_V_1_19_0
+config LIBC_NEWLIB_FSEEK_OPTIMIZATION
bool
- prompt "1.19.0"
+ prompt "Fseek optimisation"
+ default y
+ help
+ Disabling fseek optimisation can decrease code size.
-config LIBC_NEWLIB_V_1_18_0
+config LIBC_NEWLIB_DISABLE_SUPPLIED_SYSCALLS
bool
- prompt "1.18.0"
+ prompt "Disable the syscalls supplied with newlib"
+ help
+ Disable the syscalls that come with newlib. You
+ will have to implement your own _sbrk, _read,
+ _write... If you plan to port newlib to a new
+ platform/board, say Yes.
-config LIBC_NEWLIB_V_1_17_0
+config LIBC_NEWLIB_REGISTER_FINI
bool
- prompt "1.17.0"
-
-endchoice
-
-endif # ! LIBC_NEWLIB_CUSTOM
+ prompt "Enable finalization function registration using atexit"
+ help
+ Enable finalization function registration using atexit.
-config LIBC_NEWLIB_2_5
+config LIBC_NEWLIB_ATEXIT_DYNAMIC_ALLOC
bool
- select LIBC_NEWLIB_2_5_or_later
+ prompt "Enable dynamic allocation of atexit entries"
+ default y
+ help
+ Enable dynamic allocation of atexit entries.
-config LIBC_NEWLIB_2_4
+config LIBC_NEWLIB_GLOBAL_ATEXIT
bool
- select LIBC_NEWLIB_2_4_or_later
+ prompt "Enable atexit data structure as global variable"
+ help
+ Enable atexit data structure as global variable. By doing so it is
+ move out of _reent structure, and can be garbage collected if atexit
+ is not referenced.
-config LIBC_NEWLIB_2_3
+config LIBC_NEWLIB_LITE_EXIT
bool
- select LIBC_NEWLIB_2_3_or_later
+ prompt "Enable lite exit"
+ 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_NEWLIB_2_2
+config LIBC_NEWLIB_REENT_SMALL
bool
- select LIBC_NEWLIB_2_2_or_later
+ prompt "Enable small reentrant struct support"
+ help
+ Enable small reentrant struct support.
-config LIBC_NEWLIB_2_1
+config LIBC_NEWLIB_MULTITHREAD
bool
- select LIBC_NEWLIB_2_1_or_later
+ prompt "Enable support for multiple threads"
+ default y
+ help
+ Enable support for multiple threads.
-config LIBC_NEWLIB_2_0
+config LIBC_NEWLIB_EXTRA_SECTIONS
bool
- select LIBC_NEWLIB_2_0_or_later
+ 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_NEWLIB_2_5_or_later
+config LIBC_NEWLIB_WIDE_ORIENT
bool
- select LIBC_NEWLIB_2_4_or_later
+ prompt "Allow wide C99 stream orientation"
+ default y
+ help
+ C99 states that each stream has an orientation, wide or byte. This
+ feature is possibly unnecessary for embedded systems which only do
+ byte input/output operations on stream. Disabling this feature can
+ decrease code size.
-config LIBC_NEWLIB_2_4_or_later
+config LIBC_NEWLIB_ENABLE_TARGET_OPTSPACE
bool
- select LIBC_NEWLIB_2_3_or_later
+ prompt "Optimize newlib for size"
+ default y
+ help
+ Pass --enable-target-optspace to newlib configure.
-config LIBC_NEWLIB_2_3_or_later
- bool
- select LIBC_NEWLIB_2_2_or_later
+ This will compile newlib with -Os.
-config LIBC_NEWLIB_2_2_or_later
+config LIBC_NEWLIB_LTO
bool
- select LIBC_NEWLIB_2_1_or_later
+ 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_NEWLIB_2_1_or_later
+config LIBC_NEWLIB_NANO_MALLOC
bool
- select LIBC_NEWLIB_2_0_or_later
+ prompt "Enable Nano Malloc"
+ depends on NEWLIB_HAS_NANO_MALLOC
+ help
+ NEWLIB 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.
-# maybe older versions of newlib will support it too, but this
-# needs to be checked
-config LIBC_NEWLIB_2_0_or_later
+config LIBC_NEWLIB_NANO_FORMATTED_IO
bool
- 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
+ prompt "Enable Nano Formatted I/O"
+ depends on NEWLIB_HAS_NANO_FORMATTED_IO
+ help
+ This builds NEWLIB with a special implementation of formatted I/O
+ functions, designed to lower the size of application on small systems
+ with size constraint issues. This option does not affect wide-char
+ formatted I/O functions.
-config LIBC_NEWLIB_TARGET_CFLAGS
+config LIBC_NEWLIB_EXTRA_CONFIG_ARRAY
string
- prompt "Target CFLAGS for newlib"
+ prompt "Extra config 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.
+ Extra flags to pass onto ./configure when configuring the newlib.
diff --git a/config/libc/newlib.in.2 b/config/libc/newlib.in.2
deleted file mode 100644
index 96bd22b..0000000
--- a/config/libc/newlib.in.2
+++ /dev/null
@@ -1,176 +0,0 @@
-# newlib second-part options
-
-config LIBC_NEWLIB_IO_C99FMT
- bool
- prompt "Enable IOs on C99 formats"
- help
- Enable support for IOs on C99 formats.
-
-config LIBC_NEWLIB_IO_LL
- bool
- prompt "Enable IOs on long long"
- help
- Enable support for IOs on long long integers.
-
-config LIBC_NEWLIB_IO_FLOAT
- bool
- prompt "Enable IOs on floats and doubles"
- help
- Enable support for IOs on floating point
- values (float and double).
-
-config LIBC_NEWLIB_IO_LDBL
- bool
- prompt "Enable IOs on long doubles"
- depends on LIBC_NEWLIB_IO_FLOAT
- help
- Enable support for IOs on long doubles.
-
-config LIBC_NEWLIB_IO_POS_ARGS
- bool
- prompt "Enable printf-family positional arg support"
- help
- Enable printf-family positional arg support.
-
-config LIBC_NEWLIB_FVWRITE_IN_STREAMIO
- bool
- prompt "Vector buffer mechanism to support stream IO buffering"
- default y
- help
- NEWLIB implements the vector buffer mechanism to support stream IO
- buffering required by C standard. This feature is possibly
- unnecessary for embedded systems which won't change file buffering
- with functions like `setbuf' or `setvbuf'. The buffering mechanism
- still acts as default for STDIN/STDOUT/STDERR even if this option
- is specified.
-
-config LIBC_NEWLIB_UNBUF_STREAM_OPT
- bool
- prompt "Optimize fprintf to unbuffered unix file"
- default y
- help
- NEWLIB does optimization when `fprintf to write only unbuffered unix
- file'. It creates a temorary buffer to do the optimization that
- increases stack consumption by about `BUFSIZ' bytes. Disabling this option
- disables the optimization and saves size of text and stack.
-
-config LIBC_NEWLIB_FSEEK_OPTIMIZATION
- bool
- prompt "Fseek optimisation"
- default y
- help
- Disabling fseek optimisation can decrease code size.
-
-config LIBC_NEWLIB_DISABLE_SUPPLIED_SYSCALLS
- bool
- prompt "Disable the syscalls supplied with newlib"
- help
- Disable the syscalls that come with newlib. You
- will have to implement your own _sbrk, _read,
- _write... If you plan to port newlib to a new
- platform/board, say Yes.
-
-config LIBC_NEWLIB_REGISTER_FINI
- bool
- prompt "Enable finalization function registration using atexit"
- help
- Enable finalization function registration using atexit.
-
-config LIBC_NEWLIB_ATEXIT_DYNAMIC_ALLOC
- bool
- prompt "Enable dynamic allocation of atexit entries"
- default y
- help
- Enable dynamic allocation of atexit entries.
-
-config LIBC_NEWLIB_GLOBAL_ATEXIT
- bool
- prompt "Enable atexit data structure as global variable"
- help
- Enable atexit data structure as global variable. By doing so it is
- move out of _reent structure, and can be garbage collected if atexit
- is not referenced.
-
-config LIBC_NEWLIB_LITE_EXIT
- bool
- prompt "Enable lite exit"
- 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_NEWLIB_REENT_SMALL
- bool
- prompt "Enable small reentrant struct support"
- help
- Enable small reentrant struct support.
-
-config LIBC_NEWLIB_MULTITHREAD
- bool
- prompt "Enable support for multiple threads"
- default y
- help
- Enable support for multiple threads.
-
-config LIBC_NEWLIB_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_NEWLIB_WIDE_ORIENT
- bool
- prompt "Allow wide C99 stream orientation"
- default y
- help
- C99 states that each stream has an orientation, wide or byte. This
- feature is possibly unnecessary for embedded systems which only do
- byte input/output operations on stream. Disabling this feature can
- decrease code size.
-
-config LIBC_NEWLIB_ENABLE_TARGET_OPTSPACE
- bool
- prompt "Optimize newlib for size"
- default y
- help
- Pass --enable-target-optspace to newlib configure.
-
- This will compile newlib with -Os.
-
-config LIBC_NEWLIB_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_NEWLIB_NANO_MALLOC
- bool
- prompt "Enable Nano Malloc"
- depends on LIBC_NEWLIB_2_1_or_later
- help
- NEWLIB 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_NEWLIB_NANO_FORMATTED_IO
- bool
- prompt "Enable Nano Formatted I/O"
- depends on LIBC_NEWLIB_2_2_or_later
- help
- This builds NEWLIB with a special implementation of formatted I/O
- functions, designed to lower the size of application on small systems
- with size constraint issues. This option does not affect wide-char
- formatted I/O functions.
-
-config LIBC_NEWLIB_EXTRA_CONFIG_ARRAY
- string
- prompt "Extra config for newlib"
- default ""
- help
- Extra flags to pass onto ./configure when configuring the newlib.
diff --git a/config/libc/uClibc.in b/config/libc/uClibc.in
index a85cf21..e12c3fd 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.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
@@ -230,3 +110,98 @@ config LIBC_UCLIBC_CONFIG_FILE
Path to the configuration file.
If the file is not provided, we fall back to a default config file.
+
+if THREADS_LT && !UCLIBC_MERGED_LINUXTHREADS
+
+choice
+ bool
+ prompt "Linuxthread implementation: "
+ default LIBC_UCLIBC_LNXTHRD_OLD
+
+config LIBC_UCLIBC_LNXTHRD_OLD
+ bool
+ prompt "old/stable"
+ help
+ From the uClibc config option help:
+ There are two versions of linuxthreads. The older (stable) version
+ has been in uClibc for quite a long time but hasn't seen too many
+ updates other than bugfixes.
+
+config LIBC_UCLIBC_LNXTHRD_NEW
+ bool
+ prompt "new"
+ help
+ From the uClibc config option help:
+ The new version has not been tested much, and lacks ports for arches
+ which glibc does not support (like frv, etc...), but is based on
+ the latest code from glibc, so it may be the only choice for the
+ newer ports (like alpha/amd64/64bit arches and hppa).
+
+endchoice
+
+endif # THREADS_LT
+
+config LIBC_UCLIBC_LNXTHRD
+ string
+ default "" if THREADS_NONE
+ default "" if THREADS_NATIVE
+ default "" if UCLIBC_MERGED_LINUXTHREADS
+ default "old" if LIBC_UCLIBC_LNXTHRD_OLD
+ default "new" if LIBC_UCLIBC_LNXTHRD_NEW
+
+config LIBC_UCLIBC_LOCALES
+ bool
+ select LIBC_UCLIBC_WCHAR
+ prompt "Add support for locales"
+ help
+ Say y if you want uClibc to support localisation.
+
+ Note that seems to be broken on recent uClibc releases.
+
+config LIBC_UCLIBC_IPV6
+ bool
+ prompt "Add support for IPv6"
+ help
+ Say y if you want uClibc to support IPv6.
+
+config LIBC_UCLIBC_WCHAR
+ bool
+ prompt "Add support for WCHAR"
+ help
+ Say y if you want uClibc to support WCHAR.
+
+ Maybe this is needed, if you're building a C++-Compiler
+
+config LIBC_UCLIBC_FENV
+ bool
+ prompt "Add support for fenv.h"
+ default y if ARCH_X86
+ help
+ fenv.h provides functions to control the floating point environment,
+ such as rounding mode, exceptions...
+
+ For some architectures, fenv.h is incomplete, so is not installed
+ by default. x86 is known to have a rather complete fenv.h, so it is
+ installed by default only for x86.
+
+ If you need fenv.h on other architectures, say 'y' here, but you may
+ encounter some issues.
+
+config LIBC_UCLIBC_RPC
+ bool
+ prompt "Add support for RPC"
+ help
+ Enable support for remote procedure calls (RPC) in uClibc.
+
+if ARCH_ARM
+config LIBC_UCLIBC_USE_GNU_SUFFIX
+ bool
+ default y
+ prompt "Use -uclibcgnueabi suffix"
+ help
+ Depending on where the resulting toolchain will be used, you may need
+ to tweak the "system" part of the target tuple. Buildroot prefers
+ to have arm-*-linux-uclibcgnueabi; OpenEmbedded prefers
+ arm-*-linux-uclibceabi. Other tools seem to either accept both, or
+ don't care about the suffix.
+endif
diff --git a/config/libc/uClibc.in.2 b/config/libc/uClibc.in.2
deleted file mode 100644
index 1b34855..0000000
--- a/config/libc/uClibc.in.2
+++ /dev/null
@@ -1,110 +0,0 @@
-# uClibc second-part option
-
-if THREADS_LT && !LIBC_UCLIBC_NG_1_0_15_or_later
-
-choice
- bool
- prompt "Linuxthread implementation: "
- default LIBC_UCLIBC_LNXTHRD_OLD
-
-config LIBC_UCLIBC_LNXTHRD_OLD
- bool
- prompt "old/stable"
- help
- From the uClibc config option help:
- There are two versions of linuxthreads. The older (stable) version
- has been in uClibc for quite a long time but hasn't seen too many
- updates other than bugfixes.
-
-config LIBC_UCLIBC_LNXTHRD_NEW
- bool
- prompt "new"
- help
- From the uClibc config option help:
- The new version has not been tested much, and lacks ports for arches
- which glibc does not support (like frv, etc...), but is based on
- the latest code from glibc, so it may be the only choice for the
- newer ports (like alpha/amd64/64bit arches and hppa).
-
-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 "old" if LIBC_UCLIBC_LNXTHRD_OLD
- default "new" if LIBC_UCLIBC_LNXTHRD_NEW
-
-config LIBC_UCLIBC_LOCALES
- bool
- select LIBC_UCLIBC_WCHAR
- prompt "Add support for locales"
- help
- Say y if you want uClibc to support localisation.
-
- Note that seems to be broken on recent uClibc releases.
-
-config LIBC_UCLIBC_LOCALES_PREGEN_DATA
- bool
- prompt "Use pregen locales"
- depends on LIBC_UCLIBC_LOCALES
- depends on ! LIBC_UCLIBC_NG
- default y
- help
- If you see issues with using pre-generated locales data,
- you can try switching this off.
-
- If so, please report the issue, so we can default this
- to off if too many people complain.
-
-config LIBC_UCLIBC_IPV6
- bool
- prompt "Add support for IPv6"
- help
- Say y if you want uClibc to support IPv6.
-
-config LIBC_UCLIBC_WCHAR
- bool
- prompt "Add support for WCHAR"
- help
- Say y if you want uClibc to support WCHAR.
-
- Maybe this is needed, if you're building a C++-Compiler
-
-config LIBC_UCLIBC_FENV
- bool
- prompt "Add support for fenv.h"
- default y if ARCH_x86
- help
- fenv.h provides functions to control the floating point environment,
- such as rounding mode, exceptions...
-
- For some architectures, fenv.h is incomplete, so is not installed
- by default. x86 is known to have a rather complete fenv.h, so it is
- installed by default only for x86.
-
- If you need fenv.h on other architectures, say 'y' here, but you may
- encounter some issues.
-
-config LIBC_UCLIBC_RPC
- bool
- prompt "Add support for RPC"
- help
- Enable support for remote procedure calls (RPC) in uClibc.
-
-if ARCH_arm
-config LIBC_UCLIBC_USE_GNU_SUFFIX
- bool
- default y
- prompt "Use -uclibcgnueabi suffix"
- help
- Depending on where the resulting toolchain will be used, you may need
- to tweak the "system" part of the target tuple. Buildroot prefers
- to have arm-*-linux-uclibcgnueabi; OpenEmbedded prefers
- arm-*-linux-uclibceabi. Other tools seem to either accept both, or
- don't care about the suffix.
-endif
diff --git a/config/target.in b/config/target.in
index 50aaa61..738f06b 100644
--- a/config/target.in
+++ b/config/target.in
@@ -2,9 +2,6 @@
menu "Target options"
-config ARCH
- string
-
source "config/gen/arch.in"
config ARCH_SUFFIX
@@ -405,6 +402,30 @@ config ARCH_FLOAT
default "soft" if ARCH_FLOAT_SW
default "softfp" if ARCH_FLOAT_SOFTFP
-source "config/gen/arch.in.2"
+config TARGET_USE_OVERLAY
+ bool
+
+if TARGET_USE_OVERLAY
+
+config OVERLAY_NAME
+ string "Custom processor configuration name"
+ help
+ Enter the name of the custom processor configuration.
+ Overlay file for that configuration must be called
+ '<ARCH>_<OVERLAY_NAME>.tar' (optionally, with .gz/.bz2/.lzma/.xz
+ extension).
+
+ Leave blank to use the default '<ARCH>_overlay.tar'.
+ For more information about this option, please also consult the
+ section 'Using crosstool-NG to build Xtensa toolchains' in the
+ in http://crosstool-ng.github.io/docs/caveats-features/
+
+config OVERLAY_LOCATION
+ string "Full path to custom configuration (overlay)"
+ help
+ Enter the path to the directory for the custom processor
+ configuration file.
+
+endif
endmenu
diff --git a/config/toolchain.in b/config/toolchain.in
index 1b2a289..f9a56b9 100644
--- a/config/toolchain.in
+++ b/config/toolchain.in
@@ -105,7 +105,7 @@ comment "Tuple completion and aliasing"
config TARGET_VENDOR
string
prompt "Tuple's vendor string"
- depends on !LIBC_avr_libc
+ depends on !LIBC_AVR_LIBC
default "unknown"
help
Vendor part of the target tuple.