1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23

build / config / win / control_flow_guard.gni [blame]

# Copyright 2020 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/config/sanitizers/sanitizers.gni")

declare_args() {
  # Set this to true to enable generation of CFG indirect call dispatch
  # guards.
  win_enable_cfg_guards = !is_debug && !is_asan
}

if (win_enable_cfg_guards) {
  # Control Flow Guard (CFG)
  # https://msdn.microsoft.com/en-us/library/windows/desktop/mt637065.aspx
  # /DYNAMICBASE (ASLR) is turned off in debug builds, therefore CFG can't be
  # turned on either.
  # ASan and CFG leads to slow process startup. Chromium's test runner uses
  # lots of child processes, so this means things are really slow. Disable CFG
  # for now. https://crbug.com/846966
  assert(!is_debug && !is_asan,
         "CFG does not work well in debug builds or with ASAN")
}