| OLD | NEW |
| 1 #!/usr/bin/env python2 | 1 #!/usr/bin/env python2 |
| 2 | 2 |
| 3 import argparse | 3 import argparse |
| 4 import os | 4 import os |
| 5 import subprocess | 5 import subprocess |
| 6 import sys | 6 import sys |
| 7 import tempfile | 7 import tempfile |
| 8 | 8 |
| 9 import targets | 9 import targets |
| 10 from utils import shellcmd | 10 from utils import shellcmd |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 86 ' Default "%(default)s".') | 86 ' Default "%(default)s".') |
| 87 argparser.add_argument('--crosstest-bitcode', required=False, | 87 argparser.add_argument('--crosstest-bitcode', required=False, |
| 88 default=1, type=int, | 88 default=1, type=int, |
| 89 help='Compile non-subzero crosstest object file ' + | 89 help='Compile non-subzero crosstest object file ' + |
| 90 'from the same bitcode as the subzero object. ' + | 90 'from the same bitcode as the subzero object. ' + |
| 91 'If 0, then compile it straight from source.' + | 91 'If 0, then compile it straight from source.' + |
| 92 ' Default %(default)d.') | 92 ' Default %(default)d.') |
| 93 argparser.add_argument('--filetype', default='obj', dest='filetype', | 93 argparser.add_argument('--filetype', default='obj', dest='filetype', |
| 94 choices=['obj', 'asm', 'iasm'], | 94 choices=['obj', 'asm', 'iasm'], |
| 95 help='Output file type. Default %(default)s.') | 95 help='Output file type. Default %(default)s.') |
| 96 argparser.add_argument('--sz', dest='sz_args', action='append', default=[], |
| 97 help='Extra arguments to pass to pnacl-sz.') |
| 96 args = argparser.parse_args() | 98 args = argparser.parse_args() |
| 97 | 99 |
| 98 nacl_root = FindBaseNaCl() | 100 nacl_root = FindBaseNaCl() |
| 99 bindir = ('{root}/toolchain/linux_x86/pnacl_newlib_raw/bin' | 101 bindir = ('{root}/toolchain/linux_x86/pnacl_newlib_raw/bin' |
| 100 .format(root=nacl_root)) | 102 .format(root=nacl_root)) |
| 101 target_info = arch_map[args.target] | 103 target_info = arch_map[args.target] |
| 102 triple = target_info.triple | 104 triple = target_info.triple |
| 103 if args.sandbox: | 105 if args.sandbox: |
| 104 triple = targets.ConvertTripleToNaCl(triple) | 106 triple = targets.ConvertTripleToNaCl(triple) |
| 105 llc_flags = target_info.llc_flags + arch_llc_flags_extra[args.target] | 107 llc_flags = target_info.llc_flags + arch_llc_flags_extra[args.target] |
| (...skipping 20 matching lines...) Expand all Loading... |
| 126 '-pnacl-abi-simplify-preopt', | 128 '-pnacl-abi-simplify-preopt', |
| 127 '-pnacl-abi-simplify-postopt', | 129 '-pnacl-abi-simplify-postopt', |
| 128 '-pnaclabi-allow-debug-metadata', | 130 '-pnaclabi-allow-debug-metadata', |
| 129 bitcode_nonfinal, '-S', '-o', bitcode]) | 131 bitcode_nonfinal, '-S', '-o', bitcode]) |
| 130 | 132 |
| 131 base_sz = '{base}.{key}'.format(base=base, key=key) | 133 base_sz = '{base}.{key}'.format(base=base, key=key) |
| 132 asm_sz = os.path.join(args.dir, base_sz + '.sz.s') | 134 asm_sz = os.path.join(args.dir, base_sz + '.sz.s') |
| 133 obj_sz = os.path.join(args.dir, base_sz + '.sz.o') | 135 obj_sz = os.path.join(args.dir, base_sz + '.sz.o') |
| 134 obj_llc = os.path.join(args.dir, base_sz + '.llc.o') | 136 obj_llc = os.path.join(args.dir, base_sz + '.llc.o') |
| 135 shellcmd(['{path}/pnacl-sz'.format(path=os.path.dirname(mypath)), | 137 shellcmd(['{path}/pnacl-sz'.format(path=os.path.dirname(mypath)), |
| 138 ] + args.sz_args + [ |
| 136 '-O' + args.optlevel, | 139 '-O' + args.optlevel, |
| 137 '-mattr=' + args.attr, | 140 '-mattr=' + args.attr, |
| 138 '--target=' + args.target, | 141 '--target=' + args.target, |
| 139 '--sandbox=' + str(args.sandbox), | 142 '--sandbox=' + str(args.sandbox), |
| 140 '--prefix=' + args.prefix, | 143 '--prefix=' + args.prefix, |
| 141 '-allow-uninitialized-globals', | 144 '-allow-uninitialized-globals', |
| 142 '-externalize', | 145 '-externalize', |
| 143 '-filetype=' + args.filetype, | 146 '-filetype=' + args.filetype, |
| 144 '-o=' + (obj_sz if args.filetype == 'obj' else asm_sz), | 147 '-o=' + (obj_sz if args.filetype == 'obj' else asm_sz), |
| 145 bitcode] + arch_sz_flags[args.target]) | 148 bitcode] + arch_sz_flags[args.target]) |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 199 if args.sandbox else | 202 if args.sandbox else |
| 200 ['-g', '-target=' + triple, | 203 ['-g', '-target=' + triple, |
| 201 '-lm', '-lpthread', | 204 '-lm', '-lpthread', |
| 202 '-Wl,--defsym=__Sz_AbsoluteZero=0'] + | 205 '-Wl,--defsym=__Sz_AbsoluteZero=0'] + |
| 203 target_info.cross_headers) | 206 target_info.cross_headers) |
| 204 shellcmd([compiler] + stack_hack_params + [args.driver] + objs + | 207 shellcmd([compiler] + stack_hack_params + [args.driver] + objs + |
| 205 ['-o', os.path.join(args.dir, args.output)] + sb_native_args) | 208 ['-o', os.path.join(args.dir, args.output)] + sb_native_args) |
| 206 | 209 |
| 207 if __name__ == '__main__': | 210 if __name__ == '__main__': |
| 208 main() | 211 main() |
| OLD | NEW |