// Copyright 2019 The Chromium OS Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. package main func processStackProtectorFlags(builder *commandBuilder) { fstackMap := map[string]bool{"-D__KERNEL__": true, "-fno-stack-protector": true, "-nodefaultlibs": true, "-nostdlib": true} fstack := false if builder.target.abi != "eabi" { for _, arg := range builder.args { if arg.fromUser && fstackMap[arg.value] { fstack = true break } } } if fstack { builder.addPreUserArgs("-fno-stack-protector") builder.transformArgs(func(arg builderArg) string { if !arg.fromUser && arg.value == "-fstack-protector-strong" { return "" } return arg.value }) } }