|
536 | 536 | FileTypes = (
|
537 | 537 | "sourcecode.c.c",
|
538 | 538 | );
|
539 |
| - DefaultValue = NO; |
| 539 | + DefaultValue = "$(ENABLE_C_BOUNDS_SAFETY)"; |
540 | 540 | CommandLineArgs = {
|
541 | 541 | YES = ( "-fbounds-safety" );
|
542 | 542 | NO = ();
|
|
640 | 640 | Category = LanguageCXX;
|
641 | 641 | },
|
642 | 642 | {
|
643 |
| - Name = __LIBRARY_HARDENING_DEFAULT_VALUE_0; |
| 643 | + Name = __ENHANCED_SECURITY_OR_BOUNDS_SAFE_BUFFERS_YES_YES; |
| 644 | + Type = String; |
| 645 | + DefaultValue = "YES"; |
| 646 | + }, |
| 647 | + { |
| 648 | + Name = __ENHANCED_SECURITY_OR_BOUNDS_SAFE_BUFFERS_YES_NO; |
| 649 | + Type = String; |
| 650 | + DefaultValue = "YES"; |
| 651 | + }, |
| 652 | + { |
| 653 | + Name = __ENHANCED_SECURITY_OR_BOUNDS_SAFE_BUFFERS_NO_YES; |
| 654 | + Type = String; |
| 655 | + DefaultValue = "YES"; |
| 656 | + }, |
| 657 | + { |
| 658 | + Name = __ENHANCED_SECURITY_OR_BOUNDS_SAFE_BUFFERS_NO_NO; |
| 659 | + Type = String; |
| 660 | + DefaultValue = "NO"; |
| 661 | + }, |
| 662 | + { |
| 663 | + Name = __ENHANCED_SECURITY_OR_BOUNDS_SAFE_BUFFERS; |
| 664 | + Type = String; |
| 665 | + DefaultValue = "$(__ENHANCED_SECURITY_OR_BOUNDS_SAFE_BUFFERS_$(ENABLE_ENHANCED_SECURITY)_$(ENABLE_CPLUSPLUS_BOUNDS_SAFE_BUFFERS))"; |
| 666 | + }, |
| 667 | + { |
| 668 | + Name = __LIBRARY_HARDENING_DEFAULT_VALUE_OPT_LEVEL_0_ENHANCED_SECURITY_OR_BOUNDS_SAFE_BUFFERS_YES; |
| 669 | + Type = String; |
| 670 | + DefaultValue = "debug"; |
| 671 | + }, |
| 672 | + { |
| 673 | + Name = __LIBRARY_HARDENING_DEFAULT_VALUE_OPT_LEVEL_0_ENHANCED_SECURITY_OR_BOUNDS_SAFE_BUFFERS_NO; |
644 | 674 | Type = String;
|
645 | 675 | DefaultValue = "debug";
|
646 | 676 | },
|
| 677 | + { |
| 678 | + Name = __LIBRARY_HARDENING_DEFAULT_VALUE_OPT_LEVEL_1_ENHANCED_SECURITY_OR_BOUNDS_SAFE_BUFFERS_YES; |
| 679 | + Type = String; |
| 680 | + DefaultValue = "fast"; |
| 681 | + }, |
| 682 | + { |
| 683 | + Name = __LIBRARY_HARDENING_DEFAULT_VALUE_OPT_LEVEL_2_ENHANCED_SECURITY_OR_BOUNDS_SAFE_BUFFERS_YES; |
| 684 | + Type = String; |
| 685 | + DefaultValue = "fast"; |
| 686 | + }, |
| 687 | + { |
| 688 | + Name = __LIBRARY_HARDENING_DEFAULT_VALUE_OPT_LEVEL_3_ENHANCED_SECURITY_OR_BOUNDS_SAFE_BUFFERS_YES; |
| 689 | + Type = String; |
| 690 | + DefaultValue = "fast"; |
| 691 | + }, |
| 692 | + { |
| 693 | + Name = __LIBRARY_HARDENING_DEFAULT_VALUE_OPT_LEVEL_s_ENHANCED_SECURITY_OR_BOUNDS_SAFE_BUFFERS_YES; |
| 694 | + Type = String; |
| 695 | + DefaultValue = "fast"; |
| 696 | + }, |
| 697 | + { |
| 698 | + Name = __LIBRARY_HARDENING_DEFAULT_VALUE_OPT_LEVEL_fast_ENHANCED_SECURITY_OR_BOUNDS_SAFE_BUFFERS_YES; |
| 699 | + Type = String; |
| 700 | + DefaultValue = "fast"; |
| 701 | + }, |
| 702 | + { |
| 703 | + Name = __LIBRARY_HARDENING_DEFAULT_VALUE_OPT_LEVEL_z_ENHANCED_SECURITY_OR_BOUNDS_SAFE_BUFFERS_YES; |
| 704 | + Type = String; |
| 705 | + DefaultValue = "fast"; |
| 706 | + }, |
647 | 707 | {
|
648 | 708 | Name = __LIBRARY_HARDENING_DEFAULT_VALUE;
|
649 | 709 | Type = String;
|
650 |
| - DefaultValue = "$(__LIBRARY_HARDENING_DEFAULT_VALUE_$(GCC_OPTIMIZATION_LEVEL))"; |
| 710 | + DefaultValue = "$(__LIBRARY_HARDENING_DEFAULT_VALUE_OPT_LEVEL_$(GCC_OPTIMIZATION_LEVEL)_ENHANCED_SECURITY_OR_BOUNDS_SAFE_BUFFERS_$(__ENHANCED_SECURITY_OR_BOUNDS_SAFE_BUFFERS))"; |
651 | 711 | },
|
652 | 712 | {
|
653 | 713 | Name = "CLANG_CXX_STANDARD_LIBRARY_HARDENING";
|
|
736 | 796 | );
|
737 | 797 | Category = LanguageCXX;
|
738 | 798 | },
|
| 799 | + { |
| 800 | + Name = "_UNSAFE_BUFFER_USAGE_DEFAULT_ENABLE_SAFE_BUFFERS_NO"; |
| 801 | + Type = String; |
| 802 | + DefaultValue = "DEFAULT"; |
| 803 | + }, |
| 804 | + { |
| 805 | + Name = "_UNSAFE_BUFFER_USAGE_DEFAULT_ENABLE_SAFE_BUFFERS_YES"; |
| 806 | + Type = String; |
| 807 | + DefaultValue = "YES_ERROR"; |
| 808 | + }, |
| 809 | + { |
| 810 | + Name = "_UNSAFE_BUFFER_USAGE_DEFAULT"; |
| 811 | + Type = String; |
| 812 | + DefaultValue = "$(_UNSAFE_BUFFER_USAGE_DEFAULT_ENABLE_SAFE_BUFFERS_$(ENABLE_CPLUSPLUS_BOUNDS_SAFE_BUFFERS))"; |
| 813 | + }, |
739 | 814 | {
|
740 | 815 | Name = "CLANG_WARN_UNSAFE_BUFFER_USAGE";
|
741 | 816 | Type = Enumeration;
|
742 | 817 | Values = ( DEFAULT, YES, YES_ERROR, NO );
|
743 |
| - DefaultValue = DEFAULT; |
| 818 | + DefaultValue = "$(_UNSAFE_BUFFER_USAGE_DEFAULT)"; |
744 | 819 | CommandLineArgs = {
|
745 | 820 | DEFAULT = ();
|
746 | 821 | NO = ( "-Wno-unsafe-buffer-usage" );
|
|
801 | 876 | {
|
802 | 877 | Name = "GCC_OPTIMIZATION_LEVEL";
|
803 | 878 | Type = Enumeration;
|
804 |
| - // NOTE: Updating these values requires updating LLVM_OPTIMIZATION_LEVEL_VAL_X. |
| 879 | + // NOTE: Updating these values requires updating LLVM_OPTIMIZATION_LEVEL_VAL_X and CLANG_CXX_STANDARD_LIBRARY_HARDENING. |
805 | 880 | Values = (
|
806 | 881 | 0,
|
807 | 882 | 1,
|
|
945 | 1020 | };
|
946 | 1021 | Category = WarningsPolicy;
|
947 | 1022 | },
|
| 1023 | + { Name = CLANG_ENABLE_SECURITY_COMPILER_WARNINGS; |
| 1024 | + Type = Boolean; |
| 1025 | + DefaultValue = "$(ENABLE_SECURITY_COMPILER_WARNINGS)"; |
| 1026 | + CommandLineArgs = { |
| 1027 | + YES = ("-Wbuiltin-memcpy-chk-size", |
| 1028 | + "-Wformat-nonliteral", |
| 1029 | + "-Warray-bounds", |
| 1030 | + "-Warray-bounds-pointer-arithmetic", |
| 1031 | + "-Wsuspicious-memaccess", |
| 1032 | + "-Wsizeof-array-div", |
| 1033 | + "-Wsizeof-pointer-div", |
| 1034 | + "-Wreturn-stack-address"); |
| 1035 | + NO = (); |
| 1036 | + }; |
| 1037 | + // Hidden. |
| 1038 | + }, |
948 | 1039 | {
|
949 | 1040 | Name = "GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS";
|
950 | 1041 | Type = Boolean;
|
|
1381 | 1472 | {
|
1382 | 1473 | Name = "CLANG_WARN_EMPTY_BODY";
|
1383 | 1474 | Type = Boolean;
|
1384 |
| - DefaultValue = NO; |
| 1475 | + DefaultValue = "$(CLANG_ENABLE_SECURITY_COMPILER_WARNINGS)"; |
1385 | 1476 | CommandLineArgs = {
|
1386 | 1477 | YES = ( "-Wempty-body" );
|
1387 | 1478 | NO = ( "-Wno-empty-body" );
|
|
1447 | 1538 | {
|
1448 | 1539 | Name = "GCC_WARN_SHADOW";
|
1449 | 1540 | Type = Boolean;
|
1450 |
| - DefaultValue = NO; |
| 1541 | + DefaultValue = "$(CLANG_ENABLE_SECURITY_COMPILER_WARNINGS)"; |
1451 | 1542 | CommandLineArgs = {
|
1452 | 1543 | YES = (
|
1453 | 1544 | "-Wshadow",
|
|
1800 | 1891 | };
|
1801 | 1892 | Category = Warnings;
|
1802 | 1893 | },
|
| 1894 | + { |
| 1895 | + Name = "CLANG_ENABLE_STACK_ZERO_INIT"; |
| 1896 | + Type = Boolean; |
| 1897 | + DefaultValue = "$(ENABLE_ENHANCED_SECURITY)"; |
| 1898 | + Category = Security; |
| 1899 | + }, |
| 1900 | + { |
| 1901 | + Name = "_CLANG_TRIVIAL_AUTO_VAR_INIT_DEFAULT_ENABLE_ZERO_INIT_YES"; |
| 1902 | + Type = Boolean; |
| 1903 | + DefaultValue = "zero"; |
| 1904 | + }, |
| 1905 | + { |
| 1906 | + Name = "_CLANG_TRIVIAL_AUTO_VAR_INIT_DEFAULT_ENABLE_ZERO_INIT_NO"; |
| 1907 | + Type = Boolean; |
| 1908 | + DefaultValue = "default"; |
| 1909 | + }, |
| 1910 | + { |
| 1911 | + Name = "_CLANG_TRIVIAL_AUTO_VAR_INIT_DEFAULT"; |
| 1912 | + Type = String; |
| 1913 | + DefaultValue = "$(_CLANG_TRIVIAL_AUTO_VAR_INIT_DEFAULT_ENABLE_ZERO_INIT_$(CLANG_ENABLE_STACK_ZERO_INIT))"; |
| 1914 | + }, |
1803 | 1915 | {
|
1804 | 1916 | Name = "CLANG_TRIVIAL_AUTO_VAR_INIT";
|
1805 | 1917 | Type = Enumeration;
|
|
1809 | 1921 | zero,
|
1810 | 1922 | pattern,
|
1811 | 1923 | );
|
1812 |
| - DefaultValue = default; |
| 1924 | + DefaultValue = "$(_CLANG_TRIVIAL_AUTO_VAR_INIT_DEFAULT)"; |
1813 | 1925 | CommandLineArgs = {
|
1814 | 1926 | default = ( );
|
1815 | 1927 | uninitialized = ( "-ftrivial-auto-var-init=uninitialized" );
|
|
2900 | 3012 | Condition = "$(CLANG_UNDEFINED_BEHAVIOR_SANITIZER_TRAP_ON_SECURITY_ISSUES) && $(GCC_OPTIMIZATION_LEVEL) != 0";
|
2901 | 3013 | },
|
2902 | 3014 | {
|
2903 |
| - Name = "CLANG_ENABLE_C_TYPED_ALLOCATOR_SUPPORT"; |
| 3015 | + Name = "_CLANG_ENABLE_TYPED_ALLOCATOR_SUPPORT_DEFAULT_ENHANCED_SECURITY_YES"; |
| 3016 | + Type = Enumeration; |
| 3017 | + Values = ( |
| 3018 | + compiler-default, |
| 3019 | + YES, |
| 3020 | + NO, |
| 3021 | + ); |
| 3022 | + DefaultValue = YES; |
| 3023 | + }, |
| 3024 | + { |
| 3025 | + Name = "_CLANG_ENABLE_TYPED_ALLOCATOR_SUPPORT_DEFAULT_ENHANCED_SECURITY_NO"; |
2904 | 3026 | Type = Enumeration;
|
2905 | 3027 | Values = (
|
2906 | 3028 | compiler-default,
|
2907 | 3029 | YES,
|
2908 | 3030 | NO,
|
2909 | 3031 | );
|
2910 | 3032 | DefaultValue = compiler-default;
|
| 3033 | + }, |
| 3034 | + { |
| 3035 | + Name = "_CLANG_ENABLE_TYPED_ALLOCATOR_SUPPORT_DEFAULT"; |
| 3036 | + Type = Enumeration; |
| 3037 | + Values = ( |
| 3038 | + compiler-default, |
| 3039 | + YES, |
| 3040 | + NO, |
| 3041 | + ); |
| 3042 | + DefaultValue = "$(_CLANG_ENABLE_TYPED_ALLOCATOR_SUPPORT_DEFAULT_ENHANCED_SECURITY_$(ENABLE_ENHANCED_SECURITY))"; |
| 3043 | + }, |
| 3044 | + { |
| 3045 | + Name = "CLANG_ENABLE_C_TYPED_ALLOCATOR_SUPPORT"; |
| 3046 | + Type = Enumeration; |
| 3047 | + Values = ( |
| 3048 | + compiler-default, |
| 3049 | + YES, |
| 3050 | + NO, |
| 3051 | + ); |
| 3052 | + DefaultValue = "$(_CLANG_ENABLE_TYPED_ALLOCATOR_SUPPORT_DEFAULT)"; |
2911 | 3053 | CommandLineArgs = {
|
2912 | 3054 | compiler-default = ();
|
2913 | 3055 | YES = ("-ftyped-memory-operations");
|
2914 | 3056 | NO = ("-fno-typed-memory-operations");
|
2915 | 3057 | };
|
| 3058 | + Category = Language; |
2916 | 3059 | },
|
2917 | 3060 | {
|
2918 | 3061 | Name = "CLANG_ENABLE_CPLUSPLUS_TYPED_ALLOCATOR_SUPPORT";
|
|
2922 | 3065 | YES,
|
2923 | 3066 | NO,
|
2924 | 3067 | );
|
2925 |
| - DefaultValue = compiler-default; |
| 3068 | + DefaultValue = "$(_CLANG_ENABLE_TYPED_ALLOCATOR_SUPPORT_DEFAULT)"; |
2926 | 3069 | CommandLineArgs = {
|
2927 | 3070 | compiler-default = ();
|
2928 | 3071 | YES = ("-ftyped-cxx-new-delete", "-ftyped-cxx-delete");
|
|
2933 | 3076 | YES = ("-ftyped-cxx-new-delete", "-ftyped-cxx-delete");
|
2934 | 3077 | NO = ();
|
2935 | 3078 | };
|
| 3079 | + Category = LanguageCXX; |
2936 | 3080 | },
|
2937 | 3081 | // Index-while-building options, not visible in build settings.
|
2938 | 3082 | {
|
|
0 commit comments