Index: third_party/boringssl/boringssl_configurations.gypi |
diff --git a/third_party/boringssl/boringssl_configurations.gypi b/third_party/boringssl/boringssl_configurations.gypi |
index 9c49b0153b2a101f28571ca6c0b28f54fffa7f53..b963505bc12aff180e9821624e82d6aa95745f77 100644 |
--- a/third_party/boringssl/boringssl_configurations.gypi |
+++ b/third_party/boringssl/boringssl_configurations.gypi |
@@ -4,10 +4,29 @@ |
# This file is included to modify the configurations to build third-party |
# code from BoringSSL. |
+# This code is C code, not C++, and is not warning-free, so we need to remove |
+# C++-specific flags, and add flags to supress the warnings in the code. |
{ |
+ 'variables': { |
+ # Used by third_party/nss, which is from Chromium. |
+ # Include the built-in set of root certificate authorities. |
+ 'exclude_nss_root_certs': 0, |
+ 'os_posix%': 1, |
+ 'os_bsd%': 0, |
+ 'chromeos%': 0, |
+ 'clang%': 0, |
+ }, |
'target_defaults': { |
+ 'cflags': [ |
+ '-w', |
+ '-UHAVE_CVAR_BUILT_ON_SEM', |
+ ], |
# Removes these flags from the list cflags. |
'cflags!': [ |
+ # NSS code from upstream mozilla builds with warnings, |
+ # so we must allow warnings without failing. |
+ '-Werror', |
+ '-Wall', |
'-ansi', |
# Not supported for C, only for C++. |
'-Wnon-virtual-dtor', |
@@ -16,5 +35,93 @@ |
'-fvisibility-inlines-hidden', |
'-Woverloaded-virtual', |
], |
+ 'configurations': { |
+ 'Dart_Base': { |
+ 'xcode_settings': { |
+ 'WARNING_CFLAGS': [ |
+ '-w', |
+ ], |
+ 'WARNING_CFLAGS!': [ |
+ '-Wall', |
+ '-Wextra', |
+ ], |
+ }, |
+ }, |
+ # Dart_Macos_Debug and Dart_Macos_Release are merged after |
+ # Dart_Macos_Base, so we can override the 'ansi' and '-Werror' flags set |
+ # at the global level in tools/gyp/configurations_xcode.gypi. |
+ 'Dart_Macos_Debug': { |
+ 'abstract': 1, |
+ 'xcode_settings': { |
+ # Remove 'ansi' setting. |
+ 'GCC_C_LANGUAGE_STANDARD': 'c99', |
+ 'GCC_TREAT_WARNINGS_AS_ERRORS': 'NO', # -Werror off |
+ }, |
+ }, |
+ 'Dart_Macos_Release': { |
+ 'abstract': 1, |
+ 'xcode_settings': { |
+ # Remove 'ansi' setting. |
+ 'GCC_C_LANGUAGE_STANDARD': 'c99', |
+ 'GCC_TREAT_WARNINGS_AS_ERRORS': 'NO', # -Werror off |
+ }, |
+ }, |
+ # Disable hand-coded assembly routines on ARMv6 and ARMv5TE. |
+ 'Dart_armv6_Base': { |
+ 'abstract': 1, |
+ 'defines': [ |
+ 'OPENSSL_NO_ASM', |
+ ], |
+ }, |
+ 'Dart_armv5te_Base': { |
+ 'abstract': 1, |
+ 'defines': [ |
+ 'OPENSSL_NO_ASM', |
+ ], |
+ }, |
+ # TODO(24321): Also disable temporarily on arm64. Reenable after the next |
+ # roll. |
+ 'Dart_arm64_Base': { |
+ 'abstract': 1, |
+ 'defines': [ |
+ 'OPENSSL_NO_ASM', |
+ ], |
+ }, |
+ # Android 64-bit dbc build is for arm64, disable temporarily as well. |
+ 'Dart_Android_arm64_Base': { |
+ 'abstract': 1, |
+ 'defines': [ |
+ 'OPENSSL_NO_ASM', |
+ ], |
+ }, |
+ # When being built for Android nss expects __linux__ to be defined. |
+ 'Dart_Android_Base': { |
+ 'target_conditions': [ |
+ ['_toolset=="host"', { |
+ 'defines!': [ |
+ 'ANDROID', |
+ ], |
+ # Define __linux__ on Android build for NSS. |
+ 'defines': [ |
+ '__linux__', |
+ ], |
+ 'cflags!': [ |
+ '-U__linux__', |
+ ], |
+ }], |
+ ['_toolset=="target"', { |
+ 'defines': [ |
+ '__linux__', |
+ 'CHECK_FORK_GETPID', # Android does not provide pthread_atfork. |
+ '__USE_LARGEFILE64', |
+ ], |
+ # Define __linux__ on Android build for NSS. |
+ 'cflags!': [ |
+ '-U__linux__', |
+ ], |
+ }] |
+ ], |
+ }, |
+ }, |
}, |
} |