valgrind: do not strip internal preload libraries and executables
authorJo-Philipp Wich <jo@mein.io>
Fri, 25 Oct 2019 17:42:09 +0000 (19:42 +0200)
committerJo-Philipp Wich <jo@mein.io>
Tue, 14 Jan 2020 16:52:34 +0000 (17:52 +0100)
Implement the suggestions laid out in README_PACKAGERS, mainly by preventing
the stripping of the internal vgpreload*.so libraries.

Also retain the symbol information of valgrind's private helper executables
and enable LTO as suggested in the packagers readme.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
package/devel/valgrind/Makefile

index 956e5ad722afe1c01294d387b01aacc3b1d484c0..ecb4af8b35805ccce33461be43b61cea102f2b2e 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=valgrind
 PKG_VERSION:=3.15.0
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=http://sourceware.org/pub/valgrind/
@@ -25,6 +25,8 @@ PKG_BUILD_PARALLEL := 1
 PKG_USE_MIPS16:=0
 PKG_SSP:=0
 
+STRIP:=:
+
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/kernel.mk
 
@@ -96,6 +98,7 @@ else
 endif
 
 CONFIGURE_ARGS += \
+       --enable-lto \
        --enable-tls \
        --without-x \
        --without-mpicc \
@@ -106,7 +109,7 @@ CONFIGURE_ARGS += \
        --without-included-gettext \
        --with-pagesize=4 \
 
-define Package/valgrind/install        
+define Package/valgrind/install
        $(INSTALL_DIR) $(1)/usr/bin
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/valgrind* $(1)/usr/bin/
        $(INSTALL_DIR) $(1)/usr/lib/valgrind
@@ -125,6 +128,10 @@ ifneq ($(ARCH),aarch64)
                $(PKG_INSTALL_DIR)/usr/lib/valgrind/$(CPU)-*.xml \
                $(1)/usr/lib/valgrind/
 endif
+       $(patsubst STRIP=%,STRIP="$(TARGET_CROSS)strip",$(RSTRIP)) $(PKG_INSTALL_DIR)/usr/bin
+       $(patsubst STRIP=%,STRIP="$(TARGET_CROSS)strip -g",$(RSTRIP)) \
+               $(PKG_INSTALL_DIR)/usr/lib/valgrind/none-* \
+               $(PKG_INSTALL_DIR)/usr/lib/valgrind/memcheck-*
 endef
 
 define Package/valgrind-cachegrind/install
@@ -134,6 +141,8 @@ define Package/valgrind-cachegrind/install
        $(CP) \
                $(PKG_INSTALL_DIR)/usr/lib/valgrind/cachegrind-* \
                $(1)/usr/lib/valgrind/
+       $(patsubst STRIP=%,STRIP="$(TARGET_CROSS)strip",$(RSTRIP)) $(PKG_INSTALL_DIR)/usr/bin
+       $(patsubst STRIP=%,STRIP="$(TARGET_CROSS)strip -g",$(RSTRIP)) $(PKG_INSTALL_DIR)/usr/lib/valgrind/cachegrind-*
 endef
 
 define Package/valgrind-callgrind/install
@@ -143,6 +152,8 @@ define Package/valgrind-callgrind/install
        $(CP) \
                $(PKG_INSTALL_DIR)/usr/lib/valgrind/callgrind-* \
                $(1)/usr/lib/valgrind/
+       $(patsubst STRIP=%,STRIP="$(TARGET_CROSS)strip",$(RSTRIP)) $(PKG_INSTALL_DIR)/usr/bin
+       $(patsubst STRIP=%,STRIP="$(TARGET_CROSS)strip -g",$(RSTRIP)) $(PKG_INSTALL_DIR)/usr/lib/valgrind/callgrind-*
 endef
 
 define Package/valgrind-drd/install
@@ -151,6 +162,8 @@ define Package/valgrind-drd/install
                $(PKG_INSTALL_DIR)/usr/lib/valgrind/drd-* \
                $(PKG_INSTALL_DIR)/usr/lib/valgrind/vgpreload_drd*.so \
                $(1)/usr/lib/valgrind/
+       $(patsubst STRIP=%,STRIP="$(TARGET_CROSS)strip",$(RSTRIP)) $(PKG_INSTALL_DIR)/usr/bin
+       $(patsubst STRIP=%,STRIP="$(TARGET_CROSS)strip -g",$(RSTRIP)) $(PKG_INSTALL_DIR)/usr/lib/valgrind/drd-*
 endef
 
 define Package/valgrind-massif/install
@@ -161,6 +174,8 @@ define Package/valgrind-massif/install
                $(PKG_INSTALL_DIR)/usr/lib/valgrind/massif-* \
                $(PKG_INSTALL_DIR)/usr/lib/valgrind/vgpreload_massif*.so \
                $(1)/usr/lib/valgrind/
+       $(patsubst STRIP=%,STRIP="$(TARGET_CROSS)strip",$(RSTRIP)) $(PKG_INSTALL_DIR)/usr/bin
+       $(patsubst STRIP=%,STRIP="$(TARGET_CROSS)strip -g",$(RSTRIP)) $(PKG_INSTALL_DIR)/usr/lib/valgrind/massif-*
 endef
 
 define Package/valgrind-helgrind/install
@@ -169,11 +184,14 @@ define Package/valgrind-helgrind/install
                $(PKG_INSTALL_DIR)/usr/lib/valgrind/helgrind-* \
                $(PKG_INSTALL_DIR)/usr/lib/valgrind/vgpreload_helgrind*.so \
                $(1)/usr/lib/valgrind/
+       $(patsubst STRIP=%,STRIP="$(TARGET_CROSS)strip",$(RSTRIP)) $(PKG_INSTALL_DIR)/usr/bin
+       $(patsubst STRIP=%,STRIP="$(TARGET_CROSS)strip -g",$(RSTRIP)) $(PKG_INSTALL_DIR)/usr/lib/valgrind/helgrind-*
 endef
 
 define Package/valgrind-vgdb/install
        $(INSTALL_DIR) $(1)/usr/bin
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/vgdb $(1)/usr/bin/
+       $(patsubst STRIP=%,STRIP="$(TARGET_CROSS)strip",$(RSTRIP)) $(PKG_INSTALL_DIR)/usr/bin
 endef
 
 $(eval $(call BuildPackage,valgrind))