diff options
author | Dave Brolley <brolley@redhat.com> | 2009-04-21 11:11:02 -0400 |
---|---|---|
committer | Dave Brolley <brolley@redhat.com> | 2009-04-21 11:11:02 -0400 |
commit | 09fd19d66b9e3318e9e33f604eb2dbe623955123 (patch) | |
tree | 073dc18e4ca3ca4bac674c7225a9a54e5fafc7f7 /main.cxx | |
parent | d4935c2f80122827a02d9f66c020d7e8ef6d6ade (diff) | |
parent | 9a6d143c6e2c79cee1082d0455da92cfa78b03c7 (diff) | |
download | systemtap-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.cxx | 30 |
1 files changed, 30 insertions, 0 deletions
@@ -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; |