b070101c50
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>
204 lines
6.2 KiB
Makefile
204 lines
6.2 KiB
Makefile
#
|
|
# Copyright (C) 2006-2013 OpenWrt.org
|
|
#
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
# See /LICENSE for more information.
|
|
#
|
|
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
PKG_NAME:=valgrind
|
|
PKG_VERSION:=3.15.0
|
|
PKG_RELEASE:=2
|
|
|
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
|
PKG_SOURCE_URL:=http://sourceware.org/pub/valgrind/
|
|
PKG_HASH:=417c7a9da8f60dd05698b3a7bc6002e4ef996f14c13f0ff96679a16873e78ab1
|
|
|
|
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
|
PKG_LICENSE:=GPL-2.0+
|
|
PKG_CPE_ID:=cpe:/a:valgrind:valgrind
|
|
|
|
PKG_FIXUP = autoreconf
|
|
PKG_INSTALL := 1
|
|
PKG_BUILD_PARALLEL := 1
|
|
PKG_USE_MIPS16:=0
|
|
PKG_SSP:=0
|
|
|
|
STRIP:=:
|
|
|
|
include $(INCLUDE_DIR)/package.mk
|
|
include $(INCLUDE_DIR)/kernel.mk
|
|
|
|
define Package/valgrind
|
|
SECTION:=devel
|
|
CATEGORY:=Development
|
|
DEPENDS:=@mips||mipsel||i386||x86_64||powerpc||arm_v7||aarch64 +libpthread +librt
|
|
TITLE:=debugging and profiling tools for Linux
|
|
URL:=http://www.valgrind.org
|
|
endef
|
|
|
|
define Package/valgrind/default
|
|
$(Package/valgrind)
|
|
DEPENDS := valgrind
|
|
endef
|
|
|
|
define Package/valgrind-cachegrind
|
|
$(Package/valgrind/default)
|
|
TITLE += (cache profiling)
|
|
endef
|
|
|
|
define Package/valgrind-callgrind
|
|
$(Package/valgrind/default)
|
|
TITLE += (callgraph profiling)
|
|
endef
|
|
|
|
define Package/valgrind-drd
|
|
$(Package/valgrind/default)
|
|
TITLE += (thread error detection)
|
|
endef
|
|
|
|
define Package/valgrind-massif
|
|
$(Package/valgrind/default)
|
|
TITLE += (heap profiling)
|
|
endef
|
|
|
|
define Package/valgrind-helgrind
|
|
$(Package/valgrind/default)
|
|
TITLE += (thread debugging)
|
|
endef
|
|
|
|
define Package/valgrind-vgdb
|
|
$(Package/valgrind/default)
|
|
TITLE += (GDB interface)
|
|
endef
|
|
|
|
define Package/valgrind/description
|
|
Valgrind is an award-winning suite of tools for debugging and
|
|
profiling Linux programs. With the tools that come with Valgrind,
|
|
you can automatically detect many memory management and threading
|
|
bugs, avoiding hours of frustrating bug-hunting, making your
|
|
programs more stable. You can also perform detailed profiling,
|
|
to speed up and reduce memory use of your programs.
|
|
endef
|
|
|
|
CPU := $(patsubst x86_64,amd64,$(patsubst x86,i386,$(patsubst um,$(ARCH),$(LINUX_KARCH))))
|
|
|
|
CONFIGURE_VARS += \
|
|
UNAME_R=$(LINUX_VERSION)
|
|
|
|
ifeq ($(CONFIG_ARCH_64BIT),y)
|
|
CONFIGURE_ARGS += \
|
|
--enable-only64bit
|
|
BITS := 64bit
|
|
else
|
|
CONFIGURE_ARGS += \
|
|
--enable-only32bit
|
|
BITS := 32bit
|
|
endif
|
|
|
|
CONFIGURE_ARGS += \
|
|
--enable-lto \
|
|
--enable-tls \
|
|
--without-x \
|
|
--without-mpicc \
|
|
--without-uiout \
|
|
--disable-valgrindmi \
|
|
--disable-tui \
|
|
--disable-valgrindtk \
|
|
--without-included-gettext \
|
|
--with-pagesize=4 \
|
|
|
|
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
|
|
$(CP) \
|
|
./files/default.supp \
|
|
$(PKG_INSTALL_DIR)/usr/lib/valgrind/none-* \
|
|
$(PKG_INSTALL_DIR)/usr/lib/valgrind/vgpreload_core*.so \
|
|
$(PKG_INSTALL_DIR)/usr/lib/valgrind/$(BITS)-core*.xml \
|
|
$(PKG_INSTALL_DIR)/usr/lib/valgrind/$(BITS)-linux*.xml \
|
|
$(PKG_INSTALL_DIR)/usr/lib/valgrind/memcheck-* \
|
|
$(PKG_INSTALL_DIR)/usr/lib/valgrind/vgpreload_memcheck*.so \
|
|
$(1)/usr/lib/valgrind/
|
|
|
|
ifneq ($(ARCH),aarch64)
|
|
$(CP) \
|
|
$(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
|
|
$(INSTALL_DIR) $(1)/usr/bin
|
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/cg_* $(1)/usr/bin/
|
|
$(INSTALL_DIR) $(1)/usr/lib/valgrind
|
|
$(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
|
|
$(INSTALL_DIR) $(1)/usr/bin
|
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/callgrind* $(1)/usr/bin/
|
|
$(INSTALL_DIR) $(1)/usr/lib/valgrind
|
|
$(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
|
|
$(INSTALL_DIR) $(1)/usr/lib/valgrind
|
|
$(CP) \
|
|
$(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
|
|
$(INSTALL_DIR) $(1)/usr/bin
|
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ms_print $(1)/usr/bin/
|
|
$(INSTALL_DIR) $(1)/usr/lib/valgrind
|
|
$(CP) \
|
|
$(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
|
|
$(INSTALL_DIR) $(1)/usr/lib/valgrind
|
|
$(CP) \
|
|
$(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))
|
|
$(eval $(call BuildPackage,valgrind-cachegrind))
|
|
$(eval $(call BuildPackage,valgrind-callgrind))
|
|
$(eval $(call BuildPackage,valgrind-drd))
|
|
$(eval $(call BuildPackage,valgrind-massif))
|
|
$(eval $(call BuildPackage,valgrind-helgrind))
|
|
$(eval $(call BuildPackage,valgrind-vgdb))
|