OLD | NEW |
1 #! -*- python -*- | 1 #! -*- python -*- |
2 # Copyright (c) 2012 The Native Client Authors. All rights reserved. | 2 # Copyright (c) 2012 The Native Client Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 import atexit | 6 import atexit |
7 import json | 7 import json |
8 import os | 8 import os |
9 import platform | 9 import platform |
10 import re | 10 import re |
(...skipping 3543 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3554 nacl_irt_env.Append(LINKFLAGS=['--pnacl-disable-abi-check']) | 3554 nacl_irt_env.Append(LINKFLAGS=['--pnacl-disable-abi-check']) |
3555 | 3555 |
3556 # The IRT is C only, don't link with the C++ linker so that it doesn't | 3556 # The IRT is C only, don't link with the C++ linker so that it doesn't |
3557 # start depending on the C++ standard library and (in the case of | 3557 # start depending on the C++ standard library and (in the case of |
3558 # libc++) pthread. | 3558 # libc++) pthread. |
3559 nacl_irt_env.Replace(LINK=(nacl_irt_env['LINK']. | 3559 nacl_irt_env.Replace(LINK=(nacl_irt_env['LINK']. |
3560 replace('pnacl-clang++', 'pnacl-clang'))) | 3560 replace('pnacl-clang++', 'pnacl-clang'))) |
3561 nacl_irt_env.Replace(LINK=(nacl_irt_env['LINK']. | 3561 nacl_irt_env.Replace(LINK=(nacl_irt_env['LINK']. |
3562 replace('nacl-clang++', 'nacl-clang'))) | 3562 replace('nacl-clang++', 'nacl-clang'))) |
3563 | 3563 |
3564 | |
3565 # All IRT code must avoid direct use of the TLS ABI register, which | |
3566 # is reserved for user TLS. Instead, ensure all TLS accesses use a | |
3567 # call to __nacl_read_tp, which the IRT code overrides to segregate | |
3568 # IRT-private TLS from user TLS. This only applies to mips now, on | |
3569 # other platforms we modify the TLS register through tls_edit as a | |
3570 # post process. | |
3571 if nacl_irt_env.Bit('build_mips32'): | |
3572 nacl_irt_env.Append(LINKFLAGS=['-Wt,-mtls-use-call']) | |
3573 | |
3574 # TODO(mcgrathr): Clean up uses of these methods. | 3564 # TODO(mcgrathr): Clean up uses of these methods. |
3575 def AddLibraryDummy(env, nodes): | 3565 def AddLibraryDummy(env, nodes): |
3576 return nodes | 3566 return nodes |
3577 nacl_irt_env.AddMethod(AddLibraryDummy, 'AddLibraryToSdk') | 3567 nacl_irt_env.AddMethod(AddLibraryDummy, 'AddLibraryToSdk') |
3578 | 3568 |
3579 def AddObjectInternal(env, nodes): | 3569 def AddObjectInternal(env, nodes): |
3580 return env.Replicate('${LIB_DIR}', nodes) | 3570 return env.Replicate('${LIB_DIR}', nodes) |
3581 nacl_env.AddMethod(AddObjectInternal, 'AddObjectToSdk') | 3571 nacl_env.AddMethod(AddObjectInternal, 'AddObjectToSdk') |
3582 nacl_irt_env.AddMethod(AddObjectInternal, 'AddObjectToSdk') | 3572 nacl_irt_env.AddMethod(AddObjectInternal, 'AddObjectToSdk') |
3583 | 3573 |
(...skipping 466 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4050 nacl_env.ValidateSdk() | 4040 nacl_env.ValidateSdk() |
4051 | 4041 |
4052 if BROKEN_TEST_COUNT > 0: | 4042 if BROKEN_TEST_COUNT > 0: |
4053 msg = "There are %d broken tests." % BROKEN_TEST_COUNT | 4043 msg = "There are %d broken tests." % BROKEN_TEST_COUNT |
4054 if GetOption('brief_comstr'): | 4044 if GetOption('brief_comstr'): |
4055 msg += " Add --verbose to the command line for more information." | 4045 msg += " Add --verbose to the command line for more information." |
4056 print msg | 4046 print msg |
4057 | 4047 |
4058 # separate warnings from actual build output | 4048 # separate warnings from actual build output |
4059 Banner('B U I L D - O U T P U T:') | 4049 Banner('B U I L D - O U T P U T:') |
OLD | NEW |