diff options
author | Dave Brolley <brolley@redhat.com> | 2009-04-27 11:56:15 -0400 |
---|---|---|
committer | Dave Brolley <brolley@redhat.com> | 2009-04-27 11:56:15 -0400 |
commit | e84f20287ae21b31c3505dfd0a81176687ad1ec5 (patch) | |
tree | 956005556406fc93e4444ee0d425aafed8e241d0 /main.cxx | |
parent | fb6d28283bd7ea63364a008d32c53687a694642f (diff) | |
parent | 097e4a5b397b9e826453e01caa1f8169886128c5 (diff) | |
download | systemtap-steved-e84f20287ae21b31c3505dfd0a81176687ad1ec5.tar.gz systemtap-steved-e84f20287ae21b31c3505dfd0a81176687ad1ec5.tar.xz systemtap-steved-e84f20287ae21b31c3505dfd0a81176687ad1ec5.zip |
Merge branch 'master' of git://sources.redhat.com/git/systemtap
Conflicts:
configure
testsuite/configure
Diffstat (limited to 'main.cxx')
-rw-r--r-- | main.cxx | 80 |
1 files changed, 30 insertions, 50 deletions
@@ -328,6 +328,34 @@ setup_signals (sighandler_t handler) sigaction (SIGTERM, &sa, NULL); } +void +setup_kernel_release (systemtap_session &s, const char* kstr) { + if (kstr[0] == '/') // fully specified path + { + s.kernel_build_tree = kstr; + 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 (kstr); + s.kernel_build_tree = "/lib/modules/" + s.kernel_release + "/build"; + } +} int main (int argc, char * const argv []) @@ -439,31 +467,7 @@ main (int argc, char * const argv []) 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"; - } + setup_kernel_release(s, s_kr); } @@ -605,31 +609,7 @@ main (int argc, char * const argv []) break; case 'r': - if (optarg[0] == '/') // fully specified path - { - s.kernel_build_tree = optarg; - 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; - usage (s, 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 (optarg); - s.kernel_build_tree = "/lib/modules/" + s.kernel_release + "/build"; - } + setup_kernel_release(s, optarg); break; case 'k': |