| 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 szbuild import LinkNonsfi | 10 from szbuild import LinkNonsfi |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 120 base, ext = os.path.splitext(arg) | 120 base, ext = os.path.splitext(arg) |
| 121 if ext == '.ll': | 121 if ext == '.ll': |
| 122 bitcode = arg | 122 bitcode = arg |
| 123 else: | 123 else: |
| 124 # Use pnacl-clang and pnacl-opt to produce PNaCl bitcode. | 124 # Use pnacl-clang and pnacl-opt to produce PNaCl bitcode. |
| 125 bitcode_nonfinal = os.path.join(args.dir, base + '.' + key + '.bc') | 125 bitcode_nonfinal = os.path.join(args.dir, base + '.' + key + '.bc') |
| 126 bitcode = os.path.join(args.dir, base + '.' + key + '.pnacl.ll') | 126 bitcode = os.path.join(args.dir, base + '.' + key + '.pnacl.ll') |
| 127 shellcmd(['{bin}/pnacl-clang'.format(bin=bindir), | 127 shellcmd(['{bin}/pnacl-clang'.format(bin=bindir), |
| 128 ('-O2' if args.clang_opt else '-O0'), | 128 ('-O2' if args.clang_opt else '-O0'), |
| 129 ('-DARM32' if args.target == 'arm32' else ''), '-c', arg, | 129 ('-DARM32' if args.target == 'arm32' else ''), '-c', arg, |
| 130 ('-DMIPS32' if args.target == 'mips32' else ''), |
| 130 '-o', bitcode_nonfinal]) | 131 '-o', bitcode_nonfinal]) |
| 131 shellcmd(['{bin}/pnacl-opt'.format(bin=bindir), | 132 shellcmd(['{bin}/pnacl-opt'.format(bin=bindir), |
| 132 '-pnacl-abi-simplify-preopt', | 133 '-pnacl-abi-simplify-preopt', |
| 133 '-pnacl-abi-simplify-postopt', | 134 '-pnacl-abi-simplify-postopt', |
| 134 '-pnaclabi-allow-debug-metadata', | 135 '-pnaclabi-allow-debug-metadata', |
| 135 '-strip-metadata', | 136 '-strip-metadata', |
| 136 '-strip-module-flags', | 137 '-strip-module-flags', |
| 137 '-strip-debug', | 138 '-strip-debug', |
| 138 bitcode_nonfinal, '-S', '-o', bitcode]) | 139 bitcode_nonfinal, '-S', '-o', bitcode]) |
| 139 | 140 |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 201 'szrt_{sb}_' + args.target + '.o' | 202 'szrt_{sb}_' + args.target + '.o' |
| 202 ).format(root=nacl_root, | 203 ).format(root=nacl_root, |
| 203 sb=get_sfi_string(args, 'sb', 'nonsfi', 'native'))) | 204 sb=get_sfi_string(args, 'sb', 'nonsfi', 'native'))) |
| 204 | 205 |
| 205 target_params = [] | 206 target_params = [] |
| 206 | 207 |
| 207 if args.target == 'arm32': | 208 if args.target == 'arm32': |
| 208 target_params.append('-DARM32') | 209 target_params.append('-DARM32') |
| 209 target_params.append('-static') | 210 target_params.append('-static') |
| 210 | 211 |
| 212 if args.target == 'mips32': |
| 213 target_params.append('-DMIPS32') |
| 214 |
| 211 pure_c = os.path.splitext(args.driver)[1] == '.c' | 215 pure_c = os.path.splitext(args.driver)[1] == '.c' |
| 212 if not args.nonsfi: | 216 if not args.nonsfi: |
| 213 # Set compiler to clang, clang++, pnacl-clang, or pnacl-clang++. | 217 # Set compiler to clang, clang++, pnacl-clang, or pnacl-clang++. |
| 214 compiler = '{bin}/{prefix}{cc}'.format( | 218 compiler = '{bin}/{prefix}{cc}'.format( |
| 215 bin=bindir, prefix=get_sfi_string(args, 'pnacl-', '', ''), | 219 bin=bindir, prefix=get_sfi_string(args, 'pnacl-', '', ''), |
| 216 cc='clang' if pure_c else 'clang++') | 220 cc='clang' if pure_c else 'clang++') |
| 217 sb_native_args = (['-O0', '--pnacl-allow-native', | 221 sb_native_args = (['-O0', '--pnacl-allow-native', |
| 218 '-arch', target_info.compiler_arch, | 222 '-arch', target_info.compiler_arch, |
| 219 '-Wn,-defsym=__Sz_AbsoluteZero=0'] | 223 '-Wn,-defsym=__Sz_AbsoluteZero=0'] |
| 220 if args.sandbox else | 224 if args.sandbox else |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 266 objs.append(obj_llc) | 270 objs.append(obj_llc) |
| 267 if args.nonsfi: | 271 if args.nonsfi: |
| 268 LinkNonsfi(objs, os.path.join(args.dir, args.output), args.target) | 272 LinkNonsfi(objs, os.path.join(args.dir, args.output), args.target) |
| 269 elif args.sandbox: | 273 elif args.sandbox: |
| 270 LinkSandbox(objs, os.path.join(args.dir, args.output), args.target) | 274 LinkSandbox(objs, os.path.join(args.dir, args.output), args.target) |
| 271 else: | 275 else: |
| 272 LinkNative(objs, os.path.join(args.dir, args.output), args.target) | 276 LinkNative(objs, os.path.join(args.dir, args.output), args.target) |
| 273 | 277 |
| 274 if __name__ == '__main__': | 278 if __name__ == '__main__': |
| 275 main() | 279 main() |
| OLD | NEW |