infra: fix striping of ld.so and libpthread
PATCH 1/1 infra: fix striping of ld.so and libpthread
If 'lib' is a symlink, 'find lib' does not return correct result. So, until now, libpthread*.so* and ld-*.so* was not stripped when 'lib' was a symlink.
We fix tit by using 'find lib/' instead of 'find lib'
--- Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
Makefile +3 -3
@@ -644,7 +644,7 @@ target-finalize: $(PACKAGES) $(TARGET_DIR)/usr/lib/pkgconfig $(TARGET_DIR)/usr/share/pkgconfig \ $(TARGET_DIR)/usr/lib/cmake $(TARGET_DIR)/usr/share/cmake find $(TARGET_DIR)/usr/{lib,share}/ -name '*.cmake' -print0 | xargs -0 rm -f - find $(TARGET_DIR)/lib $(TARGET_DIR)/usr/lib $(TARGET_DIR)/usr/libexec \ + find $(TARGET_DIR)/lib/ $(TARGET_DIR)/usr/lib/ $(TARGET_DIR)/usr/libexec/ \ \( -name '*.a' -o -name '*.la' \) -print0 | xargs -0 rm -f ifneq ($(BR2_PACKAGE_GDB),y) rm -rf $(TARGET_DIR)/usr/share/gdb
@@ -666,13 +666,13 @@ endif # besides the one in which crash occurred; or SIGTRAP kills my program when # I set a breakpoint" ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) - find $(TARGET_DIR)/lib -type f -name 'libpthread*.so*' | \ + find $(TARGET_DIR)/lib/ -type f -name 'libpthread*.so*' | \ xargs -r $(STRIPCMD) $(STRIP_STRIP_DEBUG) endif # Valgrind needs ld.so with enough information, so only strip # debugging symbols. - find $(TARGET_DIR)/lib -type f -name 'ld-*.so*' | \ + find $(TARGET_DIR)/lib/ -type f -name 'ld-*.so*' | \ xargs -r $(STRIPCMD) $(STRIP_STRIP_DEBUG) test -f $(TARGET_DIR)/etc/ld.so.conf && \ { echo "ERROR: we shouldn't have a /etc/ld.so.conf file"; exit 1; } || true
Signature · 1 line
2.9.3
PATCH 1/1 infra: fix striping of ld.so and libpthread
Hello,
Thanks for contributing this patch, this was definitely buggy.
In the commit title: striping -> stripping.
Quoted 1 line · J?r?me Pouiller
If 'lib' is a symlink, 'find lib' does not return correct result. So, until now,
return *the* correct result. Also, it would have been good to explain that this typically occurs when the "merged /usr" option is enabled.
Quoted 3 lines
libpthread*.so* and ld-*.so* was not stripped when 'lib' was a symlink.
We fix tit by using 'find
lib/' instead of 'find lib'
We fix *this*.
Makefile target-finalize: $(PACKAGES) · line 647
Quoted 6 lines
Makefile +1
-1@@ -644,7 +644,7 @@ target-finalize: $(PACKAGES) $(TARGET_DIR)/usr/lib/pkgconfig $(TARGET_DIR)/usr/share/pkgconfig \ $(TARGET_DIR)/usr/lib/cmake $(TARGET_DIR)/usr/share/cmake find $(TARGET_DIR)/usr/{lib,share}/ -name '*.cmake' -print0 | xargs -0 rm -f - find $(TARGET_DIR)/lib $(TARGET_DIR)/usr/lib $(TARGET_DIR)/usr/libexec \ + find $(TARGET_DIR)/lib/ $(TARGET_DIR)/usr/lib/ $(TARGET_DIR)/usr/libexec/ \
This change should have been explained in the commit log: it's just done for consistency, but doesn't fix anything by itself.
I've applied to master with those various issues fixed.
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com