Bump buildroot to 2019.02
This commit is contained in:
@@ -15,11 +15,16 @@ config BR2_TOOLCHAIN_USES_GLIBC
|
||||
select BR2_TOOLCHAIN_HAS_THREADS
|
||||
select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
|
||||
select BR2_TOOLCHAIN_HAS_THREADS_NPTL
|
||||
select BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS
|
||||
select BR2_TOOLCHAIN_HAS_UCONTEXT
|
||||
select BR2_TOOLCHAIN_SUPPORTS_PIE
|
||||
|
||||
config BR2_TOOLCHAIN_USES_UCLIBC
|
||||
bool
|
||||
# ucontext is only available for a subset of the supported
|
||||
# architectures
|
||||
select BR2_TOOLCHAIN_HAS_UCONTEXT if BR2_ARM_CPU_HAS_ARM || BR2_i386 \
|
||||
|| BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el \
|
||||
|| BR2_sparc || BR2_x86_64
|
||||
select BR2_TOOLCHAIN_SUPPORTS_PIE if !BR2_m68k && !BR2_microblaze && !BR2_STATIC_LIBS
|
||||
|
||||
config BR2_TOOLCHAIN_USES_MUSL
|
||||
@@ -29,6 +34,7 @@ config BR2_TOOLCHAIN_USES_MUSL
|
||||
select BR2_TOOLCHAIN_HAS_THREADS
|
||||
select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
|
||||
select BR2_TOOLCHAIN_HAS_THREADS_NPTL
|
||||
select BR2_TOOLCHAIN_HAS_UCONTEXT
|
||||
select BR2_TOOLCHAIN_SUPPORTS_PIE if !BR2_STATIC_LIBS
|
||||
|
||||
choice
|
||||
@@ -42,7 +48,6 @@ choice
|
||||
|
||||
config BR2_TOOLCHAIN_BUILDROOT
|
||||
bool "Buildroot toolchain"
|
||||
select BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS
|
||||
depends on BR2_ARCH_HAS_TOOLCHAIN_BUILDROOT
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL
|
||||
@@ -56,6 +61,555 @@ endchoice
|
||||
|
||||
source "toolchain/toolchain-buildroot/Config.in"
|
||||
source "toolchain/toolchain-external/Config.in"
|
||||
source "toolchain/toolchain-common.in"
|
||||
|
||||
# Generic toolchain options
|
||||
|
||||
# we want gdb config in the middle of both source and external
|
||||
# toolchains, but mconf won't let us source the same file twice,
|
||||
# so put it here instead
|
||||
source "package/gdb/Config.in.host"
|
||||
|
||||
comment "Toolchain Generic Options"
|
||||
|
||||
# https://sourceware.org/bugzilla/show_bug.cgi?id=19615
|
||||
# Affect toolchains built with binutils 2.26 (fixed in binutils 2.26.1).
|
||||
config BR2_TOOLCHAIN_HAS_BINUTILS_BUG_19615
|
||||
bool
|
||||
|
||||
# https://sourceware.org/bugzilla/show_bug.cgi?id=20006
|
||||
# Affect toolchains built with binutils 2.26 (fixed in binutils 2.26.1).
|
||||
config BR2_TOOLCHAIN_HAS_BINUTILS_BUG_20006
|
||||
bool
|
||||
|
||||
# Atomic types can be:
|
||||
# - never lock-free
|
||||
# - sometimes lock-free
|
||||
# - always lock-free
|
||||
# see https://en.cppreference.com/w/c/atomic/ATOMIC_LOCK_FREE_consts
|
||||
#
|
||||
# On most architectures, gcc provides "always lock-free" atomic types,
|
||||
# but a few architectures are limited to "sometimes lock-free"
|
||||
# types. This hidden option allows to know if the architecture
|
||||
# provides "always lock-free" atomic types.
|
||||
config BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
|
||||
bool
|
||||
default y
|
||||
depends on !BR2_nios2
|
||||
depends on !BR2_ARM_CPU_ARMV4
|
||||
depends on !BR2_ARM_CPU_ARMV5
|
||||
depends on !BR2_sparc_v8
|
||||
depends on !BR2_m68k_cf5208
|
||||
|
||||
# GCC uses thunk functions to adjust the 'this' pointer when calling
|
||||
# C++ member functions in classes derived with multiple inheritance.
|
||||
# Generation of thunk functions requires support from the compiler
|
||||
# back end. In the absence of that support target-independent code
|
||||
# in the C++ front end is used to generate thunk functions, but it
|
||||
# does not support vararg functions.
|
||||
# or1k will support it in the gcc mainline starting with gcc-9.
|
||||
config BR2_TOOLCHAIN_SUPPORTS_VARIADIC_MI_THUNK
|
||||
bool
|
||||
default y
|
||||
depends on !BR2_or1k
|
||||
depends on !BR2_xtensa
|
||||
|
||||
# Prior to gcc 7.x, exception_ptr, nested_exception and future from
|
||||
# libstdc++ would only be provided on architectures that support
|
||||
# always lock-free atomic ints. See
|
||||
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64735. This issue has
|
||||
# been removed in GCC 7.x, where exception propagation is now
|
||||
# supported without lock-free atomic int.
|
||||
config BR2_TOOLCHAIN_HAS_GCC_BUG_64735
|
||||
bool
|
||||
default y if !BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS && \
|
||||
!BR2_TOOLCHAIN_GCC_AT_LEAST_7
|
||||
|
||||
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85180. This bug no
|
||||
# longer exists in gcc 8.x.
|
||||
config BR2_TOOLCHAIN_HAS_GCC_BUG_85180
|
||||
bool
|
||||
default y if BR2_microblaze
|
||||
|
||||
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85862
|
||||
# An infinite loop exists in the find_base_term() logic of 6.x
|
||||
# on microblaze. http://autobuild.buildroot.net/results/158e8ebb39713e1b436a5cc1a1916f46c30694df/
|
||||
config BR2_TOOLCHAIN_HAS_GCC_BUG_85862
|
||||
bool
|
||||
default y if BR2_microblaze
|
||||
depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_7
|
||||
|
||||
config BR2_TOOLCHAIN_HAS_NATIVE_RPC
|
||||
bool
|
||||
|
||||
config BR2_USE_WCHAR
|
||||
bool
|
||||
|
||||
config BR2_ENABLE_LOCALE
|
||||
bool
|
||||
|
||||
config BR2_INSTALL_LIBSTDCPP
|
||||
bool
|
||||
|
||||
config BR2_TOOLCHAIN_HAS_FORTRAN
|
||||
bool
|
||||
|
||||
config BR2_TOOLCHAIN_HAS_THREADS
|
||||
bool
|
||||
|
||||
config BR2_TOOLCHAIN_HAS_THREADS_DEBUG
|
||||
bool
|
||||
|
||||
config BR2_TOOLCHAIN_HAS_THREADS_NPTL
|
||||
bool
|
||||
|
||||
config BR2_TOOLCHAIN_HAS_SSP
|
||||
bool
|
||||
|
||||
config BR2_TOOLCHAIN_HAS_UCONTEXT
|
||||
bool
|
||||
|
||||
config BR2_TOOLCHAIN_SUPPORTS_PIE
|
||||
bool
|
||||
|
||||
config BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY
|
||||
bool "Copy gconv libraries"
|
||||
depends on BR2_TOOLCHAIN_USES_GLIBC
|
||||
help
|
||||
The gconv libraries are used to convert between different
|
||||
character sets (charsets).
|
||||
|
||||
Say 'y' if you need to store and/or display different
|
||||
charsets.
|
||||
|
||||
config BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_LIST
|
||||
string "Gconv libraries to copy"
|
||||
depends on BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY
|
||||
help
|
||||
Set to the list of gconv libraries to copy.
|
||||
Leave empty to copy all gconv libraries.
|
||||
|
||||
Specify only the basename of the libraries, leave
|
||||
out the .so extension. Eg.:
|
||||
IBM850 ISO8859-15 UNICODE
|
||||
|
||||
Note: the full set of gconv libs are ~8MiB (on ARM).
|
||||
|
||||
# This boolean is true if the toolchain provides a built-in full
|
||||
# featured gettext implementation (glibc), and false if only a stub
|
||||
# gettext implementation is provided (uclibc, musl)
|
||||
config BR2_TOOLCHAIN_HAS_FULL_GETTEXT
|
||||
bool
|
||||
|
||||
config BR2_USE_MMU
|
||||
bool "Enable MMU support" if BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
default y if BR2_ARCH_HAS_MMU_OPTIONAL || BR2_ARCH_HAS_MMU_MANDATORY
|
||||
help
|
||||
If your target has a MMU, you should say Y here. If you
|
||||
are unsure, just say Y.
|
||||
|
||||
config BR2_TARGET_OPTIMIZATION
|
||||
string "Target Optimizations"
|
||||
default ""
|
||||
help
|
||||
Optimizations to use when building for the target host.
|
||||
NOTE: gcc optimization level is defined in build options.
|
||||
|
||||
config BR2_TARGET_LDFLAGS
|
||||
string "Target linker options"
|
||||
help
|
||||
Extra options to pass to the linker when building for the
|
||||
target.
|
||||
|
||||
Note that options with a '$' sign (eg.
|
||||
-Wl,-rpath='$ORIGIN/../lib') are not supported.
|
||||
|
||||
config BR2_ECLIPSE_REGISTER
|
||||
bool "Register toolchain within Eclipse Buildroot plug-in"
|
||||
help
|
||||
This options tells Buildroot to generate the necessary
|
||||
configuration files to make your toolchain appear within
|
||||
Eclipse, through the Eclipse Buildroot plugin.
|
||||
|
||||
# Options for packages to depend on, if they require at least a
|
||||
# specific version of the kernel headers.
|
||||
# Toolchains should choose the adequate option (ie. the highest
|
||||
# version, not all of them).
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
|
||||
bool
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_1
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_1
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_3
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_3
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_5
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_6
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_5
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_6
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_8
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_8
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_11
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_11
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_19
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_19
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_1
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_2
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_1
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_3
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_2
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_3
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_6
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_7
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_6
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_8
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_7
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_8
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_10
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_11
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_10
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_11
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_13
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_14
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_13
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_15
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_14
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_16
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_15
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_17
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_16
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_18
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_17
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_19
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_18
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_20
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_19
|
||||
|
||||
# This order guarantees that the highest version is set, as kconfig
|
||||
# stops affecting a value on the first matching default.
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST
|
||||
string
|
||||
default "4.20" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_20
|
||||
default "4.19" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_19
|
||||
default "4.18" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_18
|
||||
default "4.17" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_17
|
||||
default "4.16" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_16
|
||||
default "4.15" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_15
|
||||
default "4.14" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_14
|
||||
default "4.13" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_13
|
||||
default "4.12" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12
|
||||
default "4.11" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_11
|
||||
default "4.10" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_10
|
||||
default "4.9" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
|
||||
default "4.8" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_8
|
||||
default "4.7" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_7
|
||||
default "4.6" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_6
|
||||
default "4.5" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5
|
||||
default "4.4" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4
|
||||
default "4.3" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_3
|
||||
default "4.2" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_2
|
||||
default "4.1" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_1
|
||||
default "4.0" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0
|
||||
default "3.19" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_19
|
||||
default "3.18" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18
|
||||
default "3.17" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17
|
||||
default "3.16" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16
|
||||
default "3.15" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15
|
||||
default "3.14" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14
|
||||
default "3.13" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13
|
||||
default "3.12" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12
|
||||
default "3.11" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_11
|
||||
default "3.10" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10
|
||||
default "3.9" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9
|
||||
default "3.8" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_8
|
||||
default "3.7" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7
|
||||
default "3.6" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_6
|
||||
default "3.5" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_5
|
||||
default "3.4" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4
|
||||
default "3.3" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_3
|
||||
default "3.2" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2
|
||||
default "3.1" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_1
|
||||
default "3.0" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
|
||||
default "2.6"
|
||||
|
||||
config BR2_TOOLCHAIN_GCC_AT_LEAST_4_3
|
||||
bool
|
||||
|
||||
config BR2_TOOLCHAIN_GCC_AT_LEAST_4_4
|
||||
bool
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_3
|
||||
|
||||
config BR2_TOOLCHAIN_GCC_AT_LEAST_4_5
|
||||
bool
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_4
|
||||
|
||||
config BR2_TOOLCHAIN_GCC_AT_LEAST_4_6
|
||||
bool
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_5
|
||||
|
||||
config BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
|
||||
bool
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_6
|
||||
|
||||
config BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
|
||||
bool
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
|
||||
|
||||
config BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
|
||||
bool
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
|
||||
|
||||
config BR2_TOOLCHAIN_GCC_AT_LEAST_5
|
||||
bool
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
|
||||
|
||||
config BR2_TOOLCHAIN_GCC_AT_LEAST_6
|
||||
bool
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_5
|
||||
|
||||
config BR2_TOOLCHAIN_GCC_AT_LEAST_7
|
||||
bool
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_6
|
||||
|
||||
config BR2_TOOLCHAIN_GCC_AT_LEAST_8
|
||||
bool
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_7
|
||||
|
||||
# This order guarantees that the highest version is set, as kconfig
|
||||
# stops affecting a value on the first matching default.
|
||||
config BR2_TOOLCHAIN_GCC_AT_LEAST
|
||||
string
|
||||
default "8" if BR2_TOOLCHAIN_GCC_AT_LEAST_8
|
||||
default "7" if BR2_TOOLCHAIN_GCC_AT_LEAST_7
|
||||
default "6" if BR2_TOOLCHAIN_GCC_AT_LEAST_6
|
||||
default "5" if BR2_TOOLCHAIN_GCC_AT_LEAST_5
|
||||
default "4.9" if BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
|
||||
default "4.8" if BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
|
||||
default "4.7" if BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
|
||||
default "4.6" if BR2_TOOLCHAIN_GCC_AT_LEAST_4_6
|
||||
default "4.5" if BR2_TOOLCHAIN_GCC_AT_LEAST_4_5
|
||||
default "4.4" if BR2_TOOLCHAIN_GCC_AT_LEAST_4_4
|
||||
default "4.3" if BR2_TOOLCHAIN_GCC_AT_LEAST_4_3
|
||||
|
||||
config BR2_TOOLCHAIN_HAS_MNAN_OPTION
|
||||
bool
|
||||
default y if BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
|
||||
|
||||
config BR2_TOOLCHAIN_HAS_SYNC_1
|
||||
bool
|
||||
default y
|
||||
depends on !BR2_m68k_cf
|
||||
depends on !BR2_microblaze
|
||||
depends on !BR2_sparc
|
||||
depends on !(BR2_arc && !BR2_ARC_ATOMIC_EXT)
|
||||
|
||||
config BR2_TOOLCHAIN_HAS_SYNC_2
|
||||
bool
|
||||
default y if BR2_TOOLCHAIN_HAS_SYNC_1
|
||||
|
||||
config BR2_TOOLCHAIN_HAS_SYNC_4
|
||||
bool
|
||||
default y
|
||||
depends on !BR2_m68k_cf
|
||||
depends on !BR2_sparc
|
||||
depends on !(BR2_arc && !BR2_ARC_ATOMIC_EXT)
|
||||
|
||||
# The availability of __sync for 8-byte types on ARM is somewhat
|
||||
# complicated:
|
||||
#
|
||||
# - It appeared in gcc starting with gcc 4.7.
|
||||
#
|
||||
# - On ARMv7, there is no problem, it can be directly implemented in
|
||||
# userspace.
|
||||
#
|
||||
# - On < ARMv7, it requires help from the kernel. Unfortunately, the
|
||||
# libgcc code implementing 8-byte __sync with the help from the
|
||||
# kernel calls __write() when a failure occurs, which is a function
|
||||
# internal to glibc, not available in uClibc and musl. This means
|
||||
# that the 8-byte __sync operations are not available on < ARMv7
|
||||
# with uClibc and musl. This problem was fixed as part of gcc
|
||||
# PR68059, which was backported to the gcc 5 branch, but isn't yet
|
||||
# part of any gcc 5.x release.
|
||||
#
|
||||
config BR2_TOOLCHAIN_ARM_HAS_SYNC_8
|
||||
bool
|
||||
default y
|
||||
depends on BR2_arm || BR2_armeb
|
||||
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
|
||||
depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_ARM_CPU_ARMV7A
|
||||
|
||||
# 8-byte intrinsics available on most x86 CPUs, except a few old ones
|
||||
config BR2_TOOLCHAIN_X86_HAS_SYNC_8
|
||||
bool
|
||||
default y
|
||||
depends on BR2_i386
|
||||
depends on !BR2_x86_i486
|
||||
depends on !BR2_x86_c3
|
||||
depends on !BR2_x86_winchip_c6
|
||||
depends on !BR2_x86_winchip2
|
||||
|
||||
# 8-byte intrinsics available:
|
||||
# - On all 64 bits architecture
|
||||
# - On a certain combinations of ARM platforms
|
||||
# - On certain x86 32 bits CPUs
|
||||
config BR2_TOOLCHAIN_HAS_SYNC_8
|
||||
bool
|
||||
default y if BR2_ARCH_IS_64
|
||||
default y if BR2_TOOLCHAIN_ARM_HAS_SYNC_8
|
||||
default y if BR2_TOOLCHAIN_X86_HAS_SYNC_8
|
||||
|
||||
# libatomic is available since gcc 4.8, when thread support is
|
||||
# enabled. Also, libatomic doesn't recognize "uclinux" as a valid OS
|
||||
# part of the tuple, and is therefore not build on uclinux targets,
|
||||
# which is why BR2_BINFMT_FLAT configurations are excluded.
|
||||
config BR2_TOOLCHAIN_HAS_LIBATOMIC
|
||||
bool
|
||||
default y if BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 && \
|
||||
BR2_TOOLCHAIN_HAS_THREADS && \
|
||||
!BR2_BINFMT_FLAT
|
||||
|
||||
# __atomic intrinsics are available:
|
||||
# - with gcc 4.8, either through built-ins or libatomic, on all
|
||||
# architectures. Since we don't want to separate the cases where
|
||||
# libatomic is needed vs. not needed, we simplify thing and only
|
||||
# support situations where libatomic is available, even if on some
|
||||
# architectures libatomic is not strictly needed as all __atomic
|
||||
# intrinsics might be built-in. The only case where libatomic is
|
||||
# missing entirely is when the toolchain does not have support for
|
||||
# threads. However, a package that does not need threads but still
|
||||
# uses atomics is quite a corner case, which does not warrant the
|
||||
# added complexity.
|
||||
# - with gcc 4.7, libatomic did not exist, so only built-ins are
|
||||
# available. This means that __atomic can only be used in a subset
|
||||
# of the architectures
|
||||
config BR2_TOOLCHAIN_HAS_ATOMIC
|
||||
bool
|
||||
default y if BR2_TOOLCHAIN_HAS_LIBATOMIC
|
||||
default y if BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 && BR2_arm
|
||||
default y if BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 && BR2_armeb
|
||||
default y if BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 && BR2_xtensa
|
||||
default y if BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 && BR2_ARCH_IS_64
|
||||
|
||||
# - libquadmath is not needed/available on all architectures (but gcc
|
||||
# correctly handles this already).
|
||||
# - At least, libquadmath is available on:
|
||||
# - i*86
|
||||
# - x86_64
|
||||
# - When available, libquadmath requires wchar support.
|
||||
config BR2_TOOLCHAIN_HAS_LIBQUADMATH
|
||||
bool
|
||||
default y if BR2_i386 || BR2_x86_64
|
||||
|
||||
endmenu
|
||||
|
||||
@@ -241,14 +241,11 @@ check_glibc = \
|
||||
# $2: cross-readelf path
|
||||
check_musl = \
|
||||
__CROSS_CC=$(strip $1) ; \
|
||||
__CROSS_READELF=$(strip $2) ; \
|
||||
echo 'void main(void) {}' | $${__CROSS_CC} -x c -o $(BUILD_DIR)/.br-toolchain-test.tmp - >/dev/null 2>&1; \
|
||||
if ! $${__CROSS_READELF} -l $(BUILD_DIR)/.br-toolchain-test.tmp 2> /dev/null | grep 'program interpreter: /lib/ld-musl' -q; then \
|
||||
rm -f $(BUILD_DIR)/.br-toolchain-test.tmp*; \
|
||||
libc_a_path=`$${__CROSS_CC} -print-file-name=libc.a` ; \
|
||||
if ! strings $${libc_a_path} | grep -q MUSL_LOCPATH ; then \
|
||||
echo "Incorrect selection of the C library" ; \
|
||||
exit -1; \
|
||||
fi ; \
|
||||
rm -f $(BUILD_DIR)/.br-toolchain-test.tmp*
|
||||
fi
|
||||
|
||||
#
|
||||
# Check the conformity of Buildroot configuration with regard to the
|
||||
|
||||
@@ -27,13 +27,13 @@ choice
|
||||
|
||||
config BR2_TOOLCHAIN_BUILDROOT_UCLIBC
|
||||
bool "uClibc-ng"
|
||||
select BR2_TOOLCHAIN_USES_UCLIBC
|
||||
depends on BR2_aarch64 || BR2_aarch64_be || BR2_arcle || BR2_arceb || \
|
||||
BR2_arm || BR2_armeb || \
|
||||
BR2_bfin || BR2_i386 || BR2_m68k || BR2_microblaze || \
|
||||
BR2_i386 || BR2_m68k || BR2_microblaze || \
|
||||
BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el || \
|
||||
BR2_or1k || BR2_powerpc || BR2_sh2a || BR2_sh4 || \
|
||||
BR2_sh4eb || BR2_sparc || BR2_xtensa || BR2_x86_64
|
||||
select BR2_TOOLCHAIN_USES_UCLIBC
|
||||
help
|
||||
This option selects uClibc-ng as the C library for the
|
||||
cross-compilation toolchain.
|
||||
@@ -46,14 +46,16 @@ config BR2_TOOLCHAIN_BUILDROOT_GLIBC
|
||||
BR2_aarch64_be || BR2_i386 || BR2_mips || \
|
||||
BR2_mipsel || BR2_mips64 || BR2_mips64el|| \
|
||||
BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le || \
|
||||
BR2_sh || BR2_sparc64 || BR2_x86_64 || \
|
||||
BR2_microblaze || BR2_nios2 || BR2_archs38
|
||||
BR2_riscv || BR2_sh || BR2_sparc64 || \
|
||||
BR2_x86_64 || BR2_microblaze || BR2_nios2 || \
|
||||
(BR2_arcle && BR2_ARC_ATOMIC_EXT)
|
||||
depends on BR2_USE_MMU
|
||||
depends on !BR2_STATIC_LIBS
|
||||
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2
|
||||
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10 || !BR2_powerpc64le
|
||||
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5 || !BR2_MIPS_NAN_2008
|
||||
depends on !BR2_powerpc_SPE
|
||||
depends on BR2_RISCV_ISA_RVA || !BR2_riscv
|
||||
select BR2_TOOLCHAIN_USES_GLIBC
|
||||
# our glibc.mk enables RPC support
|
||||
select BR2_TOOLCHAIN_HAS_NATIVE_RPC
|
||||
|
||||
@@ -1,469 +0,0 @@
|
||||
# Generic toolchain options
|
||||
|
||||
# we want gdb config in the middle of both source and external
|
||||
# toolchains, but mconf won't let us source the same file twice,
|
||||
# so put it here instead
|
||||
source "package/gdb/Config.in.host"
|
||||
|
||||
comment "Toolchain Generic Options"
|
||||
|
||||
# https://sourceware.org/bugzilla/show_bug.cgi?id=19615
|
||||
# Affect toolchains built with binutils 2.26 (fixed in binutils 2.26.1).
|
||||
config BR2_TOOLCHAIN_HAS_BINUTILS_BUG_19615
|
||||
bool
|
||||
|
||||
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64735
|
||||
# exception_ptr, nested_exception, and future from libstdc++ are not
|
||||
# available for architectures not supporting always lock-free atomic
|
||||
# ints before GCC 7
|
||||
config BR2_TOOLCHAIN_HAS_GCC_BUG_64735
|
||||
bool
|
||||
default y if BR2_nios2
|
||||
default y if BR2_ARM_CPU_ARMV4
|
||||
default y if BR2_ARM_CPU_ARMV5
|
||||
default y if BR2_sparc_v8
|
||||
default y if BR2_m68k_cf5208
|
||||
depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_7
|
||||
|
||||
config BR2_TOOLCHAIN_HAS_NATIVE_RPC
|
||||
bool
|
||||
|
||||
config BR2_USE_WCHAR
|
||||
bool
|
||||
|
||||
config BR2_ENABLE_LOCALE
|
||||
bool
|
||||
|
||||
config BR2_INSTALL_LIBSTDCPP
|
||||
bool
|
||||
|
||||
config BR2_TOOLCHAIN_HAS_FORTRAN
|
||||
bool
|
||||
|
||||
config BR2_TOOLCHAIN_HAS_THREADS
|
||||
bool
|
||||
|
||||
config BR2_TOOLCHAIN_HAS_THREADS_DEBUG
|
||||
bool
|
||||
|
||||
config BR2_TOOLCHAIN_HAS_THREADS_NPTL
|
||||
bool
|
||||
|
||||
config BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS
|
||||
bool
|
||||
|
||||
config BR2_TOOLCHAIN_HAS_SSP
|
||||
bool
|
||||
|
||||
config BR2_TOOLCHAIN_SUPPORTS_PIE
|
||||
bool
|
||||
|
||||
config BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY
|
||||
bool "Copy gconv libraries"
|
||||
depends on BR2_TOOLCHAIN_USES_GLIBC
|
||||
help
|
||||
The gconv libraries are used to convert between different
|
||||
character sets (charsets).
|
||||
|
||||
Say 'y' if you need to store and/or display different charsets.
|
||||
|
||||
config BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_LIST
|
||||
string "Gconv libraries to copy"
|
||||
depends on BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY
|
||||
help
|
||||
Set to the list of gconv libraries to copy.
|
||||
Leave empty to copy all gconv libraries.
|
||||
|
||||
Specify only the basename of the libraries, leave
|
||||
out the .so extension. Eg.:
|
||||
IBM850 ISO8859-15 UNICODE
|
||||
|
||||
Note: the full set of gconv libs are ~8MiB (on ARM).
|
||||
|
||||
# This boolean is true if the toolchain provides a built-in full
|
||||
# featured gettext implementation (glibc), and false if only a stub
|
||||
# gettext implementation is provided (uclibc, musl)
|
||||
config BR2_TOOLCHAIN_HAS_FULL_GETTEXT
|
||||
bool
|
||||
|
||||
config BR2_USE_MMU
|
||||
bool "Enable MMU support" if BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
default y if BR2_ARCH_HAS_MMU_OPTIONAL || BR2_ARCH_HAS_MMU_MANDATORY
|
||||
help
|
||||
If your target has a MMU, you should say Y here. If you
|
||||
are unsure, just say Y.
|
||||
|
||||
config BR2_TARGET_OPTIMIZATION
|
||||
string "Target Optimizations"
|
||||
default ""
|
||||
help
|
||||
Optimizations to use when building for the target host.
|
||||
NOTE: gcc optimization level is defined in build options.
|
||||
|
||||
config BR2_TARGET_LDFLAGS
|
||||
string "Target linker options"
|
||||
help
|
||||
Extra options to pass to the linker when building for the target.
|
||||
|
||||
Note that options with a '$' sign (eg. -Wl,-rpath='$ORIGIN/../lib')
|
||||
are not supported.
|
||||
|
||||
config BR2_ECLIPSE_REGISTER
|
||||
bool "Register toolchain within Eclipse Buildroot plug-in"
|
||||
help
|
||||
This options tells Buildroot to generate the necessary
|
||||
configuration files to make your toolchain appear within
|
||||
Eclipse, through the Eclipse Buildroot plugin.
|
||||
|
||||
# Options for packages to depend on, if they require at least a
|
||||
# specific version of the kernel headers.
|
||||
# Toolchains should choose the adequate option (ie. the highest
|
||||
# version, not all of them).
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
|
||||
bool
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_1
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_1
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_3
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_3
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_5
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_6
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_5
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_6
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_8
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_8
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_11
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_11
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_19
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_19
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_1
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_2
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_1
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_3
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_2
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_3
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_6
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_7
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_6
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_8
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_7
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_8
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_10
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_11
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_10
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_11
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_13
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_14
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_13
|
||||
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_15
|
||||
bool
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_14
|
||||
|
||||
# This order guarantees that the highest version is set, as kconfig
|
||||
# stops affecting a value on the first matching default.
|
||||
config BR2_TOOLCHAIN_HEADERS_AT_LEAST
|
||||
string
|
||||
default "4.15" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_15
|
||||
default "4.14" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_14
|
||||
default "4.13" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_13
|
||||
default "4.12" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12
|
||||
default "4.11" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_11
|
||||
default "4.10" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_10
|
||||
default "4.9" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
|
||||
default "4.8" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_8
|
||||
default "4.7" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_7
|
||||
default "4.6" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_6
|
||||
default "4.5" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5
|
||||
default "4.4" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4
|
||||
default "4.3" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_3
|
||||
default "4.2" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_2
|
||||
default "4.1" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_1
|
||||
default "4.0" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0
|
||||
default "3.19" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_19
|
||||
default "3.18" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18
|
||||
default "3.17" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17
|
||||
default "3.16" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16
|
||||
default "3.15" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15
|
||||
default "3.14" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14
|
||||
default "3.13" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13
|
||||
default "3.12" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12
|
||||
default "3.11" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_11
|
||||
default "3.10" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10
|
||||
default "3.9" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9
|
||||
default "3.8" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_8
|
||||
default "3.7" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7
|
||||
default "3.6" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_6
|
||||
default "3.5" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_5
|
||||
default "3.4" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4
|
||||
default "3.3" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_3
|
||||
default "3.2" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2
|
||||
default "3.1" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_1
|
||||
default "3.0" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
|
||||
default "2.6"
|
||||
|
||||
config BR2_TOOLCHAIN_GCC_AT_LEAST_4_3
|
||||
bool
|
||||
|
||||
config BR2_TOOLCHAIN_GCC_AT_LEAST_4_4
|
||||
bool
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_3
|
||||
|
||||
config BR2_TOOLCHAIN_GCC_AT_LEAST_4_5
|
||||
bool
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_4
|
||||
|
||||
config BR2_TOOLCHAIN_GCC_AT_LEAST_4_6
|
||||
bool
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_5
|
||||
|
||||
config BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
|
||||
bool
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_6
|
||||
|
||||
config BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
|
||||
bool
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
|
||||
|
||||
config BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
|
||||
bool
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
|
||||
|
||||
config BR2_TOOLCHAIN_GCC_AT_LEAST_5
|
||||
bool
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
|
||||
|
||||
config BR2_TOOLCHAIN_GCC_AT_LEAST_6
|
||||
bool
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_5
|
||||
|
||||
config BR2_TOOLCHAIN_GCC_AT_LEAST_7
|
||||
bool
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_6
|
||||
|
||||
# This order guarantees that the highest version is set, as kconfig
|
||||
# stops affecting a value on the first matching default.
|
||||
config BR2_TOOLCHAIN_GCC_AT_LEAST
|
||||
string
|
||||
default "7" if BR2_TOOLCHAIN_GCC_AT_LEAST_7
|
||||
default "6" if BR2_TOOLCHAIN_GCC_AT_LEAST_6
|
||||
default "5" if BR2_TOOLCHAIN_GCC_AT_LEAST_5
|
||||
default "4.9" if BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
|
||||
default "4.8" if BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
|
||||
default "4.7" if BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
|
||||
default "4.6" if BR2_TOOLCHAIN_GCC_AT_LEAST_4_6
|
||||
default "4.5" if BR2_TOOLCHAIN_GCC_AT_LEAST_4_5
|
||||
default "4.4" if BR2_TOOLCHAIN_GCC_AT_LEAST_4_4
|
||||
default "4.3" if BR2_TOOLCHAIN_GCC_AT_LEAST_4_3
|
||||
|
||||
config BR2_TOOLCHAIN_HAS_MNAN_OPTION
|
||||
bool
|
||||
default y if BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
|
||||
|
||||
config BR2_TOOLCHAIN_HAS_SYNC_1
|
||||
bool
|
||||
default y
|
||||
depends on !BR2_bfin
|
||||
depends on !BR2_m68k_cf
|
||||
depends on !BR2_microblaze
|
||||
depends on !BR2_sparc
|
||||
depends on !(BR2_arc && !BR2_ARC_ATOMIC_EXT)
|
||||
|
||||
config BR2_TOOLCHAIN_HAS_SYNC_2
|
||||
bool
|
||||
default y if BR2_TOOLCHAIN_HAS_SYNC_1
|
||||
|
||||
config BR2_TOOLCHAIN_HAS_SYNC_4
|
||||
bool
|
||||
default y
|
||||
depends on !BR2_m68k_cf
|
||||
depends on !BR2_sparc
|
||||
depends on !(BR2_arc && !BR2_ARC_ATOMIC_EXT)
|
||||
|
||||
# The availability of __sync for 8-byte types on ARM is somewhat
|
||||
# complicated:
|
||||
#
|
||||
# - It appeared in gcc starting with gcc 4.7.
|
||||
#
|
||||
# - On ARMv7, there is no problem, it can be directly implemented in
|
||||
# userspace.
|
||||
#
|
||||
# - On < ARMv7, it requires help from the kernel. Unfortunately, the
|
||||
# libgcc code implementing 8-byte __sync with the help from the
|
||||
# kernel calls __write() when a failure occurs, which is a function
|
||||
# internal to glibc, not available in uClibc and musl. This means
|
||||
# that the 8-byte __sync operations are not available on < ARMv7
|
||||
# with uClibc and musl. This problem was fixed as part of gcc
|
||||
# PR68059, which was backported to the gcc 5 branch, but isn't yet
|
||||
# part of any gcc 5.x release.
|
||||
#
|
||||
config BR2_TOOLCHAIN_ARM_HAS_SYNC_8
|
||||
bool
|
||||
default y
|
||||
depends on BR2_arm || BR2_armeb
|
||||
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
|
||||
depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_ARM_CPU_ARMV7A
|
||||
|
||||
# 8-byte intrinsics available on most x86 CPUs, except a few old ones
|
||||
config BR2_TOOLCHAIN_X86_HAS_SYNC_8
|
||||
bool
|
||||
default y
|
||||
depends on BR2_i386
|
||||
depends on !BR2_x86_i486
|
||||
depends on !BR2_x86_c3
|
||||
depends on !BR2_x86_winchip_c6
|
||||
depends on !BR2_x86_winchip2
|
||||
|
||||
# 8-byte intrinsics available:
|
||||
# - On all 64 bits architecture
|
||||
# - On a certain combinations of ARM platforms
|
||||
# - On certain x86 32 bits CPUs
|
||||
config BR2_TOOLCHAIN_HAS_SYNC_8
|
||||
bool
|
||||
default y if BR2_ARCH_IS_64
|
||||
default y if BR2_TOOLCHAIN_ARM_HAS_SYNC_8
|
||||
default y if BR2_TOOLCHAIN_X86_HAS_SYNC_8
|
||||
|
||||
# libatomic is available since gcc 4.8, when thread support is
|
||||
# enabled. Also, libatomic doesn't recognize "uclinux" as a valid OS
|
||||
# part of the tuple, and is therefore not build on uclinux targets,
|
||||
# which is why BR2_BINFMT_FLAT configurations are excluded.
|
||||
config BR2_TOOLCHAIN_HAS_LIBATOMIC
|
||||
bool
|
||||
default y if BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 && \
|
||||
BR2_TOOLCHAIN_HAS_THREADS && \
|
||||
!BR2_BINFMT_FLAT
|
||||
|
||||
# __atomic intrinsics are available:
|
||||
# - with gcc 4.8, either through built-ins or libatomic, on all
|
||||
# architectures. Since we don't want to separate the cases where
|
||||
# libatomic is needed vs. not needed, we simplify thing and only
|
||||
# support situations where libatomic is available, even if on some
|
||||
# architectures libatomic is not strictly needed as all __atomic
|
||||
# intrinsics might be built-in. The only case where libatomic is
|
||||
# missing entirely is when the toolchain does not have support for
|
||||
# threads. However, a package that does not need threads but still
|
||||
# uses atomics is quite a corner case, which does not warrant the
|
||||
# added complexity.
|
||||
# - with gcc 4.7, libatomic did not exist, so only built-ins are
|
||||
# available. This means that __atomic can only be used in a subset
|
||||
# of the architectures
|
||||
config BR2_TOOLCHAIN_HAS_ATOMIC
|
||||
bool
|
||||
default y if BR2_TOOLCHAIN_HAS_LIBATOMIC
|
||||
default y if BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 && BR2_arm
|
||||
default y if BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 && BR2_armeb
|
||||
default y if BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 && BR2_xtensa
|
||||
default y if BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 && BR2_ARCH_IS_64
|
||||
|
||||
# - libquadmath is not needed/available on all architectures (but gcc
|
||||
# correctly handles this already).
|
||||
# - At least, libquadmath is available on:
|
||||
# - i*86
|
||||
# - x86_64
|
||||
# - When available, libquadmath requires wchar support.
|
||||
config BR2_TOOLCHAIN_HAS_LIBQUADMATH
|
||||
bool
|
||||
default y if BR2_i386 || BR2_x86_64
|
||||
@@ -11,14 +11,20 @@ comment "glibc toolchains only available with shared lib support"
|
||||
# Kept toolchains sorted by architecture in order to use some toolchain
|
||||
# as default choice
|
||||
|
||||
# Aarch64 (use Linaro toolchain by default)
|
||||
# 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"
|
||||
|
||||
# ARM (use Linaro toolchain by default)
|
||||
# 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"
|
||||
|
||||
@@ -53,15 +59,16 @@ choice
|
||||
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.
|
||||
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.
|
||||
Select this option if you want to use a pre-installed
|
||||
toolchain. Specify the path to this toolchain in
|
||||
BR2_TOOLCHAIN_EXTERNAL_PATH.
|
||||
|
||||
endchoice
|
||||
|
||||
@@ -106,13 +113,19 @@ config BR2_TOOLCHAIN_EXTERNAL_PREFIX
|
||||
# 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"
|
||||
|
||||
# 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"
|
||||
|
||||
|
||||
@@ -77,7 +77,11 @@ ifneq ($(TOOLCHAIN_EXTERNAL_PREFIX),)
|
||||
TOOLCHAIN_EXTERNAL_BIN := $(dir $(shell which $(TOOLCHAIN_EXTERNAL_PREFIX)-gcc))
|
||||
endif
|
||||
else
|
||||
TOOLCHAIN_EXTERNAL_BIN = $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/bin
|
||||
TOOLCHAIN_EXTERNAL_REL_BIN_PATH = $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_REL_BIN_PATH))
|
||||
ifeq ($(TOOLCHAIN_EXTERNAL_REL_BIN_PATH),)
|
||||
TOOLCHAIN_EXTERNAL_REL_BIN_PATH = bin
|
||||
endif
|
||||
TOOLCHAIN_EXTERNAL_BIN = $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/$(TOOLCHAIN_EXTERNAL_REL_BIN_PATH)
|
||||
endif
|
||||
|
||||
# If this is a buildroot toolchain, it already has a wrapper which we want to
|
||||
@@ -147,18 +151,6 @@ TOOLCHAIN_EXTERNAL_LIBS += $(call qstrip,$(BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS))
|
||||
# Definition of the CFLAGS to use with the external toolchain, as well as the
|
||||
# common toolchain wrapper build arguments
|
||||
#
|
||||
ifeq ($(call qstrip,$(BR2_GCC_TARGET_CPU_REVISION)),)
|
||||
CC_TARGET_CPU_ := $(call qstrip,$(BR2_GCC_TARGET_CPU))
|
||||
else
|
||||
CC_TARGET_CPU_ := $(call qstrip,$(BR2_GCC_TARGET_CPU)-$(BR2_GCC_TARGET_CPU_REVISION))
|
||||
endif
|
||||
CC_TARGET_ARCH_ := $(call qstrip,$(BR2_GCC_TARGET_ARCH))
|
||||
CC_TARGET_ABI_ := $(call qstrip,$(BR2_GCC_TARGET_ABI))
|
||||
CC_TARGET_NAN_ := $(call qstrip,$(BR2_GCC_TARGET_NAN))
|
||||
CC_TARGET_FP32_MODE_ := $(call qstrip,$(BR2_GCC_TARGET_FP32_MODE))
|
||||
CC_TARGET_FPU_ := $(call qstrip,$(BR2_GCC_TARGET_FPU))
|
||||
CC_TARGET_FLOAT_ABI_ := $(call qstrip,$(BR2_GCC_TARGET_FLOAT_ABI))
|
||||
CC_TARGET_MODE_ := $(call qstrip,$(BR2_GCC_TARGET_MODE))
|
||||
|
||||
# march/mtune/floating point mode needs to be passed to the external toolchain
|
||||
# to select the right multilib variant
|
||||
@@ -166,39 +158,39 @@ ifeq ($(BR2_x86_64),y)
|
||||
TOOLCHAIN_EXTERNAL_CFLAGS += -m64
|
||||
TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_64
|
||||
endif
|
||||
ifneq ($(CC_TARGET_ARCH_),)
|
||||
TOOLCHAIN_EXTERNAL_CFLAGS += -march=$(CC_TARGET_ARCH_)
|
||||
TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_ARCH='"$(CC_TARGET_ARCH_)"'
|
||||
ifneq ($(GCC_TARGET_ARCH),)
|
||||
TOOLCHAIN_EXTERNAL_CFLAGS += -march=$(GCC_TARGET_ARCH)
|
||||
TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_ARCH='"$(GCC_TARGET_ARCH)"'
|
||||
endif
|
||||
ifneq ($(CC_TARGET_CPU_),)
|
||||
TOOLCHAIN_EXTERNAL_CFLAGS += -mcpu=$(CC_TARGET_CPU_)
|
||||
TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_CPU='"$(CC_TARGET_CPU_)"'
|
||||
ifneq ($(GCC_TARGET_CPU),)
|
||||
TOOLCHAIN_EXTERNAL_CFLAGS += -mcpu=$(GCC_TARGET_CPU)
|
||||
TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_CPU='"$(GCC_TARGET_CPU)"'
|
||||
endif
|
||||
ifneq ($(CC_TARGET_ABI_),)
|
||||
TOOLCHAIN_EXTERNAL_CFLAGS += -mabi=$(CC_TARGET_ABI_)
|
||||
TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_ABI='"$(CC_TARGET_ABI_)"'
|
||||
ifneq ($(GCC_TARGET_ABI),)
|
||||
TOOLCHAIN_EXTERNAL_CFLAGS += -mabi=$(GCC_TARGET_ABI)
|
||||
TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_ABI='"$(GCC_TARGET_ABI)"'
|
||||
endif
|
||||
ifeq ($(BR2_TOOLCHAIN_HAS_MNAN_OPTION),y)
|
||||
ifneq ($(CC_TARGET_NAN_),)
|
||||
TOOLCHAIN_EXTERNAL_CFLAGS += -mnan=$(CC_TARGET_NAN_)
|
||||
TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_NAN='"$(CC_TARGET_NAN_)"'
|
||||
ifneq ($(GCC_TARGET_NAN),)
|
||||
TOOLCHAIN_EXTERNAL_CFLAGS += -mnan=$(GCC_TARGET_NAN)
|
||||
TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_NAN='"$(GCC_TARGET_NAN)"'
|
||||
endif
|
||||
endif
|
||||
ifneq ($(CC_TARGET_FP32_MODE_),)
|
||||
TOOLCHAIN_EXTERNAL_CFLAGS += -mfp$(CC_TARGET_FP32_MODE_)
|
||||
TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_FP32_MODE='"$(CC_TARGET_FP32_MODE_)"'
|
||||
ifneq ($(GCC_TARGET_FP32_MODE),)
|
||||
TOOLCHAIN_EXTERNAL_CFLAGS += -mfp$(GCC_TARGET_FP32_MODE)
|
||||
TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_FP32_MODE='"$(GCC_TARGET_FP32_MODE)"'
|
||||
endif
|
||||
ifneq ($(CC_TARGET_FPU_),)
|
||||
TOOLCHAIN_EXTERNAL_CFLAGS += -mfpu=$(CC_TARGET_FPU_)
|
||||
TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_FPU='"$(CC_TARGET_FPU_)"'
|
||||
ifneq ($(GCC_TARGET_FPU),)
|
||||
TOOLCHAIN_EXTERNAL_CFLAGS += -mfpu=$(GCC_TARGET_FPU)
|
||||
TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_FPU='"$(GCC_TARGET_FPU)"'
|
||||
endif
|
||||
ifneq ($(CC_TARGET_FLOAT_ABI_),)
|
||||
TOOLCHAIN_EXTERNAL_CFLAGS += -mfloat-abi=$(CC_TARGET_FLOAT_ABI_)
|
||||
TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_FLOAT_ABI='"$(CC_TARGET_FLOAT_ABI_)"'
|
||||
ifneq ($(GCC_TARGET_FLOAT_ABI),)
|
||||
TOOLCHAIN_EXTERNAL_CFLAGS += -mfloat-abi=$(GCC_TARGET_FLOAT_ABI)
|
||||
TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_FLOAT_ABI='"$(GCC_TARGET_FLOAT_ABI)"'
|
||||
endif
|
||||
ifneq ($(CC_TARGET_MODE_),)
|
||||
TOOLCHAIN_EXTERNAL_CFLAGS += -m$(CC_TARGET_MODE_)
|
||||
TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_MODE='"$(CC_TARGET_MODE_)"'
|
||||
ifneq ($(GCC_TARGET_MODE),)
|
||||
TOOLCHAIN_EXTERNAL_CFLAGS += -m$(GCC_TARGET_MODE)
|
||||
TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_MODE='"$(GCC_TARGET_MODE)"'
|
||||
endif
|
||||
ifeq ($(BR2_BINFMT_FLAT),y)
|
||||
TOOLCHAIN_EXTERNAL_CFLAGS += -Wl,-elf2flt
|
||||
@@ -553,8 +545,7 @@ define $(2)_CONFIGURE_CMDS
|
||||
$$(call check_uclibc,$$$${SYSROOT_DIR}) ; \
|
||||
elif test "$$(BR2_TOOLCHAIN_EXTERNAL_MUSL)" = "y" ; then \
|
||||
$$(call check_musl,\
|
||||
"$$(TOOLCHAIN_EXTERNAL_CC) $$(TOOLCHAIN_EXTERNAL_CFLAGS)",\
|
||||
$$(TOOLCHAIN_EXTERNAL_READELF)) ; \
|
||||
"$$(TOOLCHAIN_EXTERNAL_CC) $$(TOOLCHAIN_EXTERNAL_CFLAGS)") ; \
|
||||
else \
|
||||
$$(call check_glibc,$$$${SYSROOT_DIR}) ; \
|
||||
fi
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
config BR2_TOOLCHAIN_EXTERNAL_ARM_AARCH64_BE
|
||||
bool "Arm AArch64 BE 2018.11"
|
||||
depends on BR2_aarch64_be
|
||||
depends on BR2_HOSTARCH = "x86_64"
|
||||
depends on !BR2_STATIC_LIBS
|
||||
select BR2_TOOLCHAIN_EXTERNAL_GLIBC
|
||||
select BR2_TOOLCHAIN_HAS_SSP
|
||||
select BR2_INSTALL_LIBSTDCPP
|
||||
select BR2_TOOLCHAIN_HAS_NATIVE_RPC
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_20
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_8
|
||||
select BR2_TOOLCHAIN_HAS_FORTRAN
|
||||
help
|
||||
Arm toolchain for the AArch64 Big Endian architecture.
|
||||
|
||||
This is the same toolchain that was previously distributed by
|
||||
Linaro.
|
||||
|
||||
https://developer.arm.com/open-source/gnu-toolchain
|
||||
@@ -0,0 +1,9 @@
|
||||
if BR2_TOOLCHAIN_EXTERNAL_ARM_AARCH64_BE
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_PREFIX
|
||||
default "aarch64_be-linux-gnu"
|
||||
|
||||
config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL
|
||||
default "toolchain-external-arm-aarch64-be"
|
||||
|
||||
endif
|
||||
@@ -0,0 +1,4 @@
|
||||
# From https://developer.arm.com/-/media/Files/downloads/gnu-a/8.2-2018.11/gcc-arm-8.2-2018.11-x86_64-aarch64_be-linux-gnu.tar.xz.asc
|
||||
md5 ab9a31ebe529b0a0cae78e610a9ffa0b gcc-arm-8.2-2018.11-x86_64-aarch64_be-linux-gnu.tar.xz
|
||||
# locally calculated
|
||||
sha256 36df73194804ac52053edf469c7ace73fb4b243a8306dadfb7b95c4f485abde4 gcc-arm-8.2-2018.11-x86_64-aarch64_be-linux-gnu.tar.xz
|
||||
@@ -0,0 +1,12 @@
|
||||
################################################################################
|
||||
#
|
||||
# toolchain-external-arm-aarch64-be
|
||||
#
|
||||
################################################################################
|
||||
|
||||
TOOLCHAIN_EXTERNAL_ARM_AARCH64_BE_VERSION = 2018.11
|
||||
TOOLCHAIN_EXTERNAL_ARM_AARCH64_BE_SITE = https://developer.arm.com/-/media/Files/downloads/gnu-a/8.2-$(TOOLCHAIN_EXTERNAL_ARM_AARCH64_BE_VERSION)
|
||||
|
||||
TOOLCHAIN_EXTERNAL_ARM_AARCH64_BE_SOURCE = gcc-arm-8.2-$(TOOLCHAIN_EXTERNAL_ARM_AARCH64_BE_VERSION)-x86_64-aarch64_be-linux-gnu.tar.xz
|
||||
|
||||
$(eval $(toolchain-external-package))
|
||||
@@ -0,0 +1,19 @@
|
||||
config BR2_TOOLCHAIN_EXTERNAL_ARM_AARCH64
|
||||
bool "Arm AArch64 2018.11"
|
||||
depends on BR2_aarch64
|
||||
depends on BR2_HOSTARCH = "x86_64"
|
||||
depends on !BR2_STATIC_LIBS
|
||||
select BR2_TOOLCHAIN_EXTERNAL_GLIBC
|
||||
select BR2_TOOLCHAIN_HAS_SSP
|
||||
select BR2_INSTALL_LIBSTDCPP
|
||||
select BR2_TOOLCHAIN_HAS_NATIVE_RPC
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_20
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_8
|
||||
select BR2_TOOLCHAIN_HAS_FORTRAN
|
||||
help
|
||||
Arm toolchain for the AArch64 architecture.
|
||||
|
||||
This is the same toolchain that was previously distributed by
|
||||
Linaro.
|
||||
|
||||
https://developer.arm.com/open-source/gnu-toolchain
|
||||
@@ -0,0 +1,9 @@
|
||||
if BR2_TOOLCHAIN_EXTERNAL_ARM_AARCH64
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_PREFIX
|
||||
default "aarch64-linux-gnu"
|
||||
|
||||
config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL
|
||||
default "toolchain-external-arm-aarch64"
|
||||
|
||||
endif
|
||||
@@ -0,0 +1,4 @@
|
||||
# From https://developer.arm.com/-/media/Files/downloads/gnu-a/8.2-2018.11/gcc-arm-8.2-2018.11-x86_64-aarch64-linux-gnu.tar.xz.asc
|
||||
md5 319ca548ff05b0ec1008988a7e5ab619 gcc-arm-8.2-2018.11-x86_64-aarch64-linux-gnu.tar.xz
|
||||
# locally calculated
|
||||
sha256 0142366da2f30feb1c366997cbdaa02286c8f1aa527c0fc177ee5ce8e77970fc gcc-arm-8.2-2018.11-x86_64-aarch64-linux-gnu.tar.xz
|
||||
@@ -0,0 +1,12 @@
|
||||
################################################################################
|
||||
#
|
||||
# toolchain-external-arm-aarch64
|
||||
#
|
||||
################################################################################
|
||||
|
||||
TOOLCHAIN_EXTERNAL_ARM_AARCH64_VERSION = 2018.11
|
||||
TOOLCHAIN_EXTERNAL_ARM_AARCH64_SITE = https://developer.arm.com/-/media/Files/downloads/gnu-a/8.2-$(TOOLCHAIN_EXTERNAL_ARM_AARCH64_VERSION)
|
||||
|
||||
TOOLCHAIN_EXTERNAL_ARM_AARCH64_SOURCE = gcc-arm-8.2-$(TOOLCHAIN_EXTERNAL_ARM_AARCH64_VERSION)-x86_64-aarch64-linux-gnu.tar.xz
|
||||
|
||||
$(eval $(toolchain-external-package))
|
||||
@@ -0,0 +1,30 @@
|
||||
comment "Arm toolchains available for Cortex-A + EABIhf"
|
||||
depends on BR2_arm
|
||||
depends on !BR2_ARM_CPU_ARMV7A || !BR2_ARM_EABIHF
|
||||
depends on !BR2_STATIC_LIBS
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_ARM_ARM
|
||||
bool "Arm ARM 2018.11"
|
||||
depends on BR2_arm
|
||||
depends on BR2_ARM_CPU_ARMV7A || BR2_ARM_CPU_ARMV8A
|
||||
depends on BR2_HOSTARCH = "x86_64"
|
||||
depends on BR2_ARM_EABIHF
|
||||
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_TOOLCHAIN_HEADERS_AT_LEAST_4_20
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_8
|
||||
select BR2_TOOLCHAIN_HAS_FORTRAN
|
||||
help
|
||||
Arm toolchain for the ARM architecture. It uses GCC 8.2.1,
|
||||
GDB 8.1.1, glibc 2.28, Binutils 2.30. It generates code that
|
||||
runs on all Cortex-A profile devices, but tuned for the
|
||||
Cortex-A9. The code generated uses the hard floating point
|
||||
calling convention, and uses the VFPv3-D16 FPU instructions.
|
||||
|
||||
This is the same toolchain that was previously distributed by
|
||||
Linaro.
|
||||
|
||||
https://developer.arm.com/open-source/gnu-toolchain
|
||||
@@ -0,0 +1,9 @@
|
||||
if BR2_TOOLCHAIN_EXTERNAL_ARM_ARM
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_PREFIX
|
||||
default "arm-linux-gnueabihf"
|
||||
|
||||
config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL
|
||||
default "toolchain-external-arm-arm"
|
||||
|
||||
endif
|
||||
@@ -0,0 +1,4 @@
|
||||
# From https://developer.arm.com/-/media/Files/downloads/gnu-a/8.2-2018.11/gcc-arm-8.2-2018.11-x86_64-arm-linux-gnueabihf.tar.xz.asc
|
||||
md5 59ccf965837ed1c5ba59e5ad4b688b21 gcc-arm-8.2-2018.11-x86_64-arm-linux-gnueabihf.tar.xz
|
||||
# locally calculated
|
||||
sha256 3f9bc7a68f744a5edc7caebff5f3f2c3bc1ff9d8ac8b05f7680a0071461deede gcc-arm-8.2-2018.11-x86_64-arm-linux-gnueabihf.tar.xz
|
||||
@@ -0,0 +1,12 @@
|
||||
################################################################################
|
||||
#
|
||||
# toolchain-external-arm-arm
|
||||
#
|
||||
################################################################################
|
||||
|
||||
TOOLCHAIN_EXTERNAL_ARM_ARM_VERSION = 2018.11
|
||||
TOOLCHAIN_EXTERNAL_ARM_ARM_SITE = https://developer.arm.com/-/media/Files/downloads/gnu-a/8.2-$(TOOLCHAIN_EXTERNAL_ARM_ARM_VERSION)
|
||||
|
||||
TOOLCHAIN_EXTERNAL_ARM_ARM_SOURCE = gcc-arm-8.2-$(TOOLCHAIN_EXTERNAL_ARM_ARM_VERSION)-x86_64-arm-linux-gnueabihf.tar.xz
|
||||
|
||||
$(eval $(toolchain-external-package))
|
||||
@@ -1,19 +1,19 @@
|
||||
config BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS
|
||||
bool "Codescape IMG GNU Linux Toolchain 2016.05"
|
||||
bool "Codescape IMG GNU Linux Toolchain 2018.09"
|
||||
depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
|
||||
depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_5
|
||||
depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_7
|
||||
depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
|
||||
depends on BR2_MIPS_CPU_MIPS32R6 || (BR2_MIPS_CPU_MIPS64R6 && !BR2_MIPS_SOFT_FLOAT)
|
||||
select BR2_TOOLCHAIN_EXTERNAL_GLIBC
|
||||
select BR2_INSTALL_LIBSTDCPP
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_7
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_6
|
||||
select BR2_TOOLCHAIN_HAS_FORTRAN
|
||||
help
|
||||
Codescape IMG GNU Linux Toolchain 2016.05 for the MIPS
|
||||
architecture, from Imagination Technologies. It uses gcc
|
||||
4.9.2, binutils 2.24.90, glibc 2.20, gdb 7.9.1 and kernel
|
||||
headers 4.7. It has support for the following variants:
|
||||
Codescape IMG GNU Linux Toolchain 2018.09 for the MIPS
|
||||
architecture, from MIPS Tech LLC. It uses gcc 6.3.0,
|
||||
binutils 2.28.51, glibc 2.20, gdb 7.9.1 and kernel headers
|
||||
4.7. It has support for the following variants:
|
||||
- MIPS32r6 - Big-Endian, Hard-Float, 2008 NaN, o32 ABI
|
||||
Select 'MIPS (big endian)' Target Architecture
|
||||
Select 'mips 32r6' Target Architecture Variant
|
||||
@@ -30,12 +30,14 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS
|
||||
Select 'MIPS (little endian)' Target Architecture
|
||||
Select 'mips 32r6' Target Architecture Variant
|
||||
Enable 'Use soft-float'
|
||||
- MIPS32r6 - Little-Endian, Hard-Float, 2008 NaN, o32 ABI, microMIPS
|
||||
- MIPS32r6 - Little-Endian, Hard-Float, 2008 NaN, o32 ABI,
|
||||
microMIPS
|
||||
Select 'MIPS (little endian)' Target Architecture
|
||||
Select 'mips 32r6' Target Architecture Variant
|
||||
Disable 'Use soft-float'
|
||||
Set BR2_TARGET_OPTIMIZATION to '-mmicromips'
|
||||
- MIPS32r6 - Little-Endian, Soft-Float, 2008 NaN, o32 ABI, microMIPS
|
||||
- MIPS32r6 - Little-Endian, Soft-Float, 2008 NaN, o32 ABI,
|
||||
microMIPS
|
||||
Select 'MIPS (little endian)' Target Architecture
|
||||
Select 'mips 32r6' Target Architecture Variant
|
||||
Enable 'Use soft-float'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Codescape toolchains from Imagination Technologies
|
||||
# From: http://codescape-mips-sdk.imgtec.com/components/toolchain/2016.05-06/downloads.html
|
||||
sha256 8d9cdf711dd402d7bf82883d425c221038fe8ce9d0c91a3f6b30939d9d55476c Codescape.GNU.Tools.Package.2016.05-06.for.MIPS.IMG.Linux.CentOS-5.x86.tar.gz
|
||||
sha256 6e2784d6df962fe4db7510c8a62ce3947b73f54207b10e18b52da59d1bc487bd Codescape.GNU.Tools.Package.2016.05-06.for.MIPS.IMG.Linux.CentOS-5.x86_64.tar.gz
|
||||
# Codescape toolchains from MIPS Tech LLC
|
||||
# From: https://codescape.mips.com/components/toolchain/nanomips/2018.09-02/downloads.html
|
||||
sha256 ac035f3b6a8767522977963d8e1490520d58bccca7956f4503a1eefff6492b71 Codescape.GNU.Tools.Package.2018.09-02.for.MIPS.IMG.Linux.CentOS-6.x86.tar.gz
|
||||
sha256 09280f4fcbb993607905bf9a43bf5f3db2beed85726f0675b8453e19a9ddc429 Codescape.GNU.Tools.Package.2018.09-02.for.MIPS.IMG.Linux.CentOS-6.x86_64.tar.gz
|
||||
|
||||
@@ -4,14 +4,14 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_VERSION = 2016.05-06
|
||||
TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_SITE = http://codescape-mips-sdk.imgtec.com/components/toolchain/$(TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_VERSION)
|
||||
TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_VERSION = 2018.09-02
|
||||
TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_SITE = https://codescape.mips.com/components/toolchain/$(TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_VERSION)
|
||||
TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_STRIP_COMPONENTS = 2
|
||||
|
||||
ifeq ($(HOSTARCH),x86)
|
||||
TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_SOURCE = Codescape.GNU.Tools.Package.$(TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_VERSION).for.MIPS.IMG.Linux.CentOS-5.x86.tar.gz
|
||||
TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_SOURCE = Codescape.GNU.Tools.Package.$(TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_VERSION).for.MIPS.IMG.Linux.CentOS-6.x86.tar.gz
|
||||
else
|
||||
TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_SOURCE = Codescape.GNU.Tools.Package.$(TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_VERSION).for.MIPS.IMG.Linux.CentOS-5.x86_64.tar.gz
|
||||
TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_SOURCE = Codescape.GNU.Tools.Package.$(TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_VERSION).for.MIPS.IMG.Linux.CentOS-6.x86_64.tar.gz
|
||||
endif
|
||||
|
||||
# Special fixup for Codescape MIPS toolchains, that have bin-<abi> and
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
config BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS
|
||||
bool "Codescape MTI GNU Linux Toolchain 2016.05"
|
||||
bool "Codescape MTI GNU Linux Toolchain 2018.09"
|
||||
depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
|
||||
depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_5
|
||||
depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_7
|
||||
depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
|
||||
depends on BR2_MIPS_CPU_MIPS32R2 || (BR2_MIPS_CPU_MIPS64R2 && !BR2_MIPS_SOFT_FLOAT) || \
|
||||
BR2_MIPS_CPU_MIPS32R5 || (BR2_MIPS_CPU_MIPS64R5 && !BR2_MIPS_SOFT_FLOAT)
|
||||
select BR2_TOOLCHAIN_EXTERNAL_GLIBC
|
||||
select BR2_INSTALL_LIBSTDCPP
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_7
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_6
|
||||
select BR2_TOOLCHAIN_HAS_FORTRAN
|
||||
help
|
||||
Codescape MTI GNU Linux Toolchain 2016.05 for the MIPS
|
||||
architecture, from Imagination Technologies. It uses gcc
|
||||
4.9.2, binutils 2.24.90, glibc 2.20, gdb 7.9.1 and kernel
|
||||
headers 4.7. It has support for the following variants:
|
||||
Codescape MTI GNU Linux Toolchain 2018.09 for the MIPS
|
||||
architecture, from MIPS Tech LLC. It uses gcc 6.3.0,
|
||||
binutils 2.28.51, glibc 2.20, gdb 7.9.1 and kernel headers
|
||||
4.7. It has support for the following variants:
|
||||
- MIPS32r2 - Big-Endian, Hard-Float, Legacy NaN, o32 ABI
|
||||
Select 'MIPS (big endian)' Target Architecture
|
||||
Select 'mips 32r2' Target Architecture Variant
|
||||
@@ -41,12 +41,14 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS
|
||||
Select 'MIPS (little endian)' Target Architecture
|
||||
Select 'mips 32r2' Target Architecture Variant
|
||||
Enable 'Use soft-float'
|
||||
- MIPS32r2 - Little-Endian, Hard-Float, 2008 NaN, o32 ABI, microMIPS
|
||||
- MIPS32r2 - Little-Endian, Hard-Float, 2008 NaN, o32 ABI,
|
||||
microMIPS
|
||||
Select 'MIPS (little endian)' Target Architecture
|
||||
Select 'mips 32r2' Target Architecture Variant
|
||||
Enable 'Use soft-float'
|
||||
Set BR2_TARGET_OPTIMIZATION to '-mmicromips'
|
||||
- MIPS32r2 - Little-Endian, Soft-Float, Legacy NaN, o32 ABI, microMIPS
|
||||
- MIPS32r2 - Little-Endian, Soft-Float, Legacy NaN, o32 ABI,
|
||||
microMIPS
|
||||
Select 'MIPS (little endian)' Target Architecture
|
||||
Select 'mips 32r2' Target Architecture Variant
|
||||
Disable 'Use soft-float'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Codescape toolchains from Imagination Technologies
|
||||
# From: http://codescape-mips-sdk.imgtec.com/components/toolchain/2016.05-06/downloads.html
|
||||
sha256 3a7aba259beb05f0e3054b5a61a368a5085447f47361949a938ac9cc7de4227b Codescape.GNU.Tools.Package.2016.05-06.for.MIPS.MTI.Linux.CentOS-5.x86.tar.gz
|
||||
sha256 a676a8b3647c8c651fb8935a75db8f00b79d36ec55676f7c05bac12b550788f7 Codescape.GNU.Tools.Package.2016.05-06.for.MIPS.MTI.Linux.CentOS-5.x86_64.tar.gz
|
||||
# Codescape toolchains from MIPS Tech LLC
|
||||
# From: https://codescape.mips.com/components/toolchain/nanomips/2018.09-02/downloads.html
|
||||
sha256 c883a404fd7ea5718e2249a530802e223381f2be52265f88e9b1ce7035c232f3 Codescape.GNU.Tools.Package.2018.09-02.for.MIPS.MTI.Linux.CentOS-6.x86.tar.gz
|
||||
sha256 d6310a970b0a8a19ad8e0a2b3ead8c38ee90d0e284a9b2511200ce447f460d2c Codescape.GNU.Tools.Package.2018.09-02.for.MIPS.MTI.Linux.CentOS-6.x86_64.tar.gz
|
||||
|
||||
@@ -4,14 +4,14 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_VERSION = 2016.05-06
|
||||
TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_SITE = http://codescape-mips-sdk.imgtec.com/components/toolchain/$(TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_VERSION)
|
||||
TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_VERSION = 2018.09-02
|
||||
TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_SITE = https://codescape.mips.com/components/toolchain/$(TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_VERSION)
|
||||
TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_STRIP_COMPONENTS = 2
|
||||
|
||||
ifeq ($(HOSTARCH),x86)
|
||||
TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_SOURCE = Codescape.GNU.Tools.Package.$(TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_VERSION).for.MIPS.MTI.Linux.CentOS-5.x86.tar.gz
|
||||
TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_SOURCE = Codescape.GNU.Tools.Package.$(TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_VERSION).for.MIPS.MTI.Linux.CentOS-6.x86.tar.gz
|
||||
else
|
||||
TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_SOURCE = Codescape.GNU.Tools.Package.$(TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_VERSION).for.MIPS.MTI.Linux.CentOS-5.x86_64.tar.gz
|
||||
TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_SOURCE = Codescape.GNU.Tools.Package.$(TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_VERSION).for.MIPS.MTI.Linux.CentOS-6.x86_64.tar.gz
|
||||
endif
|
||||
|
||||
# Special fixup for Codescape MIPS toolchains, that have bin-<abi> and
|
||||
|
||||
@@ -13,6 +13,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_7
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_6
|
||||
select BR2_TOOLCHAIN_HAS_BINUTILS_BUG_19615 # based-on binutils-2.26
|
||||
select BR2_TOOLCHAIN_HAS_BINUTILS_BUG_20006 # based-on binutils-2.26
|
||||
help
|
||||
Sourcery CodeBench toolchain for the amd64 (x86_64)
|
||||
architectures, from Mentor Graphics. It uses gcc 6.2,
|
||||
|
||||
@@ -1,16 +1,17 @@
|
||||
config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII
|
||||
bool "Sourcery CodeBench Nios-II 2017.05"
|
||||
bool "Sourcery CodeBench Nios-II 2018.05"
|
||||
depends on BR2_nios2
|
||||
depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_7
|
||||
depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_8
|
||||
depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
|
||||
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_HEADERS_AT_LEAST_4_7
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_6
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_15
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_7
|
||||
help
|
||||
Sourcery CodeBench toolchain for the Nios-II architecture,
|
||||
from Mentor Graphics. It uses gcc 6.3, binutils 2.26,
|
||||
glibc 2.25, gdb 7.11 and kernel headers 4.7.
|
||||
from Mentor Graphics. It uses gcc 7.3, binutils 2.28,
|
||||
glibc 2.27, gdb 8.0.1 and kernel headers 4.15.5.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# From https://sourcery.mentor.com/GNUToolchain/release3302
|
||||
md5 54b7f7056c2159f3a9ddeca8ca775ed1 sourceryg++-2017.05-4-nios2-linux-gnu-i686-pc-linux-gnu.tar.bz2
|
||||
md5 529a7fecf33d0d113a446413b9d1e173 sourceryg++-2017.05-4-nios2-linux-gnu.src.tar.bz2
|
||||
# From https://sourcery.mentor.com/GNUToolchain/release3374
|
||||
md5 4f536b3b9b4e00f483e82e304c0a27ae sourceryg++-2018.05-5-nios2-linux-gnu-i686-pc-linux-gnu.tar.bz2
|
||||
md5 be42ab83da2e8db7b73dc890c2549570 sourceryg++-2018.05-5-nios2-linux-gnu.src.tar.bz2
|
||||
# Locally calculated
|
||||
sha256 3f0307da3c0770b7cc3ed4a845038e6e438d3e3a96ce880f9a86b3d35f948a07 sourceryg++-2017.05-4-nios2-linux-gnu-i686-pc-linux-gnu.tar.bz2
|
||||
sha256 6e65878d0453708ee19098d3d68985bda244938d35999f3859915a2f5574fa08 sourceryg++-2017.05-4-nios2-linux-gnu.src.tar.bz2
|
||||
sha256 c19afb432b5b23f8d5d639831d3a423a3ea3c9cc62e0015020d20ea2eb36dd1b sourceryg++-2018.05-5-nios2-linux-gnu-i686-pc-linux-gnu.tar.bz2
|
||||
sha256 d73a6364106dd62352711f932d3be8e97fdaaa548995678b5d38d9f21e22437a sourceryg++-2018.05-5-nios2-linux-gnu.src.tar.bz2
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII_VERSION = 2017.05-4
|
||||
TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII_VERSION = 2018.05-5
|
||||
|
||||
TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII_SITE = https://sourcery.mentor.com/public/gnu_toolchain/$(TOOLCHAIN_EXTERNAL_PREFIX)
|
||||
TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII_SOURCE = sourceryg++-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII_VERSION)-$(TOOLCHAIN_EXTERNAL_PREFIX)-i686-pc-linux-gnu.tar.bz2
|
||||
|
||||
@@ -12,12 +12,22 @@ config BR2_TOOLCHAIN_EXTERNAL_URL
|
||||
help
|
||||
URL of the custom toolchain tarball to download and install.
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_REL_BIN_PATH
|
||||
string "Toolchain relative binary path"
|
||||
default "bin"
|
||||
depends on BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD
|
||||
help
|
||||
Path to where the binaries (e.g. the compiler) can be found,
|
||||
relative to the downloaded toolchain root directory. The
|
||||
default is "bin" and is correct for most toolchains.
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX
|
||||
string "Toolchain prefix"
|
||||
default "$(ARCH)-linux"
|
||||
|
||||
choice
|
||||
bool "External toolchain gcc version"
|
||||
default BR2_TOOLCHAIN_EXTERNAL_GCC_8 if BR2_ARCH_NEEDS_GCC_AT_LEAST_8
|
||||
default BR2_TOOLCHAIN_EXTERNAL_GCC_7 if BR2_ARCH_NEEDS_GCC_AT_LEAST_7
|
||||
default BR2_TOOLCHAIN_EXTERNAL_GCC_6 if BR2_ARCH_NEEDS_GCC_AT_LEAST_6
|
||||
default BR2_TOOLCHAIN_EXTERNAL_GCC_5 if BR2_ARCH_NEEDS_GCC_AT_LEAST_5
|
||||
@@ -28,8 +38,13 @@ choice
|
||||
Set to the gcc version that is used by your external
|
||||
toolchain.
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_GCC_8
|
||||
bool "8.x"
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_8
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_GCC_7
|
||||
bool "7.x"
|
||||
depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_8
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_7
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_GCC_6
|
||||
@@ -108,6 +123,26 @@ choice
|
||||
m = ( LINUX_VERSION_CODE >> 8 ) & 0xFF
|
||||
p = ( LINUX_VERSION_CODE >> 0 ) & 0xFF
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_20
|
||||
bool "4.20.x"
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_20
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_19
|
||||
bool "4.19.x"
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_19
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_18
|
||||
bool "4.18.x"
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_18
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_17
|
||||
bool "4.17.x"
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_17
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_16
|
||||
bool "4.16.x"
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_16
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_15
|
||||
bool "4.15.x"
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_15
|
||||
@@ -264,9 +299,6 @@ choice
|
||||
config BR2_TOOLCHAIN_EXTERNAL_CUSTOM_UCLIBC
|
||||
bool "uClibc/uClibc-ng"
|
||||
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
|
||||
help
|
||||
Select this option if your external toolchain uses the
|
||||
uClibc (available from http://www.uclibc.org/)
|
||||
@@ -320,8 +352,8 @@ config BR2_TOOLCHAIN_EXTERNAL_LOCALE
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS
|
||||
bool "Toolchain has threads support?"
|
||||
select BR2_TOOLCHAIN_HAS_THREADS
|
||||
default y
|
||||
select BR2_TOOLCHAIN_HAS_THREADS
|
||||
help
|
||||
Select this option if your external toolchain has thread
|
||||
support. If you don't know, leave the default value,
|
||||
@@ -331,8 +363,8 @@ if BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG
|
||||
bool "Toolchain has threads debugging support?"
|
||||
select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
|
||||
default y
|
||||
select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
|
||||
help
|
||||
Select this option if your external toolchain has thread
|
||||
debugging support. If you don't know, leave the default
|
||||
@@ -340,8 +372,8 @@ config BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_NPTL
|
||||
bool "Toolchain has NPTL threads support?"
|
||||
select BR2_TOOLCHAIN_HAS_THREADS_NPTL
|
||||
default y
|
||||
select BR2_TOOLCHAIN_HAS_THREADS_NPTL
|
||||
help
|
||||
Select this option if your external toolchain uses the NPTL
|
||||
(Native Posix Thread Library) implementation of Posix
|
||||
@@ -354,9 +386,9 @@ endif # BR2_TOOLCHAIN_EXTERNAL_CUSTOM_UCLIBC
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_HAS_SSP
|
||||
bool "Toolchain has SSP support?"
|
||||
select BR2_TOOLCHAIN_HAS_SSP
|
||||
default y if BR2_TOOLCHAIN_EXTERNAL_GLIBC
|
||||
default y if BR2_TOOLCHAIN_EXTERNAL_MUSL
|
||||
select BR2_TOOLCHAIN_HAS_SSP
|
||||
help
|
||||
Selection this option if your external toolchain has Stack
|
||||
Smashing Protection support enabled. If you don't know,
|
||||
@@ -365,9 +397,9 @@ config BR2_TOOLCHAIN_EXTERNAL_HAS_SSP
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_INET_RPC
|
||||
bool "Toolchain has RPC support?"
|
||||
select BR2_TOOLCHAIN_HAS_NATIVE_RPC
|
||||
depends on !BR2_TOOLCHAIN_EXTERNAL_MUSL
|
||||
default y if BR2_TOOLCHAIN_EXTERNAL_GLIBC
|
||||
depends on !BR2_TOOLCHAIN_EXTERNAL_MUSL
|
||||
select BR2_TOOLCHAIN_HAS_NATIVE_RPC
|
||||
help
|
||||
Select this option if your external toolchain supports
|
||||
RPC. If you don't know, leave the default value, Buildroot
|
||||
@@ -381,6 +413,14 @@ config BR2_TOOLCHAIN_EXTERNAL_CXX
|
||||
support. If you don't know, leave the default value,
|
||||
Buildroot will tell you if it's correct or not.
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_FORTRAN
|
||||
bool "Toolchain has Fortran support?"
|
||||
select BR2_TOOLCHAIN_HAS_FORTRAN
|
||||
help
|
||||
Select this option if your external toolchain has Fortran
|
||||
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
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
config BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64_BE
|
||||
bool "Linaro AArch64 BE 2018.05"
|
||||
depends on BR2_aarch64_be
|
||||
depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
|
||||
depends on !BR2_STATIC_LIBS
|
||||
select BR2_TOOLCHAIN_EXTERNAL_GLIBC
|
||||
select BR2_TOOLCHAIN_HAS_SSP
|
||||
select BR2_INSTALL_LIBSTDCPP
|
||||
select BR2_TOOLCHAIN_HAS_NATIVE_RPC
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_10
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_7
|
||||
select BR2_TOOLCHAIN_HAS_FORTRAN
|
||||
help
|
||||
Toolchain for the AArch64 Big Endian architecture, from
|
||||
http://www.linaro.org/engineering/armv8/
|
||||
@@ -0,0 +1,9 @@
|
||||
if BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64_BE
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_PREFIX
|
||||
default "aarch64_be-linux-gnu"
|
||||
|
||||
config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL
|
||||
default "toolchain-external-linaro-aarch64-be"
|
||||
|
||||
endif
|
||||
@@ -0,0 +1,3 @@
|
||||
# Locally calculated
|
||||
sha256 412da19c1d1bff0f3172bc19fd2c024207d8d716dbe7a8dad4bf9e3d6b71d149 gcc-linaro-7.3.1-2018.05-i686_aarch64_be-linux-gnu.tar.xz
|
||||
sha256 277c1483f8dbd6007c945ffeb706fa1ba1da8ec1c397cf5cf1e29c25081426e5 gcc-linaro-7.3.1-2018.05-x86_64_aarch64_be-linux-gnu.tar.xz
|
||||
@@ -0,0 +1,16 @@
|
||||
################################################################################
|
||||
#
|
||||
# toolchain-external-linaro-aarch64-be
|
||||
#
|
||||
################################################################################
|
||||
|
||||
TOOLCHAIN_EXTERNAL_LINARO_AARCH64_BE_VERSION = 2018.05
|
||||
TOOLCHAIN_EXTERNAL_LINARO_AARCH64_BE_SITE = https://releases.linaro.org/components/toolchain/binaries/7.3-$(TOOLCHAIN_EXTERNAL_LINARO_AARCH64_BE_VERSION)/aarch64_be-linux-gnu
|
||||
|
||||
ifeq ($(HOSTARCH),x86)
|
||||
TOOLCHAIN_EXTERNAL_LINARO_AARCH64_BE_SOURCE = gcc-linaro-7.3.1-$(TOOLCHAIN_EXTERNAL_LINARO_AARCH64_BE_VERSION)-i686_aarch64_be-linux-gnu.tar.xz
|
||||
else
|
||||
TOOLCHAIN_EXTERNAL_LINARO_AARCH64_BE_SOURCE = gcc-linaro-7.3.1-$(TOOLCHAIN_EXTERNAL_LINARO_AARCH64_BE_VERSION)-x86_64_aarch64_be-linux-gnu.tar.xz
|
||||
endif
|
||||
|
||||
$(eval $(toolchain-external-package))
|
||||
@@ -1,5 +1,5 @@
|
||||
config BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64
|
||||
bool "Linaro AArch64 2017.11"
|
||||
bool "Linaro AArch64 2018.05"
|
||||
depends on BR2_aarch64
|
||||
depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
|
||||
depends on !BR2_STATIC_LIBS
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
# Locally calculated
|
||||
sha256 3130033eaf18d7f7d775aa8ade1c7044683b0db6f332cae29cab7d1caaee97ed gcc-linaro-7.2.1-2017.11-i686_aarch64-linux-gnu.tar.xz
|
||||
sha256 20181f828e1075f1a493947ff91e82dd578ce9f8638fbdfc39e24b62857d8f8d gcc-linaro-7.2.1-2017.11-x86_64_aarch64-linux-gnu.tar.xz
|
||||
sha256 466b801a60491ae1e2ce9952e0615cf04cf611596c6ffd5bfe8a89ef5be47e03 gcc-linaro-7.3.1-2018.05-i686_aarch64-linux-gnu.tar.xz
|
||||
sha256 73eed74e593e2267504efbcf3678918bb22409ab7afa3dc7c135d2c6790c2345 gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz
|
||||
|
||||
@@ -4,13 +4,13 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
TOOLCHAIN_EXTERNAL_LINARO_AARCH64_VERSION = 2017.11
|
||||
TOOLCHAIN_EXTERNAL_LINARO_AARCH64_SITE = https://releases.linaro.org/components/toolchain/binaries/7.2-$(TOOLCHAIN_EXTERNAL_LINARO_AARCH64_VERSION)/aarch64-linux-gnu
|
||||
TOOLCHAIN_EXTERNAL_LINARO_AARCH64_VERSION = 2018.05
|
||||
TOOLCHAIN_EXTERNAL_LINARO_AARCH64_SITE = https://releases.linaro.org/components/toolchain/binaries/7.3-$(TOOLCHAIN_EXTERNAL_LINARO_AARCH64_VERSION)/aarch64-linux-gnu
|
||||
|
||||
ifeq ($(HOSTARCH),x86)
|
||||
TOOLCHAIN_EXTERNAL_LINARO_AARCH64_SOURCE = gcc-linaro-7.2.1-$(TOOLCHAIN_EXTERNAL_LINARO_AARCH64_VERSION)-i686_aarch64-linux-gnu.tar.xz
|
||||
TOOLCHAIN_EXTERNAL_LINARO_AARCH64_SOURCE = gcc-linaro-7.3.1-$(TOOLCHAIN_EXTERNAL_LINARO_AARCH64_VERSION)-i686_aarch64-linux-gnu.tar.xz
|
||||
else
|
||||
TOOLCHAIN_EXTERNAL_LINARO_AARCH64_SOURCE = gcc-linaro-7.2.1-$(TOOLCHAIN_EXTERNAL_LINARO_AARCH64_VERSION)-x86_64_aarch64-linux-gnu.tar.xz
|
||||
TOOLCHAIN_EXTERNAL_LINARO_AARCH64_SOURCE = gcc-linaro-7.3.1-$(TOOLCHAIN_EXTERNAL_LINARO_AARCH64_VERSION)-x86_64_aarch64-linux-gnu.tar.xz
|
||||
endif
|
||||
|
||||
$(eval $(toolchain-external-package))
|
||||
|
||||
@@ -4,7 +4,7 @@ comment "Linaro toolchains available for Cortex-A + EABIhf"
|
||||
depends on !BR2_STATIC_LIBS
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM
|
||||
bool "Linaro ARM 2017.11"
|
||||
bool "Linaro ARM 2018.05"
|
||||
depends on BR2_arm
|
||||
depends on BR2_ARM_CPU_ARMV7A || BR2_ARM_CPU_ARMV8A
|
||||
depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
|
||||
@@ -19,8 +19,8 @@ config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM
|
||||
select BR2_TOOLCHAIN_HAS_FORTRAN
|
||||
help
|
||||
Linaro toolchain for the ARM architecture. It uses Linaro
|
||||
GCC 2017.11 (based on gcc 7.2.1), Linaro GDB 2017.11 (based on
|
||||
GDB 8.0), glibc 2.25, Binutils 2017.11 (based on 2.28). It
|
||||
GCC 2018.05 (based on gcc 7.3.1), Linaro GDB 2018.05 (based on
|
||||
GDB 8.1), glibc 2.25, Binutils 2018.05 (based on 2.28). It
|
||||
generates code that runs on all Cortex-A profile devices,
|
||||
but tuned for the Cortex-A9. The code generated is Thumb 2,
|
||||
with the hard floating point calling convention, and uses
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
# Locally calculated
|
||||
sha256 72919a3a99d4e28309bc8b0e615f44c65824ef012de50db3ffe9a34776e6f510 gcc-linaro-7.2.1-2017.11-i686_arm-linux-gnueabihf.tar.xz
|
||||
sha256 cee0087b1f1205b73996651b99acd3a926d136e71047048f1758ffcec69b1ca2 gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabihf.tar.xz
|
||||
sha256 0613b5be14eb7d50a772bbd72069c428558e6e53fa5fce7201d75a13a475ffff gcc-linaro-7.3.1-2018.05-i686_arm-linux-gnueabihf.tar.xz
|
||||
sha256 7248bf105d0d468887a9b8a7120bb281ac8ad0223d9cb3d00dc7c2d498485d91 gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf.tar.xz
|
||||
|
||||
@@ -4,13 +4,13 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
TOOLCHAIN_EXTERNAL_LINARO_ARM_VERSION = 2017.11
|
||||
TOOLCHAIN_EXTERNAL_LINARO_ARM_SITE = https://releases.linaro.org/components/toolchain/binaries/7.2-$(TOOLCHAIN_EXTERNAL_LINARO_ARM_VERSION)/arm-linux-gnueabihf
|
||||
TOOLCHAIN_EXTERNAL_LINARO_ARM_VERSION = 2018.05
|
||||
TOOLCHAIN_EXTERNAL_LINARO_ARM_SITE = https://releases.linaro.org/components/toolchain/binaries/7.3-$(TOOLCHAIN_EXTERNAL_LINARO_ARM_VERSION)/arm-linux-gnueabihf
|
||||
|
||||
ifeq ($(HOSTARCH),x86)
|
||||
TOOLCHAIN_EXTERNAL_LINARO_ARM_SOURCE = gcc-linaro-7.2.1-$(TOOLCHAIN_EXTERNAL_LINARO_ARM_VERSION)-i686_arm-linux-gnueabihf.tar.xz
|
||||
TOOLCHAIN_EXTERNAL_LINARO_ARM_SOURCE = gcc-linaro-7.3.1-$(TOOLCHAIN_EXTERNAL_LINARO_ARM_VERSION)-i686_arm-linux-gnueabihf.tar.xz
|
||||
else
|
||||
TOOLCHAIN_EXTERNAL_LINARO_ARM_SOURCE = gcc-linaro-7.2.1-$(TOOLCHAIN_EXTERNAL_LINARO_ARM_VERSION)-x86_64_arm-linux-gnueabihf.tar.xz
|
||||
TOOLCHAIN_EXTERNAL_LINARO_ARM_SOURCE = gcc-linaro-7.3.1-$(TOOLCHAIN_EXTERNAL_LINARO_ARM_VERSION)-x86_64_arm-linux-gnueabihf.tar.xz
|
||||
endif
|
||||
|
||||
$(eval $(toolchain-external-package))
|
||||
|
||||
@@ -4,7 +4,7 @@ comment "Linaro toolchains available for Cortex-A + EABIhf"
|
||||
depends on !BR2_STATIC_LIBS
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARMEB
|
||||
bool "Linaro armeb 2017.11"
|
||||
bool "Linaro armeb 2018.05"
|
||||
depends on BR2_armeb
|
||||
depends on BR2_ARM_CPU_ARMV7A || BR2_ARM_CPU_ARMV8A
|
||||
depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
|
||||
@@ -18,8 +18,8 @@ config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARMEB
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_7
|
||||
help
|
||||
Linaro toolchain for the ARM big endian architecture. It
|
||||
uses Linaro GCC 2017.11 (based on gcc 7.2.1), Linaro GDB
|
||||
2017.11 (based on GDB 8.0), glibc 2.25, Binutils 2017.11
|
||||
uses Linaro GCC 2018.05 (based on gcc 7.3.1), Linaro GDB
|
||||
2018.05 (based on GDB 8.1), glibc 2.25, Binutils 2018.05
|
||||
(based on 2.28). It generates code that runs on all Cortex-A
|
||||
profile devices, but tuned for the Cortex-A9. The code
|
||||
generated is Thumb 2, with the hard floating point calling
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
# Locally calculated
|
||||
sha256 1337734b61fa246ab20a371d2802d09ad80d7b17eb62327b3b69b9edfb6bc4a1 gcc-linaro-7.2.1-2017.11-i686_armeb-linux-gnueabihf.tar.xz
|
||||
sha256 c313149b6ea14e31f643aeee39e1460ae4245b75c75befd042ff4b63a07971c0 gcc-linaro-7.2.1-2017.11-x86_64_armeb-linux-gnueabihf.tar.xz
|
||||
sha256 60bf9924a0c039c94deb85cb9b129d0f28b28eadbb1fb3f7e2e227679cc43fc9 gcc-linaro-7.3.1-2018.05-i686_armeb-linux-gnueabihf.tar.xz
|
||||
sha256 c1bbd598b78458d6b7ea1c971fddf736c00d57890c7131fdafd4e789289c42f9 gcc-linaro-7.3.1-2018.05-x86_64_armeb-linux-gnueabihf.tar.xz
|
||||
|
||||
@@ -4,14 +4,14 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
TOOLCHAIN_EXTERNAL_LINARO_ARMEB_VERSION = 2017.11
|
||||
TOOLCHAIN_EXTERNAL_LINARO_ARMEB_VERSION = 2018.05
|
||||
|
||||
TOOLCHAIN_EXTERNAL_LINARO_ARMEB_SITE = https://releases.linaro.org/components/toolchain/binaries/7.2-$(TOOLCHAIN_EXTERNAL_LINARO_ARMEB_VERSION)/armeb-linux-gnueabihf
|
||||
TOOLCHAIN_EXTERNAL_LINARO_ARMEB_SITE = https://releases.linaro.org/components/toolchain/binaries/7.3-$(TOOLCHAIN_EXTERNAL_LINARO_ARMEB_VERSION)/armeb-linux-gnueabihf
|
||||
|
||||
ifeq ($(HOSTARCH),x86)
|
||||
TOOLCHAIN_EXTERNAL_LINARO_ARMEB_SOURCE = gcc-linaro-7.2.1-$(TOOLCHAIN_EXTERNAL_LINARO_ARMEB_VERSION)-i686_armeb-linux-gnueabihf.tar.xz
|
||||
TOOLCHAIN_EXTERNAL_LINARO_ARMEB_SOURCE = gcc-linaro-7.3.1-$(TOOLCHAIN_EXTERNAL_LINARO_ARMEB_VERSION)-i686_armeb-linux-gnueabihf.tar.xz
|
||||
else
|
||||
TOOLCHAIN_EXTERNAL_LINARO_ARMEB_SOURCE = gcc-linaro-7.2.1-$(TOOLCHAIN_EXTERNAL_LINARO_ARMEB_VERSION)-x86_64_armeb-linux-gnueabihf.tar.xz
|
||||
TOOLCHAIN_EXTERNAL_LINARO_ARMEB_SOURCE = gcc-linaro-7.3.1-$(TOOLCHAIN_EXTERNAL_LINARO_ARMEB_VERSION)-x86_64_armeb-linux-gnueabihf.tar.xz
|
||||
endif
|
||||
|
||||
$(eval $(toolchain-external-package))
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
config BR2_TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC
|
||||
bool "Synopsys ARC 2017.09 toolchain"
|
||||
bool "Synopsys ARC 2018.09 toolchain"
|
||||
depends on BR2_arc
|
||||
depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_7
|
||||
depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_8
|
||||
depends on BR2_HOSTARCH = "x86_64"
|
||||
select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
|
||||
select BR2_INSTALL_LIBSTDCPP
|
||||
@@ -11,8 +11,8 @@ config BR2_TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC
|
||||
select BR2_TOOLCHAIN_HAS_THREADS_NPTL
|
||||
select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
|
||||
select BR2_TOOLCHAIN_HAS_SSP
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_7
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_15
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_8
|
||||
help
|
||||
Toolchain for the ARC cores, from
|
||||
https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# From https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases/tag/arc-2017.09-release
|
||||
sha256 ef74a7567a7341bc5e5d7bf6bcff64c2515be175d08a7def52df847583080ac2 arc_gnu_2017.09_prebuilt_uclibc_le_arc700_linux_install.tar.gz
|
||||
sha256 8a7620dd7500641de40adb2ae490d90d53fcad01d13f77ba305fc00df32a26e3 arc_gnu_2017.09_prebuilt_uclibc_be_arc700_linux_install.tar.gz
|
||||
sha256 ef7afba0da38cc08d863850f4987ebd16c71c8920c51990f490ad79389f102c1 arc_gnu_2017.09_prebuilt_uclibc_le_archs_linux_install.tar.gz
|
||||
sha256 eab1d4872298008bd141104368ec0b7873af600a09704827f767ae57b067c874 arc_gnu_2017.09_prebuilt_uclibc_be_archs_linux_install.tar.gz
|
||||
# From https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases/tag/arc-2018.09-release
|
||||
sha256 324b422eec3b9b36ea64c9e13167a4467fc13ab230eff34f2fa785039b460c16 arc_gnu_2018.09_prebuilt_uclibc_le_arc700_linux_install.tar.gz
|
||||
sha256 b0299ad9be0c300237789e5bf8e45d72bf040aab00c3718fbdb4160b75d2ed8f arc_gnu_2018.09_prebuilt_uclibc_be_arc700_linux_install.tar.gz
|
||||
sha256 d1a4c039416b3da4d94ea066f861cc96ec60afec9c2bab1b2e937555b5e05238 arc_gnu_2018.09_prebuilt_uclibc_le_archs_linux_install.tar.gz
|
||||
sha256 a519ed3686dc8e3c5f86646988d38647aa039f4af3204d9b7e84efa26cd37221 arc_gnu_2018.09_prebuilt_uclibc_be_archs_linux_install.tar.gz
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC_VERSION = 2017.09
|
||||
TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC_VERSION = 2018.09
|
||||
TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC_SITE = https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases/download/arc-$(TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC_VERSION)-release
|
||||
|
||||
ifeq ($(BR2_arc750d)$(BR2_arc770d),y)
|
||||
|
||||
@@ -49,8 +49,12 @@ static char _date_[sizeof("-D__DATE__=\"MMM DD YYYY\"")];
|
||||
* -D__TIME__=
|
||||
* -D__DATE__=
|
||||
* -Wno-builtin-macro-redefined
|
||||
* -Wl,-z,now
|
||||
* -Wl,-z,relro
|
||||
* -fPIE
|
||||
* -pie
|
||||
*/
|
||||
#define EXCLUSIVE_ARGS 6
|
||||
#define EXCLUSIVE_ARGS 10
|
||||
|
||||
static char *predef_args[] = {
|
||||
#ifdef BR_CCACHE
|
||||
@@ -94,6 +98,15 @@ static char *predef_args[] = {
|
||||
#if defined(BR_MIPS_TARGET_BIG_ENDIAN) || defined(BR_ARC_TARGET_BIG_ENDIAN)
|
||||
"-EB",
|
||||
#endif
|
||||
#ifdef BR_SSP_REGULAR
|
||||
"-fstack-protector",
|
||||
#endif
|
||||
#ifdef BR_SSP_STRONG
|
||||
"-fstack-protector-strong",
|
||||
#endif
|
||||
#ifdef BR_SSP_ALL
|
||||
"-fstack-protector-all",
|
||||
#endif
|
||||
#ifdef BR_ADDITIONAL_CFLAGS
|
||||
BR_ADDITIONAL_CFLAGS
|
||||
#endif
|
||||
@@ -236,7 +249,7 @@ int main(int argc, char **argv)
|
||||
char *env_debug;
|
||||
char *paranoid_wrapper;
|
||||
int paranoid;
|
||||
int ret, i, count = 0, debug;
|
||||
int ret, i, count = 0, debug, found_shared = 0;
|
||||
|
||||
/* Calculate the relative paths */
|
||||
basename = strrchr(progpath, '/');
|
||||
@@ -363,6 +376,80 @@ int main(int argc, char **argv)
|
||||
*cur++ = "-Wno-builtin-macro-redefined";
|
||||
}
|
||||
|
||||
#ifdef BR2_RELRO_FULL
|
||||
/* Patterned after Fedora/Gentoo hardening approaches.
|
||||
* https://fedoraproject.org/wiki/Changes/Harden_All_Packages
|
||||
* https://wiki.gentoo.org/wiki/Hardened/Toolchain#Position_Independent_Executables_.28PIEs.29
|
||||
*
|
||||
* A few checks are added to allow disabling of PIE
|
||||
* 1) -fno-pie and -no-pie are used by other distros to disable PIE in
|
||||
* cases where the compiler enables it by default. The logic below
|
||||
* maintains that behavior.
|
||||
* Ref: https://wiki.ubuntu.com/SecurityTeam/PIE
|
||||
* 2) A check for -fno-PIE has been used in older Linux Kernel builds
|
||||
* in a similar way to -fno-pie or -no-pie.
|
||||
* 3) A check is added for Kernel and U-boot defines
|
||||
* (-D__KERNEL__ and -D__UBOOT__).
|
||||
*/
|
||||
for (i = 1; i < argc; i++) {
|
||||
/* Apply all incompatible link flag and disable checks first */
|
||||
if (!strcmp(argv[i], "-r") ||
|
||||
!strcmp(argv[i], "-Wl,-r") ||
|
||||
!strcmp(argv[i], "-static") ||
|
||||
!strcmp(argv[i], "-D__KERNEL__") ||
|
||||
!strcmp(argv[i], "-D__UBOOT__") ||
|
||||
!strcmp(argv[i], "-fno-pie") ||
|
||||
!strcmp(argv[i], "-fno-PIE") ||
|
||||
!strcmp(argv[i], "-no-pie"))
|
||||
break;
|
||||
/* Record that shared was present which disables -pie but don't
|
||||
* break out of loop as a check needs to occur that possibly
|
||||
* still allows -fPIE to be set
|
||||
*/
|
||||
if (!strcmp(argv[i], "-shared"))
|
||||
found_shared = 1;
|
||||
}
|
||||
|
||||
if (i == argc) {
|
||||
/* Compile and link condition checking have been kept split
|
||||
* between these two loops, as there maybe already are valid
|
||||
* compile flags set for position independence. In that case
|
||||
* the wrapper just adds the -pie for link.
|
||||
*/
|
||||
for (i = 1; i < argc; i++) {
|
||||
if (!strcmp(argv[i], "-fpie") ||
|
||||
!strcmp(argv[i], "-fPIE") ||
|
||||
!strcmp(argv[i], "-fpic") ||
|
||||
!strcmp(argv[i], "-fPIC"))
|
||||
break;
|
||||
}
|
||||
/* Both args below can be set at compile/link time
|
||||
* and are ignored correctly when not used
|
||||
*/
|
||||
if(i == argc)
|
||||
*cur++ = "-fPIE";
|
||||
|
||||
if (!found_shared)
|
||||
*cur++ = "-pie";
|
||||
}
|
||||
#endif
|
||||
/* Are we building the Linux Kernel or U-Boot? */
|
||||
for (i = 1; i < argc; i++) {
|
||||
if (!strcmp(argv[i], "-D__KERNEL__") ||
|
||||
!strcmp(argv[i], "-D__UBOOT__"))
|
||||
break;
|
||||
}
|
||||
if (i == argc) {
|
||||
/* https://wiki.gentoo.org/wiki/Hardened/Toolchain#Mark_Read-Only_Appropriate_Sections */
|
||||
#ifdef BR2_RELRO_PARTIAL
|
||||
*cur++ = "-Wl,-z,relro";
|
||||
#endif
|
||||
#ifdef BR2_RELRO_FULL
|
||||
*cur++ = "-Wl,-z,now";
|
||||
*cur++ = "-Wl,-z,relro";
|
||||
#endif
|
||||
}
|
||||
|
||||
paranoid_wrapper = getenv("BR_COMPILER_PARANOID_UNSAFE_PATH");
|
||||
if (paranoid_wrapper && strlen(paranoid_wrapper) > 0)
|
||||
paranoid = 1;
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
# This file contains the definition of the toolchain wrapper build commands
|
||||
################################################################################
|
||||
#
|
||||
# definition of the toolchain wrapper build commands
|
||||
#
|
||||
################################################################################
|
||||
|
||||
# We use --hash-style=both to increase the compatibility of the generated
|
||||
# binary with older platforms, except for MIPS, where the only acceptable
|
||||
@@ -41,6 +45,20 @@ ifeq ($(BR2_CCACHE_USE_BASEDIR),y)
|
||||
TOOLCHAIN_WRAPPER_ARGS += -DBR_CCACHE_BASEDIR='"$(BASE_DIR)"'
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_RELRO_PARTIAL),y)
|
||||
TOOLCHAIN_WRAPPER_ARGS += -DBR2_RELRO_PARTIAL
|
||||
else ifeq ($(BR2_RELRO_FULL),y)
|
||||
TOOLCHAIN_WRAPPER_ARGS += -DBR2_RELRO_FULL
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_SSP_REGULAR),y)
|
||||
TOOLCHAIN_WRAPPER_ARGS += -DBR_SSP_REGULAR
|
||||
else ifeq ($(BR2_SSP_STRONG),y)
|
||||
TOOLCHAIN_WRAPPER_ARGS += -DBR_SSP_STRONG
|
||||
else ifeq ($(BR2_SSP_ALL),y)
|
||||
TOOLCHAIN_WRAPPER_ARGS += -DBR_SSP_ALL
|
||||
endif
|
||||
|
||||
define TOOLCHAIN_WRAPPER_BUILD
|
||||
$(HOSTCC) $(HOST_CFLAGS) $(TOOLCHAIN_WRAPPER_ARGS) \
|
||||
-s -Wl,--hash-style=$(TOOLCHAIN_WRAPPER_HASH_STYLE) \
|
||||
|
||||
@@ -1,22 +1,16 @@
|
||||
# This file contains toolchain-related customisation of the content
|
||||
# of the target/ directory. Those customisations are added to the
|
||||
# TARGET_FINALIZE_HOOKS, to be applied just after all packages
|
||||
# have been built.
|
||||
################################################################################
|
||||
#
|
||||
# toolchain-related customisation of the content of the target/ directory
|
||||
#
|
||||
################################################################################
|
||||
|
||||
# Install default nsswitch.conf file if the skeleton doesn't provide it
|
||||
ifeq ($(BR2_TOOLCHAIN_USES_GLIBC),y)
|
||||
define GLIBC_COPY_NSSWITCH_FILE
|
||||
$(Q)if [ ! -f "$(TARGET_DIR)/etc/nsswitch.conf" ]; then \
|
||||
$(INSTALL) -D -m 0644 package/glibc/nsswitch.conf $(TARGET_DIR)/etc/nsswitch.conf ; \
|
||||
fi
|
||||
endef
|
||||
TOOLCHAIN_TARGET_FINALIZE_HOOKS += GLIBC_COPY_NSSWITCH_FILE
|
||||
endif
|
||||
# Those customisations are added to the TARGET_FINALIZE_HOOKS, to be applied
|
||||
# just after all packages have been built.
|
||||
|
||||
# Install the gconv modules
|
||||
ifeq ($(BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY),y)
|
||||
GCONV_LIBS = $(call qstrip,$(BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_LIST))
|
||||
define COPY_GCONV_LIBS
|
||||
TOOLCHAIN_GLIBC_GCONV_LIBS = $(call qstrip,$(BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_LIST))
|
||||
define TOOLCHAIN_GLIBC_COPY_GCONV_LIBS
|
||||
$(Q)found_gconv=no; \
|
||||
for d in $(TOOLCHAIN_EXTERNAL_PREFIX) ''; do \
|
||||
[ -d "$(STAGING_DIR)/usr/lib/$${d}/gconv" ] || continue; \
|
||||
@@ -27,14 +21,14 @@ define COPY_GCONV_LIBS
|
||||
printf "Unable to find gconv modules\n" >&2; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
if [ -z "$(GCONV_LIBS)" ]; then \
|
||||
if [ -z "$(TOOLCHAIN_GLIBC_GCONV_LIBS)" ]; then \
|
||||
$(INSTALL) -m 0644 -D $(STAGING_DIR)/usr/lib/$${d}/gconv/gconv-modules \
|
||||
$(TARGET_DIR)/usr/lib/gconv/gconv-modules && \
|
||||
$(INSTALL) -m 0644 $(STAGING_DIR)/usr/lib/$${d}/gconv/*.so \
|
||||
$(TARGET_DIR)/usr/lib/gconv \
|
||||
|| exit 1; \
|
||||
else \
|
||||
for l in $(GCONV_LIBS); do \
|
||||
for l in $(TOOLCHAIN_GLIBC_GCONV_LIBS); do \
|
||||
$(INSTALL) -m 0644 -D $(STAGING_DIR)/usr/lib/$${d}/gconv/$${l}.so \
|
||||
$(TARGET_DIR)/usr/lib/gconv/$${l}.so \
|
||||
|| exit 1; \
|
||||
@@ -47,10 +41,10 @@ define COPY_GCONV_LIBS
|
||||
|| exit 1; \
|
||||
done; \
|
||||
done; \
|
||||
./support/scripts/expunge-gconv-modules "$(GCONV_LIBS)" \
|
||||
./support/scripts/expunge-gconv-modules "$(TOOLCHAIN_GLIBC_GCONV_LIBS)" \
|
||||
<$(STAGING_DIR)/usr/lib/$${d}/gconv/gconv-modules \
|
||||
>$(TARGET_DIR)/usr/lib/gconv/gconv-modules; \
|
||||
fi
|
||||
endef
|
||||
TOOLCHAIN_TARGET_FINALIZE_HOOKS += COPY_GCONV_LIBS
|
||||
TOOLCHAIN_TARGET_FINALIZE_HOOKS += TOOLCHAIN_GLIBC_COPY_GCONV_LIBS
|
||||
endif
|
||||
|
||||
@@ -37,7 +37,14 @@ TOOLCHAIN_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_MUSL_KERNEL_HEADERS_COMPATIBIL
|
||||
TOOLCHAIN_INSTALL_STAGING = YES
|
||||
endif
|
||||
|
||||
$(eval $(virtual-package))
|
||||
# Install default nsswitch.conf file if the skeleton doesn't provide it
|
||||
ifeq ($(BR2_TOOLCHAIN_USES_GLIBC),y)
|
||||
define GLIBC_COPY_NSSWITCH_FILE
|
||||
@if [ ! -f "$(TARGET_DIR)/etc/nsswitch.conf" ]; then \
|
||||
$(INSTALL) -D -m 0644 package/glibc/nsswitch.conf $(TARGET_DIR)/etc/nsswitch.conf ; \
|
||||
fi
|
||||
endef
|
||||
TOOLCHAIN_POST_INSTALL_TARGET_HOOKS += GLIBC_COPY_NSSWITCH_FILE
|
||||
endif
|
||||
|
||||
toolchain: $(HOST_DIR)/share/buildroot/toolchainfile.cmake
|
||||
toolchain: $(HOST_DIR)/share/buildroot/Platform/Buildroot.cmake
|
||||
$(eval $(virtual-package))
|
||||
|
||||
Reference in New Issue
Block a user