diff --git a/config/BUILD.gn b/config/BUILD.gn index 216d0e9b1..7dabf019f 100644 --- a/config/BUILD.gn +++ b/config/BUILD.gn @@ -3,11 +3,10 @@ # found in the LICENSE file. declare_args() { - # When set, turns off the definition of _GLIBCXX_DEBUG when it would - # otherwise be set. Setting _GLIBCXX_DEBUG adds iterator debugging stuff - # that is usually helpful in debugging, but can cause problems in some - # contexts. - disable_glibcxx_debug = false + # When set, turns off the (normally-on) iterator debugging and related stuff + # that is normall turned on for Debug builds. These are generally useful for + # catching bugs but in some cases may cause conflicts or excessive slowness. + disable_iterator_debugging = false } config("my_msvs") { @@ -46,7 +45,6 @@ config("my_msvs") { } config("feature_flags") { - #defines = } config("debug") { @@ -56,7 +54,14 @@ config("debug") { "WTF_USE_DYNAMIC_ANNOTATIONS=1", ] - if (is_linux && !is_android && cpu_arch == "x64" && !disable_glibcxx_debug) { + if (is_win) { + if (disable_iterator_debugging) { + # Iterator debugging is enabled by the compiler on debug builds, and we + # have to tell it to turn it off. + defines += [ "_HAS_ITERATOR_DEBUGGING=0" ] + } + } else if (is_linux && !is_android && cpu_arch == "x64" && + !disable_iterator_debugging) { # Enable libstdc++ debugging facilities to help catch problems early, see # http://crbug.com/65151 . # TODO(phajdan.jr): Should we enable this for all of POSIX? diff --git a/gyp_chromium b/gyp_chromium index b8b328e53..0a0153474 100755 --- a/gyp_chromium +++ b/gyp_chromium @@ -173,11 +173,13 @@ def GetArgsStringForGN(supplemental_files): remap_cases = [ ('android_webview_build', '1', 'is_android_webview_build=true'), ('branding', 'Chrome', 'is_chrome_branded=true'), + ('build_for_tool', 'drmemory', 'disable_iterator_debugging=true'), + ('build_for_tool', 'tsan', 'disable_iterator_debugging=true'), ('buildtype', 'Official', 'is_official_build=true'), ('component', 'shared_library', 'is_component_build=true'), ('clang', '1', 'is_clang=true'), ('clang_use_chrome_plugins', '0', 'clang_use_chrome_plugins=false'), - ('disable_glibcxx_debug', '1', 'disable_glibcxx_debug=true'), + ('disable_glibcxx_debug', '1', 'disable_iterator_debugging=true'), ('target_arch', 'ia32', 'cpu_arch="x86"'), ('target_arch', 'x64', 'cpu_arch="x64" force_win64=true'), ('target_arch', 'arm', 'cpu_arch="arm"'),