|
@@ -613,20 +613,37 @@ RSYNC_VCS_EXCLUSIONS = \
|
|
|
--exclude .svn --exclude .git --exclude .hg --exclude .bzr \
|
|
|
--exclude CVS
|
|
|
|
|
|
-STRIP_FIND_CMD = find $(TARGET_DIR)
|
|
|
-ifneq (,$(call qstrip,$(BR2_STRIP_EXCLUDE_DIRS)))
|
|
|
-STRIP_FIND_CMD += \( $(call finddirclauses,$(TARGET_DIR),$(call qstrip,$(BR2_STRIP_EXCLUDE_DIRS))) \) -prune -o
|
|
|
-endif
|
|
|
-STRIP_FIND_CMD += -type f \( -perm /111 -o -name '*.so*' \)
|
|
|
-# file exclusions:
|
|
|
+# When stripping, obey to BR2_STRIP_EXCLUDE_DIRS and
|
|
|
+# BR2_STRIP_EXCLUDE_FILES
|
|
|
+STRIP_FIND_COMMON_CMD = \
|
|
|
+ find $(TARGET_DIR) \
|
|
|
+ $(if $(call qstrip,$(BR2_STRIP_EXCLUDE_DIRS)), \
|
|
|
+ \( $(call finddirclauses,$(TARGET_DIR),$(call qstrip,$(BR2_STRIP_EXCLUDE_DIRS))) \) \
|
|
|
+ -prune -o \
|
|
|
+ ) \
|
|
|
+ $(if $(call qstrip,$(BR2_STRIP_EXCLUDE_FILES)), \
|
|
|
+ -not \( $(call findfileclauses,$(call qstrip,$(BR2_STRIP_EXCLUDE_FILES))) \) )
|
|
|
+
|
|
|
+# Regular stripping for everything, except libpthread, ld-*.so and
|
|
|
+# kernel modules:
|
|
|
# - libpthread.so: a non-stripped libpthread shared library is needed for
|
|
|
# proper debugging of pthread programs using gdb.
|
|
|
# - ld.so: a non-stripped dynamic linker library is needed for valgrind
|
|
|
# - kernel modules (*.ko): do not function properly when stripped like normal
|
|
|
# applications and libraries. Normally kernel modules are already excluded
|
|
|
-# by the executable permission check above, so the explicit exclusion is only
|
|
|
+# by the executable permission check, so the explicit exclusion is only
|
|
|
# done for kernel modules with incorrect permissions.
|
|
|
-STRIP_FIND_CMD += -not \( $(call findfileclauses,libpthread*.so* ld-*.so* *.ko $(call qstrip,$(BR2_STRIP_EXCLUDE_FILES))) \) -print0
|
|
|
+STRIP_FIND_CMD = \
|
|
|
+ $(STRIP_FIND_COMMON_CMD) \
|
|
|
+ -type f \( -perm /111 -o -name '*.so*' \) \
|
|
|
+ -not \( $(call findfileclauses,libpthread*.so* ld-*.so* *.ko) \) \
|
|
|
+ -print0
|
|
|
+
|
|
|
+# Special stripping (only debugging symbols) for libpthread and ld-*.so.
|
|
|
+STRIP_FIND_SPECIAL_LIBS_CMD = \
|
|
|
+ $(STRIP_FIND_COMMON_CMD) \
|
|
|
+ \( -name 'ld-*.so*' -o -name 'libpthread*.so*' \) \
|
|
|
+ -print0
|
|
|
|
|
|
ifeq ($(BR2_ECLIPSE_REGISTER),y)
|
|
|
define TOOLCHAIN_ECLIPSE_REGISTER
|
|
@@ -744,19 +761,8 @@ endif
|
|
|
rm -rf $(TARGET_DIR)/usr/share/gtk-doc
|
|
|
rmdir $(TARGET_DIR)/usr/share 2>/dev/null || true
|
|
|
$(STRIP_FIND_CMD) | xargs -0 $(STRIPCMD) 2>/dev/null || true
|
|
|
+ $(STRIP_FIND_SPECIAL_LIBS_CMD) | xargs -0 -r $(STRIPCMD) $(STRIP_STRIP_DEBUG) 2>/dev/null || true
|
|
|
|
|
|
-# See http://sourceware.org/gdb/wiki/FAQ, "GDB does not see any threads
|
|
|
-# 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*' | \
|
|
|
- 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*' | \
|
|
|
- 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
|
|
|
test -d $(TARGET_DIR)/etc/ld.so.conf.d && \
|