mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2024-12-21 05:43:09 +00:00
4d49730711
Restore old kernel/glibc versions
243 lines
8.5 KiB
Groff
243 lines
8.5 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/*
|
|
|
|
# Ports were integrated into the main tarball in 2.17
|
|
config LIBC_GLIBC_PORTS_EXTERNAL
|
|
def_bool y
|
|
depends on !LIBC_GLIBC_2_17_or_later
|
|
|
|
config LIBC_GLIBC_NEEDS_PORTS
|
|
def_bool y
|
|
depends on ARCH_alpha || ARCH_arm || ARCH_m68k || ARCH_mips || ARCH_powerpc
|
|
|
|
# Ports are no longer an add-on starting with 2.20
|
|
config LIBC_GLIBC_USE_PORTS
|
|
def_bool y
|
|
depends on LIBC_GLIBC_NEEDS_PORTS && !LIBC_GLIBC_2_20_or_later
|
|
|
|
# Force using the BFD linker during the toolchain build
|
|
config LIBC_glibc_family
|
|
bool
|
|
default y
|
|
select BINUTILS_FORCE_LD_BFD_DEFAULT
|
|
|
|
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_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_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 and on libc version selected.
|
|
|
|
Also, do not specify ports even if applicable to the selected libc
|
|
version/architecture; it is selected automatically.
|
|
|
|
Eg.: libidn
|
|
|
|
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
|