blob: ecadcf69425ec6b25015646a30e9e86ad1bb9e91 [file] [log] [blame]
# Copyright 2019 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/config/chromeos/rules.gni")
assert(is_chromeos)
declare_args() {
# The location to a file used to dump symbols ordered by Call-Chain Clustering (C3)
# https://research.fb.com/wp-content/uploads/2017/01/cgo2017-hfsort-final1.pdf?
# to a file, used for generating orderfiles in Chrome OS
dump_call_chain_clustering_order = ""
# Enable pattern initialization. Disabled by default. http://crbug.com/966551
enable_pattern_initialization = false
}
declare_args() {
# Whether or not we're using new pass manager to build and link Chrome
use_new_pass_manager = dump_call_chain_clustering_order != ""
}
config("print_orderfile") {
if (dump_call_chain_clustering_order != "") {
_output_orderfile =
rebase_path(dump_call_chain_clustering_order, root_build_dir)
ldflags = [ "-Wl,--print-symbol-order=$_output_orderfile" ]
}
}
config("compiler") {
if (use_new_pass_manager) {
cflags = [ "-fexperimental-new-pass-manager" ]
ldflags = [ "-fexperimental-new-pass-manager" ]
}
if (enable_pattern_initialization) {
cflags = [ "-ftrivial-auto-var-init=pattern" ]
}
}