diff --git a/llvm/utils/lit/lit/main.py b/llvm/utils/lit/lit/main.py --- a/llvm/utils/lit/lit/main.py +++ b/llvm/utils/lit/lit/main.py @@ -244,9 +244,17 @@ # the buildbot level. tmp_dir = None if 'LIT_PRESERVES_TMP' not in os.environ: - import tempfile - # z/OS linker does not support '_' in paths, so use '-'. - tmp_dir = tempfile.mkdtemp(prefix='lit-tmp-') + # z/OS linker does not support '_' in paths, so use '-' and letters. + if sys.platform == 'zos': + import random + import string + while True: + tmp_dir = '/tmp/lit-tmp-' + ''.join(random.choice(string.ascii_letters) for i in range(8)) + if not os.path.exists(tmp_dir): break + os.makedirs(tmp_dir, mode=700) + else: + import tempfile + tmp_dir = tempfile.mkdtemp(prefix='lit_tmp_') tmp_dir_envs = {k: tmp_dir for k in ['TMP', 'TMPDIR', 'TEMP', 'TEMPDIR']} os.environ.update(tmp_dir_envs) for cfg in {t.config for t in run.tests}: