49 lines
1.5 KiB
Python
49 lines
1.5 KiB
Python
import os
|
|
import subprocess
|
|
import sys
|
|
|
|
def GetObjcopyCmd(target):
|
|
"""Return a suitable objcopy command."""
|
|
if target == 'mips32':
|
|
return 'mipsel-nacl-objcopy'
|
|
return 'arm-nacl-objcopy'
|
|
|
|
def GetObjdumpCmd(target):
|
|
"""Return a suitable objdump command."""
|
|
if target == 'mips32':
|
|
return 'mipsel-nacl-objdump'
|
|
return 'arm-nacl-objdump'
|
|
|
|
def shellcmd(command, echo=True):
|
|
if not isinstance(command, str):
|
|
command = ' '.join(command)
|
|
|
|
if echo:
|
|
print >> sys.stderr, '[cmd]'
|
|
print >> sys.stderr, command
|
|
print >> sys.stderr
|
|
|
|
stdout_result = subprocess.check_output(command, shell=True)
|
|
if echo: sys.stdout.write(stdout_result)
|
|
return stdout_result
|
|
|
|
def FindBaseNaCl():
|
|
"""Find the base native_client/ directory."""
|
|
nacl = 'native_client'
|
|
path_list = os.getcwd().split(os.sep)
|
|
"""Use the executable path if cwd does not contain 'native_client' """
|
|
path_list = path_list if nacl in path_list else sys.argv[0].split(os.sep)
|
|
if nacl not in path_list:
|
|
print "Script must be executed from within 'native_client' directory"
|
|
exit(1)
|
|
last_index = len(path_list) - path_list[::-1].index(nacl)
|
|
return os.sep.join(path_list[:last_index])
|
|
|
|
def get_sfi_string(args, sb_ret, nonsfi_ret, native_ret):
|
|
"""Return a value depending on args.sandbox and args.nonsfi."""
|
|
if args.sandbox:
|
|
assert(not args.nonsfi)
|
|
return sb_ret
|
|
if args.nonsfi:
|
|
return nonsfi_ret
|
|
return native_ret
|