blob: 246057206d4266ae49c61809e6fe33dc9a5ea648 [file] [log] [blame]
// 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
})
}
}