1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
10 '../build/common_untrusted.gypi',
13 ['disable_nacl==0 and disable_nacl_untrusted==0', {
16 # nacl_helper_nonsfi is similar to nacl_helper (built in nacl.gyp)
17 # but for the NaCl plugin in Non-SFI mode.
18 # This binary is built using the PNaCl toolchain, but it is native
19 # linux binary and will run on Linux directly.
20 # Most library code can be shared with the one for untrusted build
21 # (i.e. the one for irt.nexe built by the NaCl/PNaCl toolchain), but
22 # as nacl_helper_nonsfi runs on Linux, there are some differences,
23 # such as MessageLoopForIO (which is based on libevent in Non-SFI
24 # mode) or ipc_channel implementation.
25 # Because of the toolchain, in both builds, OS_NACL macro (derived
26 # from __native_client__ macro) is defined. Code can test whether
27 # __native_client_nonsfi__ is #defined in order to determine
28 # whether it is being compiled for SFI mode or Non-SFI mode.
30 # Currently, nacl_helper_nonsfi is under development and the binary
31 # does nothing (i.e. it has only empty main(), now).
32 # TODO(crbug.com/358465): Implement it then switch nacl_helper in
33 # Non-SFI mode to nacl_helper_nonsfi.
34 'target_name': 'nacl_helper_nonsfi',
37 'nacl_untrusted_build': 1,
38 'nexe_target': 'nacl_helper_nonsfi',
39 # Rename the output binary file to nacl_helper_nonsfi and put it
40 # directly under out/{Debug,Release}/.
41 'out_newlib32_nonsfi': '<(PRODUCT_DIR)/nacl_helper_nonsfi',
42 'out_newlib_arm_nonsfi': '<(PRODUCT_DIR)/nacl_helper_nonsfi',
47 'build_pnacl_newlib': 0,
48 'build_nonsfi_helper': 1,
51 'nacl/common/nacl_messages.cc',
52 'nacl/common/nacl_switches.cc',
53 'nacl/common/nacl_types.cc',
54 'nacl/common/nacl_types_param_traits.cc',
55 'nacl/loader/nacl_helper_linux.cc',
56 'nacl/loader/nacl_trusted_listener.cc',
57 'nacl/loader/nonsfi/nonsfi_listener.cc',
58 'nacl/loader/nonsfi/nonsfi_main.cc',
63 '-lcommand_buffer_client_nacl',
64 '-lcommand_buffer_common_nacl',
65 '-lcontent_common_nacl_nonsfi',
67 '-levent_nacl_nonsfi',
69 '-lgles2_cmd_helper_nacl',
70 '-lgles2_implementation_nacl',
74 '-llatency_info_nacl',
75 '-lnacl_helper_nonsfi_sandbox',
79 '-lppapi_shared_nacl',
80 '-lsandbox_linux_nacl_nonsfi',
81 '-lshared_memory_support_nacl',
86 ['target_arch=="ia32" or target_arch=="x64"', {
87 'extra_deps_newlib32_nonsfi': [
88 '>(tc_lib_dir_nonsfi_helper32)/libbase_nacl_nonsfi.a',
89 '>(tc_lib_dir_nonsfi_helper32)/libcommand_buffer_client_nacl.a',
90 '>(tc_lib_dir_nonsfi_helper32)/libcommand_buffer_common_nacl.a',
91 '>(tc_lib_dir_nonsfi_helper32)/libcontent_common_nacl_nonsfi.a',
92 '>(tc_lib_dir_nonsfi_helper32)/libelf_loader.a',
93 '>(tc_lib_dir_nonsfi_helper32)/libevent_nacl_nonsfi.a',
94 '>(tc_lib_dir_nonsfi_helper32)/libgio.a',
95 '>(tc_lib_dir_nonsfi_helper32)/libgles2_cmd_helper_nacl.a',
96 '>(tc_lib_dir_nonsfi_helper32)/libgles2_implementation_nacl.a',
97 '>(tc_lib_dir_nonsfi_helper32)/libgles2_utils_nacl.a',
98 '>(tc_lib_dir_nonsfi_helper32)/libgpu_ipc_nacl.a',
99 '>(tc_lib_dir_nonsfi_helper32)/libipc_nacl_nonsfi.a',
100 '>(tc_lib_dir_nonsfi_helper32)/liblatency_info_nacl.a',
101 '>(tc_lib_dir_nonsfi_helper32)/libnacl_helper_nonsfi_sandbox.a',
102 '>(tc_lib_dir_nonsfi_helper32)/libplatform.a',
103 '>(tc_lib_dir_nonsfi_helper32)/libppapi_ipc_nacl.a',
104 '>(tc_lib_dir_nonsfi_helper32)/libppapi_proxy_nacl.a',
105 '>(tc_lib_dir_nonsfi_helper32)/libppapi_shared_nacl.a',
106 '>(tc_lib_dir_nonsfi_helper32)/libsandbox_linux_nacl_nonsfi.a',
107 '>(tc_lib_dir_nonsfi_helper32)/libshared_memory_support_nacl.a',
108 '>(tc_lib_dir_nonsfi_helper32)/libtracing_nacl.a',
111 ['target_arch=="arm"', {
112 'extra_deps_newlib_arm_nonsfi': [
113 '>(tc_lib_dir_nonsfi_helper_arm)/libbase_nacl_nonsfi.a',
114 '>(tc_lib_dir_nonsfi_helper_arm)/libcommand_buffer_client_nacl.a',
115 '>(tc_lib_dir_nonsfi_helper_arm)/libcommand_buffer_common_nacl.a',
116 '>(tc_lib_dir_nonsfi_helper_arm)/libcontent_common_nacl_nonsfi.a',
117 '>(tc_lib_dir_nonsfi_helper_arm)/libelf_loader.a',
118 '>(tc_lib_dir_nonsfi_helper_arm)/libevent_nacl_nonsfi.a',
119 '>(tc_lib_dir_nonsfi_helper_arm)/libgio.a',
120 '>(tc_lib_dir_nonsfi_helper_arm)/libgles2_cmd_helper_nacl.a',
121 '>(tc_lib_dir_nonsfi_helper_arm)/libgles2_implementation_nacl.a',
122 '>(tc_lib_dir_nonsfi_helper_arm)/libgles2_utils_nacl.a',
123 '>(tc_lib_dir_nonsfi_helper_arm)/libgpu_ipc_nacl.a',
124 '>(tc_lib_dir_nonsfi_helper_arm)/libipc_nacl_nonsfi.a',
125 '>(tc_lib_dir_nonsfi_helper_arm)/liblatency_info_nacl.a',
126 '>(tc_lib_dir_nonsfi_helper_arm)/libnacl_helper_nonsfi_sandbox.a',
127 '>(tc_lib_dir_nonsfi_helper_arm)/libplatform.a',
128 '>(tc_lib_dir_nonsfi_helper_arm)/libppapi_ipc_nacl.a',
129 '>(tc_lib_dir_nonsfi_helper_arm)/libppapi_proxy_nacl.a',
130 '>(tc_lib_dir_nonsfi_helper_arm)/libppapi_shared_nacl.a',
131 '>(tc_lib_dir_nonsfi_helper_arm)/libsandbox_linux_nacl_nonsfi.a',
132 '>(tc_lib_dir_nonsfi_helper_arm)/libshared_memory_support_nacl.a',
133 '>(tc_lib_dir_nonsfi_helper_arm)/libtracing_nacl.a',
139 '../base/base_nacl.gyp:base_nacl_nonsfi',
140 '../content/content_nacl_nonsfi.gyp:content_common_nacl_nonsfi',
141 '../ipc/ipc_nacl.gyp:ipc_nacl_nonsfi',
142 '../native_client/src/nonsfi/irt/irt.gyp:nacl_sys_private',
143 '../native_client/src/nonsfi/loader/loader.gyp:elf_loader',
144 '../native_client/src/untrusted/nacl/nacl.gyp:nacl_lib_newlib',
145 '../ppapi/ppapi_proxy_nacl.gyp:ppapi_proxy_nacl',
146 '../sandbox/linux/sandbox_linux_nacl_nonsfi.gyp:sandbox_linux_nacl_nonsfi',
147 'nacl_helper_nonsfi_sandbox',
152 'target_name': 'nacl_helper_nonsfi_sandbox',
155 'nacl_untrusted_build': 1,
156 'nlib_target': 'libnacl_helper_nonsfi_sandbox.a',
161 'build_pnacl_newlib': 0,
162 'build_nonsfi_helper': 1,
165 'nacl/loader/nonsfi/nonsfi_sandbox.cc',
166 'nacl/loader/sandbox_linux/nacl_sandbox_linux.cc',
170 '../base/base_nacl.gyp:base_nacl_nonsfi',
171 '../content/content_nacl_nonsfi.gyp:content_common_nacl_nonsfi',
172 '../sandbox/linux/sandbox_linux_nacl_nonsfi.gyp:sandbox_linux_nacl_nonsfi',
178 ['disable_nacl==0 and disable_nacl_untrusted==0 and enable_nacl_nonsfi_test==1', {
181 'target_name': 'nacl_helper_nonsfi_unittests_main',
184 'nacl_untrusted_build': 1,
185 'nexe_target': 'nacl_helper_nonsfi_unittests',
186 # Rename the output binary file to nacl_helper_nonsfi_unittests
187 # and put it directly under out/{Debug,Release}/, so that this is
188 # in the standard location, for running on the buildbots.
189 'out_newlib32_nonsfi': '<(PRODUCT_DIR)/nacl_helper_nonsfi_unittests_main',
190 'out_newlib_arm_nonsfi': '<(PRODUCT_DIR)/nacl_helper_nonsfi_unitttests_main',
195 'build_pnacl_newlib': 0,
196 'build_nonsfi_helper': 1,
199 'nacl/loader/nonsfi/nonsfi_sandbox_sigsys_unittest.cc',
200 'nacl/loader/nonsfi/nonsfi_sandbox_unittest.cc',
201 'nacl/loader/nonsfi/run_all_unittests.cc',
205 '-lbase_nacl_nonsfi',
206 '-lcontent_common_nacl_nonsfi',
207 '-levent_nacl_nonsfi',
210 '-lnacl_helper_nonsfi_sandbox',
212 '-lsandbox_linux_nacl_nonsfi',
213 '-lsandbox_linux_test_utils_nacl_nonsfi',
214 '-ltest_support_base_nacl_nonsfi',
218 ['target_arch=="ia32" or target_arch=="x64"', {
219 'extra_deps_newlib32_nonsfi': [
220 '>(tc_lib_dir_nonsfi_helper32)/libbase_nacl_nonsfi.a',
221 '>(tc_lib_dir_nonsfi_helper32)/libcontent_common_nacl_nonsfi.a',
222 '>(tc_lib_dir_nonsfi_helper32)/libevent_nacl_nonsfi.a',
223 '>(tc_lib_dir_nonsfi_helper32)/libgio.a',
224 '>(tc_lib_dir_nonsfi_helper32)/libgtest_nacl.a',
225 '>(tc_lib_dir_nonsfi_helper32)/libnacl_helper_nonsfi_sandbox.a',
226 '>(tc_lib_dir_nonsfi_helper32)/libplatform.a',
227 '>(tc_lib_dir_nonsfi_helper32)/libsandbox_linux_nacl_nonsfi.a',
228 '>(tc_lib_dir_nonsfi_helper32)/libsandbox_linux_test_utils_nacl_nonsfi.a',
229 '>(tc_lib_dir_nonsfi_helper32)/libtest_support_base_nacl_nonsfi.a',
232 ['target_arch=="arm"', {
233 'extra_deps_newlib_arm_nonsfi': [
234 '>(tc_lib_dir_nonsfi_helper_arm)/libbase_nacl_nonsfi.a',
235 '>(tc_lib_dir_nonsfi_helper_arm)/libcontent_common_nacl_nonsfi.a',
236 '>(tc_lib_dir_nonsfi_helper_arm)/libevent_nacl_nonsfi.a',
237 '>(tc_lib_dir_nonsfi_helper_arm)/libgio.a',
238 '>(tc_lib_dir_nonsfi_helper_arm)/libgtest_nacl.a',
239 '>(tc_lib_dir_nonsfi_helper_arm)/libnacl_helper_nonsfi_sandbox.a',
240 '>(tc_lib_dir_nonsfi_helper_arm)/libplatform.a',
241 '>(tc_lib_dir_nonsfi_helper_arm)/libsandbox_linux_nacl_nonsfi.a',
242 '>(tc_lib_dir_nonsfi_helper_arm)/libsandbox_linux_test_utils_nacl_nonsfi.a',
243 '>(tc_lib_dir_nonsfi_helper_arm)/libtest_support_base_nacl_nonsfi.a',
250 '../base/base_nacl.gyp:base_nacl_nonsfi',
251 '../base/base_nacl.gyp:test_support_base_nacl_nonsfi',
252 '../content/content_nacl_nonsfi.gyp:content_common_nacl_nonsfi',
253 '../native_client/src/nonsfi/irt/irt.gyp:nacl_sys_private',
254 '../native_client/src/untrusted/nacl/nacl.gyp:nacl_lib_newlib',
255 '../sandbox/linux/sandbox_linux_nacl_nonsfi.gyp:sandbox_linux_nacl_nonsfi',
256 '../sandbox/linux/sandbox_linux_nacl_nonsfi.gyp:sandbox_linux_test_utils_nacl_nonsfi',
257 '../testing/gtest_nacl.gyp:gtest_nacl',
258 'nacl_helper_nonsfi_sandbox',
264 ['disable_nacl==0 and disable_nacl_untrusted==0 and enable_nacl_nonsfi_test==1 and test_isolation_mode!="noop"', {
267 'target_name': 'nacl_helper_nonsfi_unittests_run',
270 'nacl.gyp:nacl_helper_nonsfi_unittests',
273 '../build/isolate.gypi',
276 'nacl_helper_nonsfi_unittests.isolate',