// 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
		})
	}
}
