yann@922: # This file contains the common configuration options yann@922: # that apply to both glibc and eglibc. yann@922: yann@2444: # Some architectures require the ports addon. List them one by one here: yann@2444: # This list must be carefully in sync with the architectures names yann@2444: # we can find in config/arch/* yann@2444: config LIBC_GLIBC_MAY_FORCE_PORTS yann@2444: bool yann@2444: default y if ARCH_arm yann@2444: default y if ARCH_mips yann@2444: select LIBC_GLIBC_USE_PORTS yann@2444: yann@2377: # Force using the BFD linker during the toolchain build yann@2377: config LIBC_glibc_familly yann@2377: bool yann@2377: default y yann@2377: select BINUTILS_FORCE_LD_BFD yann@2377: yann@2467: config LIBC_GLIBC_EXTRA_CONFIG_ARRAY yann@922: string yann@922: prompt "extra config" yann@922: default "" yann@922: help yann@922: Extra flags to pass onto ./configure when configuring. yann@922: yann@2469: You can enter multiple arguments here, and arguments can contain spaces yann@2469: if they are properly quoted (or escaped, but prefer quotes). Eg.: yann@2469: --with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space yann@922: yann@1232: config LIBC_GLIBC_CONFIGPARMS yann@1232: string yann@1232: prompt "Extra config params (READ HELP)" yann@1232: default "" if ! ARCH_sh yann@1232: default "no-z-defs=yes" if ARCH_sh yann@1232: help yann@1232: Some architectures need to set options in the file configparms. yann@1232: This is the case for sh3/4, which really need to set configparms yann@1232: to "no-z-defs=yes" as of gcc-3.4/glibc-2.3.2. yann@1232: yann@1232: Unless you are building a toolchain for sh3/4, you should leave that empty. yann@1232: yann@1627: Note: If you need to pass more than one value, separate them with yann@1627: '\n'. Eg.: var1=val1\nvar2=val2 yann@1232: yann@922: config LIBC_GLIBC_EXTRA_CFLAGS yann@922: string yann@922: prompt "extra target CFLAGS" yann@922: default "" yann@922: help yann@922: Extra target CFLAGS to use when building. yann@922: yann@922: config LIBC_EXTRA_CC_ARGS yann@922: string yann@922: prompt "gcc extra flags" yann@922: default "" yann@922: help yann@922: Extra flags to pass gcc when building. yann@922: yann@922: Seldom used, except for sparc64 which seems to need the flag -64 yann@922: to be passed onto gcc. yann@922: yann@2312: config LIBC_ENABLE_FORTIFIED_BUILD yann@2312: bool yann@2312: prompt "Enable fortified build (EXPERIMENTAL)" yann@2312: depends on EXPERIMENTAL yann@2312: help yann@2312: If you say 'y' here, then glibc will be using fortified versions yann@2312: of functions with format arguments (eg. vsyslog, printf...), and yann@2312: do a sanity check on the format at runtime, to avoid some of the yann@2312: common format string attacks. yann@2312: yann@2312: This is currently not supported, and will most probably result in yann@2312: a broken build, with an error message like: yann@2312: ../misc/syslog.c: In function '__vsyslog_chk': yann@2312: ../misc/syslog.c:123: sorry, unimplemented: inlining failed in yann@2312: call to 'syslog': function body not available yann@2312: yann@2312: If you are brave enough and want to debug the issue, then say 'y' yann@2312: here. Otherwise, be still and say 'n' (the default). ;-) yann@2312: yann@2312: bryanhundven@2180: config LIBC_DISABLE_VERSIONING bryanhundven@2180: bool bryanhundven@2180: prompt "Disable symbols versioning" bryanhundven@2180: help bryanhundven@2180: Do not include versioning information in the library objects. bryanhundven@2180: bryanhundven@2181: config LIBC_OLDEST_ABI bryanhundven@2181: string bryanhundven@2181: prompt "Oldest supported ABI" bryanhundven@2181: default "" bryanhundven@2181: help bryanhundven@2181: Set the oldest ABI supported by the C library. bryanhundven@2181: bryanhundven@2181: Setting this option, for example, to 2.2 will provide ABI support bryanhundven@2181: back to (e)glibc-2.2. bryanhundven@2181: bryanhundven@2181: If this option is not set, (e)glibc will choose for you. bryanhundven@2181: yann@2289: config LIBC_GLIBC_FORCE_UNWIND yann@2289: bool yann@2289: prompt "Force unwind support (READ HELP!)" yann@2289: help yann@2289: If your toolchain fails building while building the C library yann@2289: start files, or the complete C library, with a message like: yann@2289: configure: error: forced unwind support is required yann@2289: yann@2289: then you may try setting this to 'y'. Otherwise, leave it to 'n'. yann@2289: yann@2289: The issue seems to be related to building NPTL on old versions yann@2289: of glibc (and possibly eglibc as well) on some architectures yann@2289: (seen on s390, s390x and x86_64). yann@2289: yann@922: config LIBC_GLIBC_USE_PORTS yann@922: bool yann@922: prompt "Use the ports addon" yann@922: help yann@922: The ports addon contains some architecture ports that are not available yann@922: in the official distribution. yann@922: yann@1315: For example, this is the case for ARM with glibc-2.4 and above. yann@922: yann@922: Say n only if you're sure that your architecture is in the official yann@922: distribution for your chosen version. yann@922: yann@922: config LIBC_ADDONS_LIST yann@922: string yann@922: prompt "Extra addons" yann@922: default "" yann@922: help yann@922: Extra addons to include. Space separated list. yann@922: yann@922: You need to specify neither linuxthreads nor nptl, as they are added yann@922: automagically for you depending on the threading model you choosed yann@922: earlier. yann@922: yann@922: Eg.: crypt (for very old libces) yann@922: yann@1759: if LIBC_GLIBC_USE_PORTS || ( LIBC_ADDONS_LIST != "" ) yann@1759: comment "WARNING !!! " yann@1759: comment "| For glibc >= 2.8, it can happen that the tarballs " yann@1759: comment "| for the addons are not available for download. " yann@1759: comment "| If that happens, bad luck... Try a previous version " yann@1759: comment "| or try again later... :-( " yann@1314: endif yann@1314: benoit@2585: config LIBC_LOCALES benoit@2585: bool benoit@2585: prompt "Build and install locales" benoit@2585: help benoit@2585: Whether to build and install the libc locale files for the target, benoit@2585: which is required in order to support internationalization. benoit@2585: benoit@2587: if LIBC_glibc && LIBC_LOCALES benoit@2587: comment "WARNING! " benoit@2587: comment "| The built locales will be usable if and only if the build " benoit@2587: comment "| machine and the target: " benoit@2587: comment "| - have the same endianness, " benoit@2587: comment "| - and have the same alignment requirements for uint32_t. " benoit@2587: comment "| You will have to check by yourself (for now). " benoit@2587: endif # LIBC_glibc && LIBC_LOCALES benoit@2587: yann@922: if KERNEL_linux yann@922: yann@2453: choice LIBC_GLIBC_SUPPORTED_KERNEL yann@922: bool yann@922: prompt "Minimum supported kernel version" yann@922: default LIBC_GLIBC_KERNEL_VERSION_AS_HEADERS yann@922: yann@922: config LIBC_GLIBC_KERNEL_VERSION_NONE yann@922: bool yann@922: prompt "Let ./configure decide" yann@922: help yann@922: Let ./configure decide what minimum kernel version glibc/eglibc yann@922: will be able to run against. yann@922: antony@2564: This will include legacy compatibility code for older kernels in yann@922: the C library, thus ensuring that it will run on a large number yann@922: of old kernels. yann@922: yann@922: The minimum kernel version supported will be dependent upon the yann@922: target you build for. For example: yann@922: alpha*-*-linux-gnu Requires Linux 2.6.9 for NPTL yann@922: sh[34]-*-linux-gnu Requires Linux 2.6.11 yann@922: powerpc* Requires Linux 2.4.19 yann@922: arm*-*-linux-*gnueabi Requires Linux 2.6.16 yann@922: yann@922: config LIBC_GLIBC_KERNEL_VERSION_AS_HEADERS yann@922: bool yann@922: prompt "Same as kernel headers (default)" yann@922: help antony@2564: Normally, you'll want glibc/eglibc to run against the same kernel yann@922: version as the one used for the headers. yann@922: yann@922: This is the default. yann@922: yann@922: If enabled, crosstool-ng will use the chosen version of kernel yann@922: headers for the glibc minimum kernel version supported, which is yann@922: what gets passed to "--enable-kernel=" when configuring glibc. yann@922: yann@922: Enabling this will ensure that no legacy compatibility code for yann@922: older kernels is built into your C libraries, but it will yann@922: be unable to run on kernel versions older than whichever kernel yann@922: headers version you've built the toolchain for. yann@922: yann@922: If you know for sure that your toolchain will never need to build yann@922: applications that will run under a kernel version older than your yann@922: chosen kernel headers version (CT_KERNEL_VERSION), you can choose yann@922: "y" here. yann@922: yann@922: config LIBC_GLIBC_KERNEL_VERSION_CHOSEN yann@922: bool yann@922: prompt "Specific kernel version" yann@922: help yann@922: Specify the earliest Linux kernel version you want glibc to yann@922: include support for. This does not have to match the kernel yann@922: headers version used for your toolchain. This controls what is yann@922: passed to the "--enable-kernel=" option to the glibc configure yann@922: script. yann@922: yann@922: If you want to be able to statically link programs with your yann@922: toolchain's C library, make sure this kernel version is lower than yann@922: all kernels you wish to support to avoid "FATAL: kernel too old" yann@922: errors. The higher the version you specify, the less legacy code yann@922: will be built into libc. yann@922: yann@922: Most people can leave this at the default value of "2.6.9". yann@922: yann@922: if LIBC_GLIBC_KERNEL_VERSION_CHOSEN yann@922: yann@922: config LIBC_GLIBC_MIN_KERNEL_VERSION yann@922: string yann@922: prompt "Minimum kernel version to support" yann@922: default "2.6.9" yann@922: help yann@922: Enter here the lowest kernel version glibc/eglibc will be able to yann@922: run against. yann@922: yann@922: The minimum kernel version supported will be dependent upon the yann@922: target you build for. For example: yann@922: alpha*-*-linux-gnu Requires Linux 2.6.9 for NPTL yann@922: sh[34]-*-linux-gnu Requires Linux 2.6.11 yann@922: powerpc* Requires Linux 2.4.19 yann@922: arm*-*-linux-*gnueabi Requires Linux 2.6.16 yann@922: yann@922: Note that no sanity check is performed by crosstool-NG to ensure yann@922: that the value you enter here is appropriate for your target. yann@922: yann@922: endif # LIBC_GLIBC_KERNEL_VERSION_CHOSEN yann@922: yann@922: endchoice yann@922: yann@922: config LIBC_GLIBC_MIN_KERNEL yann@922: string yann@922: default "" if LIBC_GLIBC_KERNEL_VERSION_NONE yann@922: default KERNEL_VERSION if LIBC_GLIBC_KERNEL_VERSION_AS_HEADERS yann@1211: default LIBC_GLIBC_MIN_KERNEL_VERSION if LIBC_GLIBC_KERNEL_VERSION_CHOSEN yann@922: yann@922: endif # KERNEL_linux