summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/support/gmodules.py
diff options
context:
space:
mode:
authorTodd Fiala <todd.fiala@gmail.com>2016-05-26 13:57:03 +0000
committerTodd Fiala <todd.fiala@gmail.com>2016-05-26 13:57:03 +0000
commit94eb010fe9a6cfe8bf1f03b8ce4cc406d56472ee (patch)
tree2aea2a6d3dfc5666cbd1632322540c572fa1a5df /lldb/packages/Python/lldbsuite/support/gmodules.py
parenta8f9cf18ad13b2cb3aa8b05c2d8cf771c0b979b5 (diff)
downloadbcm5719-llvm-94eb010fe9a6cfe8bf1f03b8ce4cc406d56472ee.tar.gz
bcm5719-llvm-94eb010fe9a6cfe8bf1f03b8ce4cc406d56472ee.zip
Add "-gmodules" support to the test suite.
This change adds the capability of building test inferiors with the -gmodules flag to enable module debug info support. Windows is excluded per @zturner. Reviewers: granata.enrico, aprantl, zturner, labath Subscribers: zturner, labath, lldb-commits Differential Revision: http://reviews.llvm.org/D19998 llvm-svn: 270848
Diffstat (limited to 'lldb/packages/Python/lldbsuite/support/gmodules.py')
-rw-r--r--lldb/packages/Python/lldbsuite/support/gmodules.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/lldb/packages/Python/lldbsuite/support/gmodules.py b/lldb/packages/Python/lldbsuite/support/gmodules.py
new file mode 100644
index 00000000000..4f2fd9643b1
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/support/gmodules.py
@@ -0,0 +1,30 @@
+from __future__ import absolute_import
+from __future__ import print_function
+
+# System modules
+import os
+import re
+
+
+GMODULES_SUPPORT_MAP = {}
+GMODULES_HELP_REGEX = re.compile(r"\s-gmodules\s")
+
+
+def is_compiler_clang_with_gmodules(compiler_path):
+ # Before computing the result, check if we already have it cached.
+ if compiler_path in GMODULES_SUPPORT_MAP:
+ return GMODULES_SUPPORT_MAP[compiler_path]
+
+ def _gmodules_supported_internal():
+ compiler = os.path.basename(compiler_path)
+ if "clang" not in compiler:
+ return False
+ else:
+ # Check the compiler help for the -gmodules option.
+ clang_help = os.popen("%s --help" % compiler_path).read()
+ return GMODULES_HELP_REGEX.search(clang_help, re.DOTALL) is not None
+
+ GMODULES_SUPPORT_MAP[compiler_path] = _gmodules_supported_internal()
+ return GMODULES_SUPPORT_MAP[compiler_path]
+
+
OpenPOWER on IntegriCloud