config, arm: Don't import timing models for missing CPUs
authorAndreas Sandberg <andreas.sandberg@arm.com>
Tue, 4 Jul 2017 10:04:49 +0000 (11:04 +0100)
committerAndreas Sandberg <andreas.sandberg@arm.com>
Tue, 4 Jul 2017 15:59:59 +0000 (15:59 +0000)
When importing the cores.arm package, we currently throw an exception
if a timing model can't be imported due to a missing dependency (e.g.,
the required CPU model wasn't included in the build). This is
undesirable since it prevents other, working, timing models from being
added to the package. Wrap the import_module call in a try-except
block and skip timing models that have missing dependencies.

Change-Id: I92bab62c989f433a8a4a7bf59207d9d81b3d19e1
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/3946
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

configs/common/cores/arm/__init__.py

index 96388f7319a0952daf9dedb7c4468e62d1222ac9..582e6b859bc2c5f0322ee88409c1db6cdccbca5c 100644 (file)
@@ -43,6 +43,12 @@ _cpu_modules = [
 ]
 
 for c in _cpu_modules:
-    import_module("." + c, package=__package__)
+    try:
+        import_module("." + c, package=__package__)
+    except NameError:
+        # Failed to import a CPU model due to a missing
+        # dependency. This typically happens if gem5 has been compiled
+        # without a CPU model needed by the timing model.
+        pass
 
 __all__ = _cpu_modules