You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
774 B
30 lines
774 B
// 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
|
|
})
|
|
}
|
|
}
|