| # 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_MAY_FORCE_PORTS |
| bool |
| default y if ARCH_arm |
| default y if ARCH_mips |
| select LIBC_GLIBC_USE_PORTS |
| |
| # 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" |
| 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 |