kumquat-buildroot/toolchain/toolchain-external/Config.in

166 lines
5.7 KiB
Plaintext
Raw Normal View History

if BR2_TOOLCHAIN_EXTERNAL
comment "Toolchain External Options"
choice
prompt "Toolchain"
comment "glibc toolchains only available with shared lib support"
depends on BR2_STATIC_LIBS
# Kept toolchains sorted by architecture in order to use some toolchain
# as default choice
# Aarch64 (use ARM toolchain by default)
source "toolchain/toolchain-external/toolchain-external-arm-aarch64/Config.in"
source "toolchain/toolchain-external/toolchain-external-linaro-aarch64/Config.in"
source "toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/Config.in"
# Aarch64 big-endian
source "toolchain/toolchain-external/toolchain-external-arm-aarch64-be/Config.in"
source "toolchain/toolchain-external/toolchain-external-linaro-aarch64-be/Config.in"
# ARC
source "toolchain/toolchain-external/toolchain-external-synopsys-arc/Config.in"
# Andes
source "toolchain/toolchain-external/toolchain-external-andes-nds32/Config.in"
# ARM (use ARM toolchain by default)
source "toolchain/toolchain-external/toolchain-external-arm-arm/Config.in"
source "toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in"
source "toolchain/toolchain-external/toolchain-external-codesourcery-arm/Config.in"
# ARM big-endian
source "toolchain/toolchain-external/toolchain-external-linaro-armeb/Config.in"
# MIPS (use codesourcery toolchain by default)
source "toolchain/toolchain-external/toolchain-external-codesourcery-mips/Config.in"
source "toolchain/toolchain-external/toolchain-external-codescape-img-mips/Config.in"
source "toolchain/toolchain-external/toolchain-external-codescape-mti-mips/Config.in"
# NIOSII
source "toolchain/toolchain-external/toolchain-external-codesourcery-niosII/Config.in"
# x86_64
source "toolchain/toolchain-external/toolchain-external-codesourcery-amd64/Config.in"
# Kept last, so it remains the non-default choice, unless there isn't
# any available toolchain profile for the currently selected
# architecture, but before toolchains from br2-external trees.
source "toolchain/toolchain-external/toolchain-external-custom/Config.in"
# Toolchains from br2-external trees, if any
source "$BR2_BASE_DIR/.br2-external.in.toolchains"
endchoice
choice
prompt "Toolchain origin"
# Keep compatibility with old defconfig files that are using
# custom toolchains, and which are therefore assuming that
# "preinstalled" in the default choice.
default BR2_TOOLCHAIN_EXTERNAL_PREINSTALLED if BR2_TOOLCHAIN_EXTERNAL_CUSTOM
config BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD
bool "Toolchain to be downloaded and installed"
help
Select this option if you want Buildroot to download and
install the toolchain. If you have selected a custom
toolchain, specify the URL in BR2_TOOLCHAIN_EXTERNAL_URL.
config BR2_TOOLCHAIN_EXTERNAL_PREINSTALLED
bool "Pre-installed toolchain"
help
Select this option if you want to use a pre-installed
toolchain. Specify the path to this toolchain in
BR2_TOOLCHAIN_EXTERNAL_PATH.
endchoice
config BR2_TOOLCHAIN_EXTERNAL_PATH
string "Toolchain path"
default ""
depends on BR2_TOOLCHAIN_EXTERNAL_PREINSTALLED
help
Path to where the external toolchain is installed. The
compiler itself is expected to be in the "bin" subdirectory
of this path.
If empty, the compiler will be searched in $PATH.
config BR2_TOOLCHAIN_EXTERNAL_GLIBC
bool
select BR2_TOOLCHAIN_USES_GLIBC
config BR2_TOOLCHAIN_EXTERNAL_UCLIBC
bool
select BR2_TOOLCHAIN_USES_UCLIBC
config BR2_TOOLCHAIN_EXTERNAL_MUSL
bool
select BR2_TOOLCHAIN_USES_MUSL
# Compatibility headers: cdefs.h, queue.h
select BR2_PACKAGE_MUSL_COMPAT_HEADERS
toolchain-external: introduce toolchain-external-package The toolchain-external-package infrastructure is just a copy of the toolchain-external commands, replacing TOOLCHAIN_EXTERNAL by $(2) and adding double-dollars everywhere. toolchain-external itself is converted to a virtual package, but it is faked a little to make sue the toolchains that haven't been converted to toolchain-external-package yet keep on working. The TOOLCHAIN_EXTERNAL_MOVE commands don't have to be redefined for every toolchain-external-package instance, so that is moved out into the common part of pkg-toolchain-external.mk. The musl-compat-headers dependency stays in the toolchain-external package itself. The musl ld link is duplicated in the legacy toolchain-external and the toolchain-external-package, because they have separate hooks. The handling of TOOLCHAIN_EXTERNAL_BIN deserves some special attention, because its value will be different for different toolchain-external-package instances. However, the value only depends on variables that are set by Kconfig (BR2_TOOLCHAIN_EXTERNAL_PREFIX and BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD) so it can easily be used in the generic part. So we don't have to do anything specific for this variable after all. Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Romain Naour <romain.naour@gmail.com> Reviewed-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-11-07 02:19:59 +01:00
# Make sure the virtual-package infra checks the provider
config BR2_PACKAGE_HAS_TOOLCHAIN_EXTERNAL
bool
default y
config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL
string
config BR2_TOOLCHAIN_EXTERNAL_PREFIX
string
# Kept toolchains sorted as in the choice above
# The toolchain Config.in.options must define
# BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL and BR2_TOOLCHAIN_EXTERNAL_PREFIX
# Aarch64
source "toolchain/toolchain-external/toolchain-external-arm-aarch64/Config.in.options"
source "toolchain/toolchain-external/toolchain-external-linaro-aarch64/Config.in.options"
source "toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/Config.in.options"
# Aarch64 big-endian
source "toolchain/toolchain-external/toolchain-external-arm-aarch64-be/Config.in.options"
source "toolchain/toolchain-external/toolchain-external-linaro-aarch64-be/Config.in.options"
# ARC
source "toolchain/toolchain-external/toolchain-external-synopsys-arc/Config.in.options"
# Andes
source "toolchain/toolchain-external/toolchain-external-andes-nds32/Config.in.options"
# ARM
source "toolchain/toolchain-external/toolchain-external-arm-arm/Config.in.options"
source "toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in.options"
source "toolchain/toolchain-external/toolchain-external-codesourcery-arm/Config.in.options"
# ARM big-endian
source "toolchain/toolchain-external/toolchain-external-linaro-armeb/Config.in.options"
# MIPS
source "toolchain/toolchain-external/toolchain-external-codesourcery-mips/Config.in.options"
source "toolchain/toolchain-external/toolchain-external-codescape-img-mips/Config.in.options"
source "toolchain/toolchain-external/toolchain-external-codescape-mti-mips/Config.in.options"
# NIOSII
source "toolchain/toolchain-external/toolchain-external-codesourcery-niosII/Config.in.options"
# x86_64
source "toolchain/toolchain-external/toolchain-external-codesourcery-amd64/Config.in.options"
# Custom toolchains
source "toolchain/toolchain-external/toolchain-external-custom/Config.in.options"
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
config BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY
bool "Copy gdb server to the Target"
depends on BR2_TOOLCHAIN_EXTERNAL
help
Copy the gdbserver provided by the external toolchain to the
target.
endif # BR2_TOOLCHAIN_EXTERNAL