kumquat-buildroot/toolchain/toolchain-external/Config.in
Peter Korsgaard 5931db0de9 gdb: fix kconfig dependency handling with !BR_TOOLCHAIN_BUILDROOT
Newer versions of GDB need pthread debugging support if threads are
enabled, which is always the case for glibc but is a configure option
for uClibc.

We have solved this for internal toolchains by selecting the
BR2_PTHREAD_DEBUG option from the GDB selection if needed, but as this
option isn't available when ctng/external toolchains are used, mconf
prints ugly warnings and the build may fail if an external uClibc
toolchain without pthread debugging support is used.

Fix it by introducing 2 more hidden config options:
 - BR2_TOOLCHAIN_HAS_THREADS_DEBUG
 - BR2_TOOLCHAIN_HAS_THREADS_DEBUG_IF_NEEDED

The first tells us if the toolchain HAS pthreads debugging support,
and is checked by check_uclibc_feature in helper.mk for external uClibc
based toolchains.

The second tells us if the toolchain is ABLE TO provide pthreads debugging
support if threads are enabled, either because it's an internal toolchain
where we can force enable it or an external glibc/eglibc toolchain or
uClibc with the option enabled.

Crosstool-ng forcibly enables this support, so those will always work.
The preconfigured uClibc-based toolchains we have also all enable it.

Finally, show a comment if this isn't the case so the (external toolchain)
user knows why. This is placed outside the choice option, as menuconfig
has a bug where it doesn't show choice selections which only contain
comments.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-11-24 14:26:52 +01:00

400 lines
15 KiB
Plaintext

if BR2_TOOLCHAIN_EXTERNAL
choice
prompt "Toolchain"
config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201103
bool "Sourcery CodeBench ARM 2011.03"
depends on BR2_arm
select BR2_TOOLCHAIN_EXTERNAL_GLIBC
select BR2_INSTALL_LIBSTDCPP
help
Sourcery CodeBench toolchain for the ARM architecture, from
Mentor Graphics. It uses gcc 4.5.2, binutils 2.20.51, glibc
2.13 and gdb 7.2.50, kernel headers 2.6.38. It has support
for the following variants:
- ARMv5TE, little endian, soft-float, glibc
- ARMv4T, little endian, soft-float, glibc
- ARMv7-A, Thumb 2, little endian, soft-float, glibc
config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201009
bool "Sourcery CodeBench ARM 2010.09"
depends on BR2_arm
select BR2_TOOLCHAIN_EXTERNAL_GLIBC
select BR2_INSTALL_LIBSTDCPP
help
Sourcery CodeBench toolchain for the ARM architecture, from
Mentor Graphics. It uses gcc 4.5.1, binutils 2.20, glibc
2.11 and gdb 7.2.50, kernel headers 2.6.35.2. It has support
for the following variants:
- ARMv5TE, little endian, soft-float, glibc
- ARMv4T, little endian, soft-float, glibc
- ARMv7-A, Thumb 2, little endian, soft-float, glibc
config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM2010Q1
bool "Sourcery CodeBench ARM 2010q1"
depends on BR2_arm
select BR2_TOOLCHAIN_EXTERNAL_GLIBC
select BR2_INSTALL_LIBSTDCPP
help
Sourcery CodeBench toolchain for the ARM architecture, from
Mentor Graphics. It uses gcc 4.4.1, binutils 2.19, glibc
2.11, gdb 7.0.50 and kernel headers 2.6.32. It has support
for the following variants:
- ARMv5T, little endian, soft-float, glibc
- ARMv4T, little endian, soft-float, glibc
- ARMv7-A, Thumb 2, little endian, soft-float, glibc
config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM2009Q3
bool "Sourcery CodeBench ARM 2009q3"
depends on BR2_arm
select BR2_TOOLCHAIN_EXTERNAL_GLIBC
select BR2_INSTALL_LIBSTDCPP
help
Sourcery CodeBench toolchain for the ARM architecture, from
Mentor Graphics. It uses gcc 4.4.1, binutils 2.19, glibc
2.10 and gdb 6.8 and kernel headers 2.6.30. It has support
for the following variants:
- ARMv5T, little endian, soft-float, glibc
- ARMv4T, little endian, soft-float, glibc
- ARMv7-A, Thumb 2, little endian, soft-float, glibc
config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM2009Q1
bool "Sourcery CodeBench ARM 2009q1"
depends on BR2_arm
select BR2_TOOLCHAIN_EXTERNAL_GLIBC
select BR2_INSTALL_LIBSTDCPP
help
Sourcery CodeBench toolchain for the ARM architecture, from
Mentor Graphics. It uses gcc 4.3.3, binutils 2.19, glibc 2.8
and gdb 6.8 and kernel headers 2.6.30. It has support for
the following variants:
- ARMv5T, little endian, soft-float, glibc
- ARMv4T, little endian, soft-float, glibc
- ARMv7-A, Thumb 2, little endian, soft-float, glibc
config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201103
bool "Sourcery CodeBench MIPS 2011.03"
depends on BR2_mips || BR2_mipsel
select BR2_TOOLCHAIN_EXTERNAL_GLIBC
select BR2_INSTALL_LIBSTDCPP
help
Sourcery CodeBench toolchain for the MIPS architecture, from
Mentor Graphics. It uses gcc 4.5.2, binutils 2.20.51, glibc
2.13, uClibc 0.9.30 and gdb 7.2.50, kernel headers
2.6.38. It has support for the following variants:
- MIPS32 O32 big endian glibc
- MIPS32 O32 little endian glibc
- MIPS32 big endian soft float glibc
- MIPS32 little endian soft float glibc
- MIPS32 big endian microMIPS glibc
- MIPS32 little endian microMIPS glibc
- MIPS32 big endian soft float microMIPS glibc
- MIPS32 little endian soft float microMIPS glibc
- MIPS32 big endian uclibc
- MIPS32 little endian uclibc
- MIPS32 big endian soft float uclibc
- MIPS32 little endian soft float uclibc
config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS44
bool "Sourcery CodeBench MIPS 4.4"
depends on BR2_mips || BR2_mipsel
select BR2_TOOLCHAIN_EXTERNAL_GLIBC
select BR2_INSTALL_LIBSTDCPP
help
Sourcery CodeBench toolchain for the MIPS architecture, from
Mentor Graphics. It uses gcc 4.4.1, binutils 2.19, glibc
2.11, uClibc 0.9.30 and gdb 7.0, kernel headers 2.6.32. It
has support for the following variants:
- MIPS32 O32 big endian glibc
- MIPS32 O32 little endian glibc
- MIPS32 big endian soft float glibc
- MIPS32 little endian soft float glibc
- MIPS32 big endian microMIPS glibc
- MIPS32 little endian microMIPS glibc
- MIPS32 big endian soft float microMIPS glibc
- MIPS32 little endian soft float microMIPS glibc
- MIPS32 big endian uclibc
- MIPS32 little endian uclibc
- MIPS32 big endian soft float uclibc
- MIPS32 little endian soft float uclibc
config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201009
bool "Sourcery CodeBench PowerPC 2010.09"
depends on BR2_powerpc
select BR2_TOOLCHAIN_EXTERNAL_GLIBC
select BR2_INSTALL_LIBSTDCPP
help
Sourcery CodeBench toolchain for the PowerPC architecture,
from Sourcery CodeBench. It uses gcc 4.5.1, binutils 2.20,
glibc 2.11, gdb 7.2.50 and kernel headers 2.6.35.2. It has
support for the following variants:
- 603 glibc, 32 bits
- 603 soft float glibc, 32 bits
- e600 altivec glibc, 32 bits
- e500v1 glibc, 32 bits
- e500v2 glibc, 32 bits
- e500mc glibc, 32 bits
- 970 glibc hard-float, 64 bits
config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH201103
bool "Sourcery CodeBench SH 2011.03"
depends on BR2_sh4a || BR2_sh4aeb
select BR2_TOOLCHAIN_EXTERNAL_GLIBC
select BR2_INSTALL_LIBSTDCPP
help
Sourcery CodeBench toolchain for the SuperH architecture,
from Mentor Graphics. It uses gcc 4.5.2, binutils 2.20,
glibc 2.13, uClibc 0.9.30, gdb 7.2.50 and kernel headers
2.6.38. It has support for the following variants:
- SH4A, glibc, little endian
- SH4A, glibc, big endian
- SH4A, uClibc, little endian
- SH4A, uClibc, big endian
config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH201009
bool "Sourcery CodeBench SH 2010.09"
depends on BR2_sh4a || BR2_sh4aeb
select BR2_TOOLCHAIN_EXTERNAL_GLIBC
select BR2_INSTALL_LIBSTDCPP
help
Sourcery CodeBench toolchain for the SuperH architecture,
from Mentor Graphics. It uses gcc 4.5.1, binutils 2.20,
glibc 2.11, uClibc 0.9.30, gdb 7.2.50 and kernel headers
2.6.35.2. It has support for the following variants:
- SH4A, glibc, little endian
- SH4A, glibc, big endian
- SH4A, uClibc, little endian
- SH4A, uClibc, big endian
config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH2A_201103
bool "Sourcery CodeBench SH 2011.03"
depends on BR2_sh2a
select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
select BR2_LARGEFILE
select BR2_INET_RPC
select BR2_USE_WCHAR
select BR2_TOOLCHAIN_HAS_THREADS
select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
select BR2_INSTALL_LIBSTDCPP
help
Sourcery CodeBench toolchain for the SuperH architecture,
from Mentor Graphics. It uses gcc 4.5.2, binutils 2.20,
uClibc 0.9.30, gdb 7.2.50 and kernel headers 2.6.38. It has
support for the following variants:
- SH2A, uClibc, big endian
config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH2A_201009
bool "Sourcery CodeBench SH 2010.09"
depends on BR2_sh2a
select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
select BR2_LARGEFILE
select BR2_INET_RPC
select BR2_USE_WCHAR
select BR2_TOOLCHAIN_HAS_THREADS
select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
select BR2_INSTALL_LIBSTDCPP
help
Sourcery CodeBench toolchain for the SuperH architecture,
from Mentor Graphics. It uses gcc 4.5.1, binutils 2.20,
uClibc 0.9.30, gdb 7.2.50 and kernel headers 2.6.35.2. It
has support for the following variants:
- SH2A, uClibc, big endian
config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_X86_201009
bool "Sourcery CodeBench x86/x86_64 2010.09"
depends on BR2_i386 || BR2_x86_64
select BR2_TOOLCHAIN_EXTERNAL_GLIBC
select BR2_INSTALL_LIBSTDCPP
help
Sourcery CodeBench toolchain for the x86/x86_64
architectures, from Mentor Graphics. It uses gcc 4.5.1,
binutils 2.20, glibc 2.11, gdb 7.2.50 and kernel headers
2.6.35.2. It has support for the following variants:
- Intel Pentium 4, glibc, 32 bits
- Intel Atom, glibc, 32 bits
- Intel Xeon, glibc, 64 bits
- Intel Core 2, glibc, 64 bits
config BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2010RC1
bool "Blackfin.uclinux.org 2010RC1"
depends on BR2_bfin
select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
select BR2_INSTALL_LIBSTDCPP
select BR2_LARGEFILE
select BR2_INET_IPV6
select BR2_INET_RPC
select BR2_USE_WCHAR
select BR2_TOOLCHAIN_HAS_THREADS
select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
help
Toolchain for the Blackfin architecture, from
http://blackfin.uclinux.org.
config BR2_TOOLCHAIN_EXTERNAL_CUSTOM
bool "Custom toolchain"
help
Use this option to use a custom toolchain pre-installed on
your system.
endchoice
config BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD
bool "Download toolchain automatically"
default y
depends on !BR2_TOOLCHAIN_EXTERNAL_CUSTOM
help
When enabled, Buildroot will automatically download and
install the selected external toolchain. When disabled,
Buildroot will use a pre-installed toolchain.
config BR2_TOOLCHAIN_EXTERNAL_PATH
string "Toolchain path"
default "/path/to/toolchain/usr"
depends on !BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD
help
Path to where the external toolchain is installed.
config BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX
string "Toolchain prefix"
depends on BR2_TOOLCHAIN_EXTERNAL_CUSTOM
default "$(ARCH)-linux"
config BR2_TOOLCHAIN_EXTERNAL_PREFIX
string
default "arm-none-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM2009Q1
default "arm-none-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM2009Q3
default "arm-none-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM2010Q1
default "arm-none-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201009
default "arm-none-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201103
default "mips-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS44
default "mips-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201103
default "powerpc-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201009
default "sh-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH201009
default "sh-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH201103
default "sh-uclinux" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH2A_201009
default "sh-uclinux" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH2A_201103
default "i686-pc-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_X86_201009
default "bfin-uclinux" if BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2010RC1 && !BR2_BFIN_FDPIC
default "bfin-linux-uclibc" if BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2010RC1 && BR2_BFIN_FDPIC
default $(BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX) \
if BR2_TOOLCHAIN_EXTERNAL_CUSTOM
config BR2_TOOLCHAIN_EXTERNAL_GLIBC
bool
select BR2_LARGEFILE
select BR2_INET_IPV6
select BR2_INET_RPC
select BR2_USE_WCHAR
select BR2_ENABLE_LOCALE
select BR2_TOOLCHAIN_HAS_THREADS
select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
select BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS
config BR2_TOOLCHAIN_EXTERNAL_UCLIBC
bool
if BR2_TOOLCHAIN_EXTERNAL_CUSTOM
choice
prompt "External toolchain C library"
default BR2_TOOLCHAIN_EXTERNAL_CUSTOM_UCLIBC
config BR2_TOOLCHAIN_EXTERNAL_CUSTOM_UCLIBC
bool "uClibc"
select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
# For the time being, we assume that all custom external
# toolchains have shadow password support.
select BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS
config BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC
bool "glibc"
select BR2_TOOLCHAIN_EXTERNAL_GLIBC
endchoice
if BR2_TOOLCHAIN_EXTERNAL_CUSTOM_UCLIBC
config BR2_TOOLCHAIN_EXTERNAL_LARGEFILE
bool "Toolchain has large file support?"
select BR2_LARGEFILE
help
Select this option if your external toolchain supports
largefile. If you don't know, leave the default value,
Buildroot will tell you if it's correct or not.
config BR2_TOOLCHAIN_EXTERNAL_INET_IPV6
bool "Toolchain has IPv6 support?"
select BR2_INET_IPV6
help
Select this option if your external toolchain supports
IPv6. If you don't know, leave the default value, Buildroot
will tell you if it's correct or not.
config BR2_TOOLCHAIN_EXTERNAL_INET_RPC
bool "Toolchain has RPC support?"
select BR2_INET_RPC
help
Select this option if your external toolchain supports
RPC. If you don't know, leave the default value, Buildroot
will tell you if it's correct or not.
config BR2_TOOLCHAIN_EXTERNAL_WCHAR
bool "Toolchain has WCHAR support?"
select BR2_USE_WCHAR
help
Select this option if your external toolchain supports
WCHAR. If you don't know, leave the default value, Buildroot
will tell you if it's correct or not.
config BR2_TOOLCHAIN_EXTERNAL_LOCALE
bool "Toolchain has locale support?"
select BR2_TOOLCHAIN_EXTERNAL_WCHAR
select BR2_ENABLE_LOCALE
help
Select this option if your external toolchain has locale
support. If you don't know, leave the default value,
Buildroot will tell you if it's correct or not.
config BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS
bool "Toolchain has threads support?"
select BR2_TOOLCHAIN_HAS_THREADS
default y
help
Select this option if your external toolchain has thread
support. If you don't know, leave the default value,
Buildroot will tell you if it's correct or not.
config BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG
bool "Toolchain has threads debugging support?"
depends on BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS
select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
default y
help
Select this option if your external toolchain has thread
debugging support. If you don't know, leave the default
value, Buildroot will tell you if it's correct or not.
endif # BR2_TOOLCHAIN_EXTERNAL_CUSTOM_UCLIBC
config BR2_TOOLCHAIN_EXTERNAL_CXX
bool "Toolchain has C++ support?"
select BR2_INSTALL_LIBSTDCPP
help
Select this option if your external toolchain has C++
support. If you don't know, leave the default value,
Buildroot will tell you if it's correct or not.
config BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS
string "Extra toolchain libraries to be copied to target"
help
If your external toolchain provides extra libraries that
need to be copied to the target filesystem, enter them
here, separated by spaces. They will be copied to the
target's /lib directory.
endif # BR2_TOOLCHAIN_EXTERNAL_CUSTOM
endif # BR2_TOOLCHAIN_EXTERNAL