mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2024-12-27 00:11:05 +00:00
cd47c091ba
As posted on http://www.eglibc.org/ ==================== EGLIBC is no longer developed and such goals are now being addressed directly in GLIBC. ==================== I'm not interested in maintaining build support for unsupported software. Older branches of crosstool-ng continue to have eglibc support. If you find issues with older branches, I'm always open to pull requests. Removing eglibc also frees up glibc cleanup and build optimization. Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
268 lines
9.2 KiB
Groff
268 lines
9.2 KiB
Groff
# 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
|