Merge branch 'for-2012.05/ext-toolchain-updates' of git://git.free-electrons.com/users/thomas-petazzoni/buildroot
This commit is contained in:
commit
21561bd27c
@ -266,6 +266,9 @@ config BR2_x86_nocona
|
||||
bool "nocona"
|
||||
config BR2_x86_core2
|
||||
bool "core2"
|
||||
config BR2_x86_atom
|
||||
bool "atom"
|
||||
comment "atom needs gcc >= 4.5.x"
|
||||
config BR2_x86_k6
|
||||
bool "k6"
|
||||
config BR2_x86_k6_2
|
||||
@ -311,6 +314,9 @@ config BR2_x86_64_nocona
|
||||
bool "nocona"
|
||||
config BR2_x86_64_core2
|
||||
bool "core2"
|
||||
config BR2_x86_64_atom
|
||||
bool "atom"
|
||||
comment "atom needs gcc >= 4.5.x"
|
||||
endchoice
|
||||
|
||||
choice
|
||||
@ -500,6 +506,7 @@ config BR2_ARCH
|
||||
default "i686" if BR2_x86_pentiumpro
|
||||
default "i686" if BR2_x86_nocona
|
||||
default "i686" if BR2_x86_core2
|
||||
default "i686" if BR2_x86_atom
|
||||
default "i686" if BR2_x86_opteron
|
||||
default "i686" if BR2_x86_opteron_sse3
|
||||
default "i686" if BR2_x86_barcelona
|
||||
@ -525,6 +532,7 @@ config BR2_ARCH
|
||||
default "x86_64" if BR2_x86_64_generic
|
||||
default "x86_64" if BR2_x86_64_nocona
|
||||
default "x86_64" if BR2_x86_64_core2
|
||||
default "x86_64" if BR2_x86_64_atom
|
||||
default "x86_64" if BR2_x86_64_opteron
|
||||
default "x86_64" if BR2_x86_64_opteron_sse3
|
||||
default "x86_64" if BR2_x86_64_barcelona
|
||||
@ -554,6 +562,7 @@ config BR2_GCC_TARGET_TUNE
|
||||
default prescott if BR2_x86_prescott
|
||||
default nocona if BR2_x86_nocona
|
||||
default core2 if BR2_x86_core2
|
||||
default atom if BR2_x86_atom
|
||||
default k8 if BR2_x86_opteron
|
||||
default k8-sse3 if BR2_x86_opteron_sse3
|
||||
default barcelona if BR2_x86_barcelona
|
||||
@ -569,6 +578,7 @@ config BR2_GCC_TARGET_TUNE
|
||||
default generic if BR2_x86_64_generic
|
||||
default nocona if BR2_x86_64_nocona
|
||||
default core2 if BR2_x86_64_core2
|
||||
default atom if BR2_x86_64_atom
|
||||
default k8 if BR2_x86_64_opteron
|
||||
default k8-sse3 if BR2_x86_64_opteron_sse3
|
||||
default barcelona if BR2_x86_64_barcelona
|
||||
@ -669,6 +679,7 @@ config BR2_GCC_TARGET_ARCH
|
||||
default prescott if BR2_x86_prescott
|
||||
default nocona if BR2_x86_nocona
|
||||
default core2 if BR2_x86_core2
|
||||
default atom if BR2_x86_atom
|
||||
default k8 if BR2_x86_opteron
|
||||
default k8-sse3 if BR2_x86_opteron_sse3
|
||||
default barcelona if BR2_x86_barcelona
|
||||
@ -678,6 +689,12 @@ config BR2_GCC_TARGET_ARCH
|
||||
default athlon-4 if BR2_x86_athlon_4
|
||||
default winchip-c6 if BR2_x86_winchip_c6
|
||||
default winchip2 if BR2_x86_winchip2
|
||||
default nocona if BR2_x86_64_nocona
|
||||
default core2 if BR2_x86_64_core2
|
||||
default atom if BR2_x86_64_atom
|
||||
default k8 if BR2_x86_64_opteron
|
||||
default k8-sse3 if BR2_x86_64_opteron_sse3
|
||||
default barcelona if BR2_x86_64_barcelona
|
||||
default c3 if BR2_x86_c3
|
||||
default c3-2 if BR2_x86_c32
|
||||
default geode if BR2_x86_geode
|
||||
|
@ -7,22 +7,44 @@
|
||||
# directory to the target directory. Also optionaly strips the
|
||||
# library.
|
||||
#
|
||||
# Most toolchains have their libraries either in /lib or /usr/lib
|
||||
# relative to their ARCH_SYSROOT_DIR. Buildroot toolchains, however,
|
||||
# have basic libraries in /lib, and libstdc++/libgcc_s in
|
||||
# /usr/<target-name>/lib(64).
|
||||
# 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}
|
||||
#
|
||||
# Finally, Linaro toolchains have the libraries in lib/<target-name>/,
|
||||
# so we need to search libraries in:
|
||||
#
|
||||
# $${ARCH_LIB_DIR}/$(TOOLCHAIN_EXTERNAL_PREFIX)
|
||||
#
|
||||
# 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: library name
|
||||
# $3: destination directory of the libary, relative to $(TARGET_DIR)
|
||||
# $2: library directory ('lib' or 'lib64') from which libraries must be copied
|
||||
# $3: library name
|
||||
# $4: destination directory of the libary, relative to $(TARGET_DIR)
|
||||
#
|
||||
copy_toolchain_lib_root = \
|
||||
ARCH_SYSROOT_DIR="$(strip $1)"; \
|
||||
LIB="$(strip $2)"; \
|
||||
DESTDIR="$(strip $3)" ; \
|
||||
ARCH_LIB_DIR="$(strip $2)" ; \
|
||||
LIB="$(strip $3)"; \
|
||||
DESTDIR="$(strip $4)" ; \
|
||||
\
|
||||
LIBS=`(cd $${ARCH_SYSROOT_DIR}; \
|
||||
find -L lib* usr/lib* usr/$(TOOLCHAIN_EXTERNAL_PREFIX)/lib* \
|
||||
find -L $${ARCH_LIB_DIR} usr/$${ARCH_LIB_DIR} usr/$(TOOLCHAIN_EXTERNAL_PREFIX)/$${ARCH_LIB_DIR} $${ARCH_LIB_DIR}/$(TOOLCHAIN_EXTERNAL_PREFIX) \
|
||||
-maxdepth 1 -name "$${LIB}.*" 2>/dev/null \
|
||||
)` ; \
|
||||
for FILE in $${LIBS} ; do \
|
||||
@ -84,12 +106,14 @@ copy_toolchain_lib_root = \
|
||||
# $1: main sysroot directory of the toolchain
|
||||
# $2: arch specific sysroot directory of the toolchain
|
||||
# $3: arch specific subdirectory in the sysroot
|
||||
# $4: directory of libraries ('lib' or 'lib64')
|
||||
#
|
||||
copy_toolchain_sysroot = \
|
||||
SYSROOT_DIR="$(strip $1)"; \
|
||||
ARCH_SYSROOT_DIR="$(strip $2)"; \
|
||||
ARCH_SUBDIR="$(strip $3)"; \
|
||||
for i in etc lib sbin usr ; do \
|
||||
ARCH_LIB_DIR="$(strip $4)" ; \
|
||||
for i in etc $${ARCH_LIB_DIR} sbin usr ; do \
|
||||
if [ -d $${ARCH_SYSROOT_DIR}/$$i ] ; then \
|
||||
rsync -au --chmod=Du+w --exclude 'usr/lib/locale' $${ARCH_SYSROOT_DIR}/$$i $(STAGING_DIR)/ ; \
|
||||
fi ; \
|
||||
@ -98,7 +122,14 @@ copy_toolchain_sysroot = \
|
||||
if [ ! -d $${ARCH_SYSROOT_DIR}/usr/include ] ; then \
|
||||
cp -a $${SYSROOT_DIR}/usr/include $(STAGING_DIR)/usr ; \
|
||||
fi ; \
|
||||
ln -s . $(STAGING_DIR)/$${ARCH_SUBDIR} ; \
|
||||
mkdir -p `dirname $(STAGING_DIR)/$${ARCH_SUBDIR}` ; \
|
||||
relpath="./" ; \
|
||||
nbslashs=`echo -n $${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 ; \
|
||||
find $(STAGING_DIR) -type d | xargs chmod 755
|
||||
|
||||
@ -184,7 +215,7 @@ check_uclibc_feature = \
|
||||
#
|
||||
check_uclibc = \
|
||||
SYSROOT_DIR="$(strip $1)"; \
|
||||
if ! test -f $${SYSROOT_DIR}/lib/ld*-uClibc.so.* ; then \
|
||||
if ! test -f $${SYSROOT_DIR}/usr/include/bits/uClibc_config.h ; then \
|
||||
echo "Incorrect selection of the C library"; \
|
||||
exit -1; \
|
||||
fi; \
|
||||
|
@ -3,6 +3,41 @@ if BR2_TOOLCHAIN_EXTERNAL
|
||||
choice
|
||||
prompt "Toolchain"
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_LINARO_2012_01
|
||||
bool "Linaro 2012.01"
|
||||
depends on BR2_arm
|
||||
depends on BR2_cortex_a8 || BR2_cortex_a9
|
||||
select BR2_TOOLCHAIN_EXTERNAL_GLIBC
|
||||
select BR2_INSTALL_LIBSTDCPP
|
||||
help
|
||||
Linaro toolchain for the ARM architecture. It uses Linaro
|
||||
GCC 2012.01 (based on gcc 4.6), Linaro GDB 2011.12, eglibc
|
||||
2.13. 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 softfp calling convention, and uses the
|
||||
VFPv3-D16 FPU instructions.
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201109
|
||||
bool "Sourcery CodeBench ARM 2011.09"
|
||||
depends on BR2_arm
|
||||
select BR2_TOOLCHAIN_EXTERNAL_GLIBC
|
||||
select BR2_INSTALL_LIBSTDCPP
|
||||
help
|
||||
Sourcery CodeBench toolchain for the ARM architecture, from
|
||||
Mentor Graphics. It uses gcc 4.6.1, binutils 2.21.53, glibc
|
||||
2.13 and gdb 7.2.50, kernel headers 3.0.1. It has support
|
||||
for the following variants:
|
||||
- ARMv5TE, little endian, soft-float, glibc
|
||||
Select ARM926T, ARM10T, XScale or another ARMv5 core
|
||||
Select BR2_SOFT_FLOAT
|
||||
- ARMv4T, little endian, soft-float, glibc
|
||||
Select ARM720T, ARM920T, ARM922T or another ARMv4 core
|
||||
Select BR2_SOFT_FLOAT
|
||||
- ARMv7-A, Thumb 2, little endian, soft-float, glibc
|
||||
Select Cortex-A8, Cortex-A9 or another ARMv7-A core
|
||||
Select BR2_SOFT_FLOAT
|
||||
Set BR2_TARGET_OPTIMIZATION to -mthumb
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201103
|
||||
bool "Sourcery CodeBench ARM 2011.03"
|
||||
depends on BR2_arm
|
||||
@ -14,8 +49,15 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201103
|
||||
2.13 and gdb 7.2.50, kernel headers 2.6.38. It has support
|
||||
for the following variants:
|
||||
- ARMv5TE, little endian, soft-float, glibc
|
||||
Select ARM926T, ARM10T, XScale or another ARMv5 core
|
||||
Select BR2_SOFT_FLOAT
|
||||
- ARMv4T, little endian, soft-float, glibc
|
||||
Select ARM720T, ARM920T, ARM922T or another ARMv4 core
|
||||
Select BR2_SOFT_FLOAT
|
||||
- ARMv7-A, Thumb 2, little endian, soft-float, glibc
|
||||
Select Cortex-A8, Cortex-A9 or another ARMv7-A core
|
||||
Select BR2_SOFT_FLOAT
|
||||
Set BR2_TARGET_OPTIMIZATION to -mthumb
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201009
|
||||
bool "Sourcery CodeBench ARM 2010.09"
|
||||
@ -28,8 +70,15 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201009
|
||||
2.11 and gdb 7.2.50, kernel headers 2.6.35.2. It has support
|
||||
for the following variants:
|
||||
- ARMv5TE, little endian, soft-float, glibc
|
||||
Select ARM926T, ARM10T, XScale or another ARMv5 core
|
||||
Select BR2_SOFT_FLOAT
|
||||
- ARMv4T, little endian, soft-float, glibc
|
||||
Select ARM720T, ARM920T, ARM922T or another ARMv4 core
|
||||
Select BR2_SOFT_FLOAT
|
||||
- ARMv7-A, Thumb 2, little endian, soft-float, glibc
|
||||
Select Cortex-A8, Cortex-A9 or another ARMv7-A core
|
||||
Select BR2_SOFT_FLOAT
|
||||
Set BR2_TARGET_OPTIMIZATION to -mthumb
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM2010Q1
|
||||
bool "Sourcery CodeBench ARM 2010q1"
|
||||
@ -42,8 +91,15 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM2010Q1
|
||||
2.11, gdb 7.0.50 and kernel headers 2.6.32. It has support
|
||||
for the following variants:
|
||||
- ARMv5T, little endian, soft-float, glibc
|
||||
Select ARM926T, ARM10T, XScale or another ARMv5 core
|
||||
Select BR2_SOFT_FLOAT
|
||||
- ARMv4T, little endian, soft-float, glibc
|
||||
Select ARM720T, ARM920T, ARM922T or another ARMv4 core
|
||||
Select BR2_SOFT_FLOAT
|
||||
- ARMv7-A, Thumb 2, little endian, soft-float, glibc
|
||||
Select Cortex-A8, Cortex-A9 or another ARMv7-A core
|
||||
Select BR2_SOFT_FLOAT
|
||||
Set BR2_TARGET_OPTIMIZATION to -mthumb
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM2009Q3
|
||||
bool "Sourcery CodeBench ARM 2009q3"
|
||||
@ -56,22 +112,15 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM2009Q3
|
||||
2.10 and gdb 6.8 and kernel headers 2.6.30. It has support
|
||||
for the following variants:
|
||||
- ARMv5T, little endian, soft-float, glibc
|
||||
Select ARM926T, ARM10T, XScale or another ARMv5 core
|
||||
Select BR2_SOFT_FLOAT
|
||||
- ARMv4T, little endian, soft-float, glibc
|
||||
Select ARM720T, ARM920T, ARM922T or another ARMv4 core
|
||||
Select BR2_SOFT_FLOAT
|
||||
- ARMv7-A, Thumb 2, little endian, soft-float, glibc
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM2009Q1
|
||||
bool "Sourcery CodeBench ARM 2009q1"
|
||||
depends on BR2_arm
|
||||
select BR2_TOOLCHAIN_EXTERNAL_GLIBC
|
||||
select BR2_INSTALL_LIBSTDCPP
|
||||
help
|
||||
Sourcery CodeBench toolchain for the ARM architecture, from
|
||||
Mentor Graphics. It uses gcc 4.3.3, binutils 2.19, glibc 2.8
|
||||
and gdb 6.8 and kernel headers 2.6.30. It has support for
|
||||
the following variants:
|
||||
- ARMv5T, little endian, soft-float, glibc
|
||||
- ARMv4T, little endian, soft-float, glibc
|
||||
- ARMv7-A, Thumb 2, little endian, soft-float, glibc
|
||||
Select Cortex-A8, Cortex-A9 or another ARMv7-A core
|
||||
Select BR2_SOFT_FLOAT
|
||||
Set BR2_TARGET_OPTIMIZATION to -mthumb
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201103
|
||||
bool "Sourcery CodeBench MIPS 2011.03"
|
||||
@ -84,17 +133,43 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201103
|
||||
2.13, uClibc 0.9.30 and gdb 7.2.50, kernel headers
|
||||
2.6.38. It has support for the following variants:
|
||||
- MIPS32 O32 big endian glibc
|
||||
Select a MIPS generic core
|
||||
Disable BR2_SOFT_FLOAT
|
||||
- MIPS32 O32 little endian glibc
|
||||
Select a MIPS generic core
|
||||
Disable BR2_SOFT_FLOAT
|
||||
Set BR2_TARGET_OPTIMIZATION to -EL
|
||||
- MIPS32 big endian soft float glibc
|
||||
Select a MIPS generic core
|
||||
Select BR2_SOFT_FLOAT
|
||||
- MIPS32 little endian soft float glibc
|
||||
Select a MIPS generic core
|
||||
Select BR2_SOFT_FLOAT
|
||||
Set BR2_TARGET_OPTIMIZATION to -EL
|
||||
- MIPS32 big endian microMIPS glibc
|
||||
Select a MIPS generic core
|
||||
Disable BR2_SOFT_FLOAT
|
||||
Set BR2_TARGET_OPTIMIZATION to -mips16
|
||||
- MIPS32 little endian microMIPS glibc
|
||||
Select a MIPS generic core
|
||||
Disable BR2_SOFT_FLOAT
|
||||
Set BR2_TARGET_OPTIMIZATION to -EL -mips16
|
||||
- MIPS32 big endian soft float microMIPS glibc
|
||||
Select a MIPS generic core
|
||||
Select BR2_SOFT_FLOAT
|
||||
Set BR2_TARGET_OPTIMIZATION to -mips16
|
||||
- MIPS32 little endian soft float microMIPS glibc
|
||||
Select a MIPS generic core
|
||||
Select BR2_SOFT_FLOAT
|
||||
Set BR2_TARGET_OPTIMIZATION to -EL -mips16
|
||||
- MIPS32 big endian uclibc
|
||||
Not usable in Buildroot yet.
|
||||
- MIPS32 little endian uclibc
|
||||
Not usable in Buildroot yet.
|
||||
- MIPS32 big endian soft float uclibc
|
||||
Not usable in Buildroot yet.
|
||||
- MIPS32 little endian soft float uclibc
|
||||
Not usable in Buildroot yet.
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS44
|
||||
bool "Sourcery CodeBench MIPS 4.4"
|
||||
@ -107,17 +182,70 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS44
|
||||
2.11, uClibc 0.9.30 and gdb 7.0, kernel headers 2.6.32. It
|
||||
has support for the following variants:
|
||||
- MIPS32 O32 big endian glibc
|
||||
Select a MIPS generic core
|
||||
Disable BR2_SOFT_FLOAT
|
||||
- MIPS32 O32 little endian glibc
|
||||
Select a MIPS generic core
|
||||
Disable BR2_SOFT_FLOAT
|
||||
Set BR2_TARGET_OPTIMIZATION to -EL
|
||||
- MIPS32 big endian soft float glibc
|
||||
Select a MIPS generic core
|
||||
Select BR2_SOFT_FLOAT
|
||||
- MIPS32 little endian soft float glibc
|
||||
Select a MIPS generic core
|
||||
Select BR2_SOFT_FLOAT
|
||||
Set BR2_TARGET_OPTIMIZATION to -EL
|
||||
- MIPS32 big endian microMIPS glibc
|
||||
Select a MIPS generic core
|
||||
Disable BR2_SOFT_FLOAT
|
||||
Set BR2_TARGET_OPTIMIZATION to -mips16
|
||||
- MIPS32 little endian microMIPS glibc
|
||||
Select a MIPS generic core
|
||||
Disable BR2_SOFT_FLOAT
|
||||
Set BR2_TARGET_OPTIMIZATION to -EL -mips16
|
||||
- MIPS32 big endian soft float microMIPS glibc
|
||||
Select a MIPS generic core
|
||||
Select BR2_SOFT_FLOAT
|
||||
Set BR2_TARGET_OPTIMIZATION to -mips16
|
||||
- MIPS32 little endian soft float microMIPS glibc
|
||||
Select a MIPS generic core
|
||||
Select BR2_SOFT_FLOAT
|
||||
Set BR2_TARGET_OPTIMIZATION to -EL -mips16
|
||||
- MIPS32 big endian uclibc
|
||||
Not usable in Buildroot yet.
|
||||
- MIPS32 little endian uclibc
|
||||
Not usable in Buildroot yet.
|
||||
- MIPS32 big endian soft float uclibc
|
||||
Not usable in Buildroot yet.
|
||||
- MIPS32 little endian soft float uclibc
|
||||
Not usable in Buildroot yet.
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201103
|
||||
bool "Sourcery CodeBench PowerPC 2011.03"
|
||||
depends on BR2_powerpc
|
||||
select BR2_TOOLCHAIN_EXTERNAL_GLIBC
|
||||
select BR2_INSTALL_LIBSTDCPP
|
||||
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
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201009
|
||||
bool "Sourcery CodeBench PowerPC 2010.09"
|
||||
@ -126,16 +254,25 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201009
|
||||
select BR2_INSTALL_LIBSTDCPP
|
||||
help
|
||||
Sourcery CodeBench toolchain for the PowerPC architecture,
|
||||
from Sourcery CodeBench. It uses gcc 4.5.1, binutils 2.20,
|
||||
from Mentor Graphics. It uses gcc 4.5.1, binutils 2.20,
|
||||
glibc 2.11, gdb 7.2.50 and kernel headers 2.6.35.2. It has
|
||||
support for the following variants:
|
||||
- 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
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH201103
|
||||
bool "Sourcery CodeBench SH 2011.03"
|
||||
@ -148,9 +285,13 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH201103
|
||||
glibc 2.13, uClibc 0.9.30, gdb 7.2.50 and kernel headers
|
||||
2.6.38. It has support for the following variants:
|
||||
- SH4A, glibc, little endian
|
||||
Default.
|
||||
- SH4A, glibc, big endian
|
||||
Add -mb to BR2_TARGET_OPTIMIZATION
|
||||
- SH4A, uClibc, little endian
|
||||
Not usable in Buildroot yet.
|
||||
- SH4A, uClibc, big endian
|
||||
Not usable in Buildroot yet.
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH201009
|
||||
bool "Sourcery CodeBench SH 2010.09"
|
||||
@ -163,9 +304,13 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH201009
|
||||
glibc 2.11, uClibc 0.9.30, gdb 7.2.50 and kernel headers
|
||||
2.6.35.2. It has support for the following variants:
|
||||
- SH4A, glibc, little endian
|
||||
Default.
|
||||
- SH4A, glibc, big endian
|
||||
Add -mb to BR2_TARGET_OPTIMIZATION
|
||||
- SH4A, uClibc, little endian
|
||||
Not usable in Buildroot yet.
|
||||
- SH4A, uClibc, big endian
|
||||
Not usable in Buildroot yet.
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH2A_201103
|
||||
bool "Sourcery CodeBench SH 2011.03"
|
||||
@ -201,6 +346,26 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH2A_201009
|
||||
has support for the following variants:
|
||||
- SH2A, uClibc, big endian
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_X86_201109
|
||||
bool "Sourcery CodeBench x86/x86_64 2011.09"
|
||||
depends on BR2_i386 || BR2_x86_64
|
||||
select BR2_TOOLCHAIN_EXTERNAL_GLIBC
|
||||
select BR2_INSTALL_LIBSTDCPP
|
||||
help
|
||||
Sourcery CodeBench toolchain for the x86/x86_64
|
||||
architectures, from Mentor Graphics. It uses gcc 4.6.1,
|
||||
binutils 2.21.53, glibc 2.13, gdb 7.2.50 and kernel headers
|
||||
3.0.1. It has support for the following variants:
|
||||
- Intel Pentium 4, glibc, 32 bits
|
||||
Default, nothing special to do.
|
||||
- Intel Atom, glibc, 32 bits
|
||||
Select an Atom core
|
||||
- Intel Xeon, glibc, 64 bits
|
||||
Set BR2_TARGET_OPTIMIZATION to -m64
|
||||
- Intel Core 2, glibc, 64 bits
|
||||
Select a Core 2 core
|
||||
Set BR2_TARGET_OPTIMIZATION to -m64
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_X86_201009
|
||||
bool "Sourcery CodeBench x86/x86_64 2010.09"
|
||||
depends on BR2_i386 || BR2_x86_64
|
||||
@ -212,9 +377,29 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_X86_201009
|
||||
binutils 2.20, glibc 2.11, gdb 7.2.50 and kernel headers
|
||||
2.6.35.2. It has support for the following variants:
|
||||
- Intel Pentium 4, glibc, 32 bits
|
||||
Default, nothing special to do.
|
||||
- Intel Atom, glibc, 32 bits
|
||||
Select an Atom core
|
||||
- Intel Xeon, glibc, 64 bits
|
||||
Set BR2_TARGET_OPTIMIZATION to -m64
|
||||
- Intel Core 2, glibc, 64 bits
|
||||
Select a Core 2 core
|
||||
Set BR2_TARGET_OPTIMIZATION to -m64
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2011R1
|
||||
bool "Blackfin.uclinux.org 2011R1-RC4"
|
||||
depends on BR2_bfin
|
||||
select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
|
||||
select BR2_INSTALL_LIBSTDCPP
|
||||
select BR2_LARGEFILE
|
||||
select BR2_INET_IPV6
|
||||
select BR2_INET_RPC
|
||||
select BR2_USE_WCHAR
|
||||
select BR2_TOOLCHAIN_HAS_THREADS
|
||||
select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
|
||||
help
|
||||
Toolchain for the Blackfin architecture, from
|
||||
http://blackfin.uclinux.org.
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2010RC1
|
||||
bool "Blackfin.uclinux.org 2010RC1"
|
||||
@ -262,21 +447,26 @@ config BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX
|
||||
|
||||
config BR2_TOOLCHAIN_EXTERNAL_PREFIX
|
||||
string
|
||||
default "arm-none-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM2009Q1
|
||||
default "arm-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_LINARO_2012_01
|
||||
default "arm-none-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM2009Q3
|
||||
default "arm-none-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM2010Q1
|
||||
default "arm-none-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201009
|
||||
default "arm-none-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201103
|
||||
default "arm-none-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201109
|
||||
default "mips-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS44
|
||||
default "mips-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201103
|
||||
default "powerpc-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201009
|
||||
default "powerpc-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201103
|
||||
default "sh-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH201009
|
||||
default "sh-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH201103
|
||||
default "sh-uclinux" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH2A_201009
|
||||
default "sh-uclinux" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH2A_201103
|
||||
default "i686-pc-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_X86_201009
|
||||
default "i686-pc-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_X86_201109
|
||||
default "bfin-uclinux" if BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2010RC1 && !BR2_BFIN_FDPIC
|
||||
default "bfin-linux-uclibc" if BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2010RC1 && BR2_BFIN_FDPIC
|
||||
default "bfin-uclinux" if BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2011R1 && !BR2_BFIN_FDPIC
|
||||
default "bfin-linux-uclibc" if BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2011R1 && BR2_BFIN_FDPIC
|
||||
default $(BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX) \
|
||||
if BR2_TOOLCHAIN_EXTERNAL_CUSTOM
|
||||
|
||||
|
@ -150,6 +150,14 @@ TOOLCHAIN_EXTERNAL_CFLAGS += -mabi=$(CC_TARGET_ABI_)
|
||||
TOOLCHAIN_EXTERNAL_WRAPPER_ARGS += -DBR_ABI='"$(CC_TARGET_ABI_)"'
|
||||
endif
|
||||
|
||||
ifneq ($(BR2_TARGET_OPTIMIZATION),)
|
||||
TOOLCHAIN_EXTERNAL_CFLAGS += $(call qstrip,$(BR2_TARGET_OPTIMIZATION))
|
||||
# We create a list like '"-mfoo", "-mbar", "-mbarfoo"' so that each
|
||||
# flag is a separate argument when used in execv() by the external
|
||||
# toolchain wrapper.
|
||||
TOOLCHAIN_EXTERNAL_WRAPPER_ARGS += -DBR_ADDITIONAL_CFLAGS='$(foreach f,$(call qstrip,$(BR2_TARGET_OPTIMIZATION)),"$(f)",)'
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_SOFT_FLOAT),y)
|
||||
TOOLCHAIN_EXTERNAL_CFLAGS += -msoft-float
|
||||
TOOLCHAIN_EXTERNAL_WRAPPER_ARGS += -DBR_SOFTFLOAT=1
|
||||
@ -162,14 +170,9 @@ endif
|
||||
|
||||
ifeq ($(BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD),y)
|
||||
TOOLCHAIN_EXTERNAL_DEPENDENCIES = $(TOOLCHAIN_EXTERNAL_DIR)/.extracted
|
||||
else
|
||||
TOOLCHAIN_EXTERNAL_DEPENDENCIES = $(STAMP_DIR)/ext-toolchain-checked
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM2009Q1),y)
|
||||
TOOLCHAIN_EXTERNAL_SITE=http://sourcery.mentor.com/sgpp/lite/arm/portal/package4571/public/arm-none-linux-gnueabi/
|
||||
TOOLCHAIN_EXTERNAL_SOURCE=arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
|
||||
else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM2009Q3),y)
|
||||
ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM2009Q3),y)
|
||||
TOOLCHAIN_EXTERNAL_SITE=http://sourcery.mentor.com/sgpp/lite/arm/portal/package5383/public/arm-none-linux-gnueabi/
|
||||
TOOLCHAIN_EXTERNAL_SOURCE=arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
|
||||
else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM2010Q1),y)
|
||||
@ -181,15 +184,24 @@ TOOLCHAIN_EXTERNAL_SOURCE=arm-2010.09-50-arm-none-linux-gnueabi-i686-pc-linux-gn
|
||||
else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201103),y)
|
||||
TOOLCHAIN_EXTERNAL_SITE=http://sourcery.mentor.com/sgpp/lite/arm/portal/package8739/public/arm-none-linux-gnueabi/
|
||||
TOOLCHAIN_EXTERNAL_SOURCE=arm-2011.03-41-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
|
||||
else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201109),y)
|
||||
TOOLCHAIN_EXTERNAL_SITE=http://sourcery.mentor.com/public/gnu_toolchain/arm-none-linux-gnueabi/
|
||||
TOOLCHAIN_EXTERNAL_SOURCE=arm-2011.09-70-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
|
||||
else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_LINARO_2012_01),y)
|
||||
TOOLCHAIN_EXTERNAL_SITE=http://launchpad.net/linaro-toolchain-binaries/trunk/2012.01/+download/
|
||||
TOOLCHAIN_EXTERNAL_SOURCE=gcc-linaro-arm-linux-gnueabi-2012.01-20120125_linux.tar.bz2
|
||||
else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS44),y)
|
||||
TOOLCHAIN_EXTERNAL_SITE=http://sourcery.mentor.com/sgpp/lite/mips/portal/package7401/public/mips-linux-gnu/
|
||||
TOOLCHAIN_EXTERNAL_SOURCE=mips-4.4-303-mips-linux-gnu-i686-pc-linux-gnu.tar.bz2
|
||||
else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201103),y)
|
||||
TOOLCHAIN_EXTERNAL_SITE=http://sourcery.mentor.com/sgpp/lite/mips/portal/package9055/public/mips-linux-gnu/
|
||||
TOOLCHAIN_EXTERNAL_SOURCE=mips-2011.03-93-mips-linux-gnu-i686-pc-linux-gnu.tar.bz2
|
||||
TOOLCHAIN_EXTERNAL_SITE=http://sourcery.mentor.com/sgpp/lite/mips/portal/package9469/public/mips-linux-gnu/
|
||||
TOOLCHAIN_EXTERNAL_SOURCE=mips-2011.03-110-mips-linux-gnu-i686-pc-linux-gnu.tar.bz2
|
||||
else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201009),y)
|
||||
TOOLCHAIN_EXTERNAL_SITE=http://sourcery.mentor.com/sgpp/lite/power/portal/package7703/public/powerpc-linux-gnu/
|
||||
TOOLCHAIN_EXTERNAL_SOURCE=freescale-2010.09-55-powerpc-linux-gnu-i686-pc-linux-gnu.tar.bz2
|
||||
else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201103),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
|
||||
else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH201009),y)
|
||||
TOOLCHAIN_EXTERNAL_SITE=http://sourcery.mentor.com/sgpp/lite/superh/portal/package7783/public/sh-linux-gnu/
|
||||
TOOLCHAIN_EXTERNAL_SOURCE=renesas-2010.09-45-sh-linux-gnu-i686-pc-linux-gnu.tar.bz2
|
||||
@ -205,12 +217,21 @@ TOOLCHAIN_EXTERNAL_SOURCE=renesas-2011.03-36-sh-uclinux-i686-pc-linux-gnu.tar.bz
|
||||
else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_X86_201009),y)
|
||||
TOOLCHAIN_EXTERNAL_SITE=https://sourcery.mentor.com/sgpp/lite/ia32/portal/package7682/public/i686-pc-linux-gnu/
|
||||
TOOLCHAIN_EXTERNAL_SOURCE=ia32-2010.09-44-i686-pc-linux-gnu-i386-linux.tar.bz2
|
||||
else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_X86_201109),y)
|
||||
TOOLCHAIN_EXTERNAL_SITE=https://sourcery.mentor.com/public/gnu_toolchain/i686-pc-linux-gnu/
|
||||
TOOLCHAIN_EXTERNAL_SOURCE=ia32-2011.09-24-i686-pc-linux-gnu-i386-linux.tar.bz2
|
||||
else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2010RC1),y)
|
||||
TOOLCHAIN_EXTERNAL_SITE_1 = http://blackfin.uclinux.org/gf/download/frsrelease/501/8378/
|
||||
TOOLCHAIN_EXTERNAL_SOURCE_1 = blackfin-toolchain-2010R1-RC4.i386.tar.bz2
|
||||
TOOLCHAIN_EXTERNAL_SITE_2 = http://blackfin.uclinux.org/gf/download/frsrelease/501/8386/
|
||||
TOOLCHAIN_EXTERNAL_SOURCE_2 = blackfin-toolchain-uclibc-full-2010R1-RC4.i386.tar.bz2
|
||||
TOOLCHAIN_EXTERNAL_SOURCE = $(TOOLCHAIN_EXTERNAL_SOURCE_1) $(TOOLCHAIN_EXTERNAL_SOURCE_2)
|
||||
else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2011R1),y)
|
||||
TOOLCHAIN_EXTERNAL_SITE_1 = http://blackfin.uclinux.org/gf/download/frsrelease/531/9509/
|
||||
TOOLCHAIN_EXTERNAL_SOURCE_1 = blackfin-toolchain-2011R1-RC4.i386.tar.bz2
|
||||
TOOLCHAIN_EXTERNAL_SITE_2 = http://blackfin.uclinux.org/gf/download/frsrelease/531/9517/
|
||||
TOOLCHAIN_EXTERNAL_SOURCE_2 = blackfin-toolchain-uclibc-full-2011R1-RC4.i386.tar.bz2
|
||||
TOOLCHAIN_EXTERNAL_SOURCE = $(TOOLCHAIN_EXTERNAL_SOURCE_1) $(TOOLCHAIN_EXTERNAL_SOURCE_2)
|
||||
else
|
||||
# A value must be set (even if unused), otherwise the
|
||||
# $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE) rule would override the main
|
||||
@ -223,7 +244,7 @@ endif
|
||||
# contain ./opt/uClinux/{bfin-uclinux,bfin-linux-uclibc} directories,
|
||||
# which themselves contain the toolchain. This is why we strip more
|
||||
# components than usual.
|
||||
ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2010RC1),y)
|
||||
ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2010RC1)$(BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2011R1),y)
|
||||
$(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE_1):
|
||||
$(call DOWNLOAD,$(TOOLCHAIN_EXTERNAL_SITE_1),$(TOOLCHAIN_EXTERNAL_SOURCE_1))
|
||||
|
||||
@ -264,13 +285,11 @@ endif
|
||||
# location, check that it supports sysroot, and then verify that it
|
||||
# matches the configuration provided in Buildroot: ABI, C++ support,
|
||||
# type of C library and all C library features.
|
||||
$(STAMP_DIR)/ext-toolchain-checked:
|
||||
$(STAMP_DIR)/ext-toolchain-checked: $(TOOLCHAIN_EXTERNAL_DEPENDENCIES)
|
||||
@echo "Checking external toolchain settings"
|
||||
$(Q)$(call check_cross_compiler_exists,$(TOOLCHAIN_EXTERNAL_CC))
|
||||
$(Q)SYSROOT_DIR=`$(TOOLCHAIN_EXTERNAL_CC) -print-sysroot 2>/dev/null` ; \
|
||||
if test -z "$${SYSROOT_DIR}" ; then \
|
||||
SYSROOT_DIR=`readlink -f $$(LANG=C $(TOOLCHAIN_EXTERNAL_CC) -print-file-name=libc.a) |sed -r -e 's:usr/lib/libc\.a::;'` ; \
|
||||
fi ; \
|
||||
$(Q)LIBC_A_LOCATION=`readlink -f $$(LANG=C $(TOOLCHAIN_EXTERNAL_CC) -print-file-name=libc.a)` ; \
|
||||
SYSROOT_DIR=`echo $${LIBC_A_LOCATION} | sed -r -e 's:usr/lib(64)?/(.*/)?libc\.a::'` ; \
|
||||
if test -z "$${SYSROOT_DIR}" ; then \
|
||||
@echo "External toolchain doesn't support --sysroot. Cannot use." ; \
|
||||
exit 1 ; \
|
||||
@ -292,27 +311,60 @@ $(STAMP_DIR)/ext-toolchain-checked:
|
||||
# and the variant-specific sysroot, then copy the needed libraries to
|
||||
# the $(TARGET_DIR) and copy the whole sysroot (libraries and headers)
|
||||
# to $(STAGING_DIR).
|
||||
$(STAMP_DIR)/ext-toolchain-installed: $(TOOLCHAIN_EXTERNAL_DEPENDENCIES)
|
||||
$(Q)SYSROOT_DIR=`$(TOOLCHAIN_EXTERNAL_CC) -print-sysroot 2>/dev/null` ; \
|
||||
if test -z "$${SYSROOT_DIR}" ; then \
|
||||
SYSROOT_DIR=`readlink -f $$(LANG=C $(TOOLCHAIN_EXTERNAL_CC) -print-file-name=libc.a) |sed -r -e 's:usr/lib/libc\.a::;'` ; \
|
||||
fi ; \
|
||||
#
|
||||
# Variables are defined as follows:
|
||||
#
|
||||
# LIBC_A_LOCATION: location of the libc.a file in the default
|
||||
# multilib variant (allows to find the main
|
||||
# sysroot directory)
|
||||
# Ex: /x-tools/mips-2011.03/mips-linux-gnu/libc/usr/lib/libc.a
|
||||
#
|
||||
# SYSROOT_DIR: the main sysroot directory, deduced from
|
||||
# LIBC_A_LOCATION by removing the
|
||||
# usr/lib[64]/libc.a part of the path.
|
||||
# Ex: /x-tools/mips-2011.03/mips-linux-gnu/libc/
|
||||
#
|
||||
# ARCH_LIBC_A_LOCATION: location of the libc.a file in the selected
|
||||
# multilib variant (taking into account the
|
||||
# CFLAGS). Allows to find the sysroot of the
|
||||
# selected multilib variant.
|
||||
# Ex: /x-tools/mips-2011.03/mips-linux-gnu/libc/mips16/soft-float/el/usr/lib/libc.a
|
||||
#
|
||||
# ARCH_SYSROOT_DIR: the sysroot of the selected multilib variant,
|
||||
# deduced from ARCH_LIBC_A_LOCATION by removing
|
||||
# usr/lib[64]/libc.a at the end of the path.
|
||||
# Ex: /x-tools/mips-2011.03/mips-linux-gnu/libc/mips16/soft-float/el/
|
||||
#
|
||||
# ARCH_LIB_DIR: 'lib' or 'lib64' depending on where libraries are
|
||||
# stored. Deduced from ARCH_LIBC_A_LOCATION by
|
||||
# looking at usr/lib??/libc.a.
|
||||
# Ex: lib
|
||||
#
|
||||
# ARCH_SUBDIR: the relative location of the sysroot of the selected
|
||||
# multilib variant compared to the main sysroot.
|
||||
# Ex: mips16/soft-float/el
|
||||
|
||||
$(STAMP_DIR)/ext-toolchain-installed: $(STAMP_DIR)/ext-toolchain-checked
|
||||
$(Q)LIBC_A_LOCATION=`readlink -f $$(LANG=C $(TOOLCHAIN_EXTERNAL_CC) -print-file-name=libc.a)` ; \
|
||||
SYSROOT_DIR=`echo $${LIBC_A_LOCATION} | sed -r -e 's:usr/lib(64)?/(.*/)?libc\.a::'` ; \
|
||||
if test -z "$${SYSROOT_DIR}" ; then \
|
||||
@echo "External toolchain doesn't support --sysroot. Cannot use." ; \
|
||||
exit 1 ; \
|
||||
fi ; \
|
||||
ARCH_SUBDIR=`$(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS) -print-multi-directory` ; \
|
||||
ARCH_SYSROOT_DIR=$${SYSROOT_DIR}/$${ARCH_SUBDIR} ; \
|
||||
ARCH_LIBC_A_LOCATION=`readlink -f $$(LANG=C $(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS) -print-file-name=libc.a)` ; \
|
||||
ARCH_SYSROOT_DIR=`echo $${ARCH_LIBC_A_LOCATION} | sed -r -e 's:usr/lib(64)?/(.*/)?libc\.a::'` ; \
|
||||
ARCH_LIB_DIR=`echo $${ARCH_LIBC_A_LOCATION} | sed -r -e 's:.*/usr/(lib(64)?)/(.*/)?libc.a:\1:'` ; \
|
||||
ARCH_SUBDIR=`echo $${ARCH_SYSROOT_DIR} | sed -r -e "s:^$${SYSROOT_DIR}(.*)/$$:\1:"` ; \
|
||||
mkdir -p $(TARGET_DIR)/lib ; \
|
||||
echo "Copy external toolchain libraries to target..." ; \
|
||||
for libs in $(LIB_EXTERNAL_LIBS); do \
|
||||
$(call copy_toolchain_lib_root,$${ARCH_SYSROOT_DIR},$$libs,/lib); \
|
||||
$(call copy_toolchain_lib_root,$${ARCH_SYSROOT_DIR},$${ARCH_LIB_DIR},$$libs,/lib); \
|
||||
done ; \
|
||||
for libs in $(USR_LIB_EXTERNAL_LIBS); do \
|
||||
$(call copy_toolchain_lib_root,$${ARCH_SYSROOT_DIR},$$libs,/usr/lib); \
|
||||
$(call copy_toolchain_lib_root,$${ARCH_SYSROOT_DIR},$${ARCH_LIB_DIR},$$libs,/usr/lib); \
|
||||
done ; \
|
||||
echo "Copy external toolchain sysroot to staging..." ; \
|
||||
$(call copy_toolchain_sysroot,$${SYSROOT_DIR},$${ARCH_SYSROOT_DIR},$${ARCH_SUBDIR}) ; \
|
||||
$(call copy_toolchain_sysroot,$${SYSROOT_DIR},$${ARCH_SYSROOT_DIR},$${ARCH_SUBDIR},$${ARCH_LIB_DIR}) ; \
|
||||
if [ -L $${ARCH_SYSROOT_DIR}/lib64 ] ; then \
|
||||
$(call create_lib64_symlinks) ; \
|
||||
fi ; \
|
||||
|
@ -40,6 +40,9 @@ static char *predef_args[] = {
|
||||
#ifdef BR_VFPFLOAT
|
||||
"-mfpu=vfp",
|
||||
#endif /* BR_VFPFLOAT */
|
||||
#ifdef BR_ADDITIONAL_CFLAGS
|
||||
BR_ADDITIONAL_CFLAGS
|
||||
#endif
|
||||
};
|
||||
|
||||
static const char *get_basename(const char *name)
|
||||
|
Loading…
Reference in New Issue
Block a user