More external toolchain fixes
PATCH 1/1 More external toolchain fixes
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).
--- toolchain/external-toolchain/ext-tool.mk | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
toolchain/external-toolchain/ext-tool.mk +2 -1
@@ -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}\$$,,"`; \ \ 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}; \ case "$${STRIP}" in \ (0 | n | no) \ ;; \
Signature · 4 lines
Thomas Petazzoni, Free Electrons Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH 1/1 More external toolchain fixes
Quoted 40 lines · Thomas Petazzoni
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 caseLIB_DIRis 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 <[email protected]>---
toolchain/external-toolchain/ext-tool.mk| 3 ++-1 file changed, 2 insertions(+), 1 deletion(-)Index:
buildroot/toolchain/external-toolchain/ext-tool.mk
===================================================================
toolchain/external-toolchain/ext-tool.mk line 13
Quoted 5 lines
toolchain/external-toolchain/ext-tool.mk +1
-1@@ -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.
toolchain/external-toolchain/ext-tool.mk line 31
Quoted 8 lines
toolchain/external-toolchain/ext-tool.mk +1
-0\ 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.
Quoted 3 lines
toolchain/external-toolchain/ext-tool.mk +0
-0case "$${STRIP}" in \ (0 | n | no) \ ;; \
PATCH 1/1 More external toolchain fixes
In reply to Thomas PetazzoniQuoted 1 line · Thomas Petazzoni
Fix issues with binary external toolchains
Again yah!
I found the same issue back on 6/17/2008 and sent a patch on 7/7/2008 that never got a response.
Look forward to seeing any of your future external toolchain patches.
Again for what it's worth.
PATCH 1/1 More external toolchain fixes
Le Fri, 31 Oct 2008 14:38:51 -0400, "hartleys" <[email protected]> a ?crit :
Quoted 2 lines
I found the same issue back on 6/17/2008 and sent a patch on 7/7/2008 that never got a response.
Argh, it's a shame to discover that people already faced the same issues, sent patches, but that others end up re-debugging the issue because the patches didn't get attention.
Quoted 1 line
Thanks!
Thomas
Signature · 4 lines
Thomas Petazzoni, Free Electrons Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH 1/1 More external toolchain fixes
In reply to hartleysQuoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"hartleys" == hartleys <[email protected]> writes:
Hi,
Quoted 1 line · Thomas Petazzoni
Quoted 1 line
Fix issues with binary external toolchains
hartleys> Again yah!
hartleys> I found the same issue back on 6/17/2008 and sent a patch hartleys> on 7/7/2008 that never got a response.
Sorry about that, I have limited time to work on BR. Please be persistent and resend if you don't get any reply.
Signature · 1 line
Bye, Peter Korsgaard
PATCH 1/1 More external toolchain fixes
In reply to Thomas PetazzoniQuoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Thomas" == Thomas Petazzoni <[email protected]> writes:
Thomas> Fix issues with binary external toolchains
Thomas> Fix two problems encountered while using an external binary toolchain Thomas> generated by crosstool-ng:
Committed as r23909 with the INSTALL -D change as suggested by Bernhard.
Signature · 1 line
Bye, Peter Korsgaard