[Buildroot] [PATCH 9/9] toolchain: speed up sysroot lib copying

Yann E. MORIN yann.morin.1998 at anciens.enib.fr
Sun Oct 2 22:55:40 UTC 2011


Thomas, Mike, All,

On Sunday 02 October 2011 21:20:17 Thomas Petazzoni wrote:
> From: Mike Frysinger <vapier at gentoo.org>
> 
> The copy_toolchain_lib_root helper searches the entire sysroot, but is
> only interested in files in certain subdirs.  So rather than waste time
> in walking the entire tree, walk the few subdirs at the depth level we
> are actually going to be poaching files from.
> 
> Signed-off-by: Mike Frysinger <vapier at gentoo.org>
> ---
>  toolchain/helpers.mk |    6 +++---
>  1 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/toolchain/helpers.mk b/toolchain/helpers.mk
> index 7f3efaa..1a72ae5 100644
> --- a/toolchain/helpers.mk
> +++ b/toolchain/helpers.mk
> @@ -22,9 +22,9 @@ copy_toolchain_lib_root = \
>  	DESTDIR="$(strip $3)" ; \
>   \
>  	LIBS=`(cd $${ARCH_SYSROOT_DIR}; \
> -		find -L . -path "./lib/$${LIB}.*"     -o \
> -			  -path "./usr/lib/$${LIB}.*" -o \
> -			  -path "./usr/$(TOOLCHAIN_EXTERNAL_PREFIX)/lib*/$${LIB}.*" \
> +		find -L \
> +			$(for d in lib* usr/lib* usr/$(TOOLCHAIN_EXTERNAL_PREFIX)/lib*; do test -e "$d" && echo $d) \

Just by reading the above line:

1) You need to double the '$' here, as it must be interpreted by the shell,
   not by make.

2) Also, the 'for' construct is missing the final 'done':
  for ...; do ...; done

3) You should test for a directory, not for mere existence: test -d "$$d"

4) And you also need to quote the second '$$d', as you do when testing for
   its existence (granteed, not really needed, it's not gonna have a space
   in it, ever, but for consistency, either you quote both, or you quote
   none; I prefer quoting).

So (sorry if the line gets wrapped):
  $$(for d in lib* usr/lib* usr/$(TOOLCHAIN_EXTERNAL_PREFIX)/lib*; do test -e "$$d" && echo "$$d"; done) \

> +			-maxdepth 1 -name "$${LIB}.*" \
>  		)` ; \
>  	for FILE in $${LIBS} ; do \
>  		LIB=`basename $${FILE}`; \

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'


More information about the buildroot mailing list