Browse Source

valgrind: do not strip internal preload libraries and executables

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 <[email protected]>
Jo-Philipp Wich 6 years ago
parent
commit
b070101c50
1 changed files with 20 additions and 2 deletions
  1. 20 2
      package/devel/valgrind/Makefile

+ 20 - 2
package/devel/valgrind/Makefile

@@ -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))