OLD | NEW |
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 { | 5 { |
6 'includes': [ | 6 'includes': [ |
7 '../../../build/common.gypi', | 7 '../../../build/common.gypi', |
8 ], | 8 ], |
9 'variables': { | 9 'variables': { |
10 'irt_sources': [ | 10 'irt_sources': [ |
(...skipping 25 matching lines...) Expand all Loading... |
36 'irt_random.c', | 36 'irt_random.c', |
37 'irt_pnacl_translator.c', | 37 'irt_pnacl_translator.c', |
38 # support_srcs | 38 # support_srcs |
39 # We also get nc_init_private.c, nc_thread.c and nc_tsd.c via | 39 # We also get nc_init_private.c, nc_thread.c and nc_tsd.c via |
40 # #includes of .c files. | 40 # #includes of .c files. |
41 '../pthread/nc_mutex.c', | 41 '../pthread/nc_mutex.c', |
42 '../pthread/nc_condvar.c', | 42 '../pthread/nc_condvar.c', |
43 '../nacl/sys_private.c', | 43 '../nacl/sys_private.c', |
44 '../valgrind/dynamic_annotations.c', | 44 '../valgrind/dynamic_annotations.c', |
45 ], | 45 ], |
| 46 # On x86-64 we build the IRT with sandbox base-address hiding. This means that |
| 47 # all of its components must be built with LLVM's assembler. Currently the |
| 48 # unwinder library is built with nacl-gcc and so does not use base address |
| 49 # hiding. The IRT does not use exceptions, so we do not actually need the |
| 50 # unwinder at all. To prevent it from being linked into the IRT, we provide |
| 51 # stub implementations of its functions that are referenced from libc++abi |
| 52 # (which is build with exception handling enabled) and from crtbegin.c. |
| 53 'stub_sources': [ |
| 54 '../../../pnacl/support/bitcode/unwind_stubs.c', |
| 55 'frame_info_stubs.c', |
| 56 ], |
46 'irt_nonbrowser': [ | 57 'irt_nonbrowser': [ |
47 'irt_core_resource.c', | 58 'irt_core_resource.c', |
48 'irt_entry_core.c', | 59 'irt_entry_core.c', |
49 ], | 60 ], |
50 }, | 61 }, |
51 'targets': [ | 62 'targets': [ |
52 { | 63 { |
53 'target_name': 'irt_core_nexe', | 64 'target_name': 'irt_core_nexe', |
54 'type': 'none', | 65 'type': 'none', |
55 'variables': { | 66 'variables': { |
(...skipping 26 matching lines...) Expand all Loading... |
82 }, | 93 }, |
83 { | 94 { |
84 'target_name': 'irt_browser_lib', | 95 'target_name': 'irt_browser_lib', |
85 'type': 'none', | 96 'type': 'none', |
86 'variables': { | 97 'variables': { |
87 'nlib_target': 'libirt_browser.a', | 98 'nlib_target': 'libirt_browser.a', |
88 'build_glibc': 0, | 99 'build_glibc': 0, |
89 'build_newlib': 1, | 100 'build_newlib': 1, |
90 'build_irt': 1, | 101 'build_irt': 1, |
91 }, | 102 }, |
92 'sources': ['<@(irt_sources)'], | 103 'sources': ['<@(irt_sources)','<@(stub_sources)'], |
| 104 'conditions': [ |
| 105 # Disable stub sources on ARM |
| 106 # TODO(dschuff): remove this when we switch to arm-nacl-clang |
| 107 ['target_arch=="arm"', { |
| 108 'variables': { |
| 109 'stub_sources' : [] |
| 110 } |
| 111 }], |
| 112 ], |
93 'dependencies': [ | 113 'dependencies': [ |
94 '<(DEPTH)/native_client/tools.gyp:prep_toolchain', | 114 '<(DEPTH)/native_client/tools.gyp:prep_toolchain', |
95 '<(DEPTH)/native_client/src/untrusted/nacl/nacl.gyp:nacl_lib_newlib', | 115 '<(DEPTH)/native_client/src/untrusted/nacl/nacl.gyp:nacl_lib_newlib', |
96 ], | 116 ], |
97 }, | 117 }, |
98 ], | 118 ], |
99 } | 119 } |
OLD | NEW |