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
4 # found in the LICENSE file.
11 'posix/nacl_syscall_impl.c'
16 'win/nacl_syscall_impl.c'
18 'msvs_cygwin_shell': 0,
23 '../../../build/common.gypi',
27 'target_base': 'none',
29 'target_conditions': [
30 ['target_base=="sel"', {
37 'nacl_bootstrap_channel_error_reporter.c',
39 'nacl_desc_effector_ldr.c',
40 'nacl_desc_postmessage.c',
42 'nacl_error_log_hook.c',
44 'nacl_kernel_service.c',
46 'nacl_reverse_host_interface.c',
47 'nacl_reverse_quota_interface.c',
48 'nacl_runtime_host_interface.c',
49 'nacl_secure_service.c',
50 'nacl_signal_common.c',
51 'nacl_stack_safety.c',
52 'nacl_syscall_common.c',
53 'nacl_syscall_hook.c',
55 'nacl_valgrind_hooks.c',
56 'name_service/default_name_service.c',
57 'name_service/name_service.c',
61 'sel_ldr_thread_interface.c',
62 # TODO(mseaborn): Move sel_main_chrome.c to the
63 # "sel_main_chrome" library once Chromium is changed to
64 # depend on that rather than on "sel".
69 'sel_validate_image.c',
75 'sys_list_mappings.c',
78 'thread_suspension_common.c',
79 'thread_suspension_unwind.c',
82 # For generated header files from the x86-64 validator,
83 # e.g. nacl_disallows.h.
84 '<(SHARED_INTERMEDIATE_DIR)',
91 'action_name': 'nacl_syscall_handler',
93 'nacl_syscall_handlers_gen.py',
97 # TODO(gregoryd): find out how to generate a file
98 # in such a location that can be found in both
99 # NaCl and Chrome builds.
100 ['python', 'nacl_syscall_handlers_gen.py',
101 '-i', '<@(syscall_handler)',
102 '-o', '<@(_outputs)'],
104 'msvs_cygwin_shell': 0,
107 '<(INTERMEDIATE_DIR)/nacl_syscall_handlers.c',
109 'process_outputs_as_sources': 1,
110 'message': 'Creating nacl_syscall_handlers.c',
116 'osx/crash_filter.c',
117 'osx/mach_exception_handler.c',
118 'osx/mach_thread_map.c',
120 'osx/nacl_thread_nice.c',
121 'osx/outer_sandbox.c',
122 'osx/thread_suspension.c',
123 'posix/addrspace_teardown.c',
124 'posix/sel_memory.c',
125 'posix/x86/sel_segments.c',
129 'action_name': 'mig_exc_generation',
131 'gen_dir': '<(INTERMEDIATE_DIR)/native_client/src/trusted/service_runtime',
135 '$(SDKROOT)/usr/include/mach/exc.defs',
138 '<(gen_dir)/nacl_exc.h',
139 '<(gen_dir)/nacl_exc_server.c',
141 'process_outputs_as_sources': 1,
143 'python', '<@(_inputs)', '<@(_outputs)',
145 'message': 'Generating mig plumbing for exc.defs',
149 '<(INTERMEDIATE_DIR)',
154 'win/addrspace_teardown.c',
155 'win/debug_exception_handler.c',
156 'win/debug_exception_handler_standalone.c',
158 'win/nacl_thread_nice.c',
160 'win/sel_segments.c',
161 'win/thread_handle_map.c',
164 # TODO(gregoryd): move arm-specific stuff into a separate gyp file.
165 ['target_arch=="arm"', {
167 'arch/arm/nacl_app.c',
168 'arch/arm/nacl_switch_to_app_arm.c',
170 'arch/arm/nacl_tls.c',
171 'arch/arm/sel_ldr_arm.c',
172 'arch/arm/sel_addrspace_arm.c',
173 'arch/arm/nacl_switch.S',
174 'arch/arm/nacl_syscall.S',
175 'arch/arm/tramp_arm.S',
176 'linux/nacl_signal_arm.c',
179 ['target_arch=="mipsel"', {
181 'arch/mips/nacl_app.c',
182 'arch/mips/nacl_switch.S',
183 'arch/mips/nacl_switch_to_app_mips.c',
184 'arch/mips/nacl_syscall.S',
185 'arch/mips/nacl_tls.c',
186 'arch/mips/sel_addrspace_mips.c',
187 'arch/mips/sel_ldr_mips.c',
188 'arch/mips/sel_rt.c',
189 'arch/mips/tramp_mips.S',
190 'linux/nacl_signal_mips.c',
193 ['OS=="linux" or OS=="android"', {
195 'linux/nacl_bootstrap_args.c',
196 'linux/nacl_thread_nice.c',
198 'linux/reserved_at_zero.c',
199 'linux/thread_suspension.c',
200 'posix/addrspace_teardown.c',
201 'posix/sel_memory.c',
204 ['target_arch=="ia32" or target_arch=="x64"', {
206 'linux/x86/nacl_ldt.c',
207 'posix/x86/sel_segments.c',
210 ['target_arch=="arm"', {
212 'linux/arm/sel_segments.c',
215 ['target_arch=="mipsel"', {
217 'linux/mips/sel_segments.c',
224 'posix/nacl_signal_stack.c',
225 'posix/sel_addrspace_posix.c',
230 'win/nacl_signal_stack.c',
231 'win/sel_addrspace_win.c',
232 'win/thread_suspension.c',
247 'target_name': 'sel',
248 'type': 'static_library',
250 'target_base': 'sel',
255 '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio',
256 '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform',
257 '<(DEPTH)/native_client/src/shared/srpc/srpc.gyp:nonnacl_srpc',
258 '<(DEPTH)/native_client/src/trusted/debug_stub/debug_stub.gyp:debug_stub',
259 '<(DEPTH)/native_client/src/trusted/desc/desc.gyp:nrd_xfer',
260 '<(DEPTH)/native_client/src/trusted/desc_cacheability/desc_cacheability.gyp:desc_cacheability',
261 '<(DEPTH)/native_client/src/trusted/fault_injection/fault_injection.gyp:nacl_fault_inject',
262 '<(DEPTH)/native_client/src/trusted/gio/gio_wrapped_desc.gyp:gio_wrapped_desc',
263 '<(DEPTH)/native_client/src/trusted/interval_multiset/interval_multiset.gyp:nacl_interval',
264 '<(DEPTH)/native_client/src/trusted/perf_counter/perf_counter.gyp:nacl_perf_counter',
265 '<(DEPTH)/native_client/src/trusted/platform_qualify/platform_qualify.gyp:platform_qual_lib',
266 '<(DEPTH)/native_client/src/trusted/manifest_name_service_proxy/manifest_name_service_proxy.gyp:manifest_proxy',
267 '<(DEPTH)/native_client/src/trusted/simple_service/simple_service.gyp:simple_service',
268 '<(DEPTH)/native_client/src/trusted/threading/threading.gyp:thread_interface',
269 '<(DEPTH)/native_client/src/trusted/validator/validator.gyp:validation_cache',
270 '<(DEPTH)/native_client/src/trusted/validator/validator.gyp:validators',
273 ['target_arch=="arm"', {
275 '<(DEPTH)/native_client/src/trusted/validator_arm/validator_arm.gyp:ncvalidate_arm_v2',
278 ['target_arch=="mipsel"', {
280 '<(DEPTH)/native_client/src/trusted/validator_mips/validator_mips.gyp:ncvalidate_mips',
283 ['target_arch=="ia32" or target_arch=="x64"', {
285 'arch/x86/service_runtime_x86.gyp:service_runtime_x86_common',
288 ['target_arch == "ia32"', {
290 'arch/x86_32/service_runtime_x86_32.gyp:service_runtime_x86_32',
291 '<(DEPTH)/native_client/src/trusted/validator_x86/validator_x86.gyp:nccopy_x86_32',
294 ['target_arch == "x64"', {
296 'arch/x86_64/service_runtime_x86_64.gyp:service_runtime_x86_64',
297 '<(DEPTH)/native_client/src/trusted/validator_x86/validator_x86.gyp:nccopy_x86_64',
300 ['OS=="linux" or OS=="FreeBSD" or OS=="android"', {
307 'target_name': 'nacl_error_code',
308 'type': 'static_library',
313 'target_name': 'env_cleanser',
314 'type': 'static_library',
319 'target_name': 'sel_main_chrome',
325 'target_name': 'sel_main',
326 'type': 'static_library',
334 'target_name': 'sel_ldr',
335 'type': 'executable',
338 '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform',
339 '<(DEPTH)/native_client/src/trusted/gio/gio_wrapped_desc.gyp:gio_wrapped_desc',
342 'nacl_test_injection_main.c',
346 ['OS=="linux" or OS=="android"', {
348 'linux/nacl_bootstrap.gyp:nacl_helper_bootstrap',
358 ['OS=="win" and target_arch=="ia32"', {
361 'target_name': 'sel64',
362 'type': 'static_library',
364 'target_base': 'sel',
370 '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio64',
371 '<(DEPTH)/native_client/src/shared/srpc/srpc.gyp:nonnacl_srpc64',
372 '<(DEPTH)/native_client/src/trusted/debug_stub/debug_stub.gyp:debug_stub64',
373 '<(DEPTH)/native_client/src/trusted/desc/desc.gyp:nrd_xfer64',
374 '<(DEPTH)/native_client/src/trusted/desc_cacheability/desc_cacheability.gyp:desc_cacheability64',
375 '<(DEPTH)/native_client/src/trusted/fault_injection/fault_injection.gyp:nacl_fault_inject64',
376 '<(DEPTH)/native_client/src/trusted/gio/gio_wrapped_desc.gyp:gio_wrapped_desc64',
377 '<(DEPTH)/native_client/src/trusted/interval_multiset/interval_multiset.gyp:nacl_interval64',
378 '<(DEPTH)/native_client/src/trusted/perf_counter/perf_counter.gyp:nacl_perf_counter64',
379 '<(DEPTH)/native_client/src/trusted/platform_qualify/platform_qualify.gyp:platform_qual_lib64',
380 '<(DEPTH)/native_client/src/trusted/manifest_name_service_proxy/manifest_name_service_proxy.gyp:manifest_proxy64',
381 '<(DEPTH)/native_client/src/trusted/simple_service/simple_service.gyp:simple_service64',
382 '<(DEPTH)/native_client/src/trusted/threading/threading.gyp:thread_interface64',
383 '<(DEPTH)/native_client/src/trusted/validator_x86/validator_x86.gyp:nccopy_x86_64',
384 '<(DEPTH)/native_client/src/trusted/validator/validator.gyp:validation_cache64',
385 '<(DEPTH)/native_client/src/trusted/validator/validator.gyp:validators64',
386 'arch/x86/service_runtime_x86.gyp:service_runtime_x86_common64',
387 'arch/x86_64/service_runtime_x86_64.gyp:service_runtime_x86_64',
390 'target_name': 'nacl_error_code64',
391 'type': 'static_library',
400 'target_name': 'env_cleanser64',
401 'type': 'static_library',
410 'target_name': 'sel_main_chrome64',
420 'target_name': 'sel_main64',
421 'type': 'static_library',
433 'target_name': 'sel_ldr64',
434 'type': 'executable',
440 '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform64',
441 '<(DEPTH)/native_client/src/trusted/gio/gio_wrapped_desc.gyp:gio_wrapped_desc64',
444 'nacl_test_injection_main.c',
449 ['OS=="linux" or OS=="FreeBSD" or OS=="android"', {
452 # This has to be an independent target in order to benefit from
454 'target_name': 'nacl_signal',
455 'type': 'static_library',
457 ['target_arch=="ia32"', {
458 # nacl_signal.c needs to be compiled without the stack
460 # See https://code.google.com/p/nativeclient/issues/detail?id=3581.
463 '-fstack-protector-all',
466 '-fno-stack-protector',
471 'linux/nacl_signal.c',