buildrootschalter/toolchain/toolchain-crosstool-ng/Config.in
Thomas Petazzoni a0b6faaab4 gdb: convert to the package infrastructure
This commit converts gdb to the package infrastructure, and therefore
moves it from toolchain/gdb to package/gdb.

The target package is now visible in "Package selection for the
target" => "Debugging, profiling and benchmark". The main option,
"gdb", forcefully selects the "gdbserver" sub-option by
default. Another sub-option, "full debugger" allows to install the
complete gdb on the target. When this option is enabled, then
"gdbserver" is no longer forcefully selected. This ensures that at
least gdbserver or the full debugger gets built/installed, so that the
package is not a no-op.

The host debugger is still enabled through a configuration option in
"Toolchain". It is now visible regardless of the toolchain type (it
used to be hidden for External Toolchains). The configuration options
relative to the host debugger are now in package/gdb/Config.in.host,
similar to how we have package/binutils/Config.in.host.

Since gdb is now a proper package, it is no longer allowed to 'select
BR2_PTHREADS_DEBUG' to ensure thread debugging is available when
needed. Instead, it now 'depends on
BR2_TOOLCHAIN_HAS_THREADS_DEBUG'. This option, in turn, is selected by
the different toolchain backends when appropriate. The
'BR2_TOOLCHAIN_HAS_THREADS_DEBUG_IF_NEEDED' option is removed, since
we no longer need to know when it is allowed to 'select
BR2_PTHREADS_DEBUG'. Also, the 'BR2_PTHREADS_DEBUG' option is moved to
appear right below the thread implementation selection (in the case of
the Buildroot toolchain backend).

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-04-11 21:46:32 +02:00

139 lines
4.1 KiB
Plaintext

# Selection options for crosstool-NG
if BR2_TOOLCHAIN_CTNG
choice
prompt "Crosstool-NG C library"
config BR2_TOOLCHAIN_CTNG_uClibc
bool "uClibc"
# Although eglibc can be configured to opt-out some features,
# let's not deal with that for the time being, it's complex...
config BR2_TOOLCHAIN_CTNG_eglibc
bool "eglibc"
select BR2_LARGEFILE
select BR2_INET_IPV6
# Our default ct-ng configuration uses eglibc 2.12, which has
# native RPC support
select BR2_TOOLCHAIN_HAS_NATIVE_RPC
select BR2_ENABLE_LOCALE
select BR2_USE_WCHAR
config BR2_TOOLCHAIN_CTNG_glibc
bool "glibc"
select BR2_LARGEFILE
select BR2_INET_IPV6
# Our default ct-ng configuration uses glibc 2.14.1, which
# does not have native RPC support
select BR2_ENABLE_LOCALE
select BR2_USE_WCHAR
endchoice # C library
config BR2_TOOLCHAIN_CTNG_LIBC
string
default "uClibc" if BR2_TOOLCHAIN_CTNG_uClibc
default "eglibc" if BR2_TOOLCHAIN_CTNG_eglibc
default "glibc" if BR2_TOOLCHAIN_CTNG_glibc
config BR2_TOOLCHAIN_CTNG_CONFIG
string "crosstool-NG configuration file to use"
default "toolchain/toolchain-crosstool-ng/crosstool-ng.config-uClibc" if BR2_TOOLCHAIN_CTNG_uClibc
default "toolchain/toolchain-crosstool-ng/crosstool-ng.config-eglibc" if BR2_TOOLCHAIN_CTNG_eglibc
default "toolchain/toolchain-crosstool-ng/crosstool-ng.config-glibc" if BR2_TOOLCHAIN_CTNG_glibc
help
Enter here the path to the crosstool-NG .config file to use.
Generally, the default crosstool-NG configuration files bundled with
Buildroot work fine in most situations. Use 'make ctng-menuconfig'
from the command line, for expert customization of your toolchain.
If unsure, keep the default value.
if BR2_TOOLCHAIN_CTNG_uClibc
comment "Toolchain Options"
config BR2_TOOLCHAIN_CTNG_uClibc_LARGEFILE
bool "Enable large file (files > 2 GB) support"
select BR2_LARGEFILE
help
Enable this option if you want your toolchain to support
files bigger than 2 GB.
config BR2_TOOLCHAIN_CTNG_uClibc_INET_IPV6
bool "Enable IPv6 support"
select BR2_INET_IPV6
help
Enable this option if you want your toolchain to support
IPv6.
config BR2_TOOLCHAIN_CTNG_uClibc_INET_RPC
bool "Enable RPC support"
select BR2_TOOLCHAIN_HAS_NATIVE_RPC
help
Enable this option if you want your toolchain to support
RPC (needed for NFS, for example).
config BR2_TOOLCHAIN_CTNG_uClibc_WCHAR
bool "Enable WCHAR support"
select BR2_USE_WCHAR
help
Enable this option if you want your toolchain to support
wide characters (i.e characters longer than 8 bits, needed
for locale support).
config BR2_TOOLCHAIN_CTNG_uClibc_LOCALE
bool "Enable toolchain locale/i18n support"
select BR2_TOOLCHAIN_CTNG_uClibc_WCHAR
select BR2_ENABLE_LOCALE
help
Enable this option if you want your toolchain to support
localization and internationalization.
endif # BR2_TOOLCHAIN_CTNG_uClibc
config BR2_TOOLCHAIN_CTNG_CXX
bool "Enable C++ support"
select BR2_INSTALL_LIBSTDCPP
help
Enable this option if you want your toolchain to support the
C++ language and you want C++ libraries to be installed on
your target system.
choice
prompt "Thread library implementation"
default BR2_TOOLCHAIN_CTNG_THREADS_NPTL
help
Enable thread support and select thread implementation. With
glibc, thread support is mandatory but several
implementations are available. With uClibc, thread support
is optional, and when enabled, several implementations are
available. However, not all thread variants work with all
versions of uClibc for all architectures, the "linuxthreads
(stable/old)" may be a working fallback.
config BR2_TOOLCHAIN_CTNG_THREADS_NONE
bool "none"
depends on BR2_TOOLCHAIN_CTNG_uClibc
config BR2_TOOLCHAIN_CTNG_THREADS_PTHREADS
bool "linuxthreads"
select BR2_TOOLCHAIN_HAS_THREADS
select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
config BR2_TOOLCHAIN_CTNG_THREADS_PTHREADS_OLD
bool "linuxthreads (stable/old)"
select BR2_TOOLCHAIN_HAS_THREADS
select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
depends on BR2_TOOLCHAIN_CTNG_uClibc
config BR2_TOOLCHAIN_CTNG_THREADS_NPTL
bool "Native POSIX Threading (NPTL)"
select BR2_TOOLCHAIN_HAS_THREADS
select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
endchoice
endif # BR2_TOOLCHAIN_CTNG