Bobby R. Bruce has submitted this change. ( https://gem5-review.googlesource.com/c/public/gem5/+/27787 )

Change subject: base,misc: Added version to code
......................................................................

base,misc: Added version to code

This version ID string can be accessed from elsewhere in the CPP
codebase using `extern const char *gem5Version;`. The python variable
"gem5Version" may be accessed in by importing the generated
"defines.py". When gem5 now runs it will output the version
currently being used to the CLI.

Change-Id: I4feb6b7317cd2922c56eb8ce3e532b0bfa0e6ed3
Issue-on: https://gem5.atlassian.net/browse/GEM5-411
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/27787
Reviewed-by: Jason Lowe-Power <power...@gmail.com>
Maintainer: Jason Lowe-Power <power...@gmail.com>
Tested-by: kokoro <noreply+kok...@google.com>
---
M src/SConscript
M src/base/SConscript
A src/base/version.cc
M src/python/m5/main.py
M src/python/pybind11/core.cc
M tests/gem5/verifier.py
6 files changed, 36 insertions(+), 0 deletions(-)

Approvals:
  Jason Lowe-Power: Looks good to me, approved; Looks good to me, approved
  kokoro: Regressions pass



diff --git a/src/SConscript b/src/SConscript
index 90f9b76..c7251fc 100644
--- a/src/SConscript
+++ b/src/SConscript
@@ -830,6 +830,7 @@
 buildEnv = m5.util.SmartDict($build_env)

 compileDate = _m5.core.compileDate
+gem5Version = _m5.core.gem5Version
 _globals = globals()
 for key,val in _m5.core.__dict__.items():
     if key.startswith('flag_'):
diff --git a/src/base/SConscript b/src/base/SConscript
index f2fb91c..fe4e361 100644
--- a/src/base/SConscript
+++ b/src/base/SConscript
@@ -73,6 +73,7 @@
 Source('str.cc')
 GTest('str.test', 'str.test.cc', 'str.cc')
 Source('time.cc')
+Source('version.cc')
 Source('trace.cc')
 GTest('trie.test', 'trie.test.cc')
 Source('types.cc')
diff --git a/src/base/version.cc b/src/base/version.cc
new file mode 100644
index 0000000..7182b55
--- /dev/null
+++ b/src/base/version.cc
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2020 The Regents of The University of California
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met: redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer;
+ * redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution;
+ * neither the name of the copyright holders nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+const char *gem5Version = "[develop]";
diff --git a/src/python/m5/main.py b/src/python/m5/main.py
index 82ef4d9..6fe9218 100644
--- a/src/python/m5/main.py
+++ b/src/python/m5/main.py
@@ -273,6 +273,7 @@
         done = True
         print('Build information:')
         print()
+        print('gem5 version %s' % defines.gem5Version)
         print('compiled %s' % defines.compileDate)
         print('build options:')
         keys = list(defines.buildEnv.keys())
@@ -336,6 +337,7 @@
         print(brief_copyright)
         print()

+        print("gem5 version %s" % defines.gem5Version)
         print("gem5 compiled %s" % defines.compileDate)

         print("gem5 started %s" %
diff --git a/src/python/pybind11/core.cc b/src/python/pybind11/core.cc
index 4b7defe..8655d73 100644
--- a/src/python/pybind11/core.cc
+++ b/src/python/pybind11/core.cc
@@ -79,6 +79,7 @@
 }

 extern const char *compileDate;
+extern const char *gem5Version;

 #ifdef DEBUG
 const bool flag_DEBUG = true;
@@ -260,6 +261,7 @@

     /* TODO: These should be read-only */
     m_core.attr("compileDate") = py::cast(compileDate);
+    m_core.attr("gem5Version") = py::cast(gem5Version);

     m_core.attr("flag_DEBUG") = py::cast(flag_DEBUG);
     m_core.attr("flag_DEBUG") = py::cast(flag_DEBUG);
diff --git a/tests/gem5/verifier.py b/tests/gem5/verifier.py
index a7e6d4e..73a7499 100644
--- a/tests/gem5/verifier.py
+++ b/tests/gem5/verifier.py
@@ -127,6 +127,7 @@
     _file = constants.gem5_simulation_stdout
     _default_ignore_regex = [
             re.compile('^Redirecting (stdout|stderr) to'),
+            re.compile('^gem5 version '),
             re.compile('^gem5 compiled '),
             re.compile('^gem5 started '),
             re.compile('^gem5 executing on '),

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/27787
To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings

Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: I4feb6b7317cd2922c56eb8ce3e532b0bfa0e6ed3
Gerrit-Change-Number: 27787
Gerrit-PatchSet: 7
Gerrit-Owner: Bobby R. Bruce <bbr...@ucdavis.edu>
Gerrit-Reviewer: Bobby R. Bruce <bbr...@ucdavis.edu>
Gerrit-Reviewer: Gabe Black <gabebl...@google.com>
Gerrit-Reviewer: Gem5 Cloud Project GCB service account <345032938...@cloudbuild.gserviceaccount.com>
Gerrit-Reviewer: Giacomo Travaglini <giacomo.travagl...@arm.com>
Gerrit-Reviewer: Jason Lowe-Power <power...@gmail.com>
Gerrit-Reviewer: kokoro <noreply+kok...@google.com>
Gerrit-MessageType: merged
_______________________________________________
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to