Index: pydir/build-pnacl-ir.py |
diff --git a/pydir/build-pnacl-ir.py b/pydir/build-pnacl-ir.py |
index 5c4c9e816b2c61cbd078517c31f2133d637658ea..96b4741f68165322f577cf2dc3493cdc0b70df95 100755 |
--- a/pydir/build-pnacl-ir.py |
+++ b/pydir/build-pnacl-ir.py |
@@ -1,7 +1,9 @@ |
#!/usr/bin/env python2 |
import argparse |
+import errno |
import os |
+import shutil |
import tempfile |
from utils import shellcmd |
from utils import FindBaseNaCl |
@@ -21,18 +23,25 @@ if __name__ == '__main__': |
nacl_root + '/toolchain/linux_x86/pnacl_newlib/bin' + os.pathsep + |
os.pathsep + os.environ['PATH']) |
- tempdir = tempfile.mkdtemp() |
+ try: |
+ tempdir = tempfile.mkdtemp() |
- for cname in args.cfile: |
- basename = os.path.splitext(cname)[0] |
- llname = os.path.join(tempdir, basename + '.ll') |
- pnaclname = basename + '.pnacl.ll' |
- pnaclname = os.path.join(args.dir, pnaclname) |
+ for cname in args.cfile: |
+ basename = os.path.splitext(cname)[0] |
+ llname = os.path.join(tempdir, basename + '.ll') |
+ pnaclname = basename + '.pnacl.ll' |
+ pnaclname = os.path.join(args.dir, pnaclname) |
- shellcmd('pnacl-clang -O2 -c {0} -o {1}'.format(cname, llname)) |
- shellcmd('pnacl-opt ' + |
- '-pnacl-abi-simplify-preopt -pnacl-abi-simplify-postopt' + |
- ('' if args.disable_verify else |
- ' -verify-pnaclabi-module -verify-pnaclabi-functions') + |
- ' -pnaclabi-allow-debug-metadata' |
- ' {0} -S -o {1}'.format(llname, pnaclname)) |
+ shellcmd('pnacl-clang -O2 -c {0} -o {1}'.format(cname, llname)) |
+ shellcmd('pnacl-opt ' + |
+ '-pnacl-abi-simplify-preopt -pnacl-abi-simplify-postopt' + |
+ ('' if args.disable_verify else |
+ ' -verify-pnaclabi-module -verify-pnaclabi-functions') + |
+ ' -pnaclabi-allow-debug-metadata' |
+ ' {0} -S -o {1}'.format(llname, pnaclname)) |
+ finally: |
+ try: |
+ shutil.rmtree(tempdir) |
+ except OSError as exc: |
+ if exc.errno != errno.ENOENT: # ENOENT - no such file or directory |
+ raise # re-raise exception |