From a34babfa5246b1f8393c18fde450ec684f11bc21 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Mon, 19 Oct 2009 11:13:10 -0400 Subject: provide error message token/context if loc2c doesn't * tapsets.cxx (visit_target_symbol): When catching semantic_error, fill in token value if unset. Can happen for loc2c DIE() msgs. --- tapsets.cxx | 1 + 1 file changed, 1 insertion(+) diff --git a/tapsets.cxx b/tapsets.cxx index 113395e3..59dbc4b3 100644 --- a/tapsets.cxx +++ b/tapsets.cxx @@ -2317,6 +2317,7 @@ dwarf_var_expanding_visitor::visit_target_symbol (target_symbol *e) // quietly. provide (e); semantic_error* saveme = new semantic_error (er); // copy it + if (! saveme->tok1) { saveme->tok1 = e->tok; } // fill in token if needed // NB: we can have multiple errors, since a $target variable // may be expanded in several different contexts: // function ("*") { $var } -- cgit From 2e526dabcf4b15fb102e295b282df3af54d5c9d3 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Mon, 19 Oct 2009 11:33:24 -0400 Subject: PR10799: warn on possibly uintended local-vs-global namespace collision * elaborate.cxx (find_var): Take extra token parameter. Look for cross-file global variable resolution, signal a warning. * testsuite/systemtap.examples/io/traceio2.stp: Fix it. * testsuite/systemtap.syscall/sys.stp: Fix it. * NEWS: Document it. --- NEWS | 13 +++++++++++++ elaborate.cxx | 20 +++++++++++++++----- elaborate.h | 2 +- testsuite/systemtap.examples/io/traceio2.stp | 2 +- testsuite/systemtap.syscall/sys.stp | 10 +++++----- 5 files changed, 35 insertions(+), 12 deletions(-) diff --git a/NEWS b/NEWS index 9fe26ba6..2c7ca4a6 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,18 @@ * What's new +- Systemtap now warns about global variables being referenced from other + script files. This aims to protect against unintended local-vs-global + namespace collisions such as: + + % cat some_tapset.stp + probe baz.one = bar { foo = $foo; bar = $bar } + % cat end_user_script.stp + global foo # intended to be private variable + probe timer.s(1) { foo ++ } + probe baz.* { println(foo, pp()) } + % stap end_user_script.stp + WARNING: cross-file global variable reference to foo from some_tapset.stp + - Preprocessor conditional for kernel configuration testing: %( CONFIG_foo == "y" %? ... %) diff --git a/elaborate.cxx b/elaborate.cxx index 2446e4f8..c3f29603 100644 --- a/elaborate.cxx +++ b/elaborate.cxx @@ -1711,7 +1711,7 @@ symresolution_info::visit_foreach_loop (foreach_loop* e) { if (!array->referent) { - vardecl* d = find_var (array->name, e->indexes.size ()); + vardecl* d = find_var (array->name, e->indexes.size (), array->tok); if (d) array->referent = d; else @@ -1760,7 +1760,7 @@ delete_statement_symresolution_info: if (e->referent) return; - vardecl* d = parent->find_var (e->name, -1); + vardecl* d = parent->find_var (e->name, -1, e->tok); if (d) e->referent = d; else @@ -1782,7 +1782,7 @@ symresolution_info::visit_symbol (symbol* e) if (e->referent) return; - vardecl* d = find_var (e->name, 0); + vardecl* d = find_var (e->name, 0, e->tok); if (d) e->referent = d; else @@ -1818,7 +1818,7 @@ symresolution_info::visit_arrayindex (arrayindex* e) if (array->referent) return; - vardecl* d = find_var (array->name, e->indexes.size ()); + vardecl* d = find_var (array->name, e->indexes.size (), array->tok); if (d) array->referent = d; else @@ -1877,7 +1877,7 @@ symresolution_info::visit_functioncall (functioncall* e) vardecl* -symresolution_info::find_var (const string& name, int arity) +symresolution_info::find_var (const string& name, int arity, const token* tok) { if (current_function || current_probe) { @@ -1912,6 +1912,16 @@ symresolution_info::find_var (const string& name, int arity) && session.globals[i]->compatible_arity(arity)) { session.globals[i]->set_arity (arity); + if (! session.suppress_warnings) + { + vardecl* v = session.globals[i]; + // clog << "resolved " << *tok << " to global " << *v->tok << endl; + if (v->tok->location.file != tok->location.file) + { + session.print_warning ("cross-file global variable reference to " + lex_cast (*v->tok) + " from", + tok); + } + } return session.globals[i]; } diff --git a/elaborate.h b/elaborate.h index bee71a50..fec62d59 100644 --- a/elaborate.h +++ b/elaborate.h @@ -37,7 +37,7 @@ public: derived_probe* current_probe; symresolution_info (systemtap_session& s); - vardecl* find_var (const std::string& name, int arity); + vardecl* find_var (const std::string& name, int arity, const token *tok); functiondecl* find_function (const std::string& name, unsigned arity); void visit_block (block *s); diff --git a/testsuite/systemtap.examples/io/traceio2.stp b/testsuite/systemtap.examples/io/traceio2.stp index 1abea45d..797f3062 100755 --- a/testsuite/systemtap.examples/io/traceio2.stp +++ b/testsuite/systemtap.examples/io/traceio2.stp @@ -1,6 +1,6 @@ #! /usr/bin/env stap -global device_of_interest, dev +global device_of_interest probe begin { /* The following is not the most efficient way to do this. diff --git a/testsuite/systemtap.syscall/sys.stp b/testsuite/systemtap.syscall/sys.stp index e3564a15..79c7ff57 100755 --- a/testsuite/systemtap.syscall/sys.stp +++ b/testsuite/systemtap.syscall/sys.stp @@ -1,4 +1,4 @@ -global indent, indent_str, entry +global indent, indent_str, entry_p probe begin { indent = 0 @@ -13,22 +13,22 @@ probe begin { probe syscall.* ? { if (pid() == target()) { - if (entry) printf("\n") + if (entry_p) printf("\n") printf("%s%s: %s (%s) = ", indent_str[indent], execname(), name, argstr) # printf("%s%s: %s (%s) = ", indent_str[indent], execname(), probefunc(), argstr) indent++ - entry = 1 + entry_p = 1 } } probe syscall.*.return ? { if (pid() == target()) { if (indent) indent-- - if (entry) + if (entry_p) printf("%s\n", retstr) else printf("%s%s\n", indent_str[indent],retstr) - entry = 0 + entry_p = 0 } } -- cgit From 4c84892cead59e568a83172e441a15713ae162ab Mon Sep 17 00:00:00 2001 From: Wenji Huang Date: Mon, 19 Oct 2009 13:49:23 -0400 Subject: fix 32-bit compatibility for @hist_log printing * stat-common.c (_stp_stat_print_histogram_buf): Fix HIST_PRINTF parameter passing. --- runtime/stat-common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/stat-common.c b/runtime/stat-common.c index e6fd3a11..7123dc8e 100644 --- a/runtime/stat-common.c +++ b/runtime/stat-common.c @@ -270,7 +270,7 @@ static void _stp_stat_print_histogram_buf(char *buf, size_t size, Hist st, stat for (j = 0; j < v; ++j) HIST_PRINTF("@"); - HIST_PRINTF("%*lld\n", HIST_WIDTH - v + 1 + cnt_space, sd->histogram[i]); + HIST_PRINTF("%*lld\n", (int)(HIST_WIDTH - v + 1 + cnt_space), sd->histogram[i]); } HIST_PRINTF("\n"); #undef HIST_PRINTF -- cgit From 892e5de27d2f275e2d7c2160d81fe9e0c87b1ee1 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Mon, 19 Oct 2009 13:53:33 -0400 Subject: bemoan that _stp_*printf can't be protected with gcc attribute printf --- runtime/string.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/runtime/string.c b/runtime/string.c index cdafbf64..b3f81f0e 100644 --- a/runtime/string.c +++ b/runtime/string.c @@ -21,7 +21,11 @@ */ /** Sprintf into a string. - * Like printf, except output goes into a string. + * Like printf, except output goes into a string. + * + * NB: these are script language printf formatting directives, where + * %d ints are 64-bits etc, so we can't use gcc level attribute printf + * to type-check the arguments. * * @param str string * @param fmt A printf-style format string followed by a -- cgit From 81fb86d83da9964e7d9e2330d78b2008f18054e4 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Mon, 19 Oct 2009 18:11:58 -0700 Subject: Improve some runtime struct layouts Guided by pahole, I've shaved off a few padding bytes here and there. New sizes on x86_64: stap_task_finder_target 192 -> 184 stap_itrace_probe 216 -> 208 stap_utrace_probe 328 -> 312 stap_uprobe_tf 200 -> 192 stap_uprobe_spec 48 -> 40 I only changed field layouts, not types or names, so this should be perfectly safe. (FLW) --- runtime/task_finder.c | 4 ++-- tapset-utrace.cxx | 2 +- tapsets.cxx | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/runtime/task_finder.c b/runtime/task_finder.c index 6b50f1b9..e89ac8ee 100644 --- a/runtime/task_finder.c +++ b/runtime/task_finder.c @@ -87,15 +87,15 @@ struct stap_task_finder_target { struct list_head callback_list_head; struct list_head callback_list; struct utrace_engine_ops ops; + size_t pathlen; unsigned engine_attached:1; unsigned mmap_events:1; unsigned munmap_events:1; unsigned mprotect_events:1; - size_t pathlen; /* public: */ - const char *procname; pid_t pid; + const char *procname; stap_task_finder_callback callback; stap_task_finder_mmap_callback mmap_callback; stap_task_finder_munmap_callback munmap_callback; diff --git a/tapset-utrace.cxx b/tapset-utrace.cxx index abc9759f..4bd4ecc1 100644 --- a/tapset-utrace.cxx +++ b/tapset-utrace.cxx @@ -785,10 +785,10 @@ utrace_derived_probe_group::emit_module_decls (systemtap_session& s) s.op->newline() << "struct stap_task_finder_target tgt;"; s.op->newline() << "const char *pp;"; s.op->newline() << "void (*ph) (struct context*);"; + s.op->newline() << "int engine_attached;"; s.op->newline() << "enum utrace_derived_probe_flags flags;"; s.op->newline() << "struct utrace_engine_ops ops;"; s.op->newline() << "unsigned long events;"; - s.op->newline() << "int engine_attached;"; s.op->newline() << "struct task_struct *tsk;"; s.op->newline() << "unsigned long sdt_sem_address;"; s.op->newline(-1) << "};"; diff --git a/tapsets.cxx b/tapsets.cxx index 59dbc4b3..17e6c6cf 100644 --- a/tapsets.cxx +++ b/tapsets.cxx @@ -4433,11 +4433,11 @@ uprobe_derived_probe_group::emit_module_decls (systemtap_session& s) s.op->newline() << "static const struct stap_uprobe_spec {"; // NB: read-only structure s.op->newline(1) << "unsigned tfi;"; // index into stap_uprobe_finders[] + s.op->newline() << "unsigned return_p:1;"; s.op->newline() << "unsigned long address;"; s.op->newline() << "const char *pp;"; s.op->newline() << "void (*ph) (struct context*);"; s.op->newline() << "unsigned long sdt_sem_address;"; - s.op->newline() << "unsigned return_p:1;"; s.op->newline(-1) << "} stap_uprobe_specs [] = {"; // NB: read-only structure s.op->indent(1); for (unsigned i =0; i Date: Sun, 18 Oct 2009 22:26:27 -0400 Subject: Add testsuite for tcl sdt markers. dtrace.in (provider::generate): Set enabled to true until .so is resolved. tcl.exp: New testsuite for tcl sdt markers modelled after mysql. --- dtrace.in | 3 +- testsuite/systemtap.base/tcl.exp | 165 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 167 insertions(+), 1 deletion(-) create mode 100644 testsuite/systemtap.base/tcl.exp diff --git a/dtrace.in b/dtrace.in index 976ba0cf..d147addb 100755 --- a/dtrace.in +++ b/dtrace.in @@ -106,7 +106,8 @@ class provider: stap_str = stap_str + ",arg%s" % (i); i += 1 self.h.write ('/* %s (%s) */\n' % (this_probe_canon,args_string)) - self.h.write ('#define %s_ENABLED() %s_semaphore\n' % (this_probe_canon,this_probe)) + # XXX Enable this when .so semaphores work properly + self.h.write ('#define %s_ENABLED() 1 /*%s_semaphore*/\n' % (this_probe_canon,this_probe)) # NB: unsigned short is fixed in ABI self.h.write ("__extension__ extern unsigned short %s_semaphore __attribute__ ((unused)) __attribute__ ((section (\".probes\")));\n" % (this_probe)) self.h.write (define_str + ") \\\n") diff --git a/testsuite/systemtap.base/tcl.exp b/testsuite/systemtap.base/tcl.exp new file mode 100644 index 00000000..7e21091a --- /dev/null +++ b/testsuite/systemtap.base/tcl.exp @@ -0,0 +1,165 @@ +set test "tcl" + +# Test sdt support in tcl. + +global env + +if {! [info exists env(SYSTEMTAP_TEST_SDT)]} { + unsupported "tcl (\"SYSTEMTAP_TEST_SDT\" not in env)" + return +} + +########## Create /tmp/stap-tcl.stp ########## +set tclreleasemajor "8.6" +set tclrelease "8.6b1" +set tcldir "[pwd]/tcl/install/" +set testsuite "[pwd]" + +set fp [open "$testsuite/stap-tcl.stp" "w"] +puts $fp " +probe process(@1).mark(\"proc__entry\") +{ + printf (\"%s %#x,%#x,%#x\\n\",\$\$name, \$arg1,\$arg2,\$arg3) +} +probe process(@1).mark(\"proc__return\") +{ + printf (\"%s %#x,%#x\\n\",\$\$name, \$arg1,\$arg2) +} +probe process(@1).mark(\"proc__result\") +{ + printf (\"%s %#x,%#x,%#x,%#x\\n\",\$\$name, \$arg1,\$arg2,\$arg3,\$arg4) +} +probe process(@1).mark(\"proc__args\") +{ + printf (\"%s %#x,%#x,%#x,%#x,%#x,%#x,%#x,%#x,%#x,%#x\\n\",\$\$name, \$arg1,\$arg2,\$arg3,\$arg4,\$arg5,\$arg6,\$arg7,\$arg8,\$arg9,\$arg10) +} +probe process(@1).mark(\"proc__info\") +{ + printf (\"%s %#x,%#x,%#x,%#x,%#x,%#x\\n\",\$\$name, \$arg1,\$arg2,\$arg3,\$arg4,\$arg5,\$arg6) +} +probe process(@1).mark(\"cmd__entry\") +{ + printf (\"%s %#x,%#x,%#x\\n\",\$\$name, \$arg1,\$arg2,\$arg3) +} +probe process(@1).mark(\"cmd__return\") +{ + printf (\"%s %#x,%#x\\n\",\$\$name, \$arg1,\$arg2) +} +probe process(@1).mark(\"cmd__result\") +{ + printf (\"%s %#x,%#x,%#x,%#x\\n\",\$\$name, \$arg1,\$arg2,\$arg3,\$arg4) +} +probe process(@1).mark(\"cmd__args\") +{ + printf (\"%s %#x,%#x,%#x,%#x,%#x,%#x,%#x,%#x,%#x,%#x\\n\",\$\$name, \$arg1,\$arg2,\$arg3,\$arg4,\$arg5,\$arg6,\$arg7,\$arg8,\$arg9,\$arg10) +} +probe process(@1).mark(\"cmd__info\") +{ + printf (\"%s %#x,%#x,%#x,%#x,%#x,%#x\\n\",\$\$name, \$arg1,\$arg2,\$arg3,\$arg4,\$arg5,\$arg6) +} +probe process(@1).mark(\"inst__start\") +{ + printf (\"%s %#x,%#x,%#x\\n\",\$\$name, \$arg1,\$arg2,\$arg3) +} +probe process(@1).mark(\"inst__done\") +{ + printf (\"%s %#x,%#x,%#x\\n\",\$\$name, \$arg1,\$arg2,\$arg3) +} +probe process(@1).mark(\"obj__create\") +{ + printf (\"%s %#x\\n\",\$\$name, \$arg1) +} +probe process(@1).mark(\"obj__free\") +{ + printf (\"%s %#x\\n\",\$\$name, \$arg1) +} +probe process(@1).mark(\"tcl__probe\") +{ + printf (\"%s %#x,%#x,%#x,%#x,%#x,%#x,%#x,%#x,%#x,%#x\\n\",\$\$name, \$arg1,\$arg2,\$arg3,\$arg4,\$arg5,\$arg6,\$arg7,\$arg8,\$arg9,\$arg10) +} +" +close $fp + +########## Begin /tmp/stap-tcl.sh ########## +set fp [open "$testsuite/stap-tcl.sh" "w"] +puts $fp " +##### begin run_tests ##### +function run_tests \{ +(cd $tcldir/.. +MOD=stapsdt_\$(date +%j%k%M%N | sed 's/ //') +/work/scox/virginsystemtap/install/bin/stap -m \$MOD -c install/bin/tclsh$tclreleasemajor $testsuite/stap-tcl.stp $testsuite/tcl/install/lib//libtcl$tclreleasemajor.so << END >$testsuite/stap-tcl-markers.log 2>&1 +source src/tests/all.tcl +quit +END +) + +PROC_ENTRY=\$(grep 'proc__entry' $testsuite/stap-tcl-markers.log | wc -l) +PROC_RETURN=\$(grep 'proc__return' $testsuite/stap-tcl-markers.log | wc -l) +PROC_RESULT=\$(grep 'proc__result' $testsuite/stap-tcl-markers.log | wc -l) +PROC_ARGS=\$(grep 'proc__args' $testsuite/stap-tcl-markers.log | wc -l) +PROC_INFO=\$(grep 'proc__info' $testsuite/stap-tcl-markers.log | wc -l) +CMD_ENTRY=\$(grep 'cmd__entry' $testsuite/stap-tcl-markers.log | wc -l) +CMD_RETURN=\$(grep 'cmd__return' $testsuite/stap-tcl-markers.log | wc -l) +CMD_RESULT=\$(grep 'cmd__result' $testsuite/stap-tcl-markers.log | wc -l) +CMD_ARGS=\$(grep 'cmd__args' $testsuite/stap-tcl-markers.log | wc -l) +CMD_INFO=\$(grep 'cmd__info' $testsuite/stap-tcl-markers.log | wc -l) +INST_START=\$(grep 'inst__start' $testsuite/stap-tcl-markers.log | wc -l) +INST_DONE=\$(grep 'inst__done' $testsuite/stap-tcl-markers.log | wc -l) +OBJ_CREATE=\$(grep 'obj__create' $testsuite/stap-tcl-markers.log | wc -l) +OBJ_FREE=\$(grep 'obj__free' $testsuite/stap-tcl-markers.log | wc -l) + +echo PROC_ENTRY=\$PROC_ENTRY PROC_RETURN=\$PROC_RETURN PROC_RESULT=\$PROC_RESULT PROC_ARGS=\$PROC_ARGS PROC_INFO=\$PROC_INFO CMD_ENTRY=\$CMD_ENTRY CMD_RETURN=\$CMD_RETURN CMD_RESULT=\$CMD_RESULT CMD_ARGS=\$CMD_ARGS CMD_INFO=\$CMD_INFO INST_START=\$INST_START INST_DONE=\$INST_DONE OBJ_CREATE=\$OBJ_CREATE OBJ_FREE=\$OBJ_FREE + +if \[ \$PROC_ENTRY -gt 9000 -a \$PROC_RETURN -gt 9000 -a \$PROC_RESULT -gt 9000 -a \$PROC_ARGS -gt 9000 -a \$PROC_INFO -gt 9000 -a \$CMD_ENTRY -gt 37000 -a \$CMD_RETURN -gt 37000 -a \$CMD_RESULT -gt 37000 -a \$CMD_ARGS -gt 3700 -a \$CMD_INFO -gt 37000 -a \$INST_START -gt 542000 -a \$INST_DONE -gt 542000 -a \$OBJ_CREATE -gt 723000 -a \$OBJ_FREE -gt 704000 \] ; then + echo PASS: tcl markers \$1 +else + echo FAIL: tcl markers \$1 +fi + +\} +##### end run_tests ##### + +if \[ ! -r tcl$tclrelease-src.tar.gz \] ; then +wget http://sourceforge.net/projects/tcl/files/Tcl/$tclrelease/tcl$tclrelease-src.tar.gz/download +fi + +if \[ ! -d tcl/src \] ; then +tar -x -z -f tcl$tclrelease-src.tar.gz +mkdir tcl +mv tcl$tclrelease tcl/src +fi + +if \[ ! -d tcl/install/bin \] ; then +cd tcl/src/unix +./configure --prefix=$tcldir --enable-dtrace CFLAGS='-I$env(SYSTEMTAP_INCLUDES) -g' + +make -j2 +make install +fi + +run_tests uprobe +" +########## End /tmp/stap-tcl.sh ########## +close $fp + +########## /tmp/stap-tcl.sh does most of the work ########## +verbose -log Running tcl testsuite +spawn sh stap-tcl.sh 2>&1 +expect { + -timeout 1000 + -re {FAIL: [a-z_ ]+} { regexp " .*$" $expect_out(0,string) s; + fail "$s"; exp_continue } + -re {PASS: [a-z_ ]+} { regexp " .*$" $expect_out(0,string) s; + pass "$s"; exp_continue } + -re {UNSUPPORTED: [a-zA-Z_/: ]+} { regexp " .*$" $expect_out(0,string) s; + verbose -log "$s" + unsupported "$s"; exp_continue } + timeout { fail "$test (timeout)" } + eof { } +} + +if { $verbose == 0 } { +catch {exec rm -rf $testsuite/stap-tcl.stp tcl$tclrelease-src.tar.gz \ + $testsuite/stap-tcl-markers.log $testsuite/stap-tcl.sh } +catch {exec rm -rf tcl} +} -- cgit From c42e2d2e1a9e8c09a435089ce351e1d36309dd9b Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Tue, 20 Oct 2009 12:38:55 +0200 Subject: Add limit on unwind table size we accept. * translate.cxx (MAX_UNWIND_TABLE_SIZE): New define. (dump_unwindsyms): Check debug_len and eh_len against new limit. --- translate.cxx | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/translate.cxx b/translate.cxx index bc5d6158..9d456bca 100644 --- a/translate.cxx +++ b/translate.cxx @@ -29,6 +29,11 @@ extern "C" { #include } +// Max unwind table size (debug or eh) per module. Somewhat arbitrary +// limit (a bit more than twice the .debug_frame size of my local +// vmlinux for 2.6.31.4-83.fc12.x86_64) +#define MAX_UNWIND_TABLE_SIZE (3 * 1024 * 1024) + using namespace std; struct var; @@ -4785,6 +4790,9 @@ dump_unwindsyms (Dwfl_Module *m, get_unwind_data (m, &debug_frame, &eh_frame, &debug_len, &eh_len, &eh_addr); if (debug_frame != NULL && debug_len > 0) { + if (debug_len > MAX_UNWIND_TABLE_SIZE) + throw semantic_error ("module debug unwind table size too big"); + c->output << "#if defined(STP_USE_DWARF_UNWINDER) && defined(STP_NEED_UNWIND_DATA)\n"; c->output << "static uint8_t _stp_module_" << stpmod_idx << "_debug_frame[] = \n"; @@ -4802,6 +4810,9 @@ dump_unwindsyms (Dwfl_Module *m, if (eh_frame != NULL && eh_len > 0) { + if (eh_len > MAX_UNWIND_TABLE_SIZE) + throw semantic_error ("module eh unwind table size too big"); + c->output << "#if defined(STP_USE_DWARF_UNWINDER) && defined(STP_NEED_UNWIND_DATA)\n"; c->output << "static uint8_t _stp_module_" << stpmod_idx << "_eh_frame[] = \n"; -- cgit From 1c0b2b1591333280015fc97ce5736d523b0fd0dc Mon Sep 17 00:00:00 2001 From: Stan Cox Date: Tue, 20 Oct 2009 06:56:31 -0400 Subject: tcl.exp path fix. tcl.exp (run_tests): Fix stap path. --- testsuite/systemtap.base/tcl.exp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testsuite/systemtap.base/tcl.exp b/testsuite/systemtap.base/tcl.exp index 7e21091a..5e51609d 100644 --- a/testsuite/systemtap.base/tcl.exp +++ b/testsuite/systemtap.base/tcl.exp @@ -87,7 +87,7 @@ puts $fp " function run_tests \{ (cd $tcldir/.. MOD=stapsdt_\$(date +%j%k%M%N | sed 's/ //') -/work/scox/virginsystemtap/install/bin/stap -m \$MOD -c install/bin/tclsh$tclreleasemajor $testsuite/stap-tcl.stp $testsuite/tcl/install/lib//libtcl$tclreleasemajor.so << END >$testsuite/stap-tcl-markers.log 2>&1 +stap -m \$MOD -c install/bin/tclsh$tclreleasemajor $testsuite/stap-tcl.stp $testsuite/tcl/install/lib//libtcl$tclreleasemajor.so << END >$testsuite/stap-tcl-markers.log 2>&1 source src/tests/all.tcl quit END -- cgit From bf043a5f9c9f807d670276b6c389bf5439245edb Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Tue, 20 Oct 2009 13:55:15 +0200 Subject: Be paranoid about table size resolving cie_for_fde and fde_pointer_type. * runtime/unwind.c (cie_for_fde): Take table and table_len into account. (fde_pointer_type): Likewise. * runtime/unwind/unwind.h: Adjust function prototypes. --- runtime/unwind.c | 25 ++++++++++++++++++------- runtime/unwind/unwind.h | 6 ++++-- 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/runtime/unwind.c b/runtime/unwind.c index 00108a39..0b4e6a9e 100644 --- a/runtime/unwind.c +++ b/runtime/unwind.c @@ -88,7 +88,7 @@ static sleb128_t get_sleb128(const u8 **pcur, const u8 *end) /* given an FDE, find its CIE */ static const u32 *cie_for_fde(const u32 *fde, void *unwind_data, - int is_ehframe) + uint32_t table_len, int is_ehframe) { const u32 *cie; @@ -118,6 +118,11 @@ static const u32 *cie_for_fde(const u32 *fde, void *unwind_data, else cie = unwind_data + fde[1]; + /* Make sure address falls in the table */ + if (((void *)cie) < ((void*)unwind_data) + || ((void*)cie) > ((void*)(unwind_data + table_len))) + return NULL; + if (*cie <= sizeof(*cie) + 4 || *cie >= fde[1] - sizeof(*fde) || (*cie & (sizeof(*cie) - 1)) || (cie[1] != 0xffffffff && cie[1] != 0)) { @@ -200,7 +205,8 @@ static unsigned long read_pointer(const u8 **pLoc, const void *end, signed ptrTy return value; } -static signed fde_pointer_type(const u32 *cie) +static signed fde_pointer_type(const u32 *cie, void *unwind_data, + uint32_t table_len) { const u8 *ptr = (const u8 *)(cie + 2); unsigned version = *ptr; @@ -212,11 +218,16 @@ static signed fde_pointer_type(const u32 *cie) const u8 *end = (const u8 *)(cie + 1) + *cie; uleb128_t len; + /* end of cie should fall within unwind table. */ + if (((void*)end) < ((void *)unwind_data) + || ((void *)end) > ((void *)(unwind_data + table_len))) + return -1; + /* check if augmentation size is first (and thus present) */ if (*ptr != 'z') return -1; /* check if augmentation string is nul-terminated */ - if ((ptr = memchr(aug = (const void *)ptr, 0, end - ptr)) == NULL) + if ((ptr = memchr(aug = (const void *)ptr, 0, end - ptr)) == NULL) return -1; ++ptr; /* skip terminator */ get_uleb128(&ptr, end); /* skip code alignment */ @@ -606,10 +617,10 @@ static int unwind_frame(struct unwind_frame_info *frame, /* found the fde, now set startLoc and endLoc */ if (fde != NULL) { - cie = cie_for_fde(fde, table, is_ehframe); + cie = cie_for_fde(fde, table, table_len, is_ehframe); if (likely(cie != NULL && cie != &bad_cie && cie != ¬_fde)) { ptr = (const u8 *)(fde + 2); - ptrType = fde_pointer_type(cie); + ptrType = fde_pointer_type(cie, table, table_len); startLoc = read_pointer(&ptr, (const u8 *)(fde + 1) + *fde, ptrType); startLoc = adjustStartLoc(startLoc, m, s, ptrType, is_ehframe); @@ -632,12 +643,12 @@ static int unwind_frame(struct unwind_frame_info *frame, for (fde = table, tableSize = table_len; cie = NULL, tableSize > sizeof(*fde) && tableSize - sizeof(*fde) >= *fde; tableSize -= sizeof(*fde) + *fde, fde += 1 + *fde / sizeof(*fde)) { dbug_unwind(3, "fde=%lx tableSize=%d\n", (long)*fde, (int)tableSize); - cie = cie_for_fde(fde, table, is_ehframe); + cie = cie_for_fde(fde, table, table_len, is_ehframe); if (cie == &bad_cie) { cie = NULL; break; } - if (cie == NULL || cie == ¬_fde || (ptrType = fde_pointer_type(cie)) < 0) + if (cie == NULL || cie == ¬_fde || (ptrType = fde_pointer_type(cie, table, table_len)) < 0) continue; ptr = (const u8 *)(fde + 2); diff --git a/runtime/unwind/unwind.h b/runtime/unwind/unwind.h index 285a3a34..023ea603 100644 --- a/runtime/unwind/unwind.h +++ b/runtime/unwind/unwind.h @@ -143,8 +143,10 @@ static unsigned long read_pointer(const u8 **pLoc, const void *end, signed ptrType); static const u32 bad_cie, not_fde; -static const u32 *cie_for_fde(const u32 *fde, void *table, int is_ehframe); -static signed fde_pointer_type(const u32 *cie); +static const u32 *cie_for_fde(const u32 *fde, void *table, + uint32_t table_len, int is_ehframe); +static signed fde_pointer_type(const u32 *cie, + void *table, uint32_t table_len); #endif /* STP_USE_DWARF_UNWINDER */ -- cgit From 1adb61a4e1313b178f2db7d5ce766a505c073a24 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Tue, 20 Oct 2009 16:55:04 +0200 Subject: Make sure cie and fde end point to sane values in while doing unwind_frame. * runtime/unwind.c (unwind_frame): Check end read from cie or fde doesn't go passed end of unwind table. --- runtime/unwind.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/runtime/unwind.c b/runtime/unwind.c index 0b4e6a9e..0e95ba08 100644 --- a/runtime/unwind.c +++ b/runtime/unwind.c @@ -677,6 +677,12 @@ static int unwind_frame(struct unwind_frame_info *frame, state.cieEnd = ptr; /* keep here temporarily */ ptr = (const u8 *)(cie + 2); end = (const u8 *)(cie + 1) + *cie; + + /* end should fall within unwind table. */ + if (((void *)end) < table + || ((void *)end) > ((void *)(table + table_len))) + goto err; + frame->call_frame = 1; if ((state.version = *ptr) != 1) { dbug_unwind(1, "CIE version number is %d. 1 is supported.\n", state.version); @@ -734,6 +740,11 @@ static int unwind_frame(struct unwind_frame_info *frame, state.cieEnd = end; end = (const u8 *)(fde + 1) + *fde; + /* end should fall within unwind table. */ + if (((void*)end) < table + || ((void *)end) > ((void *)(table + table_len))) + goto err; + /* skip augmentation */ if (((const char *)(cie + 2))[1] == 'z') { uleb128_t augSize = get_uleb128(&ptr, end); -- cgit From bc0b26aa958253192328bc4084ba367536fb4842 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Tue, 20 Oct 2009 17:08:57 +0200 Subject: Limit the number of call frame instructions we process in the unwinder. * runtime/unwind.c (processCFI): Fail if the number of instructions is larger than MAX_CFI (currently 512). --- runtime/unwind.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/runtime/unwind.c b/runtime/unwind.c index 0e95ba08..7607770e 100644 --- a/runtime/unwind.c +++ b/runtime/unwind.c @@ -278,6 +278,10 @@ static void set_rule(uleb128_t reg, enum item_location where, uleb128_t value, s } } +/* Limit the number of instructions we process. Arbitrary limit. + 512 should be enough for anybody... */ +#define MAX_CFI 512 + static int processCFI(const u8 *start, const u8 *end, unsigned long targetLoc, signed ptrType, struct unwind_state *state) { union { @@ -287,6 +291,9 @@ static int processCFI(const u8 *start, const u8 *end, unsigned long targetLoc, s } ptr; int result = 1; + if (end - start > MAX_CFI) + return 0; + dbug_unwind(1, "targetLoc=%lx state->loc=%lx\n", targetLoc, state->loc); if (start != state->cieStart) { state->loc = state->org; -- cgit From 8aa140d32cf9ddf7e5a58aa35daf8c590806d9e6 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Tue, 20 Oct 2009 11:23:55 -0400 Subject: RHBZ519314: define task_struct cast to operate without debuginfo * tapset/task.stp: Use @cast(...,"task_struct","kernelstate + return @cast(task, "task_struct", "kernel")->state } // Return the name of the given task function task_execname:string (task:long) { - return kernel_string(@cast(task, "task_struct", "kernel")->comm) + return kernel_string(@cast(task, "task_struct", "kernel")->comm) } // Return the process id of the given task function task_pid:long (task:long) { - return @cast(task, "task_struct", "kernel")->tgid + return @cast(task, "task_struct", "kernel")->tgid } @@ -95,7 +95,7 @@ function pid2execname:string (pid:long) { // Return the thread id of the given task function task_tid:long (task:long) { - return @cast(task, "task_struct", "kernel")->pid + return @cast(task, "task_struct", "kernel")->pid } @@ -181,11 +181,11 @@ function task_nice:long (task:long) %{ /* pure */ function task_cpu:long (task:long) { %( kernel_v >= "2.6.22" %? - ti = @cast(task, "task_struct", "kernel")->stack + ti = @cast(task, "task_struct", "kernel")->stack %: - ti = @cast(task, "task_struct", "kernel")->thread_info + ti = @cast(task, "task_struct", "kernel")->thread_info %) - return @cast(ti, "thread_info", "kernel")->cpu + return @cast(ti, "thread_info", "kernel")->cpu } // Return the number of open file handlers for the given task -- cgit From 96c57a86bb8d14b49b2e8b0ab8e9a044b2fadf42 Mon Sep 17 00:00:00 2001 From: Stan Cox Date: Tue, 20 Oct 2009 13:42:01 -0400 Subject: Added testsuite to test xulrunner sdt markers. xulrunner.exp: New testsuite, modelled after mysql.exp. mysql.exp (stap-mysql.sh): Use installed stap. postgres.exp (stap-mysql.sh): Use installed stap. tcl.exp (stap-mysql.sh): Use installed stap. --- testsuite/systemtap.base/mysql.exp | 2 +- testsuite/systemtap.base/postgres.exp | 2 +- testsuite/systemtap.base/tcl.exp | 2 +- testsuite/systemtap.base/xulrunner.exp | 133 +++++++++++++++++++++++++++++++++ 4 files changed, 136 insertions(+), 3 deletions(-) create mode 100644 testsuite/systemtap.base/xulrunner.exp diff --git a/testsuite/systemtap.base/mysql.exp b/testsuite/systemtap.base/mysql.exp index 44b30cf4..efeffbae 100644 --- a/testsuite/systemtap.base/mysql.exp +++ b/testsuite/systemtap.base/mysql.exp @@ -244,7 +244,7 @@ $mysqldir/bin/mysql_install_db --basedir=$mysqldir --datadir=$msdata (cd $mysqldir/mysql-test # wait until mysql is running MOD=stapsdt_\$(date +%j%k%M%N | sed 's/ //') -/usr/local/bin/stap -m \$MOD -c \"$mysqldir/libexec/mysqld --basedir=$mysqldir --datadir=$msdata --log-error=$msdata/mysql.log --pid-file=$msdata/mysql.pid --socket=$msdata/mysql.sock\" $testsuite/stap-mysql.stp $mysqldir/libexec/mysqld >$testsuite/stap-mysql-markers.log 2>&1 & +$env(SYSTEMTAP_PATH)/stap -m \$MOD -c \"$mysqldir/libexec/mysqld --basedir=$mysqldir --datadir=$msdata --log-error=$msdata/mysql.log --pid-file=$msdata/mysql.pid --socket=$msdata/mysql.sock\" $testsuite/stap-mysql.stp $mysqldir/libexec/mysqld >$testsuite/stap-mysql-markers.log 2>&1 & STAPPID=\$! for i in \$(seq 0 10) ; do diff --git a/testsuite/systemtap.base/postgres.exp b/testsuite/systemtap.base/postgres.exp index ceef9437..2d58a54f 100644 --- a/testsuite/systemtap.base/postgres.exp +++ b/testsuite/systemtap.base/postgres.exp @@ -69,7 +69,7 @@ function run_tests \{ $postgresdir/bin/initdb $pgdata which stap -stap -m \$(date +stapsdt_%j%k%M%N | sed 's/ //') -c \"$postgresdir/bin/postgres -D $pgdata\" $pgdata.stp >$pgdata-markers.log 2>&1 & +$env(SYSTEMTAP_PATH)/stap -m \$(date +stapsdt_%j%k%M%N | sed 's/ //') -c \"$postgresdir/bin/postgres -D $pgdata\" $pgdata.stp >$pgdata-markers.log 2>&1 & STAPPID=\$! # wait until postgres is running diff --git a/testsuite/systemtap.base/tcl.exp b/testsuite/systemtap.base/tcl.exp index 5e51609d..8056f5e5 100644 --- a/testsuite/systemtap.base/tcl.exp +++ b/testsuite/systemtap.base/tcl.exp @@ -87,7 +87,7 @@ puts $fp " function run_tests \{ (cd $tcldir/.. MOD=stapsdt_\$(date +%j%k%M%N | sed 's/ //') -stap -m \$MOD -c install/bin/tclsh$tclreleasemajor $testsuite/stap-tcl.stp $testsuite/tcl/install/lib//libtcl$tclreleasemajor.so << END >$testsuite/stap-tcl-markers.log 2>&1 +$env(SYSTEMTAP_PATH)/stap -m \$MOD -c install/bin/tclsh$tclreleasemajor $testsuite/stap-tcl.stp $testsuite/tcl/install/lib//libtcl$tclreleasemajor.so << END >$testsuite/stap-tcl-markers.log 2>&1 source src/tests/all.tcl quit END diff --git a/testsuite/systemtap.base/xulrunner.exp b/testsuite/systemtap.base/xulrunner.exp new file mode 100644 index 00000000..be2db0c7 --- /dev/null +++ b/testsuite/systemtap.base/xulrunner.exp @@ -0,0 +1,133 @@ +set test "xulrunner" + +# Test sdt support in xulrunner. + +global env + +if {! [info exists env(SYSTEMTAP_TEST_SDT)]} { + unsupported "xulrunner (\"SYSTEMTAP_TEST_SDT\" not in env)" + return +} + +########## Create /tmp/stap-xul.stp ########## +set xulrelease "1.9.1.3" +set xuldir "[pwd]/xul/" +set testsuite "[pwd]" + +set fp [open "$testsuite/stap-xul.stp" "w"] +puts $fp " +global funcinfo +global objinfo + +probe process(@1).mark(\"function__info\") +{ + file = user_string (\$arg1) + func = user_string (\$arg3) + funcinfo\[file,func\] <<< 1 +} + +probe process(@1).mark(\"object__create\") +{ + file = user_string (\$arg1) + class = user_string (\$arg2) + objinfo\[file,class\] <<< 1 +} + +probe end +{ + foreach (\[i,j\] in funcinfo+) + { + printf (\"probes: %-20s %-25s %d\\n\", substr(i,strlen(i)-20,strlen(i)), j, @count(funcinfo\[i,j\])) + } + foreach (\[i,j\] in objinfo+) + { + printf (\"probes: %-20s %-25s %d\\n\", substr(i,strlen(i)-20,strlen(i)), j, @count(funcinfo\[i,j\])) + } +} +" +close $fp + +########## Begin /tmp/stap-xul.sh ########## +set fp [open "$testsuite/stap-xul.sh" "w"] +puts $fp " +##### begin run_tests ##### +function run_tests \{ +cd $testsuite/xul/bld/js/src +pwd +for i in call trace-test math-trace-tests ; do +$env(SYSTEMTAP_PATH)/stap -c \"./js $xuldir/src/js/src/\$i.js\" $testsuite/stap-xul.stp ./js +done | tee $testsuite/stap-xul-markers.log +PROBES=\$(grep 'probes: ' $testsuite/stap-xul-markers.log | wc -l) +TESTS=\$(grep '-FAIL' $testsuite/stap-xul-markers.log) +echo PROBES=\$PROBES TESTS=\$TESTS + +if \[ \$PROBES -gt 400 \] ; then + echo PASS: xulrunner javascript markers \$1 +else + echo FAIL: xulrunner javascript markers \$1 +fi + +if \[ -z \$TESTS \] ; then + echo PASS: xulrunner javascript testsuite \$1 +else + echo FAIL: xulrunner javascript testsuite \$1 +fi + +\} +##### end run_tests ##### + +if \[ ! -r xulrunner-$xulrelease-source.tar \] ; then +wget ftp://ftp.mozilla.org/pub/mozilla.org/xul/releases/$xulrelease/source/xulrunner-$xulrelease-source.tar.bz2 +bunzip2 xulrunner-$xulrelease-source.tar.bz2 +fi + +if \[ ! -d xul/src \] ; then +tar -x -f xulrunner-$xulrelease-source.tar +mkdir xul +xulrelease=$xulrelease +mv mozilla-\${xulrelease%.\[0-9\]} xul/src +fi + +if \[ ! -f xul/bld/js/src/js \] ; then +mkdir xul/bld +cd xul/bld +if rpm -q java-1.6.0-openjdk ; then : +else + echo FAIL: Need java-1.6.0-openjdk-devel + exit +fi +JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64 \ +CXXFLAGS='-g -I$env(SYSTEMTAP_INCLUDES)' \ +CFLAGS='-g -I$env(SYSTEMTAP_INCLUDES)' \ +PATH=$env(SYSTEMTAP_PATH)/:\$PATH \ +../src/configure --prefix=$xuldir --enable-dtrace --enable-application=xulrunner +J=\$(getconf _NPROCESSORS_CONF) +make -j \$J +fi + +run_tests uprobe +" +########## End /tmp/stap-xul.sh ########## +close $fp + +########## /tmp/stap-xul.sh does most of the work ########## +verbose -log Running xul testsuite +spawn sh stap-xul.sh 2>&1 +expect { + -timeout 10000 + -re {FAIL: [a-z_ ]+} { regexp " .*$" $expect_out(0,string) s; + fail "$s"; exp_continue } + -re {PASS: [a-z_ ]+} { regexp " .*$" $expect_out(0,string) s; + pass "$s"; exp_continue } + -re {UNSUPPORTED: [a-zA-Z_/: ]+} { regexp " .*$" $expect_out(0,string) s; + verbose -log "$s" + unsupported "$s"; exp_continue } + timeout { fail "$test (timeout)" } + eof { } +} + +if { $verbose == 0 } { +catch {exec rm -rf $testsuite/stap-xul.stp xulrunner-$xulrelease-source.tar \ + $testsuite/stap-xul-markers.log $testsuite/stap-xul.sh } +catch {exec rm -rf xul} +} -- cgit From 8f805d3329e985f0ea0851fa1522ab447765af27 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Fri, 9 Oct 2009 17:32:26 -0700 Subject: PR10750: Enforce a reasonable limit on # of varargs If we leave the number of args unbounded, then an excessively-sized printf could cause a kernel stack overflow. I've arbitrarily chosen 32 as our new maximum. * translate.cxx (c_unparser::visit_print_format): Throw if >32 args. * testsuite/transko/varargs.stp: Assert that 33 args aren't allowed. * testsuite/transok/varargs.stp: Assert that 32 args are ok. --- testsuite/transko/varargs.stp | 10 ++++++++++ testsuite/transok/varargs.stp | 9 +++++++++ translate.cxx | 5 +++++ 3 files changed, 24 insertions(+) create mode 100755 testsuite/transko/varargs.stp create mode 100755 testsuite/transok/varargs.stp diff --git a/testsuite/transko/varargs.stp b/testsuite/transko/varargs.stp new file mode 100755 index 00000000..f38309ad --- /dev/null +++ b/testsuite/transko/varargs.stp @@ -0,0 +1,10 @@ +#! stap -p3 + +probe begin { + // PR10750 enforces at most 32 print args + println(1, 2, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, + 33) +} diff --git a/testsuite/transok/varargs.stp b/testsuite/transok/varargs.stp new file mode 100755 index 00000000..216166f6 --- /dev/null +++ b/testsuite/transok/varargs.stp @@ -0,0 +1,9 @@ +#! stap -p3 + +probe begin { + // PR10750 enforces at most 32 print args + println(1, 2, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32) +} diff --git a/translate.cxx b/translate.cxx index 9d456bca..1109449d 100644 --- a/translate.cxx +++ b/translate.cxx @@ -4178,6 +4178,11 @@ c_unparser::visit_print_format (print_format* e) { stmt_expr block(*this); + // PR10750: Enforce a reasonable limit on # of varargs + // 32 varargs leads to max 256 bytes on the stack + if (e->args.size() > 32) + throw semantic_error("too many arguments to print", e->tok); + // Compute actual arguments vector tmp; -- cgit From 730c3efceb4fcbb234a0fcdb0c0d299b8670fec6 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Wed, 14 Oct 2009 13:30:44 -0700 Subject: PR10750 cont'd: Build with -Wframe-larger-than=512 * buildrun.cxx (compile_pass): Add the warning to limit the frame size even lower than the Kbuild default (only works for gcc 4.4+). --- buildrun.cxx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/buildrun.cxx b/buildrun.cxx index c5c44f13..bbf678ac 100644 --- a/buildrun.cxx +++ b/buildrun.cxx @@ -201,6 +201,9 @@ compile_pass (systemtap_session& s) // o << "CFLAGS += -fno-unit-at-a-time" << endl; + // 512 bytes should be enough for anybody + o << "EXTRA_CFLAGS += $(call cc-option,-Wframe-larger-than=512)" << endl; + // Assumes linux 2.6 kbuild o << "EXTRA_CFLAGS += -Wno-unused -Werror" << endl; #if CHECK_POINTER_ARITH_PR5947 -- cgit From ebaa961812e7b29eee554025a6253d676cea6ce0 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Fri, 16 Oct 2009 18:32:12 -0700 Subject: Ensure that DWARF keeps loc2c to a reasonable stack depth * dwflpp.cxx (dwflpp::express_as_string): Limit stack depth to 32. --- dwflpp.cxx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/dwflpp.cxx b/dwflpp.cxx index b1d9a32b..0c45eb7d 100644 --- a/dwflpp.cxx +++ b/dwflpp.cxx @@ -2182,8 +2182,15 @@ dwflpp::express_as_string (string prelude, fprintf(memstream, "{\n"); fprintf(memstream, "%s", prelude.c_str()); + unsigned int stack_depth; bool deref = c_emit_location (memstream, head, 1, &stack_depth); + + // Ensure that DWARF keeps loc2c to a "reasonable" stack size + // 32 intptr_t leads to max 256 bytes on the stack + if (stack_depth > 32) + throw semantic_error("oversized DWARF stack"); + fprintf(memstream, "%s", postlude.c_str()); fprintf(memstream, " goto out;\n"); -- cgit From 1d2cd5ff6a8ff79b09e342a5907b29b4c340a9a5 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Wed, 21 Oct 2009 09:07:14 -0700 Subject: Relax the -Wframe-larger-than check This is just a workaround for PR10821, and should be reverted when that bug is fixed. --- buildrun.cxx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/buildrun.cxx b/buildrun.cxx index bbf678ac..b6063e36 100644 --- a/buildrun.cxx +++ b/buildrun.cxx @@ -202,7 +202,9 @@ compile_pass (systemtap_session& s) // o << "CFLAGS += -fno-unit-at-a-time" << endl; // 512 bytes should be enough for anybody - o << "EXTRA_CFLAGS += $(call cc-option,-Wframe-larger-than=512)" << endl; + // XXX but it's not enough for unwind_frame -- PR10821 + // XXX temporarily bumping to 600 bytes + o << "EXTRA_CFLAGS += $(call cc-option,-Wframe-larger-than=600)" << endl; // Assumes linux 2.6 kbuild o << "EXTRA_CFLAGS += -Wno-unused -Werror" << endl; -- cgit From 29bb0bbc8603edb20de09e79fd8addb4a174947d Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Wed, 21 Oct 2009 16:15:58 -0700 Subject: Refactor probe locking into shared functions For scripts with thousands of probes, we save a fair amount of code-gen time in pass-4 by having the common locking code extracted into shared functions. * runtime/probe_lock.h (stp_lock_probe, stp_unlock_probe): New. * translate.cxx (c_unparser::emit_lock_decls): New, emits a static const array of locks needed for each probe. (c_unparser::emit_locks): Just call stp_lock_probe. (c_unparser::emit_unlocks): Just call stp_unlock_probe. --- runtime/probe_lock.h | 68 ++++++++++++++++++++++++++ translate.cxx | 133 +++++++++++++++++---------------------------------- 2 files changed, 112 insertions(+), 89 deletions(-) create mode 100644 runtime/probe_lock.h diff --git a/runtime/probe_lock.h b/runtime/probe_lock.h new file mode 100644 index 00000000..1915d4ff --- /dev/null +++ b/runtime/probe_lock.h @@ -0,0 +1,68 @@ +/* probe locking header file + * Copyright (C) 2009 Red Hat Inc. + * + * This file is part of systemtap, and is free software. You can + * redistribute it and/or modify it under the terms of the GNU General + * Public License (GPL); either version 2, or (at your option) any + * later version. + */ + +#ifndef _PROBE_LOCK_H +#define _PROBE_LOCK_H + +#include + +// XXX: old 2.6 kernel hack +#ifndef read_trylock +#define read_trylock(x) ({ read_lock(x); 1; }) +#endif + +struct stp_probe_lock { + #ifdef STP_TIMING + atomic_t *skipped; + #endif + rwlock_t *lock; + unsigned write_p; +}; + + +static void +stp_unlock_probe(const struct stp_probe_lock *locks, unsigned num_locks) +{ + unsigned i; + for (i = num_locks; i-- > 0;) { + if (locks[i].write_p) + write_unlock(locks[i].lock); + else + read_unlock(locks[i].lock); + } +} + + +static unsigned +stp_lock_probe(const struct stp_probe_lock *locks, unsigned num_locks) +{ + unsigned i, numtrylock = 0; + for (i = 0; i < num_locks; ++i) { + if (locks[i].write_p) + while (!write_trylock(locks[i].lock) && + (++numtrylock < MAXTRYLOCK)) + ndelay (TRYLOCKDELAY); + else + while (!read_trylock(locks[i].lock) && + (++numtrylock < MAXTRYLOCK)) + ndelay (TRYLOCKDELAY); + if (unlikely(numtrylock >= MAXTRYLOCK)) { + atomic_inc(&skipped_count); + #ifdef STP_TIMING + atomic_inc(locks[i].skipped); + #endif + stp_unlock_probe(locks, i); + return 0; + } + } + return 1; +} + + +#endif /* _PROBE_LOCK_H */ diff --git a/translate.cxx b/translate.cxx index 1109449d..ed415abb 100644 --- a/translate.cxx +++ b/translate.cxx @@ -73,6 +73,7 @@ struct c_unparser: public unparser, public visitor void emit_module_init (); void emit_module_exit (); void emit_function (functiondecl* v); + void emit_lock_decls (const varuse_collecting_visitor& v); void emit_locks (const varuse_collecting_visitor& v); void emit_probe (derived_probe* v); void emit_unlocks (const varuse_collecting_visitor& v); @@ -1622,6 +1623,14 @@ c_unparser::emit_probe (derived_probe* v) probe_contents[oss.str()] = v->name; + // emit static read/write lock decls for global variables + varuse_collecting_visitor vut(*session); + if (v->needs_global_locks ()) + { + v->body->visit (& vut); + emit_lock_decls (vut); + } + // initialize frame pointer o->newline() << "struct " << v->name << "_locals * __restrict__ l ="; o->newline(1) << "& c->probe_locals." << v->name << ";"; @@ -1638,12 +1647,8 @@ c_unparser::emit_probe (derived_probe* v) v->emit_probe_local_init(o); // emit all read/write locks for global variables - varuse_collecting_visitor vut(*session); if (v->needs_global_locks ()) - { - v->body->visit (& vut); emit_locks (vut); - } // initialize locals for (unsigned j=0; jlocals.size(); j++) @@ -1694,13 +1699,16 @@ c_unparser::emit_probe (derived_probe* v) void -c_unparser::emit_locks(const varuse_collecting_visitor& vut) +c_unparser::emit_lock_decls(const varuse_collecting_visitor& vut) { - o->newline() << "{"; - o->newline(1) << "unsigned numtrylock = 0;"; - o->newline() << "(void) numtrylock;"; + unsigned numvars = 0; + + if (session->verbose > 1) + clog << current_probe->name << " locks "; + + o->newline() << "static const struct stp_probe_lock locks[] = {"; + o->indent(1); - string last_locked_var; for (unsigned i = 0; i < session->globals.size(); i++) { vardecl* v = session->globals[i]; @@ -1732,94 +1740,44 @@ c_unparser::emit_locks(const varuse_collecting_visitor& vut) continue; } - string lockcall = - string (write_p ? "write" : "read") + - "_trylock (& global.s_" + v->name + "_lock)"; - - o->newline() << "while (! " << lockcall - << "&& (++numtrylock < MAXTRYLOCK))"; - o->newline(1) << "ndelay (TRYLOCKDELAY);"; - o->newline(-1) << "if (unlikely (numtrylock >= MAXTRYLOCK)) {"; - o->newline(1) << "atomic_inc (& skipped_count);"; + o->newline() << "{"; + o->newline(1) << ".lock = &global.s_" + v->name + "_lock,"; + o->newline() << ".write_p = " << (write_p ? 1 : 0) << ","; o->newline() << "#ifdef STP_TIMING"; - o->newline() << "atomic_inc (& global.s_" << c_varname (v->name) << "_lock_skip_count);"; + o->newline() << ".skipped = &global.s_" << c_varname (v->name) << "_lock_skip_count,"; o->newline() << "#endif"; - // The following works even if i==0. Note that using - // globals[i-1]->name is wrong since that global may not have - // been lockworthy by this probe. - o->newline() << "goto unlock_" << last_locked_var << ";"; - o->newline(-1) << "}"; + o->newline(-1) << "},"; - last_locked_var = v->name; + numvars ++; + if (session->verbose > 1) + clog << v->name << "[" << (read_p ? "r" : "") + << (write_p ? "w" : "") << "] "; } - o->newline() << "if (0) goto unlock_;"; + o->newline(-1) << "};"; - o->newline(-1) << "}"; + if (session->verbose > 1) + { + if (!numvars) + clog << "nothing"; + clog << endl; + } } void -c_unparser::emit_unlocks(const varuse_collecting_visitor& vut) +c_unparser::emit_locks(const varuse_collecting_visitor&) { - unsigned numvars = 0; - - if (session->verbose>1) - clog << current_probe->name << " locks "; - - for (int i = session->globals.size()-1; i>=0; i--) // in reverse order! - { - vardecl* v = session->globals[i]; - bool read_p = vut.read.find(v) != vut.read.end(); - bool write_p = vut.written.find(v) != vut.written.end(); - if (!read_p && !write_p) continue; - - // Duplicate lock flipping logic from above - if (v->type == pe_stats) - { - if (write_p && !read_p) { read_p = true; write_p = false; } - else if (read_p && !write_p) { read_p = false; write_p = true; } - } - - // Duplicate "read-mostly" global variable logic from above. - if (read_p && !write_p) - { - if (vcv_needs_global_locks.written.find(v) - == vcv_needs_global_locks.written.end()) - continue; - } - - numvars ++; - o->newline(-1) << "unlock_" << v->name << ":"; - o->indent(1); - - if (session->verbose>1) - clog << v->name << "[" << (read_p ? "r" : "") - << (write_p ? "w" : "") << "] "; - - if (write_p) // emit write lock - o->newline() << "write_unlock (& global.s_" << v->name << "_lock);"; - else // (read_p && !write_p) : emit read lock - o->newline() << "read_unlock (& global.s_" << v->name << "_lock);"; - - // fall through to next variable; thus the reverse ordering - } + o->newline() << "if (!stp_lock_probe(locks, ARRAY_SIZE(locks)))"; + o->newline(1) << "return;"; + o->indent(-1); +} - // emit plain "unlock" label, used if the very first lock failed. - o->newline(-1) << "unlock_: ;"; - o->indent(1); - if (numvars) // is there a chance that any lock attempt failed? - { - // Formerly, we checked skipped_count > MAXSKIPPED here, and set - // SYSTEMTAP_SESSION_ERROR if so. But now, this check is shared - // via common_probe_entryfn_epilogue(). - - if (session->verbose>1) - clog << endl; - } - else if (session->verbose>1) - clog << "nothing" << endl; +void +c_unparser::emit_unlocks(const varuse_collecting_visitor& vut) +{ + o->newline() << "stp_unlock_probe(locks, ARRAY_SIZE(locks));"; } @@ -5233,13 +5191,10 @@ translate_pass (systemtap_session& s) s.op->newline() << "#include \"loc2c-runtime.h\" "; s.op->newline() << "#include \"access_process_vm.h\" "; - // XXX: old 2.6 kernel hack - s.op->newline() << "#ifndef read_trylock"; - s.op->newline() << "#define read_trylock(x) ({ read_lock(x); 1; })"; - s.op->newline() << "#endif"; - s.up->emit_common_header (); // context etc. + s.op->newline() << "#include \"probe_lock.h\" "; + for (unsigned i=0; inewline() << s.embeds[i]->code << "\n"; -- cgit From 991bd3ba708b467a6b1de0788e0e1e558a087b0d Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Wed, 21 Oct 2009 19:27:17 -0700 Subject: Correct the safety-net escape WRT locking Within a probe body, the "out" label starts the normal exit path, including unlocking whatever globals are used in that probe. Since the unprivileged safety-net checks are before the locks are ever grabbed, we should bypass the unlock on the way out. * elaborate.cxx (derived_probe::emit_process_owner_assertion): Use "return" instead of "goto out". --- elaborate.cxx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/elaborate.cxx b/elaborate.cxx index c3f29603..626db280 100644 --- a/elaborate.cxx +++ b/elaborate.cxx @@ -157,7 +157,9 @@ derived_probe::emit_process_owner_assertion (translator_output* o) o->newline() << " \"Internal Error: Process %d does not belong to user %d in probe %s in --unprivileged mode\","; o->newline() << " current->tgid, _stp_uid, c->probe_point);"; o->newline() << "c->last_error = c->error_buffer;"; - o->newline() << "goto out;"; + // NB: since this check occurs before probe locking, its exit should + // not be a "goto out", which would attempt unlocking. + o->newline() << "return;"; o->newline(-1) << "}"; o->newline(-1) << "#endif"; } -- cgit From 712d12ca4c74b824e7afbb273c0975eb0a30847c Mon Sep 17 00:00:00 2001 From: David Smith Date: Thu, 22 Oct 2009 09:03:44 -0500 Subject: PR 10822 fixed by waiting for the procfs file. * testsuite/systemtap.base/onoffprobe.exp: Wait for up to 10 seconds for the procfs file to be created. --- testsuite/systemtap.base/onoffprobe.exp | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/testsuite/systemtap.base/onoffprobe.exp b/testsuite/systemtap.base/onoffprobe.exp index 1b39dab5..c6d83d5d 100644 --- a/testsuite/systemtap.base/onoffprobe.exp +++ b/testsuite/systemtap.base/onoffprobe.exp @@ -10,9 +10,27 @@ proc advance {} { global expect_out global ok global modname + set procfs_file "/proc/systemtap/$modname/switch" + pass "$test $expect_out(1,string)" + + # If this is the first time, wait until the procfs file exists + # (for up to 10 seconds). + if {$ok == 0} { + set i 0 + while {![file exists $procfs_file]} { + sleep 1 + incr i + if {$i >= 10} { break } + } + # If the procfs file still doesn't exist, fail. + if {![file exists $procfs_file]} { + fail "$test (missing procfs file)" + } + } + incr ok - exec echo $ok > /proc/systemtap/$modname/switch + if {[file exists $procfs_file]} { exec echo $ok > $procfs_file } exec echo dummy > /dev/null exp_continue } -- cgit From 618a8a634b37da88b67a49beec7282634bff3efe Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Thu, 22 Oct 2009 14:37:05 -0700 Subject: Enable Kbuild-like quiet builds This enables much cleaner build output from automake. To re-enable the verbose commands, pass --disable-silent-rules to configure, or use V=1 at make time. * configure.ac: Enable AM_SILENT_RULES by default. --- Makefile.in | 506 ++++++++++++++++++----------- aclocal.m4 | 27 ++ configure | 18 + configure.ac | 2 + doc/Makefile.in | 7 + doc/SystemTap_Tapset_Reference/Makefile.in | 25 +- grapher/Makefile.in | 78 +++-- 7 files changed, 438 insertions(+), 225 deletions(-) diff --git a/Makefile.in b/Makefile.in index f1d6a90b..575ef310 100644 --- a/Makefile.in +++ b/Makefile.in @@ -208,15 +208,36 @@ DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_$(V)) +am__v_CXX_ = $(am__v_CXX_$(AM_DEFAULT_VERBOSITY)) +am__v_CXX_0 = @echo " CXX " $@; CXXLD = $(CXX) CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -o $@ +AM_V_CXXLD = $(am__v_CXXLD_$(V)) +am__v_CXXLD_ = $(am__v_CXXLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CXXLD_0 = @echo " CXXLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(loc2c_test_SOURCES) $(stap_SOURCES) \ $(stap_client_connect_SOURCES) $(stap_server_connect_SOURCES) \ $(stap_sign_module_SOURCES) $(stapio_SOURCES) \ @@ -243,6 +264,7 @@ CTAGS = ctags pkglibexecdir = ${libexecdir}/${PACKAGE} ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -640,25 +662,25 @@ clean-pkglibexecPROGRAMS: -test -z "$(pkglibexec_PROGRAMS)" || rm -f $(pkglibexec_PROGRAMS) loc2c-test$(EXEEXT): $(loc2c_test_OBJECTS) $(loc2c_test_DEPENDENCIES) @rm -f loc2c-test$(EXEEXT) - $(loc2c_test_LINK) $(loc2c_test_OBJECTS) $(loc2c_test_LDADD) $(LIBS) + $(AM_V_CCLD)$(loc2c_test_LINK) $(loc2c_test_OBJECTS) $(loc2c_test_LDADD) $(LIBS) stap$(EXEEXT): $(stap_OBJECTS) $(stap_DEPENDENCIES) @rm -f stap$(EXEEXT) - $(stap_LINK) $(stap_OBJECTS) $(stap_LDADD) $(LIBS) + $(AM_V_CXXLD)$(stap_LINK) $(stap_OBJECTS) $(stap_LDADD) $(LIBS) stap-client-connect$(EXEEXT): $(stap_client_connect_OBJECTS) $(stap_client_connect_DEPENDENCIES) @rm -f stap-client-connect$(EXEEXT) - $(stap_client_connect_LINK) $(stap_client_connect_OBJECTS) $(stap_client_connect_LDADD) $(LIBS) + $(AM_V_CCLD)$(stap_client_connect_LINK) $(stap_client_connect_OBJECTS) $(stap_client_connect_LDADD) $(LIBS) stap-server-connect$(EXEEXT): $(stap_server_connect_OBJECTS) $(stap_server_connect_DEPENDENCIES) @rm -f stap-server-connect$(EXEEXT) - $(stap_server_connect_LINK) $(stap_server_connect_OBJECTS) $(stap_server_connect_LDADD) $(LIBS) + $(AM_V_CCLD)$(stap_server_connect_LINK) $(stap_server_connect_OBJECTS) $(stap_server_connect_LDADD) $(LIBS) stap-sign-module$(EXEEXT): $(stap_sign_module_OBJECTS) $(stap_sign_module_DEPENDENCIES) @rm -f stap-sign-module$(EXEEXT) - $(stap_sign_module_LINK) $(stap_sign_module_OBJECTS) $(stap_sign_module_LDADD) $(LIBS) + $(AM_V_CXXLD)$(stap_sign_module_LINK) $(stap_sign_module_OBJECTS) $(stap_sign_module_LDADD) $(LIBS) stapio$(EXEEXT): $(stapio_OBJECTS) $(stapio_DEPENDENCIES) @rm -f stapio$(EXEEXT) - $(stapio_LINK) $(stapio_OBJECTS) $(stapio_LDADD) $(LIBS) + $(AM_V_CCLD)$(stapio_LINK) $(stapio_OBJECTS) $(stapio_LDADD) $(LIBS) staprun$(EXEEXT): $(staprun_OBJECTS) $(staprun_DEPENDENCIES) @rm -f staprun$(EXEEXT) - $(staprun_LINK) $(staprun_OBJECTS) $(staprun_LDADD) $(LIBS) + $(AM_V_CCLD)$(staprun_LINK) $(staprun_OBJECTS) $(staprun_LDADD) $(LIBS) install-binSCRIPTS: $(bin_SCRIPTS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @@ -747,659 +769,753 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/staprun-staprun_funcs.Po@am__quote@ .c.o: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` loc2c_test-loc2c-test.o: loc2c-test.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(loc2c_test_CPPFLAGS) $(CPPFLAGS) $(loc2c_test_CFLAGS) $(CFLAGS) -MT loc2c_test-loc2c-test.o -MD -MP -MF $(DEPDIR)/loc2c_test-loc2c-test.Tpo -c -o loc2c_test-loc2c-test.o `test -f 'loc2c-test.c' || echo '$(srcdir)/'`loc2c-test.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/loc2c_test-loc2c-test.Tpo $(DEPDIR)/loc2c_test-loc2c-test.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(loc2c_test_CPPFLAGS) $(CPPFLAGS) $(loc2c_test_CFLAGS) $(CFLAGS) -MT loc2c_test-loc2c-test.o -MD -MP -MF $(DEPDIR)/loc2c_test-loc2c-test.Tpo -c -o loc2c_test-loc2c-test.o `test -f 'loc2c-test.c' || echo '$(srcdir)/'`loc2c-test.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/loc2c_test-loc2c-test.Tpo $(DEPDIR)/loc2c_test-loc2c-test.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='loc2c-test.c' object='loc2c_test-loc2c-test.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(loc2c_test_CPPFLAGS) $(CPPFLAGS) $(loc2c_test_CFLAGS) $(CFLAGS) -c -o loc2c_test-loc2c-test.o `test -f 'loc2c-test.c' || echo '$(srcdir)/'`loc2c-test.c loc2c_test-loc2c-test.obj: loc2c-test.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(loc2c_test_CPPFLAGS) $(CPPFLAGS) $(loc2c_test_CFLAGS) $(CFLAGS) -MT loc2c_test-loc2c-test.obj -MD -MP -MF $(DEPDIR)/loc2c_test-loc2c-test.Tpo -c -o loc2c_test-loc2c-test.obj `if test -f 'loc2c-test.c'; then $(CYGPATH_W) 'loc2c-test.c'; else $(CYGPATH_W) '$(srcdir)/loc2c-test.c'; fi` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/loc2c_test-loc2c-test.Tpo $(DEPDIR)/loc2c_test-loc2c-test.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(loc2c_test_CPPFLAGS) $(CPPFLAGS) $(loc2c_test_CFLAGS) $(CFLAGS) -MT loc2c_test-loc2c-test.obj -MD -MP -MF $(DEPDIR)/loc2c_test-loc2c-test.Tpo -c -o loc2c_test-loc2c-test.obj `if test -f 'loc2c-test.c'; then $(CYGPATH_W) 'loc2c-test.c'; else $(CYGPATH_W) '$(srcdir)/loc2c-test.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/loc2c_test-loc2c-test.Tpo $(DEPDIR)/loc2c_test-loc2c-test.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='loc2c-test.c' object='loc2c_test-loc2c-test.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(loc2c_test_CPPFLAGS) $(CPPFLAGS) $(loc2c_test_CFLAGS) $(CFLAGS) -c -o loc2c_test-loc2c-test.obj `if test -f 'loc2c-test.c'; then $(CYGPATH_W) 'loc2c-test.c'; else $(CYGPATH_W) '$(srcdir)/loc2c-test.c'; fi` loc2c_test-loc2c.o: loc2c.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(loc2c_test_CPPFLAGS) $(CPPFLAGS) $(loc2c_test_CFLAGS) $(CFLAGS) -MT loc2c_test-loc2c.o -MD -MP -MF $(DEPDIR)/loc2c_test-loc2c.Tpo -c -o loc2c_test-loc2c.o `test -f 'loc2c.c' || echo '$(srcdir)/'`loc2c.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/loc2c_test-loc2c.Tpo $(DEPDIR)/loc2c_test-loc2c.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(loc2c_test_CPPFLAGS) $(CPPFLAGS) $(loc2c_test_CFLAGS) $(CFLAGS) -MT loc2c_test-loc2c.o -MD -MP -MF $(DEPDIR)/loc2c_test-loc2c.Tpo -c -o loc2c_test-loc2c.o `test -f 'loc2c.c' || echo '$(srcdir)/'`loc2c.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/loc2c_test-loc2c.Tpo $(DEPDIR)/loc2c_test-loc2c.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='loc2c.c' object='loc2c_test-loc2c.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(loc2c_test_CPPFLAGS) $(CPPFLAGS) $(loc2c_test_CFLAGS) $(CFLAGS) -c -o loc2c_test-loc2c.o `test -f 'loc2c.c' || echo '$(srcdir)/'`loc2c.c loc2c_test-loc2c.obj: loc2c.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(loc2c_test_CPPFLAGS) $(CPPFLAGS) $(loc2c_test_CFLAGS) $(CFLAGS) -MT loc2c_test-loc2c.obj -MD -MP -MF $(DEPDIR)/loc2c_test-loc2c.Tpo -c -o loc2c_test-loc2c.obj `if test -f 'loc2c.c'; then $(CYGPATH_W) 'loc2c.c'; else $(CYGPATH_W) '$(srcdir)/loc2c.c'; fi` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/loc2c_test-loc2c.Tpo $(DEPDIR)/loc2c_test-loc2c.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(loc2c_test_CPPFLAGS) $(CPPFLAGS) $(loc2c_test_CFLAGS) $(CFLAGS) -MT loc2c_test-loc2c.obj -MD -MP -MF $(DEPDIR)/loc2c_test-loc2c.Tpo -c -o loc2c_test-loc2c.obj `if test -f 'loc2c.c'; then $(CYGPATH_W) 'loc2c.c'; else $(CYGPATH_W) '$(srcdir)/loc2c.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/loc2c_test-loc2c.Tpo $(DEPDIR)/loc2c_test-loc2c.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='loc2c.c' object='loc2c_test-loc2c.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(loc2c_test_CPPFLAGS) $(CPPFLAGS) $(loc2c_test_CFLAGS) $(CFLAGS) -c -o loc2c_test-loc2c.obj `if test -f 'loc2c.c'; then $(CYGPATH_W) 'loc2c.c'; else $(CYGPATH_W) '$(srcdir)/loc2c.c'; fi` stap-loc2c.o: loc2c.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CFLAGS) $(CFLAGS) -MT stap-loc2c.o -MD -MP -MF $(DEPDIR)/stap-loc2c.Tpo -c -o stap-loc2c.o `test -f 'loc2c.c' || echo '$(srcdir)/'`loc2c.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/stap-loc2c.Tpo $(DEPDIR)/stap-loc2c.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CFLAGS) $(CFLAGS) -MT stap-loc2c.o -MD -MP -MF $(DEPDIR)/stap-loc2c.Tpo -c -o stap-loc2c.o `test -f 'loc2c.c' || echo '$(srcdir)/'`loc2c.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-loc2c.Tpo $(DEPDIR)/stap-loc2c.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='loc2c.c' object='stap-loc2c.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CFLAGS) $(CFLAGS) -c -o stap-loc2c.o `test -f 'loc2c.c' || echo '$(srcdir)/'`loc2c.c stap-loc2c.obj: loc2c.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CFLAGS) $(CFLAGS) -MT stap-loc2c.obj -MD -MP -MF $(DEPDIR)/stap-loc2c.Tpo -c -o stap-loc2c.obj `if test -f 'loc2c.c'; then $(CYGPATH_W) 'loc2c.c'; else $(CYGPATH_W) '$(srcdir)/loc2c.c'; fi` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/stap-loc2c.Tpo $(DEPDIR)/stap-loc2c.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CFLAGS) $(CFLAGS) -MT stap-loc2c.obj -MD -MP -MF $(DEPDIR)/stap-loc2c.Tpo -c -o stap-loc2c.obj `if test -f 'loc2c.c'; then $(CYGPATH_W) 'loc2c.c'; else $(CYGPATH_W) '$(srcdir)/loc2c.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-loc2c.Tpo $(DEPDIR)/stap-loc2c.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='loc2c.c' object='stap-loc2c.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CFLAGS) $(CFLAGS) -c -o stap-loc2c.obj `if test -f 'loc2c.c'; then $(CYGPATH_W) 'loc2c.c'; else $(CYGPATH_W) '$(srcdir)/loc2c.c'; fi` stap-mdfour.o: mdfour.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CFLAGS) $(CFLAGS) -MT stap-mdfour.o -MD -MP -MF $(DEPDIR)/stap-mdfour.Tpo -c -o stap-mdfour.o `test -f 'mdfour.c' || echo '$(srcdir)/'`mdfour.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/stap-mdfour.Tpo $(DEPDIR)/stap-mdfour.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CFLAGS) $(CFLAGS) -MT stap-mdfour.o -MD -MP -MF $(DEPDIR)/stap-mdfour.Tpo -c -o stap-mdfour.o `test -f 'mdfour.c' || echo '$(srcdir)/'`mdfour.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-mdfour.Tpo $(DEPDIR)/stap-mdfour.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mdfour.c' object='stap-mdfour.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CFLAGS) $(CFLAGS) -c -o stap-mdfour.o `test -f 'mdfour.c' || echo '$(srcdir)/'`mdfour.c stap-mdfour.obj: mdfour.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CFLAGS) $(CFLAGS) -MT stap-mdfour.obj -MD -MP -MF $(DEPDIR)/stap-mdfour.Tpo -c -o stap-mdfour.obj `if test -f 'mdfour.c'; then $(CYGPATH_W) 'mdfour.c'; else $(CYGPATH_W) '$(srcdir)/mdfour.c'; fi` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/stap-mdfour.Tpo $(DEPDIR)/stap-mdfour.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CFLAGS) $(CFLAGS) -MT stap-mdfour.obj -MD -MP -MF $(DEPDIR)/stap-mdfour.Tpo -c -o stap-mdfour.obj `if test -f 'mdfour.c'; then $(CYGPATH_W) 'mdfour.c'; else $(CYGPATH_W) '$(srcdir)/mdfour.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-mdfour.Tpo $(DEPDIR)/stap-mdfour.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mdfour.c' object='stap-mdfour.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CFLAGS) $(CFLAGS) -c -o stap-mdfour.obj `if test -f 'mdfour.c'; then $(CYGPATH_W) 'mdfour.c'; else $(CYGPATH_W) '$(srcdir)/mdfour.c'; fi` stap_client_connect-stap-client-connect.o: stap-client-connect.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stap_client_connect_CFLAGS) $(CFLAGS) -MT stap_client_connect-stap-client-connect.o -MD -MP -MF $(DEPDIR)/stap_client_connect-stap-client-connect.Tpo -c -o stap_client_connect-stap-client-connect.o `test -f 'stap-client-connect.c' || echo '$(srcdir)/'`stap-client-connect.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/stap_client_connect-stap-client-connect.Tpo $(DEPDIR)/stap_client_connect-stap-client-connect.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stap_client_connect_CFLAGS) $(CFLAGS) -MT stap_client_connect-stap-client-connect.o -MD -MP -MF $(DEPDIR)/stap_client_connect-stap-client-connect.Tpo -c -o stap_client_connect-stap-client-connect.o `test -f 'stap-client-connect.c' || echo '$(srcdir)/'`stap-client-connect.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap_client_connect-stap-client-connect.Tpo $(DEPDIR)/stap_client_connect-stap-client-connect.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stap-client-connect.c' object='stap_client_connect-stap-client-connect.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stap_client_connect_CFLAGS) $(CFLAGS) -c -o stap_client_connect-stap-client-connect.o `test -f 'stap-client-connect.c' || echo '$(srcdir)/'`stap-client-connect.c stap_client_connect-stap-client-connect.obj: stap-client-connect.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stap_client_connect_CFLAGS) $(CFLAGS) -MT stap_client_connect-stap-client-connect.obj -MD -MP -MF $(DEPDIR)/stap_client_connect-stap-client-connect.Tpo -c -o stap_client_connect-stap-client-connect.obj `if test -f 'stap-client-connect.c'; then $(CYGPATH_W) 'stap-client-connect.c'; else $(CYGPATH_W) '$(srcdir)/stap-client-connect.c'; fi` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/stap_client_connect-stap-client-connect.Tpo $(DEPDIR)/stap_client_connect-stap-client-connect.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stap_client_connect_CFLAGS) $(CFLAGS) -MT stap_client_connect-stap-client-connect.obj -MD -MP -MF $(DEPDIR)/stap_client_connect-stap-client-connect.Tpo -c -o stap_client_connect-stap-client-connect.obj `if test -f 'stap-client-connect.c'; then $(CYGPATH_W) 'stap-client-connect.c'; else $(CYGPATH_W) '$(srcdir)/stap-client-connect.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap_client_connect-stap-client-connect.Tpo $(DEPDIR)/stap_client_connect-stap-client-connect.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stap-client-connect.c' object='stap_client_connect-stap-client-connect.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stap_client_connect_CFLAGS) $(CFLAGS) -c -o stap_client_connect-stap-client-connect.obj `if test -f 'stap-client-connect.c'; then $(CYGPATH_W) 'stap-client-connect.c'; else $(CYGPATH_W) '$(srcdir)/stap-client-connect.c'; fi` stap_client_connect-nsscommon.o: nsscommon.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stap_client_connect_CFLAGS) $(CFLAGS) -MT stap_client_connect-nsscommon.o -MD -MP -MF $(DEPDIR)/stap_client_connect-nsscommon.Tpo -c -o stap_client_connect-nsscommon.o `test -f 'nsscommon.c' || echo '$(srcdir)/'`nsscommon.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/stap_client_connect-nsscommon.Tpo $(DEPDIR)/stap_client_connect-nsscommon.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stap_client_connect_CFLAGS) $(CFLAGS) -MT stap_client_connect-nsscommon.o -MD -MP -MF $(DEPDIR)/stap_client_connect-nsscommon.Tpo -c -o stap_client_connect-nsscommon.o `test -f 'nsscommon.c' || echo '$(srcdir)/'`nsscommon.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap_client_connect-nsscommon.Tpo $(DEPDIR)/stap_client_connect-nsscommon.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nsscommon.c' object='stap_client_connect-nsscommon.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stap_client_connect_CFLAGS) $(CFLAGS) -c -o stap_client_connect-nsscommon.o `test -f 'nsscommon.c' || echo '$(srcdir)/'`nsscommon.c stap_client_connect-nsscommon.obj: nsscommon.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stap_client_connect_CFLAGS) $(CFLAGS) -MT stap_client_connect-nsscommon.obj -MD -MP -MF $(DEPDIR)/stap_client_connect-nsscommon.Tpo -c -o stap_client_connect-nsscommon.obj `if test -f 'nsscommon.c'; then $(CYGPATH_W) 'nsscommon.c'; else $(CYGPATH_W) '$(srcdir)/nsscommon.c'; fi` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/stap_client_connect-nsscommon.Tpo $(DEPDIR)/stap_client_connect-nsscommon.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stap_client_connect_CFLAGS) $(CFLAGS) -MT stap_client_connect-nsscommon.obj -MD -MP -MF $(DEPDIR)/stap_client_connect-nsscommon.Tpo -c -o stap_client_connect-nsscommon.obj `if test -f 'nsscommon.c'; then $(CYGPATH_W) 'nsscommon.c'; else $(CYGPATH_W) '$(srcdir)/nsscommon.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap_client_connect-nsscommon.Tpo $(DEPDIR)/stap_client_connect-nsscommon.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nsscommon.c' object='stap_client_connect-nsscommon.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stap_client_connect_CFLAGS) $(CFLAGS) -c -o stap_client_connect-nsscommon.obj `if test -f 'nsscommon.c'; then $(CYGPATH_W) 'nsscommon.c'; else $(CYGPATH_W) '$(srcdir)/nsscommon.c'; fi` stap_server_connect-stap-server-connect.o: stap-server-connect.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stap_server_connect_CFLAGS) $(CFLAGS) -MT stap_server_connect-stap-server-connect.o -MD -MP -MF $(DEPDIR)/stap_server_connect-stap-server-connect.Tpo -c -o stap_server_connect-stap-server-connect.o `test -f 'stap-server-connect.c' || echo '$(srcdir)/'`stap-server-connect.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/stap_server_connect-stap-server-connect.Tpo $(DEPDIR)/stap_server_connect-stap-server-connect.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stap_server_connect_CFLAGS) $(CFLAGS) -MT stap_server_connect-stap-server-connect.o -MD -MP -MF $(DEPDIR)/stap_server_connect-stap-server-connect.Tpo -c -o stap_server_connect-stap-server-connect.o `test -f 'stap-server-connect.c' || echo '$(srcdir)/'`stap-server-connect.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap_server_connect-stap-server-connect.Tpo $(DEPDIR)/stap_server_connect-stap-server-connect.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stap-server-connect.c' object='stap_server_connect-stap-server-connect.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stap_server_connect_CFLAGS) $(CFLAGS) -c -o stap_server_connect-stap-server-connect.o `test -f 'stap-server-connect.c' || echo '$(srcdir)/'`stap-server-connect.c stap_server_connect-stap-server-connect.obj: stap-server-connect.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stap_server_connect_CFLAGS) $(CFLAGS) -MT stap_server_connect-stap-server-connect.obj -MD -MP -MF $(DEPDIR)/stap_server_connect-stap-server-connect.Tpo -c -o stap_server_connect-stap-server-connect.obj `if test -f 'stap-server-connect.c'; then $(CYGPATH_W) 'stap-server-connect.c'; else $(CYGPATH_W) '$(srcdir)/stap-server-connect.c'; fi` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/stap_server_connect-stap-server-connect.Tpo $(DEPDIR)/stap_server_connect-stap-server-connect.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stap_server_connect_CFLAGS) $(CFLAGS) -MT stap_server_connect-stap-server-connect.obj -MD -MP -MF $(DEPDIR)/stap_server_connect-stap-server-connect.Tpo -c -o stap_server_connect-stap-server-connect.obj `if test -f 'stap-server-connect.c'; then $(CYGPATH_W) 'stap-server-connect.c'; else $(CYGPATH_W) '$(srcdir)/stap-server-connect.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap_server_connect-stap-server-connect.Tpo $(DEPDIR)/stap_server_connect-stap-server-connect.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stap-server-connect.c' object='stap_server_connect-stap-server-connect.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stap_server_connect_CFLAGS) $(CFLAGS) -c -o stap_server_connect-stap-server-connect.obj `if test -f 'stap-server-connect.c'; then $(CYGPATH_W) 'stap-server-connect.c'; else $(CYGPATH_W) '$(srcdir)/stap-server-connect.c'; fi` stap_server_connect-nsscommon.o: nsscommon.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stap_server_connect_CFLAGS) $(CFLAGS) -MT stap_server_connect-nsscommon.o -MD -MP -MF $(DEPDIR)/stap_server_connect-nsscommon.Tpo -c -o stap_server_connect-nsscommon.o `test -f 'nsscommon.c' || echo '$(srcdir)/'`nsscommon.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/stap_server_connect-nsscommon.Tpo $(DEPDIR)/stap_server_connect-nsscommon.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stap_server_connect_CFLAGS) $(CFLAGS) -MT stap_server_connect-nsscommon.o -MD -MP -MF $(DEPDIR)/stap_server_connect-nsscommon.Tpo -c -o stap_server_connect-nsscommon.o `test -f 'nsscommon.c' || echo '$(srcdir)/'`nsscommon.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap_server_connect-nsscommon.Tpo $(DEPDIR)/stap_server_connect-nsscommon.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nsscommon.c' object='stap_server_connect-nsscommon.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stap_server_connect_CFLAGS) $(CFLAGS) -c -o stap_server_connect-nsscommon.o `test -f 'nsscommon.c' || echo '$(srcdir)/'`nsscommon.c stap_server_connect-nsscommon.obj: nsscommon.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stap_server_connect_CFLAGS) $(CFLAGS) -MT stap_server_connect-nsscommon.obj -MD -MP -MF $(DEPDIR)/stap_server_connect-nsscommon.Tpo -c -o stap_server_connect-nsscommon.obj `if test -f 'nsscommon.c'; then $(CYGPATH_W) 'nsscommon.c'; else $(CYGPATH_W) '$(srcdir)/nsscommon.c'; fi` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/stap_server_connect-nsscommon.Tpo $(DEPDIR)/stap_server_connect-nsscommon.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stap_server_connect_CFLAGS) $(CFLAGS) -MT stap_server_connect-nsscommon.obj -MD -MP -MF $(DEPDIR)/stap_server_connect-nsscommon.Tpo -c -o stap_server_connect-nsscommon.obj `if test -f 'nsscommon.c'; then $(CYGPATH_W) 'nsscommon.c'; else $(CYGPATH_W) '$(srcdir)/nsscommon.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap_server_connect-nsscommon.Tpo $(DEPDIR)/stap_server_connect-nsscommon.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nsscommon.c' object='stap_server_connect-nsscommon.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stap_server_connect_CFLAGS) $(CFLAGS) -c -o stap_server_connect-nsscommon.obj `if test -f 'nsscommon.c'; then $(CYGPATH_W) 'nsscommon.c'; else $(CYGPATH_W) '$(srcdir)/nsscommon.c'; fi` stap_sign_module-nsscommon.o: nsscommon.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_sign_module_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT stap_sign_module-nsscommon.o -MD -MP -MF $(DEPDIR)/stap_sign_module-nsscommon.Tpo -c -o stap_sign_module-nsscommon.o `test -f 'nsscommon.c' || echo '$(srcdir)/'`nsscommon.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/stap_sign_module-nsscommon.Tpo $(DEPDIR)/stap_sign_module-nsscommon.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_sign_module_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT stap_sign_module-nsscommon.o -MD -MP -MF $(DEPDIR)/stap_sign_module-nsscommon.Tpo -c -o stap_sign_module-nsscommon.o `test -f 'nsscommon.c' || echo '$(srcdir)/'`nsscommon.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap_sign_module-nsscommon.Tpo $(DEPDIR)/stap_sign_module-nsscommon.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nsscommon.c' object='stap_sign_module-nsscommon.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_sign_module_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o stap_sign_module-nsscommon.o `test -f 'nsscommon.c' || echo '$(srcdir)/'`nsscommon.c stap_sign_module-nsscommon.obj: nsscommon.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_sign_module_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT stap_sign_module-nsscommon.obj -MD -MP -MF $(DEPDIR)/stap_sign_module-nsscommon.Tpo -c -o stap_sign_module-nsscommon.obj `if test -f 'nsscommon.c'; then $(CYGPATH_W) 'nsscommon.c'; else $(CYGPATH_W) '$(srcdir)/nsscommon.c'; fi` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/stap_sign_module-nsscommon.Tpo $(DEPDIR)/stap_sign_module-nsscommon.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_sign_module_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT stap_sign_module-nsscommon.obj -MD -MP -MF $(DEPDIR)/stap_sign_module-nsscommon.Tpo -c -o stap_sign_module-nsscommon.obj `if test -f 'nsscommon.c'; then $(CYGPATH_W) 'nsscommon.c'; else $(CYGPATH_W) '$(srcdir)/nsscommon.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap_sign_module-nsscommon.Tpo $(DEPDIR)/stap_sign_module-nsscommon.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nsscommon.c' object='stap_sign_module-nsscommon.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_sign_module_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o stap_sign_module-nsscommon.obj `if test -f 'nsscommon.c'; then $(CYGPATH_W) 'nsscommon.c'; else $(CYGPATH_W) '$(srcdir)/nsscommon.c'; fi` stapio-stapio.o: runtime/staprun/stapio.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stapio_CFLAGS) $(CFLAGS) -MT stapio-stapio.o -MD -MP -MF $(DEPDIR)/stapio-stapio.Tpo -c -o stapio-stapio.o `test -f 'runtime/staprun/stapio.c' || echo '$(srcdir)/'`runtime/staprun/stapio.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/stapio-stapio.Tpo $(DEPDIR)/stapio-stapio.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stapio_CFLAGS) $(CFLAGS) -MT stapio-stapio.o -MD -MP -MF $(DEPDIR)/stapio-stapio.Tpo -c -o stapio-stapio.o `test -f 'runtime/staprun/stapio.c' || echo '$(srcdir)/'`runtime/staprun/stapio.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stapio-stapio.Tpo $(DEPDIR)/stapio-stapio.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='runtime/staprun/stapio.c' object='stapio-stapio.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stapio_CFLAGS) $(CFLAGS) -c -o stapio-stapio.o `test -f 'runtime/staprun/stapio.c' || echo '$(srcdir)/'`runtime/staprun/stapio.c stapio-stapio.obj: runtime/staprun/stapio.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stapio_CFLAGS) $(CFLAGS) -MT stapio-stapio.obj -MD -MP -MF $(DEPDIR)/stapio-stapio.Tpo -c -o stapio-stapio.obj `if test -f 'runtime/staprun/stapio.c'; then $(CYGPATH_W) 'runtime/staprun/stapio.c'; else $(CYGPATH_W) '$(srcdir)/runtime/staprun/stapio.c'; fi` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/stapio-stapio.Tpo $(DEPDIR)/stapio-stapio.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stapio_CFLAGS) $(CFLAGS) -MT stapio-stapio.obj -MD -MP -MF $(DEPDIR)/stapio-stapio.Tpo -c -o stapio-stapio.obj `if test -f 'runtime/staprun/stapio.c'; then $(CYGPATH_W) 'runtime/staprun/stapio.c'; else $(CYGPATH_W) '$(srcdir)/runtime/staprun/stapio.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stapio-stapio.Tpo $(DEPDIR)/stapio-stapio.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='runtime/staprun/stapio.c' object='stapio-stapio.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stapio_CFLAGS) $(CFLAGS) -c -o stapio-stapio.obj `if test -f 'runtime/staprun/stapio.c'; then $(CYGPATH_W) 'runtime/staprun/stapio.c'; else $(CYGPATH_W) '$(srcdir)/runtime/staprun/stapio.c'; fi` stapio-mainloop.o: runtime/staprun/mainloop.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stapio_CFLAGS) $(CFLAGS) -MT stapio-mainloop.o -MD -MP -MF $(DEPDIR)/stapio-mainloop.Tpo -c -o stapio-mainloop.o `test -f 'runtime/staprun/mainloop.c' || echo '$(srcdir)/'`runtime/staprun/mainloop.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/stapio-mainloop.Tpo $(DEPDIR)/stapio-mainloop.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stapio_CFLAGS) $(CFLAGS) -MT stapio-mainloop.o -MD -MP -MF $(DEPDIR)/stapio-mainloop.Tpo -c -o stapio-mainloop.o `test -f 'runtime/staprun/mainloop.c' || echo '$(srcdir)/'`runtime/staprun/mainloop.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stapio-mainloop.Tpo $(DEPDIR)/stapio-mainloop.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='runtime/staprun/mainloop.c' object='stapio-mainloop.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stapio_CFLAGS) $(CFLAGS) -c -o stapio-mainloop.o `test -f 'runtime/staprun/mainloop.c' || echo '$(srcdir)/'`runtime/staprun/mainloop.c stapio-mainloop.obj: runtime/staprun/mainloop.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stapio_CFLAGS) $(CFLAGS) -MT stapio-mainloop.obj -MD -MP -MF $(DEPDIR)/stapio-mainloop.Tpo -c -o stapio-mainloop.obj `if test -f 'runtime/staprun/mainloop.c'; then $(CYGPATH_W) 'runtime/staprun/mainloop.c'; else $(CYGPATH_W) '$(srcdir)/runtime/staprun/mainloop.c'; fi` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/stapio-mainloop.Tpo $(DEPDIR)/stapio-mainloop.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stapio_CFLAGS) $(CFLAGS) -MT stapio-mainloop.obj -MD -MP -MF $(DEPDIR)/stapio-mainloop.Tpo -c -o stapio-mainloop.obj `if test -f 'runtime/staprun/mainloop.c'; then $(CYGPATH_W) 'runtime/staprun/mainloop.c'; else $(CYGPATH_W) '$(srcdir)/runtime/staprun/mainloop.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stapio-mainloop.Tpo $(DEPDIR)/stapio-mainloop.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='runtime/staprun/mainloop.c' object='stapio-mainloop.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stapio_CFLAGS) $(CFLAGS) -c -o stapio-mainloop.obj `if test -f 'runtime/staprun/mainloop.c'; then $(CYGPATH_W) 'runtime/staprun/mainloop.c'; else $(CYGPATH_W) '$(srcdir)/runtime/staprun/mainloop.c'; fi` stapio-common.o: runtime/staprun/common.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stapio_CFLAGS) $(CFLAGS) -MT stapio-common.o -MD -MP -MF $(DEPDIR)/stapio-common.Tpo -c -o stapio-common.o `test -f 'runtime/staprun/common.c' || echo '$(srcdir)/'`runtime/staprun/common.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/stapio-common.Tpo $(DEPDIR)/stapio-common.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stapio_CFLAGS) $(CFLAGS) -MT stapio-common.o -MD -MP -MF $(DEPDIR)/stapio-common.Tpo -c -o stapio-common.o `test -f 'runtime/staprun/common.c' || echo '$(srcdir)/'`runtime/staprun/common.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stapio-common.Tpo $(DEPDIR)/stapio-common.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='runtime/staprun/common.c' object='stapio-common.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stapio_CFLAGS) $(CFLAGS) -c -o stapio-common.o `test -f 'runtime/staprun/common.c' || echo '$(srcdir)/'`runtime/staprun/common.c stapio-common.obj: runtime/staprun/common.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stapio_CFLAGS) $(CFLAGS) -MT stapio-common.obj -MD -MP -MF $(DEPDIR)/stapio-common.Tpo -c -o stapio-common.obj `if test -f 'runtime/staprun/common.c'; then $(CYGPATH_W) 'runtime/staprun/common.c'; else $(CYGPATH_W) '$(srcdir)/runtime/staprun/common.c'; fi` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/stapio-common.Tpo $(DEPDIR)/stapio-common.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stapio_CFLAGS) $(CFLAGS) -MT stapio-common.obj -MD -MP -MF $(DEPDIR)/stapio-common.Tpo -c -o stapio-common.obj `if test -f 'runtime/staprun/common.c'; then $(CYGPATH_W) 'runtime/staprun/common.c'; else $(CYGPATH_W) '$(srcdir)/runtime/staprun/common.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stapio-common.Tpo $(DEPDIR)/stapio-common.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='runtime/staprun/common.c' object='stapio-common.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stapio_CFLAGS) $(CFLAGS) -c -o stapio-common.obj `if test -f 'runtime/staprun/common.c'; then $(CYGPATH_W) 'runtime/staprun/common.c'; else $(CYGPATH_W) '$(srcdir)/runtime/staprun/common.c'; fi` stapio-ctl.o: runtime/staprun/ctl.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stapio_CFLAGS) $(CFLAGS) -MT stapio-ctl.o -MD -MP -MF $(DEPDIR)/stapio-ctl.Tpo -c -o stapio-ctl.o `test -f 'runtime/staprun/ctl.c' || echo '$(srcdir)/'`runtime/staprun/ctl.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/stapio-ctl.Tpo $(DEPDIR)/stapio-ctl.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stapio_CFLAGS) $(CFLAGS) -MT stapio-ctl.o -MD -MP -MF $(DEPDIR)/stapio-ctl.Tpo -c -o stapio-ctl.o `test -f 'runtime/staprun/ctl.c' || echo '$(srcdir)/'`runtime/staprun/ctl.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stapio-ctl.Tpo $(DEPDIR)/stapio-ctl.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='runtime/staprun/ctl.c' object='stapio-ctl.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stapio_CFLAGS) $(CFLAGS) -c -o stapio-ctl.o `test -f 'runtime/staprun/ctl.c' || echo '$(srcdir)/'`runtime/staprun/ctl.c stapio-ctl.obj: runtime/staprun/ctl.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stapio_CFLAGS) $(CFLAGS) -MT stapio-ctl.obj -MD -MP -MF $(DEPDIR)/stapio-ctl.Tpo -c -o stapio-ctl.obj `if test -f 'runtime/staprun/ctl.c'; then $(CYGPATH_W) 'runtime/staprun/ctl.c'; else $(CYGPATH_W) '$(srcdir)/runtime/staprun/ctl.c'; fi` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/stapio-ctl.Tpo $(DEPDIR)/stapio-ctl.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stapio_CFLAGS) $(CFLAGS) -MT stapio-ctl.obj -MD -MP -MF $(DEPDIR)/stapio-ctl.Tpo -c -o stapio-ctl.obj `if test -f 'runtime/staprun/ctl.c'; then $(CYGPATH_W) 'runtime/staprun/ctl.c'; else $(CYGPATH_W) '$(srcdir)/runtime/staprun/ctl.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stapio-ctl.Tpo $(DEPDIR)/stapio-ctl.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='runtime/staprun/ctl.c' object='stapio-ctl.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stapio_CFLAGS) $(CFLAGS) -c -o stapio-ctl.obj `if test -f 'runtime/staprun/ctl.c'; then $(CYGPATH_W) 'runtime/staprun/ctl.c'; else $(CYGPATH_W) '$(srcdir)/runtime/staprun/ctl.c'; fi` stapio-relay.o: runtime/staprun/relay.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stapio_CFLAGS) $(CFLAGS) -MT stapio-relay.o -MD -MP -MF $(DEPDIR)/stapio-relay.Tpo -c -o stapio-relay.o `test -f 'runtime/staprun/relay.c' || echo '$(srcdir)/'`runtime/staprun/relay.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/stapio-relay.Tpo $(DEPDIR)/stapio-relay.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stapio_CFLAGS) $(CFLAGS) -MT stapio-relay.o -MD -MP -MF $(DEPDIR)/stapio-relay.Tpo -c -o stapio-relay.o `test -f 'runtime/staprun/relay.c' || echo '$(srcdir)/'`runtime/staprun/relay.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stapio-relay.Tpo $(DEPDIR)/stapio-relay.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='runtime/staprun/relay.c' object='stapio-relay.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stapio_CFLAGS) $(CFLAGS) -c -o stapio-relay.o `test -f 'runtime/staprun/relay.c' || echo '$(srcdir)/'`runtime/staprun/relay.c stapio-relay.obj: runtime/staprun/relay.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stapio_CFLAGS) $(CFLAGS) -MT stapio-relay.obj -MD -MP -MF $(DEPDIR)/stapio-relay.Tpo -c -o stapio-relay.obj `if test -f 'runtime/staprun/relay.c'; then $(CYGPATH_W) 'runtime/staprun/relay.c'; else $(CYGPATH_W) '$(srcdir)/runtime/staprun/relay.c'; fi` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/stapio-relay.Tpo $(DEPDIR)/stapio-relay.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stapio_CFLAGS) $(CFLAGS) -MT stapio-relay.obj -MD -MP -MF $(DEPDIR)/stapio-relay.Tpo -c -o stapio-relay.obj `if test -f 'runtime/staprun/relay.c'; then $(CYGPATH_W) 'runtime/staprun/relay.c'; else $(CYGPATH_W) '$(srcdir)/runtime/staprun/relay.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stapio-relay.Tpo $(DEPDIR)/stapio-relay.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='runtime/staprun/relay.c' object='stapio-relay.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stapio_CFLAGS) $(CFLAGS) -c -o stapio-relay.obj `if test -f 'runtime/staprun/relay.c'; then $(CYGPATH_W) 'runtime/staprun/relay.c'; else $(CYGPATH_W) '$(srcdir)/runtime/staprun/relay.c'; fi` stapio-relay_old.o: runtime/staprun/relay_old.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stapio_CFLAGS) $(CFLAGS) -MT stapio-relay_old.o -MD -MP -MF $(DEPDIR)/stapio-relay_old.Tpo -c -o stapio-relay_old.o `test -f 'runtime/staprun/relay_old.c' || echo '$(srcdir)/'`runtime/staprun/relay_old.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/stapio-relay_old.Tpo $(DEPDIR)/stapio-relay_old.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stapio_CFLAGS) $(CFLAGS) -MT stapio-relay_old.o -MD -MP -MF $(DEPDIR)/stapio-relay_old.Tpo -c -o stapio-relay_old.o `test -f 'runtime/staprun/relay_old.c' || echo '$(srcdir)/'`runtime/staprun/relay_old.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stapio-relay_old.Tpo $(DEPDIR)/stapio-relay_old.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='runtime/staprun/relay_old.c' object='stapio-relay_old.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stapio_CFLAGS) $(CFLAGS) -c -o stapio-relay_old.o `test -f 'runtime/staprun/relay_old.c' || echo '$(srcdir)/'`runtime/staprun/relay_old.c stapio-relay_old.obj: runtime/staprun/relay_old.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stapio_CFLAGS) $(CFLAGS) -MT stapio-relay_old.obj -MD -MP -MF $(DEPDIR)/stapio-relay_old.Tpo -c -o stapio-relay_old.obj `if test -f 'runtime/staprun/relay_old.c'; then $(CYGPATH_W) 'runtime/staprun/relay_old.c'; else $(CYGPATH_W) '$(srcdir)/runtime/staprun/relay_old.c'; fi` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/stapio-relay_old.Tpo $(DEPDIR)/stapio-relay_old.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stapio_CFLAGS) $(CFLAGS) -MT stapio-relay_old.obj -MD -MP -MF $(DEPDIR)/stapio-relay_old.Tpo -c -o stapio-relay_old.obj `if test -f 'runtime/staprun/relay_old.c'; then $(CYGPATH_W) 'runtime/staprun/relay_old.c'; else $(CYGPATH_W) '$(srcdir)/runtime/staprun/relay_old.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stapio-relay_old.Tpo $(DEPDIR)/stapio-relay_old.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='runtime/staprun/relay_old.c' object='stapio-relay_old.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stapio_CFLAGS) $(CFLAGS) -c -o stapio-relay_old.obj `if test -f 'runtime/staprun/relay_old.c'; then $(CYGPATH_W) 'runtime/staprun/relay_old.c'; else $(CYGPATH_W) '$(srcdir)/runtime/staprun/relay_old.c'; fi` staprun-staprun.o: runtime/staprun/staprun.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(staprun_CPPFLAGS) $(CPPFLAGS) $(staprun_CFLAGS) $(CFLAGS) -MT staprun-staprun.o -MD -MP -MF $(DEPDIR)/staprun-staprun.Tpo -c -o staprun-staprun.o `test -f 'runtime/staprun/staprun.c' || echo '$(srcdir)/'`runtime/staprun/staprun.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/staprun-staprun.Tpo $(DEPDIR)/staprun-staprun.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(staprun_CPPFLAGS) $(CPPFLAGS) $(staprun_CFLAGS) $(CFLAGS) -MT staprun-staprun.o -MD -MP -MF $(DEPDIR)/staprun-staprun.Tpo -c -o staprun-staprun.o `test -f 'runtime/staprun/staprun.c' || echo '$(srcdir)/'`runtime/staprun/staprun.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/staprun-staprun.Tpo $(DEPDIR)/staprun-staprun.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='runtime/staprun/staprun.c' object='staprun-staprun.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(staprun_CPPFLAGS) $(CPPFLAGS) $(staprun_CFLAGS) $(CFLAGS) -c -o staprun-staprun.o `test -f 'runtime/staprun/staprun.c' || echo '$(srcdir)/'`runtime/staprun/staprun.c staprun-staprun.obj: runtime/staprun/staprun.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(staprun_CPPFLAGS) $(CPPFLAGS) $(staprun_CFLAGS) $(CFLAGS) -MT staprun-staprun.obj -MD -MP -MF $(DEPDIR)/staprun-staprun.Tpo -c -o staprun-staprun.obj `if test -f 'runtime/staprun/staprun.c'; then $(CYGPATH_W) 'runtime/staprun/staprun.c'; else $(CYGPATH_W) '$(srcdir)/runtime/staprun/staprun.c'; fi` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/staprun-staprun.Tpo $(DEPDIR)/staprun-staprun.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(staprun_CPPFLAGS) $(CPPFLAGS) $(staprun_CFLAGS) $(CFLAGS) -MT staprun-staprun.obj -MD -MP -MF $(DEPDIR)/staprun-staprun.Tpo -c -o staprun-staprun.obj `if test -f 'runtime/staprun/staprun.c'; then $(CYGPATH_W) 'runtime/staprun/staprun.c'; else $(CYGPATH_W) '$(srcdir)/runtime/staprun/staprun.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/staprun-staprun.Tpo $(DEPDIR)/staprun-staprun.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='runtime/staprun/staprun.c' object='staprun-staprun.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(staprun_CPPFLAGS) $(CPPFLAGS) $(staprun_CFLAGS) $(CFLAGS) -c -o staprun-staprun.obj `if test -f 'runtime/staprun/staprun.c'; then $(CYGPATH_W) 'runtime/staprun/staprun.c'; else $(CYGPATH_W) '$(srcdir)/runtime/staprun/staprun.c'; fi` staprun-staprun_funcs.o: runtime/staprun/staprun_funcs.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(staprun_CPPFLAGS) $(CPPFLAGS) $(staprun_CFLAGS) $(CFLAGS) -MT staprun-staprun_funcs.o -MD -MP -MF $(DEPDIR)/staprun-staprun_funcs.Tpo -c -o staprun-staprun_funcs.o `test -f 'runtime/staprun/staprun_funcs.c' || echo '$(srcdir)/'`runtime/staprun/staprun_funcs.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/staprun-staprun_funcs.Tpo $(DEPDIR)/staprun-staprun_funcs.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(staprun_CPPFLAGS) $(CPPFLAGS) $(staprun_CFLAGS) $(CFLAGS) -MT staprun-staprun_funcs.o -MD -MP -MF $(DEPDIR)/staprun-staprun_funcs.Tpo -c -o staprun-staprun_funcs.o `test -f 'runtime/staprun/staprun_funcs.c' || echo '$(srcdir)/'`runtime/staprun/staprun_funcs.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/staprun-staprun_funcs.Tpo $(DEPDIR)/staprun-staprun_funcs.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='runtime/staprun/staprun_funcs.c' object='staprun-staprun_funcs.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(staprun_CPPFLAGS) $(CPPFLAGS) $(staprun_CFLAGS) $(CFLAGS) -c -o staprun-staprun_funcs.o `test -f 'runtime/staprun/staprun_funcs.c' || echo '$(srcdir)/'`runtime/staprun/staprun_funcs.c staprun-staprun_funcs.obj: runtime/staprun/staprun_funcs.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(staprun_CPPFLAGS) $(CPPFLAGS) $(staprun_CFLAGS) $(CFLAGS) -MT staprun-staprun_funcs.obj -MD -MP -MF $(DEPDIR)/staprun-staprun_funcs.Tpo -c -o staprun-staprun_funcs.obj `if test -f 'runtime/staprun/staprun_funcs.c'; then $(CYGPATH_W) 'runtime/staprun/staprun_funcs.c'; else $(CYGPATH_W) '$(srcdir)/runtime/staprun/staprun_funcs.c'; fi` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/staprun-staprun_funcs.Tpo $(DEPDIR)/staprun-staprun_funcs.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(staprun_CPPFLAGS) $(CPPFLAGS) $(staprun_CFLAGS) $(CFLAGS) -MT staprun-staprun_funcs.obj -MD -MP -MF $(DEPDIR)/staprun-staprun_funcs.Tpo -c -o staprun-staprun_funcs.obj `if test -f 'runtime/staprun/staprun_funcs.c'; then $(CYGPATH_W) 'runtime/staprun/staprun_funcs.c'; else $(CYGPATH_W) '$(srcdir)/runtime/staprun/staprun_funcs.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/staprun-staprun_funcs.Tpo $(DEPDIR)/staprun-staprun_funcs.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='runtime/staprun/staprun_funcs.c' object='staprun-staprun_funcs.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(staprun_CPPFLAGS) $(CPPFLAGS) $(staprun_CFLAGS) $(CFLAGS) -c -o staprun-staprun_funcs.obj `if test -f 'runtime/staprun/staprun_funcs.c'; then $(CYGPATH_W) 'runtime/staprun/staprun_funcs.c'; else $(CYGPATH_W) '$(srcdir)/runtime/staprun/staprun_funcs.c'; fi` staprun-ctl.o: runtime/staprun/ctl.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(staprun_CPPFLAGS) $(CPPFLAGS) $(staprun_CFLAGS) $(CFLAGS) -MT staprun-ctl.o -MD -MP -MF $(DEPDIR)/staprun-ctl.Tpo -c -o staprun-ctl.o `test -f 'runtime/staprun/ctl.c' || echo '$(srcdir)/'`runtime/staprun/ctl.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/staprun-ctl.Tpo $(DEPDIR)/staprun-ctl.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(staprun_CPPFLAGS) $(CPPFLAGS) $(staprun_CFLAGS) $(CFLAGS) -MT staprun-ctl.o -MD -MP -MF $(DEPDIR)/staprun-ctl.Tpo -c -o staprun-ctl.o `test -f 'runtime/staprun/ctl.c' || echo '$(srcdir)/'`runtime/staprun/ctl.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/staprun-ctl.Tpo $(DEPDIR)/staprun-ctl.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='runtime/staprun/ctl.c' object='staprun-ctl.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(staprun_CPPFLAGS) $(CPPFLAGS) $(staprun_CFLAGS) $(CFLAGS) -c -o staprun-ctl.o `test -f 'runtime/staprun/ctl.c' || echo '$(srcdir)/'`runtime/staprun/ctl.c staprun-ctl.obj: runtime/staprun/ctl.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(staprun_CPPFLAGS) $(CPPFLAGS) $(staprun_CFLAGS) $(CFLAGS) -MT staprun-ctl.obj -MD -MP -MF $(DEPDIR)/staprun-ctl.Tpo -c -o staprun-ctl.obj `if test -f 'runtime/staprun/ctl.c'; then $(CYGPATH_W) 'runtime/staprun/ctl.c'; else $(CYGPATH_W) '$(srcdir)/runtime/staprun/ctl.c'; fi` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/staprun-ctl.Tpo $(DEPDIR)/staprun-ctl.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(staprun_CPPFLAGS) $(CPPFLAGS) $(staprun_CFLAGS) $(CFLAGS) -MT staprun-ctl.obj -MD -MP -MF $(DEPDIR)/staprun-ctl.Tpo -c -o staprun-ctl.obj `if test -f 'runtime/staprun/ctl.c'; then $(CYGPATH_W) 'runtime/staprun/ctl.c'; else $(CYGPATH_W) '$(srcdir)/runtime/staprun/ctl.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/staprun-ctl.Tpo $(DEPDIR)/staprun-ctl.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='runtime/staprun/ctl.c' object='staprun-ctl.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(staprun_CPPFLAGS) $(CPPFLAGS) $(staprun_CFLAGS) $(CFLAGS) -c -o staprun-ctl.obj `if test -f 'runtime/staprun/ctl.c'; then $(CYGPATH_W) 'runtime/staprun/ctl.c'; else $(CYGPATH_W) '$(srcdir)/runtime/staprun/ctl.c'; fi` staprun-common.o: runtime/staprun/common.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(staprun_CPPFLAGS) $(CPPFLAGS) $(staprun_CFLAGS) $(CFLAGS) -MT staprun-common.o -MD -MP -MF $(DEPDIR)/staprun-common.Tpo -c -o staprun-common.o `test -f 'runtime/staprun/common.c' || echo '$(srcdir)/'`runtime/staprun/common.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/staprun-common.Tpo $(DEPDIR)/staprun-common.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(staprun_CPPFLAGS) $(CPPFLAGS) $(staprun_CFLAGS) $(CFLAGS) -MT staprun-common.o -MD -MP -MF $(DEPDIR)/staprun-common.Tpo -c -o staprun-common.o `test -f 'runtime/staprun/common.c' || echo '$(srcdir)/'`runtime/staprun/common.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/staprun-common.Tpo $(DEPDIR)/staprun-common.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='runtime/staprun/common.c' object='staprun-common.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(staprun_CPPFLAGS) $(CPPFLAGS) $(staprun_CFLAGS) $(CFLAGS) -c -o staprun-common.o `test -f 'runtime/staprun/common.c' || echo '$(srcdir)/'`runtime/staprun/common.c staprun-common.obj: runtime/staprun/common.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(staprun_CPPFLAGS) $(CPPFLAGS) $(staprun_CFLAGS) $(CFLAGS) -MT staprun-common.obj -MD -MP -MF $(DEPDIR)/staprun-common.Tpo -c -o staprun-common.obj `if test -f 'runtime/staprun/common.c'; then $(CYGPATH_W) 'runtime/staprun/common.c'; else $(CYGPATH_W) '$(srcdir)/runtime/staprun/common.c'; fi` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/staprun-common.Tpo $(DEPDIR)/staprun-common.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(staprun_CPPFLAGS) $(CPPFLAGS) $(staprun_CFLAGS) $(CFLAGS) -MT staprun-common.obj -MD -MP -MF $(DEPDIR)/staprun-common.Tpo -c -o staprun-common.obj `if test -f 'runtime/staprun/common.c'; then $(CYGPATH_W) 'runtime/staprun/common.c'; else $(CYGPATH_W) '$(srcdir)/runtime/staprun/common.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/staprun-common.Tpo $(DEPDIR)/staprun-common.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='runtime/staprun/common.c' object='staprun-common.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(staprun_CPPFLAGS) $(CPPFLAGS) $(staprun_CFLAGS) $(CFLAGS) -c -o staprun-common.obj `if test -f 'runtime/staprun/common.c'; then $(CYGPATH_W) 'runtime/staprun/common.c'; else $(CYGPATH_W) '$(srcdir)/runtime/staprun/common.c'; fi` staprun-modverify.o: runtime/staprun/modverify.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(staprun_CPPFLAGS) $(CPPFLAGS) $(staprun_CFLAGS) $(CFLAGS) -MT staprun-modverify.o -MD -MP -MF $(DEPDIR)/staprun-modverify.Tpo -c -o staprun-modverify.o `test -f 'runtime/staprun/modverify.c' || echo '$(srcdir)/'`runtime/staprun/modverify.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/staprun-modverify.Tpo $(DEPDIR)/staprun-modverify.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(staprun_CPPFLAGS) $(CPPFLAGS) $(staprun_CFLAGS) $(CFLAGS) -MT staprun-modverify.o -MD -MP -MF $(DEPDIR)/staprun-modverify.Tpo -c -o staprun-modverify.o `test -f 'runtime/staprun/modverify.c' || echo '$(srcdir)/'`runtime/staprun/modverify.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/staprun-modverify.Tpo $(DEPDIR)/staprun-modverify.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='runtime/staprun/modverify.c' object='staprun-modverify.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(staprun_CPPFLAGS) $(CPPFLAGS) $(staprun_CFLAGS) $(CFLAGS) -c -o staprun-modverify.o `test -f 'runtime/staprun/modverify.c' || echo '$(srcdir)/'`runtime/staprun/modverify.c staprun-modverify.obj: runtime/staprun/modverify.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(staprun_CPPFLAGS) $(CPPFLAGS) $(staprun_CFLAGS) $(CFLAGS) -MT staprun-modverify.obj -MD -MP -MF $(DEPDIR)/staprun-modverify.Tpo -c -o staprun-modverify.obj `if test -f 'runtime/staprun/modverify.c'; then $(CYGPATH_W) 'runtime/staprun/modverify.c'; else $(CYGPATH_W) '$(srcdir)/runtime/staprun/modverify.c'; fi` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/staprun-modverify.Tpo $(DEPDIR)/staprun-modverify.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(staprun_CPPFLAGS) $(CPPFLAGS) $(staprun_CFLAGS) $(CFLAGS) -MT staprun-modverify.obj -MD -MP -MF $(DEPDIR)/staprun-modverify.Tpo -c -o staprun-modverify.obj `if test -f 'runtime/staprun/modverify.c'; then $(CYGPATH_W) 'runtime/staprun/modverify.c'; else $(CYGPATH_W) '$(srcdir)/runtime/staprun/modverify.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/staprun-modverify.Tpo $(DEPDIR)/staprun-modverify.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='runtime/staprun/modverify.c' object='staprun-modverify.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(staprun_CPPFLAGS) $(CPPFLAGS) $(staprun_CFLAGS) $(CFLAGS) -c -o staprun-modverify.obj `if test -f 'runtime/staprun/modverify.c'; then $(CYGPATH_W) 'runtime/staprun/modverify.c'; else $(CYGPATH_W) '$(srcdir)/runtime/staprun/modverify.c'; fi` staprun-nsscommon.o: nsscommon.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(staprun_CPPFLAGS) $(CPPFLAGS) $(staprun_CFLAGS) $(CFLAGS) -MT staprun-nsscommon.o -MD -MP -MF $(DEPDIR)/staprun-nsscommon.Tpo -c -o staprun-nsscommon.o `test -f 'nsscommon.c' || echo '$(srcdir)/'`nsscommon.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/staprun-nsscommon.Tpo $(DEPDIR)/staprun-nsscommon.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(staprun_CPPFLAGS) $(CPPFLAGS) $(staprun_CFLAGS) $(CFLAGS) -MT staprun-nsscommon.o -MD -MP -MF $(DEPDIR)/staprun-nsscommon.Tpo -c -o staprun-nsscommon.o `test -f 'nsscommon.c' || echo '$(srcdir)/'`nsscommon.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/staprun-nsscommon.Tpo $(DEPDIR)/staprun-nsscommon.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nsscommon.c' object='staprun-nsscommon.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(staprun_CPPFLAGS) $(CPPFLAGS) $(staprun_CFLAGS) $(CFLAGS) -c -o staprun-nsscommon.o `test -f 'nsscommon.c' || echo '$(srcdir)/'`nsscommon.c staprun-nsscommon.obj: nsscommon.c -@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(staprun_CPPFLAGS) $(CPPFLAGS) $(staprun_CFLAGS) $(CFLAGS) -MT staprun-nsscommon.obj -MD -MP -MF $(DEPDIR)/staprun-nsscommon.Tpo -c -o staprun-nsscommon.obj `if test -f 'nsscommon.c'; then $(CYGPATH_W) 'nsscommon.c'; else $(CYGPATH_W) '$(srcdir)/nsscommon.c'; fi` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/staprun-nsscommon.Tpo $(DEPDIR)/staprun-nsscommon.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(staprun_CPPFLAGS) $(CPPFLAGS) $(staprun_CFLAGS) $(CFLAGS) -MT staprun-nsscommon.obj -MD -MP -MF $(DEPDIR)/staprun-nsscommon.Tpo -c -o staprun-nsscommon.obj `if test -f 'nsscommon.c'; then $(CYGPATH_W) 'nsscommon.c'; else $(CYGPATH_W) '$(srcdir)/nsscommon.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/staprun-nsscommon.Tpo $(DEPDIR)/staprun-nsscommon.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nsscommon.c' object='staprun-nsscommon.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(staprun_CPPFLAGS) $(CPPFLAGS) $(staprun_CFLAGS) $(CFLAGS) -c -o staprun-nsscommon.obj `if test -f 'nsscommon.c'; then $(CYGPATH_W) 'nsscommon.c'; else $(CYGPATH_W) '$(srcdir)/nsscommon.c'; fi` .cxx.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` stap-main.o: main.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-main.o -MD -MP -MF $(DEPDIR)/stap-main.Tpo -c -o stap-main.o `test -f 'main.cxx' || echo '$(srcdir)/'`main.cxx -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-main.Tpo $(DEPDIR)/stap-main.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-main.o -MD -MP -MF $(DEPDIR)/stap-main.Tpo -c -o stap-main.o `test -f 'main.cxx' || echo '$(srcdir)/'`main.cxx +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-main.Tpo $(DEPDIR)/stap-main.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='main.cxx' object='stap-main.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-main.o `test -f 'main.cxx' || echo '$(srcdir)/'`main.cxx stap-main.obj: main.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-main.obj -MD -MP -MF $(DEPDIR)/stap-main.Tpo -c -o stap-main.obj `if test -f 'main.cxx'; then $(CYGPATH_W) 'main.cxx'; else $(CYGPATH_W) '$(srcdir)/main.cxx'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-main.Tpo $(DEPDIR)/stap-main.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-main.obj -MD -MP -MF $(DEPDIR)/stap-main.Tpo -c -o stap-main.obj `if test -f 'main.cxx'; then $(CYGPATH_W) 'main.cxx'; else $(CYGPATH_W) '$(srcdir)/main.cxx'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-main.Tpo $(DEPDIR)/stap-main.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='main.cxx' object='stap-main.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-main.obj `if test -f 'main.cxx'; then $(CYGPATH_W) 'main.cxx'; else $(CYGPATH_W) '$(srcdir)/main.cxx'; fi` stap-parse.o: parse.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-parse.o -MD -MP -MF $(DEPDIR)/stap-parse.Tpo -c -o stap-parse.o `test -f 'parse.cxx' || echo '$(srcdir)/'`parse.cxx -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-parse.Tpo $(DEPDIR)/stap-parse.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-parse.o -MD -MP -MF $(DEPDIR)/stap-parse.Tpo -c -o stap-parse.o `test -f 'parse.cxx' || echo '$(srcdir)/'`parse.cxx +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-parse.Tpo $(DEPDIR)/stap-parse.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='parse.cxx' object='stap-parse.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-parse.o `test -f 'parse.cxx' || echo '$(srcdir)/'`parse.cxx stap-parse.obj: parse.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-parse.obj -MD -MP -MF $(DEPDIR)/stap-parse.Tpo -c -o stap-parse.obj `if test -f 'parse.cxx'; then $(CYGPATH_W) 'parse.cxx'; else $(CYGPATH_W) '$(srcdir)/parse.cxx'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-parse.Tpo $(DEPDIR)/stap-parse.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-parse.obj -MD -MP -MF $(DEPDIR)/stap-parse.Tpo -c -o stap-parse.obj `if test -f 'parse.cxx'; then $(CYGPATH_W) 'parse.cxx'; else $(CYGPATH_W) '$(srcdir)/parse.cxx'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-parse.Tpo $(DEPDIR)/stap-parse.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='parse.cxx' object='stap-parse.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-parse.obj `if test -f 'parse.cxx'; then $(CYGPATH_W) 'parse.cxx'; else $(CYGPATH_W) '$(srcdir)/parse.cxx'; fi` stap-staptree.o: staptree.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-staptree.o -MD -MP -MF $(DEPDIR)/stap-staptree.Tpo -c -o stap-staptree.o `test -f 'staptree.cxx' || echo '$(srcdir)/'`staptree.cxx -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-staptree.Tpo $(DEPDIR)/stap-staptree.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-staptree.o -MD -MP -MF $(DEPDIR)/stap-staptree.Tpo -c -o stap-staptree.o `test -f 'staptree.cxx' || echo '$(srcdir)/'`staptree.cxx +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-staptree.Tpo $(DEPDIR)/stap-staptree.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='staptree.cxx' object='stap-staptree.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-staptree.o `test -f 'staptree.cxx' || echo '$(srcdir)/'`staptree.cxx stap-staptree.obj: staptree.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-staptree.obj -MD -MP -MF $(DEPDIR)/stap-staptree.Tpo -c -o stap-staptree.obj `if test -f 'staptree.cxx'; then $(CYGPATH_W) 'staptree.cxx'; else $(CYGPATH_W) '$(srcdir)/staptree.cxx'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-staptree.Tpo $(DEPDIR)/stap-staptree.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-staptree.obj -MD -MP -MF $(DEPDIR)/stap-staptree.Tpo -c -o stap-staptree.obj `if test -f 'staptree.cxx'; then $(CYGPATH_W) 'staptree.cxx'; else $(CYGPATH_W) '$(srcdir)/staptree.cxx'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-staptree.Tpo $(DEPDIR)/stap-staptree.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='staptree.cxx' object='stap-staptree.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-staptree.obj `if test -f 'staptree.cxx'; then $(CYGPATH_W) 'staptree.cxx'; else $(CYGPATH_W) '$(srcdir)/staptree.cxx'; fi` stap-elaborate.o: elaborate.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-elaborate.o -MD -MP -MF $(DEPDIR)/stap-elaborate.Tpo -c -o stap-elaborate.o `test -f 'elaborate.cxx' || echo '$(srcdir)/'`elaborate.cxx -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-elaborate.Tpo $(DEPDIR)/stap-elaborate.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-elaborate.o -MD -MP -MF $(DEPDIR)/stap-elaborate.Tpo -c -o stap-elaborate.o `test -f 'elaborate.cxx' || echo '$(srcdir)/'`elaborate.cxx +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-elaborate.Tpo $(DEPDIR)/stap-elaborate.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='elaborate.cxx' object='stap-elaborate.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-elaborate.o `test -f 'elaborate.cxx' || echo '$(srcdir)/'`elaborate.cxx stap-elaborate.obj: elaborate.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-elaborate.obj -MD -MP -MF $(DEPDIR)/stap-elaborate.Tpo -c -o stap-elaborate.obj `if test -f 'elaborate.cxx'; then $(CYGPATH_W) 'elaborate.cxx'; else $(CYGPATH_W) '$(srcdir)/elaborate.cxx'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-elaborate.Tpo $(DEPDIR)/stap-elaborate.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-elaborate.obj -MD -MP -MF $(DEPDIR)/stap-elaborate.Tpo -c -o stap-elaborate.obj `if test -f 'elaborate.cxx'; then $(CYGPATH_W) 'elaborate.cxx'; else $(CYGPATH_W) '$(srcdir)/elaborate.cxx'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-elaborate.Tpo $(DEPDIR)/stap-elaborate.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='elaborate.cxx' object='stap-elaborate.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-elaborate.obj `if test -f 'elaborate.cxx'; then $(CYGPATH_W) 'elaborate.cxx'; else $(CYGPATH_W) '$(srcdir)/elaborate.cxx'; fi` stap-translate.o: translate.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-translate.o -MD -MP -MF $(DEPDIR)/stap-translate.Tpo -c -o stap-translate.o `test -f 'translate.cxx' || echo '$(srcdir)/'`translate.cxx -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-translate.Tpo $(DEPDIR)/stap-translate.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-translate.o -MD -MP -MF $(DEPDIR)/stap-translate.Tpo -c -o stap-translate.o `test -f 'translate.cxx' || echo '$(srcdir)/'`translate.cxx +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-translate.Tpo $(DEPDIR)/stap-translate.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='translate.cxx' object='stap-translate.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-translate.o `test -f 'translate.cxx' || echo '$(srcdir)/'`translate.cxx stap-translate.obj: translate.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-translate.obj -MD -MP -MF $(DEPDIR)/stap-translate.Tpo -c -o stap-translate.obj `if test -f 'translate.cxx'; then $(CYGPATH_W) 'translate.cxx'; else $(CYGPATH_W) '$(srcdir)/translate.cxx'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-translate.Tpo $(DEPDIR)/stap-translate.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-translate.obj -MD -MP -MF $(DEPDIR)/stap-translate.Tpo -c -o stap-translate.obj `if test -f 'translate.cxx'; then $(CYGPATH_W) 'translate.cxx'; else $(CYGPATH_W) '$(srcdir)/translate.cxx'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-translate.Tpo $(DEPDIR)/stap-translate.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='translate.cxx' object='stap-translate.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-translate.obj `if test -f 'translate.cxx'; then $(CYGPATH_W) 'translate.cxx'; else $(CYGPATH_W) '$(srcdir)/translate.cxx'; fi` stap-tapsets.o: tapsets.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-tapsets.o -MD -MP -MF $(DEPDIR)/stap-tapsets.Tpo -c -o stap-tapsets.o `test -f 'tapsets.cxx' || echo '$(srcdir)/'`tapsets.cxx -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-tapsets.Tpo $(DEPDIR)/stap-tapsets.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-tapsets.o -MD -MP -MF $(DEPDIR)/stap-tapsets.Tpo -c -o stap-tapsets.o `test -f 'tapsets.cxx' || echo '$(srcdir)/'`tapsets.cxx +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-tapsets.Tpo $(DEPDIR)/stap-tapsets.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tapsets.cxx' object='stap-tapsets.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-tapsets.o `test -f 'tapsets.cxx' || echo '$(srcdir)/'`tapsets.cxx stap-tapsets.obj: tapsets.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-tapsets.obj -MD -MP -MF $(DEPDIR)/stap-tapsets.Tpo -c -o stap-tapsets.obj `if test -f 'tapsets.cxx'; then $(CYGPATH_W) 'tapsets.cxx'; else $(CYGPATH_W) '$(srcdir)/tapsets.cxx'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-tapsets.Tpo $(DEPDIR)/stap-tapsets.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-tapsets.obj -MD -MP -MF $(DEPDIR)/stap-tapsets.Tpo -c -o stap-tapsets.obj `if test -f 'tapsets.cxx'; then $(CYGPATH_W) 'tapsets.cxx'; else $(CYGPATH_W) '$(srcdir)/tapsets.cxx'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-tapsets.Tpo $(DEPDIR)/stap-tapsets.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tapsets.cxx' object='stap-tapsets.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-tapsets.obj `if test -f 'tapsets.cxx'; then $(CYGPATH_W) 'tapsets.cxx'; else $(CYGPATH_W) '$(srcdir)/tapsets.cxx'; fi` stap-buildrun.o: buildrun.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-buildrun.o -MD -MP -MF $(DEPDIR)/stap-buildrun.Tpo -c -o stap-buildrun.o `test -f 'buildrun.cxx' || echo '$(srcdir)/'`buildrun.cxx -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-buildrun.Tpo $(DEPDIR)/stap-buildrun.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-buildrun.o -MD -MP -MF $(DEPDIR)/stap-buildrun.Tpo -c -o stap-buildrun.o `test -f 'buildrun.cxx' || echo '$(srcdir)/'`buildrun.cxx +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-buildrun.Tpo $(DEPDIR)/stap-buildrun.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='buildrun.cxx' object='stap-buildrun.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-buildrun.o `test -f 'buildrun.cxx' || echo '$(srcdir)/'`buildrun.cxx stap-buildrun.obj: buildrun.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-buildrun.obj -MD -MP -MF $(DEPDIR)/stap-buildrun.Tpo -c -o stap-buildrun.obj `if test -f 'buildrun.cxx'; then $(CYGPATH_W) 'buildrun.cxx'; else $(CYGPATH_W) '$(srcdir)/buildrun.cxx'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-buildrun.Tpo $(DEPDIR)/stap-buildrun.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-buildrun.obj -MD -MP -MF $(DEPDIR)/stap-buildrun.Tpo -c -o stap-buildrun.obj `if test -f 'buildrun.cxx'; then $(CYGPATH_W) 'buildrun.cxx'; else $(CYGPATH_W) '$(srcdir)/buildrun.cxx'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-buildrun.Tpo $(DEPDIR)/stap-buildrun.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='buildrun.cxx' object='stap-buildrun.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-buildrun.obj `if test -f 'buildrun.cxx'; then $(CYGPATH_W) 'buildrun.cxx'; else $(CYGPATH_W) '$(srcdir)/buildrun.cxx'; fi` stap-hash.o: hash.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-hash.o -MD -MP -MF $(DEPDIR)/stap-hash.Tpo -c -o stap-hash.o `test -f 'hash.cxx' || echo '$(srcdir)/'`hash.cxx -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-hash.Tpo $(DEPDIR)/stap-hash.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-hash.o -MD -MP -MF $(DEPDIR)/stap-hash.Tpo -c -o stap-hash.o `test -f 'hash.cxx' || echo '$(srcdir)/'`hash.cxx +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-hash.Tpo $(DEPDIR)/stap-hash.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='hash.cxx' object='stap-hash.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-hash.o `test -f 'hash.cxx' || echo '$(srcdir)/'`hash.cxx stap-hash.obj: hash.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-hash.obj -MD -MP -MF $(DEPDIR)/stap-hash.Tpo -c -o stap-hash.obj `if test -f 'hash.cxx'; then $(CYGPATH_W) 'hash.cxx'; else $(CYGPATH_W) '$(srcdir)/hash.cxx'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-hash.Tpo $(DEPDIR)/stap-hash.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-hash.obj -MD -MP -MF $(DEPDIR)/stap-hash.Tpo -c -o stap-hash.obj `if test -f 'hash.cxx'; then $(CYGPATH_W) 'hash.cxx'; else $(CYGPATH_W) '$(srcdir)/hash.cxx'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-hash.Tpo $(DEPDIR)/stap-hash.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='hash.cxx' object='stap-hash.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-hash.obj `if test -f 'hash.cxx'; then $(CYGPATH_W) 'hash.cxx'; else $(CYGPATH_W) '$(srcdir)/hash.cxx'; fi` stap-cache.o: cache.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-cache.o -MD -MP -MF $(DEPDIR)/stap-cache.Tpo -c -o stap-cache.o `test -f 'cache.cxx' || echo '$(srcdir)/'`cache.cxx -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-cache.Tpo $(DEPDIR)/stap-cache.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-cache.o -MD -MP -MF $(DEPDIR)/stap-cache.Tpo -c -o stap-cache.o `test -f 'cache.cxx' || echo '$(srcdir)/'`cache.cxx +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-cache.Tpo $(DEPDIR)/stap-cache.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='cache.cxx' object='stap-cache.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-cache.o `test -f 'cache.cxx' || echo '$(srcdir)/'`cache.cxx stap-cache.obj: cache.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-cache.obj -MD -MP -MF $(DEPDIR)/stap-cache.Tpo -c -o stap-cache.obj `if test -f 'cache.cxx'; then $(CYGPATH_W) 'cache.cxx'; else $(CYGPATH_W) '$(srcdir)/cache.cxx'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-cache.Tpo $(DEPDIR)/stap-cache.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-cache.obj -MD -MP -MF $(DEPDIR)/stap-cache.Tpo -c -o stap-cache.obj `if test -f 'cache.cxx'; then $(CYGPATH_W) 'cache.cxx'; else $(CYGPATH_W) '$(srcdir)/cache.cxx'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-cache.Tpo $(DEPDIR)/stap-cache.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='cache.cxx' object='stap-cache.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-cache.obj `if test -f 'cache.cxx'; then $(CYGPATH_W) 'cache.cxx'; else $(CYGPATH_W) '$(srcdir)/cache.cxx'; fi` stap-util.o: util.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-util.o -MD -MP -MF $(DEPDIR)/stap-util.Tpo -c -o stap-util.o `test -f 'util.cxx' || echo '$(srcdir)/'`util.cxx -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-util.Tpo $(DEPDIR)/stap-util.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-util.o -MD -MP -MF $(DEPDIR)/stap-util.Tpo -c -o stap-util.o `test -f 'util.cxx' || echo '$(srcdir)/'`util.cxx +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-util.Tpo $(DEPDIR)/stap-util.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='util.cxx' object='stap-util.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-util.o `test -f 'util.cxx' || echo '$(srcdir)/'`util.cxx stap-util.obj: util.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-util.obj -MD -MP -MF $(DEPDIR)/stap-util.Tpo -c -o stap-util.obj `if test -f 'util.cxx'; then $(CYGPATH_W) 'util.cxx'; else $(CYGPATH_W) '$(srcdir)/util.cxx'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-util.Tpo $(DEPDIR)/stap-util.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-util.obj -MD -MP -MF $(DEPDIR)/stap-util.Tpo -c -o stap-util.obj `if test -f 'util.cxx'; then $(CYGPATH_W) 'util.cxx'; else $(CYGPATH_W) '$(srcdir)/util.cxx'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-util.Tpo $(DEPDIR)/stap-util.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='util.cxx' object='stap-util.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-util.obj `if test -f 'util.cxx'; then $(CYGPATH_W) 'util.cxx'; else $(CYGPATH_W) '$(srcdir)/util.cxx'; fi` stap-coveragedb.o: coveragedb.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-coveragedb.o -MD -MP -MF $(DEPDIR)/stap-coveragedb.Tpo -c -o stap-coveragedb.o `test -f 'coveragedb.cxx' || echo '$(srcdir)/'`coveragedb.cxx -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-coveragedb.Tpo $(DEPDIR)/stap-coveragedb.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-coveragedb.o -MD -MP -MF $(DEPDIR)/stap-coveragedb.Tpo -c -o stap-coveragedb.o `test -f 'coveragedb.cxx' || echo '$(srcdir)/'`coveragedb.cxx +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-coveragedb.Tpo $(DEPDIR)/stap-coveragedb.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='coveragedb.cxx' object='stap-coveragedb.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-coveragedb.o `test -f 'coveragedb.cxx' || echo '$(srcdir)/'`coveragedb.cxx stap-coveragedb.obj: coveragedb.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-coveragedb.obj -MD -MP -MF $(DEPDIR)/stap-coveragedb.Tpo -c -o stap-coveragedb.obj `if test -f 'coveragedb.cxx'; then $(CYGPATH_W) 'coveragedb.cxx'; else $(CYGPATH_W) '$(srcdir)/coveragedb.cxx'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-coveragedb.Tpo $(DEPDIR)/stap-coveragedb.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-coveragedb.obj -MD -MP -MF $(DEPDIR)/stap-coveragedb.Tpo -c -o stap-coveragedb.obj `if test -f 'coveragedb.cxx'; then $(CYGPATH_W) 'coveragedb.cxx'; else $(CYGPATH_W) '$(srcdir)/coveragedb.cxx'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-coveragedb.Tpo $(DEPDIR)/stap-coveragedb.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='coveragedb.cxx' object='stap-coveragedb.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-coveragedb.obj `if test -f 'coveragedb.cxx'; then $(CYGPATH_W) 'coveragedb.cxx'; else $(CYGPATH_W) '$(srcdir)/coveragedb.cxx'; fi` stap-dwarf_wrappers.o: dwarf_wrappers.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-dwarf_wrappers.o -MD -MP -MF $(DEPDIR)/stap-dwarf_wrappers.Tpo -c -o stap-dwarf_wrappers.o `test -f 'dwarf_wrappers.cxx' || echo '$(srcdir)/'`dwarf_wrappers.cxx -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-dwarf_wrappers.Tpo $(DEPDIR)/stap-dwarf_wrappers.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-dwarf_wrappers.o -MD -MP -MF $(DEPDIR)/stap-dwarf_wrappers.Tpo -c -o stap-dwarf_wrappers.o `test -f 'dwarf_wrappers.cxx' || echo '$(srcdir)/'`dwarf_wrappers.cxx +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-dwarf_wrappers.Tpo $(DEPDIR)/stap-dwarf_wrappers.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='dwarf_wrappers.cxx' object='stap-dwarf_wrappers.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-dwarf_wrappers.o `test -f 'dwarf_wrappers.cxx' || echo '$(srcdir)/'`dwarf_wrappers.cxx stap-dwarf_wrappers.obj: dwarf_wrappers.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-dwarf_wrappers.obj -MD -MP -MF $(DEPDIR)/stap-dwarf_wrappers.Tpo -c -o stap-dwarf_wrappers.obj `if test -f 'dwarf_wrappers.cxx'; then $(CYGPATH_W) 'dwarf_wrappers.cxx'; else $(CYGPATH_W) '$(srcdir)/dwarf_wrappers.cxx'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-dwarf_wrappers.Tpo $(DEPDIR)/stap-dwarf_wrappers.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-dwarf_wrappers.obj -MD -MP -MF $(DEPDIR)/stap-dwarf_wrappers.Tpo -c -o stap-dwarf_wrappers.obj `if test -f 'dwarf_wrappers.cxx'; then $(CYGPATH_W) 'dwarf_wrappers.cxx'; else $(CYGPATH_W) '$(srcdir)/dwarf_wrappers.cxx'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-dwarf_wrappers.Tpo $(DEPDIR)/stap-dwarf_wrappers.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='dwarf_wrappers.cxx' object='stap-dwarf_wrappers.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-dwarf_wrappers.obj `if test -f 'dwarf_wrappers.cxx'; then $(CYGPATH_W) 'dwarf_wrappers.cxx'; else $(CYGPATH_W) '$(srcdir)/dwarf_wrappers.cxx'; fi` stap-tapset-been.o: tapset-been.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-tapset-been.o -MD -MP -MF $(DEPDIR)/stap-tapset-been.Tpo -c -o stap-tapset-been.o `test -f 'tapset-been.cxx' || echo '$(srcdir)/'`tapset-been.cxx -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-tapset-been.Tpo $(DEPDIR)/stap-tapset-been.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-tapset-been.o -MD -MP -MF $(DEPDIR)/stap-tapset-been.Tpo -c -o stap-tapset-been.o `test -f 'tapset-been.cxx' || echo '$(srcdir)/'`tapset-been.cxx +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-tapset-been.Tpo $(DEPDIR)/stap-tapset-been.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tapset-been.cxx' object='stap-tapset-been.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-tapset-been.o `test -f 'tapset-been.cxx' || echo '$(srcdir)/'`tapset-been.cxx stap-tapset-been.obj: tapset-been.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-tapset-been.obj -MD -MP -MF $(DEPDIR)/stap-tapset-been.Tpo -c -o stap-tapset-been.obj `if test -f 'tapset-been.cxx'; then $(CYGPATH_W) 'tapset-been.cxx'; else $(CYGPATH_W) '$(srcdir)/tapset-been.cxx'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-tapset-been.Tpo $(DEPDIR)/stap-tapset-been.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-tapset-been.obj -MD -MP -MF $(DEPDIR)/stap-tapset-been.Tpo -c -o stap-tapset-been.obj `if test -f 'tapset-been.cxx'; then $(CYGPATH_W) 'tapset-been.cxx'; else $(CYGPATH_W) '$(srcdir)/tapset-been.cxx'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-tapset-been.Tpo $(DEPDIR)/stap-tapset-been.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tapset-been.cxx' object='stap-tapset-been.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-tapset-been.obj `if test -f 'tapset-been.cxx'; then $(CYGPATH_W) 'tapset-been.cxx'; else $(CYGPATH_W) '$(srcdir)/tapset-been.cxx'; fi` stap-tapset-procfs.o: tapset-procfs.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-tapset-procfs.o -MD -MP -MF $(DEPDIR)/stap-tapset-procfs.Tpo -c -o stap-tapset-procfs.o `test -f 'tapset-procfs.cxx' || echo '$(srcdir)/'`tapset-procfs.cxx -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-tapset-procfs.Tpo $(DEPDIR)/stap-tapset-procfs.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-tapset-procfs.o -MD -MP -MF $(DEPDIR)/stap-tapset-procfs.Tpo -c -o stap-tapset-procfs.o `test -f 'tapset-procfs.cxx' || echo '$(srcdir)/'`tapset-procfs.cxx +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-tapset-procfs.Tpo $(DEPDIR)/stap-tapset-procfs.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tapset-procfs.cxx' object='stap-tapset-procfs.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-tapset-procfs.o `test -f 'tapset-procfs.cxx' || echo '$(srcdir)/'`tapset-procfs.cxx stap-tapset-procfs.obj: tapset-procfs.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-tapset-procfs.obj -MD -MP -MF $(DEPDIR)/stap-tapset-procfs.Tpo -c -o stap-tapset-procfs.obj `if test -f 'tapset-procfs.cxx'; then $(CYGPATH_W) 'tapset-procfs.cxx'; else $(CYGPATH_W) '$(srcdir)/tapset-procfs.cxx'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-tapset-procfs.Tpo $(DEPDIR)/stap-tapset-procfs.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-tapset-procfs.obj -MD -MP -MF $(DEPDIR)/stap-tapset-procfs.Tpo -c -o stap-tapset-procfs.obj `if test -f 'tapset-procfs.cxx'; then $(CYGPATH_W) 'tapset-procfs.cxx'; else $(CYGPATH_W) '$(srcdir)/tapset-procfs.cxx'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-tapset-procfs.Tpo $(DEPDIR)/stap-tapset-procfs.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tapset-procfs.cxx' object='stap-tapset-procfs.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-tapset-procfs.obj `if test -f 'tapset-procfs.cxx'; then $(CYGPATH_W) 'tapset-procfs.cxx'; else $(CYGPATH_W) '$(srcdir)/tapset-procfs.cxx'; fi` stap-tapset-timers.o: tapset-timers.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-tapset-timers.o -MD -MP -MF $(DEPDIR)/stap-tapset-timers.Tpo -c -o stap-tapset-timers.o `test -f 'tapset-timers.cxx' || echo '$(srcdir)/'`tapset-timers.cxx -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-tapset-timers.Tpo $(DEPDIR)/stap-tapset-timers.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-tapset-timers.o -MD -MP -MF $(DEPDIR)/stap-tapset-timers.Tpo -c -o stap-tapset-timers.o `test -f 'tapset-timers.cxx' || echo '$(srcdir)/'`tapset-timers.cxx +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-tapset-timers.Tpo $(DEPDIR)/stap-tapset-timers.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tapset-timers.cxx' object='stap-tapset-timers.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-tapset-timers.o `test -f 'tapset-timers.cxx' || echo '$(srcdir)/'`tapset-timers.cxx stap-tapset-timers.obj: tapset-timers.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-tapset-timers.obj -MD -MP -MF $(DEPDIR)/stap-tapset-timers.Tpo -c -o stap-tapset-timers.obj `if test -f 'tapset-timers.cxx'; then $(CYGPATH_W) 'tapset-timers.cxx'; else $(CYGPATH_W) '$(srcdir)/tapset-timers.cxx'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-tapset-timers.Tpo $(DEPDIR)/stap-tapset-timers.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-tapset-timers.obj -MD -MP -MF $(DEPDIR)/stap-tapset-timers.Tpo -c -o stap-tapset-timers.obj `if test -f 'tapset-timers.cxx'; then $(CYGPATH_W) 'tapset-timers.cxx'; else $(CYGPATH_W) '$(srcdir)/tapset-timers.cxx'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-tapset-timers.Tpo $(DEPDIR)/stap-tapset-timers.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tapset-timers.cxx' object='stap-tapset-timers.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-tapset-timers.obj `if test -f 'tapset-timers.cxx'; then $(CYGPATH_W) 'tapset-timers.cxx'; else $(CYGPATH_W) '$(srcdir)/tapset-timers.cxx'; fi` stap-tapset-perfmon.o: tapset-perfmon.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-tapset-perfmon.o -MD -MP -MF $(DEPDIR)/stap-tapset-perfmon.Tpo -c -o stap-tapset-perfmon.o `test -f 'tapset-perfmon.cxx' || echo '$(srcdir)/'`tapset-perfmon.cxx -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-tapset-perfmon.Tpo $(DEPDIR)/stap-tapset-perfmon.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-tapset-perfmon.o -MD -MP -MF $(DEPDIR)/stap-tapset-perfmon.Tpo -c -o stap-tapset-perfmon.o `test -f 'tapset-perfmon.cxx' || echo '$(srcdir)/'`tapset-perfmon.cxx +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-tapset-perfmon.Tpo $(DEPDIR)/stap-tapset-perfmon.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tapset-perfmon.cxx' object='stap-tapset-perfmon.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-tapset-perfmon.o `test -f 'tapset-perfmon.cxx' || echo '$(srcdir)/'`tapset-perfmon.cxx stap-tapset-perfmon.obj: tapset-perfmon.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-tapset-perfmon.obj -MD -MP -MF $(DEPDIR)/stap-tapset-perfmon.Tpo -c -o stap-tapset-perfmon.obj `if test -f 'tapset-perfmon.cxx'; then $(CYGPATH_W) 'tapset-perfmon.cxx'; else $(CYGPATH_W) '$(srcdir)/tapset-perfmon.cxx'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-tapset-perfmon.Tpo $(DEPDIR)/stap-tapset-perfmon.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-tapset-perfmon.obj -MD -MP -MF $(DEPDIR)/stap-tapset-perfmon.Tpo -c -o stap-tapset-perfmon.obj `if test -f 'tapset-perfmon.cxx'; then $(CYGPATH_W) 'tapset-perfmon.cxx'; else $(CYGPATH_W) '$(srcdir)/tapset-perfmon.cxx'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-tapset-perfmon.Tpo $(DEPDIR)/stap-tapset-perfmon.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tapset-perfmon.cxx' object='stap-tapset-perfmon.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-tapset-perfmon.obj `if test -f 'tapset-perfmon.cxx'; then $(CYGPATH_W) 'tapset-perfmon.cxx'; else $(CYGPATH_W) '$(srcdir)/tapset-perfmon.cxx'; fi` stap-tapset-mark.o: tapset-mark.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-tapset-mark.o -MD -MP -MF $(DEPDIR)/stap-tapset-mark.Tpo -c -o stap-tapset-mark.o `test -f 'tapset-mark.cxx' || echo '$(srcdir)/'`tapset-mark.cxx -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-tapset-mark.Tpo $(DEPDIR)/stap-tapset-mark.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-tapset-mark.o -MD -MP -MF $(DEPDIR)/stap-tapset-mark.Tpo -c -o stap-tapset-mark.o `test -f 'tapset-mark.cxx' || echo '$(srcdir)/'`tapset-mark.cxx +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-tapset-mark.Tpo $(DEPDIR)/stap-tapset-mark.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tapset-mark.cxx' object='stap-tapset-mark.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-tapset-mark.o `test -f 'tapset-mark.cxx' || echo '$(srcdir)/'`tapset-mark.cxx stap-tapset-mark.obj: tapset-mark.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-tapset-mark.obj -MD -MP -MF $(DEPDIR)/stap-tapset-mark.Tpo -c -o stap-tapset-mark.obj `if test -f 'tapset-mark.cxx'; then $(CYGPATH_W) 'tapset-mark.cxx'; else $(CYGPATH_W) '$(srcdir)/tapset-mark.cxx'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-tapset-mark.Tpo $(DEPDIR)/stap-tapset-mark.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-tapset-mark.obj -MD -MP -MF $(DEPDIR)/stap-tapset-mark.Tpo -c -o stap-tapset-mark.obj `if test -f 'tapset-mark.cxx'; then $(CYGPATH_W) 'tapset-mark.cxx'; else $(CYGPATH_W) '$(srcdir)/tapset-mark.cxx'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-tapset-mark.Tpo $(DEPDIR)/stap-tapset-mark.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tapset-mark.cxx' object='stap-tapset-mark.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-tapset-mark.obj `if test -f 'tapset-mark.cxx'; then $(CYGPATH_W) 'tapset-mark.cxx'; else $(CYGPATH_W) '$(srcdir)/tapset-mark.cxx'; fi` stap-tapset-itrace.o: tapset-itrace.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-tapset-itrace.o -MD -MP -MF $(DEPDIR)/stap-tapset-itrace.Tpo -c -o stap-tapset-itrace.o `test -f 'tapset-itrace.cxx' || echo '$(srcdir)/'`tapset-itrace.cxx -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-tapset-itrace.Tpo $(DEPDIR)/stap-tapset-itrace.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-tapset-itrace.o -MD -MP -MF $(DEPDIR)/stap-tapset-itrace.Tpo -c -o stap-tapset-itrace.o `test -f 'tapset-itrace.cxx' || echo '$(srcdir)/'`tapset-itrace.cxx +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-tapset-itrace.Tpo $(DEPDIR)/stap-tapset-itrace.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tapset-itrace.cxx' object='stap-tapset-itrace.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-tapset-itrace.o `test -f 'tapset-itrace.cxx' || echo '$(srcdir)/'`tapset-itrace.cxx stap-tapset-itrace.obj: tapset-itrace.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-tapset-itrace.obj -MD -MP -MF $(DEPDIR)/stap-tapset-itrace.Tpo -c -o stap-tapset-itrace.obj `if test -f 'tapset-itrace.cxx'; then $(CYGPATH_W) 'tapset-itrace.cxx'; else $(CYGPATH_W) '$(srcdir)/tapset-itrace.cxx'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-tapset-itrace.Tpo $(DEPDIR)/stap-tapset-itrace.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-tapset-itrace.obj -MD -MP -MF $(DEPDIR)/stap-tapset-itrace.Tpo -c -o stap-tapset-itrace.obj `if test -f 'tapset-itrace.cxx'; then $(CYGPATH_W) 'tapset-itrace.cxx'; else $(CYGPATH_W) '$(srcdir)/tapset-itrace.cxx'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-tapset-itrace.Tpo $(DEPDIR)/stap-tapset-itrace.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tapset-itrace.cxx' object='stap-tapset-itrace.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-tapset-itrace.obj `if test -f 'tapset-itrace.cxx'; then $(CYGPATH_W) 'tapset-itrace.cxx'; else $(CYGPATH_W) '$(srcdir)/tapset-itrace.cxx'; fi` stap-tapset-utrace.o: tapset-utrace.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-tapset-utrace.o -MD -MP -MF $(DEPDIR)/stap-tapset-utrace.Tpo -c -o stap-tapset-utrace.o `test -f 'tapset-utrace.cxx' || echo '$(srcdir)/'`tapset-utrace.cxx -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-tapset-utrace.Tpo $(DEPDIR)/stap-tapset-utrace.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-tapset-utrace.o -MD -MP -MF $(DEPDIR)/stap-tapset-utrace.Tpo -c -o stap-tapset-utrace.o `test -f 'tapset-utrace.cxx' || echo '$(srcdir)/'`tapset-utrace.cxx +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-tapset-utrace.Tpo $(DEPDIR)/stap-tapset-utrace.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tapset-utrace.cxx' object='stap-tapset-utrace.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-tapset-utrace.o `test -f 'tapset-utrace.cxx' || echo '$(srcdir)/'`tapset-utrace.cxx stap-tapset-utrace.obj: tapset-utrace.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-tapset-utrace.obj -MD -MP -MF $(DEPDIR)/stap-tapset-utrace.Tpo -c -o stap-tapset-utrace.obj `if test -f 'tapset-utrace.cxx'; then $(CYGPATH_W) 'tapset-utrace.cxx'; else $(CYGPATH_W) '$(srcdir)/tapset-utrace.cxx'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-tapset-utrace.Tpo $(DEPDIR)/stap-tapset-utrace.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-tapset-utrace.obj -MD -MP -MF $(DEPDIR)/stap-tapset-utrace.Tpo -c -o stap-tapset-utrace.obj `if test -f 'tapset-utrace.cxx'; then $(CYGPATH_W) 'tapset-utrace.cxx'; else $(CYGPATH_W) '$(srcdir)/tapset-utrace.cxx'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-tapset-utrace.Tpo $(DEPDIR)/stap-tapset-utrace.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tapset-utrace.cxx' object='stap-tapset-utrace.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-tapset-utrace.obj `if test -f 'tapset-utrace.cxx'; then $(CYGPATH_W) 'tapset-utrace.cxx'; else $(CYGPATH_W) '$(srcdir)/tapset-utrace.cxx'; fi` stap-task_finder.o: task_finder.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-task_finder.o -MD -MP -MF $(DEPDIR)/stap-task_finder.Tpo -c -o stap-task_finder.o `test -f 'task_finder.cxx' || echo '$(srcdir)/'`task_finder.cxx -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-task_finder.Tpo $(DEPDIR)/stap-task_finder.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-task_finder.o -MD -MP -MF $(DEPDIR)/stap-task_finder.Tpo -c -o stap-task_finder.o `test -f 'task_finder.cxx' || echo '$(srcdir)/'`task_finder.cxx +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-task_finder.Tpo $(DEPDIR)/stap-task_finder.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='task_finder.cxx' object='stap-task_finder.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-task_finder.o `test -f 'task_finder.cxx' || echo '$(srcdir)/'`task_finder.cxx stap-task_finder.obj: task_finder.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-task_finder.obj -MD -MP -MF $(DEPDIR)/stap-task_finder.Tpo -c -o stap-task_finder.obj `if test -f 'task_finder.cxx'; then $(CYGPATH_W) 'task_finder.cxx'; else $(CYGPATH_W) '$(srcdir)/task_finder.cxx'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-task_finder.Tpo $(DEPDIR)/stap-task_finder.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-task_finder.obj -MD -MP -MF $(DEPDIR)/stap-task_finder.Tpo -c -o stap-task_finder.obj `if test -f 'task_finder.cxx'; then $(CYGPATH_W) 'task_finder.cxx'; else $(CYGPATH_W) '$(srcdir)/task_finder.cxx'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-task_finder.Tpo $(DEPDIR)/stap-task_finder.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='task_finder.cxx' object='stap-task_finder.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-task_finder.obj `if test -f 'task_finder.cxx'; then $(CYGPATH_W) 'task_finder.cxx'; else $(CYGPATH_W) '$(srcdir)/task_finder.cxx'; fi` stap-dwflpp.o: dwflpp.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-dwflpp.o -MD -MP -MF $(DEPDIR)/stap-dwflpp.Tpo -c -o stap-dwflpp.o `test -f 'dwflpp.cxx' || echo '$(srcdir)/'`dwflpp.cxx -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-dwflpp.Tpo $(DEPDIR)/stap-dwflpp.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-dwflpp.o -MD -MP -MF $(DEPDIR)/stap-dwflpp.Tpo -c -o stap-dwflpp.o `test -f 'dwflpp.cxx' || echo '$(srcdir)/'`dwflpp.cxx +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-dwflpp.Tpo $(DEPDIR)/stap-dwflpp.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='dwflpp.cxx' object='stap-dwflpp.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-dwflpp.o `test -f 'dwflpp.cxx' || echo '$(srcdir)/'`dwflpp.cxx stap-dwflpp.obj: dwflpp.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-dwflpp.obj -MD -MP -MF $(DEPDIR)/stap-dwflpp.Tpo -c -o stap-dwflpp.obj `if test -f 'dwflpp.cxx'; then $(CYGPATH_W) 'dwflpp.cxx'; else $(CYGPATH_W) '$(srcdir)/dwflpp.cxx'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-dwflpp.Tpo $(DEPDIR)/stap-dwflpp.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-dwflpp.obj -MD -MP -MF $(DEPDIR)/stap-dwflpp.Tpo -c -o stap-dwflpp.obj `if test -f 'dwflpp.cxx'; then $(CYGPATH_W) 'dwflpp.cxx'; else $(CYGPATH_W) '$(srcdir)/dwflpp.cxx'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-dwflpp.Tpo $(DEPDIR)/stap-dwflpp.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='dwflpp.cxx' object='stap-dwflpp.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-dwflpp.obj `if test -f 'dwflpp.cxx'; then $(CYGPATH_W) 'dwflpp.cxx'; else $(CYGPATH_W) '$(srcdir)/dwflpp.cxx'; fi` stap-rpm_finder.o: rpm_finder.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-rpm_finder.o -MD -MP -MF $(DEPDIR)/stap-rpm_finder.Tpo -c -o stap-rpm_finder.o `test -f 'rpm_finder.cxx' || echo '$(srcdir)/'`rpm_finder.cxx -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-rpm_finder.Tpo $(DEPDIR)/stap-rpm_finder.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-rpm_finder.o -MD -MP -MF $(DEPDIR)/stap-rpm_finder.Tpo -c -o stap-rpm_finder.o `test -f 'rpm_finder.cxx' || echo '$(srcdir)/'`rpm_finder.cxx +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-rpm_finder.Tpo $(DEPDIR)/stap-rpm_finder.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='rpm_finder.cxx' object='stap-rpm_finder.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-rpm_finder.o `test -f 'rpm_finder.cxx' || echo '$(srcdir)/'`rpm_finder.cxx stap-rpm_finder.obj: rpm_finder.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-rpm_finder.obj -MD -MP -MF $(DEPDIR)/stap-rpm_finder.Tpo -c -o stap-rpm_finder.obj `if test -f 'rpm_finder.cxx'; then $(CYGPATH_W) 'rpm_finder.cxx'; else $(CYGPATH_W) '$(srcdir)/rpm_finder.cxx'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-rpm_finder.Tpo $(DEPDIR)/stap-rpm_finder.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-rpm_finder.obj -MD -MP -MF $(DEPDIR)/stap-rpm_finder.Tpo -c -o stap-rpm_finder.obj `if test -f 'rpm_finder.cxx'; then $(CYGPATH_W) 'rpm_finder.cxx'; else $(CYGPATH_W) '$(srcdir)/rpm_finder.cxx'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-rpm_finder.Tpo $(DEPDIR)/stap-rpm_finder.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='rpm_finder.cxx' object='stap-rpm_finder.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-rpm_finder.obj `if test -f 'rpm_finder.cxx'; then $(CYGPATH_W) 'rpm_finder.cxx'; else $(CYGPATH_W) '$(srcdir)/rpm_finder.cxx'; fi` stap-setupdwfl.o: setupdwfl.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-setupdwfl.o -MD -MP -MF $(DEPDIR)/stap-setupdwfl.Tpo -c -o stap-setupdwfl.o `test -f 'setupdwfl.cxx' || echo '$(srcdir)/'`setupdwfl.cxx -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-setupdwfl.Tpo $(DEPDIR)/stap-setupdwfl.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-setupdwfl.o -MD -MP -MF $(DEPDIR)/stap-setupdwfl.Tpo -c -o stap-setupdwfl.o `test -f 'setupdwfl.cxx' || echo '$(srcdir)/'`setupdwfl.cxx +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-setupdwfl.Tpo $(DEPDIR)/stap-setupdwfl.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='setupdwfl.cxx' object='stap-setupdwfl.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-setupdwfl.o `test -f 'setupdwfl.cxx' || echo '$(srcdir)/'`setupdwfl.cxx stap-setupdwfl.obj: setupdwfl.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-setupdwfl.obj -MD -MP -MF $(DEPDIR)/stap-setupdwfl.Tpo -c -o stap-setupdwfl.obj `if test -f 'setupdwfl.cxx'; then $(CYGPATH_W) 'setupdwfl.cxx'; else $(CYGPATH_W) '$(srcdir)/setupdwfl.cxx'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap-setupdwfl.Tpo $(DEPDIR)/stap-setupdwfl.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -MT stap-setupdwfl.obj -MD -MP -MF $(DEPDIR)/stap-setupdwfl.Tpo -c -o stap-setupdwfl.obj `if test -f 'setupdwfl.cxx'; then $(CYGPATH_W) 'setupdwfl.cxx'; else $(CYGPATH_W) '$(srcdir)/setupdwfl.cxx'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap-setupdwfl.Tpo $(DEPDIR)/stap-setupdwfl.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='setupdwfl.cxx' object='stap-setupdwfl.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_CPPFLAGS) $(CPPFLAGS) $(stap_CXXFLAGS) $(CXXFLAGS) -c -o stap-setupdwfl.obj `if test -f 'setupdwfl.cxx'; then $(CYGPATH_W) 'setupdwfl.cxx'; else $(CYGPATH_W) '$(srcdir)/setupdwfl.cxx'; fi` stap_sign_module-modsign.o: modsign.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_sign_module_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT stap_sign_module-modsign.o -MD -MP -MF $(DEPDIR)/stap_sign_module-modsign.Tpo -c -o stap_sign_module-modsign.o `test -f 'modsign.cxx' || echo '$(srcdir)/'`modsign.cxx -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap_sign_module-modsign.Tpo $(DEPDIR)/stap_sign_module-modsign.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_sign_module_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT stap_sign_module-modsign.o -MD -MP -MF $(DEPDIR)/stap_sign_module-modsign.Tpo -c -o stap_sign_module-modsign.o `test -f 'modsign.cxx' || echo '$(srcdir)/'`modsign.cxx +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap_sign_module-modsign.Tpo $(DEPDIR)/stap_sign_module-modsign.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='modsign.cxx' object='stap_sign_module-modsign.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_sign_module_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o stap_sign_module-modsign.o `test -f 'modsign.cxx' || echo '$(srcdir)/'`modsign.cxx stap_sign_module-modsign.obj: modsign.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_sign_module_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT stap_sign_module-modsign.obj -MD -MP -MF $(DEPDIR)/stap_sign_module-modsign.Tpo -c -o stap_sign_module-modsign.obj `if test -f 'modsign.cxx'; then $(CYGPATH_W) 'modsign.cxx'; else $(CYGPATH_W) '$(srcdir)/modsign.cxx'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stap_sign_module-modsign.Tpo $(DEPDIR)/stap_sign_module-modsign.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_sign_module_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT stap_sign_module-modsign.obj -MD -MP -MF $(DEPDIR)/stap_sign_module-modsign.Tpo -c -o stap_sign_module-modsign.obj `if test -f 'modsign.cxx'; then $(CYGPATH_W) 'modsign.cxx'; else $(CYGPATH_W) '$(srcdir)/modsign.cxx'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stap_sign_module-modsign.Tpo $(DEPDIR)/stap_sign_module-modsign.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='modsign.cxx' object='stap_sign_module-modsign.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stap_sign_module_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o stap_sign_module-modsign.obj `if test -f 'modsign.cxx'; then $(CYGPATH_W) 'modsign.cxx'; else $(CYGPATH_W) '$(srcdir)/modsign.cxx'; fi` diff --git a/aclocal.m4 b/aclocal.m4 index df70f994..af40323c 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1086,6 +1086,33 @@ Check your system clock]) fi AC_MSG_RESULT(yes)]) +# Copyright (C) 2009 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 1 + +# AM_SILENT_RULES([DEFAULT]) +# -------------------------- +# Enable less verbose build rules; with the default set to DEFAULT +# (`yes' being less verbose, `no' or empty being verbose). +AC_DEFUN([AM_SILENT_RULES], +[AC_ARG_ENABLE([silent-rules], +[ --enable-silent-rules less verbose build output (undo: `make V=1') + --disable-silent-rules verbose build output (undo: `make V=0')]) +case $enable_silent_rules in +yes) AM_DEFAULT_VERBOSITY=0;; +no) AM_DEFAULT_VERBOSITY=1;; +*) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; +esac +AC_SUBST([AM_DEFAULT_VERBOSITY])dnl +AM_BACKSLASH='\' +AC_SUBST([AM_BACKSLASH])dnl +_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl +]) + # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation diff --git a/configure b/configure index aa762fff..b6beec3a 100755 --- a/configure +++ b/configure @@ -717,6 +717,8 @@ LDFLAGS CFLAGS CC LN_S +AM_BACKSLASH +AM_DEFAULT_VERBOSITY MAINT MAINTAINER_MODE_FALSE MAINTAINER_MODE_TRUE @@ -784,6 +786,7 @@ ac_subst_files='' ac_user_opts=' enable_option_checking enable_maintainer_mode +enable_silent_rules enable_dependency_tracking enable_perfmon enable_prologues @@ -1447,6 +1450,8 @@ Optional Features: --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer + --enable-silent-rules less verbose build output (undo: `make V=1') + --disable-silent-rules verbose build output (undo: `make V=0') --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --enable-perfmon[=DIRECTORY] @@ -2499,6 +2504,19 @@ fi +# Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in +yes) AM_DEFAULT_VERBOSITY=0;; +no) AM_DEFAULT_VERBOSITY=1;; +*) AM_DEFAULT_VERBOSITY=0;; +esac +AM_BACKSLASH='\' + + mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; diff --git a/configure.ac b/configure.ac index b088e84a..b1879fdd 100644 --- a/configure.ac +++ b/configure.ac @@ -8,6 +8,8 @@ AC_PREREQ(2.59) AM_INIT_AUTOMAKE AM_MAINTAINER_MODE +m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) + AM_PROG_MKDIR_P AC_SUBST(MKDIR_P) AC_PROG_LN_S diff --git a/doc/Makefile.in b/doc/Makefile.in index e91516e0..793abea2 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -43,6 +43,12 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ @@ -88,6 +94,7 @@ am__relativize = \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ diff --git a/doc/SystemTap_Tapset_Reference/Makefile.in b/doc/SystemTap_Tapset_Reference/Makefile.in index 07a0416c..a088bda6 100644 --- a/doc/SystemTap_Tapset_Reference/Makefile.in +++ b/doc/SystemTap_Tapset_Reference/Makefile.in @@ -55,8 +55,20 @@ am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; SOURCES = docproc.c DIST_SOURCES = docproc.c ETAGS = etags @@ -64,6 +76,7 @@ CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -229,7 +242,7 @@ clean-noinstPROGRAMS: -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS) docproc$(EXEEXT): $(docproc_OBJECTS) $(docproc_DEPENDENCIES) @rm -f docproc$(EXEEXT) - $(LINK) $(docproc_OBJECTS) $(docproc_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(docproc_OBJECTS) $(docproc_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -240,15 +253,17 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/docproc.Po@am__quote@ .c.o: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` diff --git a/grapher/Makefile.in b/grapher/Makefile.in index 16f78dc9..0c40336d 100644 --- a/grapher/Makefile.in +++ b/grapher/Makefile.in @@ -65,11 +65,26 @@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_$(V)) +am__v_CXX_ = $(am__v_CXX_$(AM_DEFAULT_VERBOSITY)) +am__v_CXX_0 = @echo " CXX " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ CXXLD = $(CXX) CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -o $@ +AM_V_CXXLD = $(am__v_CXXLD_$(V)) +am__v_CXXLD_ = $(am__v_CXXLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CXXLD_0 = @echo " CXXLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(stapgraph_SOURCES) DIST_SOURCES = $(am__stapgraph_SOURCES_DIST) am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; @@ -103,6 +118,7 @@ CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -306,7 +322,7 @@ clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) stapgraph$(EXEEXT): $(stapgraph_OBJECTS) $(stapgraph_DEPENDENCIES) @rm -f stapgraph$(EXEEXT) - $(stapgraph_LINK) $(stapgraph_OBJECTS) $(stapgraph_LDADD) $(LIBS) + $(AM_V_CXXLD)$(stapgraph_LINK) $(stapgraph_OBJECTS) $(stapgraph_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -321,85 +337,97 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stapgraph-grapher.Po@am__quote@ .cxx.o: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` stapgraph-grapher.o: grapher.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stapgraph_CPPFLAGS) $(CPPFLAGS) $(stapgraph_CXXFLAGS) $(CXXFLAGS) -MT stapgraph-grapher.o -MD -MP -MF $(DEPDIR)/stapgraph-grapher.Tpo -c -o stapgraph-grapher.o `test -f 'grapher.cxx' || echo '$(srcdir)/'`grapher.cxx -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stapgraph-grapher.Tpo $(DEPDIR)/stapgraph-grapher.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stapgraph_CPPFLAGS) $(CPPFLAGS) $(stapgraph_CXXFLAGS) $(CXXFLAGS) -MT stapgraph-grapher.o -MD -MP -MF $(DEPDIR)/stapgraph-grapher.Tpo -c -o stapgraph-grapher.o `test -f 'grapher.cxx' || echo '$(srcdir)/'`grapher.cxx +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stapgraph-grapher.Tpo $(DEPDIR)/stapgraph-grapher.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='grapher.cxx' object='stapgraph-grapher.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stapgraph_CPPFLAGS) $(CPPFLAGS) $(stapgraph_CXXFLAGS) $(CXXFLAGS) -c -o stapgraph-grapher.o `test -f 'grapher.cxx' || echo '$(srcdir)/'`grapher.cxx stapgraph-grapher.obj: grapher.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stapgraph_CPPFLAGS) $(CPPFLAGS) $(stapgraph_CXXFLAGS) $(CXXFLAGS) -MT stapgraph-grapher.obj -MD -MP -MF $(DEPDIR)/stapgraph-grapher.Tpo -c -o stapgraph-grapher.obj `if test -f 'grapher.cxx'; then $(CYGPATH_W) 'grapher.cxx'; else $(CYGPATH_W) '$(srcdir)/grapher.cxx'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stapgraph-grapher.Tpo $(DEPDIR)/stapgraph-grapher.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stapgraph_CPPFLAGS) $(CPPFLAGS) $(stapgraph_CXXFLAGS) $(CXXFLAGS) -MT stapgraph-grapher.obj -MD -MP -MF $(DEPDIR)/stapgraph-grapher.Tpo -c -o stapgraph-grapher.obj `if test -f 'grapher.cxx'; then $(CYGPATH_W) 'grapher.cxx'; else $(CYGPATH_W) '$(srcdir)/grapher.cxx'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stapgraph-grapher.Tpo $(DEPDIR)/stapgraph-grapher.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='grapher.cxx' object='stapgraph-grapher.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stapgraph_CPPFLAGS) $(CPPFLAGS) $(stapgraph_CXXFLAGS) $(CXXFLAGS) -c -o stapgraph-grapher.obj `if test -f 'grapher.cxx'; then $(CYGPATH_W) 'grapher.cxx'; else $(CYGPATH_W) '$(srcdir)/grapher.cxx'; fi` stapgraph-StapParser.o: StapParser.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stapgraph_CPPFLAGS) $(CPPFLAGS) $(stapgraph_CXXFLAGS) $(CXXFLAGS) -MT stapgraph-StapParser.o -MD -MP -MF $(DEPDIR)/stapgraph-StapParser.Tpo -c -o stapgraph-StapParser.o `test -f 'StapParser.cxx' || echo '$(srcdir)/'`StapParser.cxx -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stapgraph-StapParser.Tpo $(DEPDIR)/stapgraph-StapParser.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stapgraph_CPPFLAGS) $(CPPFLAGS) $(stapgraph_CXXFLAGS) $(CXXFLAGS) -MT stapgraph-StapParser.o -MD -MP -MF $(DEPDIR)/stapgraph-StapParser.Tpo -c -o stapgraph-StapParser.o `test -f 'StapParser.cxx' || echo '$(srcdir)/'`StapParser.cxx +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stapgraph-StapParser.Tpo $(DEPDIR)/stapgraph-StapParser.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='StapParser.cxx' object='stapgraph-StapParser.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stapgraph_CPPFLAGS) $(CPPFLAGS) $(stapgraph_CXXFLAGS) $(CXXFLAGS) -c -o stapgraph-StapParser.o `test -f 'StapParser.cxx' || echo '$(srcdir)/'`StapParser.cxx stapgraph-StapParser.obj: StapParser.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stapgraph_CPPFLAGS) $(CPPFLAGS) $(stapgraph_CXXFLAGS) $(CXXFLAGS) -MT stapgraph-StapParser.obj -MD -MP -MF $(DEPDIR)/stapgraph-StapParser.Tpo -c -o stapgraph-StapParser.obj `if test -f 'StapParser.cxx'; then $(CYGPATH_W) 'StapParser.cxx'; else $(CYGPATH_W) '$(srcdir)/StapParser.cxx'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stapgraph-StapParser.Tpo $(DEPDIR)/stapgraph-StapParser.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stapgraph_CPPFLAGS) $(CPPFLAGS) $(stapgraph_CXXFLAGS) $(CXXFLAGS) -MT stapgraph-StapParser.obj -MD -MP -MF $(DEPDIR)/stapgraph-StapParser.Tpo -c -o stapgraph-StapParser.obj `if test -f 'StapParser.cxx'; then $(CYGPATH_W) 'StapParser.cxx'; else $(CYGPATH_W) '$(srcdir)/StapParser.cxx'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stapgraph-StapParser.Tpo $(DEPDIR)/stapgraph-StapParser.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='StapParser.cxx' object='stapgraph-StapParser.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stapgraph_CPPFLAGS) $(CPPFLAGS) $(stapgraph_CXXFLAGS) $(CXXFLAGS) -c -o stapgraph-StapParser.obj `if test -f 'StapParser.cxx'; then $(CYGPATH_W) 'StapParser.cxx'; else $(CYGPATH_W) '$(srcdir)/StapParser.cxx'; fi` stapgraph-Graph.o: Graph.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stapgraph_CPPFLAGS) $(CPPFLAGS) $(stapgraph_CXXFLAGS) $(CXXFLAGS) -MT stapgraph-Graph.o -MD -MP -MF $(DEPDIR)/stapgraph-Graph.Tpo -c -o stapgraph-Graph.o `test -f 'Graph.cxx' || echo '$(srcdir)/'`Graph.cxx -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stapgraph-Graph.Tpo $(DEPDIR)/stapgraph-Graph.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stapgraph_CPPFLAGS) $(CPPFLAGS) $(stapgraph_CXXFLAGS) $(CXXFLAGS) -MT stapgraph-Graph.o -MD -MP -MF $(DEPDIR)/stapgraph-Graph.Tpo -c -o stapgraph-Graph.o `test -f 'Graph.cxx' || echo '$(srcdir)/'`Graph.cxx +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stapgraph-Graph.Tpo $(DEPDIR)/stapgraph-Graph.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Graph.cxx' object='stapgraph-Graph.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stapgraph_CPPFLAGS) $(CPPFLAGS) $(stapgraph_CXXFLAGS) $(CXXFLAGS) -c -o stapgraph-Graph.o `test -f 'Graph.cxx' || echo '$(srcdir)/'`Graph.cxx stapgraph-Graph.obj: Graph.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stapgraph_CPPFLAGS) $(CPPFLAGS) $(stapgraph_CXXFLAGS) $(CXXFLAGS) -MT stapgraph-Graph.obj -MD -MP -MF $(DEPDIR)/stapgraph-Graph.Tpo -c -o stapgraph-Graph.obj `if test -f 'Graph.cxx'; then $(CYGPATH_W) 'Graph.cxx'; else $(CYGPATH_W) '$(srcdir)/Graph.cxx'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stapgraph-Graph.Tpo $(DEPDIR)/stapgraph-Graph.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stapgraph_CPPFLAGS) $(CPPFLAGS) $(stapgraph_CXXFLAGS) $(CXXFLAGS) -MT stapgraph-Graph.obj -MD -MP -MF $(DEPDIR)/stapgraph-Graph.Tpo -c -o stapgraph-Graph.obj `if test -f 'Graph.cxx'; then $(CYGPATH_W) 'Graph.cxx'; else $(CYGPATH_W) '$(srcdir)/Graph.cxx'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stapgraph-Graph.Tpo $(DEPDIR)/stapgraph-Graph.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Graph.cxx' object='stapgraph-Graph.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stapgraph_CPPFLAGS) $(CPPFLAGS) $(stapgraph_CXXFLAGS) $(CXXFLAGS) -c -o stapgraph-Graph.obj `if test -f 'Graph.cxx'; then $(CYGPATH_W) 'Graph.cxx'; else $(CYGPATH_W) '$(srcdir)/Graph.cxx'; fi` stapgraph-GraphWidget.o: GraphWidget.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stapgraph_CPPFLAGS) $(CPPFLAGS) $(stapgraph_CXXFLAGS) $(CXXFLAGS) -MT stapgraph-GraphWidget.o -MD -MP -MF $(DEPDIR)/stapgraph-GraphWidget.Tpo -c -o stapgraph-GraphWidget.o `test -f 'GraphWidget.cxx' || echo '$(srcdir)/'`GraphWidget.cxx -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stapgraph-GraphWidget.Tpo $(DEPDIR)/stapgraph-GraphWidget.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stapgraph_CPPFLAGS) $(CPPFLAGS) $(stapgraph_CXXFLAGS) $(CXXFLAGS) -MT stapgraph-GraphWidget.o -MD -MP -MF $(DEPDIR)/stapgraph-GraphWidget.Tpo -c -o stapgraph-GraphWidget.o `test -f 'GraphWidget.cxx' || echo '$(srcdir)/'`GraphWidget.cxx +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stapgraph-GraphWidget.Tpo $(DEPDIR)/stapgraph-GraphWidget.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GraphWidget.cxx' object='stapgraph-GraphWidget.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stapgraph_CPPFLAGS) $(CPPFLAGS) $(stapgraph_CXXFLAGS) $(CXXFLAGS) -c -o stapgraph-GraphWidget.o `test -f 'GraphWidget.cxx' || echo '$(srcdir)/'`GraphWidget.cxx stapgraph-GraphWidget.obj: GraphWidget.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stapgraph_CPPFLAGS) $(CPPFLAGS) $(stapgraph_CXXFLAGS) $(CXXFLAGS) -MT stapgraph-GraphWidget.obj -MD -MP -MF $(DEPDIR)/stapgraph-GraphWidget.Tpo -c -o stapgraph-GraphWidget.obj `if test -f 'GraphWidget.cxx'; then $(CYGPATH_W) 'GraphWidget.cxx'; else $(CYGPATH_W) '$(srcdir)/GraphWidget.cxx'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stapgraph-GraphWidget.Tpo $(DEPDIR)/stapgraph-GraphWidget.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stapgraph_CPPFLAGS) $(CPPFLAGS) $(stapgraph_CXXFLAGS) $(CXXFLAGS) -MT stapgraph-GraphWidget.obj -MD -MP -MF $(DEPDIR)/stapgraph-GraphWidget.Tpo -c -o stapgraph-GraphWidget.obj `if test -f 'GraphWidget.cxx'; then $(CYGPATH_W) 'GraphWidget.cxx'; else $(CYGPATH_W) '$(srcdir)/GraphWidget.cxx'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stapgraph-GraphWidget.Tpo $(DEPDIR)/stapgraph-GraphWidget.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GraphWidget.cxx' object='stapgraph-GraphWidget.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stapgraph_CPPFLAGS) $(CPPFLAGS) $(stapgraph_CXXFLAGS) $(CXXFLAGS) -c -o stapgraph-GraphWidget.obj `if test -f 'GraphWidget.cxx'; then $(CYGPATH_W) 'GraphWidget.cxx'; else $(CYGPATH_W) '$(srcdir)/GraphWidget.cxx'; fi` stapgraph-CairoWidget.o: CairoWidget.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stapgraph_CPPFLAGS) $(CPPFLAGS) $(stapgraph_CXXFLAGS) $(CXXFLAGS) -MT stapgraph-CairoWidget.o -MD -MP -MF $(DEPDIR)/stapgraph-CairoWidget.Tpo -c -o stapgraph-CairoWidget.o `test -f 'CairoWidget.cxx' || echo '$(srcdir)/'`CairoWidget.cxx -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stapgraph-CairoWidget.Tpo $(DEPDIR)/stapgraph-CairoWidget.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stapgraph_CPPFLAGS) $(CPPFLAGS) $(stapgraph_CXXFLAGS) $(CXXFLAGS) -MT stapgraph-CairoWidget.o -MD -MP -MF $(DEPDIR)/stapgraph-CairoWidget.Tpo -c -o stapgraph-CairoWidget.o `test -f 'CairoWidget.cxx' || echo '$(srcdir)/'`CairoWidget.cxx +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stapgraph-CairoWidget.Tpo $(DEPDIR)/stapgraph-CairoWidget.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='CairoWidget.cxx' object='stapgraph-CairoWidget.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stapgraph_CPPFLAGS) $(CPPFLAGS) $(stapgraph_CXXFLAGS) $(CXXFLAGS) -c -o stapgraph-CairoWidget.o `test -f 'CairoWidget.cxx' || echo '$(srcdir)/'`CairoWidget.cxx stapgraph-CairoWidget.obj: CairoWidget.cxx -@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stapgraph_CPPFLAGS) $(CPPFLAGS) $(stapgraph_CXXFLAGS) $(CXXFLAGS) -MT stapgraph-CairoWidget.obj -MD -MP -MF $(DEPDIR)/stapgraph-CairoWidget.Tpo -c -o stapgraph-CairoWidget.obj `if test -f 'CairoWidget.cxx'; then $(CYGPATH_W) 'CairoWidget.cxx'; else $(CYGPATH_W) '$(srcdir)/CairoWidget.cxx'; fi` -@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/stapgraph-CairoWidget.Tpo $(DEPDIR)/stapgraph-CairoWidget.Po +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stapgraph_CPPFLAGS) $(CPPFLAGS) $(stapgraph_CXXFLAGS) $(CXXFLAGS) -MT stapgraph-CairoWidget.obj -MD -MP -MF $(DEPDIR)/stapgraph-CairoWidget.Tpo -c -o stapgraph-CairoWidget.obj `if test -f 'CairoWidget.cxx'; then $(CYGPATH_W) 'CairoWidget.cxx'; else $(CYGPATH_W) '$(srcdir)/CairoWidget.cxx'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stapgraph-CairoWidget.Tpo $(DEPDIR)/stapgraph-CairoWidget.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='CairoWidget.cxx' object='stapgraph-CairoWidget.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stapgraph_CPPFLAGS) $(CPPFLAGS) $(stapgraph_CXXFLAGS) $(CXXFLAGS) -c -o stapgraph-CairoWidget.obj `if test -f 'CairoWidget.cxx'; then $(CYGPATH_W) 'CairoWidget.cxx'; else $(CYGPATH_W) '$(srcdir)/CairoWidget.cxx'; fi` -- cgit From 6fb95a63ecfa32b1524790ee42695f19773f2174 Mon Sep 17 00:00:00 2001 From: Tim Moore Date: Tue, 20 Oct 2009 22:14:00 +0200 Subject: Change stap parser to use an input file descriptor other than stdin * grapher/StapParser.hxx (_inFd, getInFd, setInFd): new member and fuctions * grapher/StapParser.cxx (ioCallback): Use _inFd variable instead of stdin. * grapher/grapher.cxx (StapLauncher::launch): Don't read input from stap on stdin; use the the read end of the pipe. --- grapher/StapParser.cxx | 2 +- grapher/StapParser.hxx | 8 +++++++- grapher/grapher.cxx | 21 +++++++-------------- 3 files changed, 15 insertions(+), 16 deletions(-) diff --git a/grapher/StapParser.cxx b/grapher/StapParser.cxx index 9bb9b9c9..eea85006 100644 --- a/grapher/StapParser.cxx +++ b/grapher/StapParser.cxx @@ -70,7 +70,7 @@ vector commaSplit(const boost::sub_range& range) return true; char buf[256]; ssize_t bytes_read = 0; - bytes_read = read(STDIN_FILENO, buf, sizeof(buf) - 1); + bytes_read = read(_inFd, buf, sizeof(buf) - 1); if (bytes_read <= 0) { _win.hide(); diff --git a/grapher/StapParser.hxx b/grapher/StapParser.hxx index f4f6bdef..eeebed63 100644 --- a/grapher/StapParser.hxx +++ b/grapher/StapParser.hxx @@ -13,14 +13,20 @@ class StapParser Gtk::Window& _win; GraphWidget& _widget; int _errFd; + int _inFd; public: StapParser(Gtk::Window& win, - GraphWidget& widget) : _win(win), _widget(widget), _errFd(-1) {} + GraphWidget& widget) : _win(win), _widget(widget), _errFd(-1), + _inFd(-1) + { + } void parseData(std::tr1::shared_ptr gdata, double time, const std::string& dataString); bool ioCallback(Glib::IOCondition ioCondition); bool errIoCallback(Glib::IOCondition ioCondition); int getErrFd() { return _errFd; } void setErrFd(int fd) { _errFd = fd; } + int getInFd() { return _inFd; } + void setInFd(int fd) { _inFd = fd; } }; } diff --git a/grapher/grapher.cxx b/grapher/grapher.cxx index 429d0537..398b35f1 100644 --- a/grapher/grapher.cxx +++ b/grapher/grapher.cxx @@ -257,8 +257,6 @@ protected: int StapLauncher::launch() { - int stapErrFd = -1; - if (pipe(&signalPipe[0]) < 0) { std::perror("pipe"); @@ -286,9 +284,6 @@ int StapLauncher::launch() } else if (_childPid) { - dup2(pipefd[0], STDIN_FILENO); - stapErrFd = pipefd[2]; - close(pipefd[0]); close(pipefd[1]); close(pipefd[3]); } @@ -318,14 +313,12 @@ int StapLauncher::launch() } _exit(1); } - if (stapErrFd >= 0) - { - _stapParser->setErrFd(stapErrFd); - Glib::signal_io().connect(sigc::mem_fun(*_stapParser, - &StapParser::errIoCallback), - stapErrFd, - Glib::IO_IN); - } + _stapParser->setErrFd(pipefd[2]); + _stapParser->setInFd(pipefd[0]); + Glib::signal_io().connect(sigc::mem_fun(*_stapParser, + &StapParser::errIoCallback), + pipefd[2], + Glib::IO_IN); setSigfd(signalPipe[0]); if (signalPipe[0] >= 0) { @@ -335,7 +328,7 @@ int StapLauncher::launch() } Glib::signal_io().connect(sigc::mem_fun(*_stapParser, &StapParser::ioCallback), - STDIN_FILENO, + pipefd[0], Glib::IO_IN | Glib::IO_HUP); return _childPid; } -- cgit From 4bf8ba6e4fc0a950301e5debedababa834ea0d10 Mon Sep 17 00:00:00 2001 From: Tim Moore Date: Wed, 21 Oct 2009 17:05:59 +0200 Subject: More refactoring for multiple stap processes. * grapher/StapParser.hxx (StapParser): Change _win and _widget from references to pointers. * grapher/StapParser.cxx (ioCallback): Ditto. * grapher/grapher.cxx (StapLauncher, GraphicalStapLauncher): Rewrite to make GraphicalStapLauncher a derived class of StapLauncher. (main): Accept graphing data from stdin with a "-" argument. --- grapher/StapParser.cxx | 10 +- grapher/StapParser.hxx | 8 +- grapher/grapher.cxx | 317 +++++++++++++++++++++++++------------------------ 3 files changed, 173 insertions(+), 162 deletions(-) diff --git a/grapher/StapParser.cxx b/grapher/StapParser.cxx index eea85006..249836d3 100644 --- a/grapher/StapParser.cxx +++ b/grapher/StapParser.cxx @@ -63,7 +63,7 @@ vector commaSplit(const boost::sub_range& range) using namespace boost; if (ioCondition & Glib::IO_HUP) { - _win.hide(); + _win->hide(); return true; } if ((ioCondition & Glib::IO_IN) == 0) @@ -73,7 +73,7 @@ vector commaSplit(const boost::sub_range& range) bytes_read = read(_inFd, buf, sizeof(buf) - 1); if (bytes_read <= 0) { - _win.hide(); + _win->hide(); return true; } buf[bytes_read] = '\0'; @@ -108,7 +108,7 @@ vector commaSplit(const boost::sub_range& range) dataSet->color[2] = (hexColor & 0xff) / 255.0; dataSet->scale = scale; _dataSets.insert(std::make_pair(setName, dataSet)); - _widget.addGraphData(dataSet); + _widget->addGraphData(dataSet); } else if (style == "discreet") { @@ -120,7 +120,7 @@ vector commaSplit(const boost::sub_range& range) dataSet->color[2] = (hexColor & 0xff) / 255.0; dataSet->scale = scale; _dataSets.insert(std::make_pair(setName, dataSet)); - _widget.addGraphData(dataSet); + _widget->addGraphData(dataSet); } } else if ((found = find_first(dataString, "%CSV:"))) @@ -219,7 +219,7 @@ vector commaSplit(const boost::sub_range& range) bytes_read = read(_errFd, buf, sizeof(buf) - 1); if (bytes_read <= 0) { - _win.hide(); + _win->hide(); return true; } if (write(STDOUT_FILENO, buf, bytes_read) < 0) diff --git a/grapher/StapParser.hxx b/grapher/StapParser.hxx index eeebed63..40add9fd 100644 --- a/grapher/StapParser.hxx +++ b/grapher/StapParser.hxx @@ -10,13 +10,13 @@ class StapParser typedef std::map > DataMap; DataMap _dataSets; CSVData _csv; - Gtk::Window& _win; - GraphWidget& _widget; + Gtk::Window* _win; + GraphWidget* _widget; int _errFd; int _inFd; public: - StapParser(Gtk::Window& win, - GraphWidget& widget) : _win(win), _widget(widget), _errFd(-1), + StapParser(Gtk::Window* win, + GraphWidget* widget) : _win(win), _widget(widget), _errFd(-1), _inFd(-1) { } diff --git a/grapher/grapher.cxx b/grapher/grapher.cxx index 398b35f1..598f389b 100644 --- a/grapher/grapher.cxx +++ b/grapher/grapher.cxx @@ -10,6 +10,7 @@ #include #include #include +#include #include #include @@ -31,6 +32,20 @@ using namespace std; using namespace systemtap; +// magic for noticing that the child stap process has died. +int signalPipe[2] = {-1, -1}; + +extern "C" +{ + void handleChild(int signum, siginfo_t* info, void* context) + { + char buf[1]; + ssize_t err; + buf[0] = 1; + err = write(signalPipe[1], buf, 1); + } +} + // Waits for a gtk I/O signal, indicating that a child has died, then // performs an action @@ -63,143 +78,19 @@ private: int sigfd; }; -class StapLauncher; - -class GraphicalStapLauncher -{ -public: - GraphicalStapLauncher(StapLauncher* launcher); - bool runDialog(); - void onLaunch(); - void onLaunchCancel(); -private: - Glib::RefPtr _launchStapDialog; - Gtk::Window* _scriptWindow; - Gtk::FileChooserButton* _chooserButton; - Gtk::Entry* _stapArgEntry; - Gtk::Entry* _scriptArgEntry; - StapLauncher* _launcher; -}; - -class GrapherWindow : public Gtk::Window, public ChildDeathReader::Callback -{ -public: - GrapherWindow(); - virtual ~GrapherWindow() {} - Gtk::VBox m_Box; - Gtk::ScrolledWindow scrolled; - GraphWidget w; - void childDied(int pid); - void setGraphicalLauncher(GraphicalStapLauncher* launcher) - { - _graphicalLauncher = launcher; - } - GraphicalStapLauncher* getGraphicalLauncher() { return _graphicalLauncher; } -protected: - virtual void on_menu_file_quit(); - virtual void on_menu_script_start(); - void addGraph(); - // menu support - Glib::RefPtr m_refUIManager; - Glib::RefPtr m_refActionGroup; - GraphicalStapLauncher* _graphicalLauncher; - -}; - -GrapherWindow::GrapherWindow() -{ - set_title("systemtap grapher"); - add(m_Box); - - - //Create actions for menus and toolbars: - m_refActionGroup = Gtk::ActionGroup::create(); - //File menu: - m_refActionGroup->add(Gtk::Action::create("FileMenu", "File")); - m_refActionGroup->add(Gtk::Action::create("StartScript", "Start script"), - sigc::mem_fun(*this, - &GrapherWindow::on_menu_script_start)); - m_refActionGroup->add(Gtk::Action::create("AddGraph", "Add graph"), - sigc::mem_fun(*this, &GrapherWindow::addGraph)); - m_refActionGroup->add(Gtk::Action::create("FileQuit", Gtk::Stock::QUIT), - sigc::mem_fun(*this, - &GrapherWindow::on_menu_file_quit)); - m_refUIManager = Gtk::UIManager::create(); - m_refUIManager->insert_action_group(m_refActionGroup); - - add_accel_group(m_refUIManager->get_accel_group()); - //Layout the actions in a menubar and toolbar: - Glib::ustring ui_info = - "" - " " - " " - " " - " " - " " - " " - " " - ""; - try - { - m_refUIManager->add_ui_from_string(ui_info); - } - catch(const Glib::Error& ex) - { - std::cerr << "building menus failed: " << ex.what(); - } - Gtk::Widget* pMenubar = m_refUIManager->get_widget("/MenuBar"); - scrolled.add(w); - if(pMenubar) - m_Box.pack_start(*pMenubar, Gtk::PACK_SHRINK); - m_Box.pack_start(scrolled, Gtk::PACK_EXPAND_WIDGET); - scrolled.show(); - - show_all_children(); - -} - -void GrapherWindow::on_menu_file_quit() -{ - hide(); -} - -void GrapherWindow::on_menu_script_start() -{ - _graphicalLauncher->runDialog(); -} - -void GrapherWindow::childDied(int pid) -{ - hide(); -} - -// magic for noticing that the child stap process has died. -int signalPipe[2] = {-1, -1}; - -extern "C" -{ - void handleChild(int signum, siginfo_t* info, void* context) - { - char buf[1]; - ssize_t err; - buf[0] = 1; - err = write(signalPipe[1], buf, 1); - } -} - // Depending on how args are passed, either launch stap directly or // use the shell to parse arguments class StapLauncher : public ChildDeathReader { public: - StapLauncher() : _argv(0), _childPid(-1), _deathCallback(0), _stapParser(0) {} + StapLauncher() : _argv(0), _childPid(-1), _deathCallback(0) {} StapLauncher(char** argv) - : _argv(argv), _childPid(-1), _deathCallback(0), _stapParser(0) + : _argv(argv), _childPid(-1), _deathCallback(0) { } StapLauncher(const string& stapArgs, const string& script, const string& scriptArgs) - : _childPid(-1), _deathCallback(0), _stapParser(0) + : _childPid(-1), _deathCallback(0), _win(0), _widget(0) { setArgs(stapArgs, script, scriptArgs); } @@ -239,12 +130,19 @@ public: { _deathCallback = callback; } - void setStapParser(StapParser *parser) + void setWinParams(Gtk::Window* win, GraphWidget* widget) { - _stapParser = parser; + _win = win; + _widget = widget; } int launch(); void cleanUp(); + tr1::shared_ptr makeStapParser() + { + tr1::shared_ptr result(new StapParser(_win, _widget)); + _stapParsers.push_back(result); + return result; + } protected: char** _argv; string _stapArgs; @@ -252,7 +150,9 @@ protected: string _scriptArgs; int _childPid; ChildDeathReader::Callback* _deathCallback; - StapParser* _stapParser; + Gtk::Window* _win; + GraphWidget* _widget; + vector > _stapParsers; }; int StapLauncher::launch() @@ -313,9 +213,11 @@ int StapLauncher::launch() } _exit(1); } - _stapParser->setErrFd(pipefd[2]); - _stapParser->setInFd(pipefd[0]); - Glib::signal_io().connect(sigc::mem_fun(*_stapParser, + tr1::shared_ptr sp(new StapParser(_win, _widget)); + _stapParsers.push_back(sp); + sp->setErrFd(pipefd[2]); + sp->setInFd(pipefd[0]); + Glib::signal_io().connect(sigc::mem_fun(sp.get(), &StapParser::errIoCallback), pipefd[2], Glib::IO_IN); @@ -326,7 +228,7 @@ int StapLauncher::launch() &ChildDeathReader::ioCallback), signalPipe[0], Glib::IO_IN); } - Glib::signal_io().connect(sigc::mem_fun(*_stapParser, + Glib::signal_io().connect(sigc::mem_fun(sp.get(), &StapParser::ioCallback), pipefd[0], Glib::IO_IN | Glib::IO_HUP); @@ -347,34 +249,144 @@ void StapLauncher::cleanUp() } } -StapLauncher launcher; +class GraphicalStapLauncher : public StapLauncher +{ +public: + GraphicalStapLauncher(); + bool runDialog(); + void onLaunch(); + void onLaunchCancel(); +private: + Glib::RefPtr _launchStapDialog; + Gtk::Window* _scriptWindow; + Gtk::FileChooserButton* _chooserButton; + Gtk::Entry* _stapArgEntry; + Gtk::Entry* _scriptArgEntry; + StapLauncher* _launcher; +}; + +class GrapherWindow : public Gtk::Window, public ChildDeathReader::Callback +{ +public: + GrapherWindow(); + virtual ~GrapherWindow() {} + Gtk::VBox m_Box; + Gtk::ScrolledWindow scrolled; + GraphWidget w; + void childDied(int pid); + void setGraphicalLauncher(GraphicalStapLauncher* launcher) + { + _graphicalLauncher = launcher; + } + GraphicalStapLauncher* getGraphicalLauncher() { return _graphicalLauncher; } +protected: + virtual void on_menu_file_quit(); + virtual void on_menu_script_start(); + void addGraph(); + // menu support + Glib::RefPtr m_refUIManager; + Glib::RefPtr m_refActionGroup; + GraphicalStapLauncher* _graphicalLauncher; + +}; + +GrapherWindow::GrapherWindow() +{ + set_title("systemtap grapher"); + add(m_Box); + + + //Create actions for menus and toolbars: + m_refActionGroup = Gtk::ActionGroup::create(); + //File menu: + m_refActionGroup->add(Gtk::Action::create("FileMenu", "File")); + m_refActionGroup->add(Gtk::Action::create("StartScript", "Start script"), + sigc::mem_fun(*this, + &GrapherWindow::on_menu_script_start)); + m_refActionGroup->add(Gtk::Action::create("AddGraph", "Add graph"), + sigc::mem_fun(*this, &GrapherWindow::addGraph)); + m_refActionGroup->add(Gtk::Action::create("FileQuit", Gtk::Stock::QUIT), + sigc::mem_fun(*this, + &GrapherWindow::on_menu_file_quit)); + m_refUIManager = Gtk::UIManager::create(); + m_refUIManager->insert_action_group(m_refActionGroup); + + add_accel_group(m_refUIManager->get_accel_group()); + //Layout the actions in a menubar and toolbar: + Glib::ustring ui_info = + "" + " " + " " + " " + " " + " " + " " + " " + ""; + try + { + m_refUIManager->add_ui_from_string(ui_info); + } + catch(const Glib::Error& ex) + { + std::cerr << "building menus failed: " << ex.what(); + } + Gtk::Widget* pMenubar = m_refUIManager->get_widget("/MenuBar"); + scrolled.add(w); + if(pMenubar) + m_Box.pack_start(*pMenubar, Gtk::PACK_SHRINK); + m_Box.pack_start(scrolled, Gtk::PACK_EXPAND_WIDGET); + scrolled.show(); + + show_all_children(); + +} + +void GrapherWindow::on_menu_file_quit() +{ + hide(); +} + +void GrapherWindow::on_menu_script_start() +{ + _graphicalLauncher->runDialog(); +} + +void GrapherWindow::childDied(int pid) +{ + hide(); +} + + + int main(int argc, char** argv) { Gtk::Main app(argc, argv); - + GraphicalStapLauncher launcher; GrapherWindow win; win.set_title("Grapher"); win.set_default_size(600, 200); + launcher.setWinParams(&win, &win.w); - StapParser stapParser(win, win.w); - launcher.setStapParser(&stapParser); - GraphicalStapLauncher graphicalLauncher(&launcher); - win.setGraphicalLauncher(&graphicalLauncher); - if (argc > 1) - { - launcher.setArgv(argv + 1); - launcher.setDeathCallback(&win); - launcher.launch(); - } - else + win.setGraphicalLauncher(&launcher); + + if (argc == 2 && !std::strcmp(argv[1], "-")) { - Glib::signal_io().connect(sigc::mem_fun(stapParser, + tr1::shared_ptr sp = launcher.makeStapParser(); + sp->setInFd(STDIN_FILENO); + Glib::signal_io().connect(sigc::mem_fun(sp.get(), &StapParser::ioCallback), STDIN_FILENO, Glib::IO_IN | Glib::IO_HUP); } + else if (argc > 1) + { + launcher.setArgv(argv + 1); + launcher.setDeathCallback(&win); + launcher.launch(); + } Gtk::Main::run(win); launcher.cleanUp(); return 0; @@ -386,8 +398,7 @@ void GrapherWindow::addGraph() } -GraphicalStapLauncher::GraphicalStapLauncher(StapLauncher* launcher) - : _launcher(launcher) +GraphicalStapLauncher::GraphicalStapLauncher() { try { @@ -421,10 +432,10 @@ bool GraphicalStapLauncher::runDialog() void GraphicalStapLauncher::onLaunch() { - _launcher->setArgs(_stapArgEntry->get_text(), _chooserButton->get_filename(), - _scriptArgEntry->get_text()); + setArgs(_stapArgEntry->get_text(), _chooserButton->get_filename(), + _scriptArgEntry->get_text()); _scriptWindow->hide(); - _launcher->launch(); + launch(); } void GraphicalStapLauncher::onLaunchCancel() -- cgit From 8447d5545aa58965a5f47d604e14e97e673d1cd9 Mon Sep 17 00:00:00 2001 From: Tim Moore Date: Tue, 27 Oct 2009 12:50:25 +0100 Subject: Kill off child processes correctly on exit. * grapher/grapher.cxx (ChildDeathReader::reap): New function. (StapLauncher): Keep a list of instantiated parsers. (StapLauncher::cleanup): Kill off all launched stap processes. --- grapher/grapher.cxx | 130 ++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 100 insertions(+), 30 deletions(-) diff --git a/grapher/grapher.cxx b/grapher/grapher.cxx index 598f389b..fe9880b2 100644 --- a/grapher/grapher.cxx +++ b/grapher/grapher.cxx @@ -15,6 +15,8 @@ #include +#include + #include #include #include @@ -61,6 +63,20 @@ public: ChildDeathReader(int sigfd_) : sigfd(sigfd_) {} int getSigfd() { return sigfd; } void setSigfd(int sigfd_) { sigfd = sigfd_; } + virtual pid_t reap() + { + pid_t pid; + int status; + if ((pid = waitpid(-1, &status, WNOHANG)) == -1) + { + std::perror("waitpid"); + return -1; + } + else + { + return pid; + } + } bool ioCallback(Glib::IOCondition ioCondition) { if ((ioCondition & Glib::IO_IN) == 0) @@ -69,9 +85,7 @@ public: if (read(sigfd, &buf, 1) <= 0) return true; - int status; - while (wait(&status) != -1) - ; + reap(); return true; } private: @@ -140,9 +154,31 @@ public: tr1::shared_ptr makeStapParser() { tr1::shared_ptr result(new StapParser(_win, _widget)); - _stapParsers.push_back(result); + _parsers.push_back(ParserInstance(-1, result)); return result; } + pid_t reap() + { + pid_t pid = ChildDeathReader::reap(); + if (pid < 0) + return pid; + ParserList::iterator itr + = find_if(_parsers.begin(), _parsers.end(), + boost::bind(&ParserInstance::childPid, _1) == pid); + if (itr != _parsers.end()) + itr->childPid = -1; + return pid; + } + void killAll() + { + for (ParserList::iterator itr = _parsers.begin(), end = _parsers.end(); + itr != end; + ++itr) + { + if (itr->childPid >= 0) + kill(itr->childPid, SIGTERM); + } + } protected: char** _argv; string _stapArgs; @@ -152,15 +188,37 @@ protected: ChildDeathReader::Callback* _deathCallback; Gtk::Window* _win; GraphWidget* _widget; - vector > _stapParsers; + struct ParserInstance + { + ParserInstance() : childPid(-1) {} + ParserInstance(int childPid_, tr1::shared_ptr stapParser_) + : childPid(childPid_), stapParser(stapParser_) + { + } + pid_t childPid; + tr1::shared_ptr stapParser; + }; + typedef vector ParserList; + ParserList _parsers; }; int StapLauncher::launch() { - if (pipe(&signalPipe[0]) < 0) + int childPid = -1; + if (signalPipe[0] < 0) { - std::perror("pipe"); - exit(1); + if (pipe(&signalPipe[0]) < 0) + { + std::perror("pipe"); + exit(1); + } + setSigfd(signalPipe[0]); + if (signalPipe[0] >= 0) + { + Glib::signal_io().connect(sigc::mem_fun(*this, + &ChildDeathReader::ioCallback), + signalPipe[0], Glib::IO_IN); + } } struct sigaction action; action.sa_sigaction = handleChild; @@ -178,11 +236,11 @@ int StapLauncher::launch() std::perror("pipe"); exit(1); } - if ((_childPid = fork()) == -1) + if ((childPid = fork()) == -1) { exit(1); } - else if (_childPid) + else if (childPid) { close(pipefd[1]); close(pipefd[3]); @@ -191,8 +249,8 @@ int StapLauncher::launch() { dup2(pipefd[1], STDOUT_FILENO); dup2(pipefd[3], STDERR_FILENO); - for (int i = 0; i < 4; ++i) - close(pipefd[i]); + for_each(&pipefd[0], &pipefd[4], close); + for_each(&signalPipe[0], &signalPipe[2], close); if (_argv) { char argv0[] = "stap"; @@ -214,38 +272,51 @@ int StapLauncher::launch() _exit(1); } tr1::shared_ptr sp(new StapParser(_win, _widget)); - _stapParsers.push_back(sp); + _parsers.push_back(ParserInstance(childPid, sp)); sp->setErrFd(pipefd[2]); sp->setInFd(pipefd[0]); Glib::signal_io().connect(sigc::mem_fun(sp.get(), &StapParser::errIoCallback), pipefd[2], Glib::IO_IN); - setSigfd(signalPipe[0]); - if (signalPipe[0] >= 0) - { - Glib::signal_io().connect(sigc::mem_fun(*this, - &ChildDeathReader::ioCallback), - signalPipe[0], Glib::IO_IN); - } Glib::signal_io().connect(sigc::mem_fun(sp.get(), &StapParser::ioCallback), pipefd[0], Glib::IO_IN | Glib::IO_HUP); - return _childPid; + return childPid; } void StapLauncher::cleanUp() { - if (_childPid > 0) - kill(_childPid, SIGTERM); - int status; - while (wait(&status) != -1) - ; - if (_deathCallback) + struct sigaction action; + action.sa_handler = SIG_DFL; + sigemptyset(&action.sa_mask); + action.sa_flags = 0; + sigaction(SIGCLD, &action, 0); + // Drain any outstanding signals + close(signalPipe[1]); + char buf; + while (read(signalPipe[0], &buf, 1) > 0) + reap(); + for (ParserList::iterator itr = _parsers.begin(), end = _parsers.end(); + itr != end; + ++itr) { - _deathCallback->childDied(_childPid); - _childPid = -1; + if (itr->childPid > 0) + kill(itr->childPid, SIGTERM); + int status; + pid_t killedPid = -1; + if ((killedPid = wait(&status)) == -1) + { + std::perror("wait"); + } + else if (killedPid != itr->childPid) + { + std::cerr << "wait: killed Pid " << killedPid << " != child Pid " + << itr->childPid << "\n"; + } + else if (_deathCallback) + _deathCallback->childDied(itr->childPid); } } @@ -262,7 +333,6 @@ private: Gtk::FileChooserButton* _chooserButton; Gtk::Entry* _stapArgEntry; Gtk::Entry* _scriptArgEntry; - StapLauncher* _launcher; }; class GrapherWindow : public Gtk::Window, public ChildDeathReader::Callback -- cgit From a1995fef7f86ee6d1c3860cfb7e2652d986e4aa9 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Tue, 27 Oct 2009 12:15:29 -0700 Subject: PR10854: Use a mutex around transport startup/shutdown We had a race where the probe setup could be called during/after the probe shutdown in abnormal circumstances, which leads to kernel callbacks still registered after module unload. (BOOM) Now the setup/shutdown activities and related flags are guarded by a mutex, so we should have strict ordering. * runtime/transport/transport.c (_stp_transport_mutex): New. (_stp_handle_start): Grab the mutex, and make sure we're not exiting. (_stp_cleanup_and_exit): Grab the mutex. (_stp_lock_inode, _stp_unlock_inode): Use kernel version for checking inode locking type. --- runtime/transport/transport.c | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/runtime/transport/transport.c b/runtime/transport/transport.c index f5efce9f..bab5efa9 100644 --- a/runtime/transport/transport.c +++ b/runtime/transport/transport.c @@ -19,6 +19,7 @@ #include #include #include +#include static int _stp_exit_flag = 0; @@ -30,6 +31,9 @@ static int _stp_ctl_attached = 0; static pid_t _stp_target = 0; static int _stp_probes_started = 0; +static int _stp_exit_called = 0; +static DEFINE_MUTEX(_stp_transport_mutex); + // For now, disable transport version 3 (unless STP_USE_RING_BUFFER is // defined). @@ -81,22 +85,26 @@ static struct workqueue_struct *_stp_wq; static void _stp_handle_start(struct _stp_msg_start *st) { - dbug_trans(1, "stp_handle_start\n"); + mutex_lock(&_stp_transport_mutex); + if (!_stp_exit_called) { + dbug_trans(1, "stp_handle_start\n"); #ifdef STAPCONF_VM_AREA - { /* PR9740: workaround for kernel valloc bug. */ - void *dummy; - dummy = alloc_vm_area (PAGE_SIZE); - free_vm_area (dummy); - } + { /* PR9740: workaround for kernel valloc bug. */ + void *dummy; + dummy = alloc_vm_area (PAGE_SIZE); + free_vm_area (dummy); + } #endif - _stp_target = st->target; - st->res = probe_start(); - if (st->res >= 0) - _stp_probes_started = 1; + _stp_target = st->target; + st->res = probe_start(); + if (st->res >= 0) + _stp_probes_started = 1; - _stp_ctl_send(STP_START, st, sizeof(*st)); + _stp_ctl_send(STP_START, st, sizeof(*st)); + } + mutex_unlock(&_stp_transport_mutex); } /* common cleanup code. */ @@ -106,8 +114,7 @@ static void _stp_handle_start(struct _stp_msg_start *st) /* when someone does /sbin/rmmod on a loaded systemtap module. */ static void _stp_cleanup_and_exit(int send_exit) { - static int _stp_exit_called = 0; - + mutex_lock(&_stp_transport_mutex); if (!_stp_exit_called) { int failures; @@ -135,6 +142,7 @@ static void _stp_cleanup_and_exit(int send_exit) _stp_ctl_send(STP_EXIT, NULL, 0); dbug_trans(1, "done with ctl_send STP_EXIT\n"); } + mutex_unlock(&_stp_transport_mutex); } static void _stp_request_exit(void) @@ -293,7 +301,7 @@ err0: static inline void _stp_lock_inode(struct inode *inode) { -#ifdef DEFINE_MUTEX +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16) mutex_lock(&inode->i_mutex); #else down(&inode->i_sem); @@ -302,7 +310,7 @@ static inline void _stp_lock_inode(struct inode *inode) static inline void _stp_unlock_inode(struct inode *inode) { -#ifdef DEFINE_MUTEX +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16) mutex_unlock(&inode->i_mutex); #else up(&inode->i_sem); -- cgit From d117a23e6883640be751523274811d9d5e9dcc11 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Tue, 27 Oct 2009 13:52:34 -0700 Subject: PR10854 cont'd: Add a testcase for the reproducer --- testsuite/systemtap.base/pr10854.exp | 31 +++++++++++++++++++++++++++++++ testsuite/systemtap.base/pr10854.stp | 20 ++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 testsuite/systemtap.base/pr10854.exp create mode 100644 testsuite/systemtap.base/pr10854.stp diff --git a/testsuite/systemtap.base/pr10854.exp b/testsuite/systemtap.base/pr10854.exp new file mode 100644 index 00000000..11d2221e --- /dev/null +++ b/testsuite/systemtap.base/pr10854.exp @@ -0,0 +1,31 @@ +# This test is to make sure that we've resolved PR10854's race between probe +# initialization and shutdown. Here we load a module and then kill the stapio +# process as soon as we can to try to make the init and shutdown overlap. + +set test "pr10854" + +# precompile the script module +set compile { exec stap $srcdir/$subdir/$test.stp sys_read *@fs/*.c -p4 } +if { [catch { set module [eval $compile] } msg ] } { + fail "compiling $test.stp: $msg" + untested "$test runloop" + continue +} else { + pass "compiling $test.stp" +} + +if {![installtest_p]} { + untested "$test runloop" + continue +} + +# run & kill the module 10 times +# (this was usually enough to trigger the fault) +for {set i 0} {$i < 10} {incr i} { + spawn staprun $module -o /dev/null + while { [catch { exec pkill stapio -P [pid] } msg ] } { } + wait +} + +# if we're still alive, we pass :) +pass "$test runloop" diff --git a/testsuite/systemtap.base/pr10854.stp b/testsuite/systemtap.base/pr10854.stp new file mode 100644 index 00000000..55f027f2 --- /dev/null +++ b/testsuite/systemtap.base/pr10854.stp @@ -0,0 +1,20 @@ +function trace(entry_p) { + if(tid() in trace) + printf("%s%s%s\n",thread_indent(entry_p), + (entry_p>0?"->":"<-"), + probefunc()) +} + +global trace +probe kernel.function(@1).call { + if (execname() == "staprun") next # skip our own helper process + trace[tid()] = 1 + trace(1) +} +probe kernel.function(@1).return { + trace(-1) + delete trace[tid()] +} + +probe kernel.function(@2).call { trace(1) } +probe kernel.function(@2).return { trace(-1) } -- cgit From 06406f452757336ede3eb951544ffda74bed8985 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Tue, 27 Oct 2009 14:06:06 -0700 Subject: Properly close the spawn of the pr10854 testcase --- testsuite/systemtap.base/pr10854.exp | 1 + 1 file changed, 1 insertion(+) diff --git a/testsuite/systemtap.base/pr10854.exp b/testsuite/systemtap.base/pr10854.exp index 11d2221e..9173c8b4 100644 --- a/testsuite/systemtap.base/pr10854.exp +++ b/testsuite/systemtap.base/pr10854.exp @@ -24,6 +24,7 @@ if {![installtest_p]} { for {set i 0} {$i < 10} {incr i} { spawn staprun $module -o /dev/null while { [catch { exec pkill stapio -P [pid] } msg ] } { } + catch { close } wait } -- cgit From 1fc4d13df3342b10003c27bc0bc8bd196ecd5622 Mon Sep 17 00:00:00 2001 From: Tim Moore Date: Wed, 28 Oct 2009 18:57:50 +0100 Subject: Fix regression of parsing grapher options * grapher/StapParser.hxx (ioCallback): Test return value from findTaggedValue properly. --- grapher/StapParser.cxx | 56 +++++++++++++++++++++++++------------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/grapher/StapParser.cxx b/grapher/StapParser.cxx index 249836d3..9e42dab6 100644 --- a/grapher/StapParser.cxx +++ b/grapher/StapParser.cxx @@ -156,18 +156,15 @@ vector commaSplit(const boost::sub_range& range) shared_ptr gdata = itr->second; string decl; // Hack: scan from the beginning of dataString again - if (findTaggedValue(dataString, "%Title:", decl) - != string::npos) + if (findTaggedValue(dataString, "%Title:", decl)) { gdata->title = decl; } - else if (findTaggedValue(dataString, "%XAxisTitle:", decl) - != string::npos) + else if (findTaggedValue(dataString, "%XAxisTitle:", decl)) { gdata->xAxisText = decl; } - else if (findTaggedValue(dataString, "%YAxisTitle:", decl) - != string::npos) + else if (findTaggedValue(dataString, "%YAxisTitle:", decl)) { gdata->yAxisText = decl; } @@ -179,29 +176,32 @@ vector commaSplit(const boost::sub_range& range) stream >> ymax; gdata->scale = ymax; } - - if (!_csv.elements.empty()) - { - vector tokens = commaSplit(dataString); - int i = 0; - double time; - vector::iterator tokIter = tokens.begin(); - std::istringstream timeStream(*tokIter++); - timeStream >> time; - for (vector::iterator e = tokens.end(); - tokIter != e; - ++tokIter, ++i) - { - parseData(_csv.elements[i].second, time, *tokIter); - } - } else - { - double time; - string data; - stream >> time >> data; - parseData(itr->second, time, data); - } + { + if (!_csv.elements.empty()) + { + vector tokens = commaSplit(dataString); + int i = 0; + double time; + vector::iterator tokIter = tokens.begin(); + std::istringstream timeStream(*tokIter++); + timeStream >> time; + for (vector::iterator e = tokens.end(); + tokIter != e; + ++tokIter, ++i) + { + parseData(_csv.elements[i].second, time, + *tokIter); + } + } + else + { + double time; + string data; + stream >> time >> data; + parseData(itr->second, time, data); + } + } } } _buffer.erase(0, ret + 1); -- cgit From f2eafd28f50fb528842502e138c14ea2e54145b6 Mon Sep 17 00:00:00 2001 From: Tim Moore Date: Wed, 28 Oct 2009 22:13:50 +0100 Subject: * grapher/GraphData.hxx (GraphDataBase, GraphData): Use boost::circular_buffer for time and data storage. --- grapher/GraphData.hxx | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/grapher/GraphData.hxx b/grapher/GraphData.hxx index e4c08cfd..0e26fb4d 100644 --- a/grapher/GraphData.hxx +++ b/grapher/GraphData.hxx @@ -6,6 +6,8 @@ #include #include +#include + namespace systemtap { struct GraphDataBase @@ -16,11 +18,12 @@ namespace systemtap DOT, EVENT }; - GraphDataBase() : scale(1.0), style(BAR) + typedef boost::circular_buffer TimeList; + GraphDataBase(TimeList::capacity_type cap = 50000) + : scale(1.0), style(BAR), times(cap) { color[0] = 0.0; color[1] = 1.0; color[2] = 0.0; } - typedef std::vector TimeList; // size of grid square at "normal" viewing double scale; double color[3]; @@ -36,7 +39,11 @@ namespace systemtap { public: typedef T data_type; - typedef std::vector DataList; + typedef boost::circular_buffer DataList; + GraphData(typename DataList::capacity_type cap = 50000) + : GraphDataBase(cap), data(cap) + { + } DataList data; }; struct CSVData -- cgit From f10534c6a2a958609b7bc76390d50c17a36250d3 Mon Sep 17 00:00:00 2001 From: Wenji Huang Date: Thu, 29 Oct 2009 08:26:32 +0800 Subject: PR10820: stap -L ignores any variable that isn't accessible * tapsets.cxx (saveargs): check the accessibility. --- tapsets.cxx | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/tapsets.cxx b/tapsets.cxx index 17e6c6cf..31d162a2 100644 --- a/tapsets.cxx +++ b/tapsets.cxx @@ -326,6 +326,7 @@ function_spec_type struct dwarf_builder; +struct dwarf_var_expanding_visitor; // XXX: This class is a candidate for subclassing to separate @@ -377,7 +378,7 @@ protected: private: string args; - void saveargs(dwarf_query& q, Dwarf_Die* scope_die); + void saveargs(dwarf_query& q, Dwarf_Die* scope_die, dwarf_var_expanding_visitor& v); }; @@ -2813,12 +2814,13 @@ dwarf_derived_probe::dwarf_derived_probe(const string& funcname, q.has_call = false; q.base_probe->body = old_body; } + // Save the local variables for listing mode + if (q.sess.listing_mode_vars) + saveargs(q, scope_die, v); } // else - null scope_die - $target variables will produce an error during translate phase - // Save the local variables for listing mode - if (q.sess.listing_mode_vars) - saveargs(q, scope_die); + // PR10820: null scope die, local variables aren't accessible, not necessary to invoke saveargs // Reset the sole element of the "locations" vector as a // "reverse-engineered" form of the incoming (q.base_loc) probe @@ -2885,7 +2887,7 @@ dwarf_derived_probe::dwarf_derived_probe(const string& funcname, void -dwarf_derived_probe::saveargs(dwarf_query& q, Dwarf_Die* scope_die) +dwarf_derived_probe::saveargs(dwarf_query& q, Dwarf_Die* scope_die, dwarf_var_expanding_visitor& v) { if (null_die(scope_die)) return; @@ -2923,7 +2925,18 @@ dwarf_derived_probe::saveargs(dwarf_query& q, Dwarf_Die* scope_die) !dwarf_type_name(&type_die, type_name)) continue; - argstream << " $" << arg_name << ":" << type_name; + /* trick from visit_target_symbol_context */ + target_symbol *tsym = new target_symbol; + token *t = new token; + tsym->tok = t; + tsym->base_name = "$"; + tsym->base_name += arg_name; + + /* Ignore any variable that isn't accessible */ + tsym->saved_conversion_error = 0; + v.require (tsym); + if (!tsym->saved_conversion_error) + argstream << " $" << arg_name << ":" << type_name; } while (dwarf_siblingof (&arg, &arg) == 0); -- cgit From 1cbf4fda59fb434d4326f408318afef38883c204 Mon Sep 17 00:00:00 2001 From: Breno Leitão Date: Fri, 2 Oct 2009 16:37:15 -0400 Subject: A new tapset that adds support for tty and serial devices A new tapset that supports tty devices and consequently serial devices. It is just a basic implementation that can be extended as demands appears --- tapset/tty.stp | 189 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 189 insertions(+) create mode 100644 tapset/tty.stp diff --git a/tapset/tty.stp b/tapset/tty.stp new file mode 100644 index 00000000..f6ce8ea9 --- /dev/null +++ b/tapset/tty.stp @@ -0,0 +1,189 @@ +// tty tapset +// Copyright (C) 2009 IBM Corp. +// +// Author: Breno Leitao +// +// This file is part of systemtap, and is free software. You can +// redistribute it and/or modify it under the terms of the GNU General +// Public License (GPL); either version 2, or (at your option) any +// later version. + +/** + * probe tty.open - Called when a tty is opened + * @inode_number: the inode number + * @inode_state: the inode state + * @inode_flags: the inode flags + * @file_name: the file name + * @file_mode: the file mode + * @file_flags: the file flags + */ +probe tty.open = kernel.function("tty_open") { + inode_number= $inode->i_ino + inode_state = $inode->i_state + inode_flags = $inode->i_flags + + file_name = d_name($filp->f_path->dentry) + file_mode = $filp->f_mode + file_flags = $filp->f_flags +} + +/** + * probe tty.release - Called when the tty is closed + * @inode_number: the inode number + * @inode_state: the inode state + * @inode_flags: the inode flags + * @file_name: the file name + * @file_mode: the file mode + * @file_flags: the file flags + */ +probe tty.release = kernel.function("tty_release") { + inode_number= $inode->i_ino + inode_state = $inode->i_state + inode_flags = $inode->i_flags + + file_name = d_name($filp->f_path->dentry) + file_mode = $filp->f_mode + file_flags = $filp->f_flags +} + +/** + * probe tty.resize - Called when a terminal resize happens + * @name: the tty name + * @old_row: the old row value + * @old_col: the old col value + * @old_ypixel: the old ypixel + * @old_xpixel: the old xpixel + * @new_row: the new row value + * @new_col: the new col value + * @new_ypixel: the new ypixel value + * @new_xpixel: the new xpixel value +*/ +probe tty.resize = kernel.function("tty_do_resize"){ + name = kernel_string($tty->name) + old_row = $tty->winsize->ws_row + old_col = $tty->winsize->ws_col + old_ypixel = $tty->winsize->ws_ypixel + old_xpixel = $tty->winsize->ws_xpixel + + new_row = $ws->ws_row + new_col = $ws->ws_col + new_ypixel = $ws->ws_ypixel + new_xpixel = $ws->ws_xpixel +} + +/** + * probe tty.ioctl - called when a ioctl is request to the tty + * @name: the file name + * @cmd: the ioctl command + * @arg: the ioctl argument + */ +probe tty.ioctl = kernel.function("tty_ioctl"){ + name = kernel_string($file->f_path->dentry->d_iname) + + cmd = $cmd + arg = $arg +} + +/** + * probe tty.init - Called when a tty is being initalized + * @driver_name: the driver name + * @name: the driver .dev_name name + * @module: the module name + */ +probe tty.init = kernel.function("tty_init_dev"){ + driver_name = kernel_string($driver->driver_name) + name = kernel_string($driver->name) + module = kernel_string($driver->owner->name) +} + +/** + * probe tty.register - Called when a tty device is registred + * @driver_name: the driver name + * @name: the driver .dev_name name + * @module: the module name + * @index: the tty index requested + */ +probe tty.register = kernel.function("tty_register_device"){ + driver_name = kernel_string($driver->driver_name) + name = kernel_string($driver->name) + module = kernel_string($driver->owner->name) + index = $index +} + +/** + * probe tty.unregister - Called when a tty device is being unregistered + * @driver_name: the driver name + * @name: the driver .dev_name name + * @module: the module name + * @index: the tty index requested + */ +probe tty.unregister = kernel.function("tty_unregister_device"){ + driver_name = kernel_string($driver->driver_name) + name = kernel_string($driver->name) + module = kernel_string($driver->owner->name) + index = $index +} + +/** + * probe tty.poll - Called when a tty device is being polled + * @file_name: the tty file name + * @wait_key: the wait queue key + */ +probe tty.poll = kernel.function("tty_poll"){ + file_name = d_name($filp->f_path->dentry) + + if ($wait) + wait_key = $wait->key + else + wait_key = 0 +} + +/** + * probe tty.receive - called when a tty receives a message + * @cp: the buffer that was received + * @fp: The flag buffer + * @count: The amount of characters received + * @driver_name: the driver name + * @name: the name of the module file + * @index: The tty Index + * @id: the tty id + */ +probe tty.receive = kernel.function("n_tty_receive_buf"){ + cp = kernel_string($cp) + fp = kernel_string($fp) + count = $count + + driver_name = kernel_string($tty->driver->driver_name) + name = kernel_string($tty->driver->name) + index = $tty->index + id = $tty->magic +} + +/** + * probe tty.write - write to the tty line + * @buffer: the buffer that will be written + * @nr: The amount of characters + * @driver_name: the driver name + * @file_name: the file name lreated to the tty + */ +probe tty.write = kernel.function("n_tty_write"){ + buffer = kernel_string($buf) + nr = $nr + + file_name = d_name($file->f_path->dentry) + driver_name = kernel_string($tty->driver->driver_name) +} + +/** + * probe tty.read - called when a tty line will be read + * @buffer: the buffer that will receive the characters + * @nr: The amount of characters to be read + * @driver_name: the driver name + * @file_name: the file name lreated to the tty + */ +probe tty.read = kernel.function("n_tty_read"){ + buffer = kernel_string($buf) + nr = $nr + file_name = d_name($file->f_path->dentry) + driver_name = kernel_string($tty->driver->driver_name) +} -- cgit From f4444f0c848bade06b7953d1d57d14d67a3167b6 Mon Sep 17 00:00:00 2001 From: Breno Leitão Date: Fri, 2 Oct 2009 16:38:46 -0400 Subject: A new testcase for tty tapset This is a basic test to assure that the tty tapset is working compiling and working properly --- testsuite/buildok/tty.stp | 51 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100755 testsuite/buildok/tty.stp diff --git a/testsuite/buildok/tty.stp b/testsuite/buildok/tty.stp new file mode 100755 index 00000000..0b5018d9 --- /dev/null +++ b/testsuite/buildok/tty.stp @@ -0,0 +1,51 @@ +#! stap -wp4 + +probe tty.poll{ + printf("Pooling tty %s for wait queue key %d\n", file_name, wait_key); +} + +probe tty.register { + printf("Device registered using index %d using driver %s(%s/%s)\n", index, driver_name, name, module) +} + +probe tty.unregister { + printf("Device registered using index %d using driver %s(%s/%s)\n", index, driver_name, name, module) +} + +probe tty.release { + printf("Closing file %s\n", file_name) + printf("INODE: number %d\nState: %d\nFlag: %d\n", inode_number, inode_state, inode_flags) + printf("File: %s (mode %x flags %x)\n", file_name, file_mode, file_flags) +} + +probe tty.open { + printf("Opening tty file %s\n", file_name) + printf("INODE: number %d\nState: %d\nFlag: %d\n", inode_number, inode_state, inode_flags) + printf("File: %s mode %x flags %x\n", file_name, file_mode, file_flags) +} + +probe tty.resize { + printf("Resizing %s from %dx%d (%d/%d) to %dx%d (%d/%d)\n", name, old_row, old_col, old_xpixel, old_ypixel, + new_row, new_col, new_xpixel, new_ypixel) +} + +probe tty.ioctl { + printf("Ioctling file %s with %d %d\n", name, cmd, arg) +} + +probe tty.init { + printf("new tty with name %s from driver %s and module %s\nn", driver_name, name, module) +} + +probe tty.receive { + printf("Driver %s/%s (%d/%d) received %s (%s) with len %d\n", name, driver_name, index, id, cp, fp, count) +} + + +probe tty.write { + printf("Buffer %s (len %d) wrote on file %s (driver %s)\n", buffer, nr, file_name, driver_name) +} + +probe tty.read { + printf("Reading tty file %s (driver %s) to a buffer with size %d containing %s\n", file_name, driver_name, nr, buffer) +} -- cgit From 539db29ec14eb51acaf88e4eb6eb43d3c7a4575b Mon Sep 17 00:00:00 2001 From: Breno Leitão Date: Tue, 20 Oct 2009 13:34:18 -0400 Subject: tty: Adding tty.stp to the documentation Adding the TTY tapset to the .tmpl Reference documentation --- doc/SystemTap_Tapset_Reference/tapsets.tmpl | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/doc/SystemTap_Tapset_Reference/tapsets.tmpl b/doc/SystemTap_Tapset_Reference/tapsets.tmpl index c8c5ed72..21577eb1 100644 --- a/doc/SystemTap_Tapset_Reference/tapsets.tmpl +++ b/doc/SystemTap_Tapset_Reference/tapsets.tmpl @@ -174,6 +174,15 @@ !Itapset/scsi.stp + + TTY Tapset + + This family of probe points is used to probe TTY (Teletype) activities. + It contains the following probe points: + +!Itapset/tty.stp + + Networking Tapset -- cgit From aed2582fc5a9974a321b8a9bd8b581a16f656b49 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Thu, 29 Oct 2009 10:50:14 -0700 Subject: Normalize Breno Leitao's name without an accent Per Breno's guidance, I'm removing the accent from the 'a' in Leitao. We can normalize it either way -- I just want it to be consistent. This only has an effect on git shortlog and git blame, but we do use shortlog in our AUTHORS queries. --- .mailmap | 1 + 1 file changed, 1 insertion(+) diff --git a/.mailmap b/.mailmap index 6d8d9e71..3f50d654 100644 --- a/.mailmap +++ b/.mailmap @@ -48,6 +48,7 @@ Zhaolei # Normalize a few git commit names too Anithra Janakiraman +Breno Leitao Dave Nomura Don Domingo K.Prasad -- cgit From d855fc1db953a049b953d0c987f93a252232e6f2 Mon Sep 17 00:00:00 2001 From: David Smith Date: Thu, 29 Oct 2009 15:54:58 -0500 Subject: Removed extra declarations. * runtime/transport/transport.h: Removed extra declarations of _stp_transport_init() and _stp_transport_close(). --- runtime/transport/transport.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/runtime/transport/transport.h b/runtime/transport/transport.h index 871e37b3..ddd85495 100644 --- a/runtime/transport/transport.h +++ b/runtime/transport/transport.h @@ -13,9 +13,6 @@ static int _stp_ctl_write(int type, void *data, unsigned len); -static int _stp_transport_init(void); -static void _stp_transport_close(void); - /* STP_CTL_BUFFER_SIZE is the maximum size of a message */ /* exchanged on the control channel. */ #if STP_TRANSPORT_VERSION == 1 -- cgit From 49e20063710b1d5dbb4efeb53d751b684835413c Mon Sep 17 00:00:00 2001 From: David Smith Date: Thu, 29 Oct 2009 16:12:18 -0500 Subject: Fix syscall testsuite bugs. * testsuite/systemtap.syscall/test.tcl: Substitute '[[[[' and ']]]]' for '(' and ')'. This allows us to get unquoted parens. * testsuite/systemtap.syscall/test-debug.tcl: Matches substitute logic of test.tcl. * testsuite/systemtap.syscall/README: Document '[[[[' and ']]]]'. * testsuite/systemtap.syscall/chmod.c: Handle optional O_LARGEFILE flag in open calls. * testsuite/systemtap.syscall/dir.c: Ditto. * testsuite/systemtap.syscall/mmap.c: Ditto. * testsuite/systemtap.syscall/openclose.c: Ditto. * testsuite/systemtap.syscall/readwrite.c: Ditto. * testsuite/systemtap.syscall/stat.c: Ditto. --- testsuite/systemtap.syscall/README | 3 +++ testsuite/systemtap.syscall/chmod.c | 2 +- testsuite/systemtap.syscall/dir.c | 4 ++-- testsuite/systemtap.syscall/mmap.c | 4 ++-- testsuite/systemtap.syscall/openclose.c | 18 +++++++++--------- testsuite/systemtap.syscall/readwrite.c | 4 ++-- testsuite/systemtap.syscall/stat.c | 2 +- testsuite/systemtap.syscall/test-debug.tcl | 11 +++++++++++ testsuite/systemtap.syscall/test.tcl | 6 ++++++ 9 files changed, 37 insertions(+), 17 deletions(-) diff --git a/testsuite/systemtap.syscall/README b/testsuite/systemtap.syscall/README index 480bd8cd..836ac747 100644 --- a/testsuite/systemtap.syscall/README +++ b/testsuite/systemtap.syscall/README @@ -18,6 +18,9 @@ is expected, put "NNNN" (for decimal) or "XXXX" (for hex). Or you can just write regular expressions. The "NNNN" and "XXXX" are just shorthand to aid readability and are converted to regular expressions in test.tcl. +Normally opening and closing parentheses ('(' and ')') get quoted. If +you want unquoted parentheses, use '[[[[' (for '(') or ']]]]' (for ')'). + 3. Somewhere is your test program puts a comment line like this: /* COVERAGE: syscall1 syscall2 ... */ where you list the systemcalls that are tested. Then you can run diff --git a/testsuite/systemtap.syscall/chmod.c b/testsuite/systemtap.syscall/chmod.c index 724b86c4..ce18b3d0 100644 --- a/testsuite/systemtap.syscall/chmod.c +++ b/testsuite/systemtap.syscall/chmod.c @@ -11,7 +11,7 @@ int main() int fd; fd = open("foobar",O_WRONLY|O_CREAT, 0666); - //staptest// open ("foobar", O_WRONLY|O_CREAT, 0666) = NNNN + //staptest// open ("foobar", O_WRONLY|O_CREAT[[[[.O_LARGEFILE]]]]?, 0666) = NNNN chmod("foobar", 0644); //staptest// chmod ("foobar", 0644) diff --git a/testsuite/systemtap.syscall/dir.c b/testsuite/systemtap.syscall/dir.c index 3eda8175..f5b9f320 100644 --- a/testsuite/systemtap.syscall/dir.c +++ b/testsuite/systemtap.syscall/dir.c @@ -20,7 +20,7 @@ int main() //staptest// chdir ("..") = 0 fd = open("foobar", O_RDONLY); - //staptest// open ("foobar", O_RDONLY) = NNNN + //staptest// open ("foobar", O_RDONLY[[[[.O_LARGEFILE]]]]?) = NNNN fchdir(fd); //staptest// fchdir (NNNN) = 0 @@ -35,7 +35,7 @@ int main() //staptest// rmdir ("foobar") = 0 fd = open(".", O_RDONLY); - //staptest// open (".", O_RDONLY) = NNNN + //staptest// open (".", O_RDONLY[[[[.O_LARGEFILE]]]]?) = NNNN #ifdef SYS_mkdirat mkdirat(fd, "xyzzy", 0765); diff --git a/testsuite/systemtap.syscall/mmap.c b/testsuite/systemtap.syscall/mmap.c index 13145fb2..a09888b4 100644 --- a/testsuite/systemtap.syscall/mmap.c +++ b/testsuite/systemtap.syscall/mmap.c @@ -13,14 +13,14 @@ int main() /* create a file with something in it */ fd = open("foobar",O_WRONLY|O_CREAT|O_TRUNC, 0600); - //staptest// open ("foobar", O_WRONLY|O_CREAT|O_TRUNC, 0600) = NNNN + //staptest// open ("foobar", O_WRONLY|O_CREAT[[[[.O_LARGEFILE]]]]?|O_TRUNC, 0600) = NNNN lseek(fd, 1024, SEEK_SET); write(fd, "abcdef", 6); close(fd); //staptest// close (NNNN) = 0 fd = open("foobar", O_RDONLY); - //staptest// open ("foobar", O_RDONLY) = NNNN + //staptest// open ("foobar", O_RDONLY[[[[.O_LARGEFILE]]]]?) = NNNN /* stat for file size */ ret = fstat(fd, &fs); diff --git a/testsuite/systemtap.syscall/openclose.c b/testsuite/systemtap.syscall/openclose.c index cb003a9e..aeabbe19 100644 --- a/testsuite/systemtap.syscall/openclose.c +++ b/testsuite/systemtap.syscall/openclose.c @@ -13,46 +13,46 @@ int main() int fd1, fd2; fd2 = creat("foobar1",S_IREAD|S_IWRITE); - //staptest// open ("foobar1", O_WRONLY|O_CREAT|O_TRUNC, 0600) = NNNN + //staptest// open ("foobar1", O_WRONLY|O_CREAT[[[[.O_LARGEFILE]]]]?|O_TRUNC, 0600) = NNNN fd1 = open("foobar2",O_WRONLY|O_CREAT, S_IRWXU); - //staptest// open ("foobar2", O_WRONLY|O_CREAT, 0700) = NNNN + //staptest// open ("foobar2", O_WRONLY|O_CREAT[[[[.O_LARGEFILE]]]]?, 0700) = NNNN close(fd1); //staptest// close (NNNN) = 0 fd1 = open("foobar2",O_RDONLY); - //staptest// open ("foobar2", O_RDONLY) = NNNN + //staptest// open ("foobar2", O_RDONLY[[[[.O_LARGEFILE]]]]?) = NNNN close(fd1); //staptest// close (NNNN) = 0 fd1 = open("foobar2",O_RDWR); - //staptest// open ("foobar2", O_RDWR) = NNNN + //staptest// open ("foobar2", O_RDWR[[[[.O_LARGEFILE]]]]?) = NNNN close(fd1); //staptest// close (NNNN) = 0 fd1 = open("foobar2",O_APPEND|O_WRONLY); - //staptest// open ("foobar2", O_WRONLY|O_APPEND) = NNNN + //staptest// open ("foobar2", O_WRONLY|O_APPEND[[[[.O_LARGEFILE]]]]?) = NNNN close(fd1); //staptest// close (NNNN) = 0 fd1 = open("foobar2",O_DIRECT|O_RDWR); - //staptest// open ("foobar2", O_RDWR|O_DIRECT) = NNNN + //staptest// open ("foobar2", O_RDWR|O_DIRECT[[[[.O_LARGEFILE]]]]?) = NNNN close(fd1); //staptest// close (NNNN) = 0 fd1 = open("foobar2",O_NOATIME|O_SYNC|O_RDWR); - //staptest// open ("foobar2", O_RDWR|O_NOATIME|O_SYNC) = NNNN + //staptest// open ("foobar2", O_RDWR[[[[.O_LARGEFILE]]]]?|O_NOATIME|O_SYNC) = NNNN close(fd1); //staptest// close (NNNN) = 0 /* Now test some bad opens */ fd1 = open("/",O_WRONLY); - //staptest// open ("/", O_WRONLY) = -NNNN (EISDIR) + //staptest// open ("/", O_WRONLY[[[[.O_LARGEFILE]]]]?) = -NNNN (EISDIR) close (fd1); //staptest// close (NNNN) = -NNNN (EBADF) fd1 = open("foobar2",O_WRONLY|O_CREAT|O_EXCL, S_IRWXU); - //staptest// open ("foobar2", O_WRONLY|O_CREAT|O_EXCL, 0700) = -NNNN (EEXIST) + //staptest// open ("foobar2", O_WRONLY|O_CREAT|O_EXCL[[[[.O_LARGEFILE]]]]?, 0700) = -NNNN (EEXIST) return 0; } diff --git a/testsuite/systemtap.syscall/readwrite.c b/testsuite/systemtap.syscall/readwrite.c index bd0914cc..d966c0a8 100644 --- a/testsuite/systemtap.syscall/readwrite.c +++ b/testsuite/systemtap.syscall/readwrite.c @@ -26,7 +26,7 @@ int main() v[2].iov_len = sizeof(STRING3); fd = open("foobar1",O_WRONLY|O_CREAT, 0666); - //staptest// open ("foobar1", O_WRONLY|O_CREAT, 0666) = NNNN + //staptest// open ("foobar1", O_WRONLY|O_CREAT[[[[.O_LARGEFILE]]]]?, 0666) = NNNN write(fd,"Hello world", 11); //staptest// write (NNNN, "Hello world", 11) = 11 @@ -66,7 +66,7 @@ int main() close (fd); fd = open("foobar1",O_RDONLY); - //staptest// open ("foobar1", O_RDONLY) = NNNN + //staptest// open ("foobar1", O_RDONLY[[[[.O_LARGEFILE]]]]?) = NNNN read(fd, buf, 11); //staptest// read (NNNN, XXXX, 11) = 11 diff --git a/testsuite/systemtap.syscall/stat.c b/testsuite/systemtap.syscall/stat.c index d47c1440..20a66b09 100644 --- a/testsuite/systemtap.syscall/stat.c +++ b/testsuite/systemtap.syscall/stat.c @@ -20,7 +20,7 @@ int main() //staptest// getcwd (XXXX, 128) = NNNN fd = creat("foobar",S_IREAD|S_IWRITE); - //staptest// open ("foobar", O_WRONLY|O_CREAT|O_TRUNC, 0600) = NNNN + //staptest// open ("foobar", O_WRONLY|O_CREAT[[[[.O_LARGEFILE]]]]?|O_TRUNC, 0600) = NNNN fstat(fd, &sbuf); //staptest// fstat (NNNN, XXXX) = 0 diff --git a/testsuite/systemtap.syscall/test-debug.tcl b/testsuite/systemtap.syscall/test-debug.tcl index eb730459..3eb6bbf0 100755 --- a/testsuite/systemtap.syscall/test-debug.tcl +++ b/testsuite/systemtap.syscall/test-debug.tcl @@ -50,9 +50,20 @@ foreach line [split $output "\n"] { if {[regsub {//} $line {} line]} { set line "$testname: [string trimleft $line]" + # We need to quote all these metacharacters regsub -all {\(} $line {\\(} line regsub -all {\)} $line {\\)} line regsub -all {\|} $line {\|} line + # + and * are metacharacters, but should always be used + # as metacharacters in the expressions, don't escape them. + #regsub -all {\+} $line {\\+} line + #regsub -all {\*} $line {\\*} line + + # Turn '[[[[' and ']]]]' into '(' and ')' respectively. + # Because normally parens get quoted, this allows us to + # have non-quoted parens. + regsub -all {\[\[\[\[} $line {(} line + regsub -all {\]\]\]\]} $line {)} line regsub -all NNNN $line {[\-0-9]+} line regsub -all XXXX $line {[x0-9a-fA-F]+} line diff --git a/testsuite/systemtap.syscall/test.tcl b/testsuite/systemtap.syscall/test.tcl index b9d3c0d9..e640db66 100755 --- a/testsuite/systemtap.syscall/test.tcl +++ b/testsuite/systemtap.syscall/test.tcl @@ -67,6 +67,12 @@ proc run_one_test {filename flags bits} { #regsub -all {\+} $line {\\+} line #regsub -all {\*} $line {\\*} line + # Turn '[[[[' and ']]]]' into '(' and ')' respectively. + # Because normally parens get quoted, this allows us to + # have non-quoted parens. + regsub -all {\[\[\[\[} $line {(} line + regsub -all {\]\]\]\]} $line {)} line + regsub -all NNNN $line {[\-0-9]+} line regsub -all XXXX $line {[x0-9a-fA-F]+} line -- cgit From 1ee6b5fcc17adf0b02417ac9fa0c05523b8d79c4 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Fri, 30 Oct 2009 08:10:04 -0400 Subject: PR10839: compute default KRETACTIVE from num_possible_cpus() instead of NR_CPUS * tapsets.cxx (dwarf_ and kprobe_derived_probe_group): Redefine KRETACTIVE. --- tapsets.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tapsets.cxx b/tapsets.cxx index 31d162a2..c117b139 100644 --- a/tapsets.cxx +++ b/tapsets.cxx @@ -3047,7 +3047,7 @@ dwarf_derived_probe_group::emit_module_decls (systemtap_session& s) s.op->newline(); s.op->newline() << "#ifndef KRETACTIVE"; - s.op->newline() << "#define KRETACTIVE (max(15,6*NR_CPUS))"; + s.op->newline() << "#define KRETACTIVE (max(15,6*(int)num_possible_cpus()))"; s.op->newline() << "#endif"; // Forward declare the master entry functions @@ -5036,7 +5036,7 @@ kprobe_derived_probe_group::emit_module_decls (systemtap_session& s) s.op->newline(); s.op->newline() << "#ifndef KRETACTIVE"; - s.op->newline() << "#define KRETACTIVE (max(15,6*NR_CPUS))"; + s.op->newline() << "#define KRETACTIVE (max(15,6*(int)num_possible_cpus()))"; s.op->newline() << "#endif"; // Forward declare the master entry functions -- cgit From 052e68d45e5511234b592d47ad1444bae62c35fc Mon Sep 17 00:00:00 2001 From: David Smith Date: Fri, 30 Oct 2009 10:03:52 -0500 Subject: context.exp test improvements. * testsuite/systemtap.context/args.tcl: Increased timeout. If tests do timeout, fail (instead of silently failing). * testsuite/systemtap.context/num_args.tcl: Ditto. * testsuite/systemtap.context/backtrace.tcl: Increase timeout. * testsuite/systemtap.context/pid.tcl: Ditto. --- testsuite/systemtap.context/args.tcl | 3 ++- testsuite/systemtap.context/backtrace.tcl | 2 +- testsuite/systemtap.context/num_args.tcl | 3 ++- testsuite/systemtap.context/pid.tcl | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/testsuite/systemtap.context/args.tcl b/testsuite/systemtap.context/args.tcl index fb8aecb4..c5aed203 100644 --- a/testsuite/systemtap.context/args.tcl +++ b/testsuite/systemtap.context/args.tcl @@ -1,6 +1,6 @@ spawn stap $srcdir/$subdir/args.stp expect { - -timeout 60 + -timeout 120 "READY" { exec echo 1 > /proc/stap_test_cmd expect { @@ -51,6 +51,7 @@ expect { timeout {fail "string function arguments"} } } + timeout {fail "all args tests - timeout"} eof {fail "function arguments: unexpected timeout"} } exec kill -INT -[exp_pid] diff --git a/testsuite/systemtap.context/backtrace.tcl b/testsuite/systemtap.context/backtrace.tcl index 5e7b1536..d436ab5c 100644 --- a/testsuite/systemtap.context/backtrace.tcl +++ b/testsuite/systemtap.context/backtrace.tcl @@ -9,7 +9,7 @@ set m6 0 spawn stap $srcdir/$subdir/backtrace.stp #exp_internal 1 expect { - -timeout 60 + -timeout 120 "Systemtap probe: begin\r\n" { pass "backtrace of begin probe" exec echo 0 > /proc/stap_test_cmd diff --git a/testsuite/systemtap.context/num_args.tcl b/testsuite/systemtap.context/num_args.tcl index 62ac8dd3..d677f849 100644 --- a/testsuite/systemtap.context/num_args.tcl +++ b/testsuite/systemtap.context/num_args.tcl @@ -3,7 +3,7 @@ foreach arglist $arglists { set tag [concat numeric $arglist] eval spawn stap $arglist $srcdir/$subdir/num_args.stp expect { - -timeout 60 + -timeout 120 "READY" { exec echo 1 > /proc/stap_test_cmd expect { @@ -57,6 +57,7 @@ expect { -re "semantic error:" { fail "function arguments -- $tag: compilation failed" } + timeout {fail "all function arguments tests - timeout"} eof {fail "function arguments -- $tag: unexpected timeout"} } exec kill -INT -[exp_pid] diff --git a/testsuite/systemtap.context/pid.tcl b/testsuite/systemtap.context/pid.tcl index 70a87345..350a05b2 100644 --- a/testsuite/systemtap.context/pid.tcl +++ b/testsuite/systemtap.context/pid.tcl @@ -2,7 +2,7 @@ set tests [list execname pexecname pid ppid tid uid euid gid egid] spawn stap $srcdir/$subdir/pid.stp #exp_internal 1 expect { - -timeout 60 + -timeout 120 "READY" { set pid [exec echo 1 > /proc/stap_test_cmd &] set ppid {[0-9]*} -- cgit From b732b45bcefa1414e984bc2a9c023336f4ebfe90 Mon Sep 17 00:00:00 2001 From: Dave Brolley Date: Fri, 30 Oct 2009 12:17:06 -0400 Subject: Never ask the user for a password in stap-gen-cert. Read from /dev/random as a last resort. Cert db passwords will be going away soon(tm). --- stap-gen-cert | 26 +------------------------- 1 file changed, 1 insertion(+), 25 deletions(-) diff --git a/stap-gen-cert b/stap-gen-cert index 574df351..44ec817e 100755 --- a/stap-gen-cert +++ b/stap-gen-cert @@ -13,30 +13,6 @@ # Initialize the environment . `dirname $0`/stap-env -# Obtain a password from stdin and echo it. -function user_enter_password -{ - while true - do - while true - do - read -sp "Enter new password for systemtap server certificate/key database:" pw1 junk - echo "" >&2 - test "X$pw1" != "X" && break - done - while true - do - read -sp "Reenter new password:" pw2 junk - echo "" >&2 - test "X$pw2" != "X" && break - done - test "$pw1" = "$pw2" && break - echo "Passwords do not match" >&2 - done - - echo $pw1 -} - # Obtain the certificate database directory name. serverdb=$1 if test "X$serverdb" = "X"; then @@ -60,7 +36,7 @@ fi # Generate a random password. mkpasswd -l 20 > $serverdb/pw 2>/dev/null || \ apg -a 1 -n 1 -m 20 -x 20 > $serverdb/pw 2>/dev/null || \ -user_enter_password > $serverdb/pw +(read -n20 password $serverdb/pw) # Generate the server certificate database if ! certutil -N -d $serverdb -f $serverdb/pw > /dev/null; then -- cgit From 3a2a1e27684edaef813eeb968ba693e0ff6d021d Mon Sep 17 00:00:00 2001 From: Dave Brolley Date: Fri, 30 Oct 2009 12:32:01 -0400 Subject: Use /dev/urandom (non-blocking) instead of /dev/random. --- stap-gen-cert | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stap-gen-cert b/stap-gen-cert index 44ec817e..b8397881 100755 --- a/stap-gen-cert +++ b/stap-gen-cert @@ -36,7 +36,7 @@ fi # Generate a random password. mkpasswd -l 20 > $serverdb/pw 2>/dev/null || \ apg -a 1 -n 1 -m 20 -x 20 > $serverdb/pw 2>/dev/null || \ -(read -n20 password $serverdb/pw) +(read -n20 password $serverdb/pw) # Generate the server certificate database if ! certutil -N -d $serverdb -f $serverdb/pw > /dev/null; then -- cgit From 9996b615a6ad49ba8adccf7c9395045016ef74e0 Mon Sep 17 00:00:00 2001 From: Eugene Teo Date: Fri, 30 Oct 2009 19:52:23 -0400 Subject: plimit: Add plimit.stp sample script --- testsuite/systemtap.examples/process/plimit.meta | 7 +++ testsuite/systemtap.examples/process/plimit.stp | 78 ++++++++++++++++++++++++ 2 files changed, 85 insertions(+) create mode 100644 testsuite/systemtap.examples/process/plimit.meta create mode 100755 testsuite/systemtap.examples/process/plimit.stp diff --git a/testsuite/systemtap.examples/process/plimit.meta b/testsuite/systemtap.examples/process/plimit.meta new file mode 100644 index 00000000..d5cd4e8b --- /dev/null +++ b/testsuite/systemtap.examples/process/plimit.meta @@ -0,0 +1,7 @@ +title: print resource limits +name: plimit.stp +keywords: process +subsystem: general +description: The script prints a variety of resource limits for a given pid, like /proc/$$/limits on recent kernels. +test_check: stap -gp4 plimit.stp $$ +test_installcheck: stap -g plimit.stp $$ diff --git a/testsuite/systemtap.examples/process/plimit.stp b/testsuite/systemtap.examples/process/plimit.stp new file mode 100755 index 00000000..1a389468 --- /dev/null +++ b/testsuite/systemtap.examples/process/plimit.stp @@ -0,0 +1,78 @@ +#!/usr/bin/env stap +# plimit.stp +# Copyright (C) 2006 Red Hat, Inc., Eugene Teo +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. +# + +%{ + #include + #include +%} + +function getrlimit:string (rlim:long, pid:long) %{ /* pure */ + struct task_struct *p; + struct list_head *_p, *_n; + static char cur_buf[24], max_buf[24]; + long int cur, max; + + list_for_each_safe(_p, _n, ¤t->tasks) { + p = list_entry(_p, struct task_struct, tasks); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,12) + cur = p->signal->rlim[THIS->rlim].rlim_cur; + max = p->signal->rlim[THIS->rlim].rlim_max; +#else + cur = p->rlim[THIS->rlim].rlim_cur; + max = p->rlim[THIS->rlim].rlim_max; +#endif + if (p->pid == (int)THIS->pid) { + if (cur == -1 && max == -1) + strcat(THIS->__retvalue, "unlimited unlimited"); + else if (cur == -1) + snprintf(THIS->__retvalue, MAXSTRINGLEN, "%-9s %-9ld", + "unlimited", max); + else if (max == -1) + snprintf(THIS->__retvalue, MAXSTRINGLEN, "%-9ld %-9s", + cur, "unlimited"); + else + snprintf(THIS->__retvalue, MAXSTRINGLEN, "%-9ld %-9ld", + cur, max); + } + } +%} + +function task_execname_by_pid:string (pid:long) %{ /* pure */ + struct task_struct *p; + struct list_head *_p, *_n; + list_for_each_safe(_p, _n, ¤t->tasks) { + p = list_entry(_p, struct task_struct, tasks); + if (p->pid == (int)THIS->pid) + snprintf(THIS->__retvalue, MAXSTRINGLEN, "%s", p->comm); + } +%} + +probe begin +{ + printf("%d: -%s\n", $1, task_execname_by_pid($1)) + /* include/asm-generic/resource.h */ + printf(" resource current maximum\n") + printf("coredump(blocks) %s\n", getrlimit(4, $1)) + printf("data(bytes) %s\n", getrlimit(2, $1)) + printf("max nice %s\n", getrlimit(13, $1)) + printf("file size(blocks) %s\n", getrlimit(1, $1)) + printf("pending signals %s\n", getrlimit(11, $1)) + printf("max locked memory(bytes) %s\n", getrlimit(8, $1)) + printf("max memory size(bytes) %s\n", getrlimit(5, $1)) + printf("open files %s\n", getrlimit(7, $1)) + printf("POSIX message queues(bytes) %s\n", getrlimit(12, $1)) + printf("max rt priority %s\n", getrlimit(14, $1)) + printf("stack size(bytes) %s\n", getrlimit(3, $1)) + printf("cpu time(seconds) %s\n", getrlimit(0, $1)) + printf("max user processes %s\n", getrlimit(6, $1)) + printf("virtual memory(bytes) %s\n", getrlimit(9, $1)) + printf("file locks %s\n", getrlimit(10, $1)) + + exit() +} -- cgit From 5b8642a208b614769f934c6a4ce2991658025a57 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Fri, 30 Oct 2009 19:53:03 -0400 Subject: regen sample indexes with plimit.stp --- testsuite/systemtap.examples/index.html | 3 +++ testsuite/systemtap.examples/index.txt | 7 +++++++ testsuite/systemtap.examples/keyword-index.html | 3 +++ testsuite/systemtap.examples/keyword-index.txt | 7 +++++++ 4 files changed, 20 insertions(+) diff --git a/testsuite/systemtap.examples/index.html b/testsuite/systemtap.examples/index.html index f2b7066f..55fea0fb 100644 --- a/testsuite/systemtap.examples/index.html +++ b/testsuite/systemtap.examples/index.html @@ -169,6 +169,9 @@ keywords: SCHEDULER
  • process/pf2.stp - Profile kernel functions
    keywords: PROFILING

    The pf2.stp script sets up time-based sampling. Every five seconds it prints out a sorted list with the top ten kernel functions with samples.

  • +
  • process/plimit.stp - print resource limits
    +keywords: PROCESS
    +

    The script prints a variety of resource limits for a given pid, like /proc/$$/limits on recent kernels.

  • process/schedtimes.stp - Track Time Processes Spend in Various States using Tracepoints
    keywords: PROCESS SCHEDULER TIME TRACEPOINT

    The schedtimes.stp script instruments the scheduler to track the amount of time that each process spends running, sleeping, queued, and waiting for io. On exit the script prints out the accumulated time for each state of processes observed. Optionally, this script can be used with the '-c' or '-x' options to focus on a specific PID.

  • diff --git a/testsuite/systemtap.examples/index.txt b/testsuite/systemtap.examples/index.txt index e880c746..16b45aac 100644 --- a/testsuite/systemtap.examples/index.txt +++ b/testsuite/systemtap.examples/index.txt @@ -407,6 +407,13 @@ keywords: profiling samples. +process/plimit.stp - print resource limits +keywords: process + + The script prints a variety of resource limits for a given pid, like + /proc/$$/limits on recent kernels. + + process/schedtimes.stp - Track Time Processes Spend in Various States using Tracepoints keywords: process scheduler time tracepoint diff --git a/testsuite/systemtap.examples/keyword-index.html b/testsuite/systemtap.examples/keyword-index.html index f09a20b3..1a2855e1 100644 --- a/testsuite/systemtap.examples/keyword-index.html +++ b/testsuite/systemtap.examples/keyword-index.html @@ -297,6 +297,9 @@ keywords: PROCESS process/forktracker.stp - Trace Creation of Processes
    keywords: PROCESS SCHEDULER

    The forktracker.stp script prints out a time-stamped entry showing each fork and exec operation on the machine. This can be useful for determine what process is creating a flurry of short-lived processes.

    +
  • process/plimit.stp - print resource limits
    +keywords: PROCESS
    +

    The script prints a variety of resource limits for a given pid, like /proc/$$/limits on recent kernels.

  • process/schedtimes.stp - Track Time Processes Spend in Various States using Tracepoints
    keywords: PROCESS SCHEDULER TIME TRACEPOINT

    The schedtimes.stp script instruments the scheduler to track the amount of time that each process spends running, sleeping, queued, and waiting for io. On exit the script prints out the accumulated time for each state of processes observed. Optionally, this script can be used with the '-c' or '-x' options to focus on a specific PID.

  • diff --git a/testsuite/systemtap.examples/keyword-index.txt b/testsuite/systemtap.examples/keyword-index.txt index 853198d3..6de9c330 100644 --- a/testsuite/systemtap.examples/keyword-index.txt +++ b/testsuite/systemtap.examples/keyword-index.txt @@ -605,6 +605,13 @@ keywords: process scheduler determine what process is creating a flurry of short-lived processes. +process/plimit.stp - print resource limits +keywords: process + + The script prints a variety of resource limits for a given pid, like + /proc/$$/limits on recent kernels. + + process/schedtimes.stp - Track Time Processes Spend in Various States using Tracepoints keywords: process scheduler time tracepoint -- cgit From 2c279bc4231e44dba80e5fdb10aa1626e412eab3 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Sat, 31 Oct 2009 13:54:41 -0400 Subject: reorganize app tests; rewrite tcl as sample of improvements * testsuite/configure.ac (--enable-testapps): New option. * testsuite/Makefile.am (TESTAPPS): Pass to dejagnu. * testsuite/systemtap.base/{xulrunner,tcl,mysql,postgres}: Moved under new systemtap.apps/ subdirectory. * testsuite/systemtap.apps/stap-tcl.sh: New file to build tcl. * testsuite/systemtap.apps/stap-tcl.stp: New file to test tcl. * testsuite/systemtap.apps/tcl.exp: New simplified test driver. * dtrace.in: Disable STAP_HAS_SEMAPHORES as they don't work on shlibs yet. * includes/sys/sdt.h (STAP_SEMAPHORE): Include __builtin_expect for unlikely. --- dtrace.in | 2 +- includes/sys/sdt.h | 2 +- testsuite/Makefile.am | 4 +- testsuite/Makefile.in | 4 +- testsuite/configure | 20 ++ testsuite/configure.ac | 12 ++ testsuite/systemtap.apps/mysql.exp | 344 +++++++++++++++++++++++++++++++++ testsuite/systemtap.apps/postgres.exp | 166 ++++++++++++++++ testsuite/systemtap.apps/stap-tcl.sh | 25 +++ testsuite/systemtap.apps/stap-tcl.stp | 30 +++ testsuite/systemtap.apps/tcl.exp | 67 +++++++ testsuite/systemtap.apps/xulrunner.exp | 133 +++++++++++++ testsuite/systemtap.base/mysql.exp | 344 --------------------------------- testsuite/systemtap.base/postgres.exp | 166 ---------------- testsuite/systemtap.base/tcl.exp | 165 ---------------- testsuite/systemtap.base/xulrunner.exp | 133 ------------- 16 files changed, 804 insertions(+), 813 deletions(-) create mode 100644 testsuite/systemtap.apps/mysql.exp create mode 100644 testsuite/systemtap.apps/postgres.exp create mode 100644 testsuite/systemtap.apps/stap-tcl.sh create mode 100644 testsuite/systemtap.apps/stap-tcl.stp create mode 100644 testsuite/systemtap.apps/tcl.exp create mode 100644 testsuite/systemtap.apps/xulrunner.exp delete mode 100644 testsuite/systemtap.base/mysql.exp delete mode 100644 testsuite/systemtap.base/postgres.exp delete mode 100644 testsuite/systemtap.base/tcl.exp delete mode 100644 testsuite/systemtap.base/xulrunner.exp diff --git a/dtrace.in b/dtrace.in index d147addb..74d70e77 100755 --- a/dtrace.in +++ b/dtrace.in @@ -46,7 +46,7 @@ class provider: self.f = open(provider) self.h = open(header,mode='w') self.h.write("/* Generated by the Systemtap dtrace wrapper */\n") - self.h.write("\n#define STAP_HAS_SEMAPHORES 1\n\n") + # self.h.write("\n#define STAP_HAS_SEMAPHORES 1\n\n") self.h.write("\n#include \n\n") in_comment = False typedefs = "" diff --git a/includes/sys/sdt.h b/includes/sys/sdt.h index d31d7326..3847c497 100644 --- a/includes/sys/sdt.h +++ b/includes/sys/sdt.h @@ -42,7 +42,7 @@ #if defined STAP_HAS_SEMAPHORES && defined EXPERIMENTAL_UTRACE_SDT #define STAP_SEMAPHORE(probe) \ - if ( probe ## _semaphore ) + if (__builtin_expect ( probe ## _semaphore , 0)) #else #define STAP_SEMAPHORE(probe) #endif diff --git a/testsuite/Makefile.am b/testsuite/Makefile.am index 9607ebe3..248a0fb3 100644 --- a/testsuite/Makefile.am +++ b/testsuite/Makefile.am @@ -12,7 +12,7 @@ clean-local: -rm -rf .systemtap* .cache_test* 2>/dev/null DEJAZILLA=@dejazilla@ - +TESTAPPS=@enable_testapps@ TOOL_OPTS= # automake's dejagnu library already runs check-DEJAGNU before check-local @@ -37,4 +37,4 @@ SYSTEMTAP_INCLUDES=$(DESTDIR)$(includedir) RUNTESTDEFAULTFLAGS = --tool $$tool --tool_opts \'$(TOOL_OPTS)\' --srcdir $$srcdir EXPECT = expect -RUNTEST="env SYSTEMTAP_RUNTIME=$(SYSTEMTAP_RUNTIME) SYSTEMTAP_TAPSET=$(SYSTEMTAP_TAPSET) LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) CRASH_LIBDIR=$(CRASH_LIBDIR) PATH=$(SYSTEMTAP_PATH):$$PATH SYSTEMTAP_PATH=$(SYSTEMTAP_PATH) SYSTEMTAP_INCLUDES=$(SYSTEMTAP_INCLUDES) $(srcdir)/execrc runtest" +RUNTEST="env SYSTEMTAP_TESTAPPS=$(TESTAPPS) SYSTEMTAP_RUNTIME=$(SYSTEMTAP_RUNTIME) SYSTEMTAP_TAPSET=$(SYSTEMTAP_TAPSET) LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) CRASH_LIBDIR=$(CRASH_LIBDIR) PATH=$(SYSTEMTAP_PATH):$$PATH SYSTEMTAP_PATH=$(SYSTEMTAP_PATH) SYSTEMTAP_INCLUDES=$(SYSTEMTAP_INCLUDES) $(srcdir)/execrc runtest" diff --git a/testsuite/Makefile.in b/testsuite/Makefile.in index 7358bd2c..3853cdd4 100644 --- a/testsuite/Makefile.in +++ b/testsuite/Makefile.in @@ -95,6 +95,7 @@ datarootdir = @datarootdir@ dejazilla = @dejazilla@ docdir = @docdir@ dvidir = @dvidir@ +enable_testapps = @enable_testapps@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ @@ -122,6 +123,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = dejagnu no-dist DEJAZILLA = @dejazilla@ +TESTAPPS = @enable_testapps@ TOOL_OPTS = # $(srcdir)/These values point the test suite to the install tree, and @@ -134,7 +136,7 @@ SYSTEMTAP_PATH = $(DESTDIR)$(bindir) SYSTEMTAP_INCLUDES = $(DESTDIR)$(includedir) RUNTESTDEFAULTFLAGS = --tool $$tool --tool_opts \'$(TOOL_OPTS)\' --srcdir $$srcdir EXPECT = expect -RUNTEST = "env SYSTEMTAP_RUNTIME=$(SYSTEMTAP_RUNTIME) SYSTEMTAP_TAPSET=$(SYSTEMTAP_TAPSET) LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) CRASH_LIBDIR=$(CRASH_LIBDIR) PATH=$(SYSTEMTAP_PATH):$$PATH SYSTEMTAP_PATH=$(SYSTEMTAP_PATH) SYSTEMTAP_INCLUDES=$(SYSTEMTAP_INCLUDES) $(srcdir)/execrc runtest" +RUNTEST = "env SYSTEMTAP_TESTAPPS=$(TESTAPPS) SYSTEMTAP_RUNTIME=$(SYSTEMTAP_RUNTIME) SYSTEMTAP_TAPSET=$(SYSTEMTAP_TAPSET) LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) CRASH_LIBDIR=$(CRASH_LIBDIR) PATH=$(SYSTEMTAP_PATH):$$PATH SYSTEMTAP_PATH=$(SYSTEMTAP_PATH) SYSTEMTAP_INCLUDES=$(SYSTEMTAP_INCLUDES) $(srcdir)/execrc runtest" all: all-am .SUFFIXES: diff --git a/testsuite/configure b/testsuite/configure index 5e75929c..d64ca089 100755 --- a/testsuite/configure +++ b/testsuite/configure @@ -602,6 +602,7 @@ PACKAGE_BUGREPORT='systemtap@sources.redhat.com' ac_subst_vars='LTLIBOBJS LIBOBJS +enable_testapps dejazilla MAINT MAINTAINER_MODE_FALSE @@ -671,6 +672,7 @@ ac_user_opts=' enable_option_checking enable_maintainer_mode enable_dejazilla +enable_testapps ' ac_precious_vars='build_alias host_alias @@ -1308,6 +1310,9 @@ Optional Features: results to a central public collection point (default is disabled). Optional EMAIL overrides the default email address. + --enable-testapps=foo,bar or all + enable rebuilding of large external apps for testing + markers Report bugs to . _ACEOF @@ -2317,6 +2322,21 @@ $as_echo "$as_me: A \"make *check\" will email results to $dejazilla" >&6;} fi +apps= +for exp in $srcdir/systemtap.apps/*.exp +do + app=`basename $exp .exp` + apps="$app $apps" +done +# Check whether --enable-testapps was given. +if test "${enable_testapps+set}" = set; then + enableval=$enable_testapps; +fi + +{ $as_echo "$as_me:$LINENO: Will test ${enable_testapps-none} from: $apps" >&5 +$as_echo "$as_me: Will test ${enable_testapps-none} from: $apps" >&6;} + + ac_config_files="$ac_config_files Makefile" cat >confcache <<\_ACEOF diff --git a/testsuite/configure.ac b/testsuite/configure.ac index 5166d226..bc5aed17 100644 --- a/testsuite/configure.ac +++ b/testsuite/configure.ac @@ -23,5 +23,17 @@ if test -n "$dejazilla"; then fi AC_SUBST(dejazilla) +apps= +for exp in $srcdir/systemtap.apps/*.exp +do + app=`basename $exp .exp` + apps="$app $apps" +done +AC_ARG_ENABLE([testapps], + AC_HELP_STRING([--enable-testapps=foo,bar or all], + [enable rebuilding of large external apps for testing markers])) +AC_MSG_NOTICE([Will test ${enable_testapps-no} apps from: $apps]) +AC_SUBST(enable_testapps) + AC_CONFIG_FILES(Makefile) AC_OUTPUT diff --git a/testsuite/systemtap.apps/mysql.exp b/testsuite/systemtap.apps/mysql.exp new file mode 100644 index 00000000..efeffbae --- /dev/null +++ b/testsuite/systemtap.apps/mysql.exp @@ -0,0 +1,344 @@ +set test "mysql" + +# Test sdt support in mysql. + +global env + +if {! [info exists env(SYSTEMTAP_TEST_SDT)]} { + unsupported "mysql (\"SYSTEMTAP_TEST_SDT\" not in env)" + return +} + +########## Create /tmp/stap-mysql.stp ########## +set msdata "[pwd]/stap-mysql" +set mysqlrelease "mysql-5.4.1-beta" +set mysqldir "[pwd]/mysql/install/" +set testsuite "[pwd]" + +set fp [open "$testsuite/stap-mysql.stp" "w"] +puts $fp " +probe process(@1).mark(\"connection__start\") +{ + arg2 = user_string(\$arg2) + arg3 = user_string(\$arg3) + printf(\"%s %#x %s %s\\n\",\"connection__start\", \$arg1, arg2, arg3); +} +probe process(@1).mark(\"connection__done\") +{ + printf(\"%s %#x %#x \\n\",\"connection__done\", \$arg1, \$arg2); +} +probe process(@1).mark(\"command__start\") +{ + arg3 = user_string(\$arg3) + arg4 = user_string(\$arg4) + printf(\"%s %#x %#x %s %s\\n\",\"command__start\", \$arg1, \$arg2, arg3, arg4); +} +probe process(@1).mark(\"command__done\") +{ + printf(\"%s %#x\\n\",\"command__done\", \$arg1); +} +probe process(@1).mark(\"query__start\") +{ + arg1 = user_string(\$arg1) + arg3 = user_string(\$arg3) + arg4 = user_string(\$arg4) + arg5 = user_string(\$arg5) + printf(\"%s %s %#x %s %s %s\\n\",\"query__start\", arg1, \$arg2, + arg3, arg4, arg5); +} +probe process(@1).mark(\"query__done\") +{ + printf(\"%s %#x\\n\",\"query__done\", \$arg1); +} +probe process(@1).mark(\"query__parse__start\") +{ + arg1 = user_string(\$arg1) + printf(\"%s %s\\n\",\"query__parse__start\", arg1); +} +probe process(@1).mark(\"query__parse__done\") +{ + printf(\"%s %#x\\n\",\"query__parse__done\", \$arg1); +} +probe process(@1).mark(\"query__cache__hit\") +{ + arg1=user_string(\$arg1) + arg2=user_string(\$arg2) + printf(\"%s %s %s \\n\",\"query__cache__hit\", arg1, arg2); +} +probe process(@1).mark(\"query__cache__miss\") +{ + arg1=user_string(\$arg1) + printf(\"%s %s\\n\",\"query__cache__miss\", arg1); +} +probe process(@1).mark(\"query__exec__start\") +{ + arg1=user_string(\$arg1) + arg3=user_string(\$arg3) + arg4=user_string(\$arg4) + arg5=user_string(\$arg5) + printf(\"%s %s %#x %s %s %s\\n\",\"query__exec__start\", arg1, \$arg2, + arg3, arg4, arg5); +} +probe process(@1).mark(\"query__exec__done\") +{ + printf(\"%s %#x\\n\",\"query__exec__done\", \$arg1); +} +probe process(@1).mark(\"insert__row__start\") +{ + arg1=user_string(\$arg1) + arg2=user_string(\$arg2) + printf(\"%s %s %s \\n\",\"insert__row__start\", arg1, arg2); +} +probe process(@1).mark(\"insert__row__done\") +{ + printf(\"%s %#x\\n\",\"insert__row__done\", \$arg1); +} +probe process(@1).mark(\"update__row__start\") +{ + arg1=user_string(\$arg1) + arg2=user_string(\$arg2) + printf(\"%s %s %s \\n\",\"update__row__start\", arg1, arg2); +} +probe process(@1).mark(\"update__row__done\") +{ + printf(\"%s %#x\\n\",\"update__row__done\", \$arg1); +} +probe process(@1).mark(\"delete__row__start\") +{ + arg1=user_string(\$arg1) + arg2=user_string(\$arg2) + printf(\"%s %s %s \\n\",\"delete__row__start\", arg1, arg2); +} +probe process(@1).mark(\"delete__row__done\") +{ + printf(\"%s %#x\\n\",\"delete__row__done\", \$arg1); +} +probe process(@1).mark(\"handler__rdlock__start\") +{ + arg1=user_string(\$arg1) + arg2=user_string(\$arg2) + printf(\"%s %s %s \\n\",\"handler__rdlock__start\", arg1, arg2); +} +probe process(@1).mark(\"handler__wrlock__start\") +{ + arg1=user_string(\$arg1) + arg2=user_string(\$arg2) + printf(\"%s %s %s \\n\",\"handler__wrlock__start\", arg1, arg2); +} +probe process(@1).mark(\"handler__unlock__start\") +{ + arg1=user_string(\$arg1) + arg2=user_string(\$arg2) + printf(\"%s %s %s \\n\",\"handler__unlock__start\", arg1, arg2); +} +probe process(@1).mark(\"handler__rdlock__done\") +{ + printf(\"%s %#x\\n\",\"handler__rdlock__done\", \$arg1); +} +probe process(@1).mark(\"handler__wrlock__done\") +{ + printf(\"%s %#x\\n\",\"handler__wrlock__done\", \$arg1); +} +probe process(@1).mark(\"handler__unlock__done\") +{ + printf(\"%s %#x\\n\",\"handler__unlock__done\", \$arg1); +} +probe process(@1).mark(\"filesort__start\") +{ + printf(\"%s %#x %#x \\n\",\"filesort__start\", \$arg1, \$arg2); +} +probe process(@1).mark(\"filesort__done\") +{ + printf(\"%s %#x %#x \\n\",\"filesort__done\", \$arg1, \$arg2); +} +probe process(@1).mark(\"select__start\") +{ + arg1=user_string(\$arg1) + printf(\"%s %s\\n\",\"select__start\", arg1); +} +probe process(@1).mark(\"select__done\") +{ + printf(\"%s %#x %#x \\n\",\"select__done\", \$arg1, \$arg2); +} +probe process(@1).mark(\"insert__start\") +{ + arg1=user_string(\$arg1) + printf(\"%s %s\\n\",\"insert__start\", arg1); +} +probe process(@1).mark(\"insert__done\") +{ + printf(\"%s %#x %#x \\n\",\"insert__done\", \$arg1, \$arg2); +} +probe process(@1).mark(\"insert__select__start\") +{ + arg1=user_string(\$arg1) + printf(\"%s %s\\n\",\"insert__select__start\", arg1); +} +probe process(@1).mark(\"insert__select__done\") +{ + printf(\"%s %#x %#x \\n\",\"insert__select__done\", \$arg1, \$arg2); +} +probe process(@1).mark(\"update__start\") +{ + arg1=user_string(\$arg1) + printf(\"%s %s\\n\",\"update__start\", arg1); +} +probe process(@1).mark(\"update__done\") +{ + printf(\"%s %#x %#x %#x\\n\",\"update__done\", \$arg1, \$arg2, \$arg3); +} +probe process(@1).mark(\"multi__update__start\") +{ + arg1=user_string(\$arg1) + printf(\"%s %s\\n\",\"multi__update__start\", arg1); +} +probe process(@1).mark(\"multi__update__done\") +{ + printf(\"%s %#x %#x %#x\\n\",\"multi__update__done\", \$arg1, \$arg2, \$arg3); +} +probe process(@1).mark(\"delete__start\") +{ + arg1=user_string(\$arg1) + printf(\"%s %s\\n\",\"delete__start\", arg1); +} +probe process(@1).mark(\"delete__done\") +{ + printf(\"%s %#x %#x \\n\",\"delete__done\", \$arg1, \$arg2); +} +probe process(@1).mark(\"multi__delete__start\") +{ + arg1=user_string(\$arg1) + printf(\"%s %s\\n\",\"multi__delete__start\", arg1); +} +probe process(@1).mark(\"multi__delete__done\") +{ + printf(\"%s %#x %#x \\n\",\"multi__delete__done\", \$arg1, \$arg2); +} +probe process(@1).mark(\"net__read__start\") +{ + printf(\"%s \\n\",\"net__read__start\"); +} +probe process(@1).mark(\"net__read__done\") +{ + printf(\"%s %#x %#x \\n\",\"net__read__done\", \$arg1, \$arg2); +} +probe process(@1).mark(\"net__write__start\") +{ + printf(\"%s %#x\\n\",\"net__write__start\", \$arg1); +} +probe process(@1).mark(\"net__write__done\") +{ + printf(\"%s %#x\\n\",\"net__write__done\", \$arg1); +} +" +close $fp + +########## Begin /tmp/stap-mysql.sh ########## +set fp [open "$testsuite/stap-mysql.sh" "w"] +puts $fp " +##### begin run_tests ##### +function run_tests \{ +/bin/rm -rf $testsuite/stap-mysql +$mysqldir/bin/mysql_install_db --basedir=$mysqldir --datadir=$msdata + +(cd $mysqldir/mysql-test +# wait until mysql is running +MOD=stapsdt_\$(date +%j%k%M%N | sed 's/ //') +$env(SYSTEMTAP_PATH)/stap -m \$MOD -c \"$mysqldir/libexec/mysqld --basedir=$mysqldir --datadir=$msdata --log-error=$msdata/mysql.log --pid-file=$msdata/mysql.pid --socket=$msdata/mysql.sock\" $testsuite/stap-mysql.stp $mysqldir/libexec/mysqld >$testsuite/stap-mysql-markers.log 2>&1 & +STAPPID=\$! + +for i in \$(seq 0 10) ; do + if $mysqldir/bin/mysqladmin ping --socket=$msdata/mysql.sock + then break; + fi + sleep 5 +done + +for i in select join insert query +do + echo '##### ' \$i + ./mysql-test-run.pl --force --extern socket=$msdata/mysql.sock \ + --tmpdir=/tmp/,mysql --vardir=/tmp/,mysql --do-test=\$i +done > $testsuite/stap-mysql.log +) + +ACQUIRE=\$(grep 'handler__unlock__start' $testsuite/stap-mysql-markers.log | wc -l) +RELEASE=\$(grep 'handler__unlock__done' $testsuite/stap-mysql-markers.log | wc -l) +COMMAND=\$(grep 'command__start' $testsuite/stap-mysql-markers.log | wc -l) +QUERY=\$(grep 'query__start' $testsuite/stap-mysql-markers.log | wc -l) +RDLOCK=\$(grep 'handler__rdlock__start' $testsuite/stap-mysql-markers.log | wc -l) +SELECT=\$(grep 'select_start' $testsuite/stap-mysql-markers.log | wc -l) +OKAY=\$(grep 'All.*tests were successful' $testsuite/stap-mysql.log | wc -l) + +echo ACQUIRE=\$ACQUIRE RELEASE=\$RELEASE COMMAND=\$COMMAND QUERY=\$QUERY RDLOCK=\$RDLOCK SELECT=\$SELECT OKAY=\$OKAY +if \[ \$ACQUIRE -gt 10000 -a \$RELEASE -gt 1000 -a \$COMMAND -gt 12000 -a \$QUERY -gt 13000 -a \$RDLOCK -gt 3000 \] ; then + echo PASS: mysql markers \$1 +else + echo FAIL: mysql markers \$1 +fi + +if \[ \$OKAY -eq 4 \] ; then + echo PASS: mysql tests \$1 +else + echo FAIL: mysql tests \$1 +fi + +$mysqldir/bin/mysqladmin shutdown -u root --socket=stap-mysql/mysql.sock +kill \$STAPPID +\} +##### end run_tests ##### + +if \[ ! -r $mysqlrelease.tar.gz \] ; then +wget http://dev.mysql.com/get/Downloads/MySQL-5.4/$mysqlrelease.tar.gz/from/ftp://mirror.services.wisc.edu/mirrors/mysql/ +fi + +if \[ ! -d mysql/src \] ; then +tar -x -z -f $mysqlrelease.tar.gz +mkdir mysql +mv $mysqlrelease mysql/src +fi + +if \[ ! -f mysql/install/bin/mysql \] ; then +cd mysql +mkdir bld +cd bld +# Force the use of dtrace +sed -i -e 's/HAVE_DTRACE_DASH_G=\"no\"/HAVE_DTRACE_DASH_G=\"yes\"/' ../src/configure +../src/configure --enable-dtrace --prefix=$mysqldir +for i in \$(find . -name Makefile) ; do + sed -i -e 's/^CXXFLAGS =/& -g/' \$i +done + +make -j2 +cp ./abi_check.out ../../src/include/mysql.h.pp +make -j2 +make install +fi + +run_tests uprobe +" +########## End /tmp/stap-mysql.sh ########## +close $fp + +########## /tmp/stap-mysql.sh does most of the work ########## +verbose -log Running mysql testsuite +spawn sh stap-mysql.sh 2>&1 +expect { + -timeout 1000 + -re {FAIL: [a-z_ ]+} { regexp " .*$" $expect_out(0,string) s; + fail "$s"; exp_continue } + -re {PASS: [a-z_ ]+} { regexp " .*$" $expect_out(0,string) s; + pass "$s"; exp_continue } + -re {UNSUPPORTED: [a-zA-Z_/: ]+} { regexp " .*$" $expect_out(0,string) s; + verbose -log "$s" + unsupported "$s"; exp_continue } + timeout { fail "$test (timeout)" } + eof { } +} + +if { $verbose == 0 } { +catch {exec rm -rf $msdata} +catch {exec rm -rf $testsuite/stap-mysql.stp $testsuite/stap-mysql.log \ + $testsuite/stap-mysql-markers.log $testsuite/stap-mysql.sh $mysqlrelease.tar.gz} +catch {exec rm -rf mysql} +} diff --git a/testsuite/systemtap.apps/postgres.exp b/testsuite/systemtap.apps/postgres.exp new file mode 100644 index 00000000..2d58a54f --- /dev/null +++ b/testsuite/systemtap.apps/postgres.exp @@ -0,0 +1,166 @@ +set test "postgres" + +# Test sdt support in postgres. + +global env + +if {! [info exists env(SYSTEMTAP_TEST_SDT)]} { + unsupported "postgres (\"SYSTEMTAP_TEST_SDT\" not in env)" + return +} + +########## Create /tmp/stap-postgres.stp ########## +set postgresbuild "[pwd]/postgresql-8.3.6/bld" +set postgresdir "[pwd]/postgresql-8.3.6/install/" +set pgdata "/tmp/stap-postgres" + + +set fp [open "$pgdata.stp" "w"] +puts $fp " +probe process(\"$postgresdir/bin/postgres\").mark(\"transaction__start\") +{ + printf(\"%s %#x\\n\", \$\$name, \$arg1); +} +probe process(\"$postgresdir/bin/postgres\").mark(\"transaction__commit\") +{ + printf(\"%s %#x\\n\", \$\$name, \$arg1); +} +probe process(\"$postgresdir/bin/postgres\").mark(\"transaction__abort\") +{ + printf(\"%s %#x\\n\", \$\$name, \$arg1); +} +probe process(\"$postgresdir/bin/postgres\").mark(\"lock__startwait\") +{ + printf(\"%s %#x %#x\\n\", \$\$name, \$arg1, \$arg2); +} +probe process(\"$postgresdir/bin/postgres\").mark(\"lock__endwait\") +{ + printf(\"%s %#x %#x\\n\", \$\$name, \$arg1, \$arg2); +} +probe process(\"$postgresdir/bin/postgres\").mark(\"lwlock__endwait\") +{ + printf(\"%s %#x %#x\\n\", \$\$name, \$arg1, \$arg2); +} +probe process(\"$postgresdir/bin/postgres\").mark(\"lwlock__acquire\") +{ + printf(\"%s %#x %#x\\n\", \$\$name, \$arg1, \$arg2); +} +probe process(\"$postgresdir/bin/postgres\").mark(\"lwlock__condacquire__fail\") +{ + printf(\"%s %#x %#x\\n\", \$\$name, + \$arg1, \$arg2); +} +probe process(\"$postgresdir/bin/postgres\").mark(\"lwlock__condacquire\") +{ + printf(\"%s %#x %#x\\n\", \$\$name, \$arg1, \$arg2); +} +probe process(\"$postgresdir/bin/postgres\").mark(\"lwlock__release\") +{ + printf(\"%s %#x\\n\", \$\$name, \$arg1); +} +" +close $fp + +########## Begin /tmp/stap-postgres.sh ########## +set fp [open "$pgdata.sh" "w"] +puts $fp " +function run_tests \{ +/bin/rm -rf $pgdata +$postgresdir/bin/initdb $pgdata + +which stap +$env(SYSTEMTAP_PATH)/stap -m \$(date +stapsdt_%j%k%M%N | sed 's/ //') -c \"$postgresdir/bin/postgres -D $pgdata\" $pgdata.stp >$pgdata-markers.log 2>&1 & +STAPPID=\$! + +# wait until postgres is running +for i in \$(seq 0 10) ; do + if $postgresdir/bin/pg_ctl status -D $pgdata + then break; + fi + sleep 5 +done + +(cd $postgresbuild/src/test/regress/ + make installcheck > $pgdata.log 2>&1) + +ACQUIRE=\$(grep 'lwlock__acquire 0x\[0-9\]* 0x\[0-9\]*' $pgdata-markers.log | wc -l) +RELEASE=\$(grep 'lwlock__release 0x\[0-9\]*' $pgdata-markers.log | wc -l) +START=\$(grep 'transaction__start 0x\[0-9\]*' $pgdata-markers.log | wc -l) +COMMIT=\$(grep 'transaction__commit 0x\[0-9\]*' $pgdata-markers.log | wc -l) +OKAY=\$(grep 'test .*ok' $pgdata.log | wc -l) + +echo lwlock__acquire=\$ACQUIRE lwlock__release=\$RELEASE transaction__start=\$START transaction__commit=\$COMMIT test-ok=\$OKAY +: 44873 75325 591 489 0 + +if \[ \$ACQUIRE -gt 40000 -a \$RELEASE -gt 70000 -a \$START -gt 500 -a \$COMMIT -gt 400 \] ; then + echo PASS: postgres tests \$1 +else + echo FAIL: postgres tests \$1 +fi + +if \[ \$OKAY -gt 100 \] ; then + echo PASS: postgres markers \$1 +else + echo FAIL: postgres markers \$1 +fi + +/usr/local/pgsql/bin/pg_ctl stop -D $pgdata +kill \$STAPPID +\} + +if \[ ! -r postgresql-8.3.6.tar.bz2 \] ; then +wget http://wwwmaster.postgresql.org/redir/198/h/source/v8.3.6/postgresql-8.3.6.tar.bz2 +fi + +if \[ ! -d $postgresbuild/src/backend \] ; then +tar -x -f postgresql-8.3.6.tar.bz2 +fi + +cd postgresql-8.3.6/ +mkdir bld;cd bld +../configure --enable-dtrace --prefix=$postgresdir +# sed -i -e 's/ifeq (\$(PORTNAME), solaris)/ifeq (\$(enable_dtrace), yes)/' src/backend/Makefile +sed -i -e 's/^CFLAGS = -O2.*\$/& -g -DEXPERIMENTAL_UTRACE_SDT/' src/Makefile.global +make +make install +run_tests utrace + +sed -i -e 's/UTRACE/KPROBE/' src/Makefile.global +(cd src/backend/utils/ + make clean) +make +make install +run_tests kprobe + +sed -i -e 's/-DEXPERIMENTAL_KPROBE_SDT//' src/Makefile.global +(cd src/backend/utils/ + make clean) +make +make install +run_tests uprobe +" +########## End /tmp/stap-postgres.sh ########## +close $fp + +########## /tmp/stap-postgres.sh does most of the work ########## +verbose -log Running postgres testsuite +spawn sh $pgdata.sh 2>&1 +expect { + -timeout 1000 + -re {FAIL: [a-z_ ]+} { regexp " .*$" $expect_out(0,string) s; + fail "$s"; exp_continue } + -re {PASS: [a-z_ ]+} { regexp " .*$" $expect_out(0,string) s; + pass "$s"; exp_continue } + -re {UNSUPPORTED: [a-zA-Z_/: ]+} { regexp " .*$" $expect_out(0,string) s; + verbose -log "$s" + unsupported "$s"; exp_continue } + timeout { fail "$test (timeout)" } + eof { } +} + +if { $verbose == 0 } { +catch {exec rm -rf $pgdata} +catch {exec rm -rf $pgdata.stp $pgdata.log \ + $pgdata-markers.log $pgdata.sh postgresql-8.3.6.tar.bz2} +catch {exec rm -rf postgresql-8.3.6} +} diff --git a/testsuite/systemtap.apps/stap-tcl.sh b/testsuite/systemtap.apps/stap-tcl.sh new file mode 100644 index 00000000..919f632d --- /dev/null +++ b/testsuite/systemtap.apps/stap-tcl.sh @@ -0,0 +1,25 @@ +#! /bin/sh + +set -e + +tclreleasemajor="8.6" +tclrelease="8.6b1" +tcldir=`pwd`/tcl/install/ + +mkdir -p tcl + +if [ ! -r tcl$tclrelease-src.tar.gz ] ; then + wget http://sourceforge.net/projects/tcl/files/Tcl/$tclrelease/tcl$tclrelease-src.tar.gz/download +fi + +if [ ! -d tcl/src ] ; then + tar -x -z -f tcl$tclrelease-src.tar.gz + mv tcl$tclrelease tcl/src +fi + +cd tcl/src/unix +env CPPFLAGS="-I$SYSTEMTAP_INCLUDES" CFLAGS="-g -O2" ./configure --prefix=$tcldir --enable-dtrace +make -j2 +make install + +exit 0 diff --git a/testsuite/systemtap.apps/stap-tcl.stp b/testsuite/systemtap.apps/stap-tcl.stp new file mode 100644 index 00000000..d3293b09 --- /dev/null +++ b/testsuite/systemtap.apps/stap-tcl.stp @@ -0,0 +1,30 @@ +global counts + +probe process(@1).mark("*") { + counts[$$name]<<<1 # PR10878; check also $$parms length +} + +function judge(name, minvalue) { + value = @count(counts[name]) + printf("%s %s %d %d\n", ((value>=minvalue)?"OK":"KO"), name, value, minvalue) +} + +probe end,error { + /* foreach (name in counts-) { + printf("== %s %d\n", name, @count(counts[name])) + } */ + judge("proc__entry", 9000) + judge("proc__return", 9000) + judge("proc__result", 9000) + judge("proc__args", 9000) + judge("proc__info", 9000) + judge("cmd__entry", 37000) + judge("cmd__return", 37000) + judge("cmd__result", 37000) + judge("cmd__args", 3700 /* not 37000? */) + judge("cmd__info", 37000) + judge("inst__start", 542000) + judge("inst__done", 542000) + judge("obj__create", 723000) + judge("obj__free", 704000) +} diff --git a/testsuite/systemtap.apps/tcl.exp b/testsuite/systemtap.apps/tcl.exp new file mode 100644 index 00000000..bfcf2239 --- /dev/null +++ b/testsuite/systemtap.apps/tcl.exp @@ -0,0 +1,67 @@ +set test "tcl" + +# Test sdt support in tcl. + +global env + +if {! [info exists env(SYSTEMTAP_TESTAPPS)] || ( + ! [string match "tcl" $env(SYSTEMTAP_TESTAPPS)] && + ! [string match "all" $env(SYSTEMTAP_TESTAPPS)])} { + untested "$test sdt app" + return +} + +########## Create /tmp/stap-tcl.stp ########## +set tclreleasemajor "8.6" +set tclrelease "8.6b1" +set tcldir "[pwd]/tcl/install/" +set testsuite "[pwd]" + +verbose -log "Building tcl" +set test "tcl${tclreleasemajor} build" +set rc [catch {exec sh $srcdir/$subdir/stap-tcl.sh 2>@ stdout} out] +if {$rc != 0} { + clone_output $out + fail $test + return +} else { + pass $test +} + +set test "stap-tcl.stp compilation" +set rc [catch {exec stap -DMAXSKIPPED=8024 -t -p4 $srcdir/$subdir/stap-tcl.stp tcl/install/lib/libtcl${tclreleasemajor}.so} out] +clone_output $out +if {$rc != 0} { + fail $test + return +} else { + pass $test +} + +set test "stap-tcl.stp execution" +if {![installtest_p]} { + untested $test + return +} + +set ok 0 +set ko 0 +set lines 0 +spawn stap -DMAXSKIPPED=8024 -t -c "tcl/install/bin/tclsh${tclreleasemajor} tcl/src/tests/all.tcl > tcl-test.out" $srcdir/$subdir/stap-tcl.stp tcl/install/lib/libtcl${tclreleasemajor}.so +expect { + -timeout 1000 + -re {^OK [^\r\n]*[\r\n]} { incr ok; exp_continue } + -re {^KO [^\r\n]*[\r\n]} { incr ko; exp_continue } + -re {^ERROR[^\r\n]*[\r\n]} { incr ko; exp_continue } + -re {^[^\r\n]*[\r\n]} { incr lines; exp_continue } + timeout { fail "$test (timeout)" } + eof { } +} +catch {close}; catch {wait} + +if {$ok == 14 && $ko == 0} { + pass "$test ($ok $ko $lines)" +} else { + fail "$test ($ok $ko $lines)" +} + diff --git a/testsuite/systemtap.apps/xulrunner.exp b/testsuite/systemtap.apps/xulrunner.exp new file mode 100644 index 00000000..be2db0c7 --- /dev/null +++ b/testsuite/systemtap.apps/xulrunner.exp @@ -0,0 +1,133 @@ +set test "xulrunner" + +# Test sdt support in xulrunner. + +global env + +if {! [info exists env(SYSTEMTAP_TEST_SDT)]} { + unsupported "xulrunner (\"SYSTEMTAP_TEST_SDT\" not in env)" + return +} + +########## Create /tmp/stap-xul.stp ########## +set xulrelease "1.9.1.3" +set xuldir "[pwd]/xul/" +set testsuite "[pwd]" + +set fp [open "$testsuite/stap-xul.stp" "w"] +puts $fp " +global funcinfo +global objinfo + +probe process(@1).mark(\"function__info\") +{ + file = user_string (\$arg1) + func = user_string (\$arg3) + funcinfo\[file,func\] <<< 1 +} + +probe process(@1).mark(\"object__create\") +{ + file = user_string (\$arg1) + class = user_string (\$arg2) + objinfo\[file,class\] <<< 1 +} + +probe end +{ + foreach (\[i,j\] in funcinfo+) + { + printf (\"probes: %-20s %-25s %d\\n\", substr(i,strlen(i)-20,strlen(i)), j, @count(funcinfo\[i,j\])) + } + foreach (\[i,j\] in objinfo+) + { + printf (\"probes: %-20s %-25s %d\\n\", substr(i,strlen(i)-20,strlen(i)), j, @count(funcinfo\[i,j\])) + } +} +" +close $fp + +########## Begin /tmp/stap-xul.sh ########## +set fp [open "$testsuite/stap-xul.sh" "w"] +puts $fp " +##### begin run_tests ##### +function run_tests \{ +cd $testsuite/xul/bld/js/src +pwd +for i in call trace-test math-trace-tests ; do +$env(SYSTEMTAP_PATH)/stap -c \"./js $xuldir/src/js/src/\$i.js\" $testsuite/stap-xul.stp ./js +done | tee $testsuite/stap-xul-markers.log +PROBES=\$(grep 'probes: ' $testsuite/stap-xul-markers.log | wc -l) +TESTS=\$(grep '-FAIL' $testsuite/stap-xul-markers.log) +echo PROBES=\$PROBES TESTS=\$TESTS + +if \[ \$PROBES -gt 400 \] ; then + echo PASS: xulrunner javascript markers \$1 +else + echo FAIL: xulrunner javascript markers \$1 +fi + +if \[ -z \$TESTS \] ; then + echo PASS: xulrunner javascript testsuite \$1 +else + echo FAIL: xulrunner javascript testsuite \$1 +fi + +\} +##### end run_tests ##### + +if \[ ! -r xulrunner-$xulrelease-source.tar \] ; then +wget ftp://ftp.mozilla.org/pub/mozilla.org/xul/releases/$xulrelease/source/xulrunner-$xulrelease-source.tar.bz2 +bunzip2 xulrunner-$xulrelease-source.tar.bz2 +fi + +if \[ ! -d xul/src \] ; then +tar -x -f xulrunner-$xulrelease-source.tar +mkdir xul +xulrelease=$xulrelease +mv mozilla-\${xulrelease%.\[0-9\]} xul/src +fi + +if \[ ! -f xul/bld/js/src/js \] ; then +mkdir xul/bld +cd xul/bld +if rpm -q java-1.6.0-openjdk ; then : +else + echo FAIL: Need java-1.6.0-openjdk-devel + exit +fi +JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64 \ +CXXFLAGS='-g -I$env(SYSTEMTAP_INCLUDES)' \ +CFLAGS='-g -I$env(SYSTEMTAP_INCLUDES)' \ +PATH=$env(SYSTEMTAP_PATH)/:\$PATH \ +../src/configure --prefix=$xuldir --enable-dtrace --enable-application=xulrunner +J=\$(getconf _NPROCESSORS_CONF) +make -j \$J +fi + +run_tests uprobe +" +########## End /tmp/stap-xul.sh ########## +close $fp + +########## /tmp/stap-xul.sh does most of the work ########## +verbose -log Running xul testsuite +spawn sh stap-xul.sh 2>&1 +expect { + -timeout 10000 + -re {FAIL: [a-z_ ]+} { regexp " .*$" $expect_out(0,string) s; + fail "$s"; exp_continue } + -re {PASS: [a-z_ ]+} { regexp " .*$" $expect_out(0,string) s; + pass "$s"; exp_continue } + -re {UNSUPPORTED: [a-zA-Z_/: ]+} { regexp " .*$" $expect_out(0,string) s; + verbose -log "$s" + unsupported "$s"; exp_continue } + timeout { fail "$test (timeout)" } + eof { } +} + +if { $verbose == 0 } { +catch {exec rm -rf $testsuite/stap-xul.stp xulrunner-$xulrelease-source.tar \ + $testsuite/stap-xul-markers.log $testsuite/stap-xul.sh } +catch {exec rm -rf xul} +} diff --git a/testsuite/systemtap.base/mysql.exp b/testsuite/systemtap.base/mysql.exp deleted file mode 100644 index efeffbae..00000000 --- a/testsuite/systemtap.base/mysql.exp +++ /dev/null @@ -1,344 +0,0 @@ -set test "mysql" - -# Test sdt support in mysql. - -global env - -if {! [info exists env(SYSTEMTAP_TEST_SDT)]} { - unsupported "mysql (\"SYSTEMTAP_TEST_SDT\" not in env)" - return -} - -########## Create /tmp/stap-mysql.stp ########## -set msdata "[pwd]/stap-mysql" -set mysqlrelease "mysql-5.4.1-beta" -set mysqldir "[pwd]/mysql/install/" -set testsuite "[pwd]" - -set fp [open "$testsuite/stap-mysql.stp" "w"] -puts $fp " -probe process(@1).mark(\"connection__start\") -{ - arg2 = user_string(\$arg2) - arg3 = user_string(\$arg3) - printf(\"%s %#x %s %s\\n\",\"connection__start\", \$arg1, arg2, arg3); -} -probe process(@1).mark(\"connection__done\") -{ - printf(\"%s %#x %#x \\n\",\"connection__done\", \$arg1, \$arg2); -} -probe process(@1).mark(\"command__start\") -{ - arg3 = user_string(\$arg3) - arg4 = user_string(\$arg4) - printf(\"%s %#x %#x %s %s\\n\",\"command__start\", \$arg1, \$arg2, arg3, arg4); -} -probe process(@1).mark(\"command__done\") -{ - printf(\"%s %#x\\n\",\"command__done\", \$arg1); -} -probe process(@1).mark(\"query__start\") -{ - arg1 = user_string(\$arg1) - arg3 = user_string(\$arg3) - arg4 = user_string(\$arg4) - arg5 = user_string(\$arg5) - printf(\"%s %s %#x %s %s %s\\n\",\"query__start\", arg1, \$arg2, - arg3, arg4, arg5); -} -probe process(@1).mark(\"query__done\") -{ - printf(\"%s %#x\\n\",\"query__done\", \$arg1); -} -probe process(@1).mark(\"query__parse__start\") -{ - arg1 = user_string(\$arg1) - printf(\"%s %s\\n\",\"query__parse__start\", arg1); -} -probe process(@1).mark(\"query__parse__done\") -{ - printf(\"%s %#x\\n\",\"query__parse__done\", \$arg1); -} -probe process(@1).mark(\"query__cache__hit\") -{ - arg1=user_string(\$arg1) - arg2=user_string(\$arg2) - printf(\"%s %s %s \\n\",\"query__cache__hit\", arg1, arg2); -} -probe process(@1).mark(\"query__cache__miss\") -{ - arg1=user_string(\$arg1) - printf(\"%s %s\\n\",\"query__cache__miss\", arg1); -} -probe process(@1).mark(\"query__exec__start\") -{ - arg1=user_string(\$arg1) - arg3=user_string(\$arg3) - arg4=user_string(\$arg4) - arg5=user_string(\$arg5) - printf(\"%s %s %#x %s %s %s\\n\",\"query__exec__start\", arg1, \$arg2, - arg3, arg4, arg5); -} -probe process(@1).mark(\"query__exec__done\") -{ - printf(\"%s %#x\\n\",\"query__exec__done\", \$arg1); -} -probe process(@1).mark(\"insert__row__start\") -{ - arg1=user_string(\$arg1) - arg2=user_string(\$arg2) - printf(\"%s %s %s \\n\",\"insert__row__start\", arg1, arg2); -} -probe process(@1).mark(\"insert__row__done\") -{ - printf(\"%s %#x\\n\",\"insert__row__done\", \$arg1); -} -probe process(@1).mark(\"update__row__start\") -{ - arg1=user_string(\$arg1) - arg2=user_string(\$arg2) - printf(\"%s %s %s \\n\",\"update__row__start\", arg1, arg2); -} -probe process(@1).mark(\"update__row__done\") -{ - printf(\"%s %#x\\n\",\"update__row__done\", \$arg1); -} -probe process(@1).mark(\"delete__row__start\") -{ - arg1=user_string(\$arg1) - arg2=user_string(\$arg2) - printf(\"%s %s %s \\n\",\"delete__row__start\", arg1, arg2); -} -probe process(@1).mark(\"delete__row__done\") -{ - printf(\"%s %#x\\n\",\"delete__row__done\", \$arg1); -} -probe process(@1).mark(\"handler__rdlock__start\") -{ - arg1=user_string(\$arg1) - arg2=user_string(\$arg2) - printf(\"%s %s %s \\n\",\"handler__rdlock__start\", arg1, arg2); -} -probe process(@1).mark(\"handler__wrlock__start\") -{ - arg1=user_string(\$arg1) - arg2=user_string(\$arg2) - printf(\"%s %s %s \\n\",\"handler__wrlock__start\", arg1, arg2); -} -probe process(@1).mark(\"handler__unlock__start\") -{ - arg1=user_string(\$arg1) - arg2=user_string(\$arg2) - printf(\"%s %s %s \\n\",\"handler__unlock__start\", arg1, arg2); -} -probe process(@1).mark(\"handler__rdlock__done\") -{ - printf(\"%s %#x\\n\",\"handler__rdlock__done\", \$arg1); -} -probe process(@1).mark(\"handler__wrlock__done\") -{ - printf(\"%s %#x\\n\",\"handler__wrlock__done\", \$arg1); -} -probe process(@1).mark(\"handler__unlock__done\") -{ - printf(\"%s %#x\\n\",\"handler__unlock__done\", \$arg1); -} -probe process(@1).mark(\"filesort__start\") -{ - printf(\"%s %#x %#x \\n\",\"filesort__start\", \$arg1, \$arg2); -} -probe process(@1).mark(\"filesort__done\") -{ - printf(\"%s %#x %#x \\n\",\"filesort__done\", \$arg1, \$arg2); -} -probe process(@1).mark(\"select__start\") -{ - arg1=user_string(\$arg1) - printf(\"%s %s\\n\",\"select__start\", arg1); -} -probe process(@1).mark(\"select__done\") -{ - printf(\"%s %#x %#x \\n\",\"select__done\", \$arg1, \$arg2); -} -probe process(@1).mark(\"insert__start\") -{ - arg1=user_string(\$arg1) - printf(\"%s %s\\n\",\"insert__start\", arg1); -} -probe process(@1).mark(\"insert__done\") -{ - printf(\"%s %#x %#x \\n\",\"insert__done\", \$arg1, \$arg2); -} -probe process(@1).mark(\"insert__select__start\") -{ - arg1=user_string(\$arg1) - printf(\"%s %s\\n\",\"insert__select__start\", arg1); -} -probe process(@1).mark(\"insert__select__done\") -{ - printf(\"%s %#x %#x \\n\",\"insert__select__done\", \$arg1, \$arg2); -} -probe process(@1).mark(\"update__start\") -{ - arg1=user_string(\$arg1) - printf(\"%s %s\\n\",\"update__start\", arg1); -} -probe process(@1).mark(\"update__done\") -{ - printf(\"%s %#x %#x %#x\\n\",\"update__done\", \$arg1, \$arg2, \$arg3); -} -probe process(@1).mark(\"multi__update__start\") -{ - arg1=user_string(\$arg1) - printf(\"%s %s\\n\",\"multi__update__start\", arg1); -} -probe process(@1).mark(\"multi__update__done\") -{ - printf(\"%s %#x %#x %#x\\n\",\"multi__update__done\", \$arg1, \$arg2, \$arg3); -} -probe process(@1).mark(\"delete__start\") -{ - arg1=user_string(\$arg1) - printf(\"%s %s\\n\",\"delete__start\", arg1); -} -probe process(@1).mark(\"delete__done\") -{ - printf(\"%s %#x %#x \\n\",\"delete__done\", \$arg1, \$arg2); -} -probe process(@1).mark(\"multi__delete__start\") -{ - arg1=user_string(\$arg1) - printf(\"%s %s\\n\",\"multi__delete__start\", arg1); -} -probe process(@1).mark(\"multi__delete__done\") -{ - printf(\"%s %#x %#x \\n\",\"multi__delete__done\", \$arg1, \$arg2); -} -probe process(@1).mark(\"net__read__start\") -{ - printf(\"%s \\n\",\"net__read__start\"); -} -probe process(@1).mark(\"net__read__done\") -{ - printf(\"%s %#x %#x \\n\",\"net__read__done\", \$arg1, \$arg2); -} -probe process(@1).mark(\"net__write__start\") -{ - printf(\"%s %#x\\n\",\"net__write__start\", \$arg1); -} -probe process(@1).mark(\"net__write__done\") -{ - printf(\"%s %#x\\n\",\"net__write__done\", \$arg1); -} -" -close $fp - -########## Begin /tmp/stap-mysql.sh ########## -set fp [open "$testsuite/stap-mysql.sh" "w"] -puts $fp " -##### begin run_tests ##### -function run_tests \{ -/bin/rm -rf $testsuite/stap-mysql -$mysqldir/bin/mysql_install_db --basedir=$mysqldir --datadir=$msdata - -(cd $mysqldir/mysql-test -# wait until mysql is running -MOD=stapsdt_\$(date +%j%k%M%N | sed 's/ //') -$env(SYSTEMTAP_PATH)/stap -m \$MOD -c \"$mysqldir/libexec/mysqld --basedir=$mysqldir --datadir=$msdata --log-error=$msdata/mysql.log --pid-file=$msdata/mysql.pid --socket=$msdata/mysql.sock\" $testsuite/stap-mysql.stp $mysqldir/libexec/mysqld >$testsuite/stap-mysql-markers.log 2>&1 & -STAPPID=\$! - -for i in \$(seq 0 10) ; do - if $mysqldir/bin/mysqladmin ping --socket=$msdata/mysql.sock - then break; - fi - sleep 5 -done - -for i in select join insert query -do - echo '##### ' \$i - ./mysql-test-run.pl --force --extern socket=$msdata/mysql.sock \ - --tmpdir=/tmp/,mysql --vardir=/tmp/,mysql --do-test=\$i -done > $testsuite/stap-mysql.log -) - -ACQUIRE=\$(grep 'handler__unlock__start' $testsuite/stap-mysql-markers.log | wc -l) -RELEASE=\$(grep 'handler__unlock__done' $testsuite/stap-mysql-markers.log | wc -l) -COMMAND=\$(grep 'command__start' $testsuite/stap-mysql-markers.log | wc -l) -QUERY=\$(grep 'query__start' $testsuite/stap-mysql-markers.log | wc -l) -RDLOCK=\$(grep 'handler__rdlock__start' $testsuite/stap-mysql-markers.log | wc -l) -SELECT=\$(grep 'select_start' $testsuite/stap-mysql-markers.log | wc -l) -OKAY=\$(grep 'All.*tests were successful' $testsuite/stap-mysql.log | wc -l) - -echo ACQUIRE=\$ACQUIRE RELEASE=\$RELEASE COMMAND=\$COMMAND QUERY=\$QUERY RDLOCK=\$RDLOCK SELECT=\$SELECT OKAY=\$OKAY -if \[ \$ACQUIRE -gt 10000 -a \$RELEASE -gt 1000 -a \$COMMAND -gt 12000 -a \$QUERY -gt 13000 -a \$RDLOCK -gt 3000 \] ; then - echo PASS: mysql markers \$1 -else - echo FAIL: mysql markers \$1 -fi - -if \[ \$OKAY -eq 4 \] ; then - echo PASS: mysql tests \$1 -else - echo FAIL: mysql tests \$1 -fi - -$mysqldir/bin/mysqladmin shutdown -u root --socket=stap-mysql/mysql.sock -kill \$STAPPID -\} -##### end run_tests ##### - -if \[ ! -r $mysqlrelease.tar.gz \] ; then -wget http://dev.mysql.com/get/Downloads/MySQL-5.4/$mysqlrelease.tar.gz/from/ftp://mirror.services.wisc.edu/mirrors/mysql/ -fi - -if \[ ! -d mysql/src \] ; then -tar -x -z -f $mysqlrelease.tar.gz -mkdir mysql -mv $mysqlrelease mysql/src -fi - -if \[ ! -f mysql/install/bin/mysql \] ; then -cd mysql -mkdir bld -cd bld -# Force the use of dtrace -sed -i -e 's/HAVE_DTRACE_DASH_G=\"no\"/HAVE_DTRACE_DASH_G=\"yes\"/' ../src/configure -../src/configure --enable-dtrace --prefix=$mysqldir -for i in \$(find . -name Makefile) ; do - sed -i -e 's/^CXXFLAGS =/& -g/' \$i -done - -make -j2 -cp ./abi_check.out ../../src/include/mysql.h.pp -make -j2 -make install -fi - -run_tests uprobe -" -########## End /tmp/stap-mysql.sh ########## -close $fp - -########## /tmp/stap-mysql.sh does most of the work ########## -verbose -log Running mysql testsuite -spawn sh stap-mysql.sh 2>&1 -expect { - -timeout 1000 - -re {FAIL: [a-z_ ]+} { regexp " .*$" $expect_out(0,string) s; - fail "$s"; exp_continue } - -re {PASS: [a-z_ ]+} { regexp " .*$" $expect_out(0,string) s; - pass "$s"; exp_continue } - -re {UNSUPPORTED: [a-zA-Z_/: ]+} { regexp " .*$" $expect_out(0,string) s; - verbose -log "$s" - unsupported "$s"; exp_continue } - timeout { fail "$test (timeout)" } - eof { } -} - -if { $verbose == 0 } { -catch {exec rm -rf $msdata} -catch {exec rm -rf $testsuite/stap-mysql.stp $testsuite/stap-mysql.log \ - $testsuite/stap-mysql-markers.log $testsuite/stap-mysql.sh $mysqlrelease.tar.gz} -catch {exec rm -rf mysql} -} diff --git a/testsuite/systemtap.base/postgres.exp b/testsuite/systemtap.base/postgres.exp deleted file mode 100644 index 2d58a54f..00000000 --- a/testsuite/systemtap.base/postgres.exp +++ /dev/null @@ -1,166 +0,0 @@ -set test "postgres" - -# Test sdt support in postgres. - -global env - -if {! [info exists env(SYSTEMTAP_TEST_SDT)]} { - unsupported "postgres (\"SYSTEMTAP_TEST_SDT\" not in env)" - return -} - -########## Create /tmp/stap-postgres.stp ########## -set postgresbuild "[pwd]/postgresql-8.3.6/bld" -set postgresdir "[pwd]/postgresql-8.3.6/install/" -set pgdata "/tmp/stap-postgres" - - -set fp [open "$pgdata.stp" "w"] -puts $fp " -probe process(\"$postgresdir/bin/postgres\").mark(\"transaction__start\") -{ - printf(\"%s %#x\\n\", \$\$name, \$arg1); -} -probe process(\"$postgresdir/bin/postgres\").mark(\"transaction__commit\") -{ - printf(\"%s %#x\\n\", \$\$name, \$arg1); -} -probe process(\"$postgresdir/bin/postgres\").mark(\"transaction__abort\") -{ - printf(\"%s %#x\\n\", \$\$name, \$arg1); -} -probe process(\"$postgresdir/bin/postgres\").mark(\"lock__startwait\") -{ - printf(\"%s %#x %#x\\n\", \$\$name, \$arg1, \$arg2); -} -probe process(\"$postgresdir/bin/postgres\").mark(\"lock__endwait\") -{ - printf(\"%s %#x %#x\\n\", \$\$name, \$arg1, \$arg2); -} -probe process(\"$postgresdir/bin/postgres\").mark(\"lwlock__endwait\") -{ - printf(\"%s %#x %#x\\n\", \$\$name, \$arg1, \$arg2); -} -probe process(\"$postgresdir/bin/postgres\").mark(\"lwlock__acquire\") -{ - printf(\"%s %#x %#x\\n\", \$\$name, \$arg1, \$arg2); -} -probe process(\"$postgresdir/bin/postgres\").mark(\"lwlock__condacquire__fail\") -{ - printf(\"%s %#x %#x\\n\", \$\$name, - \$arg1, \$arg2); -} -probe process(\"$postgresdir/bin/postgres\").mark(\"lwlock__condacquire\") -{ - printf(\"%s %#x %#x\\n\", \$\$name, \$arg1, \$arg2); -} -probe process(\"$postgresdir/bin/postgres\").mark(\"lwlock__release\") -{ - printf(\"%s %#x\\n\", \$\$name, \$arg1); -} -" -close $fp - -########## Begin /tmp/stap-postgres.sh ########## -set fp [open "$pgdata.sh" "w"] -puts $fp " -function run_tests \{ -/bin/rm -rf $pgdata -$postgresdir/bin/initdb $pgdata - -which stap -$env(SYSTEMTAP_PATH)/stap -m \$(date +stapsdt_%j%k%M%N | sed 's/ //') -c \"$postgresdir/bin/postgres -D $pgdata\" $pgdata.stp >$pgdata-markers.log 2>&1 & -STAPPID=\$! - -# wait until postgres is running -for i in \$(seq 0 10) ; do - if $postgresdir/bin/pg_ctl status -D $pgdata - then break; - fi - sleep 5 -done - -(cd $postgresbuild/src/test/regress/ - make installcheck > $pgdata.log 2>&1) - -ACQUIRE=\$(grep 'lwlock__acquire 0x\[0-9\]* 0x\[0-9\]*' $pgdata-markers.log | wc -l) -RELEASE=\$(grep 'lwlock__release 0x\[0-9\]*' $pgdata-markers.log | wc -l) -START=\$(grep 'transaction__start 0x\[0-9\]*' $pgdata-markers.log | wc -l) -COMMIT=\$(grep 'transaction__commit 0x\[0-9\]*' $pgdata-markers.log | wc -l) -OKAY=\$(grep 'test .*ok' $pgdata.log | wc -l) - -echo lwlock__acquire=\$ACQUIRE lwlock__release=\$RELEASE transaction__start=\$START transaction__commit=\$COMMIT test-ok=\$OKAY -: 44873 75325 591 489 0 - -if \[ \$ACQUIRE -gt 40000 -a \$RELEASE -gt 70000 -a \$START -gt 500 -a \$COMMIT -gt 400 \] ; then - echo PASS: postgres tests \$1 -else - echo FAIL: postgres tests \$1 -fi - -if \[ \$OKAY -gt 100 \] ; then - echo PASS: postgres markers \$1 -else - echo FAIL: postgres markers \$1 -fi - -/usr/local/pgsql/bin/pg_ctl stop -D $pgdata -kill \$STAPPID -\} - -if \[ ! -r postgresql-8.3.6.tar.bz2 \] ; then -wget http://wwwmaster.postgresql.org/redir/198/h/source/v8.3.6/postgresql-8.3.6.tar.bz2 -fi - -if \[ ! -d $postgresbuild/src/backend \] ; then -tar -x -f postgresql-8.3.6.tar.bz2 -fi - -cd postgresql-8.3.6/ -mkdir bld;cd bld -../configure --enable-dtrace --prefix=$postgresdir -# sed -i -e 's/ifeq (\$(PORTNAME), solaris)/ifeq (\$(enable_dtrace), yes)/' src/backend/Makefile -sed -i -e 's/^CFLAGS = -O2.*\$/& -g -DEXPERIMENTAL_UTRACE_SDT/' src/Makefile.global -make -make install -run_tests utrace - -sed -i -e 's/UTRACE/KPROBE/' src/Makefile.global -(cd src/backend/utils/ - make clean) -make -make install -run_tests kprobe - -sed -i -e 's/-DEXPERIMENTAL_KPROBE_SDT//' src/Makefile.global -(cd src/backend/utils/ - make clean) -make -make install -run_tests uprobe -" -########## End /tmp/stap-postgres.sh ########## -close $fp - -########## /tmp/stap-postgres.sh does most of the work ########## -verbose -log Running postgres testsuite -spawn sh $pgdata.sh 2>&1 -expect { - -timeout 1000 - -re {FAIL: [a-z_ ]+} { regexp " .*$" $expect_out(0,string) s; - fail "$s"; exp_continue } - -re {PASS: [a-z_ ]+} { regexp " .*$" $expect_out(0,string) s; - pass "$s"; exp_continue } - -re {UNSUPPORTED: [a-zA-Z_/: ]+} { regexp " .*$" $expect_out(0,string) s; - verbose -log "$s" - unsupported "$s"; exp_continue } - timeout { fail "$test (timeout)" } - eof { } -} - -if { $verbose == 0 } { -catch {exec rm -rf $pgdata} -catch {exec rm -rf $pgdata.stp $pgdata.log \ - $pgdata-markers.log $pgdata.sh postgresql-8.3.6.tar.bz2} -catch {exec rm -rf postgresql-8.3.6} -} diff --git a/testsuite/systemtap.base/tcl.exp b/testsuite/systemtap.base/tcl.exp deleted file mode 100644 index 8056f5e5..00000000 --- a/testsuite/systemtap.base/tcl.exp +++ /dev/null @@ -1,165 +0,0 @@ -set test "tcl" - -# Test sdt support in tcl. - -global env - -if {! [info exists env(SYSTEMTAP_TEST_SDT)]} { - unsupported "tcl (\"SYSTEMTAP_TEST_SDT\" not in env)" - return -} - -########## Create /tmp/stap-tcl.stp ########## -set tclreleasemajor "8.6" -set tclrelease "8.6b1" -set tcldir "[pwd]/tcl/install/" -set testsuite "[pwd]" - -set fp [open "$testsuite/stap-tcl.stp" "w"] -puts $fp " -probe process(@1).mark(\"proc__entry\") -{ - printf (\"%s %#x,%#x,%#x\\n\",\$\$name, \$arg1,\$arg2,\$arg3) -} -probe process(@1).mark(\"proc__return\") -{ - printf (\"%s %#x,%#x\\n\",\$\$name, \$arg1,\$arg2) -} -probe process(@1).mark(\"proc__result\") -{ - printf (\"%s %#x,%#x,%#x,%#x\\n\",\$\$name, \$arg1,\$arg2,\$arg3,\$arg4) -} -probe process(@1).mark(\"proc__args\") -{ - printf (\"%s %#x,%#x,%#x,%#x,%#x,%#x,%#x,%#x,%#x,%#x\\n\",\$\$name, \$arg1,\$arg2,\$arg3,\$arg4,\$arg5,\$arg6,\$arg7,\$arg8,\$arg9,\$arg10) -} -probe process(@1).mark(\"proc__info\") -{ - printf (\"%s %#x,%#x,%#x,%#x,%#x,%#x\\n\",\$\$name, \$arg1,\$arg2,\$arg3,\$arg4,\$arg5,\$arg6) -} -probe process(@1).mark(\"cmd__entry\") -{ - printf (\"%s %#x,%#x,%#x\\n\",\$\$name, \$arg1,\$arg2,\$arg3) -} -probe process(@1).mark(\"cmd__return\") -{ - printf (\"%s %#x,%#x\\n\",\$\$name, \$arg1,\$arg2) -} -probe process(@1).mark(\"cmd__result\") -{ - printf (\"%s %#x,%#x,%#x,%#x\\n\",\$\$name, \$arg1,\$arg2,\$arg3,\$arg4) -} -probe process(@1).mark(\"cmd__args\") -{ - printf (\"%s %#x,%#x,%#x,%#x,%#x,%#x,%#x,%#x,%#x,%#x\\n\",\$\$name, \$arg1,\$arg2,\$arg3,\$arg4,\$arg5,\$arg6,\$arg7,\$arg8,\$arg9,\$arg10) -} -probe process(@1).mark(\"cmd__info\") -{ - printf (\"%s %#x,%#x,%#x,%#x,%#x,%#x\\n\",\$\$name, \$arg1,\$arg2,\$arg3,\$arg4,\$arg5,\$arg6) -} -probe process(@1).mark(\"inst__start\") -{ - printf (\"%s %#x,%#x,%#x\\n\",\$\$name, \$arg1,\$arg2,\$arg3) -} -probe process(@1).mark(\"inst__done\") -{ - printf (\"%s %#x,%#x,%#x\\n\",\$\$name, \$arg1,\$arg2,\$arg3) -} -probe process(@1).mark(\"obj__create\") -{ - printf (\"%s %#x\\n\",\$\$name, \$arg1) -} -probe process(@1).mark(\"obj__free\") -{ - printf (\"%s %#x\\n\",\$\$name, \$arg1) -} -probe process(@1).mark(\"tcl__probe\") -{ - printf (\"%s %#x,%#x,%#x,%#x,%#x,%#x,%#x,%#x,%#x,%#x\\n\",\$\$name, \$arg1,\$arg2,\$arg3,\$arg4,\$arg5,\$arg6,\$arg7,\$arg8,\$arg9,\$arg10) -} -" -close $fp - -########## Begin /tmp/stap-tcl.sh ########## -set fp [open "$testsuite/stap-tcl.sh" "w"] -puts $fp " -##### begin run_tests ##### -function run_tests \{ -(cd $tcldir/.. -MOD=stapsdt_\$(date +%j%k%M%N | sed 's/ //') -$env(SYSTEMTAP_PATH)/stap -m \$MOD -c install/bin/tclsh$tclreleasemajor $testsuite/stap-tcl.stp $testsuite/tcl/install/lib//libtcl$tclreleasemajor.so << END >$testsuite/stap-tcl-markers.log 2>&1 -source src/tests/all.tcl -quit -END -) - -PROC_ENTRY=\$(grep 'proc__entry' $testsuite/stap-tcl-markers.log | wc -l) -PROC_RETURN=\$(grep 'proc__return' $testsuite/stap-tcl-markers.log | wc -l) -PROC_RESULT=\$(grep 'proc__result' $testsuite/stap-tcl-markers.log | wc -l) -PROC_ARGS=\$(grep 'proc__args' $testsuite/stap-tcl-markers.log | wc -l) -PROC_INFO=\$(grep 'proc__info' $testsuite/stap-tcl-markers.log | wc -l) -CMD_ENTRY=\$(grep 'cmd__entry' $testsuite/stap-tcl-markers.log | wc -l) -CMD_RETURN=\$(grep 'cmd__return' $testsuite/stap-tcl-markers.log | wc -l) -CMD_RESULT=\$(grep 'cmd__result' $testsuite/stap-tcl-markers.log | wc -l) -CMD_ARGS=\$(grep 'cmd__args' $testsuite/stap-tcl-markers.log | wc -l) -CMD_INFO=\$(grep 'cmd__info' $testsuite/stap-tcl-markers.log | wc -l) -INST_START=\$(grep 'inst__start' $testsuite/stap-tcl-markers.log | wc -l) -INST_DONE=\$(grep 'inst__done' $testsuite/stap-tcl-markers.log | wc -l) -OBJ_CREATE=\$(grep 'obj__create' $testsuite/stap-tcl-markers.log | wc -l) -OBJ_FREE=\$(grep 'obj__free' $testsuite/stap-tcl-markers.log | wc -l) - -echo PROC_ENTRY=\$PROC_ENTRY PROC_RETURN=\$PROC_RETURN PROC_RESULT=\$PROC_RESULT PROC_ARGS=\$PROC_ARGS PROC_INFO=\$PROC_INFO CMD_ENTRY=\$CMD_ENTRY CMD_RETURN=\$CMD_RETURN CMD_RESULT=\$CMD_RESULT CMD_ARGS=\$CMD_ARGS CMD_INFO=\$CMD_INFO INST_START=\$INST_START INST_DONE=\$INST_DONE OBJ_CREATE=\$OBJ_CREATE OBJ_FREE=\$OBJ_FREE - -if \[ \$PROC_ENTRY -gt 9000 -a \$PROC_RETURN -gt 9000 -a \$PROC_RESULT -gt 9000 -a \$PROC_ARGS -gt 9000 -a \$PROC_INFO -gt 9000 -a \$CMD_ENTRY -gt 37000 -a \$CMD_RETURN -gt 37000 -a \$CMD_RESULT -gt 37000 -a \$CMD_ARGS -gt 3700 -a \$CMD_INFO -gt 37000 -a \$INST_START -gt 542000 -a \$INST_DONE -gt 542000 -a \$OBJ_CREATE -gt 723000 -a \$OBJ_FREE -gt 704000 \] ; then - echo PASS: tcl markers \$1 -else - echo FAIL: tcl markers \$1 -fi - -\} -##### end run_tests ##### - -if \[ ! -r tcl$tclrelease-src.tar.gz \] ; then -wget http://sourceforge.net/projects/tcl/files/Tcl/$tclrelease/tcl$tclrelease-src.tar.gz/download -fi - -if \[ ! -d tcl/src \] ; then -tar -x -z -f tcl$tclrelease-src.tar.gz -mkdir tcl -mv tcl$tclrelease tcl/src -fi - -if \[ ! -d tcl/install/bin \] ; then -cd tcl/src/unix -./configure --prefix=$tcldir --enable-dtrace CFLAGS='-I$env(SYSTEMTAP_INCLUDES) -g' - -make -j2 -make install -fi - -run_tests uprobe -" -########## End /tmp/stap-tcl.sh ########## -close $fp - -########## /tmp/stap-tcl.sh does most of the work ########## -verbose -log Running tcl testsuite -spawn sh stap-tcl.sh 2>&1 -expect { - -timeout 1000 - -re {FAIL: [a-z_ ]+} { regexp " .*$" $expect_out(0,string) s; - fail "$s"; exp_continue } - -re {PASS: [a-z_ ]+} { regexp " .*$" $expect_out(0,string) s; - pass "$s"; exp_continue } - -re {UNSUPPORTED: [a-zA-Z_/: ]+} { regexp " .*$" $expect_out(0,string) s; - verbose -log "$s" - unsupported "$s"; exp_continue } - timeout { fail "$test (timeout)" } - eof { } -} - -if { $verbose == 0 } { -catch {exec rm -rf $testsuite/stap-tcl.stp tcl$tclrelease-src.tar.gz \ - $testsuite/stap-tcl-markers.log $testsuite/stap-tcl.sh } -catch {exec rm -rf tcl} -} diff --git a/testsuite/systemtap.base/xulrunner.exp b/testsuite/systemtap.base/xulrunner.exp deleted file mode 100644 index be2db0c7..00000000 --- a/testsuite/systemtap.base/xulrunner.exp +++ /dev/null @@ -1,133 +0,0 @@ -set test "xulrunner" - -# Test sdt support in xulrunner. - -global env - -if {! [info exists env(SYSTEMTAP_TEST_SDT)]} { - unsupported "xulrunner (\"SYSTEMTAP_TEST_SDT\" not in env)" - return -} - -########## Create /tmp/stap-xul.stp ########## -set xulrelease "1.9.1.3" -set xuldir "[pwd]/xul/" -set testsuite "[pwd]" - -set fp [open "$testsuite/stap-xul.stp" "w"] -puts $fp " -global funcinfo -global objinfo - -probe process(@1).mark(\"function__info\") -{ - file = user_string (\$arg1) - func = user_string (\$arg3) - funcinfo\[file,func\] <<< 1 -} - -probe process(@1).mark(\"object__create\") -{ - file = user_string (\$arg1) - class = user_string (\$arg2) - objinfo\[file,class\] <<< 1 -} - -probe end -{ - foreach (\[i,j\] in funcinfo+) - { - printf (\"probes: %-20s %-25s %d\\n\", substr(i,strlen(i)-20,strlen(i)), j, @count(funcinfo\[i,j\])) - } - foreach (\[i,j\] in objinfo+) - { - printf (\"probes: %-20s %-25s %d\\n\", substr(i,strlen(i)-20,strlen(i)), j, @count(funcinfo\[i,j\])) - } -} -" -close $fp - -########## Begin /tmp/stap-xul.sh ########## -set fp [open "$testsuite/stap-xul.sh" "w"] -puts $fp " -##### begin run_tests ##### -function run_tests \{ -cd $testsuite/xul/bld/js/src -pwd -for i in call trace-test math-trace-tests ; do -$env(SYSTEMTAP_PATH)/stap -c \"./js $xuldir/src/js/src/\$i.js\" $testsuite/stap-xul.stp ./js -done | tee $testsuite/stap-xul-markers.log -PROBES=\$(grep 'probes: ' $testsuite/stap-xul-markers.log | wc -l) -TESTS=\$(grep '-FAIL' $testsuite/stap-xul-markers.log) -echo PROBES=\$PROBES TESTS=\$TESTS - -if \[ \$PROBES -gt 400 \] ; then - echo PASS: xulrunner javascript markers \$1 -else - echo FAIL: xulrunner javascript markers \$1 -fi - -if \[ -z \$TESTS \] ; then - echo PASS: xulrunner javascript testsuite \$1 -else - echo FAIL: xulrunner javascript testsuite \$1 -fi - -\} -##### end run_tests ##### - -if \[ ! -r xulrunner-$xulrelease-source.tar \] ; then -wget ftp://ftp.mozilla.org/pub/mozilla.org/xul/releases/$xulrelease/source/xulrunner-$xulrelease-source.tar.bz2 -bunzip2 xulrunner-$xulrelease-source.tar.bz2 -fi - -if \[ ! -d xul/src \] ; then -tar -x -f xulrunner-$xulrelease-source.tar -mkdir xul -xulrelease=$xulrelease -mv mozilla-\${xulrelease%.\[0-9\]} xul/src -fi - -if \[ ! -f xul/bld/js/src/js \] ; then -mkdir xul/bld -cd xul/bld -if rpm -q java-1.6.0-openjdk ; then : -else - echo FAIL: Need java-1.6.0-openjdk-devel - exit -fi -JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64 \ -CXXFLAGS='-g -I$env(SYSTEMTAP_INCLUDES)' \ -CFLAGS='-g -I$env(SYSTEMTAP_INCLUDES)' \ -PATH=$env(SYSTEMTAP_PATH)/:\$PATH \ -../src/configure --prefix=$xuldir --enable-dtrace --enable-application=xulrunner -J=\$(getconf _NPROCESSORS_CONF) -make -j \$J -fi - -run_tests uprobe -" -########## End /tmp/stap-xul.sh ########## -close $fp - -########## /tmp/stap-xul.sh does most of the work ########## -verbose -log Running xul testsuite -spawn sh stap-xul.sh 2>&1 -expect { - -timeout 10000 - -re {FAIL: [a-z_ ]+} { regexp " .*$" $expect_out(0,string) s; - fail "$s"; exp_continue } - -re {PASS: [a-z_ ]+} { regexp " .*$" $expect_out(0,string) s; - pass "$s"; exp_continue } - -re {UNSUPPORTED: [a-zA-Z_/: ]+} { regexp " .*$" $expect_out(0,string) s; - verbose -log "$s" - unsupported "$s"; exp_continue } - timeout { fail "$test (timeout)" } - eof { } -} - -if { $verbose == 0 } { -catch {exec rm -rf $testsuite/stap-xul.stp xulrunner-$xulrelease-source.tar \ - $testsuite/stap-xul-markers.log $testsuite/stap-xul.sh } -catch {exec rm -rf xul} -} -- cgit From f65166cc4689cff00717bc494d310c8317379d62 Mon Sep 17 00:00:00 2001 From: Charley Wang Date: Mon, 2 Nov 2009 10:18:34 -0500 Subject: PR10849: make MAXSKIPPED overflow trigger an error message --- tapsets.cxx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tapsets.cxx b/tapsets.cxx index c117b139..324237fa 100644 --- a/tapsets.cxx +++ b/tapsets.cxx @@ -228,8 +228,8 @@ common_probe_entryfn_epilogue (translator_output* o, // Check for excessive skip counts. o->newline() << "if (unlikely (atomic_read (& skipped_count) > MAXSKIPPED)) {"; - o->newline(1) << "atomic_set (& session_state, STAP_SESSION_ERROR);"; - o->newline() << "_stp_exit ();"; + o->newline(1) << "if (unlikely (atomic_cmpxchg(& session_state, STAP_SESSION_RUNNING, STAP_SESSION_ERROR) == STAP_SESSION_RUNNING))"; + o->newline() << "_stp_error (\"Skipped too many probes, check MAXSKIPPED or try again with stap -t for more details.\");"; o->newline(-1) << "}"; o->newline() << "#if INTERRUPTIBLE"; @@ -4634,8 +4634,8 @@ uprobe_derived_probe_group::emit_module_decls (systemtap_session& s) s.op->newline() << "#endif"; // NB: duplicates common_entryfn_epilogue, but then this is not a probe entry fn epilogue. s.op->newline() << "if (unlikely (atomic_inc_return (& skipped_count) > MAXSKIPPED)) {"; - s.op->newline(1) << "atomic_set (& session_state, STAP_SESSION_ERROR);"; - s.op->newline() << "_stp_exit ();"; + s.op->newline(1) << "if (unlikely (atomic_cmpxchg(& session_state, STAP_SESSION_RUNNING, STAP_SESSION_ERROR) == STAP_SESSION_RUNNING))"; + s.op->newline() << "_stp_error (\"Skipped too many probes, check MAXSKIPPED or try again with stap -t for more details.\");"; s.op->newline(-1) << "}"; s.op->newline(-1) << "}"; -- cgit From 9f61c5d4c3487aa8225d5271c798f5ebaafc398a Mon Sep 17 00:00:00 2001 From: David Smith Date: Mon, 2 Nov 2009 12:51:12 -0600 Subject: PR 6691 fixed by adding support for sys_accept4. * tapset/aux_syscalls.stp(_sock_type_str): Rewrote in embedded-C and added socket flags support. (_sock_flags_str): New function. * tapset/syscalls.stp: syscall.accept prefers to use sys_accept4 when it exists. Added support for sys_accept4's 'flag' parameter. * testsuite/systemtap.syscall/net1.c (main): Updated regular expression to handle the new 'flags' argument. --- tapset/aux_syscalls.stp | 80 +++++++++++++++++++++++++++++++++----- tapset/syscalls.stp | 22 ++++++++--- testsuite/systemtap.syscall/net1.c | 2 +- 3 files changed, 88 insertions(+), 16 deletions(-) diff --git a/tapset/aux_syscalls.stp b/tapset/aux_syscalls.stp index 9347e46f..2f19ab16 100644 --- a/tapset/aux_syscalls.stp +++ b/tapset/aux_syscalls.stp @@ -1302,16 +1302,76 @@ function _sock_family_str(f) { return sprintf("UNKNOWN VALUE: %d", f) } -function _sock_type_str(t) { - if(t==1) return "SOCK_STREAM" - if(t==2) return "SOCK_DGRAM" - if(t==5) return "SOCK_SEQPACKET" - if(t==3) return "SOCK_RAW" - if(t==4) return "SOCK_RDM" - if(t==6) return "SOCK_DCCP" - if(t==10) return "SOCK_PACKET" - return sprintf("UNKNOWN VALUE: %d", t) -} +function _sock_type_str:string(type:long) +%{ /* pure */ +#ifdef SOCK_TYPE_MASK + int flags = (int)THIS->type & ~SOCK_TYPE_MASK; + int t = (int)THIS->type & SOCK_TYPE_MASK; +#else + int t = (int)THIS->type; +#endif + + switch (t) { + case SOCK_STREAM: + strlcpy (THIS->__retvalue, "SOCK_STREAM", MAXSTRINGLEN); + break; + case SOCK_DGRAM: + strlcpy (THIS->__retvalue, "SOCK_DGRAM", MAXSTRINGLEN); + break; + case SOCK_RAW: + strlcpy (THIS->__retvalue, "SOCK_RAW", MAXSTRINGLEN); + break; + case SOCK_RDM: + strlcpy (THIS->__retvalue, "SOCK_RDM", MAXSTRINGLEN); + break; + case SOCK_SEQPACKET: + strlcpy (THIS->__retvalue, "SOCK_SEQPACKET", MAXSTRINGLEN); + break; +#ifdef SOL_DCCP + case SOCK_DCCP: + strlcpy (THIS->__retvalue, "SOCK_DCCP", MAXSTRINGLEN); + break; +#endif + case SOCK_PACKET: + strlcpy (THIS->__retvalue, "SOCK_PACKET", MAXSTRINGLEN); + break; + default: + strlcpy (THIS->__retvalue, "UNKNOWN VALUE: %d", t); + break; + } + +#ifdef SOCK_TYPE_MASK + if (flags & SOCK_CLOEXEC) { + strlcat (THIS->__retvalue, "|SOCK_CLOEXEC", MAXSTRINGLEN); + } + if (flags & SOCK_NONBLOCK) { + strlcat (THIS->__retvalue, "|SOCK_NONBLOCK", MAXSTRINGLEN); + } +#endif +%} + +function _sock_flags_str:string(f:long) +%{ /* pure */ +#ifdef SOCK_TYPE_MASK + int flags = (int)THIS->f; + int len; + + THIS->__retvalue[0] = '\0'; + if (flags & SOCK_CLOEXEC) { + strlcat (THIS->__retvalue, "SOCK_CLOEXEC|", MAXSTRINGLEN); + } + if (flags & SOCK_NONBLOCK) { + strlcat (THIS->__retvalue, "SOCK_NONBLOCK|", MAXSTRINGLEN); + } + len = strlen(THIS->__retvalue); + if (len) { + THIS->__retvalue[len - 1] = '\0'; + } + else { + strlcat (THIS->__retvalue, "0", MAXSTRINGLEN); + } +#endif +%} function _opoll_op_str(o) { if(o==1) return "EPOLL_CTL_ADD" diff --git a/tapset/syscalls.stp b/tapset/syscalls.stp index 825842a6..dde0ca9f 100644 --- a/tapset/syscalls.stp +++ b/tapset/syscalls.stp @@ -27,17 +27,29 @@ # accept _____________________________________________________ # long sys_accept(int fd, struct sockaddr __user *upeer_sockaddr, -# int __user *upeer_addrlen) -probe syscall.accept = kernel.function("SyS_accept").call !, - kernel.function("sys_accept").call ? +# int __user *upeer_addrlen, int flags) +probe syscall.accept = _syscall.accept4 !, _syscall.accept { name = "accept" sockfd = $fd addr_uaddr = $upeer_sockaddr addrlen_uaddr = $upeer_addrlen - argstr = sprintf("%d, %p, %p", $fd, $upeer_sockaddr, $upeer_addrlen) + argstr = sprintf("%d, %p, %p, %s", $fd, $upeer_sockaddr, + $upeer_addrlen, flags_str) } -probe syscall.accept.return = kernel.function("SyS_accept").return !, +probe _syscall.accept4 = kernel.function("sys_accept4").call +{ + flags = $flags + flags_str = _sock_flags_str($flags) +} +probe _syscall.accept = kernel.function("SyS_accept").call !, + kernel.function("sys_accept").call ? +{ + flags = 0 + flags_str = "0" +} +probe syscall.accept.return = kernel.function("sys_accept4").return !, + kernel.function("SyS_accept").return !, kernel.function("sys_accept").return ? { name = "accept" diff --git a/testsuite/systemtap.syscall/net1.c b/testsuite/systemtap.syscall/net1.c index f8079ffd..b7f1d6cb 100644 --- a/testsuite/systemtap.syscall/net1.c +++ b/testsuite/systemtap.syscall/net1.c @@ -32,7 +32,7 @@ int main() //staptest// listen (NNNN, 7) = 0 cfd = accept(listenfd, (struct sockaddr *)NULL, NULL); - //staptest// accept (NNNN, 0x[0]+, 0x[0]+) = -NNNN (EAGAIN) + //staptest// accept (NNNN, 0x[0]+, 0x[0]+, 0) = -NNNN (EAGAIN) close(cfd); close(listenfd); -- cgit From 249534c041971db5e9f89cb11b6d38d311e91f57 Mon Sep 17 00:00:00 2001 From: Breno Leitao Date: Tue, 3 Nov 2009 13:38:32 -0200 Subject: Fix for bug 10866 (exit with rc != 0 on script ERRORs). This patch just make the RC=1 when any output line starts with ERROR:. Also some minors error that was returning 0 instead of 1 were fixed. --- runtime/staprun/mainloop.c | 24 ++++++++++++++---------- runtime/staprun/staprun.h | 2 +- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/runtime/staprun/mainloop.c b/runtime/staprun/mainloop.c index cf8bef9a..67fbfad6 100644 --- a/runtime/staprun/mainloop.c +++ b/runtime/staprun/mainloop.c @@ -38,7 +38,7 @@ static void *signal_thread(void *arg) } dbug(2, "sigproc %d (%s)\n", signum, strsignal(signum)); if (signum == SIGQUIT) - cleanup_and_exit(1); + cleanup_and_exit(1, 0); else if (signum == SIGINT || signum == SIGHUP || signum == SIGTERM) { // send STP_EXIT rc = write(control_channel, &btype, sizeof(btype)); @@ -383,7 +383,7 @@ int init_stapio(void) /* cleanup_and_exit() closed channels, frees memory, * removes the module (if necessary) and exits. */ -void cleanup_and_exit(int detach) +void cleanup_and_exit(int detach, int rc) { static int exiting = 0; const char *staprun; @@ -467,7 +467,7 @@ void cleanup_and_exit(int detach) } if (WIFEXITED(rstatus)) { - _exit(WEXITSTATUS(rstatus)); /* only possibility for rc=0 exit */ + _exit(rc ?: WEXITSTATUS(rstatus)); } _exit(-1); } @@ -484,6 +484,7 @@ int stp_main_loop(void) uint32_t type; FILE *ofp = stdout; char recvbuf[8196]; + int error_detected = 0; setvbuf(ofp, (char *)NULL, _IOLBF, 0); setup_main_signals(); @@ -511,18 +512,21 @@ int stp_main_loop(void) case STP_REALTIME_DATA: if (write_realtime_data(data, nb)) { _perr("write error (nb=%ld)", (long)nb); - cleanup_and_exit(0); + cleanup_and_exit(0, 1); } break; #endif case STP_OOB_DATA: eprintf("%s", (char *)data); + if (strncmp(data, "ERROR:", 5) == 0){ + error_detected = 1; + } break; case STP_EXIT: { /* module asks us to unload it and exit */ dbug(2, "got STP_EXIT\n"); - cleanup_and_exit(0); + cleanup_and_exit(0, error_detected); break; } case STP_REQUEST_EXIT: @@ -540,7 +544,7 @@ int stp_main_loop(void) if (t->res < 0) { if (target_cmd) kill(target_pid, SIGKILL); - cleanup_and_exit(0); + cleanup_and_exit(0, 1); } else if (target_cmd) { dbug(1, "detaching pid %d\n", target_pid); #if WORKAROUND_BZ467568 @@ -555,7 +559,7 @@ int stp_main_loop(void) perror ("ptrace detach"); if (target_cmd) kill(target_pid, SIGKILL); - cleanup_and_exit(0); + cleanup_and_exit(0, 1); } #endif } @@ -573,15 +577,15 @@ int stp_main_loop(void) struct _stp_msg_start ts; if (use_old_transport) { if (init_oldrelayfs() < 0) - cleanup_and_exit(0); + cleanup_and_exit(0, 1); } else { if (init_relayfs() < 0) - cleanup_and_exit(0); + cleanup_and_exit(0, 1); } ts.target = target_pid; send_request(STP_START, &ts, sizeof(ts)); if (load_only) - cleanup_and_exit(1); + cleanup_and_exit(1, 0); break; } default: diff --git a/runtime/staprun/staprun.h b/runtime/staprun/staprun.h index f9f01003..9cdbc861 100644 --- a/runtime/staprun/staprun.h +++ b/runtime/staprun/staprun.h @@ -114,7 +114,7 @@ int init_staprun(void); int init_stapio(void); int stp_main_loop(void); int send_request(int type, void *data, int len); -void cleanup_and_exit (int); +void cleanup_and_exit (int, int); int init_ctl_channel(const char *name, int verb); void close_ctl_channel(void); int init_relayfs(void); -- cgit From b49f69f3e23c9fa1cd30725c5405f552b2aceff8 Mon Sep 17 00:00:00 2001 From: Breno Leitao Date: Tue, 3 Nov 2009 14:24:03 -0200 Subject: I forgot to change the NEWS file when commiting 249534c041971db5e9f89cb11b6d38d311e91f57, and this commit just adds a line in the NEWS file explaining the commmit above --- NEWS | 3 +++ 1 file changed, 3 insertions(+) diff --git a/NEWS b/NEWS index 2c7ca4a6..40e22e48 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,8 @@ * What's new +- Any output line that starts with "ERROR", as in error("foo"), will + promote a "Pass 5: run failed", and the return code is 1. + - Systemtap now warns about global variables being referenced from other script files. This aims to protect against unintended local-vs-global namespace collisions such as: -- cgit From 89651893a8ec51ee4d77ddfd57019e350ad7b169 Mon Sep 17 00:00:00 2001 From: David Smith Date: Tue, 3 Nov 2009 11:04:35 -0600 Subject: PR 10706 fixed by switching to unbuffered output. * runtime/staprun/mainloop.c (stp_main_loop): Switched to unbuffered output (instead of line buffered output). --- runtime/staprun/mainloop.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/staprun/mainloop.c b/runtime/staprun/mainloop.c index 67fbfad6..ab228937 100644 --- a/runtime/staprun/mainloop.c +++ b/runtime/staprun/mainloop.c @@ -486,7 +486,7 @@ int stp_main_loop(void) char recvbuf[8196]; int error_detected = 0; - setvbuf(ofp, (char *)NULL, _IOLBF, 0); + setvbuf(ofp, (char *)NULL, _IONBF, 0); setup_main_signals(); dbug(2, "in main loop\n"); -- cgit