aboutsummaryrefslogtreecommitdiffstats
path: root/package/devel/oprofile
diff options
context:
space:
mode:
Diffstat (limited to 'package/devel/oprofile')
-rw-r--r--package/devel/oprofile/Makefile91
-rw-r--r--package/devel/oprofile/patches/100-use_insmod_instead_of_modprobe.patch20
-rw-r--r--package/devel/oprofile/patches/101-remove_24_support.patch64
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;