mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2024-12-30 09:38:52 +00:00
d58e740be8
- Dump CT_LIBC_EXTRA_CC_ARGS: instead, treat CT_LIBC_EXTRA_CFLAGS as arguments to CC (or they are not applied to .S, for example). Combine them with multi_flags and CT_TARGET_CFLAGS in proper order. - Analyze thus combined flags to determine --with-fp/--without-fp. Don't need to check CT_ARCH_FLOAT - it is reflected in CT_TARGET_CFLAGS anyway. Check more soft/hard float options defined on different architectures. - Drop checking for endianness flags: they are not reflected in configure arguments in any way, and they're already present in CFLAGS (either via multi_flags or via CT_TARGET_CFLAGS). Besides, CT_ARCH_ENDIAN_OPT was actually called CT_ARCH_ENDIAN_CFLAG, so this was a no-op anyway. Signed-off-by: Alexey Neyman <stilor@att.net>
258 lines
8.9 KiB
Groff
258 lines
8.9 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_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
|