diff options
Diffstat (limited to 'test/profile/Linux/lit.local.cfg')
| -rw-r--r-- | test/profile/Linux/lit.local.cfg | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/test/profile/Linux/lit.local.cfg b/test/profile/Linux/lit.local.cfg new file mode 100644 index 0000000000000..c8c79fc7d8a77 --- /dev/null +++ b/test/profile/Linux/lit.local.cfg @@ -0,0 +1,37 @@ +import subprocess + +def getRoot(config): + if not config.parent: + return config + return getRoot(config.parent) + + +def is_gold_linker_available(): + + if not config.gold_executable: + return False + try: + ld_cmd = subprocess.Popen([config.gold_executable, '--help'], stdout = subprocess.PIPE) + ld_out = ld_cmd.stdout.read().decode() + ld_cmd.wait() + except: + return False + + if not '-plugin' in ld_out: + return False + + clang_cmd = subprocess.Popen([config.clang, '-fuse-ld=gold', '-xc', '-'], + stdin = subprocess.PIPE, + stdout = subprocess.PIPE, + stderr = subprocess.PIPE) + clang_err = clang_cmd.communicate('int main() { return 0; }')[1] + + if not 'invalid linker' in clang_err: + return True + + return False + +root = getRoot(config) + +if root.host_os not in ['Linux'] or not is_gold_linker_available(): + config.unsupported = True |
