[Buildroot] [PATCH] More external toolchain fixes

Bernhard Reutner-Fischer rep.dot.nop at gmail.com
Fri Oct 31 13:18:23 UTC 2008


On Thu, Oct 30, 2008 at 10:02:47AM +0100, Thomas Petazzoni wrote:
>Fix issues with binary external toolchains
>
>Fix two problems encountered while using an external binary toolchain
>generated by crosstool-ng:
>
> - Don't remove the ending / in LIB_DIR, otherwise find $LIB_DIR
>   -maxdepth 1 doesn't find any file in the case LIB_DIR is a symbolic
>   link and not a directory.
>
>   For some reason, find -maxdepth 1 doesn't have the same behaviour
>   on directories and symbolic links. Demonstration:
>
>   $ mkdir foobar
>   $ touch foobar/t1
>   $ touch foobar/t2
>   $ ln -s foobar barfoo
>   $ find foobar -maxdepth 1 -name 't*'
>   foobar/t1
>   foobar/t2
>   $ find barfoo -maxdepth 1 -name 't*'
>   $ find barfoo/ -maxdepth 1 -name 't*'
>   barfoo/t1
>   barfoo/t2
>
> * Make sure the libraries are writable, otherwise the strip operation
>   might fail. The library files may not be writable if the toolchain
>   is not writable (which may happen if one wants to prevent anyone
>   from overwriting the toolchain, which is done by crosstool-ng, for
>   example).
>
>Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>---
> toolchain/external-toolchain/ext-tool.mk |    3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
>Index: buildroot/toolchain/external-toolchain/ext-tool.mk
>===================================================================
>--- buildroot.orig/toolchain/external-toolchain/ext-tool.mk
>+++ buildroot/toolchain/external-toolchain/ext-tool.mk
>@@ -10,7 +10,7 @@
> 	DST="$(strip $2)"; \
> 	STRIP="$(strip $3)"; \
>  \
>-	LIB_DIR=`$(TARGET_CC) -print-file-name=$${LIB} | sed -e "s,/$${LIB}\$$,,"`; \
>+	LIB_DIR=`$(TARGET_CC) -print-file-name=$${LIB} | sed -e "s,$${LIB}\$$,,"`; \

ok.
>  \
> 	if test -z "$${LIB_DIR}"; then \
> 		echo "copy_toolchain_lib_root: lib=$${LIB} not found"; \
>@@ -28,6 +28,7 @@
> 				cp -d $${LIB_DIR}/$${LIB} $(TARGET_DIR)$${DST}/; \
> 			elif test -f $${LIB_DIR}/$${LIB}; then \
> 				cp $${LIB_DIR}/$${LIB} $(TARGET_DIR)$${DST}/$${LIB}; \
>+				chmod u+w $(TARGET_DIR)$${DST}/$${LIB}; \

just use $(INSTALL) -D -m0755 instead of those 2 commands.

> 				case "$${STRIP}" in \
> 				(0 | n | no) \
> ;; \



More information about the buildroot mailing list