summaryrefslogtreecommitdiff
path: root/src/python/m5/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/python/m5/__init__.py')
-rw-r--r--src/python/m5/__init__.py48
1 files changed, 36 insertions, 12 deletions
diff --git a/src/python/m5/__init__.py b/src/python/m5/__init__.py
index f21bb362e..733258acf 100644
--- a/src/python/m5/__init__.py
+++ b/src/python/m5/__init__.py
@@ -36,8 +36,31 @@ import smartdict
MaxTick = 2**63 - 1
# define this here so we can use it right away if necessary
-def panic(string):
- print >>sys.stderr, 'panic:', string
+
+def errorURL(prefix, s):
+ try:
+ import zlib
+ hashstr = "%x" % zlib.crc32(s)
+ except:
+ hashstr = "UnableToHash"
+ return "For more information see: http://www.m5sim.org/%s/%s" % \
+ (prefix, hashstr)
+
+
+# panic() should be called when something happens that should never
+# ever happen regardless of what the user does (i.e., an acutal m5
+# bug).
+def panic(fmt, *args):
+ print >>sys.stderr, 'panic:', fmt % args
+ print >>sys.stderr, errorURL('panic',fmt)
+ sys.exit(1)
+
+# fatal() should be called when the simulation cannot continue due to
+# some condition that is the user's fault (bad configuration, invalid
+# arguments, etc.) and not a simulator bug.
+def fatal(fmt, *args):
+ print >>sys.stderr, 'fatal:', fmt % args
+ print >>sys.stderr, errorURL('fatal',fmt)
sys.exit(1)
# force scalars to one-element lists for uniformity
@@ -77,22 +100,23 @@ env.update(os.environ)
# importing *you*).
try:
import internal
- running_m5 = True
except ImportError:
- running_m5 = False
+ internal = None
+
+import defines
+build_env.update(defines.buildEnv)
-if running_m5:
- import defines
- build_env.update(defines.m5_build_env)
-else:
- import __scons
- build_env.update(__scons.m5_build_env)
+if internal:
+ defines.compileDate = internal.core.compileDate
+ for k,v in internal.core.__dict__.iteritems():
+ if k.startswith('flag_'):
+ setattr(defines, k[5:], v)
-if running_m5:
from event import *
from simulate import *
- from main import options
+ from main import options, main
import stats
+ import core
import SimObject
import params