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
3 # found in the LICENSE file.
7 '../../../../ppapi/ppapi_nacl_test_common.gypi',
11 # TODO bug 512902 this needs to be ported to GN.
12 'target_name': 'shared_test_files',
17 'build_pnacl_newlib': 1,
18 'nexe_destination_dir': 'nacl_test_data',
20 # TODO(ncbray) move into chrome/test/data/nacl when all tests are
22 '<(DEPTH)/ppapi/native_client/tools/browser_tester/browserdata/nacltest.js',
24 # Files that aren't assosiated with any particular executable.
27 'bad/ppapi_bad_native.html',
28 'bad/ppapi_bad_doesnotexist.nmf',
29 'bad/ppapi_bad_magic.nmf',
30 'bad/ppapi_bad_manifest_uses_nexes.nmf',
31 'bad/ppapi_bad_manifest_bad_files.nmf',
32 'bad/ppapi_bad_manifest_nexe_arch.nmf',
33 'crash/ppapi_crash.js',
34 'crash/ppapi_crash_via_check_failure.html',
35 'crash/ppapi_crash_via_exit_call.html',
36 'crash/ppapi_crash_in_callback.html',
37 'crash/ppapi_crash_ppapi_off_main_thread.html',
38 'crash/ppapi_crash_off_main_thread.html',
40 'manifest_file/test_file.txt',
41 'progress_event_listener.js',
46 ['(target_arch=="ia32" or target_arch=="x64") and OS=="linux"', {
47 # Enable nonsfi testing on ia32-linux environment.
48 # This flag causes test_files to be copied into nonsfi directory,
51 'enable_x86_32_nonsfi': 1,
54 ['target_arch=="arm" and OS=="linux"', {
55 # Enable nonsfi testing on arm-linux environment.
56 # This flag causes test_files to be copied into nonsfi directory,
59 'enable_arm_nonsfi': 1,
65 'target_name': 'simple_test',
68 'nexe_target': 'simple',
71 'build_pnacl_newlib': 1,
72 'nexe_destination_dir': 'nacl_test_data',
77 'nacl_load_test.html',
82 'target_name': 'exit_status_test',
85 'nexe_target': 'pm_exit_status_test',
88 'build_pnacl_newlib': 1,
89 'nexe_destination_dir': 'nacl_test_data',
91 'exit_status/pm_exit_status_test.cc',
94 'exit_status/pm_exit_status_test.html',
99 'target_name': 'extension_validation_cache',
102 'nexe_target': 'extension_validation_cache',
103 # The test currently only has the test expectations for the
104 # newlib and glibc cases (# validation queries/settings), and has also
105 # hardcoded the newlib and glibc variants' directory path for the
109 'build_pnacl_newlib': 0,
110 # Need a new directory to not clash with with other extension
111 # tests's files (e.g., manifest.json).
112 'nexe_destination_dir': 'nacl_test_data/extension_vcache_test',
117 # TODO(ncbray) move into chrome/test/data/nacl when all tests are
119 '<(DEPTH)/ppapi/native_client/tools/browser_tester/browserdata/nacltest.js',
120 'extension_validation_cache/extension_validation_cache.html',
121 'extension_validation_cache/extension_validation_cache.js',
122 # Turns the test data directory into an extension.
123 # Use a different nexe_destination_dir to isolate the files.
124 # Note that the .nexe names are embedded in this file.
125 'extension_validation_cache/manifest.json',
132 'target_name': 'sysconf_nprocessors_onln_test',
135 'nexe_target': 'sysconf_nprocessors_onln_test',
138 'build_pnacl_newlib': 1,
139 'nexe_destination_dir': 'nacl_test_data',
141 'sysconf_nprocessors_onln/sysconf_nprocessors_onln_test.cc',
144 'sysconf_nprocessors_onln/sysconf_nprocessors_onln_test.html',
149 'target_name': 'ppapi_test_lib',
152 'nlib_target': 'libppapi_test_lib.a',
153 'nso_target': 'libppapi_test_lib.so',
156 'build_pnacl_newlib': 1,
157 'nexe_destination_dir': 'nacl_test_data',
159 # TODO(ncbray) move these files once SCons no longer depends on them.
160 '../../../../ppapi/native_client/tests/ppapi_test_lib/get_browser_interface.cc',
161 '../../../../ppapi/native_client/tests/ppapi_test_lib/internal_utils.cc',
162 '../../../../ppapi/native_client/tests/ppapi_test_lib/module_instance.cc',
163 '../../../../ppapi/native_client/tests/ppapi_test_lib/test_interface.cc',
164 '../../../../ppapi/native_client/tests/ppapi_test_lib/testable_callback.cc',
169 'target_name': 'ppapi_progress_events',
172 'nexe_target': 'ppapi_progress_events',
175 'build_pnacl_newlib': 1,
176 'nexe_destination_dir': 'nacl_test_data',
184 'progress_events/ppapi_progress_events.cc',
187 'progress_events/ppapi_progress_events.html',
191 '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
192 '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
193 '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
194 '<(DEPTH)/ppapi/ppapi_nacl.gyp:ppapi_cpp_lib',
199 'target_name': 'ppapi_bad_ppp_initialize',
202 'nexe_target': 'ppapi_bad_ppp_initialize',
205 'build_pnacl_newlib': 0,
206 'nexe_destination_dir': 'nacl_test_data',
213 'bad/ppapi_bad_ppp_initialize.cc',
217 '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
218 '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
219 '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
223 'target_name': 'ppapi_bad_ppp_initialize_crash',
226 'nexe_target': 'ppapi_bad_ppp_initialize_crash',
229 'build_pnacl_newlib': 0,
230 'nexe_destination_dir': 'nacl_test_data',
237 'bad/ppapi_bad_ppp_initialize_crash.cc',
241 '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
242 '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
243 '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
247 'target_name': 'ppapi_bad_no_ppp_instance',
250 'nexe_target': 'ppapi_bad_no_ppp_instance',
253 'build_pnacl_newlib': 0,
254 'nexe_destination_dir': 'nacl_test_data',
261 'bad/ppapi_bad_no_ppp_instance.cc',
265 '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
266 '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
267 '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
271 'target_name': 'ppapi_bad_get_ppp_instance_crash',
274 'nexe_target': 'ppapi_bad_get_ppp_instance_crash',
277 'build_pnacl_newlib': 0,
278 'nexe_destination_dir': 'nacl_test_data',
285 'bad/ppapi_bad_get_ppp_instance_crash.cc',
289 '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
290 '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
291 '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
295 'target_name': 'ppapi_bad_ppp_instance_didcreate',
298 'nexe_target': 'ppapi_bad_ppp_instance_didcreate',
301 'build_pnacl_newlib': 0,
302 'nexe_destination_dir': 'nacl_test_data',
309 'bad/ppapi_bad_ppp_instance_didcreate.cc',
313 '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
314 '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
315 '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
319 'target_name': 'ppapi_bad_ppp_instance_didcreate_crash',
322 'nexe_target': 'ppapi_bad_ppp_instance_didcreate_crash',
325 'build_pnacl_newlib': 0,
326 'nexe_destination_dir': 'nacl_test_data',
333 'bad/ppapi_bad_ppp_instance_didcreate_crash.cc',
337 '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
338 '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
339 '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
343 'target_name': 'ppapi_crash_via_check_failure',
346 'nexe_target': 'ppapi_crash_via_check_failure',
349 'build_pnacl_newlib': 1,
350 'nexe_destination_dir': 'nacl_test_data',
358 'crash/ppapi_crash_via_check_failure.cc',
362 '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
363 '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
364 '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
365 '<(DEPTH)/ppapi/ppapi_nacl.gyp:ppapi_cpp_lib',
370 'target_name': 'ppapi_crash_via_exit_call',
373 'nexe_target': 'ppapi_crash_via_exit_call',
376 'build_pnacl_newlib': 1,
377 'nexe_destination_dir': 'nacl_test_data',
385 'crash/ppapi_crash_via_exit_call.cc',
389 '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
390 '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
391 '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
392 '<(DEPTH)/ppapi/ppapi_nacl.gyp:ppapi_cpp_lib',
397 'target_name': 'ppapi_crash_in_callback',
400 'nexe_target': 'ppapi_crash_in_callback',
403 'build_pnacl_newlib': 1,
404 'nexe_destination_dir': 'nacl_test_data',
412 'crash/ppapi_crash_in_callback.cc',
416 '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
417 '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
418 '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
419 '<(DEPTH)/ppapi/ppapi_nacl.gyp:ppapi_cpp_lib',
424 'target_name': 'ppapi_crash_off_main_thread',
427 'nexe_target': 'ppapi_crash_off_main_thread',
430 'build_pnacl_newlib': 1,
431 'nexe_destination_dir': 'nacl_test_data',
439 'crash/ppapi_crash_off_main_thread.cc',
443 '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
444 '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
445 '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
446 '<(DEPTH)/ppapi/ppapi_nacl.gyp:ppapi_cpp_lib',
451 'target_name': 'ppapi_crash_ppapi_off_main_thread',
454 'nexe_target': 'ppapi_crash_ppapi_off_main_thread',
457 'build_pnacl_newlib': 1,
458 'nexe_destination_dir': 'nacl_test_data',
466 'crash/ppapi_crash_ppapi_off_main_thread.cc',
470 '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
471 '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
472 '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
473 '<(DEPTH)/ppapi/ppapi_nacl.gyp:ppapi_cpp_lib',
478 'target_name': 'irt_manifest_file',
481 'nexe_target': 'irt_manifest_file',
483 # Linking problems - can't find __nacl_irt_query.
485 # TODO(ncbray) support file injection into PNaCl manifest.
486 'build_pnacl_newlib': 0,
487 'nexe_destination_dir': 'nacl_test_data',
497 'manifest_file/irt_manifest_file_test.cc',
499 'create_nmf_args_portable': [
500 '-xtest_file:test_file.txt',
501 '-xnmf says hello world:test_file.txt',
502 # There is no dummy_test_file.txt file intentionally. This is just for
503 # a test case where there is a manifest entry, but no actual file.
504 '-xdummy_test_file:dummy_test_file.txt',
507 'manifest_file/irt_manifest_file_test.html',
511 '<(DEPTH)/ppapi/ppapi_nacl.gyp:ppapi_cpp_lib',
512 '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
513 '<(DEPTH)/ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_irt_shim.gyp:aot',
514 '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
515 '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
516 '<(DEPTH)/native_client/src/untrusted/nacl/nacl.gyp:nacl_lib',
517 '<(DEPTH)/native_client/src/trusted/weak_ref/weak_ref.gyp:weak_ref_lib',
520 # These are needed to build a non-SFI nexe binary.
521 # Note that these trigger building nexe files for other
522 # architectures, such as x86-32 (based on enable_XXX variables).
523 # As described above, although the tests for pnacl are currently
524 # disabled, but building the binary should work.
525 # We cannot disable building, as enable_XXX variables are also used
526 # to build newlib linked nexes.
527 ['(target_arch=="ia32" or target_arch=="x64") and OS=="linux"', {
528 # Enable nonsfi testing on ia32-linux environment.
530 'build_pnacl_newlib': 1,
531 'translate_pexe_with_build': 1,
532 'enable_x86_32_nonsfi': 1,
535 ['target_arch=="arm" and OS=="linux"', {
536 # Enable nonsfi testing on arm-linux environment.
538 'build_pnacl_newlib': 1,
539 'translate_pexe_with_build': 1,
540 'enable_arm_nonsfi': 1,
546 'target_name': 'irt_exception_test',
549 'nexe_target': 'irt_exception_test',
552 'nexe_destination_dir': 'nacl_test_data',
553 'build_pnacl_newlib': 1,
562 'irt_exception/irt_exception_test.cc',
565 # TODO(ncbray) move into chrome/test/data/nacl when all tests are
567 'irt_exception/irt_exception_test.html',
571 '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
572 '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
573 '<(DEPTH)/native_client/src/untrusted/nacl/nacl.gyp:nacl_exception_lib',
574 '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
575 '<(DEPTH)/ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_irt_shim.gyp:aot',
576 '<(DEPTH)/ppapi/ppapi_nacl.gyp:ppapi_cpp_lib',
580 ['(target_arch=="ia32" or target_arch=="x64") and OS=="linux"', {
581 # Enable nonsfi testing on ia32-linux environment.
583 'enable_x86_32_nonsfi': 1,
584 'translate_pexe_with_build': 1,
587 ['target_arch=="arm" and OS=="linux"', {
588 # Enable nonsfi testing on arm-linux environment.
590 'enable_arm_nonsfi': 1,
591 'translate_pexe_with_build': 1,
597 'target_name': 'ppapi_extension_mime_handler',
600 'nexe_target': 'ppapi_extension_mime_handler',
603 'build_pnacl_newlib': 0,
604 'nexe_destination_dir': 'nacl_test_data',
612 'extension_mime_handler/ppapi_extension_mime_handler.cc',
615 'extension_mime_handler/ppapi_extension_mime_handler.html',
616 'extension_mime_handler/mime_test_data.dat',
617 # For faking the file's MIME type.
618 'extension_mime_handler/mime_test_data.dat.mock-http-headers',
619 # Turns the test data directory into an extension. Hackish.
620 # Note that the .nexe names are embedded in this file.
621 'extension_mime_handler/manifest.json',
625 '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
626 '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
627 '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
632 'target_name': 'pnacl_debug_url_test',
635 'nexe_target': 'pnacl_debug_url',
636 'build_pnacl_newlib': 1,
637 'nexe_destination_dir': 'nacl_test_data',
643 'pnacl_debug_url/pnacl_debug_url.html',
644 'pnacl_debug_url/pnacl_has_debug.nmf',
645 'pnacl_debug_url/pnacl_has_debug_flag_off.nmf',
646 'pnacl_debug_url/pnacl_no_debug.nmf',
651 'target_name': 'pnacl_error_handling_test',
654 'nexe_target': 'pnacl_errors',
655 'extra_args': ['--nonstable-pnacl'],
656 'build_pnacl_newlib': 1,
657 'nexe_destination_dir': 'nacl_test_data',
663 'pnacl_error_handling/pnacl_error_handling.html',
664 'pnacl_error_handling/bad.pexe',
665 'pnacl_error_handling/pnacl_bad_pexe.nmf',
666 'pnacl_error_handling/pnacl_bad_pexe_O0.nmf',
667 'pnacl_error_handling/pnacl_bad_doesnotexist.nmf',
668 'pnacl_error_handling/pnacl_illformed_manifest.nmf',
669 'pnacl_error_handling/pnacl_nonfinal_pexe_O0.nmf',
674 'target_name': 'pnacl_mime_type_test',
679 'build_pnacl_newlib': 1,
680 'nexe_destination_dir': 'nacl_test_data',
682 'pnacl_mime_type/pnacl_mime_type.html',
687 'target_name': 'pnacl_options_test',
690 'nexe_target': 'pnacl_options',
691 'build_pnacl_newlib': 1,
692 'nexe_destination_dir': 'nacl_test_data',
698 'pnacl_nmf_options/pnacl_options.html',
699 'pnacl_nmf_options/pnacl_o_0.nmf',
700 'pnacl_nmf_options/pnacl_o_2.nmf',
701 'pnacl_nmf_options/pnacl_o_large.nmf',
706 'target_name': 'pnacl_dyncode_syscall_disabled_test',
709 'nexe_target': 'pnacl_dyncode_syscall_disabled',
710 'build_pnacl_newlib': 1,
711 'nexe_destination_dir': 'nacl_test_data',
717 # The "_private" variant of the library calls the syscalls
718 # directly, which allows us to test the syscalls directly,
719 # even when the dyncode IRT interface is also disabled under
721 '-lnacl_dyncode_private',
724 'pnacl_dyncode_syscall_disabled/pnacl_dyncode_syscall_disabled.cc',
727 'pnacl_dyncode_syscall_disabled/pnacl_dyncode_syscall_disabled.html',
731 '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
732 '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
733 '<(DEPTH)/native_client/src/untrusted/nacl/nacl.gyp:nacl_dyncode_private_lib',
734 '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
735 '<(DEPTH)/ppapi/ppapi_nacl.gyp:ppapi_cpp_lib',
740 'target_name': 'pnacl_hw_eh_disabled_test',
743 'nexe_target': 'pnacl_hw_eh_disabled',
744 'build_pnacl_newlib': 1,
745 'nexe_destination_dir': 'nacl_test_data',
751 # The "_private" variant of the library calls the syscalls
752 # directly, which allows us to test the syscalls directly,
753 # even when the exception-handling IRT interface is also
754 # disabled under PNaCl.
755 '-lnacl_exception_private',
758 'pnacl_hw_eh_disabled/pnacl_hw_eh_disabled.cc',
761 'pnacl_hw_eh_disabled/pnacl_hw_eh_disabled.html',
765 '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
766 '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
767 '<(DEPTH)/native_client/src/untrusted/nacl/nacl.gyp:nacl_exception_private_lib',
768 '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
769 '<(DEPTH)/ppapi/ppapi_nacl.gyp:ppapi_cpp_lib',
773 # Legacy NaCl PPAPI interface tests being here.
775 'target_name': 'ppapi_ppb_core',
778 'nexe_target': 'ppapi_ppb_core',
781 'build_pnacl_newlib': 1,
782 'nexe_destination_dir': 'nacl_test_data',
790 'ppapi/ppb_core/ppapi_ppb_core.cc',
793 'ppapi/ppb_core/ppapi_ppb_core.html',
797 '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
798 '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
799 '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
800 '<(DEPTH)/ppapi/ppapi_nacl.gyp:ppapi_cpp_lib',
805 'target_name': 'ppapi_ppb_instance',
808 'nexe_target': 'ppapi_ppb_instance',
811 'build_pnacl_newlib': 1,
812 'nexe_destination_dir': 'nacl_test_data',
820 'ppapi/ppb_instance/ppapi_ppb_instance.cc',
823 'ppapi/ppb_instance/ppapi_ppb_instance.html',
827 '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
828 '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
829 '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
830 '<(DEPTH)/ppapi/ppapi_nacl.gyp:ppapi_cpp_lib',
835 'target_name': 'ppapi_ppp_instance',
838 'nexe_target': 'ppapi_ppp_instance',
841 'build_pnacl_newlib': 1,
842 'nexe_destination_dir': 'nacl_test_data',
850 'ppapi/ppp_instance/ppapi_ppp_instance.cc',
853 'ppapi/ppp_instance/ppapi_ppp_instance.html',
854 'ppapi/ppp_instance/ppapi_ppp_instance.js',
858 '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
859 '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
860 '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
861 '<(DEPTH)/ppapi/ppapi_nacl.gyp:ppapi_cpp_lib',
867 ['target_arch!="arm" and disable_newlib==0', {
868 # Source file does not have asm for ARM.
871 'target_name': 'partly_invalid',
874 'nexe_target': 'partly_invalid',
877 'build_pnacl_newlib': 0,
878 'nexe_destination_dir': 'nacl_test_data',
880 '<(DEPTH)/native_client/tests/stubout_mode/partly_invalid.c',
883 ['target_arch=="mipsel"', {
887 '--pnacl-allow-translate',
890 '--pnacl-allow-native',
899 # Tests for non-SFI mode.
903 'target_name': 'nonsfi_libc_free_nexe',
904 'type': 'executable',
905 'product_name': '>(nexe_destination_dir)/libc_free_>(arch_suffix)',
906 'product_extension': 'nexe',
908 'arch_suffix': '<(target_arch)',
909 # This is needed, because NaCl's target_default rule is
910 # automatically applied to all the targets in this file, and it
911 # requires nexe_destination_dir, even if it is not important.
912 'nexe_destination_dir': 'nacl_test_data/libc-free',
915 'nonsfi/libc_free.c',
917 # Here, we would like to link a relocatable, libc-free executable.
918 # -shared/-fPIC make this binary relocatable. -nostdlib ensures
920 # The program does not apply any dynamic relocations at start up,
921 # so it cannot rely on relocations having been applied.
922 # In addition, -fvisibility=hidden avoids creating some types
926 '-fvisibility=hidden',
928 # Stack-Smashing protector does not work with libc-free context.
929 '-fno-stack-protector',
930 # Optimizers may translate the original code to code which
931 # requires builtin functions and/or relocations. Specifically,
932 # the LLVM's optimizer translates for-loop based zero
937 # We filter these out because release_extra_cflags or another
938 # such thing might be adding them in, and those options wind up
939 # coming after the -fno-stack-protector we added above.
941 '-fstack-protector-all',
942 '-fprofile-generate',
943 '-finstrument-functions',
944 # ARM GCC emits symbols like __aeabi_unwind_cpp_pr0 in
945 # .exidx sections with this flag.
951 # This binary cannot relocate itself, so we should have no
952 # undefined references left.
953 '-Wl,--no-undefined',
956 # Explicitly remove the -pthread flag to avoid a link time warning.
959 # Do not use any sanitizers tools, which require a few symbols.
961 ['exclude', '-fsanitize'],
962 ['exclude', '^-O'], # Strip -O2, -Os etc.
965 ['exclude', '-fsanitize'],
968 # The code depends on NaCl's headers. This is a macro for them.
971 # For native_client/src/include/...
976 # Overwrite suffix for x64 and ia32 to align NaCl's naming
978 ['target_arch=="x64"', {
980 'arch_suffix': 'x86_64',
983 ['target_arch=="ia32"', {
985 'arch_suffix': 'x86_32',
991 'target_name': 'nonsfi_libc_free',
994 'nexe_destination_dir': 'nacl_test_data',
995 'destination_dir': '<(PRODUCT_DIR)/>(nexe_destination_dir)/libc-free',
997 # TODO(ncbray) move into chrome/test/data/nacl when all tests are
999 '<(DEPTH)/ppapi/native_client/tools/browser_tester/browserdata/nacltest.js',
1000 'nonsfi/libc_free.html',
1001 'nonsfi/libc_free.nmf',
1002 'nonsfi/irt_test.html',
1006 'nonsfi_libc_free_nexe',
1008 # Because we are still under development for non-SFI mode, the
1009 # toolchain is not yet ready, which means ppapi_nacl_common does not
1010 # work well for non-SFI mode yet. Instead, we manually set up the
1011 # testing environment here.
1014 'destination': '>(destination_dir)',