Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(423)

Unified Diff: pydir/build-runtime.py

Issue 2085303002: Subzero, MIPS32: Cross-testing enabled for MIPS32 (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Fix typo for srlv opcode Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Makefile.standalone ('k') | pydir/crosstest.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pydir/build-runtime.py
diff --git a/pydir/build-runtime.py b/pydir/build-runtime.py
index caed29722f285d69ea552ac3d1f414aad864e5c8..622235bbf65e5bc13aa332fea6356a7eaedd2852 100755
--- a/pydir/build-runtime.py
+++ b/pydir/build-runtime.py
@@ -9,27 +9,25 @@ import targets
from utils import FindBaseNaCl, GetObjcopyCmd, shellcmd
-def Translate(ll_files, extra_args, obj, verbose):
+def Translate(ll_files, extra_args, obj, verbose, target):
"""Translate a set of input bitcode files into a single object file.
Use pnacl-llc to translate textual bitcode input ll_files into object file
obj, using extra_args as the architectural flags.
"""
+ externalize = [] if target == 'mips32' else ['-externalize']
shellcmd(['cat'] + ll_files + ['|',
'pnacl-llc',
- '-externalize',
'-function-sections',
'-O2',
'-filetype=obj',
'-bitcode-format=llvm',
- '-arm-enable-dwarf-eh=1',
'-o', obj
- ] + extra_args, echo=verbose)
- shellcmd([GetObjcopyCmd(),
- '--strip-symbol=nacl_tp_tdb_offset',
- '--strip-symbol=nacl_tp_tls_offset',
- obj
- ], echo=verbose)
+ ] + extra_args + externalize, echo=verbose)
+ strip_syms = [] if target == 'mips32' else ['nacl_tp_tdb_offset',
+ 'nacl_tp_tls_offset']
+ shellcmd([GetObjcopyCmd(target), obj] +
+ [('--strip-symbol=' + sym) for sym in strip_syms])
def PartialLink(obj_files, extra_args, lib, verbose):
@@ -41,8 +39,10 @@ def PartialLink(obj_files, extra_args, lib, verbose):
def MakeRuntimesForTarget(target_info, ll_files,
- srcdir, tempdir, rtdir, verbose):
+ srcdir, tempdir, rtdir, verbose, excluded_targets):
"""Builds native, sandboxed, and nonsfi runtimes for the given target."""
+ if target_info.target in excluded_targets:
+ return
# File-mangling helper functions.
def TmpFile(template):
return template.format(dir=tempdir, target=target_info.target)
@@ -56,7 +56,7 @@ def MakeRuntimesForTarget(target_info, ll_files,
Translate(ll_files,
['-mtriple=' + target_info.triple] + target_info.llc_flags,
TmpFile('{dir}/szrt_native_{target}.tmp.o'),
- verbose)
+ verbose, target_info.target)
# Compile srcdir/szrt_profiler.c to
# tempdir/szrt_profiler_native_{target}.o.
shellcmd(['clang',
@@ -81,7 +81,7 @@ def MakeRuntimesForTarget(target_info, ll_files,
['-m {ld_emu}'.format(ld_emu=target_info.ld_emu)],
OutFile('{rtdir}/szrt_native_{target}.o'),
verbose)
- shellcmd([GetObjcopyCmd(),
+ shellcmd([GetObjcopyCmd(target_info.target),
'--strip-symbol=NATIVE',
OutFile('{rtdir}/szrt_native_{target}.o')])
# Compile srcdir/szrt_asan.c to szrt_asan_{target}.o
@@ -103,7 +103,7 @@ def MakeRuntimesForTarget(target_info, ll_files,
['-mtriple=' + targets.ConvertTripleToNaCl(target_info.triple)] +
target_info.llc_flags,
TmpFile('{dir}/szrt_sb_{target}.tmp.o'),
- verbose)
+ verbose,target_info.target)
# Assemble srcdir/szrt_asm_{target}.s to tempdir/szrt_asm_{target}.o.
shellcmd(['llvm-mc',
'-triple=' + targets.ConvertTripleToNaCl(target_info.triple),
@@ -118,7 +118,7 @@ def MakeRuntimesForTarget(target_info, ll_files,
['-m {ld_emu}'.format(ld_emu=target_info.sb_emu)],
OutFile('{rtdir}/szrt_sb_{target}.o'),
verbose)
- shellcmd([GetObjcopyCmd(),
+ shellcmd([GetObjcopyCmd(target_info.target),
'--strip-symbol=NACL',
OutFile('{rtdir}/szrt_sb_{target}.o')])
@@ -131,7 +131,7 @@ def MakeRuntimesForTarget(target_info, ll_files,
['-mtriple=' + target_info.triple] + target_info.llc_flags +
['-relocation-model=pic', '-force-tls-non-pic', '-malign-double'],
TmpFile('{dir}/szrt_nonsfi_{target}.tmp.o'),
- verbose)
+ verbose, target_info.target)
# Assemble srcdir/szrt_asm_{target}.s to tempdir/szrt_asm_{target}.o.
shellcmd(['llvm-mc',
'-triple=' + target_info.triple, '--defsym NONSFI=1',
@@ -146,7 +146,7 @@ def MakeRuntimesForTarget(target_info, ll_files,
['-m {ld_emu}'.format(ld_emu=target_info.ld_emu)],
OutFile('{rtdir}/szrt_nonsfi_{target}.o'),
verbose)
- shellcmd([GetObjcopyCmd(),
+ shellcmd([GetObjcopyCmd(target_info.target),
'--strip-symbol=NONSFI',
OutFile('{rtdir}/szrt_nonsfi_{target}.o')])
@@ -172,6 +172,9 @@ def main():
'{root}/toolchain/linux_x86/pnacl_newlib_raw'
).format(root=nacl_root),
help='Path to PNaCl toolchain binaries.')
+ argparser.add_argument('--exclude-target', dest='excluded_targets',
+ default=[], action='append',
+ help='Target whose runtime should not be built')
args = argparser.parse_args()
os.environ['PATH'] = ('{root}/bin{sep}{path}'
).format(root=args.pnacl_root, sep=os.pathsep, path=os.environ['PATH'])
@@ -206,11 +209,17 @@ def main():
'{srcdir}/szrt_ll.ll'.format(srcdir=srcdir)]
MakeRuntimesForTarget(targets.X8632Target, ll_files,
- srcdir, tempdir, rtdir, args.verbose)
+ srcdir, tempdir, rtdir, args.verbose,
+ args.excluded_targets)
MakeRuntimesForTarget(targets.X8664Target, ll_files,
- srcdir, tempdir, rtdir, args.verbose)
+ srcdir, tempdir, rtdir, args.verbose,
+ args.excluded_targets)
MakeRuntimesForTarget(targets.ARM32Target, ll_files,
- srcdir, tempdir, rtdir, args.verbose)
+ srcdir, tempdir, rtdir, args.verbose,
+ args.excluded_targets)
+ MakeRuntimesForTarget(targets.MIPS32Target, ll_files,
+ srcdir, tempdir, rtdir, args.verbose,
+ args.excluded_targets)
finally:
try:
« no previous file with comments | « Makefile.standalone ('k') | pydir/crosstest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698