| # Copyright 2018 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. |
| |
| # This config is included for every fuzz target. |
| # You can add anything in here that's valid in a target dictionary. |
| # Fuzzing only works for amd64 boards at this point. |
| config("common_fuzzer") { |
| cflags = [] |
| ldflags = [] |
| if (use.asan) { |
| cflags += [ "-fsanitize=address" ] |
| ldflags += [ "-fsanitize=address" ] |
| } |
| |
| if (use.coverage) { |
| cflags += [ |
| "-fprofile-instr-generate", |
| "-fcoverage-mapping", |
| ] |
| ldflags += [ |
| "-fprofile-instr-generate", |
| "-fcoverage-mapping", |
| ] |
| } |
| |
| if (use.fuzzer) { |
| cflags += [ "-fsanitize=fuzzer-no-link" ] |
| ldflags += [ "-fsanitize=fuzzer" ] |
| } |
| |
| if (use.msan) { |
| cflags += [ "-fsanitize=memory" ] |
| ldflags += [ "-fsanitize=memory" ] |
| } |
| |
| if (use.ubsan) { |
| cflags += [ |
| "-fsanitize=undefined", |
| "-fno-sanitize=vptr", |
| ] |
| ldflags += [ |
| "-fsanitize=undefined", |
| "-fno-sanitize=vptr", |
| ] |
| } |
| } |