diff options
author | Mark Wielaard <mjw@redhat.com> | 2009-02-20 14:56:38 +0100 |
---|---|---|
committer | Mark Wielaard <mjw@redhat.com> | 2009-02-20 14:56:38 +0100 |
commit | 02615365a92ca2570c1f96abc8a97674aa2ccae1 (patch) | |
tree | ebedfd91a0f6d299b39e84295e091e12c0767dc8 /dtrace | |
parent | c3bad3042df505a3470f1e20b09822a9df1d4761 (diff) | |
parent | adc67597f327cd43d58b1d0cb740dab14a75a058 (diff) | |
download | systemtap-steved-02615365a92ca2570c1f96abc8a97674aa2ccae1.tar.gz systemtap-steved-02615365a92ca2570c1f96abc8a97674aa2ccae1.tar.xz systemtap-steved-02615365a92ca2570c1f96abc8a97674aa2ccae1.zip |
Merge branch 'master' into pr6866
Conflicts:
ChangeLog: Removed
runtime/ChangeLog: Removed
runtime/sym.c: Merged
runtime/task_finder.c: Merged
tapset/ChangeLog: Removed
testsuite/ChangeLog: Removed
Diffstat (limited to 'dtrace')
-rwxr-xr-x | dtrace | 27 |
1 files changed, 15 insertions, 12 deletions
@@ -13,7 +13,8 @@ # later version. import os,posix,sys -from subprocess import * +from subprocess import call +from tempfile import mkstemp class provider: arglist = dict() @@ -21,7 +22,7 @@ class provider: have_provider = False self.f = open(provider) self.h = open(header,mode='w') - self.h.write("// Generated by /usr/bin/dtrace\n") + self.h.write("// Generated by the Systemtap dtrace wrapper\n") self.h.write("\n#include <sys/sdt.h>\n\n") in_comment = False while (True): @@ -59,7 +60,7 @@ class provider: if (len(new_args) > 0): self.arglist[this_probe] = ('%s arg%d' % (new_args, c)) if (len(new_args) == 0): - self.h.write ('#define %s STAP_PROBE(provider,%s)\n' % (this_probe_canon, this_probe)) + self.h.write ('#define %s() STAP_PROBE(provider,%s)\n' % (this_probe_canon, this_probe)) elif (c == 0): self.h.write ('#define %s(arg1) STAP_PROBE%d(provider,%s,arg1)\n' % (this_probe_canon, c+1, this_probe)) elif (c == 1): @@ -117,29 +118,31 @@ while (i < len (sys.argv)): elif (sys.argv[i] == "-G"): build_source = True i += 1 -# print build_header == False and build_source == False if (build_header == False and build_source == False): usage() sys.exit(1) if (filename == ""): if (s_filename != ""): - filename = s_filename.replace(".d","") + (filename,ext) = os.path.splitext(s_filename) + filename = os.path.basename(filename) + if (build_header): + filename = filename + ".h" + elif (build_source): + filename = filename + ".o" else: usage sys.exit(1) if (build_header): providers = provider() - providers.open(s_filename, filename + ".h") + providers.open(s_filename, filename) elif (build_source): - fn = "/tmp/" + os.path.basename(s_filename).replace(".d", ".c") + (basename,ext) = os.path.splitext(s_filename) + basename = os.path.basename(basename) + (d,fn) = mkstemp(suffix=".c",prefix=basename) f = open(fn,mode='w') f.write("static __dtrace () {}\n") f.close() - call("gcc -fPIC -c " + fn + " -o " + filename + ".o", shell=True) - f.close() + call(["gcc", "-fPIC", "-c", fn, "-o", filename], shell=False) os.remove(fn) - - - |