2010-09-19 21:54:09 +02:00
|
|
|
# Selection options for crosstool-NG
|
|
|
|
|
|
|
|
if BR2_TOOLCHAIN_CTNG
|
|
|
|
|
|
|
|
choice
|
|
|
|
prompt "Crosstool-NG C library"
|
|
|
|
|
|
|
|
config BR2_TOOLCHAIN_CTNG_uClibc
|
|
|
|
bool "uClibc"
|
2013-06-30 21:29:09 +02:00
|
|
|
select BR2_TOOLCHAIN_USES_UCLIBC
|
2010-09-19 21:54:09 +02:00
|
|
|
|
|
|
|
# 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"
|
2012-11-03 18:47:49 +01:00
|
|
|
# Our default ct-ng configuration uses eglibc 2.12, which has
|
|
|
|
# native RPC support
|
|
|
|
select BR2_TOOLCHAIN_HAS_NATIVE_RPC
|
2013-06-30 21:29:09 +02:00
|
|
|
select BR2_TOOLCHAIN_USES_GLIBC
|
2010-09-19 21:54:09 +02:00
|
|
|
|
|
|
|
config BR2_TOOLCHAIN_CTNG_glibc
|
|
|
|
bool "glibc"
|
2012-12-20 13:16:14 +01:00
|
|
|
# Our default ct-ng configuration uses glibc 2.14.1, which
|
|
|
|
# does not have native RPC support
|
2013-06-30 21:29:09 +02:00
|
|
|
select BR2_TOOLCHAIN_USES_GLIBC
|
2010-09-19 21:54:09 +02:00
|
|
|
|
|
|
|
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"
|
2011-05-22 00:05:40 +02:00
|
|
|
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
|
2010-09-19 21:54:09 +02:00
|
|
|
help
|
2013-01-09 13:52:12 +01:00
|
|
|
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.
|
|
|
|
|
2011-05-22 00:05:40 +02:00
|
|
|
If unsure, keep the default value.
|
2010-09-19 21:54:09 +02:00
|
|
|
|
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 17:27:37 +01:00
|
|
|
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"
|
2012-11-03 18:47:49 +01:00
|
|
|
select BR2_TOOLCHAIN_HAS_NATIVE_RPC
|
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 17:27:37 +01:00
|
|
|
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
|
|
|
|
|
2010-12-13 17:27:41 +01:00
|
|
|
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.
|
|
|
|
|
2010-12-13 17:27:48 +01:00
|
|
|
choice
|
|
|
|
prompt "Thread library implementation"
|
2012-05-09 11:17:07 +02:00
|
|
|
default BR2_TOOLCHAIN_CTNG_THREADS_NPTL
|
2010-12-13 17:27:48 +01:00
|
|
|
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
|
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-07 02:04:33 +02:00
|
|
|
select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
|
2010-12-13 17:27:48 +01:00
|
|
|
|
|
|
|
config BR2_TOOLCHAIN_CTNG_THREADS_PTHREADS_OLD
|
|
|
|
bool "linuxthreads (stable/old)"
|
|
|
|
select BR2_TOOLCHAIN_HAS_THREADS
|
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-07 02:04:33 +02:00
|
|
|
select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
|
2010-12-13 17:27:48 +01:00
|
|
|
depends on BR2_TOOLCHAIN_CTNG_uClibc
|
|
|
|
|
|
|
|
config BR2_TOOLCHAIN_CTNG_THREADS_NPTL
|
|
|
|
bool "Native POSIX Threading (NPTL)"
|
|
|
|
select BR2_TOOLCHAIN_HAS_THREADS
|
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-07 02:04:33 +02:00
|
|
|
select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
|
2010-12-13 17:27:48 +01:00
|
|
|
endchoice
|
|
|
|
|
2010-09-19 21:54:09 +02:00
|
|
|
endif # BR2_TOOLCHAIN_CTNG
|