1*6777b538SAndroid Build Coastguard Worker# Copyright 2017 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker# found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Workerimport("//build/config/sanitizers/sanitizers.gni") 6*6777b538SAndroid Build Coastguard Workerimport("//build/toolchain/toolchain.gni") 7*6777b538SAndroid Build Coastguard Worker 8*6777b538SAndroid Build Coastguard Worker# This is included by reference in the //build/config/compiler config that 9*6777b538SAndroid Build Coastguard Worker# is applied to all targets. It is here to separate out the logic. 10*6777b538SAndroid Build Coastguard Worker 11*6777b538SAndroid Build Coastguard Workerconfig("compiler") { 12*6777b538SAndroid Build Coastguard Worker # These flags are shared between the C compiler and linker. 13*6777b538SAndroid Build Coastguard Worker defines = [ 14*6777b538SAndroid Build Coastguard Worker "_LINUX_SOURCE_COMPAT=1", 15*6777b538SAndroid Build Coastguard Worker "__STDC_FORMAT_MACROS", 16*6777b538SAndroid Build Coastguard Worker "_ALL_SOURCE=1", 17*6777b538SAndroid Build Coastguard Worker ] 18*6777b538SAndroid Build Coastguard Worker 19*6777b538SAndroid Build Coastguard Worker cflags = [ 20*6777b538SAndroid Build Coastguard Worker "-Wall", 21*6777b538SAndroid Build Coastguard Worker "-Wno-unused-parameter", 22*6777b538SAndroid Build Coastguard Worker "-pthread", 23*6777b538SAndroid Build Coastguard Worker "-Wmissing-field-initializers", 24*6777b538SAndroid Build Coastguard Worker "-Wno-uninitialized", 25*6777b538SAndroid Build Coastguard Worker "-mcpu=power5+", 26*6777b538SAndroid Build Coastguard Worker "-mfprnd", 27*6777b538SAndroid Build Coastguard Worker "-mno-popcntb", 28*6777b538SAndroid Build Coastguard Worker "-maix64", 29*6777b538SAndroid Build Coastguard Worker "-fdata-sections", 30*6777b538SAndroid Build Coastguard Worker "-ffunction-sections", 31*6777b538SAndroid Build Coastguard Worker "-fno-extern-tls-init", 32*6777b538SAndroid Build Coastguard Worker "-O3", 33*6777b538SAndroid Build Coastguard Worker 34*6777b538SAndroid Build Coastguard Worker # "-Werror" 35*6777b538SAndroid Build Coastguard Worker # We need to find a way to fix the TOC warnings if we want to enable this. 36*6777b538SAndroid Build Coastguard Worker ] 37*6777b538SAndroid Build Coastguard Worker 38*6777b538SAndroid Build Coastguard Worker cflags_cc = [ 39*6777b538SAndroid Build Coastguard Worker "-fno-rtti", 40*6777b538SAndroid Build Coastguard Worker "-fno-exceptions", 41*6777b538SAndroid Build Coastguard Worker "-Wno-narrowing", 42*6777b538SAndroid Build Coastguard Worker "-Wno-non-virtual-dtor", 43*6777b538SAndroid Build Coastguard Worker ] 44*6777b538SAndroid Build Coastguard Worker 45*6777b538SAndroid Build Coastguard Worker ldflags = [ 46*6777b538SAndroid Build Coastguard Worker "-pthread", 47*6777b538SAndroid Build Coastguard Worker "-maix64", 48*6777b538SAndroid Build Coastguard Worker "-Wl,-bbigtoc", 49*6777b538SAndroid Build Coastguard Worker ] 50*6777b538SAndroid Build Coastguard Worker 51*6777b538SAndroid Build Coastguard Worker if (is_component_build) { 52*6777b538SAndroid Build Coastguard Worker cflags += [ "-fpic" ] 53*6777b538SAndroid Build Coastguard Worker ldflags += [ 54*6777b538SAndroid Build Coastguard Worker "-Wl,-brtl", 55*6777b538SAndroid Build Coastguard Worker 56*6777b538SAndroid Build Coastguard Worker # -bnoipath so that only names of .so objects are stored in loader 57*6777b538SAndroid Build Coastguard Worker # section, excluding leading "./" 58*6777b538SAndroid Build Coastguard Worker "-Wl,-bnoipath", 59*6777b538SAndroid Build Coastguard Worker ] 60*6777b538SAndroid Build Coastguard Worker } 61*6777b538SAndroid Build Coastguard Worker} 62