diff options
Diffstat (limited to 'package/devel/oprofile')
-rw-r--r-- | package/devel/oprofile/Makefile | 91 | ||||
-rw-r--r-- | package/devel/oprofile/patches/100-use_insmod_instead_of_modprobe.patch | 20 | ||||
-rw-r--r-- | package/devel/oprofile/patches/101-remove_24_support.patch | 64 |
3 files changed, 175 insertions, 0 deletions
diff --git a/package/devel/oprofile/Makefile b/package/devel/oprofile/Makefile new file mode 100644 index 0000000000..884c54bc31 --- /dev/null +++ b/package/devel/oprofile/Makefile @@ -0,0 +1,91 @@ +# +# Copyright (C) 2009-2010 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:=oprofile +PKG_VERSION:=0.9.7 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=@SF/oprofile/ +PKG_MD5SUM:=8b5d1d9b65f84420bcc3234777ad3be3 + +PKG_MAINTAINER:=Felix Fietkau <nbd@openwrt.org> + +PKG_BUILD_DEPENDS:=binutils +PKG_FIXUP:=autoreconf +PKG_INSTALL:=1 +PKG_BUILD_PARALLEL:=1 + +include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/kernel.mk + +define Package/oprofile + SECTION:=devel + CATEGORY:=Development + TITLE:=OProfile System Profiler + URL:=http://oprofile.sourceforge.net + DEPENDS:=+libpopt +kmod-oprofile +libstdcpp +objdump +endef + +define Package/oprofile/description + A transparent low-overhead system-wide profiler. +endef + +define Package/oprofile-utils + SECTION:=devel + CATEGORY:=Development + TITLE:=OProfile System Profiler (extra utilities) + URL:=http://oprofile.sourceforge.net + DEPENDS:=oprofile +endef + +define Build/Configure + $(call Build/Configure/Default, \ + --with-kernel-support \ + --without-x \ + ) +endef + +TARGET_CXXFLAGS += -fpermissive +TARGET_LDFLAGS := -L$(STAGING_DIR)/usr/lib $(TARGET_LDFLAGS) + +define Package/oprofile-utils/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) \ + $(PKG_INSTALL_DIR)/usr/bin/opannotate \ + $(PKG_INSTALL_DIR)/usr/bin/oparchive \ + $(PKG_INSTALL_DIR)/usr/bin/opgprof \ + $(1)/usr/bin +endef + +define Package/oprofile/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) \ + $(PKG_INSTALL_DIR)/usr/bin/* \ + $(1)/usr/bin + + rm -f \ + $(1)/usr/bin/opannotate \ + $(1)/usr/bin/oparchive \ + $(1)/usr/bin/opgprof + + $(INSTALL_DIR) $(1)/usr/lib/oprofile + $(CP) \ + $(PKG_INSTALL_DIR)/usr/lib/oprofile/*.so* \ + $(1)/usr/lib/oprofile/ + + $(INSTALL_DIR) $(1)/usr/share/oprofile + $(CP) \ + $(PKG_INSTALL_DIR)/usr/share/oprofile/stl.pat \ + $(PKG_INSTALL_DIR)/usr/share/oprofile/$(patsubst x86,i386,$(LINUX_KARCH)) \ + $(1)/usr/share/oprofile/ +endef + +$(eval $(call BuildPackage,oprofile)) +$(eval $(call BuildPackage,oprofile-utils)) diff --git a/package/devel/oprofile/patches/100-use_insmod_instead_of_modprobe.patch b/package/devel/oprofile/patches/100-use_insmod_instead_of_modprobe.patch new file mode 100644 index 0000000000..10107980a5 --- /dev/null +++ b/package/devel/oprofile/patches/100-use_insmod_instead_of_modprobe.patch @@ -0,0 +1,20 @@ +--- a/utils/opcontrol ++++ b/utils/opcontrol +@@ -248,7 +248,7 @@ load_module_26() + { + grep oprofilefs /proc/filesystems >/dev/null + if test "$?" -ne 0; then +- modprobe oprofile ++ insmod oprofile + if test "$?" != "0"; then + # couldn't load the module + return +@@ -278,7 +278,7 @@ load_module_24() + { + grep oprof /proc/devices >/dev/null + if test "$?" -ne 0; then +- modprobe oprofile ++ insmod oprofile + if test "$?" != "0"; then + # couldn't load a module + return diff --git a/package/devel/oprofile/patches/101-remove_24_support.patch b/package/devel/oprofile/patches/101-remove_24_support.patch new file mode 100644 index 0000000000..99eb928c40 --- /dev/null +++ b/package/devel/oprofile/patches/101-remove_24_support.patch @@ -0,0 +1,64 @@ +--- a/daemon/Makefile.am ++++ b/daemon/Makefile.am +@@ -1,4 +1,4 @@ +-SUBDIRS = liblegacy . ++SUBDIRS = . + + oprofiled_SOURCES = \ + init.c \ +@@ -49,7 +49,6 @@ AM_CFLAGS = @OP_CFLAGS@ -fno-omit-frame- + bin_PROGRAMS = oprofiled + + oprofiled_LDADD = \ +- liblegacy/liblegacy.a \ + ../libabi/libabi.a \ + ../libdb/libodb.a \ + ../libop/libop.a \ +--- a/daemon/Makefile.in ++++ b/daemon/Makefile.in +@@ -70,7 +70,7 @@ am_oprofiled_OBJECTS = init.$(OBJEXT) op + opd_extended.$(OBJEXT) opd_ibs.$(OBJEXT) \ + opd_ibs_trans.$(OBJEXT) + oprofiled_OBJECTS = $(am_oprofiled_OBJECTS) +-oprofiled_DEPENDENCIES = liblegacy/liblegacy.a ../libabi/libabi.a \ ++oprofiled_DEPENDENCIES = ../libabi/libabi.a \ + ../libdb/libodb.a ../libop/libop.a ../libutil/libutil.a + DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) + depcomp = $(SHELL) $(top_srcdir)/depcomp +@@ -285,7 +285,7 @@ top_build_prefix = @top_build_prefix@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + topdir = @topdir@ +-SUBDIRS = liblegacy . ++SUBDIRS = . + oprofiled_SOURCES = \ + init.c \ + oprofiled.c \ +@@ -331,7 +331,6 @@ AM_CPPFLAGS = \ + # -fno-omit-frame-pointer needed for daemon build: see ChangeLog-2004 02-23 + AM_CFLAGS = @OP_CFLAGS@ -fno-omit-frame-pointer + oprofiled_LDADD = \ +- liblegacy/liblegacy.a \ + ../libabi/libabi.a \ + ../libdb/libodb.a \ + ../libop/libop.a \ +--- a/daemon/oprofiled.c ++++ b/daemon/oprofiled.c +@@ -77,7 +77,6 @@ static char * events; + static char * ext_feature; + static int showvers; + static struct oprofiled_ops * opd_ops; +-extern struct oprofiled_ops opd_24_ops; + extern struct oprofiled_ops opd_26_ops; + + #define OPD_IMAGE_FILTER_HASH_SIZE 32 +@@ -477,9 +476,6 @@ static void opd_options(int argc, char c + static struct oprofiled_ops * get_ops(void) + { + switch (op_get_interface()) { +- case OP_INTERFACE_24: +- printf("Using 2.4 OProfile kernel interface.\n"); +- return &opd_24_ops; + case OP_INTERFACE_26: + printf("Using 2.6+ OProfile kernel interface.\n"); + return &opd_26_ops; |