summaryrefslogtreecommitdiffstats
path: root/main.cxx
diff options
context:
space:
mode:
authorDave Brolley <brolley@redhat.com>2009-04-21 11:11:02 -0400
committerDave Brolley <brolley@redhat.com>2009-04-21 11:11:02 -0400
commit09fd19d66b9e3318e9e33f604eb2dbe623955123 (patch)
tree073dc18e4ca3ca4bac674c7225a9a54e5fafc7f7 /main.cxx
parentd4935c2f80122827a02d9f66c020d7e8ef6d6ade (diff)
parent9a6d143c6e2c79cee1082d0455da92cfa78b03c7 (diff)
downloadsystemtap-steved-09fd19d66b9e3318e9e33f604eb2dbe623955123.tar.gz
systemtap-steved-09fd19d66b9e3318e9e33f604eb2dbe623955123.tar.xz
systemtap-steved-09fd19d66b9e3318e9e33f604eb2dbe623955123.zip
Merge branch 'master' of git://sources.redhat.com/git/systemtap
Conflicts: aclocal.m4 configure
Diffstat (limited to 'main.cxx')
-rw-r--r--main.cxx30
1 files changed, 30 insertions, 0 deletions
diff --git a/main.cxx b/main.cxx
index d367232d..73945242 100644
--- a/main.cxx
+++ b/main.cxx
@@ -438,6 +438,36 @@ main (int argc, char * const argv [])
if (s_tc != NULL)
s.tapset_compile_coverage = true;
+ const char* s_kr = getenv ("SYSTEMTAP_RELEASE");
+ if (s_kr != NULL) {
+ if (s_kr[0] == '/') // fully specified path
+ {
+ s.kernel_build_tree = s_kr;
+ string version_file_name = s.kernel_build_tree + "/include/config/kernel.release";
+ // The file include/config/kernel.release within the
+ // build tree is used to pull out the version information
+ ifstream version_file (version_file_name.c_str());
+ if (version_file.fail ())
+ {
+ cerr << "Missing " << version_file_name << endl;
+ exit(1);
+ }
+ else
+ {
+ char c;
+ s.kernel_release = "";
+ while (version_file.get(c) && c != '\n')
+ s.kernel_release.push_back(c);
+ }
+ }
+ else
+ {
+ s.kernel_release = string (s_kr);
+ s.kernel_build_tree = "/lib/modules/" + s.kernel_release + "/build";
+ }
+ }
+
+
while (true)
{
int long_opt;