diff options
author | Frank Ch. Eigler <fche@elastic.org> | 2009-03-24 12:53:17 -0400 |
---|---|---|
committer | Frank Ch. Eigler <fche@elastic.org> | 2009-03-24 12:56:41 -0400 |
commit | 3c1b3d06ef3134b30e804d189d346c5f83c6f3a6 (patch) | |
tree | 4eb573618dab33cf73fe5abb8c343f5421a21f6f /buildrun.cxx | |
parent | 64c6aab0a7992ed950d01fec0d9592630af39ca4 (diff) | |
download | systemtap-steved-3c1b3d06ef3134b30e804d189d346c5f83c6f3a6.tar.gz systemtap-steved-3c1b3d06ef3134b30e804d189d346c5f83c6f3a6.tar.xz systemtap-steved-3c1b3d06ef3134b30e804d189d346c5f83c6f3a6.zip |
PR9993: tracepoint toleration for undeclared types in trace/*.h headers
* tapsets.cxx (tracepoint_extra_headers): New function to return
needed header file names.
(emit_module_decls): Emit them.
* buildrun.cxx (make_tracequery): Emit them.
* testsuite/systemtap.base/tracepoints.exp: Rewrite to exercise
building each tracepoint.
Diffstat (limited to 'buildrun.cxx')
-rw-r--r-- | buildrun.cxx | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/buildrun.cxx b/buildrun.cxx index 6a266bd2..e19043cf 100644 --- a/buildrun.cxx +++ b/buildrun.cxx @@ -345,7 +345,7 @@ run_pass (systemtap_session& s) // Build a tiny kernel module to query tracepoints int -make_tracequery(systemtap_session& s, string& name) +make_tracequery(systemtap_session& s, string& name, const vector<string>& extra_headers) { // create a subdirectory for the module string dir(s.tmpdir + "/tracequery"); @@ -382,6 +382,11 @@ make_tracequery(systemtap_session& s, string& name) osrc << "#define DEFINE_TRACE(name, proto, args) \\" << endl; osrc << " DECLARE_TRACE(name, TPPROTO(proto), TPARGS(args))" << endl; + // PR9993: Add extra headers to work around undeclared types in individual + // include/trace/foo.h files + for (unsigned z=0; z<extra_headers.size(); z++) + osrc << "#include <" << extra_headers[z] << ">\n"; + // dynamically pull in all tracepoint headers from include/trace/ glob_t trace_glob; string globs[2] = { "/include/trace/*.h", "/source/include/trace/*.h" }; |