diff options
Diffstat (limited to 'package/ltt')
-rw-r--r-- | package/ltt/Config.in | 8 | ||||
-rwxr-xr-x | package/ltt/init-tracer | 93 | ||||
-rw-r--r-- | package/ltt/ltt.mk | 116 | ||||
-rw-r--r-- | package/ltt/ltt.patch | 42 |
4 files changed, 259 insertions, 0 deletions
diff --git a/package/ltt/Config.in b/package/ltt/Config.in new file mode 100644 index 000000000..67da6603f --- /dev/null +++ b/package/ltt/Config.in @@ -0,0 +1,8 @@ +config BR2_PACKAGE_LTT + bool "LTT (Linux Trace Toolkit)" + default n + help + A suite of tools designed to extract program execution + details from the Linux operating system and interpret them. + + http://www.opersys.com/LTT/ diff --git a/package/ltt/init-tracer b/package/ltt/init-tracer new file mode 100755 index 000000000..3dee49211 --- /dev/null +++ b/package/ltt/init-tracer @@ -0,0 +1,93 @@ +#!/bin/sh +# +# Load tracer module and create tracer device node. +# + +MODULE="tracer" +MAIN_DEVICE="tracer" +USER_DEVICE="tracerU" +GROUP="root" +MODE="664" + +start() { + if [ -e /dev/${MAIN_DEVICE} -o -e /dev/${USER_DEVICE} ] + then + # tell the user about what we are doing + echo "Deleting old tracer nodes: /dev/tracer and /dev/tracerU" + + # remove stale nodes + rm -f /dev/${MAIN_DEVICE} + rm -f /dev/${USER_DEVICE} + fi + + # look for the major number + MAJOR=`/bin/grep " ${MODULE}$" /proc/devices | cut -d" " -f1` + + # does the device exist? + if [ ${MAJOR} ] + then + echo "Found tracer device with major number:" ${MAJOR} + else + echo "Loading tracer kernel module: " + # invoke modprobe + /sbin/modprobe ${MODULE} + MAJOR=`/bin/grep " ${MODULE}$" /proc/devices | cut -d" " -f1` + if [ ${MAJOR} ] + then + echo "Found tracer device with major number:" ${MAJOR} + else + echo "Did not find tracer device ... /dev entries not created ..." + exit 1 + fi + fi + + # tell the user about what we are doing + echo "Creating new tracer nodes: /dev/tracer and /dev/tracerU" + + # create the character special file + /bin/mknod /dev/${MAIN_DEVICE} c ${MAJOR} 0 + /bin/mknod /dev/${USER_DEVICE} c ${MAJOR} 1 + + # set permissions and ownership + /bin/chgrp ${GROUP} /dev/${MAIN_DEVICE} + /bin/chmod ${MODE} /dev/${MAIN_DEVICE} + /bin/chgrp ${GROUP} /dev/${USER_DEVICE} + /bin/chmod ${MODE} /dev/${USER_DEVICE} +} +stop() { + # tell the user about what we are doing + echo "Deleting tracer nodes: /dev/tracer and /dev/tracerU" + + # remove nodes + rm -f /dev/${MAIN_DEVICE} + rm -f /dev/${USER_DEVICE} + + if lsmod | /bin/grep "^${MODULE} " + then + echo -n "Removing tracer kernel module: " + # invoke modprobe -r + /sbin/modprobe -r ${MODULE} + echo "OK" + fi +} +restart() { + stop + start +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart|reload) + restart + ;; + *) + echo $"Usage: $0 {start|stop|restart}" + exit 1 +esac + +exit $? diff --git a/package/ltt/ltt.mk b/package/ltt/ltt.mk new file mode 100644 index 000000000..dfc317879 --- /dev/null +++ b/package/ltt/ltt.mk @@ -0,0 +1,116 @@ +############################################################# +# +# ltt +# +############################################################# +LTT_VER:=0.9.5a +LTT_SOURCE:=TraceToolkit-$(LTT_VER).tgz +LTT_SITE:=http://www.opersys.com/ftp/pub/LTT +LTT_CAT:=zcat +LTT_DIR1:=$(TOOL_BUILD_DIR)/TraceToolkit-$(LTT_VER:a=) +LTT_DIR2:=$(BUILD_DIR)/TraceToolkit-$(LTT_VER:a=) +LTT_BINARY:=Visualizer/tracevisualizer +LTT_TARGET_BINARY:=Daemon/tracedaemon + +$(DL_DIR)/$(LTT_SOURCE): + $(WGET) -P $(DL_DIR) $(LTT_SITE)/$(LTT_SOURCE) + +ltt-source: $(DL_DIR)/$(LTT_SOURCE) + + +############################################################# +# +# build tracevisualizer for use on the host system +# +############################################################# +$(LTT_DIR1)/.unpacked: $(DL_DIR)/$(LTT_SOURCE) + $(LTT_CAT) $(DL_DIR)/$(LTT_SOURCE) | tar -C $(TOOL_BUILD_DIR) $(TAR_OPTIONS) - + toolchain/patch-kernel.sh $(LTT_DIR1) package/ltt ltt\*.patch + touch $(LTT_DIR1)/.unpacked + +$(LTT_DIR1)/.configured: $(LTT_DIR1)/.unpacked + (cd $(LTT_DIR1); rm -rf config.cache; \ + ./configure \ + --prefix=$(TOOL_BUILD_DIR) \ + ); + touch $(LTT_DIR1)/.configured + +$(LTT_DIR1)/$(LTT_BINARY): $(LTT_DIR1)/.configured + $(MAKE) -C $(LTT_DIR1)/LibLTT + $(MAKE) -C $(LTT_DIR1)/Visualizer + +$(TOOL_BUILD_DIR)/bin/tracevisualizer: $(LTT_DIR1)/$(LTT_BINARY) + $(MAKE) -C $(LTT_DIR1)/LibLTT install + $(MAKE) -C $(LTT_DIR1)/Visualizer install + +host-ltt-tracevisualizer: $(TOOL_BUILD_DIR)/bin/tracevisualizer + +host-ltt-clean: + $(MAKE) -C $(LTT_DIR1) clean + +host-ltt-dirclean: + rm -rf $(LTT_DIR1) + + +############################################################# +# +# build tracedaemon for use on the target system +# +############################################################# +$(LTT_DIR2)/.unpacked: $(DL_DIR)/$(LTT_SOURCE) + $(LTT_CAT) $(DL_DIR)/$(LTT_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - + toolchain/patch-kernel.sh $(LTT_DIR2) package/ltt ltt\*.patch + touch $(LTT_DIR2)/.unpacked + +$(LTT_DIR2)/.configured: $(LTT_DIR2)/.unpacked + (cd $(LTT_DIR2); rm -rf config.cache; \ + $(TARGET_CONFIGURE_OPTS) \ + CFLAGS="$(TARGET_CFLAGS)" \ + ./configure \ + --host=$(GNU_TARGET_NAME) \ + --build=$(GNU_HOST_NAME) \ + --prefix=/usr \ + --exec-prefix=/usr \ + --bindir=/usr/bin \ + --sbindir=/usr/sbin \ + --libexecdir=/usr/lib \ + --sysconfdir=/etc \ + --datadir=/usr/share \ + --localstatedir=/var \ + --mandir=/usr/man \ + --infodir=/usr/info \ + ); + touch $(LTT_DIR2)/.configured + +$(LTT_DIR2)/$(LTT_TARGET_BINARY): $(LTT_DIR2)/.configured + $(MAKE) CC=$(TARGET_CC) -C $(LTT_DIR2)/LibUserTrace + $(MAKE) CC=$(TARGET_CC) -C $(LTT_DIR2)/Daemon + +$(TARGET_DIR)/usr/bin/tracedaemon: $(LTT_DIR2)/$(LTT_TARGET_BINARY) + $(MAKE) $(TARGET_CONFIGURE_OPTS) DESTDIR=$(TARGET_DIR) \ + -C $(LTT_DIR2)/LibUserTrace install + $(MAKE) $(TARGET_CONFIGURE_OPTS) DESTDIR=$(TARGET_DIR) \ + -C $(LTT_DIR2)/Daemon install + $(STRIP) $(TARGET_DIR)/usr/bin/tracedaemon > /dev/null 2>&1 + $(INSTALL) -D -m 0755 package/ltt/init-tracer $(TARGET_DIR)/etc/init.d/S27tracer + +ltt-tracedaemon: uclibc $(TARGET_DIR)/usr/bin/tracedaemon + +ltt-clean: + $(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(LTT_DIR2) uninstall + -$(MAKE) -C $(LTT_DIR2) clean + +ltt-dirclean: + rm -rf $(LTT_DIR2) + + +ltt: host-ltt-tracevisualizer ltt-tracedaemon + +############################################################# +# +# Toplevel Makefile options +# +############################################################# +ifeq ($(strip $(BR2_PACKAGE_LTT)),y) +TARGETS+=ltt +endif diff --git a/package/ltt/ltt.patch b/package/ltt/ltt.patch new file mode 100644 index 000000000..b0c758086 --- /dev/null +++ b/package/ltt/ltt.patch @@ -0,0 +1,42 @@ +diff -urN TraceToolkit-0.9.5.orig/LibLTT/EventDB.c TraceToolkit-0.9.5/LibLTT/EventDB.c +--- TraceToolkit-0.9.5.orig/LibLTT/EventDB.c 2002-04-15 09:10:13.000000000 -0700 ++++ TraceToolkit-0.9.5/LibLTT/EventDB.c 2005-09-29 15:09:11.000000000 -0700 +@@ -2757,7 +2757,7 @@ + + /* Increment number of custom events */ + pmTraceDB->NbCustom++; +- goto NoControlEvent; ++ continue; + break; + + /* A custom event has occured */ +@@ -2800,8 +2800,6 @@ + lLastCtrlEvent = lEvent; + lLastCtrlEventTime = lEventTime; + } +- +-NoControlEvent: + } while(DBEventNext(pmTraceDB, &lEvent) == TRUE); + + /* Remember the last event and its time */ +diff -urN TraceToolkit-0.9.5.orig/LibLTT/RTAIDB.c TraceToolkit-0.9.5/LibLTT/RTAIDB.c +--- TraceToolkit-0.9.5.orig/LibLTT/RTAIDB.c 2002-04-15 20:00:05.000000000 -0700 ++++ TraceToolkit-0.9.5/LibLTT/RTAIDB.c 2005-09-29 15:09:17.000000000 -0700 +@@ -2621,7 +2621,7 @@ + + /* Increment number of custom events */ + pmTraceDB->NbCustom++; +- goto NoControlEvent; ++ continue; + break; + + /* A custom event has occured */ +@@ -2936,8 +2936,6 @@ + lLastCtrlEvent = lEvent; + lLastCtrlEventTime = lEventTime; + } +- +-NoControlEvent: + } while(DBEventNext(pmTraceDB, &lEvent) == TRUE); + + /* Remember the last event and it's time */ |