Merge branch 'for-2012.05/ext-toolchain-updates' of git://git.free-electrons.com/users/thomas-petazzoni/buildroot

This commit is contained in:
Peter Korsgaard 2012-03-06 23:09:56 +01:00
commit 21561bd27c
5 changed files with 345 additions and 52 deletions

View File

@ -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

View File

@ -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; \

View File

@ -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

View File

@ -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 ; \

View File

@ -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)