This version has some improvements for musl. This version works fine for me on MIPS 32 BE without MIPS16 even on musl. The additional patch is needed to make valgrind use the correct syscall numbers for new syscalls like clock_gettime64. The MIPS architecture uses special syscall ranges which are different from most other systems. The patch is pending upstream: https://bugs.kde.org/show_bug.cgi?id=444781 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
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.18.1
|
|
PKG_RELEASE:=1
|
|
|
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
|
PKG_SOURCE_URL:=http://sourceware.org/pub/valgrind/
|
|
PKG_HASH:=00859aa13a772eddf7822225f4b46ee0d39afbe071d32778da4d99984081f7f5
|
|
|
|
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))
|