Chromium Code Reviews| Index: tools/trusted_cross_toolchains/setup_mips32_trusted_toolchain.py |
| diff --git a/tools/trusted_cross_toolchains/setup_mips32_trusted_toolchain.py b/tools/trusted_cross_toolchains/setup_mips32_trusted_toolchain.py |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..94701318b562c17228b28dda9aa062cd1ab4dccc |
| --- /dev/null |
| +++ b/tools/trusted_cross_toolchains/setup_mips32_trusted_toolchain.py |
| @@ -0,0 +1,76 @@ |
| +#!/usr/bin/python |
| +# Copyright (c) 2012 The Native Client Authors. All rights reserved. |
| +# Use of this source code is governed by a BSD-style license that can be |
| +# found in the LICENSE file. |
| +# |
| +# MIPS32 TOOLCHAIN SETTINGS FOR TRUSTED CODE |
|
Mark Seaborn
2012/09/18 03:24:34
This script is based on setup_arm_trusted_toolchai
petarj
2012/09/19 17:27:51
Done.
|
| +# |
| +# This can either be imported as a python script |
| +# or used in a shell script, by doing: |
| +# eval "$(tools/llvm/setup_mips32_trusted_toolchain.py)" |
| +# |
| +# |
| +# If imported as a python script, it provides two variables: |
| +# mips32_env = dictionary of MIPS32 environment |
| +# shell_exports = keys which are normally exported to the shell environment |
| + |
| +import os |
| +import sys |
| + |
| +if os.path.basename(os.getcwd()) != 'native_client': |
| + print "Error: Run this script from native_client/" |
| + sys.exit(1) |
| + |
| +# Alias for convenience |
| +J = os.path.join |
| + |
| +NACL_ROOT = os.getcwd() |
| +BASE_DIR = J(NACL_ROOT, 'toolchain', 'linux_mips-trusted') |
| +MIPS32_CROSS_TARGET = 'mips-linux-gnu' |
| +CODE_SOURCERY_PREFIX = J(BASE_DIR, 'mips-release', 'bin', MIPS32_CROSS_TARGET) |
| +CODE_SOURCERY_JAIL = J(BASE_DIR, 'mips-release', MIPS32_CROSS_TARGET, 'libc', 'el') |
| +LD_SCRIPT_TRUSTED = J(BASE_DIR, 'ld_script_mips_trusted') |
| + |
| +BASE_CC = ("%s-%%s -Werror -O2 %%s " |
| + "-fdiagnostics-show-option " |
| + "-I%s/usr/include -march=mips32r2 -EL " |
| + "-Wl,-EL -Wl,-T -Wl,%s") % (CODE_SOURCERY_PREFIX, |
| + CODE_SOURCERY_JAIL, |
| + LD_SCRIPT_TRUSTED) |
| + |
| +# Shell exports |
| +MIPS32_CC = BASE_CC % ('gcc', '-std=gnu99') |
| +MIPS32_CXX = BASE_CC % ('g++', '') |
| +MIPS32_LD = '%s-ld' % CODE_SOURCERY_PREFIX |
| +MIPS32_LINKFLAGS = '' |
| +MIPS32_LIB_DIR = J(CODE_SOURCERY_JAIL, 'usr', 'lib') |
| +MIPS32_EMU = J(BASE_DIR, 'run_under_qemu_mips32') |
| + |
| +# Don't actually emit BASE_CC |
| +del BASE_CC |
| + |
| +shell_exports = [ |
| + 'NACL_ROOT', |
| + 'MIPS32_CC', |
| + 'MIPS32_CXX', |
| + 'MIPS32_LD', |
| + 'MIPS32_LINKFLAGS', |
| + 'MIPS32_LIB_DIR', |
| + 'MIPS32_EMU' |
| +] |
| + |
| +# Store the values into a dict |
| +mips32_env = {} |
| +for k,v in dict(globals()).iteritems(): |
| + if k.startswith('_') or not isinstance(v, str): |
| + continue |
| + mips32_env[k] = v |
| + |
| +if __name__ == '__main__': |
| + # Print the values out, for use in a shell script |
| + for k,v in mips32_env.iteritems(): |
| + if k in shell_exports: |
| + prefix = 'export ' |
| + else: |
| + prefix = '' |
| + print '%s%s="%s";' % (prefix,k,v) |