5931db0de9
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>
400 lines
15 KiB
Plaintext
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
|
|
|