This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: pre-compiled systemtap modules (try 2)


Frank Ch. Eigler wrote:
We should consider separating the compile / run front-ends into
separate programs entirely, perhaps by promoting and renaming stpd
("staprun")?  This makes sense further because we will want to make it
possible to install only a small subset of systemtap itself on a
deployment machine in order to run a pre-compiled script.

OK, in the interests of furthering this, I'm attaching a patch. This renames 'stpd' to 'staprun' and moves it to /usr/bin. The testsuite has been modified to use 'staprun' instead of 'stpd'. The spec file has been modified to output 2 packages instead of 1: "systemtap" and "systemtap-runtime" (currently "systemtap-runtime" just has staprun in it).


I was able to install both rpms, compile a systemtap module, remove the "systemtap" rpm (leaving the "systemtap-runtime" rpm behind), and run the module.

There is still documentation work to be done (at least).

Comments?

--
David Smith
dsmith@redhat.com
Red Hat, Inc.
http://www.redhat.com
256.217.0141 (direct)
256.837.0057 (fax)
Index: Makefile.am
===================================================================
RCS file: /cvs/systemtap/src/Makefile.am,v
retrieving revision 1.53
diff -u -p -r1.53 Makefile.am
--- Makefile.am	12 Aug 2006 15:28:08 -0000	1.53
+++ Makefile.am	21 Sep 2006 15:43:07 -0000
@@ -5,14 +5,14 @@ AUTOMAKE_OPTIONS = dist-bzip2
 
 pkglibexecdir = ${libexecdir}/${PACKAGE}
 
-AM_CPPFLAGS = -DPKGLIBDIR='"$(pkglibexecdir)"' -DPKGDATADIR='"${pkgdatadir}"'
+AM_CPPFLAGS = -DBINDIR='"$(bindir)"' -DPKGDATADIR='"${pkgdatadir}"'
 
 AM_CFLAGS = -std=gnu99 -D_GNU_SOURCE -fexceptions \
 	    -Wall -Werror -Wshadow -Wunused -Wformat=2 -W
 AM_CXXFLAGS = -Wall
 
 dist_man_MANS = stap.1 stapprobes.5 stapfuncs.5 stapex.5 lket.5
-bin_PROGRAMS = stap
+bin_PROGRAMS = stap staprun
 stap_SOURCES = main.cxx \
 	parse.cxx staptree.cxx elaborate.cxx translate.cxx \
 	tapsets.cxx buildrun.cxx loc2c.c
@@ -47,11 +47,8 @@ install-elfutils:
 install-exec-local: install-elfutils
 endif
 
-# stpd goes into $libexec/$package, so libexec_PROGRAMS would
-# put it into the wrong location
-pkglibexec_PROGRAMS = stpd
-stpd_SOURCES = runtime/stpd/stpd.c runtime/stpd/librelay.c
-stpd_LDADD = -lpthread
+staprun_SOURCES = runtime/stpd/stpd.c runtime/stpd/librelay.c
+staprun_LDADD = -lpthread
 
 pkglibexec_SCRIPTS = stp_check
 CLEANFILES += $(pkglibexec_SCRIPTS)
Index: Makefile.in
===================================================================
RCS file: /cvs/systemtap/src/Makefile.in,v
retrieving revision 1.59
diff -u -p -r1.59 Makefile.in
--- Makefile.in	12 Aug 2006 15:28:08 -0000	1.59
+++ Makefile.in	21 Sep 2006 15:43:07 -0000
@@ -37,14 +37,13 @@ POST_INSTALL = :
 NORMAL_UNINSTALL = :
 PRE_UNINSTALL = :
 POST_UNINSTALL = :
-bin_PROGRAMS = stap$(EXEEXT)
+bin_PROGRAMS = stap$(EXEEXT) staprun$(EXEEXT)
 @BUILD_ELFUTILS_TRUE@am__append_1 = -Iinclude-elfutils
 @BUILD_ELFUTILS_TRUE@am__append_2 = -Llib-elfutils -Wl,-rpath-link,lib-elfutils \
 @BUILD_ELFUTILS_TRUE@		-Wl,--enable-new-dtags,-rpath,$(pkglibdir)
 
 @BUILD_ELFUTILS_TRUE@am__append_3 = stamp-elfutils
 @BUILD_ELFUTILS_FALSE@stap_DEPENDENCIES =
-pkglibexec_PROGRAMS = stpd$(EXEEXT)
 noinst_PROGRAMS = loc2c-test$(EXEEXT)
 @BUILD_LKET_B2A_TRUE@am__append_4 = runtime/lket/b2a
 subdir = .
@@ -67,11 +66,9 @@ CONFIG_HEADER = config.h
 CONFIG_CLEAN_FILES = systemtap.spec stp_check stap.1 stapprobes.5 \
 	stapfuncs.5 stapex.5 lket.5
 am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkglibexecdir)" \
-	"$(DESTDIR)$(pkglibexecdir)" "$(DESTDIR)$(man1dir)" \
-	"$(DESTDIR)$(man5dir)"
+	"$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man5dir)"
 binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
-pkglibexecPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
-PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) $(pkglibexec_PROGRAMS)
+PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
 am_loc2c_test_OBJECTS = loc2c_test-loc2c-test.$(OBJEXT) \
 	loc2c_test-loc2c.$(OBJEXT)
 loc2c_test_OBJECTS = $(am_loc2c_test_OBJECTS)
@@ -82,9 +79,9 @@ am_stap_OBJECTS = stap-main.$(OBJEXT) st
 	stap-translate.$(OBJEXT) stap-tapsets.$(OBJEXT) \
 	stap-buildrun.$(OBJEXT) stap-loc2c.$(OBJEXT)
 stap_OBJECTS = $(am_stap_OBJECTS)
-am_stpd_OBJECTS = stpd.$(OBJEXT) librelay.$(OBJEXT)
-stpd_OBJECTS = $(am_stpd_OBJECTS)
-stpd_DEPENDENCIES =
+am_staprun_OBJECTS = stpd.$(OBJEXT) librelay.$(OBJEXT)
+staprun_OBJECTS = $(am_staprun_OBJECTS)
+staprun_DEPENDENCIES =
 pkglibexecSCRIPT_INSTALL = $(INSTALL_SCRIPT)
 SCRIPTS = $(pkglibexec_SCRIPTS)
 DEFAULT_INCLUDES = -I. -I$(srcdir) -I.
@@ -99,8 +96,9 @@ CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_IN
 CXXLD = $(CXX)
 CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
 	-o $@
-SOURCES = $(loc2c_test_SOURCES) $(stap_SOURCES) $(stpd_SOURCES)
-DIST_SOURCES = $(loc2c_test_SOURCES) $(stap_SOURCES) $(stpd_SOURCES)
+SOURCES = $(loc2c_test_SOURCES) $(stap_SOURCES) $(staprun_SOURCES)
+DIST_SOURCES = $(loc2c_test_SOURCES) $(stap_SOURCES) \
+	$(staprun_SOURCES)
 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
 	html-recursive info-recursive install-data-recursive \
 	install-exec-recursive install-info-recursive \
@@ -217,7 +215,7 @@ sysconfdir = @sysconfdir@
 target_alias = @target_alias@
 AUTOMAKE_OPTIONS = dist-bzip2
 pkglibexecdir = ${libexecdir}/${PACKAGE}
-AM_CPPFLAGS = -DPKGLIBDIR='"$(pkglibexecdir)"' -DPKGDATADIR='"${pkgdatadir}"'
+AM_CPPFLAGS = -DBINDIR='"$(bindir)"' -DPKGDATADIR='"${pkgdatadir}"'
 AM_CFLAGS = -std=gnu99 -D_GNU_SOURCE -fexceptions \
 	    -Wall -Werror -Wshadow -Wunused -Wformat=2 -W
 
@@ -234,8 +232,8 @@ stap_LDFLAGS = $(AM_LDFLAGS) $(am__appen
 CLEANFILES = $(am__append_3) $(pkglibexec_SCRIPTS)
 @BUILD_ELFUTILS_TRUE@BUILT_SOURCES = stamp-elfutils
 @BUILD_ELFUTILS_TRUE@stap_DEPENDENCIES = lib-elfutils/libdw.so
-stpd_SOURCES = runtime/stpd/stpd.c runtime/stpd/librelay.c
-stpd_LDADD = -lpthread
+staprun_SOURCES = runtime/stpd/stpd.c runtime/stpd/librelay.c
+staprun_LDADD = -lpthread
 pkglibexec_SCRIPTS = stp_check
 loc2c_test_SOURCES = loc2c-test.c loc2c.c
 loc2c_test_CPPFLAGS = $(stap_CPPFLAGS)
@@ -345,38 +343,15 @@ clean-binPROGRAMS:
 
 clean-noinstPROGRAMS:
 	-test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
-install-pkglibexecPROGRAMS: $(pkglibexec_PROGRAMS)
-	@$(NORMAL_INSTALL)
-	test -z "$(pkglibexecdir)" || $(mkdir_p) "$(DESTDIR)$(pkglibexecdir)"
-	@list='$(pkglibexec_PROGRAMS)'; for p in $$list; do \
-	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
-	  if test -f $$p \
-	  ; then \
-	    f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
-	   echo " $(INSTALL_PROGRAM_ENV) $(pkglibexecPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(pkglibexecdir)/$$f'"; \
-	   $(INSTALL_PROGRAM_ENV) $(pkglibexecPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(pkglibexecdir)/$$f" || exit 1; \
-	  else :; fi; \
-	done
-
-uninstall-pkglibexecPROGRAMS:
-	@$(NORMAL_UNINSTALL)
-	@list='$(pkglibexec_PROGRAMS)'; for p in $$list; do \
-	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
-	  echo " rm -f '$(DESTDIR)$(pkglibexecdir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(pkglibexecdir)/$$f"; \
-	done
-
-clean-pkglibexecPROGRAMS:
-	-test -z "$(pkglibexec_PROGRAMS)" || rm -f $(pkglibexec_PROGRAMS)
 loc2c-test$(EXEEXT): $(loc2c_test_OBJECTS) $(loc2c_test_DEPENDENCIES) 
 	@rm -f loc2c-test$(EXEEXT)
 	$(LINK) $(loc2c_test_LDFLAGS) $(loc2c_test_OBJECTS) $(loc2c_test_LDADD) $(LIBS)
 stap$(EXEEXT): $(stap_OBJECTS) $(stap_DEPENDENCIES) 
 	@rm -f stap$(EXEEXT)
 	$(CXXLINK) $(stap_LDFLAGS) $(stap_OBJECTS) $(stap_LDADD) $(LIBS)
-stpd$(EXEEXT): $(stpd_OBJECTS) $(stpd_DEPENDENCIES) 
-	@rm -f stpd$(EXEEXT)
-	$(LINK) $(stpd_LDFLAGS) $(stpd_OBJECTS) $(stpd_LDADD) $(LIBS)
+staprun$(EXEEXT): $(staprun_OBJECTS) $(staprun_DEPENDENCIES) 
+	@rm -f staprun$(EXEEXT)
+	$(LINK) $(staprun_LDFLAGS) $(staprun_OBJECTS) $(staprun_LDADD) $(LIBS)
 install-pkglibexecSCRIPTS: $(pkglibexec_SCRIPTS)
 	@$(NORMAL_INSTALL)
 	test -z "$(pkglibexecdir)" || $(mkdir_p) "$(DESTDIR)$(pkglibexecdir)"
@@ -986,7 +961,7 @@ check: $(BUILT_SOURCES)
 all-am: Makefile $(PROGRAMS) $(SCRIPTS) $(MANS) config.h
 installdirs: installdirs-recursive
 installdirs-am:
-	for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkglibexecdir)" "$(DESTDIR)$(pkglibexecdir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man5dir)"; do \
+	for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkglibexecdir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man5dir)"; do \
 	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
 	done
 install: $(BUILT_SOURCES)
@@ -1020,7 +995,7 @@ maintainer-clean-generic:
 clean: clean-recursive
 
 clean-am: clean-binPROGRAMS clean-generic clean-local \
-	clean-noinstPROGRAMS clean-pkglibexecPROGRAMS mostlyclean-am
+	clean-noinstPROGRAMS mostlyclean-am
 
 distclean: distclean-recursive
 	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
@@ -1042,7 +1017,7 @@ info-am:
 install-data-am: install-data-local install-man
 
 install-exec-am: install-binPROGRAMS install-exec-local \
-	install-pkglibexecPROGRAMS install-pkglibexecSCRIPTS
+	install-pkglibexecSCRIPTS
 
 install-info: install-info-recursive
 
@@ -1070,8 +1045,7 @@ ps: ps-recursive
 ps-am:
 
 uninstall-am: uninstall-binPROGRAMS uninstall-info-am uninstall-local \
-	uninstall-man uninstall-pkglibexecPROGRAMS \
-	uninstall-pkglibexecSCRIPTS
+	uninstall-man uninstall-pkglibexecSCRIPTS
 
 uninstall-info: uninstall-info-recursive
 
@@ -1079,17 +1053,16 @@ uninstall-man: uninstall-man1 uninstall-
 
 .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \
 	check-am clean clean-binPROGRAMS clean-generic clean-local \
-	clean-noinstPROGRAMS clean-pkglibexecPROGRAMS clean-recursive \
-	ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \
-	dist-hook dist-shar dist-tarZ dist-zip distcheck distclean \
-	distclean-compile distclean-generic distclean-hdr \
-	distclean-recursive distclean-tags distcleancheck distdir \
-	distuninstallcheck dvi dvi-am html html-am info info-am \
-	install install-am install-binPROGRAMS install-data \
-	install-data-am install-data-local install-exec \
-	install-exec-am install-exec-local install-info \
-	install-info-am install-man install-man1 install-man5 \
-	install-pkglibexecPROGRAMS install-pkglibexecSCRIPTS \
+	clean-noinstPROGRAMS clean-recursive ctags ctags-recursive \
+	dist dist-all dist-bzip2 dist-gzip dist-hook dist-shar \
+	dist-tarZ dist-zip distcheck distclean distclean-compile \
+	distclean-generic distclean-hdr distclean-recursive \
+	distclean-tags distcleancheck distdir distuninstallcheck dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-binPROGRAMS install-data install-data-am \
+	install-data-local install-exec install-exec-am \
+	install-exec-local install-info install-info-am install-man \
+	install-man1 install-man5 install-pkglibexecSCRIPTS \
 	install-strip installcheck installcheck-am installdirs \
 	installdirs-am maintainer-clean maintainer-clean-generic \
 	maintainer-clean-recursive mostlyclean mostlyclean-compile \
@@ -1097,7 +1070,7 @@ uninstall-man: uninstall-man1 uninstall-
 	tags tags-recursive uninstall uninstall-am \
 	uninstall-binPROGRAMS uninstall-info-am uninstall-local \
 	uninstall-man uninstall-man1 uninstall-man5 \
-	uninstall-pkglibexecPROGRAMS uninstall-pkglibexecSCRIPTS
+	uninstall-pkglibexecSCRIPTS
 
 @BUILD_ELFUTILS_TRUE@stamp-elfutils: config.status
 @BUILD_ELFUTILS_TRUE@	$(MAKE) $(AM_MAKEFLAGS) -C build-elfutils all
Index: buildrun.cxx
===================================================================
RCS file: /cvs/systemtap/src/buildrun.cxx,v
retrieving revision 1.27
diff -u -p -r1.27 buildrun.cxx
--- buildrun.cxx	18 Sep 2006 16:55:01 -0000	1.27
+++ buildrun.cxx	21 Sep 2006 15:43:07 -0000
@@ -125,31 +125,31 @@ run_pass (systemtap_session& s)
   struct passwd *pw = getpwuid(getuid());
   string username = string(pw->pw_name);
 
-  // for now, just spawn stpd
-  string stpd_cmd = string("sudo ") 
-    + string(PKGLIBDIR) + "/stpd "
+  // for now, just spawn staprun
+  string staprun_cmd = string("sudo ") 
+    + string(BINDIR) + "/staprun "
     + (s.verbose>1 ? "" : "-q ")
     + "-u " + username + " "
     + (s.output_file.empty() ? "" : "-o " + s.output_file + " ");
   
-  stpd_cmd += "-d " + stringify(getpid()) + " ";
+  staprun_cmd += "-d " + stringify(getpid()) + " ";
   
   if (s.cmd != "")
-    stpd_cmd += "-c \"" + s.cmd + "\" ";
+    staprun_cmd += "-c \"" + s.cmd + "\" ";
   
   if (s.target_pid)
-    stpd_cmd += "-t " + stringify(s.target_pid) + " ";
+    staprun_cmd += "-t " + stringify(s.target_pid) + " ";
   
   if (s.buffer_size)
-    stpd_cmd += "-b " + stringify(s.buffer_size) + " ";
+    staprun_cmd += "-b " + stringify(s.buffer_size) + " ";
   
-  stpd_cmd += s.tmpdir + "/" + s.module_name + ".ko";
+  staprun_cmd += s.tmpdir + "/" + s.module_name + ".ko";
   
-  if (s.verbose>1) clog << "Running " << stpd_cmd << endl;
+  if (s.verbose>1) clog << "Running " << staprun_cmd << endl;
   
   signal (SIGHUP, SIG_IGN);
   signal (SIGINT, SIG_IGN);
-  rc = system (stpd_cmd.c_str ());
+  rc = system (staprun_cmd.c_str ());
 
   return rc;
 }
Index: systemtap.spec.in
===================================================================
RCS file: /cvs/systemtap/src/systemtap.spec.in,v
retrieving revision 1.45
diff -u -p -r1.45 systemtap.spec.in
--- systemtap.spec.in	15 Aug 2006 07:08:53 -0000	1.45
+++ systemtap.spec.in	21 Sep 2006 15:43:07 -0000
@@ -42,6 +42,7 @@ Requires: glib2 >= 2.0.0
 # or is that kernel-smp-devel?  kernel-hugemem-devel?
 Requires: gcc make
 # Suggest: kernel-debuginfo
+Requires: systemtap-runtime = %{version}-%{release}
 
 %if %{bundled_elfutils}
 Source1: elfutils-%{elfutils_version}.tar.gz
@@ -56,6 +57,18 @@ SystemTap is an instrumentation system f
 Developers can write instrumentation to collect data on the operation
 of the system.
 
+%package runtime
+Summary: Instrumentation System Runtime
+Group: Development/System
+License: GPL
+URL: http://sourceware.org/systemtap/
+Requires: kernel >= 2.6.9-11
+
+%description runtime
+SystemTap runtime is the runtime component of an instrumentation
+system for systems running Linux 2.6.  Developers can write
+instrumentation to collect data on the operation of the system.
+
 %prep
 %setup -q %{?setup_elfutils}
 
@@ -124,6 +137,9 @@ rm -rf ${RPM_BUILD_ROOT}
 %{_libdir}/%{name}/lib*.so*
 %endif
 
+%files runtime
+%defattr(-,root,root)
+%{_bindir}/staprun
 
 %changelog
 * Wed Jul 19 2006 Roland McGrath <roland@redhat.com> - 0.5.9-1
Index: runtime/stpd/Makefile
===================================================================
RCS file: /cvs/systemtap/src/runtime/stpd/Makefile,v
retrieving revision 1.7
diff -u -p -r1.7 Makefile
--- runtime/stpd/Makefile	24 Aug 2005 16:27:35 -0000	1.7
+++ runtime/stpd/Makefile	21 Sep 2006 15:43:08 -0000
@@ -1,7 +1,7 @@
-all: stpd stp_merge stp_dump
+all: staprun stp_merge stp_dump
 
-stpd: stpd.c librelay.c ../transport/transport_msgs.h librelay.h
-	gcc -Wall -O3 -o stpd stpd.c librelay.c -lpthread
+staprun: stpd.c librelay.c ../transport/transport_msgs.h librelay.h
+	gcc -Wall -O3 -o staprun stpd.c librelay.c -lpthread
 
 stp_merge: stp_merge.c
 	gcc -Wall -O3 -o stp_merge stp_merge.c
@@ -10,7 +10,7 @@ stp_dump: stp_dump.c
 	gcc -Wall -O3 -o stp_dump stp_dump.c
 
 debug: stpd.c librelay.c ../transport/transport_msgs.h librelay.h
-	gcc -Wall -g -D DEBUG  -o stpd stpd.c librelay.c -lpthread	
+	gcc -Wall -g -D DEBUG  -o staprun stpd.c librelay.c -lpthread	
 
 clean:
-	/bin/rm -f stpd stp_merge *.o *~
+	/bin/rm -f staprun stp_merge *.o *~
Index: testsuite/systemtap.samples/args.exp
===================================================================
RCS file: /cvs/systemtap/src/testsuite/systemtap.samples/args.exp,v
retrieving revision 1.1
diff -u -p -r1.1 args.exp
--- testsuite/systemtap.samples/args.exp	12 Aug 2006 05:13:10 -0000	1.1
+++ testsuite/systemtap.samples/args.exp	21 Sep 2006 15:43:08 -0000
@@ -2,12 +2,12 @@ set test "args"
 if {![installtest_p]} { untested $test; return }
 
 set stappath [exec which stap]
-set stpdpath [exec dirname $stappath]/../libexec/systemtap/stpd
+set staprunpath [exec which staprun]
 
-if [file exists $stpdpath] {
-    pass "$test search for stpd ($stpdpath)"
+if [file exists $staprunpath] {
+    pass "$test search for staprun ($staprunpath)"
 } else {
-    fail "$test search for stpd"
+    fail "$test search for staprun"
     return
 }
 
@@ -37,7 +37,7 @@ if [file exists $modpath] {
     return
 }
 
-spawn sudo $stpdpath -r -d [pid] $modpath foo=hello bar=999
+spawn sudo $staprunpath -r -d [pid] $modpath foo=hello bar=999
 set ok 0
 expect {
     -timeout 30
@@ -52,7 +52,7 @@ if {$ok == 1} {
     fail "$test run 1"
 }
 
-spawn sudo $stpdpath -r -d [pid] $modpath foo=goodbye bar=0
+spawn sudo $staprunpath -r -d [pid] $modpath foo=goodbye bar=0
 set ok 0
 expect {
     -timeout 30
Index: testsuite/systemtap.syscall/test.tcl
===================================================================
RCS file: /cvs/systemtap/src/testsuite/systemtap.syscall/test.tcl,v
retrieving revision 1.1
diff -u -p -r1.1 test.tcl
--- testsuite/systemtap.syscall/test.tcl	12 Aug 2006 05:13:10 -0000	1.1
+++ testsuite/systemtap.syscall/test.tcl	21 Sep 2006 15:43:08 -0000
@@ -34,20 +34,17 @@ set filename "${testname}.c"
 if {$modname == ""} {
     set cmd "stap -c ../${testname} ../sys.stp"
 } else {
-    set stpd ""
-    set stpd_list "/usr/local/libexec/systemtap/stpd /usr/libexec/systemtap/stpd"
-    foreach path $stpd_list {
-	if {[file exists $path]} {
-	    set stpd $path
-	    break
-	}
-    }
-    if {$stpd == ""} {
-	puts "stpd not found!"
+    set ccmd "which staprun"
+    catch {eval exec $ccmd} output
+    if {[file exists $output]} {
+	set staprun $output
+    } else {
+	puts "staprun not found!"
 	exit
     }
+
     set user $::tcl_platform(user)
-    set cmd "sudo $stpd -rmq  -u $user -c ../${testname} ${modname}"
+    set cmd "sudo $staprun -rmq  -u $user -c ../${testname} ${modname}"
 }
 
 # Extract the expected results

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]