diff options
Diffstat (limited to 'config/libc')
-rw-r--r-- | config/libc/eglibc.in | 240 | ||||
-rw-r--r-- | config/libc/eglibc.in.2 | 1 | ||||
-rw-r--r-- | config/libc/glibc-eglibc.in-common | 268 | ||||
-rw-r--r-- | config/libc/glibc.in | 26 | ||||
-rw-r--r-- | config/libc/glibc.in.2 | 268 | ||||
-rw-r--r-- | config/libc/mingw.in | 37 | ||||
-rw-r--r-- | config/libc/musl.in | 12 | ||||
-rw-r--r-- | config/libc/newlib.in | 19 |
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 |