ec54092c91
This commit adds a new package to support custom external toolchains. The legacy implementation is removed. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Reviewed-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
251 lines
9.0 KiB
Plaintext
251 lines
9.0 KiB
Plaintext
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 Linaro toolchain by default)
|
|
source "toolchain/toolchain-external/toolchain-external-linaro-aarch64/Config.in"
|
|
source "toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/Config.in"
|
|
|
|
# ARM (use Linaro toolchain by default)
|
|
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"
|
|
|
|
# Blackfin
|
|
source "toolchain/toolchain-external/toolchain-external-blackfin-uclinux/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"
|
|
|
|
# SH4a
|
|
source "toolchain/toolchain-external/toolchain-external-codesourcery-sh/Config.in"
|
|
|
|
# x86/x86_64 (use amd64 toolchain by default for AMD64)
|
|
source "toolchain/toolchain-external/toolchain-external-codesourcery-amd64/Config.in"
|
|
source "toolchain/toolchain-external/toolchain-external-codesourcery-x86/Config.in"
|
|
|
|
# Musl based toolchains (after all the others)
|
|
source "toolchain/toolchain-external/toolchain-external-musl-cross/Config.in"
|
|
|
|
# Kept last, so it remains the non-default choice, unless there isn't
|
|
# any available toolchain profile for the currently selected
|
|
# architecture.
|
|
source "toolchain/toolchain-external/toolchain-external-custom/Config.in"
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV7A
|
|
bool "Arago ARMv7 2011.09"
|
|
depends on BR2_arm
|
|
depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
|
|
depends on BR2_ARM_CPU_ARMV7A
|
|
depends on BR2_ARM_EABI
|
|
depends on BR2_ARM_CPU_HAS_VFPV3
|
|
depends on !BR2_STATIC_LIBS
|
|
select BR2_TOOLCHAIN_EXTERNAL_GLIBC
|
|
select BR2_TOOLCHAIN_HAS_SSP
|
|
select BR2_TOOLCHAIN_HAS_NATIVE_RPC
|
|
select BR2_INSTALL_LIBSTDCPP
|
|
select BR2_HOSTARCH_NEEDS_IA32_LIBS
|
|
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_5
|
|
# kernel headers: 2.6.31
|
|
help
|
|
Texas Instruments Arago 2011.09 toolchain, with gcc 4.5.3,
|
|
binutils 2.20.1, glibc 2.12, gdb 7.2.
|
|
|
|
This toolchain uses -mfloat-abi=softfp (i.e can use FPU
|
|
instructions, but passes floating point function arguments
|
|
in integer registers), and requires a VFPv3 floating point
|
|
unit to work properly. This unit is available on most
|
|
Cortex-A ARM processors, but not all.
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE
|
|
bool "Arago ARMv5 2011.09"
|
|
depends on BR2_arm
|
|
depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
|
|
depends on !BR2_ARM_CPU_ARMV4
|
|
depends on BR2_ARM_EABI
|
|
depends on !BR2_STATIC_LIBS
|
|
select BR2_TOOLCHAIN_EXTERNAL_GLIBC
|
|
select BR2_TOOLCHAIN_HAS_SSP
|
|
select BR2_TOOLCHAIN_HAS_NATIVE_RPC
|
|
select BR2_INSTALL_LIBSTDCPP
|
|
select BR2_HOSTARCH_NEEDS_IA32_LIBS
|
|
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_5
|
|
# kernel headers: 2.6.31
|
|
help
|
|
Texas Instruments Arago ARMv5 2011.09 toolchain, with gcc
|
|
4.5.3, binutils 2.20.1, glibc 2.12, gdb 7.2.
|
|
|
|
This toolchain uses software-floating point.
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC
|
|
bool "Synopsys ARC 2014.12 toolchain"
|
|
depends on BR2_arc
|
|
depends on BR2_HOSTARCH = "x86_64"
|
|
# does not provide IPv6, and lacks many uClibc features
|
|
# expected by Buildroot. The next Synopsys toolchain version
|
|
# should fix those problems.
|
|
depends on BROKEN
|
|
select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
|
|
select BR2_INSTALL_LIBSTDCPP
|
|
select BR2_TOOLCHAIN_HAS_NATIVE_RPC
|
|
select BR2_ENABLE_LOCALE
|
|
select BR2_USE_WCHAR
|
|
select BR2_TOOLCHAIN_HAS_THREADS
|
|
select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
|
|
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13
|
|
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
|
|
help
|
|
Toolchain for the ARC cores, from
|
|
https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases
|
|
|
|
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 "/path/to/toolchain/usr"
|
|
depends on BR2_TOOLCHAIN_EXTERNAL_PREINSTALLED
|
|
help
|
|
Path to where the external toolchain is installed.
|
|
|
|
config BR2_TOOLCHAIN_EXTERNAL_PREFIX
|
|
string
|
|
default "arc-linux" if BR2_TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC && BR2_arcle
|
|
default "arceb-linux" if BR2_TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC && BR2_arceb
|
|
default "arm-arago-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV7A
|
|
default "arm-arago-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE
|
|
|
|
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
|
|
|
|
# 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
|
|
|
|
# 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-linaro-aarch64/Config.in.options"
|
|
source "toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/Config.in.options"
|
|
|
|
# ARM
|
|
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"
|
|
|
|
# Blackfin
|
|
source "toolchain/toolchain-external/toolchain-external-blackfin-uclinux/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"
|
|
|
|
# SH4a
|
|
source "toolchain/toolchain-external/toolchain-external-codesourcery-sh/Config.in.options"
|
|
|
|
# x86/x86_64
|
|
source "toolchain/toolchain-external/toolchain-external-codesourcery-amd64/Config.in.options"
|
|
source "toolchain/toolchain-external/toolchain-external-codesourcery-x86/Config.in.options"
|
|
|
|
# Musl based toolchains
|
|
source "toolchain/toolchain-external/toolchain-external-musl-cross/Config.in.options"
|
|
|
|
# Custom toolchains
|
|
source "toolchain/toolchain-external/toolchain-external-custom/Config.in.options"
|
|
|
|
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.
|
|
|
|
# When the FDPIC shared binary format is used, the corresponding libraries are
|
|
# always installed. When a different binary format is used, we offer the option
|
|
# of installing the FDPIC shared libraries.
|
|
config BR2_BFIN_INSTALL_FDPIC_SHARED
|
|
bool "Install FDPIC shared libraries"
|
|
depends on BR2_bfin && !BR2_BINFMT_FDPIC
|
|
help
|
|
The Linux kernel supports running both FDPIC and FLAT applications
|
|
concurrently if the binary format specific libraries are installed
|
|
properly. This option allows developer to install FDPIC libraries
|
|
into a buildroot rootfs image built with binary format that is not
|
|
FDPIC.
|
|
|
|
# When the FLAT shared binary format is used, we force the installation
|
|
# of the corresponding libraries. When a different binary format is
|
|
# used, we offer the option of installing the FLAT shared libraries.
|
|
config BR2_BFIN_INSTALL_FLAT_SHARED
|
|
bool "Install FLAT shared libraries" if !BR2_BINFMT_FLAT_SHARED
|
|
depends on BR2_bfin
|
|
default y if BR2_BINFMT_FLAT_SHARED
|
|
help
|
|
The Linux kernel supports running both FDPIC and FLAT applications
|
|
concurrently if the binary format specific libraries are installed
|
|
properly. This option allows developer to install FLAT libraries
|
|
into a buildroot rootfs image built with binary format that is not
|
|
shared FLAT.
|
|
|
|
endif # BR2_TOOLCHAIN_EXTERNAL
|