summaryrefslogtreecommitdiff
path: root/config/libc
diff options
context:
space:
mode:
Diffstat (limited to 'config/libc')
-rw-r--r--config/libc/eglibc.in240
-rw-r--r--config/libc/eglibc.in.21
-rw-r--r--config/libc/glibc-eglibc.in-common268
-rw-r--r--config/libc/glibc.in26
-rw-r--r--config/libc/glibc.in.2268
-rw-r--r--config/libc/mingw.in37
-rw-r--r--config/libc/musl.in12
-rw-r--r--config/libc/newlib.in19
8 files changed, 354 insertions, 517 deletions
diff --git a/config/libc/eglibc.in b/config/libc/eglibc.in
deleted file mode 100644
index d1ecd0f..0000000
--- a/config/libc/eglibc.in
+++ /dev/null
@@ -1,240 +0,0 @@
-# eglibc options
-
-## depends on ! WINDOWS && ! BARE_METAL && ARCH_USE_MMU
-##
-## select LIBC_SUPPORT_THREADS_NATIVE
-## select CC_CORE_PASSES_NEEDED
-##
-## help EGLIBC (Embedded GLIBC) is a variant of the standard GNU GLIBC
-## help that is designed to work well on embedded systems. EGLIBC strives
-## help to be source and binary compatible with GLIBC. Its goals include
-## help a reduced footprint, configurable components, and improved
-## help cross-compilation support. EGLIBC also includes some embedded ports
-## help (such as e500/spe) that are normally separate add-ons of GLIBC.
-
-config THREADS
- default "nptl"
-
-choice
- bool
- prompt "eglibc version"
-# Don't remove next line
-# CT_INSERT_VERSION_BELOW
-
-config LIBC_EGLIBC_LINARO_V_2_19
- bool
- prompt "Linaro 2.19-2014.08"
- select LIBC_EGLIBC_2_16_or_later
-
-config LIBC_EGLIBC_V_2_18
- bool
- prompt "2_18"
- select LIBC_EGLIBC_2_16_or_later
-
-config LIBC_EGLIBC_V_2_17
- bool
- prompt "2_17"
- select LIBC_EGLIBC_2_16_or_later
-
-config LIBC_EGLIBC_V_2_16
- bool
- prompt "2_16"
- select LIBC_GLIBC_PORTS_EXTERNAL
- select LIBC_EGLIBC_2_16_or_later
-
-config LIBC_EGLIBC_V_2_15
- bool
- prompt "2_15"
- select LIBC_GLIBC_PORTS_EXTERNAL
-
-config LIBC_EGLIBC_V_2_14
- bool
- prompt "2_14"
- select LIBC_GLIBC_PORTS_EXTERNAL
-
-config LIBC_EGLIBC_V_2_13
- bool
- prompt "2_13"
- select LIBC_GLIBC_PORTS_EXTERNAL
-
-config LIBC_EGLIBC_V_2_12
- bool
- prompt "2_12"
- select LIBC_GLIBC_PORTS_EXTERNAL
-
-config LIBC_EGLIBC_V_2_11
- bool
- prompt "2_11"
- select LIBC_GLIBC_PORTS_EXTERNAL
-
-config LIBC_EGLIBC_V_2_10
- bool
- prompt "2_10"
- select LIBC_GLIBC_PORTS_EXTERNAL
-
-config LIBC_EGLIBC_V_2_9
- bool
- prompt "2_9"
- select LIBC_GLIBC_PORTS_EXTERNAL
-
-config LIBC_EGLIBC_V_TRUNK
- bool
- prompt "'trunk'"
- select LIBC_EGLIBC_2_16_or_later
- help
- Selecting this will export the trunk of the eglibc subversion repository.
-
-config LIBC_EGLIBC_CUSTOM
- bool
- prompt "Custom eglibc"
- depends on EXPERIMENTAL
- select LIBC_EGLIBC_2_16_or_later
- select LIBC_CUSTOM
-
-endchoice
-
-config LIBC_VERSION
- string
-# Don't remove next line
-# CT_INSERT_VERSION_STRING_BELOW
- default "linaro-2.19-2014.08" if LIBC_EGLIBC_LINARO_V_2_19
- default "2_18" if LIBC_EGLIBC_V_2_18
- default "2_17" if LIBC_EGLIBC_V_2_17
- default "2_16" if LIBC_EGLIBC_V_2_16
- default "2_15" if LIBC_EGLIBC_V_2_15
- default "2_14" if LIBC_EGLIBC_V_2_14
- default "2_13" if LIBC_EGLIBC_V_2_13
- default "2_12" if LIBC_EGLIBC_V_2_12
- default "2_11" if LIBC_EGLIBC_V_2_11
- default "2_10" if LIBC_EGLIBC_V_2_10
- default "2_9" if LIBC_EGLIBC_V_2_9
- default "trunk" if LIBC_EGLIBC_V_TRUNK
- default "custom" if LIBC_EGLIBC_CUSTOM
-
-config LIBC_EGLIBC_2_16_or_later
- bool
-
-config LIBC_CUSTOM
- bool
-
-if LIBC_EGLIBC_CUSTOM
-
-config LIBC_EGLIBC_CUSTOM_LOCATION
- string
- prompt "Full path to custom eglibc source"
- default ""
- help
- Enter the path to the directory (or tarball) of your source for eglibc,
- or leave blank to use default CT_CUSTOM_LOCATION_ROOT_DIR/eglibc
-
-endif # LIBC_EGLIBC_CUSTOM
-if ! LIBC_EGLIBC_CUSTOM
-
-if CONFIGURE_has_svn
-
-config EGLIBC_REVISION
- string
- prompt "Revision to use"
- default "HEAD"
- help
- Enter the revision of trunk you want to use.
- Default is HEAD.
-
- A revision argument can be one of:
- NUMBER revision number
- '{' DATE '}' revision at start of the date (*)
- 'HEAD' latest in repository
-
- (*) If you want to use a date, please use ISO-8601 formats if
- at all possible.
-
-config EGLIBC_HTTP
- bool
- prompt "use http:// instead of svn://"
- help
- By default, when eglibc is downloaded it is checked out using
- svn://svn.eglibc.org. This option allows you to download eglibc
- from http://www.eglibc.org, if you are behind a proxy or firewall.
- If you are behind a proxy, don't forget to update your
- .subversion/servers file with your proxy info in [global].
-
-config EGLIBC_CHECKOUT
- bool
- prompt "checkout instead of export"
- default y if LIBC_EGLIBC_V_TRUNK
- help
- By default, the eglibc download will be an export of the subversion
- repository. If you say 'y' here, then the repository will instead be
- checked-out, so that you can update it later.
-
- Note that crosstool-NG will *not* update your working copy, you will
- have to do that yourself.
-
-endif # ! CONFIGURE_has_svn
-if ! CONFIGURE_has_svn
-
-comment "svn is missing. You'll have to either:"
-comment "| - have a pre-downloaded local tarball"
-comment "| - or have a LAN mirror with a pre-downloaded tarball"
-comment "otherwise you won't be able to download eglibc"
-
-endif # ! CONFIGURE_has_svn
-endif # ! LIBC_EGLIBC_CUSTOM
-
-config EGLIBC_OPT_SIZE
- bool
- prompt "optimize eglibc for size (-Os)"
- help
- Optimize eglibc for size using -Os instead of -O2. This will make eglibc
- smaller but may make it slower.
-
-config EGLIBC_CUSTOM_CONFIG
- bool
- prompt "Use custom configuration file"
- help
- Use a custom configuration file to disable some features in the eglibc
- library. The configuration file options are described in detail in the
- option-groups.def file in the eglibc source directory.
-
-if EGLIBC_CUSTOM_CONFIG
- config EGLIBC_OPTION_GROUPS_FILE
- string
- prompt "Path to the option-groups configuration file"
- default ""
- help
- Path to the option groups configuration file.
-
- config EGLIBC_BUNDLED_NSS_CONFIG
- bool
- prompt "Use bundled NSS config file"
- default y
- help
- Use minimal nsswitch configuration file bundled in eglibc.
- This option is only meaningful when runtime nss configuration
- is disabled in the option groups file.
-
- config EGLIBC_NSS_CONFIG_FILE
- string
- prompt "Path to the NSS config file"
- default ""
- depends on !EGLIBC_BUNDLED_NSS_CONFIG
- help
- Path to the nsswitch configuration file
-
- config EGLIBC_BUNDLED_NSS_FUNCTIONS
- bool
- prompt "Use bundled NSS functions file"
- default y
- help
- Use minimal nsswitch functions file bundled in eglibc.
- This option is only meaningful when runtime nss configuration
- is disabled in the option groups file.
-
- config EGLIBC_NSS_FUNCTIONS_FILE
- string
- prompt "Path to the NSS functions file"
- default ""
- depends on !EGLIBC_BUNDLED_NSS_FUNCTIONS
- help
- Path to the nsswitch functions file
-endif
diff --git a/config/libc/eglibc.in.2 b/config/libc/eglibc.in.2
deleted file mode 100644
index 84553f3..0000000
--- a/config/libc/eglibc.in.2
+++ /dev/null
@@ -1 +0,0 @@
-source "config/libc/glibc-eglibc.in-common"
diff --git a/config/libc/glibc-eglibc.in-common b/config/libc/glibc-eglibc.in-common
deleted file mode 100644
index f199e3a..0000000
--- a/config/libc/glibc-eglibc.in-common
+++ /dev/null
@@ -1,268 +0,0 @@
-# This file contains the common configuration options
-# that apply to both glibc and eglibc.
-
-# 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 LIBC_GLIBC_PORTS_EXTERNAL
- bool
- default n
-
-config LIBC_GLIBC_MAY_FORCE_PORTS
- bool
- default y if ARCH_arm
- default y if ARCH_mips
- select LIBC_GLIBC_USE_PORTS
- depends on !LIBC_GLIBC_2_20_or_later
-
-# Force using the BFD linker during the toolchain build
-config LIBC_glibc_familly
- bool
- default y
- select BINUTILS_FORCE_LD_BFD
-
-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_EXTRA_CC_ARGS
- string
- prompt "gcc extra flags"
- default ""
- help
- Extra flags to pass gcc when building.
-
- Seldom used, except for sparc64 which seems to need the flag -64
- to be passed onto gcc.
-
-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 (and possibly eglibc as well) on some architectures
- (seen on s390, s390x and x86_64).
-
-config LIBC_GLIBC_USE_PORTS
- bool
- prompt "Use the ports addon"
- depends on !LIBC_GLIBC_2_20_or_later
- help
- The ports addon contains some architecture ports that are not available
- in the official distribution.
-
- For example, this is the case for ARM with glibc-2.4 and above.
-
- Say n only if you're sure that your architecture is in the official
- distribution for your chosen version.
-
-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.
-
- Eg.: crypt (for very old libces)
-
-if LIBC_GLIBC_USE_PORTS || ( LIBC_ADDONS_LIST != "" )
-comment "WARNING !!! "
-comment "| For glibc >= 2.8, it can happen that the tarballs "
-comment "| for the addons are not available for download. "
-comment "| If that happens, bad luck... Try a previous version "
-comment "| or try again later... :-( "
-endif
-
-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). "
-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/eglibc
- 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/eglibc 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/eglibc 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/glibc.in b/config/libc/glibc.in
index 42575f7..fbc82d5 100644
--- a/config/libc/glibc.in
+++ b/config/libc/glibc.in
@@ -6,21 +6,44 @@
## select CC_CORE_PASSES_NEEDED
##
## help The de-facto standard for Linux distributions.
-## help Feature-rich, but large... Most usefull for desktop-like systems.
+## help Feature-rich, but large... Most useful for desktop-like systems.
config THREADS
default "nptl"
+config CC_GLIBC_SHOW_LINARO
+ bool
+ prompt "Show Linaro versions"
+ help
+ Linaro is maintaining some advanced/more stable/experimental versions
+ of glibc, especially for the ARM architecture.
+
+ Those versions have not been blessed by the glibc comunity (nor have they
+ been cursed either!), but they look to be pretty much stable, and even
+ more stable than the upstream versions. YMMV...
+
+ If you do not know what this Linaro stuff is, then simply say 'n' here,
+ and rest in peace. OTOH, if you know what you are doing, you will be
+ able to use and enjoy :-) the Linaro versions by saying 'y' here.
+
+ Linaro: http://www.linaro.org/
+
choice
bool
prompt "glibc version"
# Don't remove next line
# CT_INSERT_VERSION_BELOW
+config LIBC_GLIBC_V_2_21
+ bool
+ prompt "2.21"
+ select LIBC_GLIBC_2_20_or_later
+
config LIBC_GLIBC_LINARO_V_2_20
bool
prompt "Linaro 2.20-2014.11"
select LIBC_GLIBC_2_20_or_later
+ depends on CC_GLIBC_SHOW_LINARO
config LIBC_GLIBC_V_2_20
bool
@@ -131,6 +154,7 @@ config LIBC_VERSION
string
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
+ 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
diff --git a/config/libc/glibc.in.2 b/config/libc/glibc.in.2
index 84553f3..346f9b7 100644
--- a/config/libc/glibc.in.2
+++ b/config/libc/glibc.in.2
@@ -1 +1,267 @@
-source "config/libc/glibc-eglibc.in-common"
+# 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/*
+
+config LIBC_GLIBC_PORTS_EXTERNAL
+ bool
+ default n
+
+config LIBC_GLIBC_MAY_FORCE_PORTS
+ bool
+ default y if ARCH_arm
+ default y if ARCH_mips
+ select LIBC_GLIBC_USE_PORTS
+ depends on !LIBC_GLIBC_2_20_or_later
+
+# Force using the BFD linker during the toolchain build
+config LIBC_glibc_familly
+ bool
+ default y
+ select BINUTILS_FORCE_LD_BFD
+
+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_EXTRA_CC_ARGS
+ string
+ prompt "gcc extra flags"
+ default ""
+ help
+ Extra flags to pass gcc when building.
+
+ Seldom used, except for sparc64 which seems to need the flag -64
+ to be passed onto gcc.
+
+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_GLIBC_USE_PORTS
+ bool
+ prompt "Use the ports addon"
+ depends on !LIBC_GLIBC_2_20_or_later
+ help
+ The ports addon contains some architecture ports that are not available
+ in the official distribution.
+
+ For example, this is the case for ARM with glibc-2.4 and above.
+
+ Say n only if you're sure that your architecture is in the official
+ distribution for your chosen version.
+
+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.
+
+ Eg.: crypt (for very old libces)
+
+if LIBC_GLIBC_USE_PORTS || ( LIBC_ADDONS_LIST != "" )
+comment "WARNING !!! "
+comment "| For glibc >= 2.8, it can happen that the tarballs "
+comment "| for the addons are not available for download. "
+comment "| If that happens, bad luck... Try a previous version "
+comment "| or try again later... :-( "
+endif
+
+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). "
+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.in b/config/libc/mingw.in
index 6997600..895bc81 100644
--- a/config/libc/mingw.in
+++ b/config/libc/mingw.in
@@ -16,6 +16,36 @@ choice
# Don't remove next line
# CT_INSERT_VERSION_BELOW
+
+config WINAPI_V_DEVEL
+ bool
+ prompt "devel"
+ depends on EXPERIMENTAL
+
+config WINAPI_V_4_0_2
+ bool
+ prompt "4.0.2"
+
+config WINAPI_V_4_0_1
+ bool
+ prompt "4.0.1"
+
+config WINAPI_V_4_0_0
+ bool
+ prompt "4.0.0"
+
+config WINAPI_V_3_1_0
+ bool
+ prompt "3.1.0"
+
+config WINAPI_V_3_0_0
+ bool
+ prompt "3.0.0"
+
+config WINAPI_V_2_0_8
+ bool
+ prompt "2.0.8"
+
config WINAPI_V_2_0_7
bool
prompt "2.0.7"
@@ -31,6 +61,13 @@ config WINAPI_VERSION
prompt "Windows API version" if WINAPI_V_select
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
+ default "devel" if WINAPI_V_DEVEL
+ 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.1.0" if WINAPI_V_3_1_0
+ default "3.0.0" if WINAPI_V_3_0_0
+ 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
diff --git a/config/libc/musl.in b/config/libc/musl.in
index 0ab7229..9ecae01 100644
--- a/config/libc/musl.in
+++ b/config/libc/musl.in
@@ -18,14 +18,14 @@ choice
# Don't remove next line
# CT_INSERT_VERSION_BELOW
-config LIBC_MUSL_V_1_1_5
+config LIBC_MUSL_V_1_1
bool
- prompt "1.1.5 (Mainline)"
+ prompt "1.1.9 (Mainline)"
depends on EXPERIMENTAL
-config LIBC_MUSL_V_1_0_4
+config LIBC_MUSL_V_1_0
bool
- prompt "1.0.4 (Stable)"
+ prompt "1.0.5 (Stable)"
config LIBC_MUSL_V_CUSTOM
bool
@@ -38,6 +38,6 @@ config LIBC_VERSION
string
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
- default "1.1.5" if LIBC_MUSL_V_1_1_5
- default "1.0.4" if LIBC_MUSL_V_1_0_4
+ default "1.1.9" if LIBC_MUSL_V_1_1
+ default "1.0.5" if LIBC_MUSL_V_1_0
default "custom" if LIBC_MUSL_V_CUSTOM
diff --git a/config/libc/newlib.in b/config/libc/newlib.in
index 8109354..67ecf54 100644
--- a/config/libc/newlib.in
+++ b/config/libc/newlib.in
@@ -13,6 +13,23 @@
## help array of processors, and will usually work on any architecture with
## help the addition of a few low-level routines.
+config CC_NEWLIB_SHOW_LINARO
+ bool
+ prompt "Show Linaro versions"
+ help
+ Linaro is maintaining some advanced/more stable/experimental versions
+ of newlib, especially for the ARM architecture.
+
+ Those versions have not been blessed by the newlib comunity (nor have they
+ been cursed either!), but they look to be pretty much stable, and even
+ more stable than the upstream versions. YMMV...
+
+ If you do not know what this Linaro stuff is, then simply say 'n' here,
+ and rest in peace. OTOH, if you know what you are doing, you will be
+ able to use and enjoy :-) the Linaro versions by saying 'y' here.
+
+ Linaro: http://www.linaro.org/
+
choice
bool
prompt "newlib version"
@@ -22,6 +39,7 @@ choice
config LIBC_NEWLIB_LINARO_V_2_2_0
bool
prompt "Linaro 2.2.0-2015.01"
+ depends on CC_NEWLIB_SHOW_LINARO
config LIBC_NEWLIB_V_2_2_0
bool
@@ -30,6 +48,7 @@ config LIBC_NEWLIB_V_2_2_0
config LIBC_NEWLIB_LINARO_V_2_1_0
bool
prompt "Linaro 2.1.0-2014.09"
+ depends on CC_NEWLIB_SHOW_LINARO
config LIBC_NEWLIB_V_2_1_0
bool