summaryrefslogtreecommitdiff
path: root/config/libc/glibc.in.2
diff options
context:
space:
mode:
Diffstat (limited to 'config/libc/glibc.in.2')
-rw-r--r--config/libc/glibc.in.2268
1 files changed, 267 insertions, 1 deletions
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