summaryrefslogtreecommitdiff
path: root/~lukeshu/not-working/codeanalyst
diff options
context:
space:
mode:
Diffstat (limited to '~lukeshu/not-working/codeanalyst')
-rw-r--r--~lukeshu/not-working/codeanalyst/PKGBUILD91
-rw-r--r--~lukeshu/not-working/codeanalyst/codeanalyst.desktop9
-rw-r--r--~lukeshu/not-working/codeanalyst/codeanalyst.install29
-rw-r--r--~lukeshu/not-working/codeanalyst/codeanalyst.sudo1
-rw-r--r--~lukeshu/not-working/codeanalyst/codeanalyst.svg59
-rw-r--r--~lukeshu/not-working/codeanalyst/gcc47.patch72
-rw-r--r--~lukeshu/not-working/codeanalyst/kernel3.4.patch72
-rw-r--r--~lukeshu/not-working/codeanalyst/skipSetup.patch68
8 files changed, 401 insertions, 0 deletions
diff --git a/~lukeshu/not-working/codeanalyst/PKGBUILD b/~lukeshu/not-working/codeanalyst/PKGBUILD
new file mode 100644
index 000000000..885e06f0e
--- /dev/null
+++ b/~lukeshu/not-working/codeanalyst/PKGBUILD
@@ -0,0 +1,91 @@
+# Maintainer (Parabola): Luke Shumaker <lukeshu@sbcglobal.net>
+# Maintainer (AUR): Felipe Bugno <capent@yahoo.com>
+
+# A note about the oprofile fork:
+# The docs claim that the fork is just for adding support for
+# processors that aren't upstream yet (at the time, they are now that
+# 0.9.7 is out). So, shouldn't we just link against 0.9.7? Well:
+# * AMD also added a bunch of CodeAnalyst-specific code.
+# * Several external variables/types have different names; the API is
+# incompatible.
+# * [extra]/oprofile-0.9.7-3 only includes about half of the headers.
+
+pkgbase=CodeAnalyst
+pkgname=(codeanalyst codeanalyst-cakm)
+pkgver=3.3.18.0361
+_pkgver="${pkgver//./_}"
+pkgrel=4.1
+pkgdesc="AMD performance profiler. Includes a fork of oprofile."
+url="http://developer.amd.com/tools/${pkgbase}/"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('gcc' 'qt>=4.1' 'libdwarf')
+makedepends=('linux-headers' 'elfutils' 'findutils' 'file')
+options=('!strip')
+install=codeanalyst.install
+source=("http://download2-developer.amd.com/amd/${pkgbase}/${pkgbase}${_pkgver}Public.tar.gz"
+ 'gcc47.patch'
+ 'skipSetup.patch'
+ 'kernel3.4.patch'
+ 'codeanalyst.sudo'
+ 'codeanalyst.desktop'
+ 'codeanalyst.svg')
+
+build() {
+ build_codeanalyst
+ build_codeanalyst-cakm
+}
+
+build_codeanalyst() {
+ cd "${srcdir}/${pkgbase}-${_pkgver}-Public"
+ patch -Np1 -i "${srcdir}/gcc47.patch"
+ patch -Np1 -i "${srcdir}/skipSetup.patch"
+ rm -rf src/dwarf-* # easiest way to ensure using the system install
+
+ ./autogen.sh
+ ./configure --prefix=/usr \
+ --with-libdwarf-includes=/usr/include/libdwarf \
+ --with-libdwarf-libraries=/usr/lib
+ make
+}
+
+build_codeanalyst-cakm() {
+ cd "${srcdir}/${pkgbase}-${_pkgver}-Public"/src/cakm
+ cp -r kernel2.6.38 kernel3.4
+ cd kernel3.4
+ patch -Np1 -i "${srcdir}/kernel3.4.patch"
+ make
+}
+
+package_codeanalyst() {
+ provides=('oprofile=0.9.6cvs')
+ conflicts=('oprofile')
+
+ cd "${srcdir}/${pkgbase}-${_pkgver}-Public"
+ make DESTDIR="${pkgdir}" install
+ rm -f "${pkgdir}/usr/sbin/ca_user_manager" # either codeanalyst.install does this, or it is trivial
+
+ find "${pkgdir}"/usr/{bin,sbin} -type f -exec file '{}' +|sed -n 's/:\s*ELF .*//p'|xargs strip
+
+ cd "${srcdir}"
+ install -D -m644 codeanalyst.sudo "${pkgdir}/etc/sudoers.d/codeanalyst"
+ install -D -m644 codeanalyst.svg "${pkgdir}/usr/share/icons/hicolor/scalable/apps/codeanalyst.svg"
+ install -D -m644 codeanalyst.desktop "${pkgdir}/usr/share/applications/codeanalyst.desktop"
+}
+
+package_codeanalyst-cakm() {
+ pkgdesc="CodeAnalyst kernel module, oprofile-ca.ko, a replacement for oprofile.ko"
+ depends=(codeanalyst)
+ provides=()
+
+ cd "${srcdir}/${pkgbase}-${_pkgver}-Public"/src/cakm/kernel3.4
+ install -D -m644 oprofile.ko "${pkgdir}/lib/modules/`uname -r`/kernel/arch/x86/oprofile/oprofile-ca.ko"
+}
+
+md5sums=('f1e29bc7c7da259df228ce59281ee1d7'
+ '063d0fc9680641a92ce5e310ffe1c9c0'
+ 'ce549e59c4a5916fd19e8d085e863627'
+ '3a5d820a43a0360d561bb0c4d67d9735'
+ '3cc8f64fe84c5a886d0172ee8d99f690'
+ '3a18d3f7fb01f199a8ed5ae2908c18e4'
+ '1822a4157b82904b82e72fc1e9bcbd42')
diff --git a/~lukeshu/not-working/codeanalyst/codeanalyst.desktop b/~lukeshu/not-working/codeanalyst/codeanalyst.desktop
new file mode 100644
index 000000000..56d54f884
--- /dev/null
+++ b/~lukeshu/not-working/codeanalyst/codeanalyst.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=AMD CodeAnalyst
+Comment=AMD profiler and performance analyzer
+Exec=/usr/bin/CodeAnalyst
+Icon=codeanalyst
+Terminal=false
+Encoding=UTF-8
+Type=Application
+Categories=Development;
diff --git a/~lukeshu/not-working/codeanalyst/codeanalyst.install b/~lukeshu/not-working/codeanalyst/codeanalyst.install
new file mode 100644
index 000000000..6ed1ac841
--- /dev/null
+++ b/~lukeshu/not-working/codeanalyst/codeanalyst.install
@@ -0,0 +1,29 @@
+post_install() {
+ getent group amdca &>/dev/null || groupadd amdca &>/dev/null
+ echo " ==> To use CodeAnalyst as non-root, you must be in the 'amdca' group"
+ echo " ie: gpasswd -a USERNAME amdca"
+
+ chown root:amdca /usr/bin/calog_report
+ chown root:amdca /usr/bin/capackage.sh
+ chown root:amdca /usr/bin/careport.sh
+ chown root:amdca /usr/bin/cgreport
+ chown root:amdca /usr/bin/CodeAnalyst
+ chown root:amdca /usr/bin/opannotate
+ chown root:amdca /usr/bin/oparchive
+ chown root:amdca /usr/bin/opcontrol
+ chown root:amdca /usr/bin/opgprof
+ chown root:amdca /usr/bin/ophelp
+ chown root:amdca /usr/bin/opimport
+ chown root:amdca /usr/bin/opjitconv
+ chown root:amdca /usr/bin/opreport
+ chown root:amdca /usr/bin/oprofiled
+ chown root:amdca /usr/sbin/ca_oprofile_controller
+ #chown root:amdca /usr/sbin/ca_user_manager
+
+ update-desktop-database -q
+}
+
+post_remove() {
+ getent group amdca &>/dev/null && groupdel amdca &>/dev/null
+ update-desktop-database -q
+}
diff --git a/~lukeshu/not-working/codeanalyst/codeanalyst.sudo b/~lukeshu/not-working/codeanalyst/codeanalyst.sudo
new file mode 100644
index 000000000..1c3173bdb
--- /dev/null
+++ b/~lukeshu/not-working/codeanalyst/codeanalyst.sudo
@@ -0,0 +1 @@
+%amdca ALL= NOPASSWD: /usr/sbin/ca_oprofile_controller
diff --git a/~lukeshu/not-working/codeanalyst/codeanalyst.svg b/~lukeshu/not-working/codeanalyst/codeanalyst.svg
new file mode 100644
index 000000000..8febf725b
--- /dev/null
+++ b/~lukeshu/not-working/codeanalyst/codeanalyst.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generator: Adobe Illustrator 12.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ version="1.1"
+ id="Layer_1"
+ width="286.95001"
+ height="286.95001"
+ viewBox="0 0 286.95063 286.95"
+ overflow="visible"
+ enable-background="new 0 0 1368.987 286.954"
+ xml:space="preserve"
+ inkscape:version="0.48.3.1 r9886"
+ sodipodi:docname="AMD_Logo.svg"
+ style="overflow:visible"><metadata
+ id="metadata17"><rdf:RDF><cc:Work
+ rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
+ id="defs15" /><sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1920"
+ inkscape:window-height="1028"
+ id="namedview13"
+ showgrid="false"
+ inkscape:zoom="2.11"
+ inkscape:cx="163.32315"
+ inkscape:cy="145.21584"
+ inkscape:window-x="-4"
+ inkscape:window-y="-3"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="Layer_1" />
+<polyline
+ points="1165.47,92.779 1165.39,203.495 1281.63,203.513 1198.44,286.826 1081.79,286.954 1080.38,176.065 1165.47,92.779"
+ id="polyline3"
+ style="fill:#009a66"
+ transform="translate(-1082.0371,1.8496035e-4)" />
+<polyline
+ points="1165.39,84.082 1285.07,83.854 1284.83,202.972 1368.99,286.954 1368.75,0.12 1081.79,0 1165.39,84.082"
+ id="polyline5"
+ style="fill:#009a66"
+ transform="translate(-1082.0371,1.8496035e-4)" />
+
+
+
+</svg> \ No newline at end of file
diff --git a/~lukeshu/not-working/codeanalyst/gcc47.patch b/~lukeshu/not-working/codeanalyst/gcc47.patch
new file mode 100644
index 000000000..dfec4a0c4
--- /dev/null
+++ b/~lukeshu/not-working/codeanalyst/gcc47.patch
@@ -0,0 +1,72 @@
+diff -crB CodeAnalyst-3_3_18_0361-Public.orig/src/ca/cg/Makefile.am CodeAnalyst-3_3_18_0361-Public/src/ca/cg/Makefile.am
+*** CodeAnalyst-3_3_18_0361-Public.orig/src/ca/cg/Makefile.am 2012-04-13 02:41:43.000000000 -0300
+--- CodeAnalyst-3_3_18_0361-Public/src/ca/cg/Makefile.am 2012-04-22 17:55:01.227439003 -0300
+***************
+*** 25,31 ****
+ cgcvt.cpp
+
+
+! cgreport_LDFLAGS = -Wl -fPIC @QT_LDFLAGS@
+
+ AM_CPPFLAGS= $(INCLUDES) $(more_flags) \
+ $(FLAG64) -Wno-unused -Wno-parentheses \
+--- 25,31 ----
+ cgcvt.cpp
+
+
+! cgreport_LDFLAGS = -fPIC @QT_LDFLAGS@
+
+ AM_CPPFLAGS= $(INCLUDES) $(more_flags) \
+ $(FLAG64) -Wno-unused -Wno-parentheses \
+diff -crB CodeAnalyst-3_3_18_0361-Public.orig/src/ca/gui/MonitorDockView.cpp CodeAnalyst-3_3_18_0361-Public/src/ca/gui/MonitorDockView.cpp
+*** CodeAnalyst-3_3_18_0361-Public.orig/src/ca/gui/MonitorDockView.cpp 2012-04-13 02:41:43.000000000 -0300
+--- CodeAnalyst-3_3_18_0361-Public/src/ca/gui/MonitorDockView.cpp 2012-04-22 17:38:14.884058192 -0300
+***************
+*** 17,22 ****
+--- 17,23 ----
+ */
+
+ #include <qtooltip.h>
++ #include <unistd.h>
+
+ #include "MonitorDockView.h"
+
+diff -crB CodeAnalyst-3_3_18_0361-Public.orig/src/ca/libs/libca/dwarfengine.cpp CodeAnalyst-3_3_18_0361-Public/src/ca/libs/libca/dwarfengine.cpp
+*** CodeAnalyst-3_3_18_0361-Public.orig/src/ca/libs/libca/dwarfengine.cpp 2012-04-13 02:41:43.000000000 -0300
+--- CodeAnalyst-3_3_18_0361-Public/src/ca/libs/libca/dwarfengine.cpp 2012-04-22 17:34:45.670714989 -0300
+***************
+*** 21,26 ****
+--- 21,27 ----
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <fcntl.h>
++ #include <unistd.h>
+
+ #include "dwarfengine.h"
+ #define DWARF_DEBUG 0
+diff -crB CodeAnalyst-3_3_18_0361-Public.orig/src/ca/libs/libopdata/opdata_handler.cpp CodeAnalyst-3_3_18_0361-Public/src/ca/libs/libopdata/opdata_handler.cpp
+*** CodeAnalyst-3_3_18_0361-Public.orig/src/ca/libs/libopdata/opdata_handler.cpp 2012-04-13 02:41:43.000000000 -0300
+--- CodeAnalyst-3_3_18_0361-Public/src/ca/libs/libopdata/opdata_handler.cpp 2012-04-22 17:32:30.780708624 -0300
+***************
+*** 29,34 ****
+--- 29,35 ----
+ #include <sys/stat.h>
+ #include <fcntl.h>
+ #include <time.h>
++ #include <unistd.h>
+
+ // CodeAnalyst headers
+ #include "CaProfileWriter.h"
+diff -crB CodeAnalyst-3_3_18_0361-Public.orig/src/ca_agent/libCAagent/slock.cpp CodeAnalyst-3_3_18_0361-Public/src/ca_agent/libCAagent/slock.cpp
+*** CodeAnalyst-3_3_18_0361-Public.orig/src/ca_agent/libCAagent/slock.cpp 2012-04-13 02:41:43.000000000 -0300
+--- CodeAnalyst-3_3_18_0361-Public/src/ca_agent/libCAagent/slock.cpp 2012-04-22 17:26:58.424026278 -0300
+***************
+*** 13,18 ****
+--- 13,19 ----
+ #include <sys/ipc.h>
+ #include <sys/sem.h>
+ #include <sys/stat.h>
++ #include <unistd.h>
+
+ #include "slock.h"
+ #include "smm.h"
diff --git a/~lukeshu/not-working/codeanalyst/kernel3.4.patch b/~lukeshu/not-working/codeanalyst/kernel3.4.patch
new file mode 100644
index 000000000..589abc800
--- /dev/null
+++ b/~lukeshu/not-working/codeanalyst/kernel3.4.patch
@@ -0,0 +1,72 @@
+diff -ru kernel2.6.38/Makefile kernel3.4/Makefile
+--- kernel2.6.38/Makefile 2012-04-13 01:41:43.000000000 -0400
++++ kernel3.4/Makefile 2012-07-11 11:32:27.000000000 -0400
+@@ -1,6 +1,6 @@
+ TARGET = oprofile.ko
+
+-MDIR = $(if $(shell uname -m | grep x86_64),arch/x86/oprofile,arch/x86/oprofile)
++MDIR = arch/x86/oprofile
+
+ DRIVER_OBJS = oprof.o cpu_buffer.o buffer_sync.o \
+ event_buffer.o oprofile_files.o \
+@@ -16,7 +16,8 @@
+ CURRENT = $(shell uname -r)
+ ARCH = $(if $(shell uname -m | grep x86_64),64,32)
+ KERN_ARCH = $(if $(shell uname -m | grep x86_64),x86_64,i386)
+-KDIR = /lib/modules/$(CURRENT)/build
++SYS_KDIR = /lib/modules/$(CURRENT)/build
++KDIR = $(PWD)/../build
+ PWD = $(shell pwd)
+ DEST = /lib/modules/$(CURRENT)/kernel/$(MDIR)
+ USE_INTERNAL_ERRATA = $(if $(shell ls ../internal/errata.h 2> /dev/null),1,0)
+@@ -39,6 +40,8 @@
+ all: default
+
+ default:
++ rm -rf $(KDIR)
++ cp -r $(SYS_KDIR)/ $(KDIR)
+ make -C $(KDIR) SUBDIRS=$(PWD) CFLAGS_MODULE+="-DMODULE -DUSE_INTERNAL_ERRATA=$(USE_INTERNAL_ERRATA)" modules ARCH=$(KERN_ARCH)
+
+ install:
+@@ -52,13 +55,12 @@
+
+ uninstall:
+ @echo "... Restore original oprofile.ko."
+- @mv -v $(DEST)/$(TARGET).orig $(DEST)/$(TARGET)
++ @mv -v $(DEST)/$(TARGET).orig $(DEST)/$(TARGET)
+
+ clean:
+ rm -f *.o oprofile.ko .*.cmd .*.flags *.mod.c
+
+ prebuild:
+ cp $(TARGET) ../prebuilds/$(CURRENT)_$(ARCH).ko
+-
+
+--include $(KDIR)/Rules.make
++-include $(SYS_KDIR)/Rules.make
+Only in kernel3.4/: modules.order
+Only in kernel3.4/: Module.symvers
+diff -ru kernel2.6.38/nmi_int.c kernel3.4/nmi_int.c
+--- kernel2.6.38/nmi_int.c 2012-04-13 01:41:43.000000000 -0400
++++ kernel3.4/nmi_int.c 2012-07-11 11:32:27.000000000 -0400
+@@ -16,7 +16,6 @@
+ #include <linux/notifier.h>
+ #include <linux/smp.h>
+ #include "oprofile.h"
+-#include <linux/sysdev.h>
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,0,0)
+ #include <linux/syscore_ops.h>
+ #endif
+diff -ru kernel2.6.38/oprofilefs.c kernel3.4/oprofilefs.c
+--- kernel2.6.38/oprofilefs.c 2012-04-13 01:41:43.000000000 -0400
++++ kernel3.4/oprofilefs.c 2012-07-11 11:32:27.000000000 -0400
+@@ -244,7 +244,7 @@
+ return -ENOMEM;
+ root_inode->i_op = &simple_dir_inode_operations;
+ root_inode->i_fop = &simple_dir_operations;
+- root_dentry = d_alloc_root(root_inode);
++ root_dentry = d_make_root(root_inode);
+ if (!root_dentry) {
+ iput(root_inode);
+ return -ENOMEM;
+Only in kernel3.4/: .tmp_versions
diff --git a/~lukeshu/not-working/codeanalyst/skipSetup.patch b/~lukeshu/not-working/codeanalyst/skipSetup.patch
new file mode 100644
index 000000000..fdc9bf42f
--- /dev/null
+++ b/~lukeshu/not-working/codeanalyst/skipSetup.patch
@@ -0,0 +1,68 @@
+diff -crB CodeAnalyst-3_3_18_0361-Public.orig/src/ca/Makefile.am CodeAnalyst-3_3_18_0361-Public/src/ca/Makefile.am
+*** CodeAnalyst-3_3_18_0361-Public.orig/src/ca/Makefile.am 2012-04-13 02:41:43.000000000 -0300
+--- CodeAnalyst-3_3_18_0361-Public/src/ca/Makefile.am 2012-04-22 20:44:07.437917684 -0300
+***************
+*** 8,19 ****
+ # FIXME [3.0] diffgui \
+ # $(CA_RELEASE_TYPE)
+
+! install-exec-hook:
+! @if test -e "scripts/Setup.sh"; then \
+! scripts/Setup.sh $(DESTDIR)$(prefix); \
+! fi
+
+! uninstall-hook:
+! @if test -e "scripts/Uninstall.sh"; then \
+! scripts/Uninstall.sh $(DESTDIR)$(prefix);\
+! fi
+--- 8,19 ----
+ # FIXME [3.0] diffgui \
+ # $(CA_RELEASE_TYPE)
+
+! #install-exec-hook:
+! # @if test -e "scripts/Setup.sh"; then \
+! # scripts/Setup.sh $(DESTDIR)$(prefix); \
+! # fi
+
+! #uninstall-hook:
+! # @if test -e "scripts/Uninstall.sh"; then \
+! # scripts/Uninstall.sh $(DESTDIR)$(prefix);\
+! # fi
+diff -crB CodeAnalyst-3_3_18_0361-Public.orig/src/ca_agent/jvmpi/Makefile.am CodeAnalyst-3_3_18_0361-Public/src/ca_agent/jvmpi/Makefile.am
+*** CodeAnalyst-3_3_18_0361-Public.orig/src/ca_agent/jvmpi/Makefile.am 2012-04-13 02:41:43.000000000 -0300
+--- CodeAnalyst-3_3_18_0361-Public/src/ca_agent/jvmpi/Makefile.am 2012-04-22 20:47:21.604593511 -0300
+***************
+*** 15,20 ****
+ libCAJVMPIA_so_SOURCES = \
+ jpa.cpp
+
+! install-exec-hook:
+! @/sbin/ldconfig
+
+--- 15,20 ----
+ libCAJVMPIA_so_SOURCES = \
+ jpa.cpp
+
+! #install-exec-hook:
+! # @/sbin/ldconfig
+
+diff -crB CodeAnalyst-3_3_18_0361-Public.orig/src/Makefile.am CodeAnalyst-3_3_18_0361-Public/src/Makefile.am
+*** CodeAnalyst-3_3_18_0361-Public.orig/src/Makefile.am 2012-04-13 02:41:43.000000000 -0300
+--- CodeAnalyst-3_3_18_0361-Public/src/Makefile.am 2012-04-22 20:44:57.674586720 -0300
+***************
+*** 8,21 ****
+ install-exec-hook:
+ @if test -e "${LIBDWARF_DIR}libdwarf.so"; then \
+ install -pD -m 755 ${LIBDWARF_DIR}libdwarf.so $(DESTDIR)$(prefix)/lib/libdwarf.so ; \
+- /sbin/ldconfig ;\
+ fi
+
+ uninstall-hook:
+ @if test -e "${LIBDWARF_DIR}libdwarf.so"; then \
+ if test -e "$(DESTDIR)$(prefix)/lib/libdwarf.so"; then \
+ rm -f $(DESTDIR)$(prefix)/lib/libdwarf.so ; \
+- /sbin/ldconfig ; \
+ fi ; \
+ fi
+
+--- 8,19 ----