Index: pydir/build-runtime.py |
diff --git a/pydir/build-runtime.py b/pydir/build-runtime.py |
index ad38a2ed62757fb67fcd610753e6350b3b8bda8e..8189d25253a69597e07e3f45371ec55de2ff82d7 100755 |
--- a/pydir/build-runtime.py |
+++ b/pydir/build-runtime.py |
@@ -24,7 +24,7 @@ def Translate(ll_files, extra_args, obj, verbose): |
'-filetype=obj', |
'-bitcode-format=llvm', |
'-o', obj |
- ] + extra_args, echo=verbose) |
+ ] + extra_args, echo=verbose) |
shellcmd(['le32-nacl-objcopy', |
'--strip-symbol=nacl_tp_tdb_offset', |
'--strip-symbol=nacl_tp_tls_offset', |
@@ -52,15 +52,15 @@ def MakeRuntimesForTarget(target_info, ll_files, |
['-mtriple=' + target_info.triple] + target_info.llc_flags, |
TmpFile('{dir}/szrt_native_{target}.tmp.o'), |
verbose) |
- # Compile srcdir/szrt_profiler.c to tempdir/szrt_profiler_native_{target}.o |
+ # Compile srcdir/szrt_profiler.c to tempdir/szrt_profiler_native_{target}.o. |
shellcmd(['clang', |
'-O2', |
'-target=' + target_info.triple, |
'-c', |
'{srcdir}/szrt_profiler.c'.format(srcdir=srcdir), |
'-o', TmpFile('{dir}/szrt_profiler_native_{target}.o') |
- ], echo=verbose) |
- # Writing full szrt_native_{target}.o. |
+ ], echo=verbose) |
+ # Write full szrt_native_{target}.o. |
PartialLink([TmpFile('{dir}/szrt_native_{target}.tmp.o'), |
TmpFile('{dir}/szrt_profiler_native_{target}.o')], |
['-m {ld_emu}'.format(ld_emu=target_info.ld_emu)], |
@@ -76,6 +76,28 @@ def MakeRuntimesForTarget(target_info, ll_files, |
OutFile('{rtdir}/szrt_sb_{target}.o'), |
verbose) |
+ # Translate tempdir/szrt.ll and tempdir/szrt_ll.ll to |
+ # szrt_nonsfi_{target}.tmp.o. |
+ Translate(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) |
+ # Assemble srcdir/szrt_asm_{target}.s to tempdir/szrt_asm_{target}.o. |
+ shellcmd(['llvm-mc', |
+ '-triple=' + target_info.triple, |
+ '-filetype=obj', |
+ '-o', TmpFile('{dir}/szrt_asm_{target}.o'), |
+ '{srcdir}/szrt_asm_{target}.s'.format( |
+ srcdir=srcdir, target=target_info.target) |
+ ], echo=verbose) |
+ # Write full szrt_nonsfi_{target}.o. |
+ PartialLink([TmpFile('{dir}/szrt_nonsfi_{target}.tmp.o'), |
+ TmpFile('{dir}/szrt_asm_{target}.o')], |
+ ['-m {ld_emu}'.format(ld_emu=target_info.ld_emu)], |
+ OutFile('{rtdir}/szrt_nonsfi_{target}.o'), |
+ verbose) |
+ |
def main(): |
"""Build the Subzero runtime support library for all architectures. |