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',
496 'manifest_file/irt_manifest_file_test.cc',
498 'create_nmf_args_portable': [
499 '-xtest_file:test_file.txt',
500 '-xnmf says hello world:test_file.txt',
501 # There is no dummy_test_file.txt file intentionally. This is just for
502 # a test case where there is a manifest entry, but no actual file.
503 '-xdummy_test_file:dummy_test_file.txt',
506 'manifest_file/irt_manifest_file_test.html',
510 '<(DEPTH)/ppapi/ppapi_nacl.gyp:ppapi_cpp_lib',
511 '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
512 '<(DEPTH)/ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_irt_shim.gyp:aot',
513 '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
514 '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
515 '<(DEPTH)/native_client/src/untrusted/nacl/nacl.gyp:nacl_lib',
518 # These are needed to build a non-SFI nexe binary.
519 # Note that these trigger building nexe files for other
520 # architectures, such as x86-32 (based on enable_XXX variables).
521 # As described above, although the tests for pnacl are currently
522 # disabled, but building the binary should work.
523 # We cannot disable building, as enable_XXX variables are also used
524 # to build newlib linked nexes.
525 ['(target_arch=="ia32" or target_arch=="x64") and OS=="linux"', {
526 # Enable nonsfi testing on ia32-linux environment.
528 'build_pnacl_newlib': 1,
529 'translate_pexe_with_build': 1,
530 'enable_x86_32_nonsfi': 1,
533 ['target_arch=="arm" and OS=="linux"', {
534 # Enable nonsfi testing on arm-linux environment.
536 'build_pnacl_newlib': 1,
537 'translate_pexe_with_build': 1,
538 'enable_arm_nonsfi': 1,
544 'target_name': 'irt_exception_test',
547 'nexe_target': 'irt_exception_test',
550 'nexe_destination_dir': 'nacl_test_data',
551 'build_pnacl_newlib': 1,
560 'irt_exception/irt_exception_test.cc',
563 # TODO(ncbray) move into chrome/test/data/nacl when all tests are
565 'irt_exception/irt_exception_test.html',
569 '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
570 '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
571 '<(DEPTH)/native_client/src/untrusted/nacl/nacl.gyp:nacl_exception_lib',
572 '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
573 '<(DEPTH)/ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_irt_shim.gyp:aot',
574 '<(DEPTH)/ppapi/ppapi_nacl.gyp:ppapi_cpp_lib',
578 ['(target_arch=="ia32" or target_arch=="x64") and OS=="linux"', {
579 # Enable nonsfi testing on ia32-linux environment.
581 'enable_x86_32_nonsfi': 1,
582 'translate_pexe_with_build': 1,
585 ['target_arch=="arm" and OS=="linux"', {
586 # Enable nonsfi testing on arm-linux environment.
588 'enable_arm_nonsfi': 1,
589 'translate_pexe_with_build': 1,
595 'target_name': 'ppapi_extension_mime_handler',
598 'nexe_target': 'ppapi_extension_mime_handler',
601 'build_pnacl_newlib': 0,
602 'nexe_destination_dir': 'nacl_test_data',
610 'extension_mime_handler/ppapi_extension_mime_handler.cc',
613 'extension_mime_handler/ppapi_extension_mime_handler.html',
614 'extension_mime_handler/mime_test_data.dat',
615 # For faking the file's MIME type.
616 'extension_mime_handler/mime_test_data.dat.mock-http-headers',
617 # Turns the test data directory into an extension. Hackish.
618 # Note that the .nexe names are embedded in this file.
619 'extension_mime_handler/manifest.json',
623 '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
624 '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
625 '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
630 'target_name': 'pnacl_debug_url_test',
633 'nexe_target': 'pnacl_debug_url',
634 'build_pnacl_newlib': 1,
635 'nexe_destination_dir': 'nacl_test_data',
641 'pnacl_debug_url/pnacl_debug_url.html',
642 'pnacl_debug_url/pnacl_has_debug.nmf',
643 'pnacl_debug_url/pnacl_has_debug_flag_off.nmf',
644 'pnacl_debug_url/pnacl_no_debug.nmf',
649 'target_name': 'pnacl_error_handling_test',
652 'nexe_target': 'pnacl_errors',
653 'extra_args': ['--nonstable-pnacl'],
654 'build_pnacl_newlib': 1,
655 'nexe_destination_dir': 'nacl_test_data',
661 'pnacl_error_handling/pnacl_error_handling.html',
662 'pnacl_error_handling/bad.pexe',
663 'pnacl_error_handling/pnacl_bad_pexe.nmf',
664 'pnacl_error_handling/pnacl_bad_pexe_O0.nmf',
665 'pnacl_error_handling/pnacl_bad_doesnotexist.nmf',
666 'pnacl_error_handling/pnacl_illformed_manifest.nmf',
667 'pnacl_error_handling/pnacl_nonfinal_pexe_O0.nmf',
672 'target_name': 'pnacl_mime_type_test',
677 'build_pnacl_newlib': 1,
678 'nexe_destination_dir': 'nacl_test_data',
680 'pnacl_mime_type/pnacl_mime_type.html',
685 'target_name': 'pnacl_options_test',
688 'nexe_target': 'pnacl_options',
689 'build_pnacl_newlib': 1,
690 'nexe_destination_dir': 'nacl_test_data',
696 'pnacl_nmf_options/pnacl_options.html',
697 'pnacl_nmf_options/pnacl_o_0.nmf',
698 'pnacl_nmf_options/pnacl_o_2.nmf',
699 'pnacl_nmf_options/pnacl_o_large.nmf',
704 'target_name': 'pnacl_dyncode_syscall_disabled_test',
707 'nexe_target': 'pnacl_dyncode_syscall_disabled',
708 'build_pnacl_newlib': 1,
709 'nexe_destination_dir': 'nacl_test_data',
715 # The "_private" variant of the library calls the syscalls
716 # directly, which allows us to test the syscalls directly,
717 # even when the dyncode IRT interface is also disabled under
719 '-lnacl_dyncode_private',
722 'pnacl_dyncode_syscall_disabled/pnacl_dyncode_syscall_disabled.cc',
725 'pnacl_dyncode_syscall_disabled/pnacl_dyncode_syscall_disabled.html',
729 '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
730 '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
731 '<(DEPTH)/native_client/src/untrusted/nacl/nacl.gyp:nacl_dyncode_private_lib',
732 '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
733 '<(DEPTH)/ppapi/ppapi_nacl.gyp:ppapi_cpp_lib',
738 'target_name': 'pnacl_hw_eh_disabled_test',
741 'nexe_target': 'pnacl_hw_eh_disabled',
742 'build_pnacl_newlib': 1,
743 'nexe_destination_dir': 'nacl_test_data',
749 # The "_private" variant of the library calls the syscalls
750 # directly, which allows us to test the syscalls directly,
751 # even when the exception-handling IRT interface is also
752 # disabled under PNaCl.
753 '-lnacl_exception_private',
756 'pnacl_hw_eh_disabled/pnacl_hw_eh_disabled.cc',
759 'pnacl_hw_eh_disabled/pnacl_hw_eh_disabled.html',
763 '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
764 '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
765 '<(DEPTH)/native_client/src/untrusted/nacl/nacl.gyp:nacl_exception_private_lib',
766 '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
767 '<(DEPTH)/ppapi/ppapi_nacl.gyp:ppapi_cpp_lib',
771 # Legacy NaCl PPAPI interface tests being here.
773 'target_name': 'ppapi_ppb_core',
776 'nexe_target': 'ppapi_ppb_core',
779 'build_pnacl_newlib': 1,
780 'nexe_destination_dir': 'nacl_test_data',
788 'ppapi/ppb_core/ppapi_ppb_core.cc',
791 'ppapi/ppb_core/ppapi_ppb_core.html',
795 '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
796 '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
797 '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
798 '<(DEPTH)/ppapi/ppapi_nacl.gyp:ppapi_cpp_lib',
803 'target_name': 'ppapi_ppb_instance',
806 'nexe_target': 'ppapi_ppb_instance',
809 'build_pnacl_newlib': 1,
810 'nexe_destination_dir': 'nacl_test_data',
818 'ppapi/ppb_instance/ppapi_ppb_instance.cc',
821 'ppapi/ppb_instance/ppapi_ppb_instance.html',
825 '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
826 '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
827 '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
828 '<(DEPTH)/ppapi/ppapi_nacl.gyp:ppapi_cpp_lib',
833 'target_name': 'ppapi_ppp_instance',
836 'nexe_target': 'ppapi_ppp_instance',
839 'build_pnacl_newlib': 1,
840 'nexe_destination_dir': 'nacl_test_data',
848 'ppapi/ppp_instance/ppapi_ppp_instance.cc',
851 'ppapi/ppp_instance/ppapi_ppp_instance.html',
852 'ppapi/ppp_instance/ppapi_ppp_instance.js',
856 '<(DEPTH)/native_client/src/shared/platform/platform.gyp:platform_lib',
857 '<(DEPTH)/native_client/src/shared/gio/gio.gyp:gio_lib',
858 '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
859 '<(DEPTH)/ppapi/ppapi_nacl.gyp:ppapi_cpp_lib',
865 ['target_arch!="arm" and disable_newlib==0', {
866 # Source file does not have asm for ARM.
869 'target_name': 'partly_invalid',
872 'nexe_target': 'partly_invalid',
875 'build_pnacl_newlib': 0,
876 'nexe_destination_dir': 'nacl_test_data',
878 '<(DEPTH)/native_client/tests/stubout_mode/partly_invalid.c',
881 ['target_arch=="mipsel"', {
885 '--pnacl-allow-translate',
888 '--pnacl-allow-native',
897 # Tests for non-SFI mode.
901 'target_name': 'nonsfi_libc_free_nexe',
902 'type': 'executable',
903 'product_name': '>(nexe_destination_dir)/libc_free_>(arch_suffix)',
904 'product_extension': 'nexe',
906 'arch_suffix': '<(target_arch)',
907 # This is needed, because NaCl's target_default rule is
908 # automatically applied to all the targets in this file, and it
909 # requires nexe_destination_dir, even if it is not important.
910 'nexe_destination_dir': 'nacl_test_data/libc-free',
913 'nonsfi/libc_free.c',
915 # Here, we would like to link a relocatable, libc-free executable.
916 # -shared/-fPIC make this binary relocatable. -nostdlib ensures
918 # The program does not apply any dynamic relocations at start up,
919 # so it cannot rely on relocations having been applied.
920 # In addition, -fvisibility=hidden avoids creating some types
924 '-fvisibility=hidden',
926 # Stack-Smashing protector does not work with libc-free context.
927 '-fno-stack-protector',
928 # Optimizers may translate the original code to code which
929 # requires builtin functions and/or relocations. Specifically,
930 # the LLVM's optimizer translates for-loop based zero
935 # We filter these out because release_extra_cflags or another
936 # such thing might be adding them in, and those options wind up
937 # coming after the -fno-stack-protector we added above.
939 '-fstack-protector-all',
940 '-fprofile-generate',
941 '-finstrument-functions',
942 # ARM GCC emits symbols like __aeabi_unwind_cpp_pr0 in
943 # .exidx sections with this flag.
949 # This binary cannot relocate itself, so we should have no
950 # undefined references left.
951 '-Wl,--no-undefined',
954 # Explicitly remove the -pthread flag to avoid a link time warning.
957 # Do not use any sanitizers tools, which require a few symbols.
959 ['exclude', '-fsanitize'],
960 ['exclude', '^-O'], # Strip -O2, -Os etc.
963 ['exclude', '-fsanitize'],
966 # The code depends on NaCl's headers. This is a macro for them.
969 # For native_client/src/include/...
974 # Overwrite suffix for x64 and ia32 to align NaCl's naming
976 ['target_arch=="x64"', {
978 'arch_suffix': 'x86_64',
981 ['target_arch=="ia32"', {
983 'arch_suffix': 'x86_32',
989 'target_name': 'nonsfi_libc_free',
992 'nexe_destination_dir': 'nacl_test_data',
993 'destination_dir': '<(PRODUCT_DIR)/>(nexe_destination_dir)/libc-free',
995 # TODO(ncbray) move into chrome/test/data/nacl when all tests are
997 '<(DEPTH)/ppapi/native_client/tools/browser_tester/browserdata/nacltest.js',
998 'nonsfi/libc_free.html',
999 'nonsfi/libc_free.nmf',
1000 'nonsfi/irt_test.html',
1004 'nonsfi_libc_free_nexe',
1006 # Because we are still under development for non-SFI mode, the
1007 # toolchain is not yet ready, which means ppapi_nacl_common does not
1008 # work well for non-SFI mode yet. Instead, we manually set up the
1009 # testing environment here.
1012 'destination': '>(destination_dir)',