kumquat-buildroot/toolchain/toolchain-common.in
Thomas Petazzoni fff711786a toolchain: Improve C library option selection
Turn BR2_LARGEFILE, BR2_INET_IPV6, BR2_INET_RPC, BR2_USE_WCHAR,
BR2_ENABLE_LOCALE and BR2_PROGRAM_INVOCATION into hidden options.

Then, for Buildroot toolchains, external toolchains and Crosstool-NG
toolchains, provide visible options that selects the hidden options.

This allows :

 * To show a different label and help text in the case of Buildroot
   toolchain (do you want to enable feature X ?) and in the case of
   external toolchain (is feature X available in your toolchain ?)

 * To not show any option when a glibc external toolchain is selected
   (since glibc is assumed to support all of largefile, IPv6, RPC,
   WCHAR, locale and program invocation) and have them all selected in
   that case.

There is some amount of duplication between Buildroot toolchain config
options and Crosstool-NG toolchain config options, because kconfig
doesn't allow to source the same Config.in file twice (even if under
mutually exclusive conditions). This duplication is more readable that
the hack that consists in splitting files in multiple pieces.

However, this commit changes the name of the options visible in the
configuration interface, so existing .config files will have to be
updated accordingly.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-12-13 21:54:28 +01:00

139 lines
4.3 KiB
Plaintext

# Generic toolchain options
# we want gdb config in the middle of both source and external
# toolchains, but mconf won't let us source the same file twice,
# so put it here instead
source "toolchain/gdb/Config.in"
config BR2_LARGEFILE
bool
config BR2_INET_IPV6
bool
config BR2_INET_RPC
bool
config BR2_USE_WCHAR
bool
config BR2_ENABLE_LOCALE
bool
config BR2_PROGRAM_INVOCATION
bool
config BR2_ENABLE_LOCALE_PURGE
bool "Purge unwanted locales"
help
Explicitly specify what locales to install on target. If N
then all locales supported by packages are installed.
config BR2_ENABLE_LOCALE_WHITELIST
string "Locales to keep"
default "C en_US de fr"
depends on BR2_ENABLE_LOCALE_PURGE
help
Whitespace seperated list of locales to allow on target.
Locales not listed here will be removed from the target.
See 'locale -a' on your host for a list of locales available
on your build host, or have a look in /usr/share/locale in
the target file system for available locales.
Notice that listing a locale here doesn't guarantee that it
will be available on the target - That purely depends on the
support for that locale in the selected packages.
# glibc and eglibc directly include gettext, so a separatly compiled
# gettext isn't needed and shouldn't be built to avoid conflicts. Some
# packages always need gettext, other packages only need gettext when
# locale support is enabled. See the documentation for how packages
# should rely on the following two options.
config BR2_NEEDS_GETTEXT
bool
default y if BR2_TOOLCHAIN_BUILDROOT
default y if BR2_TOOLCHAIN_EXTERNAL_UCLIBC
config BR2_NEEDS_GETTEXT_IF_LOCALE
bool
default y if (BR2_NEEDS_GETTEXT && BR2_ENABLE_LOCALE)
config BR2_PREFER_SOFT_FLOAT
bool
default y if BR2_arm || BR2_armeb || BR2_avr32 || BR2_mips || BR2_mipsel
config BR2_SOFT_FLOAT
bool "Use software floating point by default"
depends on BR2_arm || BR2_armeb || BR2_avr32 || BR2_mips || BR2_mipsel || BR2_powerpc
default $(BR2_PREFER_SOFT_FLOAT)
help
If your target CPU does not have a Floating Point Unit (FPU) or a
kernel FPU emulator, but you still wish to support floating point
functions, then everything will need to be compiled with soft
floating point support (-msoft-float).
config BR2_USE_SSP
bool "Enable stack protection support"
help
Enable stack smashing protection support using GCCs
-fstack-protector[-all] option.
See http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt
for details.
choice
prompt "Thread library implementation"
default BR2_PTHREADS_OLD
help
If you are building your own toolchain then select the type of
libpthreads you want to use.
Not all thread variants work with all versions of uClibc,
the "linuxthreads (stable/old)" may be a working fallback
if you need threading at all.
If you have an external binary toolchain then select the type
of libpthreads it was built with.
config BR2_PTHREADS_NONE
bool "none"
config BR2_PTHREADS
bool "linuxthreads"
config BR2_PTHREADS_OLD
bool "linuxthreads (stable/old)"
config BR2_PTHREADS_NATIVE
bool "Native POSIX Threading (NPTL)"
depends on BR2_UCLIBC_VERSION_SNAPSHOT
endchoice
config BR2_GCC_CROSS_CXX
bool
help
If you are building your own toolchain and want to build
a C++ cross-compiler this needs to be enabled.
If you have an external binary toolchain that has a C++ compiler
and you want to use it then you need to enable this option.
config BR2_INSTALL_LIBSTDCPP
bool "Build/install c++ compiler and libstdc++?"
select BR2_GCC_CROSS_CXX
depends on !(! BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE && BR2_ENABLE_LOCALE && BR2_UCLIBC_VERSION_0_9_31)
help
If you are building your own toolchain and want to build and install
the C++ compiler and library then you need to enable this option.
If you have an external toolchain that has been built with C++
support and you want to use the compiler / library then you need
to select this option.
comment "C++ support broken in uClibc 0.9.31 with locale enabled with gcc 4.2"
depends on !BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE && BR2_ENABLE_LOCALE && BR2_UCLIBC_VERSION_0_9_31
config BR2_TARGET_OPTIMIZATION
string "Target Optimizations"
default "-pipe"
help
Optimizations to use when building for the target host.
NOTE: gcc optimization level is defined in build options.