From dd66ed3fa714209032df7841b3c2b11f92703ac7 Mon Sep 17 00:00:00 2001 From: Stan Cox Date: Thu, 20 Aug 2009 12:51:48 -0400 Subject: * dtrace.in: Support -C, preprocess with cpp, which upstream postgres is now using. --- dtrace.in | 14 ++++++++++++++ testsuite/systemtap.base/dtrace.exp | 23 ++++++++++++++++++++--- 2 files changed, 34 insertions(+), 3 deletions(-) diff --git a/dtrace.in b/dtrace.in index 990d62fe..aea1ef74 100755 --- a/dtrace.in +++ b/dtrace.in @@ -137,6 +137,7 @@ i = 1 build_header = False build_source = False add_typedefs = False +use_cpp = False h_ext = '.h' filename = "" while (i < len (sys.argv)): @@ -146,6 +147,8 @@ while (i < len (sys.argv)): elif (sys.argv[i] == "-s"): i += 1 s_filename = sys.argv[i] + elif (sys.argv[i] == "-C"): + use_cpp = True elif (sys.argv[i] == "-h"): build_header = True elif (sys.argv[i] == "-G"): @@ -159,6 +162,14 @@ if (build_header == False and build_source == False): usage() sys.exit(1) +if (s_filename != "" and use_cpp): + (d,fn) = mkstemp(suffix=".d") + retcode = call(["cpp", s_filename, fn]) + if (retcode != 0): + print "\"cpp s_filename\" failed" + usage() + sys.exit(1) + s_filename = fn if (filename == ""): if (s_filename != ""): (filename,ext) = os.path.splitext(s_filename) @@ -181,3 +192,6 @@ elif (build_source): f.close() call(["gcc", "-fPIC", "-I.", "-I@prefix@/include", "-g", "-c", fn, "-o", filename + ".o"], shell=False) os.remove(fn) +if (use_cpp): + os.remove(s_filename) + diff --git a/testsuite/systemtap.base/dtrace.exp b/testsuite/systemtap.base/dtrace.exp index 11a4b608..35a5acbf 100644 --- a/testsuite/systemtap.base/dtrace.exp +++ b/testsuite/systemtap.base/dtrace.exp @@ -5,7 +5,7 @@ set test "dtrace" if {[installtest_p]} { set dtrace $env(SYSTEMTAP_PATH)/dtrace } else { - set dtrace $srcdir/../dtrace + set dtrace ../dtrace } exec mkdir /tmp/dtrace @@ -13,9 +13,12 @@ exec mkdir /tmp/dtrace set dpath "/tmp/dtrace/test.d" set fp [open $dpath "w"] puts $fp " +#define INT16 short +#define INT32 int + provider tstsyscall { - probe test(short arg1, int arg2, int arg3, int arg4, struct astruct arg5) + probe test(INT16 arg1, INT32 arg2, INT32 arg3, INT32 arg4, struct astruct arg5) } " close $fp @@ -57,7 +60,7 @@ if {[file exists XXX]} then { } else { fail "dtrace -h -o XXX" } -exec rm -f XXX.h +exec rm -f XXX verbose -log "$dtrace -G -s $dpath -o /tmp/XXX.o" exec $dtrace -G -s $dpath -o /tmp/XXX.o @@ -113,6 +116,20 @@ if {[file exists /tmp/dtrace/test.h]} then { } exec rm -f /tmp/dtrace/test.o +set ok 0 +verbose -log "$dtrace -C -h -s $dpath -o XXX.h" +exec $dtrace -C -h -s $dpath -o XXX.h +spawn cat XXX.h +expect { + "short arg1, int arg2, int arg3, int arg4" {incr ok} +} +if { $ok != 0} { + pass "dtrace -C -h -o XXX.h" +} else { + fail "dtrace -C -h -o XXX.h" +} +exec rm -f XXX.h + exec /bin/rm -r /tmp/dtrace # ----------------------------------------------------------------- -- cgit