external toolchain: slightly optimize the copy of the toolchain sysroot

The sysroot of an ARM CodeSourcery toolchain takes about 1.4 GB of
space, but 1.1+ GB of this space consists in locale-related
information which Buildroot doesn't use. By skipping the copy of those
unused files, we save quite a bit of time while importing the
toolchain sysroot.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
This commit is contained in:
Thomas Petazzoni 2011-10-02 21:20:09 +02:00 committed by Peter Korsgaard
parent cec7128dc1
commit 2c23e93766

View File

@ -79,6 +79,9 @@ copy_toolchain_lib_root = \
# non-default architecture variant is used. Without this, the # non-default architecture variant is used. Without this, the
# compiler fails to find libraries and headers. # compiler fails to find libraries and headers.
# #
# Note that the 'locale' directories are not copied. They are huge
# (400+MB) in CodeSourcery toolchains, and they are not really useful.
#
# $1: main sysroot directory of the toolchain # $1: main sysroot directory of the toolchain
# $2: arch specific sysroot directory of the toolchain # $2: arch specific sysroot directory of the toolchain
# $3: arch specific subdirectory in the sysroot # $3: arch specific subdirectory in the sysroot
@ -89,7 +92,7 @@ copy_toolchain_sysroot = \
ARCH_SUBDIR="$(strip $3)"; \ ARCH_SUBDIR="$(strip $3)"; \
for i in etc lib sbin usr ; do \ for i in etc lib sbin usr ; do \
if [ -d $${ARCH_SYSROOT_DIR}/$$i ] ; then \ if [ -d $${ARCH_SYSROOT_DIR}/$$i ] ; then \
cp -a $${ARCH_SYSROOT_DIR}/$$i $(STAGING_DIR)/ ; \ rsync -au --exclude 'usr/lib/locale' $${ARCH_SYSROOT_DIR}/$$i $(STAGING_DIR)/ ; \
fi ; \ fi ; \
done ; \ done ; \
if [ `readlink -f $${SYSROOT_DIR}` != `readlink -f $${ARCH_SYSROOT_DIR}` ] ; then \ if [ `readlink -f $${SYSROOT_DIR}` != `readlink -f $${ARCH_SYSROOT_DIR}` ] ; then \