| Index: run.py
|
| diff --git a/run.py b/run.py
|
| index 3fe707550324fe36d1cf99f46b08e1afa3c942e3..779a017f51496f88691c5b484e2edff5c4aa469e 100755
|
| --- a/run.py
|
| +++ b/run.py
|
| @@ -42,9 +42,9 @@ run.py options:
|
| with NACL_EXE_STDOUT/STDERR env vars)
|
| --more Display sel_ldr usage
|
|
|
| - -arch <arch> | -m32 | -m64 | -marm
|
| + -arch <arch> | -m32 | -m64 | -marm | -mmips32
|
| Specify architecture for PNaCl translation
|
| - (arch is one of: x86-32, x86-64 or arm)
|
| + (arch is one of: x86-32, x86-64, arm or mips32)
|
| '''
|
| print info % name
|
| print '-' * 80
|
| @@ -71,7 +71,11 @@ def SetupEnvironment():
|
| # QEMU
|
| env.arm_root = os.path.join(env.nacl_root,
|
| 'toolchain', 'linux_arm-trusted')
|
| - env.qemu = os.path.join(env.arm_root, 'run_under_qemu_arm')
|
| + env.qemu_arm = os.path.join(env.arm_root, 'run_under_qemu_arm')
|
| +
|
| + env.mips32_root = os.path.join(env.nacl_root,
|
| + 'toolchain', 'linux_mips-trusted')
|
| + env.qemu_mips32 = os.path.join(env.mips32_root, 'run_under_qemu_mips32')
|
|
|
| # Path to 'readelf'
|
| env.readelf = FindReadElf()
|
| @@ -97,7 +101,7 @@ def SetupEnvironment():
|
| # Don't print anything
|
| env.quiet = False
|
|
|
| - # Arch (x86-32, x86-64, arm)
|
| + # Arch (x86-32, x86-64, arm, mips32)
|
| env.arch = None
|
|
|
| # Trace in QEMU
|
| @@ -221,7 +225,13 @@ def main(argv):
|
| def RunSelLdr(args):
|
| prefix = []
|
| if GetBuildArch().find('arm') == -1 and env.arch == 'arm':
|
| - prefix = [ env.qemu, '-cpu', 'cortex-a8']
|
| + prefix = [ env.qemu_arm, '-cpu', 'cortex-a8']
|
| + if env.trace:
|
| + prefix += ['-d', 'in_asm,op,exec,cpu']
|
| + args = ['-Q'] + args
|
| +
|
| + if GetBuildArch().find('mips32') == -1 and env.arch == 'mips32':
|
| + prefix = [env.qemu_mips32]
|
| if env.trace:
|
| prefix += ['-d', 'in_asm,op,exec,cpu']
|
| args = ['-Q'] + args
|
| @@ -431,6 +441,8 @@ def ArgSplit(argv):
|
| env.arch = 'x86-64'
|
| elif arg == '-marm':
|
| env.arch = 'arm'
|
| + elif arg == '-mmips32':
|
| + env.arch = 'mips32'
|
| elif arg == '-arch':
|
| if i+1 < len(argv):
|
| env.arch = FixArch(argv[i+1])
|
| @@ -471,6 +483,7 @@ def FixArch(arch):
|
| x86_32 = 'x86-32 x86_32 x8632 i386 i686 ia32'.split()
|
| x86_64 = 'amd64 x86_64 x86-64 x8664'.split()
|
| arm = 'arm armv7'.split()
|
| + mips32 = 'mips mips32'.split()
|
|
|
| if arch in x86_32:
|
| return 'x86-32'
|
| @@ -481,6 +494,9 @@ def FixArch(arch):
|
| if arch in arm:
|
| return 'arm'
|
|
|
| + if arch in mips32:
|
| + return 'mips32'
|
| +
|
| Fatal('Unrecognized arch "%s"!', arch)
|
|
|
|
|
| @@ -492,7 +508,7 @@ def Fatal(msg, *args):
|
|
|
| def Usage2():
|
| # Try to find any sel_ldr that already exists
|
| - for arch in ['x86-32','x86-64','arm']:
|
| + for arch in ['x86-32','x86-64','arm','mips32']:
|
| SetupArch(arch, allow_build = False)
|
| if env.sel_ldr:
|
| break
|
| @@ -554,6 +570,8 @@ def ReadELFInfo(f):
|
| arch = 'x86-64'
|
| elif 'ARM' in machine_line:
|
| arch = 'arm'
|
| + elif 'MIPS' in machine_line:
|
| + arch = 'mips32'
|
| else:
|
| Fatal('%s: Unknown machine type', f)
|
|
|
|
|