| OLD | NEW |
| (Empty) |
| 1 #!/usr/bin/python | |
| 2 # Copyright (c) 2014 The Native Client Authors. All rights reserved. | |
| 3 # Use of this source code is governed by a BSD-style license that can be | |
| 4 # found in the LICENSE file. | |
| 5 | |
| 6 # This is a thin wrapper for native LLC. This is not meant to be used by | |
| 7 # the user, only by the build system. | |
| 8 | |
| 9 import subprocess | |
| 10 | |
| 11 from driver_env import env | |
| 12 import driver_tools | |
| 13 | |
| 14 EXTRA_ENV = { | |
| 15 'ARGS' : '', | |
| 16 'INPUT' : '', | |
| 17 'OUTPUT' : '', | |
| 18 # Binary output may go to stdout (when -o was not specified) | |
| 19 'HAVE_OUTPUT' : '0', | |
| 20 } | |
| 21 | |
| 22 PATTERNS = [ | |
| 23 (('-o','(.*)'), "env.set('OUTPUT', pathtools.normalize($0))\n" + | |
| 24 "env.set('HAVE_OUTPUT', '1')"), | |
| 25 ( '(-.*)', "env.append('ARGS', $0)"), | |
| 26 ( '(.*)', "env.set('INPUT', $0)"), | |
| 27 ] | |
| 28 | |
| 29 def main(argv): | |
| 30 env.update(EXTRA_ENV) | |
| 31 driver_tools.ParseArgs(argv, PATTERNS) | |
| 32 | |
| 33 driver_tools.CheckPathLength(env.getone('INPUT')) | |
| 34 driver_tools.CheckPathLength(env.getone('OUTPUT')) | |
| 35 | |
| 36 driver_tools.Run( | |
| 37 '"${LLVM_PNACL_LLC}" ${ARGS} ' + | |
| 38 '${HAVE_OUTPUT ? -o ${OUTPUT}} ' + | |
| 39 '${INPUT}') | |
| 40 | |
| 41 # only reached in case of no errors | |
| 42 return 0 | |
| 43 | |
| 44 def get_help(unused_argv): | |
| 45 # Set errexit=False -- Do not exit early to allow testing. | |
| 46 # For some reason most the llvm tools return non-zero with --help, | |
| 47 # while all of the gnu tools return 0 with --help. | |
| 48 # On windows, the exit code is also inconsistent =( | |
| 49 code, stdout, stderr = driver_tools.Run('${LLVM_PNACL_LLC} -help', | |
| 50 redirect_stdout=subprocess.PIPE, | |
| 51 redirect_stderr=subprocess.STDOUT, | |
| 52 errexit=False) | |
| 53 | |
| 54 help = """ | |
| 55 LLVM static compiler | |
| 56 | |
| 57 To translate PNaCl bitcode, use pnacl-translate instead. | |
| 58 | |
| 59 """ + stdout | |
| 60 | |
| 61 return help | |
| OLD | NEW |