Update buidlroot to version 2016.08.1
This commit is contained in:
@@ -15,10 +15,11 @@ config BR2_TOOLCHAIN_USES_GLIBC
|
||||
select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
|
||||
select BR2_TOOLCHAIN_HAS_THREADS_NPTL
|
||||
select BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS
|
||||
select BR2_TOOLCHAIN_HAS_SSP
|
||||
select BR2_TOOLCHAIN_SUPPORTS_PIE
|
||||
|
||||
config BR2_TOOLCHAIN_USES_UCLIBC
|
||||
bool
|
||||
select BR2_TOOLCHAIN_SUPPORTS_PIE if !BR2_m68k && !BR2_microblaze && !BR2_STATIC_LIBS
|
||||
|
||||
config BR2_TOOLCHAIN_USES_MUSL
|
||||
bool
|
||||
@@ -27,7 +28,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_SSP
|
||||
select BR2_TOOLCHAIN_SUPPORTS_PIE
|
||||
|
||||
choice
|
||||
prompt "Toolchain type"
|
||||
@@ -40,8 +41,11 @@ choice
|
||||
|
||||
config BR2_TOOLCHAIN_BUILDROOT
|
||||
bool "Buildroot toolchain"
|
||||
depends on !BR2_bfin
|
||||
select BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS
|
||||
depends on !BR2_bf606
|
||||
depends on !BR2_bf607
|
||||
depends on !BR2_bf608
|
||||
depends on !BR2_bf609
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL
|
||||
bool "External toolchain"
|
||||
|
||||
@@ -6,62 +6,15 @@
|
||||
# toolchain logic, and the glibc package, so care must be taken when
|
||||
# changing this function.
|
||||
#
|
||||
# Most toolchains (CodeSourcery ones) have their libraries either in
|
||||
# /lib or /usr/lib relative to their ARCH_SYSROOT_DIR, so we search
|
||||
# libraries in:
|
||||
#
|
||||
# $${ARCH_LIB_DIR}
|
||||
# usr/$${ARCH_LIB_DIR}
|
||||
#
|
||||
# Buildroot toolchains, however, have basic libraries in /lib, and
|
||||
# libstdc++/libgcc_s in /usr/<target-name>/lib(64), so we also need to
|
||||
# search libraries in:
|
||||
#
|
||||
# usr/$(TOOLCHAIN_EXTERNAL_PREFIX)/$${ARCH_LIB_DIR}
|
||||
#
|
||||
# Linaro toolchains have most libraries in lib/<target-name>/, so we
|
||||
# need to search libraries in:
|
||||
#
|
||||
# $${ARCH_LIB_DIR}/$(TOOLCHAIN_EXTERNAL_PREFIX)
|
||||
#
|
||||
# And recent Linaro toolchains have the GCC support libraries
|
||||
# (libstdc++, libgcc_s, etc.) into a separate directory, outside of
|
||||
# the sysroot, that we called the "SUPPORT_LIB_DIR", into which we
|
||||
# need to search as well.
|
||||
#
|
||||
# Thanks to ARCH_LIB_DIR we also take into account toolchains that
|
||||
# have the libraries in lib64 and usr/lib64.
|
||||
#
|
||||
# Please be very careful to check the major toolchain sources:
|
||||
# Buildroot, Crosstool-NG, CodeSourcery and Linaro before doing any
|
||||
# modification on the below logic.
|
||||
#
|
||||
# $1: arch specific sysroot directory
|
||||
# $2: support libraries directory (can be empty)
|
||||
# $3: library directory ('lib' or 'lib64') from which libraries must be copied
|
||||
# $4: library name
|
||||
# $5: destination directory of the libary, relative to $(TARGET_DIR)
|
||||
# $1: library name
|
||||
#
|
||||
copy_toolchain_lib_root = \
|
||||
ARCH_SYSROOT_DIR="$(strip $1)"; \
|
||||
SUPPORT_LIB_DIR="$(strip $2)" ; \
|
||||
ARCH_LIB_DIR="$(strip $3)" ; \
|
||||
LIB="$(strip $4)"; \
|
||||
DESTDIR="$(strip $5)" ; \
|
||||
LIB="$(strip $1)"; \
|
||||
\
|
||||
for dir in \
|
||||
$${ARCH_SYSROOT_DIR}/$${ARCH_LIB_DIR}/$(TOOLCHAIN_EXTERNAL_PREFIX) \
|
||||
$${ARCH_SYSROOT_DIR}/usr/$(TOOLCHAIN_EXTERNAL_PREFIX)/$${ARCH_LIB_DIR} \
|
||||
$${ARCH_SYSROOT_DIR}/$${ARCH_LIB_DIR} \
|
||||
$${ARCH_SYSROOT_DIR}/usr/$${ARCH_LIB_DIR} \
|
||||
$${SUPPORT_LIB_DIR} ; do \
|
||||
LIBPATHS=`find $${dir} -maxdepth 1 -name "$${LIB}" 2>/dev/null` ; \
|
||||
if test -n "$${LIBPATHS}" ; then \
|
||||
break ; \
|
||||
fi \
|
||||
done ; \
|
||||
mkdir -p $(TARGET_DIR)/$${DESTDIR}; \
|
||||
LIBPATHS=`find $(STAGING_DIR)/ -name "$${LIB}" 2>/dev/null` ; \
|
||||
for LIBPATH in $${LIBPATHS} ; do \
|
||||
DESTDIR=`echo $${LIBPATH} | sed "s,^$(STAGING_DIR)/,," | xargs dirname` ; \
|
||||
mkdir -p $(TARGET_DIR)/$${DESTDIR}; \
|
||||
while true ; do \
|
||||
LIBNAME=`basename $${LIBPATH}`; \
|
||||
LIBDIR=`dirname $${LIBPATH}` ; \
|
||||
@@ -97,22 +50,10 @@ copy_toolchain_lib_root = \
|
||||
# corresponding architecture variants), and we don't want to import
|
||||
# them.
|
||||
#
|
||||
# Then, we need to support two types of multilib toolchains:
|
||||
# Then, if the selected architecture variant is not the default one
|
||||
# (i.e, if SYSROOT_DIR != ARCH_SYSROOT_DIR), then we :
|
||||
#
|
||||
# - The toolchains that have nested sysroots: a main sysroot, and
|
||||
# then additional sysroots available as subdirectories of the main
|
||||
# one. This is for example used by Sourcery CodeBench toolchains.
|
||||
#
|
||||
# - The toolchains that have side-by-side sysroots. Each sysroot is a
|
||||
# complete one, they simply leave one next to each other. This is
|
||||
# for example used by MIPS Codescape toolchains.
|
||||
#
|
||||
# So, we first detect if the selected architecture variant is not the
|
||||
# default one (i.e, if SYSROOT_DIR != ARCH_SYSROOT_DIR).
|
||||
#
|
||||
# If we are in the situation of a nested sysroot, we:
|
||||
#
|
||||
# * If needed, import the header files from the default architecture
|
||||
# * Import the header files from the default architecture
|
||||
# variant. Header files are typically shared between the sysroots
|
||||
# for the different architecture variants. If we use the
|
||||
# non-default one, header files were not copied by the previous
|
||||
@@ -126,14 +67,10 @@ copy_toolchain_lib_root = \
|
||||
# non-default architecture variant is used. Without this, the
|
||||
# compiler fails to find libraries and headers.
|
||||
#
|
||||
# If we are in the situation of a side-by-side sysroot, we:
|
||||
#
|
||||
# * Create a symbolic link
|
||||
#
|
||||
# Finally, some toolchains (i.e Linaro binary toolchains) store
|
||||
# support libraries (libstdc++, libgcc_s) outside of the sysroot, so
|
||||
# we simply copy all the libraries from the "support lib directory"
|
||||
# into our sysroot.
|
||||
# Some toolchains (i.e Linaro binary toolchains) store support
|
||||
# libraries (libstdc++, libgcc_s) outside of the sysroot, so we simply
|
||||
# copy all the libraries from the "support lib directory" into our
|
||||
# sysroot.
|
||||
#
|
||||
# Note that the 'locale' directories are not copied. They are huge
|
||||
# (400+MB) in CodeSourcery toolchains, and they are not really useful.
|
||||
@@ -158,25 +95,18 @@ copy_toolchain_sysroot = \
|
||||
$${ARCH_SYSROOT_DIR}/$$i/ $(STAGING_DIR)/$$i/ ; \
|
||||
fi ; \
|
||||
done ; \
|
||||
SYSROOT_DIR_CANON=`readlink -f $${SYSROOT_DIR}` ; \
|
||||
ARCH_SYSROOT_DIR_CANON=`readlink -f $${ARCH_SYSROOT_DIR}` ; \
|
||||
if [ $${SYSROOT_DIR_CANON} != $${ARCH_SYSROOT_DIR_CANON} ] ; then \
|
||||
relpath="./" ; \
|
||||
if [ $${ARCH_SYSROOT_DIR_CANON:0:$${\#SYSROOT_DIR_CANON}} == $${SYSROOT_DIR_CANON} ] ; then \
|
||||
if [ ! -d $${ARCH_SYSROOT_DIR}/usr/include ] ; then \
|
||||
cp -a $${SYSROOT_DIR}/usr/include $(STAGING_DIR)/usr ; \
|
||||
fi ; \
|
||||
mkdir -p `dirname $(STAGING_DIR)/$${ARCH_SUBDIR}` ; \
|
||||
nbslashs=`printf $${ARCH_SUBDIR} | sed 's%[^/]%%g' | wc -c` ; \
|
||||
for slash in `seq 1 $${nbslashs}` ; do \
|
||||
relpath=$${relpath}"../" ; \
|
||||
done ; \
|
||||
ln -s $${relpath} $(STAGING_DIR)/$${ARCH_SUBDIR} ; \
|
||||
echo "Symlinking $(STAGING_DIR)/$${ARCH_SUBDIR} -> $${relpath}" ; \
|
||||
elif [ `dirname $${ARCH_SYSROOT_DIR_CANON}` == `dirname $${SYSROOT_DIR_CANON}` ] ; then \
|
||||
ln -snf $${relpath} $(STAGING_DIR)/`basename $${ARCH_SYSROOT_DIR_CANON}` ; \
|
||||
echo "Symlinking $(STAGING_DIR)/`basename $${ARCH_SYSROOT_DIR_CANON}` -> $${relpath}" ; \
|
||||
if [ `readlink -f $${SYSROOT_DIR}` != `readlink -f $${ARCH_SYSROOT_DIR}` ] ; then \
|
||||
if [ ! -d $${ARCH_SYSROOT_DIR}/usr/include ] ; then \
|
||||
cp -a $${SYSROOT_DIR}/usr/include $(STAGING_DIR)/usr ; \
|
||||
fi ; \
|
||||
mkdir -p `dirname $(STAGING_DIR)/$${ARCH_SUBDIR}` ; \
|
||||
relpath="./" ; \
|
||||
nbslashs=`printf $${ARCH_SUBDIR} | sed 's%[^/]%%g' | wc -c` ; \
|
||||
for slash in `seq 1 $${nbslashs}` ; do \
|
||||
relpath=$${relpath}"../" ; \
|
||||
done ; \
|
||||
ln -s $${relpath} $(STAGING_DIR)/$${ARCH_SUBDIR} ; \
|
||||
echo "Symlinking $(STAGING_DIR)/$${ARCH_SUBDIR} -> $${relpath}" ; \
|
||||
fi ; \
|
||||
if test -n "$${SUPPORT_LIB_DIR}" ; then \
|
||||
cp -a $${SUPPORT_LIB_DIR}/* $(STAGING_DIR)/lib/ ; \
|
||||
@@ -341,8 +271,7 @@ check_uclibc = \
|
||||
$(call check_uclibc_feature,__UCLIBC_HAS_WCHAR__,BR2_USE_WCHAR,$${UCLIBC_CONFIG_FILE},Wide char support) ;\
|
||||
$(call check_uclibc_feature,__UCLIBC_HAS_THREADS__,BR2_TOOLCHAIN_HAS_THREADS,$${UCLIBC_CONFIG_FILE},Thread support) ;\
|
||||
$(call check_uclibc_feature,__PTHREADS_DEBUG_SUPPORT__,BR2_TOOLCHAIN_HAS_THREADS_DEBUG,$${UCLIBC_CONFIG_FILE},Thread debugging support) ;\
|
||||
$(call check_uclibc_feature,__UCLIBC_HAS_THREADS_NATIVE__,BR2_TOOLCHAIN_HAS_THREADS_NPTL,$${UCLIBC_CONFIG_FILE},NPTL thread support) ;\
|
||||
$(call check_uclibc_feature,__UCLIBC_HAS_SSP__,BR2_TOOLCHAIN_HAS_SSP,$${UCLIBC_CONFIG_FILE},Stack Smashing Protection support)
|
||||
$(call check_uclibc_feature,__UCLIBC_HAS_THREADS_NATIVE__,BR2_TOOLCHAIN_HAS_THREADS_NPTL,$${UCLIBC_CONFIG_FILE},NPTL thread support)
|
||||
|
||||
#
|
||||
# Check that the Buildroot configuration of the ABI matches the
|
||||
@@ -381,6 +310,24 @@ check_cplusplus = \
|
||||
exit 1 ; \
|
||||
fi
|
||||
|
||||
#
|
||||
#
|
||||
# Check that the external toolchain supports Fortran
|
||||
#
|
||||
# $1: cross-gfortran path
|
||||
#
|
||||
check_fortran = \
|
||||
__CROSS_FC=$(strip $1) ; \
|
||||
__o=$(BUILD_DIR)/.br-toolchain-test-fortran.tmp ; \
|
||||
printf 'program hello\n\tprint *, "Hello Fortran!\\n"\nend program hello\n' | \
|
||||
$${__CROSS_FC} -x f95 -o $${__o} - ; \
|
||||
if test $$? -ne 0 ; then \
|
||||
rm -f $${__o}* ; \
|
||||
echo "Fortran support is selected but is not available in external toolchain" ; \
|
||||
exit 1 ; \
|
||||
fi ; \
|
||||
rm -f $${__o}* \
|
||||
|
||||
#
|
||||
# Check that the cross-compiler given in the configuration exists
|
||||
#
|
||||
@@ -395,9 +342,12 @@ check_cross_compiler_exists = \
|
||||
fi
|
||||
|
||||
#
|
||||
# Check for toolchains known not to work with Buildroot. For now, we
|
||||
# only check for Angstrom toolchains, by looking at the vendor part of
|
||||
# the host tuple.
|
||||
# Check for toolchains known not to work with Buildroot.
|
||||
# - For the Angstrom toolchains, we check by looking at the vendor part of
|
||||
# the host tuple.
|
||||
# - Exclude distro-class toolchains which are not relocatable.
|
||||
# - Exclude broken toolchains which return "libc.a" with -print-file-name.
|
||||
# - Exclude toolchains which doesn't support --sysroot option.
|
||||
#
|
||||
# $1: cross-gcc path
|
||||
#
|
||||
@@ -418,8 +368,36 @@ check_unusable_toolchain = \
|
||||
echo "and contain a lot of pre-built libraries that would conflict with"; \
|
||||
echo "the ones Buildroot wants to build."; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
libc_a_path=`$${__CROSS_CC} -print-file-name=libc.a` ; \
|
||||
if test "$${libc_a_path}" = "libc.a" ; then \
|
||||
echo "Unable to detect the toolchain sysroot, Buildroot cannot use this toolchain." ; \
|
||||
exit 1 ; \
|
||||
fi ; \
|
||||
sysroot_dir="$(call toolchain_find_sysroot,$${__CROSS_CC})" ; \
|
||||
if test -z "$${sysroot_dir}" ; then \
|
||||
echo "External toolchain doesn't support --sysroot. Cannot use." ; \
|
||||
exit 1 ; \
|
||||
fi
|
||||
|
||||
#
|
||||
# Check if the toolchain has SSP (stack smashing protector) support
|
||||
#
|
||||
# $1: cross-gcc path
|
||||
#
|
||||
check_toolchain_ssp = \
|
||||
__CROSS_CC=$(strip $1) ; \
|
||||
__HAS_SSP=`echo 'void main(){}' | $${__CROSS_CC} -fstack-protector -x c - -o $(BUILD_DIR)/.br-toolchain-test.tmp >/dev/null 2>&1 && echo y` ; \
|
||||
if [ "$(BR2_TOOLCHAIN_HAS_SSP)" != "y" -a "$${__HAS_SSP}" = "y" ] ; then \
|
||||
echo "SSP support available in this toolchain, please enable BR2_TOOLCHAIN_EXTERNAL_HAS_SSP" ; \
|
||||
exit 1 ; \
|
||||
fi ; \
|
||||
if [ "$(BR2_TOOLCHAIN_HAS_SSP)" = "y" -a "$${__HAS_SSP}" != "y" ] ; then \
|
||||
echo "SSP support not available in this toolchain, please disable BR2_TOOLCHAIN_EXTERNAL_HAS_SSP" ; \
|
||||
exit 1 ; \
|
||||
fi ; \
|
||||
rm -f $(BUILD_DIR)/.br-toolchain-test.tmp*
|
||||
|
||||
#
|
||||
# Generate gdbinit file for use with Buildroot
|
||||
#
|
||||
|
||||
@@ -24,43 +24,23 @@ choice
|
||||
prompt "C library"
|
||||
default BR2_TOOLCHAIN_UCLIBC
|
||||
default BR2_TOOLCHAIN_BUILDROOT_GLIBC if BR2_aarch64 || BR2_aarch64_be \
|
||||
|| BR2_microblaze || BR2_powerpc64
|
||||
|| BR2_powerpc64
|
||||
|
||||
config BR2_TOOLCHAIN_BUILDROOT_UCLIBC
|
||||
bool "uClibc"
|
||||
bool "uClibc-ng"
|
||||
select BR2_TOOLCHAIN_USES_UCLIBC
|
||||
depends on BR2_arcle || BR2_arceb || BR2_arm || BR2_armeb || \
|
||||
BR2_bfin || BR2_i386 || BR2_m68k || \
|
||||
BR2_bfin || BR2_i386 || BR2_m68k || BR2_microblaze || \
|
||||
BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el || \
|
||||
BR2_powerpc || BR2_sh2a || BR2_sh4 || BR2_sh4eb || \
|
||||
BR2_sparc || BR2_xtensa || BR2_x86_64
|
||||
# Unsupported for MIPS R6
|
||||
depends on !BR2_mips_32r6 && !BR2_mips_64r6
|
||||
help
|
||||
This option selects uClibc as the C library for the
|
||||
This option selects uClibc-ng as the C library for the
|
||||
cross-compilation toolchain.
|
||||
|
||||
http://uclibc.org
|
||||
|
||||
config BR2_TOOLCHAIN_BUILDROOT_EGLIBC
|
||||
bool "eglibc"
|
||||
depends on BR2_arm || BR2_armeb || BR2_aarch64 || \
|
||||
BR2_aarch64_be || BR2_i386 || BR2_mips || \
|
||||
BR2_mipsel || BR2_mips64 || BR2_mips64el || \
|
||||
BR2_powerpc || BR2_sh || BR2_sh64 || \
|
||||
BR2_sparc || BR2_x86_64 || BR2_microblaze || \
|
||||
BR2_powerpc64
|
||||
depends on BR2_USE_MMU
|
||||
depends on !BR2_STATIC_LIBS
|
||||
depends on BR2_DEPRECATED_SINCE_2015_08
|
||||
select BR2_TOOLCHAIN_USES_GLIBC
|
||||
# our eglibc.mk enables RPC support
|
||||
select BR2_TOOLCHAIN_HAS_NATIVE_RPC
|
||||
help
|
||||
This option selects eglibc as the C library for the
|
||||
cross-compilation toolchain.
|
||||
|
||||
http://eglibc.org
|
||||
http://uclibc-ng.org
|
||||
|
||||
config BR2_TOOLCHAIN_BUILDROOT_GLIBC
|
||||
bool "glibc"
|
||||
@@ -68,9 +48,8 @@ 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_sh64 || BR2_sparc || \
|
||||
BR2_sparc64 || BR2_x86_64 || BR2_microblaze || \
|
||||
BR2_nios2
|
||||
BR2_sh || BR2_sh64 || BR2_sparc64 || \
|
||||
BR2_x86_64 || BR2_microblaze || BR2_nios2
|
||||
depends on BR2_USE_MMU
|
||||
depends on !BR2_STATIC_LIBS
|
||||
depends on !BR2_powerpc_SPE
|
||||
@@ -83,17 +62,21 @@ config BR2_TOOLCHAIN_BUILDROOT_GLIBC
|
||||
|
||||
http://www.gnu.org/software/libc/
|
||||
|
||||
comment "(e)glibc only available with shared lib support"
|
||||
comment "glibc only available with shared lib support"
|
||||
depends on BR2_USE_MMU
|
||||
depends on BR2_STATIC_LIBS
|
||||
|
||||
config BR2_TOOLCHAIN_BUILDROOT_MUSL
|
||||
bool "musl (experimental)"
|
||||
bool "musl"
|
||||
depends on BR2_aarch64 || BR2_arm || BR2_armeb || BR2_i386 || \
|
||||
BR2_microblaze || BR2_mips || BR2_mipsel || BR2_powerpc || \
|
||||
BR2_sh || BR2_x86_64
|
||||
depends on !BR2_powerpc_SPE # not supported, build breaks
|
||||
# Unsupported for MIPS R6
|
||||
depends on !BR2_mips_32r6 && !BR2_mips_64r6
|
||||
# sh2 nommu is supported by musl, but we don't have support
|
||||
# for it in Buildroot.
|
||||
depends on BR2_USE_MMU
|
||||
select BR2_TOOLCHAIN_USES_MUSL
|
||||
help
|
||||
This option selects musl as the C library for the
|
||||
@@ -104,13 +87,11 @@ endchoice
|
||||
config BR2_TOOLCHAIN_BUILDROOT_LIBC
|
||||
string
|
||||
default "uclibc" if BR2_TOOLCHAIN_BUILDROOT_UCLIBC
|
||||
# Both glibc and eglibc are handled by the package called
|
||||
# 'glibc'
|
||||
default "glibc" if BR2_TOOLCHAIN_BUILDROOT_EGLIBC
|
||||
default "glibc" if BR2_TOOLCHAIN_BUILDROOT_GLIBC
|
||||
default "musl" if BR2_TOOLCHAIN_BUILDROOT_MUSL
|
||||
|
||||
source "package/linux-headers/Config.in"
|
||||
source "package/musl/Config.in"
|
||||
source "package/uclibc/Config.in"
|
||||
source "package/glibc/Config.in"
|
||||
source "package/binutils/Config.in.host"
|
||||
|
||||
@@ -5,6 +5,10 @@
|
||||
# so put it here instead
|
||||
source "package/gdb/Config.in.host"
|
||||
|
||||
# https://sourceware.org/bugzilla/show_bug.cgi?id=19405
|
||||
config BR2_TOOLCHAIN_HAS_BINUTILS_BUG_19405
|
||||
bool
|
||||
|
||||
config BR2_TOOLCHAIN_HAS_NATIVE_RPC
|
||||
bool
|
||||
|
||||
@@ -17,6 +21,9 @@ config BR2_ENABLE_LOCALE
|
||||
config BR2_INSTALL_LIBSTDCPP
|
||||
bool
|
||||
|
||||
config BR2_TOOLCHAIN_HAS_FORTRAN
|
||||
bool
|
||||
|
||||
config BR2_TOOLCHAIN_HAS_THREADS
|
||||
bool
|
||||
|
||||
@@ -32,38 +39,8 @@ config BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS
|
||||
config BR2_TOOLCHAIN_HAS_SSP
|
||||
bool
|
||||
|
||||
config BR2_ENABLE_LOCALE_PURGE
|
||||
bool "Purge unwanted locales"
|
||||
help
|
||||
Explicitly specify what locales to install on target. If N
|
||||
then all locales supported by packages are installed.
|
||||
|
||||
config BR2_ENABLE_LOCALE_WHITELIST
|
||||
string "Locales to keep"
|
||||
default "C en_US de fr"
|
||||
depends on BR2_ENABLE_LOCALE_PURGE
|
||||
help
|
||||
Whitespace seperated list of locales to allow on target.
|
||||
Locales not listed here will be removed from the target.
|
||||
See 'locale -a' on your host for a list of locales available
|
||||
on your build host, or have a look in /usr/share/locale in
|
||||
the target file system for available locales.
|
||||
|
||||
Notice that listing a locale here doesn't guarantee that it
|
||||
will be available on the target - That purely depends on the
|
||||
support for that locale in the selected packages.
|
||||
|
||||
config BR2_GENERATE_LOCALE
|
||||
string "Generate locale data"
|
||||
default ""
|
||||
depends on \
|
||||
(BR2_TOOLCHAIN_BUILDROOT_UCLIBC && BR2_ENABLE_LOCALE) || \
|
||||
BR2_TOOLCHAIN_USES_GLIBC
|
||||
help
|
||||
Generate support for a list of locales. Locales can be
|
||||
specified with or without encoding, when no encoding is
|
||||
specified, UTF-8 is assumed. Examples of locales: en_US,
|
||||
fr_FR.UTF-8.
|
||||
config BR2_TOOLCHAIN_SUPPORTS_PIE
|
||||
bool
|
||||
|
||||
config BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY
|
||||
bool "Copy gconv libraries"
|
||||
@@ -233,10 +210,25 @@ 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
|
||||
|
||||
# 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.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
|
||||
@@ -295,10 +287,15 @@ 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
|
||||
|
||||
# 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 "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
|
||||
@@ -311,8 +308,8 @@ config BR2_TOOLCHAIN_GCC_AT_LEAST
|
||||
config BR2_TOOLCHAIN_HAS_SYNC_1
|
||||
bool
|
||||
default y
|
||||
depends on !BR2_x86_i386
|
||||
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)
|
||||
@@ -324,8 +321,8 @@ config BR2_TOOLCHAIN_HAS_SYNC_2
|
||||
config BR2_TOOLCHAIN_HAS_SYNC_4
|
||||
bool
|
||||
default y
|
||||
depends on !BR2_m68k_cf
|
||||
depends on !BR2_sparc
|
||||
depends on !BR2_x86_i386
|
||||
depends on !(BR2_arc && !BR2_ARC_ATOMIC_EXT)
|
||||
|
||||
# The availability of __sync for 8-byte types on ARM is somewhat
|
||||
@@ -357,7 +354,6 @@ config BR2_TOOLCHAIN_X86_HAS_SYNC_8
|
||||
bool
|
||||
default y
|
||||
depends on BR2_i386
|
||||
depends on !BR2_x86_i386
|
||||
depends on !BR2_x86_i486
|
||||
depends on !BR2_x86_c3
|
||||
depends on !BR2_x86_winchip_c6
|
||||
@@ -373,16 +369,44 @@ config BR2_TOOLCHAIN_HAS_SYNC_8
|
||||
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
|
||||
# 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_GCC_AT_LEAST_4_8
|
||||
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
|
||||
|
||||
@@ -3,7 +3,7 @@ if BR2_TOOLCHAIN_EXTERNAL
|
||||
choice
|
||||
prompt "Toolchain"
|
||||
|
||||
comment "(e)glibc toolchains only available with shared lib support"
|
||||
comment "glibc toolchains only available with shared lib support"
|
||||
depends on BR2_STATIC_LIBS
|
||||
|
||||
comment "Linaro toolchains available for Cortex-A + EABIhf"
|
||||
@@ -22,10 +22,12 @@ config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM
|
||||
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_3_1
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
|
||||
select BR2_TOOLCHAIN_HAS_FORTRAN
|
||||
help
|
||||
Linaro toolchain for the ARM architecture. It uses Linaro
|
||||
GCC 2014.09 (based on gcc 4.9), Linaro GDB 2013.10 (based on
|
||||
@@ -37,20 +39,22 @@ config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM
|
||||
|
||||
# See the note above.
|
||||
config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM
|
||||
bool "Linaro ARM 2015.11"
|
||||
bool "Linaro ARM 2016.02"
|
||||
depends on BR2_arm
|
||||
depends on BR2_ARM_CPU_ARMV7A
|
||||
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_0
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_5
|
||||
select BR2_TOOLCHAIN_HAS_FORTRAN
|
||||
help
|
||||
Linaro toolchain for the ARM architecture. It uses Linaro
|
||||
GCC 2015.08 (based on gcc 5.1), Linaro GDB 2015.08 (based on
|
||||
GCC 2016.02 (based on gcc 5.3), Linaro GDB 2016.02 (based on
|
||||
GDB 7.10), glibc 2.21, Binutils 2015.10 (based on 2.25). It
|
||||
generates code that runs on all Cortex-A profile devices,
|
||||
but tuned for the Cortex-A9. The code generated is Thumb 2,
|
||||
@@ -66,10 +70,12 @@ config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARMEB
|
||||
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_3_1
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
|
||||
select BR2_TOOLCHAIN_HAS_FORTRAN
|
||||
help
|
||||
Linaro toolchain for the ARM big endian architecture. It
|
||||
uses Linaro GCC 2014.09 (based on gcc 4.9), Linaro GDB
|
||||
@@ -81,21 +87,22 @@ config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARMEB
|
||||
|
||||
# See the note above.
|
||||
config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARMEB
|
||||
bool "Linaro armeb 2015.11"
|
||||
bool "Linaro armeb 2016.02"
|
||||
depends on BR2_armeb
|
||||
depends on BR2_ARM_CPU_ARMV7A
|
||||
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_0
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_5
|
||||
help
|
||||
Linaro toolchain for the ARM big endian architecture. It
|
||||
uses Linaro GCC 2015.08 (based on gcc 5.1), Linaro GDB
|
||||
2015.08 (based on GDB 7.10), glibc 2.21, Binutils 2015.10
|
||||
uses Linaro GCC 2016.02 (based on gcc 5.3), Linaro GDB
|
||||
2016.02 (based on GDB 7.10), glibc 2.21, Binutils 2015.10
|
||||
(based on 2.25). 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
|
||||
@@ -108,6 +115,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM
|
||||
depends on BR2_ARM_EABI
|
||||
depends on !BR2_STATIC_LIBS
|
||||
select BR2_TOOLCHAIN_EXTERNAL_GLIBC
|
||||
select BR2_TOOLCHAIN_HAS_SSP
|
||||
select BR2_TOOLCHAIN_HAS_NATIVE_RPC
|
||||
select BR2_INSTALL_LIBSTDCPP
|
||||
select BR2_HOSTARCH_NEEDS_IA32_LIBS
|
||||
@@ -143,6 +151,7 @@ config BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV7A
|
||||
depends on BR2_ARM_CPU_HAS_VFPV3
|
||||
depends on !BR2_STATIC_LIBS
|
||||
select BR2_TOOLCHAIN_EXTERNAL_GLIBC
|
||||
select BR2_TOOLCHAIN_HAS_SSP
|
||||
select BR2_TOOLCHAIN_HAS_NATIVE_RPC
|
||||
select BR2_INSTALL_LIBSTDCPP
|
||||
select BR2_HOSTARCH_NEEDS_IA32_LIBS
|
||||
@@ -166,6 +175,7 @@ config BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE
|
||||
depends on BR2_ARM_EABI
|
||||
depends on !BR2_STATIC_LIBS
|
||||
select BR2_TOOLCHAIN_EXTERNAL_GLIBC
|
||||
select BR2_TOOLCHAIN_HAS_SSP
|
||||
select BR2_TOOLCHAIN_HAS_NATIVE_RPC
|
||||
select BR2_INSTALL_LIBSTDCPP
|
||||
select BR2_HOSTARCH_NEEDS_IA32_LIBS
|
||||
@@ -178,22 +188,23 @@ config BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE
|
||||
This toolchain uses software-floating point.
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS
|
||||
bool "Sourcery CodeBench MIPS 2015.11"
|
||||
bool "Sourcery CodeBench MIPS 2016.05"
|
||||
depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
|
||||
depends on BR2_mips_32r2 || BR2_mips_64r2
|
||||
depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
|
||||
depends on !BR2_MIPS_NABI32
|
||||
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_2
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_5
|
||||
help
|
||||
Sourcery CodeBench toolchain for the MIPS architecture, from
|
||||
Mentor Graphics. It uses gcc 5.2, binutils 2.25.51, glibc
|
||||
2.22, uClibc 0.9.30 and gdb 7.10.50, kernel headers 4.2. It
|
||||
Mentor Graphics. It uses gcc 5.3, binutils 2.25.51, glibc
|
||||
2.23, uClibc 0.9.30 and gdb 7.10.50, kernel headers 4.4.1. It
|
||||
has support for the following variants:
|
||||
- MIPS32r2 - Big-Endian, 2008 NaN, O32
|
||||
Select MIPS (big endian) core
|
||||
@@ -269,167 +280,158 @@ comment "Sourcery CodeBench toolchains are only available for MIPS/MIPS64 o32 an
|
||||
depends on !BR2_STATIC_LIBS
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS
|
||||
bool "Codescape IMG GNU Linux Toolchain 2015.06"
|
||||
bool "Codescape IMG GNU Linux Toolchain 2016.05"
|
||||
depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
|
||||
depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
|
||||
depends on !BR2_MIPS_SOFT_FLOAT
|
||||
depends on BR2_mips_32r6 || BR2_mips_64r6
|
||||
depends on BR2_mips_32r6 || (BR2_mips_64r6 && !BR2_MIPS_SOFT_FLOAT)
|
||||
select BR2_TOOLCHAIN_EXTERNAL_GLIBC
|
||||
select BR2_INSTALL_LIBSTDCPP
|
||||
select BR2_HOSTARCH_NEEDS_IA32_LIBS
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
|
||||
select BR2_TOOLCHAIN_HAS_FORTRAN
|
||||
help
|
||||
Codescape IMG GNU Linux Toolchain 2015.06 for the MIPS
|
||||
Codescape IMG GNU Linux Toolchain 2015.10 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.0. It has support for the following variants:
|
||||
- MIPS32r6 - Big-Endian, o32
|
||||
- MIPS32r6 - Big-Endian, Hard-Float, 2008 NaN, o32 ABI
|
||||
Select 'MIPS (big endian)' Target Architecture
|
||||
Select 'mips 32r6' Target Architecture Variant
|
||||
- MIPS32r6 - Little-Endian, o32
|
||||
Disable 'Use soft-float'
|
||||
- MIPS32r6 - Big-Endian, Soft-Float, 2008 NaN, o32 ABI
|
||||
Select 'MIPS (big endian)' Target Architecture
|
||||
Select 'mips 32r6' Target Architecture Variant
|
||||
Enable 'Use soft-float'
|
||||
- MIPS32r6 - Little-Endian, Hard-Float, 2008 NaN, o32 ABI
|
||||
Select 'MIPS (little endian)' Target Architecture
|
||||
Select 'mips 32r6' Target Architecture Variant
|
||||
- MIPS32r6 - Little-Endian, o32, microMIPS
|
||||
Disable 'Use soft-float'
|
||||
- MIPS32r6 - Little-Endian, Soft-Float, 2008 NaN, o32 ABI
|
||||
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
|
||||
Select 'MIPS (little endian)' Target Architecture
|
||||
Select 'mips 32r6' Target Architecture Variant
|
||||
Disable 'Use soft-float'
|
||||
Set BR2_TARGET_OPTIMIZATION to '-mmicromips'
|
||||
- MIPS64r6 - Big-Endian, n32
|
||||
- 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'
|
||||
Set BR2_TARGET_OPTIMIZATION to '-mmicromips'
|
||||
- MIPS64r6 - Big-Endian, Hard-Float, 2008 NaN, n32 ABI
|
||||
Select 'MIPS64 (big endian)' Target Architecture
|
||||
Select 'mips 64r6' Target Architecture Variant
|
||||
Select 'n32' Target ABI
|
||||
- MIPS64r6 - Little-Endian, n32
|
||||
Disable 'Use soft-float'
|
||||
- MIPS64r6 - Little-Endian, Hard-Float, 2008 NaN, n32 ABI
|
||||
Select 'MIPS64 (little endian)' Target Architecture
|
||||
Select 'mips 64r6' Target Architecture Variant
|
||||
Select 'n32' Target ABI
|
||||
- MIPS64r6 - Big-Endian, n64
|
||||
Disable 'Use soft-float'
|
||||
- MIPS64r6 - Big-Endian, Hard-Float, 2008 NaN, n64 ABI
|
||||
Select 'MIPS64 (big endian)' Target Architecture
|
||||
Select 'mips 64r6' Target Architecture Variant
|
||||
Select 'n64' Target ABI
|
||||
- MIPS64r6 - Little-Endian, n64
|
||||
Disable 'Use soft-float'
|
||||
- MIPS64r6 - Little-Endian, Hard-Float, 2008 NaN, n64 ABI
|
||||
Select 'MIPS64 (little endian)' Target Architecture
|
||||
Select 'mips 64r6' Target Architecture Variant
|
||||
Select 'n64' Target ABI
|
||||
|
||||
Disable 'Use soft-float'
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS
|
||||
bool "Codescape MTI GNU Linux Toolchain 2015.06"
|
||||
bool "Codescape MTI GNU Linux Toolchain 2016.05"
|
||||
depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
|
||||
depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
|
||||
depends on !BR2_MIPS_SOFT_FLOAT
|
||||
depends on BR2_mips_32r2 || BR2_mips_64r2
|
||||
depends on BR2_mips_32r2 || (BR2_mips_64r2 && !BR2_MIPS_SOFT_FLOAT)
|
||||
select BR2_TOOLCHAIN_EXTERNAL_GLIBC
|
||||
select BR2_INSTALL_LIBSTDCPP
|
||||
select BR2_HOSTARCH_NEEDS_IA32_LIBS
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
|
||||
select BR2_TOOLCHAIN_HAS_FORTRAN
|
||||
help
|
||||
Codescape MTI GNU Linux Toolchain 2015.06 for the MIPS
|
||||
Codescape MTI GNU Linux Toolchain 2015.10 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.0. It has support for the following variants:
|
||||
- MIPS32r2 - Big-Endian, o32
|
||||
- MIPS32r2 - Big-Endian, Hard-Float, Legacy NaN, o32 ABI
|
||||
Select 'MIPS (big endian)' Target Architecture
|
||||
Select 'mips 32r2' Target Architecture Variant
|
||||
- MIPS32r2 - Little-Endian, o32
|
||||
Select 'MIPS (little endian)' Target Architecture
|
||||
Select 'mips 32r2' Target Architecture Variant
|
||||
- MIPS32r2 - Big-Endian, 2008 NaN, o32
|
||||
Disable 'Use soft-float'
|
||||
- MIPS32r2 - Big-Endian, Hard-Float, 2008 NaN, o32 ABI
|
||||
Select 'MIPS (big endian)' Target Architecture
|
||||
Select 'mips 32r2' Target Architecture Variant
|
||||
Disable 'Use soft-float'
|
||||
Set BR2_TARGET_OPTIMIZATION to '-mnan=2008'
|
||||
- MIPS32r2 - Little-Endian, 2008 NaN, o32
|
||||
- MIPS32r2 - Big-Endian, Soft-Float, Legacy NaN, o32 ABI
|
||||
Select 'MIPS (big endian)' Target Architecture
|
||||
Select 'mips 32r2' Target Architecture Variant
|
||||
Enable 'Use soft-float'
|
||||
- MIPS32r2 - Little-Endian, Hard-Float, Legacy NaN, o32 ABI
|
||||
Select 'MIPS (little endian)' Target Architecture
|
||||
Select 'mips 32r2' Target Architecture Variant
|
||||
Set BR2_TARGET_OPTIMIZATION to '-mnan=2008'
|
||||
- MIPS32r2 - Little-Endian, o32, microMIPS
|
||||
Disable 'Use soft-float'
|
||||
- MIPS32r2 - Little-Endian, Hard-Float, 2008 NaN, o32 ABI
|
||||
Select 'MIPS (little endian)' Target Architecture
|
||||
Select 'mips 32r2' Target Architecture Variant
|
||||
Disable 'Use soft-float'
|
||||
Set BR2_TARGET_OPTIMIZATION to '-mnan=2008'
|
||||
- MIPS32r2 - Little-Endian, Soft-Float, Legacy NaN, o32 ABI
|
||||
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
|
||||
Select 'MIPS (little endian)' Target Architecture
|
||||
Select 'mips 32r2' Target Architecture Variant
|
||||
Enable 'Use soft-float'
|
||||
Set BR2_TARGET_OPTIMIZATION to '-mmicromips'
|
||||
- MIPS64r2 - Big-Endian, n32
|
||||
- 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'
|
||||
Set BR2_TARGET_OPTIMIZATION to '-mmicromips'
|
||||
- MIPS64r2 - Big-Endian, Hard-Float, Legacy NaN, n32 ABI
|
||||
Select 'MIPS64 (big endian)' Target Architecture
|
||||
Select 'mips 64r2' Target Architecture Variant
|
||||
Select 'n32' Target ABI
|
||||
- MIPS64r2 - Little-Endian, n32
|
||||
Disable 'Use soft-float'
|
||||
- MIPS64r2 - Little-Endian, Hard-Float, Legacy NaN, n32 ABI
|
||||
Select 'MIPS64 (little endian)' Target Architecture
|
||||
Select 'mips 64r2' Target Architecture Variant
|
||||
Select 'n32' Target ABI
|
||||
- MIPS64r2 - Big-Endian, n64
|
||||
Disable 'Use soft-float'
|
||||
- MIPS64r2 - Big-Endian, Hard-Float, Legacy NaN, n64 ABI
|
||||
Select 'MIPS64 (big endian)' Target Architecture
|
||||
Select 'mips 64r2' Target Architecture Variant
|
||||
Select 'n64' Target ABI
|
||||
- MIPS64r2 - Little-Endian, n64
|
||||
Disable 'Use soft-float'
|
||||
- MIPS64r2 - Little-Endian, Hard-Float, Legacy NaN, n64 ABI
|
||||
Select 'MIPS64 (little endian)' Target Architecture
|
||||
Select 'mips 64r2' Target Architecture Variant
|
||||
Select 'n64' Target ABI
|
||||
Disable 'Use soft-float'
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII
|
||||
bool "Sourcery CodeBench Nios-II 2015.11"
|
||||
bool "Sourcery CodeBench Nios-II 2016.05"
|
||||
depends on BR2_nios2
|
||||
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_2
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_5
|
||||
select BR2_TOOLCHAIN_HAS_BINUTILS_BUG_19405 # based-on binutils-2.25.1
|
||||
help
|
||||
Sourcery CodeBench toolchain for the Nios-II architecture,
|
||||
from Mentor Graphics. It uses gcc 5.2, binutils 2.25.51,
|
||||
glibc 2.22, gdb 7.10.50 and kernel headers 4.2.
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC_E500V2
|
||||
bool "Sourcery CodeBench PowerPC 2012.03 (e500v2 only)"
|
||||
depends on BR2_powerpc
|
||||
depends on BR2_powerpc_8548 # e500v2 support only
|
||||
depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
|
||||
depends on !BR2_STATIC_LIBS
|
||||
select BR2_TOOLCHAIN_EXTERNAL_GLIBC
|
||||
select BR2_TOOLCHAIN_HAS_NATIVE_RPC
|
||||
select BR2_INSTALL_LIBSTDCPP
|
||||
select BR2_HOSTARCH_NEEDS_IA32_LIBS
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_6
|
||||
help
|
||||
Sourcery CodeBench toolchain for the PowerPC architecture,
|
||||
from Mentor Graphics. It uses gcc 4.6.3, binutils 2.21.53,
|
||||
glibc 2.15, gdb 7.2.50 and kernel headers 3.2.10. It has
|
||||
support for the following variants:
|
||||
- e500v2 glibc, SPE, 32 bits
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC
|
||||
bool "Sourcery CodeBench PowerPC 2011.03"
|
||||
depends on BR2_powerpc
|
||||
depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
|
||||
depends on !BR2_STATIC_LIBS
|
||||
select BR2_TOOLCHAIN_EXTERNAL_GLIBC
|
||||
select BR2_TOOLCHAIN_HAS_NATIVE_RPC
|
||||
select BR2_INSTALL_LIBSTDCPP
|
||||
select BR2_HOSTARCH_NEEDS_IA32_LIBS
|
||||
# kernel headers: 2.6.38
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_5
|
||||
help
|
||||
Sourcery CodeBench toolchain for the PowerPC architecture,
|
||||
from Mentor Graphics. It uses gcc 4.5.2, binutils 2.20.51,
|
||||
glibc 2.13, gdb 7.2.50 and kernel headers 2.6.38. It has
|
||||
support for the following variants:
|
||||
- 603 glibc, 32 bits
|
||||
Select a generic PowerPC core
|
||||
Disable BR2_SOFT_FLOAT
|
||||
- 603 soft float glibc, 32 bits
|
||||
Select a generic PowerPC core
|
||||
Enable BR2_SOFT_FLOAT
|
||||
- e600 altivec glibc, 32 bits
|
||||
Set BR2_TARGET_OPTIMIZATION to -te600
|
||||
- e500v1 glibc, 32 bits
|
||||
Set BR2_TARGET_OPTIMIZATION to -te500v1
|
||||
- e500v2 glibc, 32 bits
|
||||
Set BR2_TARGET_OPTIMIZATION to -te500v2
|
||||
- e500mc glibc, 32 bits
|
||||
Set BR2_TARGET_OPTIMIZATION to -te500mc
|
||||
- 970 glibc hard-float, 64 bits
|
||||
Set BR2_TARGET_OPTIMIZATION to -m64
|
||||
from Mentor Graphics. It uses gcc 5.3, binutils 2.25.51,
|
||||
glibc 2.23, gdb 7.10.50 and kernel headers 4.4.
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH
|
||||
bool "Sourcery CodeBench SH 2012.09"
|
||||
@@ -437,6 +439,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH
|
||||
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
|
||||
@@ -463,6 +466,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64
|
||||
depends on !BR2_STATIC_LIBS
|
||||
depends on BR2_x86_jaguar || BR2_x86_steamroller
|
||||
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
|
||||
@@ -488,6 +492,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_X86
|
||||
depends on !BR2_x86_jaguar
|
||||
depends on !BR2_x86_steamroller
|
||||
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
|
||||
@@ -522,6 +527,7 @@ config BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX
|
||||
select BR2_HOSTARCH_NEEDS_IA32_LIBS
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_3
|
||||
select BR2_TOOLCHAIN_HAS_FORTRAN
|
||||
help
|
||||
Toolchain for the Blackfin architecture, from
|
||||
http://blackfin.uclinux.org.
|
||||
@@ -533,64 +539,73 @@ config BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64
|
||||
depends on 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_3_7
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
|
||||
select BR2_TOOLCHAIN_HAS_FORTRAN
|
||||
help
|
||||
Toolchain for the AArch64 architecture, from
|
||||
http://www.linaro.org/engineering/armv8/
|
||||
|
||||
# See note about Linaro ARM/ARMEB toolchains, above.
|
||||
config BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64
|
||||
bool "Linaro AArch64 2015.11"
|
||||
bool "Linaro AArch64 2016.02"
|
||||
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_0
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_5
|
||||
select BR2_TOOLCHAIN_HAS_FORTRAN
|
||||
help
|
||||
Toolchain for the AArch64 architecture, from
|
||||
http://www.linaro.org/engineering/armv8/
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64
|
||||
bool "CodeSourcery AArch64 2014.05"
|
||||
bool "CodeSourcery AArch64 2014.11"
|
||||
depends on BR2_aarch64
|
||||
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_HOSTARCH_NEEDS_IA32_LIBS
|
||||
select BR2_TOOLCHAIN_HAS_NATIVE_RPC
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
|
||||
help
|
||||
Sourcery CodeBench toolchain for the AArch64 architecture,
|
||||
from Mentor Graphics. It uses gcc 4.8.3, binutils 2.24,
|
||||
glibc 2.18, gdb 7.7.50 and kernel headers 3.13.
|
||||
from Mentor Graphics. It uses gcc 4.9.1, binutils
|
||||
2.24.51.20140217, glibc 2.20, gdb 7.7.50 and kernel headers
|
||||
3.16.2.
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS
|
||||
bool "Musl 1.1.6 toolchain (experimental)"
|
||||
depends on (BR2_arm && BR2_ARM_EABI) || \
|
||||
(BR2_arm && BR2_ARM_EABIHF && !BR2_ARM_CPU_ARMV4) || \
|
||||
(BR2_armeb && BR2_ARM_EABI) || \
|
||||
(BR2_i386 && !BR2_x86_i386) || BR2_microblazebe || BR2_mips || \
|
||||
BR2_mipsel || (BR2_powerpc && BR2_powerpc_CLASSIC) || BR2_x86_64
|
||||
bool "Musl 1.1.12 toolchain"
|
||||
depends on (BR2_arm && BR2_ARM_EABI && BR2_USE_MMU) || \
|
||||
(BR2_arm && BR2_ARM_EABIHF && !BR2_ARM_CPU_ARMV4 && BR2_USE_MMU) || \
|
||||
(BR2_armeb && BR2_ARM_EABI && !BR2_ARM_CPU_ARMV7A && BR2_USE_MMU) || \
|
||||
BR2_i386 || (BR2_mips && !BR2_SOFT_FLOAT) || \
|
||||
BR2_mipsel || (BR2_powerpc && BR2_powerpc_CLASSIC) || \
|
||||
BR2_sh4 || BR2_sh4eb || \
|
||||
BR2_x86_64
|
||||
depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
|
||||
# Unsupported for MIPS R6
|
||||
depends on !BR2_mips_32r6 && !BR2_mips_64r6
|
||||
select BR2_TOOLCHAIN_EXTERNAL_MUSL
|
||||
select BR2_TOOLCHAIN_HAS_SSP
|
||||
select BR2_INSTALL_LIBSTDCPP
|
||||
select BR2_HOSTARCH_NEEDS_IA32_LIBS
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_5
|
||||
help
|
||||
Toolchain based on the Musl C library, provided by the
|
||||
musl-cross project. It uses gcc 4.9.2, binutils 2.25 and
|
||||
musl 1.1.6. It does not have a cross debugger included.
|
||||
musl-cross project. It uses gcc 5.3, binutils 2.25.1 and
|
||||
musl 1.1.12. It does not have a cross debugger included.
|
||||
|
||||
The ARM soft-float toolchain is built for ARMv4t, while the
|
||||
ARM hard-float toolchain is built for ARMv5t.
|
||||
@@ -677,11 +692,9 @@ config BR2_TOOLCHAIN_EXTERNAL_PREFIX
|
||||
default "arm-arago-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV7A
|
||||
default "arm-arago-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE
|
||||
default "aarch64-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64
|
||||
default "aarch64-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64
|
||||
default "aarch64-amd-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64
|
||||
default "mips-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS
|
||||
default "nios2-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII
|
||||
default "powerpc-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC
|
||||
default "powerpc-mentor-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC_E500V2
|
||||
default "sh-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH
|
||||
default "i686-pc-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_X86
|
||||
default "x86_64-amd-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64
|
||||
@@ -693,12 +706,12 @@ config BR2_TOOLCHAIN_EXTERNAL_PREFIX
|
||||
default "mips-mti-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS
|
||||
default "armeb-linux-musleabi" if BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS && BR2_armeb
|
||||
default "i486-linux-musl" if BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS && BR2_i386
|
||||
default "microblaze-linux-musl" if BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS && BR2_microblazebe
|
||||
default "mips-linux-musl" if BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS && (BR2_mips && !BR2_SOFT_FLOAT)
|
||||
default "mips-sf-linux-musl" if BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS && (BR2_mips && BR2_SOFT_FLOAT)
|
||||
default "mipsel-linux-musl" if BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS && (BR2_mipsel && !BR2_SOFT_FLOAT)
|
||||
default "mipsel-sf-linux-musl" if BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS && (BR2_mipsel && BR2_SOFT_FLOAT)
|
||||
default "powerpc-linux-musl" if BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS && BR2_powerpc
|
||||
default "sh4-linux-musl" if BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS && BR2_sh4
|
||||
default "sh4eb-linux-musl" if BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS && BR2_sh4eb
|
||||
default "x86_64-linux-musl" if BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS && BR2_x86_64
|
||||
default BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX \
|
||||
if BR2_TOOLCHAIN_EXTERNAL_CUSTOM
|
||||
@@ -714,7 +727,8 @@ config BR2_TOOLCHAIN_EXTERNAL_UCLIBC
|
||||
config BR2_TOOLCHAIN_EXTERNAL_MUSL
|
||||
bool
|
||||
select BR2_TOOLCHAIN_USES_MUSL
|
||||
select BR2_PACKAGE_NETBSD_QUEUE
|
||||
# Compatibility headers: cdefs.h, queue.h
|
||||
select BR2_PACKAGE_MUSL_COMPAT_HEADERS
|
||||
|
||||
if BR2_TOOLCHAIN_EXTERNAL_CUSTOM
|
||||
|
||||
@@ -725,6 +739,10 @@ choice
|
||||
Set to the gcc version that is used by your external
|
||||
toolchain.
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_GCC_6
|
||||
bool "6.x"
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_6
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_GCC_5
|
||||
bool "5.x"
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_5
|
||||
@@ -776,6 +794,18 @@ choice
|
||||
m = ( LINUX_VERSION_CODE >> 8 ) & 0xFF
|
||||
p = ( LINUX_VERSION_CODE >> 0 ) & 0xFF
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_7
|
||||
bool "4.7.x"
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_7
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_6
|
||||
bool "4.6.x"
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_6
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_5
|
||||
bool "4.5.x"
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_4
|
||||
bool "4.4.x"
|
||||
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4
|
||||
@@ -909,11 +939,11 @@ config BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC
|
||||
toolchain with eglibc configured to exclude key features may
|
||||
cause build failures to some packages.
|
||||
|
||||
comment "(e)glibc only available with shared lib support"
|
||||
comment "glibc only available with shared lib support"
|
||||
depends on BR2_STATIC_LIBS
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_CUSTOM_MUSL
|
||||
bool "musl (experimental)"
|
||||
bool "musl"
|
||||
select BR2_TOOLCHAIN_EXTERNAL_MUSL
|
||||
help
|
||||
Select this option if your external toolchain uses the
|
||||
@@ -972,17 +1002,19 @@ config BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_NPTL
|
||||
|
||||
endif # BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS
|
||||
|
||||
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
|
||||
help
|
||||
Selection this option if your external toolchain has Stack
|
||||
Smashing Protection support enabled. If you don't know,
|
||||
leave the default value, Buildroot will tell you if it's
|
||||
correct or not.
|
||||
|
||||
endif # BR2_TOOLCHAIN_EXTERNAL_CUSTOM_UCLIBC
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_INET_RPC
|
||||
bool "Toolchain has RPC support?"
|
||||
select BR2_TOOLCHAIN_HAS_NATIVE_RPC
|
||||
@@ -1001,13 +1033,20 @@ 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
|
||||
If your external toolchain provides extra libraries that
|
||||
need to be copied to the target filesystem, enter them
|
||||
here, separated by spaces. They will be copied to the
|
||||
target's /lib directory.
|
||||
here, separated by spaces.
|
||||
|
||||
endif # BR2_TOOLCHAIN_EXTERNAL_CUSTOM
|
||||
|
||||
|
||||
@@ -1,7 +1,3 @@
|
||||
# Sourcery CodeBench Lite for MIPS
|
||||
# Locally computed
|
||||
sha256 e653102803d0fadc0a83286400c03bc7932ab081d3f8fc8917c34e76468315a2 mips-2015.11-32-mips-linux-gnu-i686-pc-linux-gnu.tar.bz2
|
||||
|
||||
######################################
|
||||
# Next hashes are all locally computed
|
||||
|
||||
@@ -12,36 +8,47 @@ sha256 c65b1b4b918d5185349d62a3b7bf43b4b21e1175c52598ec047ca56b3f11d857 blackfi
|
||||
# Mentor's Sourcery CodeBench Lite toolchains
|
||||
# ARM
|
||||
sha256 39ee0e789034334ecc89af94e838e3a4815400ac5ff980f808f466b04778532e arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
|
||||
sha256 e16a5b1e41d7ff1e74161f9405182001bc8d1360d89564e73911032e6966cc0d arm-2014.05-29-arm-none-linux-gnueabi.src.tar.bz2
|
||||
# NiosII
|
||||
sha256 cc47745dc1264fcb8fb98fb1315ab772ab98691396021c455229b58abaf887f5 sourceryg++-2015.11-27-nios2-linux-gnu-i686-pc-linux-gnu.tar.bz2
|
||||
# PowerPC
|
||||
sha256 525e1f53abbf65c2974ae9af762c45bb38520fe5fc50e968a23fe6a18e9eec04 freescale-2011.03-38-powerpc-linux-gnu-i686-pc-linux-gnu.tar.bz2
|
||||
sha256 d6c94587d546197836e7e1a6909f6aabfa5879e91f501ab03088a6887cc242fc mentor-2012.03-71-powerpc-mentor-linux-gnu-i686-pc-linux-gnu.tar.bz2
|
||||
sha256 750639290744adda931c81fa2cd2ffc2bde972488047824dcfaa53c42562191d sourceryg++-2016.05-10-nios2-linux-gnu-i686-pc-linux-gnu.tar.bz2
|
||||
sha256 3dc1c2685c0472059547dd7becb5dc991541b8176af39fa7aa5f601d38b9879a sourceryg++-2016.05-10-nios2-linux-gnu.src.tar.bz2
|
||||
# SuperH
|
||||
sha256 59d6766fde244931aa52db01433d5acd051998762a931121c5fc109536a1a802 renesas-2012.09-61-sh-linux-gnu-i686-pc-linux-gnu.tar.bz2
|
||||
sha256 e2e58c10e52395d5d35157e35f85233f713c6f9223a652dfc56194cfd2eed004 renesas-2012.09-61-sh-linux-gnu.src.tar.bz2
|
||||
# x86
|
||||
sha256 ea804cf02014369da52abc4f64e91e96bde2dd2230aca96109459013d4545458 ia32-2012.09-62-i686-pc-linux-gnu-i386-linux.tar.bz2
|
||||
sha256 1a9519e415a1e6892c760bf21f7e98f3a633a9d1c5bb8781a96d338e4dd62717 ia32-2012.09-62-i686-pc-linux-gnu.src.tar.bz2
|
||||
# AMD64
|
||||
sha256 cb4d071db8aefb8005fe72824b96568d93a50f5acd85bacf505a34fe2f265f70 amd-2015.11-36-x86_64-amd-linux-gnu-i686-pc-linux-gnu.tar.bz2
|
||||
sha256 3c31206c8b9277f409ee00e4777ba82dfa6da2a4ca0926501cd5fb6bbd1b407e amd-2015.11-139-x86_64-amd-linux-gnu-i686-pc-linux-gnu.tar.bz2
|
||||
sha256 0b673f5035f97d5d03c31272cddab0f117d39ad76a5ad2a3bc98c156571527de amd-2015.11-139-x86_64-amd-linux-gnu.src.tar.bz2
|
||||
# Aarch64
|
||||
sha256 8ea78c5988b2bb507534f1ad46aa46659f66b39d55f2fc40e163a90b4195e70f aarch64-2014.05-30-aarch64-linux-gnu-i686-pc-linux-gnu.tar.bz2
|
||||
sha256 405aada821146755c5f2df566375c2a682456d6b8451ee47b88cf1a52b093676 aarch64-amd-2014.11-95-aarch64-amd-linux-gnu-i686-pc-linux-gnu.tar.bz2
|
||||
sha256 3f50dd6ee433eb5b6992a1071b988e50379a738f54f58722bc60081613764716 aarch64-amd-2014.11-95-aarch64-amd-linux-gnu.src.tar.bz2
|
||||
# MIPS
|
||||
sha256 d354447c4c5160439dafd5464fa3a0266dd41e79f973477238e4f0215a6b5397 mips-2016.05-8-mips-linux-gnu-i686-pc-linux-gnu.tar.bz2
|
||||
sha256 2658e55d5b71bba25d6f77e868e18b200ea5f75c8add7ed3a9266e716d9adfff mips-2016.05-8-mips-linux-gnu.src.tar.bz2
|
||||
|
||||
# ARM toolchains from Texas Instrument's Arago project
|
||||
# There is one source file that covers both binary distributions.
|
||||
sha256 f2febf3b3c565536461ad4405f1bcb835d75a6afb2a8bec958a1248cb4b81fc7 arago-2011.09-armv7a-linux-gnueabi-sdk.tar.bz2
|
||||
sha256 254af7d02eb3bcc8345c78e131700bc995d65b68232caaed21150a5fd1456070 arago-2011.09-armv5te-linux-gnueabi-sdk.tar.bz2
|
||||
sha256 25fbf0513ad7322b15cbaae964cafadcbb4c939f2708f57f40b8f9f2d601122b arago-toolchain-2011.09-sources.tar.bz2
|
||||
|
||||
# ARM and Aarch64 toolchains from Linaro
|
||||
sha256 0cffac0caea0eb3c8bdddfa14be011ce366680f40aeddbefc7cf23cb6d4f1891 gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux.tar.xz
|
||||
sha256 ff2d231749e59968cb5e7032b4f4e4ae82ff9f11c23967863e627a6c59cb3bc0 gcc-linaro-5.2-2015.11-2-x86_64_arm-linux-gnueabihf.tar.xz
|
||||
sha256 eafeb3a5247e9ce31aa35d812e296fba5d5f1443e106d9bef9e38d3ee3ade006 gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_src.tar.bz2
|
||||
sha256 dd66f07662e1f3b555eaa0d076f133b6db702ab0b9ab18f7dfc91a23eab653c5 gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf.tar.xz
|
||||
sha256 4bc9d86390f8fa67a693ba4768ba5b12faaf7dd37c706c05ccd9321e765226e4 gcc-linaro-armeb-linux-gnueabihf-4.9-2014.09_linux.tar.xz
|
||||
sha256 e3df0c31d0bd8d1f6d45d585203c0f601e50b1ff7225da1423a8ca36e8caf58f gcc-linaro-5.2-2015.11-2-x86_64_armeb-linux-gnueabihf.tar.xz
|
||||
sha256 bf5d3111dad5aa9aef0e955875fb7fc9e918cb24519af7014dd67a9e581a49b1 gcc-linaro-armeb-linux-gnueabihf-4.9-2014.09_src.tar.bz2
|
||||
sha256 f488caf46680b0c0a16b66b43fbfd157e3d6389df18e957983132e89529a9804 gcc-linaro-5.3-2016.02-x86_64_armeb-linux-gnueabihf.tar.xz
|
||||
sha256 3954f496ab01de67241109e82abfaa9b7625fdab4f05e79e7902e9814a07b832 gcc-linaro-aarch64-linux-gnu-4.9-2014.09_linux.tar.xz
|
||||
sha256 b318a1837a54146b0120a13852386576e38355513b4e2cd5e2125f9c26913777 gcc-linaro-5.2-2015.11-2-x86_64_aarch64-linux-gnu.tar.xz
|
||||
sha256 a7b8f842fdc9d9be22ca4e0c999429780fc6f16ea798b032421b5ec0cfa53b3e gcc-linaro-aarch64-linux-gnu-4.9-2014.09_src.tar.bz2
|
||||
sha256 1c85af550bedd378be583317b4abbdc96342b42c19fb19873c13d3093ff694ad gcc-linaro-5.3-2016.02-x86_64_aarch64-linux-gnu.tar.xz
|
||||
|
||||
# Codescape toolchains from Imagination Technologies
|
||||
# From: http://codescape-mips-sdk.imgtec.com/components/toolchain/2015.06-05/
|
||||
sha256 f2d12dde626b750987d37ba6c73c6e11839850add94b0d4e4cf77917c1b0944f Codescape.GNU.Tools.Package.2015.06-05.for.MIPS.MTI.Linux.CentOS-5.x86.tar.gz
|
||||
sha256 545923cf40101b5de6b1e0fdf124aceba7ab27daf6c755aecf01d2c886715409 Codescape.GNU.Tools.Package.2015.06-05.for.MIPS.IMG.Linux.CentOS-5.x86.tar.gz
|
||||
# From: http://codescape-mips-sdk.imgtec.com/components/toolchain/2016.05-03/downloads.html
|
||||
sha256 e3c1f292ac6a9f12480af431c85a7ed9dfa011a52fd62a50be3363ec6b9bc872 Codescape.GNU.Tools.Package.2016.05-03.for.MIPS.IMG.Linux.CentOS-5.x86.tar.gz
|
||||
sha256 10b8ab6d7c492abc19ecabafedc6bc5f12ff88107a3cb76dc452b3a9522d9c56 Codescape.GNU.Tools.Package.2016.05-03.for.MIPS.MTI.Linux.CentOS-5.x86.tar.gz
|
||||
|
||||
# Synopsys DesignWare ARC toolchains
|
||||
sha256 1fa4ea2c8616623205f1c7beca02ea31b019099528a7433e5b020b0876b93bf3 arc_gnu_2014.12_prebuilt_uclibc_le_arc700_linux_install.tar.gz
|
||||
@@ -50,15 +57,14 @@ sha256 aaaf6facd1f60a3cd2a537154ea39cd7d70501c175e30e01a97e8df6cb8226c7 arc_gnu
|
||||
sha256 30711c5f15762764d4cd5ec1e6ced5b1fddd03aac41c424b0c4ec8a45d5d79cd arc_gnu_2014.12_prebuilt_uclibc_be_archs_linux_install.tar.gz
|
||||
|
||||
# Prebuilt musl toolchains from musl-cross
|
||||
sha256 26da90f5cf5e5220b1d6424420ab9f3877a1826a2a5268a62d390711c0e73cd0 crossx86-arm-linux-musleabi-1.1.6.tar.xz
|
||||
sha256 c3b1c79a48e999c8f655cd008d04ba53c4f76217fa3c289566dab174e8ef8711 crossx86-arm-linux-musleabihf-1.1.6.tar.xz
|
||||
sha256 b74ebf6e92b69bb7c7651cc8ff87a14c41fd9c043af9db7304b293c291c830b5 crossx86-armeb-linux-musleabi-1.1.6.tar.xz
|
||||
sha256 740716209e1aef0442fe8e200a1b2582d9d86e86ff6d113ab9678b592121e2f9 crossx86-i486-linux-musl-1.1.6.tar.xz
|
||||
sha256 7a0da8bd22c25ad11acc8309d8541b7b7966ccefcf136d860d38bf625c05b53e crossx86-microblaze-linux-musl-1.1.6.tar.xz
|
||||
sha256 b89503aeb02a5201476ff4bb014879f1989868c9c25f2af84e2fc04bec7acf2e crossx86-mips-linux-musl-1.1.6.tar.xz
|
||||
sha256 552996f7a8132f8be994513156a30f4c03fff4873b76726b98e4e0056257367f crossx86-mipsel-linux-musl-1.1.6.tar.xz
|
||||
sha256 c49f7425ac9d0629cd9893d7bc247d5e6847c9eb5d11924dbc440b9d10f6c2bb crossx86-powerpc-linux-musl-1.1.6.tar.xz
|
||||
sha256 79a1a4be93e2a63acb137170e98bdfbf744bd9ca7b15b76ab512d1e0dfec834e crossx86-sh4-linux-musl-1.1.6.tar.xz
|
||||
sha256 aec4d560dc601e397fc86a9759166005afba22ad666d1a48019b5102c534ccc1 crossx86-sh4eb-linux-musl-1.1.6.tar.xz
|
||||
sha256 68eda0795aacd4371b45a6c58c5c75e86c0c2fdf7ebc2c0b7d3752462c848260 crossx86-x86_64-linux-musl-1.1.6.tar.xz
|
||||
sha256 6bef5ee2cdb9fa35e49ce0a270f6d7c48f3268c6f6345ad5ca0b8137982b4690 crossx86-x86_64-x32-linux-musl-1.1.6.tar.xz
|
||||
sha256 e32c23d0b83639fc10ad06666ec086b66453b9be44415fe1a818c3c3b526dfb1 crossx86-armeb-linux-musleabi-1.1.12.tar.xz
|
||||
sha256 eb81bd5d6ada454c6e854b18bfa8dc801333782152166f6cab9fb7cd11692987 crossx86-arm-linux-musleabi-1.1.12.tar.xz
|
||||
sha256 a050da284ff22d291ae71dfc249ebdedb18334b8d626804760ce7d5963e392e6 crossx86-arm-linux-musleabihf-1.1.12.tar.xz
|
||||
sha256 18d07f5c8f4cfe373461cf21cf7b1bfefa820a37e96a69b68e0f315d528b4286 crossx86-i486-linux-musl-1.1.12.tar.xz
|
||||
sha256 1c1480c2618097e402fe804c1431fbd49b0d43520af81d4c1a695a2fa13a3922 crossx86-mipsel-linux-musl-1.1.12.tar.xz
|
||||
sha256 f0a8b3eb0566138ab3cc77bc09648be15bc325da974ec98b9e67f2fb82be3295 crossx86-mipsel-sf-linux-musl-1.1.12.tar.xz
|
||||
sha256 6a99989c3dff56776981f6760b2c54dcb9e4032be1d649968bb06c04f2e64177 crossx86-mips-linux-musl-1.1.12.tar.xz
|
||||
sha256 c082adc3e8b0750bb22ca82628524fd525fd77f534517ac5a66e7ac5a297ee6e crossx86-powerpc-linux-musl-1.1.12.tar.xz
|
||||
sha256 8c6c9ebb54040e47947b4d3af6823d01fef2bb6ee81b18903c801030c066092b crossx86-sh4eb-linux-musl-1.1.12.tar.xz
|
||||
sha256 ae9a0a5a60226aa086a56628cfd5c1d283c9dffdca37891d7e6adc2bd21ac2e0 crossx86-sh4-linux-musl-1.1.12.tar.xz
|
||||
sha256 27e0ea1043a58aebeadf1dacd67e47fd0b5c19fc36f42c9374e5fa3308df09c6 crossx86-x86_64-linux-musl-1.1.12.tar.xz
|
||||
|
||||
@@ -64,33 +64,41 @@
|
||||
# of Buildroot is handled identical for the 2 toolchain types.
|
||||
|
||||
ifeq ($(BR2_TOOLCHAIN_EXTERNAL_GLIBC)$(BR2_TOOLCHAIN_EXTERNAL_UCLIBC),y)
|
||||
LIB_EXTERNAL_LIBS += libatomic.so.* libc.so.* libcrypt.so.* libdl.so.* libgcc_s.so.* libm.so.* libnsl.so.* libresolv.so.* librt.so.* libutil.so.*
|
||||
TOOLCHAIN_EXTERNAL_LIBS += libatomic.so.* libc.so.* libcrypt.so.* libdl.so.* libgcc_s.so.* libm.so.* libnsl.so.* libresolv.so.* librt.so.* libutil.so.*
|
||||
ifeq ($(BR2_TOOLCHAIN_EXTERNAL_GLIBC)$(BR2_ARM_EABIHF),yy)
|
||||
LIB_EXTERNAL_LIBS += ld-linux-armhf.so.*
|
||||
TOOLCHAIN_EXTERNAL_LIBS += ld-linux-armhf.so.*
|
||||
else
|
||||
LIB_EXTERNAL_LIBS += ld*.so.*
|
||||
TOOLCHAIN_EXTERNAL_LIBS += ld*.so.*
|
||||
endif
|
||||
ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
|
||||
LIB_EXTERNAL_LIBS += libpthread.so.*
|
||||
TOOLCHAIN_EXTERNAL_LIBS += libpthread.so.*
|
||||
ifneq ($(BR2_PACKAGE_GDB)$(BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY),)
|
||||
LIB_EXTERNAL_LIBS += libthread_db.so.*
|
||||
TOOLCHAIN_EXTERNAL_LIBS += libthread_db.so.*
|
||||
endif # gdbserver
|
||||
endif # ! no threads
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_TOOLCHAIN_EXTERNAL_GLIBC),y)
|
||||
LIB_EXTERNAL_LIBS += libnss_files.so.* libnss_dns.so.*
|
||||
TOOLCHAIN_EXTERNAL_LIBS += libnss_files.so.* libnss_dns.so.*
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_TOOLCHAIN_EXTERNAL_MUSL),y)
|
||||
LIB_EXTERNAL_LIBS += libc.so libgcc_s.so.*
|
||||
TOOLCHAIN_EXTERNAL_LIBS += libc.so libgcc_s.so.*
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_INSTALL_LIBSTDCPP),y)
|
||||
USR_LIB_EXTERNAL_LIBS += libstdc++.so.*
|
||||
TOOLCHAIN_EXTERNAL_LIBS += libstdc++.so.*
|
||||
endif
|
||||
|
||||
LIB_EXTERNAL_LIBS += $(call qstrip,$(BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS))
|
||||
ifeq ($(BR2_TOOLCHAIN_HAS_FORTRAN),y)
|
||||
TOOLCHAIN_EXTERNAL_LIBS += libgfortran.so.*
|
||||
# fortran needs quadmath on x86 and x86_64
|
||||
ifeq ($(BR2_TOOLCHAIN_HAS_LIBQUADMATH),y)
|
||||
TOOLCHAIN_EXTERNAL_LIBS += libquadmath.so*
|
||||
endif
|
||||
endif
|
||||
|
||||
TOOLCHAIN_EXTERNAL_LIBS += $(call qstrip,$(BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS))
|
||||
|
||||
# Details about sysroot directory selection.
|
||||
#
|
||||
@@ -130,8 +138,10 @@ LIB_EXTERNAL_LIBS += $(call qstrip,$(BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS))
|
||||
|
||||
|
||||
TOOLCHAIN_EXTERNAL_PREFIX = $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_PREFIX))
|
||||
TOOLCHAIN_EXTERNAL_DOWNLOAD_INSTALL_DIR = $(HOST_DIR)/opt/ext-toolchain
|
||||
|
||||
ifeq ($(BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD),y)
|
||||
TOOLCHAIN_EXTERNAL_INSTALL_DIR = $(HOST_DIR)/opt/ext-toolchain
|
||||
TOOLCHAIN_EXTERNAL_INSTALL_DIR = $(TOOLCHAIN_EXTERNAL_DOWNLOAD_INSTALL_DIR)
|
||||
else
|
||||
TOOLCHAIN_EXTERNAL_INSTALL_DIR = $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_PATH))
|
||||
endif
|
||||
@@ -160,6 +170,7 @@ TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += \
|
||||
TOOLCHAIN_EXTERNAL_CROSS = $(TOOLCHAIN_EXTERNAL_BIN)/$(TOOLCHAIN_EXTERNAL_PREFIX)-
|
||||
TOOLCHAIN_EXTERNAL_CC = $(TOOLCHAIN_EXTERNAL_CROSS)gcc$(TOOLCHAIN_EXTERNAL_SUFFIX)
|
||||
TOOLCHAIN_EXTERNAL_CXX = $(TOOLCHAIN_EXTERNAL_CROSS)g++$(TOOLCHAIN_EXTERNAL_SUFFIX)
|
||||
TOOLCHAIN_EXTERNAL_FC = $(TOOLCHAIN_EXTERNAL_CROSS)gfortran$(TOOLCHAIN_EXTERNAL_SUFFIX)
|
||||
TOOLCHAIN_EXTERNAL_READELF = $(TOOLCHAIN_EXTERNAL_CROSS)readelf$(TOOLCHAIN_EXTERNAL_SUFFIX)
|
||||
|
||||
ifeq ($(filter $(HOST_DIR)/%,$(TOOLCHAIN_EXTERNAL_BIN)),)
|
||||
@@ -237,30 +248,54 @@ TOOLCHAIN_EXTERNAL_CFLAGS += -msoft-float
|
||||
TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_SOFTFLOAT=1
|
||||
endif
|
||||
|
||||
# musl does not provide a sys/queue.h implementation, so add the
|
||||
# netbsd-queue package that will install a sys/queue.h file in the
|
||||
# staging directory based on the NetBSD implementation.
|
||||
# musl does not provide an implementation for sys/queue.h or sys/cdefs.h.
|
||||
# So, add the musl-compat-headers package that will install those files,
|
||||
# into the staging directory:
|
||||
# sys/queue.h: header from NetBSD
|
||||
# sys/cdefs.h: minimalist header bundled in Buildroot
|
||||
ifeq ($(BR2_TOOLCHAIN_USES_MUSL),y)
|
||||
TOOLCHAIN_EXTERNAL_DEPENDENCIES += netbsd-queue
|
||||
TOOLCHAIN_EXTERNAL_DEPENDENCIES += musl-compat-headers
|
||||
endif
|
||||
|
||||
# The Linaro ARMhf toolchain expects the libraries in
|
||||
# {/usr,}/lib/arm-linux-gnueabihf, but Buildroot copies them to
|
||||
# The Linaro toolchain expects the libraries in
|
||||
# {/usr,}/lib/<tuple>, but Buildroot copies them to
|
||||
# {/usr,}/lib, so we need to create a symbolic link.
|
||||
define TOOLCHAIN_EXTERNAL_LINARO_ARMHF_SYMLINK
|
||||
ln -snf . $(TARGET_DIR)/lib/arm-linux-gnueabihf
|
||||
ln -snf . $(TARGET_DIR)/usr/lib/arm-linux-gnueabihf
|
||||
define TOOLCHAIN_EXTERNAL_LINARO_SYMLINK
|
||||
ln -snf . $(TARGET_DIR)/lib/$(TOOLCHAIN_EXTERNAL_PREFIX)
|
||||
ln -snf . $(TARGET_DIR)/usr/lib/$(TOOLCHAIN_EXTERNAL_PREFIX)
|
||||
endef
|
||||
|
||||
define TOOLCHAIN_EXTERNAL_LINARO_ARMEBHF_SYMLINK
|
||||
ln -snf . $(TARGET_DIR)/lib/armeb-linux-gnueabihf
|
||||
ln -snf . $(TARGET_DIR)/usr/lib/armeb-linux-gnueabihf
|
||||
# The Codescape toolchain uses a sysroot layout that places them
|
||||
# side-by-side instead of nested like multilibs. A symlink is needed
|
||||
# much like for the nested sysroots which are handled in
|
||||
# copy_toolchain_sysroot but there is not enough information in there
|
||||
# to determine whether the sysroot layout was nested or side-by-side.
|
||||
# Add the symlink here for now.
|
||||
define TOOLCHAIN_EXTERNAL_CODESCAPE_MIPS_SYMLINK
|
||||
$(Q)ARCH_SYSROOT_DIR="$(call toolchain_find_sysroot,$(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS))"; \
|
||||
ARCH_SUBDIR=`basename $${ARCH_SYSROOT_DIR}`; \
|
||||
ln -snf . $(STAGING_DIR)/$${ARCH_SUBDIR}
|
||||
endef
|
||||
|
||||
define TOOLCHAIN_EXTERNAL_LINARO_AARCH64_SYMLINK
|
||||
ln -snf . $(TARGET_DIR)/lib/aarch64-linux-gnu
|
||||
ln -snf . $(TARGET_DIR)/usr/lib/aarch64-linux-gnu
|
||||
# Special fixup for Codescape MIPS toolchains, that have bin-<abi> and
|
||||
# sbin-<abi> directories. We create symlinks bin -> bin-<abi> and sbin
|
||||
# -> sbin-<abi> so that the rest of Buildroot can find the toolchain
|
||||
# tools in the appropriate location.
|
||||
ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS)$(BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS),y)
|
||||
ifeq ($(BR2_MIPS_OABI32),y)
|
||||
TOOLCHAIN_EXTERNAL_CODESCAPE_MIPS_BIN_DIR_SUFFIX = o32
|
||||
else ifeq ($(BR2_MIPS_NABI32),y)
|
||||
TOOLCHAIN_EXTERNAL_CODESCAPE_MIPS_BIN_DIR_SUFFIX = n32
|
||||
else ifeq ($(BR2_MIPS_NABI64),y)
|
||||
TOOLCHAIN_EXTERNAL_CODESCAPE_MIPS_BIN_DIR_SUFFIX = n64
|
||||
endif
|
||||
|
||||
define TOOLCHAIN_EXTERNAL_CODESCAPE_MIPS_STAGING_FIXUPS
|
||||
rmdir $(STAGING_DIR)/usr/bin $(STAGING_DIR)/usr/sbin
|
||||
ln -sf bin-$(TOOLCHAIN_EXTERNAL_CODESCAPE_MIPS_BIN_DIR_SUFFIX) $(STAGING_DIR)/usr/bin
|
||||
ln -sf sbin-$(TOOLCHAIN_EXTERNAL_CODESCAPE_MIPS_BIN_DIR_SUFFIX) $(STAGING_DIR)/usr/sbin
|
||||
endef
|
||||
endif
|
||||
|
||||
# Special handling for Blackfin toolchain, because of the split in two
|
||||
# tarballs, and the organization of tarball contents. The tarballs
|
||||
@@ -295,36 +330,30 @@ endef
|
||||
TOOLCHAIN_EXTERNAL_POST_EXTRACT_HOOKS += TOOLCHAIN_EXTERNAL_FIXUP_CMDS
|
||||
else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM),y)
|
||||
ifeq ($(HOSTARCH),x86)
|
||||
TOOLCHAIN_EXTERNAL_SITE = http://releases.linaro.org/14.09/components/toolchain/binaries
|
||||
TOOLCHAIN_EXTERNAL_SITE = https://releases.linaro.org/14.09/components/toolchain/binaries
|
||||
TOOLCHAIN_EXTERNAL_SOURCE = gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux.tar.xz
|
||||
TOOLCHAIN_EXTERNAL_ACTUAL_SOURCE_TARBALL = gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_src.tar.bz2
|
||||
TOOLCHAIN_EXTERNAL_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_LINARO_ARMHF_SYMLINK
|
||||
TOOLCHAIN_EXTERNAL_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_LINARO_SYMLINK
|
||||
else
|
||||
TOOLCHAIN_EXTERNAL_SITE = http://releases.linaro.org/components/toolchain/binaries/5.2-2015.11-2/arm-linux-gnueabihf
|
||||
TOOLCHAIN_EXTERNAL_SOURCE = gcc-linaro-5.2-2015.11-2-x86_64_arm-linux-gnueabihf.tar.xz
|
||||
TOOLCHAIN_EXTERNAL_SITE = https://releases.linaro.org/components/toolchain/binaries/5.3-2016.02/arm-linux-gnueabihf
|
||||
TOOLCHAIN_EXTERNAL_SOURCE = gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf.tar.xz
|
||||
endif
|
||||
else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_LINARO_ARMEB),y)
|
||||
ifeq ($(HOSTARCH),x86)
|
||||
TOOLCHAIN_EXTERNAL_SITE = http://releases.linaro.org/14.09/components/toolchain/binaries
|
||||
TOOLCHAIN_EXTERNAL_SITE = https://releases.linaro.org/14.09/components/toolchain/binaries
|
||||
TOOLCHAIN_EXTERNAL_SOURCE = gcc-linaro-armeb-linux-gnueabihf-4.9-2014.09_linux.tar.xz
|
||||
TOOLCHAIN_EXTERNAL_ACTUAL_SOURCE_TARBALL = gcc-linaro-armeb-linux-gnueabihf-4.9-2014.09_src.tar.bz2
|
||||
TOOLCHAIN_EXTERNAL_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_LINARO_ARMEBHF_SYMLINK
|
||||
TOOLCHAIN_EXTERNAL_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_LINARO_SYMLINK
|
||||
else
|
||||
TOOLCHAIN_EXTERNAL_SITE = http://releases.linaro.org/components/toolchain/binaries/5.2-2015.11-2/armeb-linux-gnueabihf
|
||||
TOOLCHAIN_EXTERNAL_SOURCE = gcc-linaro-5.2-2015.11-2-x86_64_armeb-linux-gnueabihf.tar.xz
|
||||
TOOLCHAIN_EXTERNAL_SITE = https://releases.linaro.org/components/toolchain/binaries/5.3-2016.02/armeb-linux-gnueabihf
|
||||
TOOLCHAIN_EXTERNAL_SOURCE = gcc-linaro-5.3-2016.02-x86_64_armeb-linux-gnueabihf.tar.xz
|
||||
endif
|
||||
else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS),y)
|
||||
TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/mips-linux-gnu
|
||||
TOOLCHAIN_EXTERNAL_SOURCE = mips-2015.11-32-mips-linux-gnu-i686-pc-linux-gnu.tar.bz2
|
||||
TOOLCHAIN_EXTERNAL_SOURCE = mips-2016.05-8-mips-linux-gnu-i686-pc-linux-gnu.tar.bz2
|
||||
else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII),y)
|
||||
TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/nios2-linux-gnu
|
||||
TOOLCHAIN_EXTERNAL_SOURCE = sourceryg++-2015.11-27-nios2-linux-gnu-i686-pc-linux-gnu.tar.bz2
|
||||
else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC_E500V2),y)
|
||||
TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/powerpc-mentor-linux-gnu
|
||||
TOOLCHAIN_EXTERNAL_SOURCE = mentor-2012.03-71-powerpc-mentor-linux-gnu-i686-pc-linux-gnu.tar.bz2
|
||||
else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC),y)
|
||||
TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/powerpc-linux-gnu
|
||||
TOOLCHAIN_EXTERNAL_SOURCE = freescale-2011.03-38-powerpc-linux-gnu-i686-pc-linux-gnu.tar.bz2
|
||||
TOOLCHAIN_EXTERNAL_SOURCE = sourceryg++-2016.05-10-nios2-linux-gnu-i686-pc-linux-gnu.tar.bz2
|
||||
else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH),y)
|
||||
TOOLCHAIN_EXTERNAL_SITE = https://sourcery.mentor.com/public/gnu_toolchain/sh-linux-gnu
|
||||
TOOLCHAIN_EXTERNAL_SOURCE = renesas-2012.09-61-sh-linux-gnu-i686-pc-linux-gnu.tar.bz2
|
||||
@@ -333,14 +362,18 @@ TOOLCHAIN_EXTERNAL_SITE = https://sourcery.mentor.com/public/gnu_toolchain/i686-
|
||||
TOOLCHAIN_EXTERNAL_SOURCE = ia32-2012.09-62-i686-pc-linux-gnu-i386-linux.tar.bz2
|
||||
else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64),y)
|
||||
TOOLCHAIN_EXTERNAL_SITE = https://sourcery.mentor.com/public/gnu_toolchain/x86_64-amd-linux-gnu
|
||||
TOOLCHAIN_EXTERNAL_SOURCE = amd-2015.11-36-x86_64-amd-linux-gnu-i686-pc-linux-gnu.tar.bz2
|
||||
TOOLCHAIN_EXTERNAL_SOURCE = amd-2015.11-139-x86_64-amd-linux-gnu-i686-pc-linux-gnu.tar.bz2
|
||||
else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS),y)
|
||||
TOOLCHAIN_EXTERNAL_SITE = http://codescape-mips-sdk.imgtec.com/components/toolchain/2015.06-05
|
||||
TOOLCHAIN_EXTERNAL_SOURCE = Codescape.GNU.Tools.Package.2015.06-05.for.MIPS.IMG.Linux.CentOS-5.x86.tar.gz
|
||||
TOOLCHAIN_EXTERNAL_SITE = http://codescape-mips-sdk.imgtec.com/components/toolchain/2016.05-03
|
||||
TOOLCHAIN_EXTERNAL_SOURCE = Codescape.GNU.Tools.Package.2016.05-03.for.MIPS.IMG.Linux.CentOS-5.x86.tar.gz
|
||||
TOOLCHAIN_EXTERNAL_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_CODESCAPE_MIPS_SYMLINK
|
||||
TOOLCHAIN_EXTERNAL_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_CODESCAPE_MIPS_STAGING_FIXUPS
|
||||
TOOLCHAIN_EXTERNAL_STRIP_COMPONENTS = 2
|
||||
else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS),y)
|
||||
TOOLCHAIN_EXTERNAL_SITE = http://codescape-mips-sdk.imgtec.com/components/toolchain/2015.06-05
|
||||
TOOLCHAIN_EXTERNAL_SOURCE = Codescape.GNU.Tools.Package.2015.06-05.for.MIPS.MTI.Linux.CentOS-5.x86.tar.gz
|
||||
TOOLCHAIN_EXTERNAL_SITE = http://codescape-mips-sdk.imgtec.com/components/toolchain/2016.05-03
|
||||
TOOLCHAIN_EXTERNAL_SOURCE = Codescape.GNU.Tools.Package.2016.05-03.for.MIPS.MTI.Linux.CentOS-5.x86.tar.gz
|
||||
TOOLCHAIN_EXTERNAL_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_CODESCAPE_MIPS_SYMLINK
|
||||
TOOLCHAIN_EXTERNAL_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_CODESCAPE_MIPS_STAGING_FIXUPS
|
||||
TOOLCHAIN_EXTERNAL_STRIP_COMPONENTS = 2
|
||||
else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX),y)
|
||||
TOOLCHAIN_EXTERNAL_SITE = http://downloads.sourceforge.net/project/adi-toolchain/2014R1/2014R1-RC2/i386
|
||||
@@ -350,19 +383,27 @@ TOOLCHAIN_EXTERNAL_STRIP_COMPONENTS = 3
|
||||
TOOLCHAIN_EXTERNAL_POST_EXTRACT_HOOKS += TOOLCHAIN_EXTERNAL_BLACKFIN_UCLIBC_EXTRA_EXTRACT
|
||||
else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64),y)
|
||||
ifeq ($(HOSTARCH),x86)
|
||||
TOOLCHAIN_EXTERNAL_SITE = http://releases.linaro.org/14.09/components/toolchain/binaries
|
||||
TOOLCHAIN_EXTERNAL_SITE = https://releases.linaro.org/14.09/components/toolchain/binaries
|
||||
TOOLCHAIN_EXTERNAL_SOURCE = gcc-linaro-aarch64-linux-gnu-4.9-2014.09_linux.tar.xz
|
||||
TOOLCHAIN_EXTERNAL_ACTUAL_SOURCE_TARBALL = gcc-linaro-aarch64-linux-gnu-4.9-2014.09_src.tar.bz2
|
||||
TOOLCHAIN_EXTERNAL_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_LINARO_AARCH64_SYMLINK
|
||||
TOOLCHAIN_EXTERNAL_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_LINARO_SYMLINK
|
||||
else
|
||||
TOOLCHAIN_EXTERNAL_SITE = http://releases.linaro.org/components/toolchain/binaries/5.2-2015.11-2/aarch64-linux-gnu
|
||||
TOOLCHAIN_EXTERNAL_SOURCE = gcc-linaro-5.2-2015.11-2-x86_64_aarch64-linux-gnu.tar.xz
|
||||
TOOLCHAIN_EXTERNAL_SITE = https://releases.linaro.org/components/toolchain/binaries/5.3-2016.02/aarch64-linux-gnu
|
||||
TOOLCHAIN_EXTERNAL_SOURCE = gcc-linaro-5.3-2016.02-x86_64_aarch64-linux-gnu.tar.xz
|
||||
endif
|
||||
else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64),y)
|
||||
TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/aarch64-linux-gnu
|
||||
TOOLCHAIN_EXTERNAL_SOURCE = aarch64-2014.05-30-aarch64-linux-gnu-i686-pc-linux-gnu.tar.bz2
|
||||
TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/aarch64-amd-linux-gnu
|
||||
TOOLCHAIN_EXTERNAL_SOURCE = aarch64-amd-2014.11-95-aarch64-amd-linux-gnu-i686-pc-linux-gnu.tar.bz2
|
||||
define TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_STAGING_FIXUP
|
||||
ln -sf ld-2.20.so $(STAGING_DIR)/lib/ld-linux-aarch64.so.1
|
||||
endef
|
||||
TOOLCHAIN_EXTERNAL_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_STAGING_FIXUP
|
||||
define TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_TARGET_FIXUP
|
||||
ln -sf ld-2.20.so $(TARGET_DIR)/lib/ld-linux-aarch64.so.1
|
||||
endef
|
||||
TOOLCHAIN_EXTERNAL_POST_INSTALL_TARGET_HOOKS += TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_TARGET_FIXUP
|
||||
else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS),y)
|
||||
TOOLCHAIN_EXTERNAL_VERSION = 1.1.6
|
||||
TOOLCHAIN_EXTERNAL_VERSION = 1.1.12
|
||||
TOOLCHAIN_EXTERNAL_SITE = https://googledrive.com/host/0BwnS5DMB0YQ6bDhPZkpOYVFhbk0/musl-$(TOOLCHAIN_EXTERNAL_VERSION)
|
||||
ifeq ($(BR2_arm)$(BR2_ARM_EABI),yy)
|
||||
TOOLCHAIN_EXTERNAL_SOURCE = crossx86-arm-linux-musleabi-$(TOOLCHAIN_EXTERNAL_VERSION).tar.xz
|
||||
@@ -372,14 +413,18 @@ else ifeq ($(BR2_armeb),y)
|
||||
TOOLCHAIN_EXTERNAL_SOURCE = crossx86-armeb-linux-musleabi-$(TOOLCHAIN_EXTERNAL_VERSION).tar.xz
|
||||
else ifeq ($(BR2_i386),y)
|
||||
TOOLCHAIN_EXTERNAL_SOURCE = crossx86-i486-linux-musl-$(TOOLCHAIN_EXTERNAL_VERSION).tar.xz
|
||||
else ifeq ($(BR2_microblazebe),y)
|
||||
TOOLCHAIN_EXTERNAL_SOURCE = crossx86-microblaze-linux-musl-$(TOOLCHAIN_EXTERNAL_VERSION).tar.xz
|
||||
else ifeq ($(BR2_mips),y)
|
||||
TOOLCHAIN_EXTERNAL_SOURCE = crossx86-mips-linux-musl-$(TOOLCHAIN_EXTERNAL_VERSION).tar.xz
|
||||
else ifeq ($(BR2_mipsel),y)
|
||||
else ifeq ($(BR2_mipsel):$(BR2_SOFT_FLOAT),y:)
|
||||
TOOLCHAIN_EXTERNAL_SOURCE = crossx86-mipsel-linux-musl-$(TOOLCHAIN_EXTERNAL_VERSION).tar.xz
|
||||
else ifeq ($(BR2_mipsel):$(BR2_SOFT_FLOAT),y:y)
|
||||
TOOLCHAIN_EXTERNAL_SOURCE = crossx86-mipsel-sf-linux-musl-$(TOOLCHAIN_EXTERNAL_VERSION).tar.xz
|
||||
else ifeq ($(BR2_powerpc),y)
|
||||
TOOLCHAIN_EXTERNAL_SOURCE = crossx86-powerpc-linux-musl-$(TOOLCHAIN_EXTERNAL_VERSION).tar.xz
|
||||
else ifeq ($(BR2_sh4),y)
|
||||
TOOLCHAIN_EXTERNAL_SOURCE = crossx86-sh4-linux-musl-$(TOOLCHAIN_EXTERNAL_VERSION).tar.xz
|
||||
else ifeq ($(BR2_sh4eb),y)
|
||||
TOOLCHAIN_EXTERNAL_SOURCE = crossx86-sh4eb-linux-musl-$(TOOLCHAIN_EXTERNAL_VERSION).tar.xz
|
||||
else ifeq ($(BR2_x86_64),y)
|
||||
TOOLCHAIN_EXTERNAL_SOURCE = crossx86-x86_64-linux-musl-$(TOOLCHAIN_EXTERNAL_VERSION).tar.xz
|
||||
endif
|
||||
@@ -424,16 +469,16 @@ TOOLCHAIN_EXTERNAL_ADD_TOOLCHAIN_DEPENDENCY = NO
|
||||
TOOLCHAIN_EXTERNAL_INSTALL_STAGING = YES
|
||||
|
||||
# Normal handling of downloaded toolchain tarball extraction.
|
||||
ifneq ($(TOOLCHAIN_EXTERNAL_SOURCE),)
|
||||
ifeq ($(BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD),y)
|
||||
TOOLCHAIN_EXTERNAL_EXCLUDES = usr/lib/locale/*
|
||||
|
||||
# As a regular package, the toolchain gets extracted in $(@D), but
|
||||
# since it's actually a fairly special package, we need it to be moved
|
||||
# into TOOLCHAIN_EXTERNAL_INSTALL_DIR.
|
||||
# into TOOLCHAIN_EXTERNAL_DOWNLOAD_INSTALL_DIR.
|
||||
define TOOLCHAIN_EXTERNAL_MOVE
|
||||
rm -rf $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/*
|
||||
mkdir -p $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)
|
||||
mv $(@D)/* $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/
|
||||
rm -rf $(TOOLCHAIN_EXTERNAL_DOWNLOAD_INSTALL_DIR)
|
||||
mkdir -p $(TOOLCHAIN_EXTERNAL_DOWNLOAD_INSTALL_DIR)
|
||||
mv $(@D)/* $(TOOLCHAIN_EXTERNAL_DOWNLOAD_INSTALL_DIR)/
|
||||
endef
|
||||
TOOLCHAIN_EXTERNAL_POST_EXTRACT_HOOKS += \
|
||||
TOOLCHAIN_EXTERNAL_MOVE
|
||||
@@ -467,17 +512,13 @@ $$(printf $(call toolchain_find_libc_a,$(1)) | sed -r -e 's:.*/(usr/)?(lib(32|64
|
||||
endef
|
||||
|
||||
# Checks for an already installed toolchain: check the toolchain
|
||||
# location, check that it supports sysroot, and then verify that it
|
||||
# location, check that it is usable, and then verify that it
|
||||
# matches the configuration provided in Buildroot: ABI, C++ support,
|
||||
# kernel headers version, type of C library and all C library features.
|
||||
define TOOLCHAIN_EXTERNAL_CONFIGURE_CMDS
|
||||
$(Q)$(call check_cross_compiler_exists,$(TOOLCHAIN_EXTERNAL_CC))
|
||||
$(Q)$(call check_unusable_toolchain,$(TOOLCHAIN_EXTERNAL_CC))
|
||||
$(Q)SYSROOT_DIR="$(call toolchain_find_sysroot,$(TOOLCHAIN_EXTERNAL_CC))" ; \
|
||||
if test -z "$${SYSROOT_DIR}" ; then \
|
||||
@echo "External toolchain doesn't support --sysroot. Cannot use." ; \
|
||||
exit 1 ; \
|
||||
fi ; \
|
||||
$(call check_kernel_headers_version,\
|
||||
$(call toolchain_find_sysroot,$(TOOLCHAIN_EXTERNAL_CC)),\
|
||||
$(call qstrip,$(BR2_TOOLCHAIN_HEADERS_AT_LEAST))); \
|
||||
@@ -491,6 +532,9 @@ define TOOLCHAIN_EXTERNAL_CONFIGURE_CMDS
|
||||
if test "$(BR2_INSTALL_LIBSTDCPP)" = "y" ; then \
|
||||
$(call check_cplusplus,$(TOOLCHAIN_EXTERNAL_CXX)) ; \
|
||||
fi ; \
|
||||
if test "$(BR2_TOOLCHAIN_HAS_FORTRAN)" = "y" ; then \
|
||||
$(call check_fortran,$(TOOLCHAIN_EXTERNAL_FC)) ; \
|
||||
fi ; \
|
||||
if test "$(BR2_TOOLCHAIN_EXTERNAL_UCLIBC)" = "y" ; then \
|
||||
$(call check_uclibc,$${SYSROOT_DIR}) ; \
|
||||
elif test "$(BR2_TOOLCHAIN_EXTERNAL_MUSL)" = "y" ; then \
|
||||
@@ -498,6 +542,7 @@ define TOOLCHAIN_EXTERNAL_CONFIGURE_CMDS
|
||||
else \
|
||||
$(call check_glibc,$${SYSROOT_DIR}) ; \
|
||||
fi
|
||||
$(Q)$(call check_toolchain_ssp,$(TOOLCHAIN_EXTERNAL_CC))
|
||||
endef
|
||||
|
||||
# With the musl C library, the libc.so library directly plays the role
|
||||
@@ -508,6 +553,10 @@ ifeq ($(BR2_i386),y)
|
||||
MUSL_ARCH = i386
|
||||
else ifeq ($(BR2_ARM_EABIHF),y)
|
||||
MUSL_ARCH = armhf
|
||||
else ifeq ($(BR2_mipsel):$(BR2_SOFT_FLOAT),y:y)
|
||||
MUSL_ARCH = mipsel-sf
|
||||
else ifeq ($(BR2_sh),y)
|
||||
MUSL_ARCH = sh
|
||||
else
|
||||
MUSL_ARCH = $(ARCH)
|
||||
endif
|
||||
@@ -585,58 +634,45 @@ endef
|
||||
# our sysroot, and the directory will also be
|
||||
# considered when searching libraries for copy
|
||||
# to the target filesystem.
|
||||
#
|
||||
# Please be very careful to check the major toolchain sources:
|
||||
# Buildroot, Crosstool-NG, CodeSourcery and Linaro
|
||||
# before doing any modification on the below logic.
|
||||
|
||||
ifeq ($(BR2_STATIC_LIBS),)
|
||||
define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_LIBS
|
||||
$(Q)SYSROOT_DIR="$(call toolchain_find_sysroot,$(TOOLCHAIN_EXTERNAL_CC))" ; \
|
||||
if test -z "$${SYSROOT_DIR}" ; then \
|
||||
@echo "External toolchain doesn't support --sysroot. Cannot use." ; \
|
||||
exit 1 ; \
|
||||
fi ; \
|
||||
ARCH_SYSROOT_DIR="$(call toolchain_find_sysroot,$(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \
|
||||
$(Q)$(call MESSAGE,"Copying external toolchain libraries to target...")
|
||||
$(Q)for libs in $(TOOLCHAIN_EXTERNAL_LIBS); do \
|
||||
$(call copy_toolchain_lib_root,$$libs); \
|
||||
done
|
||||
endef
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY),y)
|
||||
define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_GDBSERVER
|
||||
$(Q)$(call MESSAGE,"Copying gdbserver")
|
||||
$(Q)ARCH_SYSROOT_DIR="$(call toolchain_find_sysroot,$(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \
|
||||
ARCH_LIB_DIR="$(call toolchain_find_libdir,$(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \
|
||||
SUPPORT_LIB_DIR="" ; \
|
||||
if test `find $${ARCH_SYSROOT_DIR} -name 'libstdc++.a' | wc -l` -eq 0 ; then \
|
||||
LIBSTDCPP_A_LOCATION=$$(LANG=C $(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS) -print-file-name=libstdc++.a) ; \
|
||||
if [ -e "$${LIBSTDCPP_A_LOCATION}" ]; then \
|
||||
SUPPORT_LIB_DIR=`readlink -f $${LIBSTDCPP_A_LOCATION} | sed -r -e 's:libstdc\+\+\.a::'` ; \
|
||||
fi ; \
|
||||
fi ; \
|
||||
ARCH_SUBDIR=`echo $${ARCH_SYSROOT_DIR} | sed -r -e "s:^$${SYSROOT_DIR}(.*)/$$:\1:"` ; \
|
||||
if test -z "$(BR2_STATIC_LIBS)" ; then \
|
||||
$(call MESSAGE,"Copying external toolchain libraries to target...") ; \
|
||||
for libs in $(LIB_EXTERNAL_LIBS); do \
|
||||
$(call copy_toolchain_lib_root,$${ARCH_SYSROOT_DIR},$${SUPPORT_LIB_DIR},$${ARCH_LIB_DIR},$$libs,/lib); \
|
||||
done ; \
|
||||
for libs in $(USR_LIB_EXTERNAL_LIBS); do \
|
||||
$(call copy_toolchain_lib_root,$${ARCH_SYSROOT_DIR},$${SUPPORT_LIB_DIR},$${ARCH_LIB_DIR},$$libs,/usr/lib); \
|
||||
done ; \
|
||||
fi ; \
|
||||
if test "$(BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY)" = "y"; then \
|
||||
$(call MESSAGE,"Copying gdbserver") ; \
|
||||
gdbserver_found=0 ; \
|
||||
for d in $${ARCH_SYSROOT_DIR}/usr \
|
||||
$${ARCH_SYSROOT_DIR}/../debug-root/usr \
|
||||
$${ARCH_SYSROOT_DIR}/usr/$${ARCH_LIB_DIR} \
|
||||
$(TOOLCHAIN_EXTERNAL_INSTALL_DIR); do \
|
||||
if test -f $${d}/bin/gdbserver ; then \
|
||||
install -m 0755 -D $${d}/bin/gdbserver $(TARGET_DIR)/usr/bin/gdbserver ; \
|
||||
gdbserver_found=1 ; \
|
||||
break ; \
|
||||
fi ; \
|
||||
done ; \
|
||||
if [ $${gdbserver_found} -eq 0 ] ; then \
|
||||
echo "Could not find gdbserver in external toolchain" ; \
|
||||
exit 1 ; \
|
||||
gdbserver_found=0 ; \
|
||||
for d in $${ARCH_SYSROOT_DIR}/usr \
|
||||
$${ARCH_SYSROOT_DIR}/../debug-root/usr \
|
||||
$${ARCH_SYSROOT_DIR}/usr/$${ARCH_LIB_DIR} \
|
||||
$(TOOLCHAIN_EXTERNAL_INSTALL_DIR); do \
|
||||
if test -f $${d}/bin/gdbserver ; then \
|
||||
install -m 0755 -D $${d}/bin/gdbserver $(TARGET_DIR)/usr/bin/gdbserver ; \
|
||||
gdbserver_found=1 ; \
|
||||
break ; \
|
||||
fi ; \
|
||||
done ; \
|
||||
if [ $${gdbserver_found} -eq 0 ] ; then \
|
||||
echo "Could not find gdbserver in external toolchain" ; \
|
||||
exit 1 ; \
|
||||
fi
|
||||
endef
|
||||
endif
|
||||
|
||||
define TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS
|
||||
$(Q)SYSROOT_DIR="$(call toolchain_find_sysroot,$(TOOLCHAIN_EXTERNAL_CC))" ; \
|
||||
if test -z "$${SYSROOT_DIR}" ; then \
|
||||
@echo "External toolchain doesn't support --sysroot. Cannot use." ; \
|
||||
exit 1 ; \
|
||||
fi ; \
|
||||
ARCH_SYSROOT_DIR="$(call toolchain_find_sysroot,$(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \
|
||||
ARCH_LIB_DIR="$(call toolchain_find_libdir,$(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \
|
||||
SUPPORT_LIB_DIR="" ; \
|
||||
@@ -656,9 +692,9 @@ endef
|
||||
# nonetheless requested the installation of the FDPIC libraries to the
|
||||
# target filesystem.
|
||||
ifeq ($(BR2_BFIN_INSTALL_FDPIC_SHARED),y)
|
||||
define TOOLCHAIN_EXTERNAL_INSTALL_BFIN_FDPIC
|
||||
$(Q)$(call MESSAGE,"Install external toolchain FDPIC libraries to target...") ; \
|
||||
FDPIC_EXTERNAL_CC=$(dir $(TOOLCHAIN_EXTERNAL_CC))/../../bfin-linux-uclibc/bin/bfin-linux-uclibc-gcc ; \
|
||||
define TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS_BFIN_FDPIC
|
||||
$(Q)$(call MESSAGE,"Install external toolchain FDPIC libraries to staging...")
|
||||
$(Q)FDPIC_EXTERNAL_CC=$(dir $(TOOLCHAIN_EXTERNAL_CC))/../../bfin-linux-uclibc/bin/bfin-linux-uclibc-gcc ; \
|
||||
FDPIC_SYSROOT_DIR="$(call toolchain_find_sysroot,$${FDPIC_EXTERNAL_CC} $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \
|
||||
FDPIC_LIB_DIR="$(call toolchain_find_libdir,$${FDPIC_EXTERNAL_CC} $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \
|
||||
FDPIC_SUPPORT_LIB_DIR="" ; \
|
||||
@@ -668,11 +704,12 @@ define TOOLCHAIN_EXTERNAL_INSTALL_BFIN_FDPIC
|
||||
FDPIC_SUPPORT_LIB_DIR=`readlink -f $${FDPIC_LIBSTDCPP_A_LOCATION} | sed -r -e 's:libstdc\+\+\.a::'` ; \
|
||||
fi ; \
|
||||
fi ; \
|
||||
for libs in $(LIB_EXTERNAL_LIBS); do \
|
||||
$(call copy_toolchain_lib_root,$${FDPIC_SYSROOT_DIR},$${FDPIC_SUPPORT_LIB_DIR},$${FDPIC_LIB_DIR},$$libs,/lib); \
|
||||
done ; \
|
||||
for libs in $(USR_LIB_EXTERNAL_LIBS); do \
|
||||
$(call copy_toolchain_lib_root,$${FDPIC_SYSROOT_DIR},$${FDPIC_SUPPORT_LIB_DIR},$${FDPIC_LIB_DIR},$$libs,/usr/lib); \
|
||||
$(call copy_toolchain_sysroot,$${FDPIC_SYSROOT_DIR},$${FDPIC_SYSROOT_DIR},,$${FDPIC_LIB_DIR},$${FDPIC_SUPPORT_LIB_DIR})
|
||||
endef
|
||||
define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_BFIN_FDPIC
|
||||
$(Q)$(call MESSAGE,"Install external toolchain FDPIC libraries to target...")
|
||||
$(Q)for libs in $(TOOLCHAIN_EXTERNAL_LIBS); do \
|
||||
$(call copy_toolchain_lib_root,$$libs); \
|
||||
done
|
||||
endef
|
||||
endif
|
||||
@@ -684,9 +721,9 @@ endif
|
||||
# according to the index in name "libN.so". Index 1 is reserved for
|
||||
# the standard C library. Customer libraries can use 4 and above.
|
||||
ifeq ($(BR2_BFIN_INSTALL_FLAT_SHARED),y)
|
||||
define TOOLCHAIN_EXTERNAL_INSTALL_BFIN_FLAT
|
||||
$(Q)$(call MESSAGE,"Install external toolchain FLAT libraries to target...") ; \
|
||||
FLAT_EXTERNAL_CC=$(dir $(TOOLCHAIN_EXTERNAL_CC))../../bfin-uclinux/bin/bfin-uclinux-gcc ; \
|
||||
define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_BFIN_FLAT
|
||||
$(Q)$(call MESSAGE,"Install external toolchain FLAT libraries to target...")
|
||||
$(Q)FLAT_EXTERNAL_CC=$(dir $(TOOLCHAIN_EXTERNAL_CC))../../bfin-uclinux/bin/bfin-uclinux-gcc ; \
|
||||
FLAT_LIBC_A_LOCATION=`$${FLAT_EXTERNAL_CC} $(TOOLCHAIN_EXTERNAL_CFLAGS) -mid-shared-library -print-file-name=libc`; \
|
||||
if [ -f $${FLAT_LIBC_A_LOCATION} -a ! -h $${FLAT_LIBC_A_LOCATION} ] ; then \
|
||||
$(INSTALL) -D $${FLAT_LIBC_A_LOCATION} $(TARGET_DIR)/lib/lib1.so; \
|
||||
@@ -694,9 +731,9 @@ define TOOLCHAIN_EXTERNAL_INSTALL_BFIN_FLAT
|
||||
endef
|
||||
endif
|
||||
|
||||
# Build toolchain wrapper for preprocessor, C and C++ compiler and setup
|
||||
# symlinks for everything else. Skip gdb symlink when we are building our
|
||||
# own gdb to prevent two gdb's in output/host/usr/bin.
|
||||
# Build toolchain wrapper for preprocessor, C, C++ and Fortran compilers
|
||||
# and setup symlinks for everything else. Skip gdb symlink when we are
|
||||
# building our own gdb to prevent two gdb's in output/host/usr/bin.
|
||||
# The LTO support in gcc creates wrappers for ar, ranlib and nm which load
|
||||
# the lto plugin. These wrappers are called *-gcc-ar, *-gcc-ranlib, and
|
||||
# *-gcc-nm and should be used instead of the real programs when -flto is
|
||||
@@ -711,7 +748,7 @@ define TOOLCHAIN_EXTERNAL_INSTALL_WRAPPER
|
||||
*-ar|*-ranlib|*-nm) \
|
||||
ln -sf $$(echo $$i | sed 's%^$(HOST_DIR)%../..%') .; \
|
||||
;; \
|
||||
*cc|*cc-*|*++|*++-*|*cpp) \
|
||||
*cc|*cc-*|*++|*++-*|*cpp|*-gfortran) \
|
||||
ln -sf toolchain-wrapper $$base; \
|
||||
;; \
|
||||
*gdb|*gdbtui) \
|
||||
@@ -755,6 +792,7 @@ TOOLCHAIN_EXTERNAL_BUILD_CMDS = $(TOOLCHAIN_BUILD_WRAPPER)
|
||||
define TOOLCHAIN_EXTERNAL_INSTALL_STAGING_CMDS
|
||||
$(TOOLCHAIN_EXTERNAL_CREATE_STAGING_LIB_SYMLINK)
|
||||
$(TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS)
|
||||
$(TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS_BFIN_FDPIC)
|
||||
$(TOOLCHAIN_EXTERNAL_INSTALL_WRAPPER)
|
||||
$(TOOLCHAIN_EXTERNAL_INSTALL_GDBINIT)
|
||||
endef
|
||||
@@ -765,9 +803,11 @@ endef
|
||||
define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_CMDS
|
||||
$(TOOLCHAIN_EXTERNAL_CREATE_TARGET_LIB_SYMLINK)
|
||||
$(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_LIBS)
|
||||
$(TOOLCHAIN_EXTERNAL_INSTALL_BFIN_FDPIC)
|
||||
$(TOOLCHAIN_EXTERNAL_INSTALL_BFIN_FLAT)
|
||||
$(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_GDBSERVER)
|
||||
$(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_BFIN_FDPIC)
|
||||
$(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_BFIN_FLAT)
|
||||
$(TOOLCHAIN_EXTERNAL_FIXUP_UCLIBCNG_LDSO)
|
||||
endef
|
||||
|
||||
$(eval $(generic-package))
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ define GLIBC_COPY_NSSWITCH_FILE
|
||||
$(INSTALL) -D -m 0644 package/glibc/nsswitch.conf $(TARGET_DIR)/etc/nsswitch.conf ; \
|
||||
fi
|
||||
endef
|
||||
TARGET_FINALIZE_HOOKS += GLIBC_COPY_NSSWITCH_FILE
|
||||
TOOLCHAIN_TARGET_FINALIZE_HOOKS += GLIBC_COPY_NSSWITCH_FILE
|
||||
endif
|
||||
|
||||
# Install the gconv modules
|
||||
@@ -52,5 +52,5 @@ define COPY_GCONV_LIBS
|
||||
>$(TARGET_DIR)/usr/lib/gconv/gconv-modules; \
|
||||
fi
|
||||
endef
|
||||
TARGET_FINALIZE_HOOKS += COPY_GCONV_LIBS
|
||||
TOOLCHAIN_TARGET_FINALIZE_HOOKS += COPY_GCONV_LIBS
|
||||
endif
|
||||
|
||||
Reference in New Issue
Block a user