diff options
author | Tobias Bosch <tbosch@google.com> | 2019-07-19 02:56:31 -0700 |
---|---|---|
committer | Tobias Bosch <tbosch@google.com> | 2019-07-22 08:06:23 +0000 |
commit | e23905c00b38f3a2858018040d73ec402e97c15f (patch) | |
tree | 6f022842217f1ba66f4427f06eacbe9707c8ccff /compiler_wrapper | |
parent | cfa8c2459f3957b2557dfe67d830550f12c14364 (diff) | |
download | toolchain-utils-e23905c00b38f3a2858018040d73ec402e97c15f.tar.gz |
Sync with recent changes to old wrapper.
Old wrapper changes:
https://chromium.git.corp.google.com/chromiumos/overlays/chromiumos-overlay/+/bebf19ee4322c26d7cb548c8f4419dfe1c6e3c11
https://chromium.git.corp.google.com/chromiumos/overlays/chromiumos-overlay/+/cc6e225d3894f99b320584b2f41ff6a68f76d6a7
BUG=chromium:773875
TEST=unit test
Change-Id: I927bcb6082d1b67ca9efde0001e43e0a0a36c3b4
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1710403
Tested-by: Tobias Bosch <tbosch@google.com>
Reviewed-by: George Burgess <gbiv@chromium.org>
Diffstat (limited to 'compiler_wrapper')
-rw-r--r-- | compiler_wrapper/config.go | 2 | ||||
-rw-r--r-- | compiler_wrapper/cros_hardened_config_test.go | 4 | ||||
-rw-r--r-- | compiler_wrapper/sanitizer_flags.go | 20 | ||||
-rw-r--r-- | compiler_wrapper/sanitizer_flags_test.go | 21 | ||||
-rw-r--r-- | compiler_wrapper/testdata/cros_hardened_golden.json | 146 | ||||
-rw-r--r-- | compiler_wrapper/testdata/cros_hardened_noccache_golden.json | 26 | ||||
-rw-r--r-- | compiler_wrapper/testdata/cros_nonhardened_golden.json | 136 |
7 files changed, 350 insertions, 5 deletions
diff --git a/compiler_wrapper/config.go b/compiler_wrapper/config.go index 92565592..9dce8fe6 100644 --- a/compiler_wrapper/config.go +++ b/compiler_wrapper/config.go @@ -93,6 +93,7 @@ func getCrosHardenedConfig(useCCache bool) *config { "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", }, newWarningsDir: "/tmp/fatal_clang_warnings", } @@ -120,6 +121,7 @@ func getCrosNonHardenedConfig(useCCache bool) *config { "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", }, newWarningsDir: "/tmp/fatal_clang_warnings", } diff --git a/compiler_wrapper/cros_hardened_config_test.go b/compiler_wrapper/cros_hardened_config_test.go index 4629adb8..7802449b 100644 --- a/compiler_wrapper/cros_hardened_config_test.go +++ b/compiler_wrapper/cros_hardened_config_test.go @@ -428,6 +428,10 @@ func createSysrootWrapperCommonGoldenInputs(compiler string, gomaEnv string) gol Cmds: okResults, }, { + WrapperCmd: newGoldenCmd(wrapperPath, "-fsanitize=fuzzer", mainCc), + Cmds: okResults, + }, + { WrapperCmd: newGoldenCmd(wrapperPath, "--sysroot=xyz", mainCc), Cmds: okResults, }, diff --git a/compiler_wrapper/sanitizer_flags.go b/compiler_wrapper/sanitizer_flags.go index 3ec62b67..32f2cb78 100644 --- a/compiler_wrapper/sanitizer_flags.go +++ b/compiler_wrapper/sanitizer_flags.go @@ -9,18 +9,21 @@ import ( ) func processSanitizerFlags(builder *commandBuilder) { - filterSanitizerFlags := false + hasSanitizeFlags := false + hasSanitizeFuzzerFlags := false for _, arg := range builder.args { // TODO: This should probably be -fsanitize= to not match on // e.g. -fsanitize-blacklist if arg.fromUser && strings.HasPrefix(arg.value, "-fsanitize") { - filterSanitizerFlags = true - break + hasSanitizeFlags = true + if strings.Contains(arg.value, "fuzzer") { + hasSanitizeFuzzerFlags = true + } } } - if filterSanitizerFlags { + if hasSanitizeFlags { // Flags not supported by sanitizers (ASan etc.) - var unsupportedSanitizerFlags = map[string]bool{ + unsupportedSanitizerFlags := map[string]bool{ "-D_FORTIFY_SOURCE=1": true, "-D_FORTIFY_SOURCE=2": true, "-Wl,--no-undefined": true, @@ -36,5 +39,12 @@ func processSanitizerFlags(builder *commandBuilder) { } return arg.value }) + if hasSanitizeFuzzerFlags && builder.target.compilerType == clangType { + fuzzerFlagsToAdd := []string{ + // TODO: This flag should be removed once fuzzer works with new pass manager + "-fno-experimental-new-pass-manager", + } + builder.addPreUserArgs(fuzzerFlagsToAdd...) + } } } diff --git a/compiler_wrapper/sanitizer_flags_test.go b/compiler_wrapper/sanitizer_flags_test.go index a401d58e..741f7732 100644 --- a/compiler_wrapper/sanitizer_flags_test.go +++ b/compiler_wrapper/sanitizer_flags_test.go @@ -98,3 +98,24 @@ func TestKeepSanitizerFlagsIfSanitizeGivenInCommonFlags(t *testing.T) { } }) } + +func TestAddFuzzerFlagsForClang(t *testing.T) { + withTestContext(t, func(ctx *testContext) { + cmd := ctx.must(callCompiler(ctx, ctx.cfg, + ctx.newCommand(clangX86_64, "-fsanitize=fuzzer", mainCc))) + if err := verifyArgOrder(cmd, "-fno-experimental-new-pass-manager", + "-fsanitize=fuzzer", mainCc); err != nil { + t.Error(err) + } + }) +} + +func TestOmitFuzzerFlagsForGcc(t *testing.T) { + withTestContext(t, func(ctx *testContext) { + cmd := ctx.must(callCompiler(ctx, ctx.cfg, + ctx.newCommand(gccX86_64, "-fsanitize=fuzzer", mainCc))) + if err := verifyArgCount(cmd, 0, "-fno-experimental-new-pass-manager"); err != nil { + t.Error(err) + } + }) +} diff --git a/compiler_wrapper/testdata/cros_hardened_golden.json b/compiler_wrapper/testdata/cros_hardened_golden.json index 94d3e83b..e80cd882 100644 --- a/compiler_wrapper/testdata/cros_hardened_golden.json +++ b/compiler_wrapper/testdata/cros_hardened_golden.json @@ -765,6 +765,45 @@ "cmd": { "path": "./x86_64-cros-linux-gnu-gcc", "args": [ + "-fsanitize=fuzzer", + "main.cc" + ] + } + }, + "cmds": [ + { + "cmd": { + "path": "/usr/bin/ccache", + "args": [ + "./x86_64-cros-linux-gnu-gcc.real", + "--sysroot=/usr/x86_64-cros-linux-gnu", + "-fno-reorder-blocks-and-partition", + "-Wno-unused-local-typedefs", + "-Wno-maybe-uninitialized", + "-fstack-protector-strong", + "-fPIE", + "-pie", + "-D_FORTIFY_SOURCE=2", + "-fno-omit-frame-pointer", + "-fsanitize=fuzzer", + "main.cc", + "-mno-movbe" + ], + "env_updates": [ + "CCACHE_BASEDIR=/usr/x86_64-cros-linux-gnu", + "CCACHE_DIR=/var/cache/distfiles/ccache", + "CCACHE_UMASK=002" + ] + } + } + ] + }, + { + "wd": "/tmp/stable", + "wrapper": { + "cmd": { + "path": "./x86_64-cros-linux-gnu-gcc", + "args": [ "--sysroot=xyz", "main.cc" ] @@ -948,6 +987,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -1016,6 +1056,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -1078,6 +1119,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -1124,6 +1166,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -1196,6 +1239,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -1243,6 +1287,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -1290,6 +1335,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -1337,6 +1383,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -1391,6 +1438,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -1450,6 +1498,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -1503,6 +1552,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -1557,6 +1607,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -1601,6 +1652,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -1645,6 +1697,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -1689,6 +1742,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -1733,6 +1787,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -1777,6 +1832,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -1821,6 +1877,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -1865,6 +1922,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -1909,6 +1967,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -1959,6 +2018,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -2005,6 +2065,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -2051,6 +2112,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -2097,6 +2159,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -2143,6 +2206,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -2189,6 +2253,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -2235,6 +2300,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -2281,6 +2347,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -2327,6 +2394,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -2412,6 +2480,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -2459,6 +2528,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -2498,6 +2568,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-D_FORTIFY_SOURCE=2", "-fno-omit-frame-pointer", @@ -2541,6 +2612,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-D_FORTIFY_SOURCE=2", "-fno-omit-frame-pointer", "-fno-stack-protector", @@ -2586,6 +2658,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -2632,6 +2705,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -2678,6 +2752,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -2724,6 +2799,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -2750,6 +2826,53 @@ "cmd": { "path": "./x86_64-cros-linux-gnu-clang", "args": [ + "-fsanitize=fuzzer", + "main.cc" + ] + } + }, + "cmds": [ + { + "cmd": { + "path": "/usr/bin/ccache", + "args": [ + "../../usr/bin/clang", + "--sysroot=/usr/x86_64-cros-linux-gnu", + "-Qunused-arguments", + "-grecord-gcc-switches", + "-fno-addrsig", + "-Wno-tautological-constant-compare", + "-Wno-tautological-unsigned-enum-zero-compare", + "-Wno-unknown-warning-option", + "-Wno-section", + "-static-libgcc", + "-fstack-protector-strong", + "-fPIE", + "-pie", + "-fno-omit-frame-pointer", + "-fno-experimental-new-pass-manager", + "-fsanitize=fuzzer", + "main.cc", + "-B../../bin", + "-target", + "x86_64-cros-linux-gnu" + ], + "env_updates": [ + "CCACHE_BASEDIR=/usr/x86_64-cros-linux-gnu", + "CCACHE_DIR=/var/cache/distfiles/ccache", + "CCACHE_UMASK=002", + "CCACHE_CPP2=yes" + ] + } + } + ] + }, + { + "wd": "/tmp/stable", + "wrapper": { + "cmd": { + "path": "./x86_64-cros-linux-gnu-clang", + "args": [ "--sysroot=xyz", "main.cc" ] @@ -2768,6 +2891,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -2829,6 +2953,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -2874,6 +2999,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -2920,6 +3046,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -2966,6 +3093,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -3012,6 +3140,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -3058,6 +3187,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -3104,6 +3234,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -3163,6 +3294,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -3219,6 +3351,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -3274,6 +3407,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -3321,6 +3455,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -3354,6 +3489,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -3404,6 +3540,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -3437,6 +3574,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -3505,6 +3643,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -3529,6 +3668,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -3583,6 +3723,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -3608,6 +3749,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -3664,6 +3806,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -3692,6 +3835,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -3749,6 +3893,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -3774,6 +3919,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", diff --git a/compiler_wrapper/testdata/cros_hardened_noccache_golden.json b/compiler_wrapper/testdata/cros_hardened_noccache_golden.json index 9ed9bab8..7414b94c 100644 --- a/compiler_wrapper/testdata/cros_hardened_noccache_golden.json +++ b/compiler_wrapper/testdata/cros_hardened_noccache_golden.json @@ -98,6 +98,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -138,6 +139,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -178,6 +180,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -218,6 +221,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -265,6 +269,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -318,6 +323,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -370,6 +376,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -418,6 +425,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -480,6 +488,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -542,6 +551,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -588,6 +598,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -662,6 +673,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -711,6 +723,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -759,6 +772,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -799,6 +813,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -825,6 +840,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -868,6 +884,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -894,6 +911,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -956,6 +974,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -980,6 +999,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -1034,6 +1054,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -1059,6 +1080,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -1115,6 +1137,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -1143,6 +1166,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -1200,6 +1224,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", @@ -1225,6 +1250,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fstack-protector-strong", "-fPIE", "-pie", diff --git a/compiler_wrapper/testdata/cros_nonhardened_golden.json b/compiler_wrapper/testdata/cros_nonhardened_golden.json index c82557da..05cacadb 100644 --- a/compiler_wrapper/testdata/cros_nonhardened_golden.json +++ b/compiler_wrapper/testdata/cros_nonhardened_golden.json @@ -694,6 +694,41 @@ "cmd": { "path": "./x86_64-cros-linux-gnu-gcc", "args": [ + "-fsanitize=fuzzer", + "main.cc" + ] + } + }, + "cmds": [ + { + "cmd": { + "path": "/usr/bin/ccache", + "args": [ + "./x86_64-cros-linux-gnu-gcc.real", + "--sysroot=/usr/x86_64-cros-linux-gnu", + "-Wno-maybe-uninitialized", + "-Wno-unused-local-typedefs", + "-Wno-deprecated-declarations", + "-Wtrampolines", + "-fsanitize=fuzzer", + "main.cc", + "-mno-movbe" + ], + "env_updates": [ + "CCACHE_BASEDIR=/usr/x86_64-cros-linux-gnu", + "CCACHE_DIR=/var/cache/distfiles/ccache", + "CCACHE_UMASK=002" + ] + } + } + ] + }, + { + "wd": "/tmp/stable", + "wrapper": { + "cmd": { + "path": "./x86_64-cros-linux-gnu-gcc", + "args": [ "--sysroot=xyz", "main.cc" ] @@ -859,6 +894,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "main.cc", "-B../../bin", "-target", @@ -916,6 +952,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "main.cc", "-B../../bin", "-target", @@ -967,6 +1004,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "main.cc", "-B../../bin", "-target", @@ -1006,6 +1044,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "main.cc", "-B../../bin", "-target", @@ -1067,6 +1106,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "main.cc", "-B../../bin", "-target", @@ -1107,6 +1147,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "main.cc", "-B../../bin", "-target", @@ -1147,6 +1188,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "main.cc", "-B../../bin", "-target", @@ -1187,6 +1229,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "main.cc", "-B../../bin", "-target", @@ -1234,6 +1277,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-resource-dir=someResourceDir", "--gcc-toolchain=/usr", "main.cc", @@ -1286,6 +1330,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-resource-dir=someResourceDir", "--gcc-toolchain=/usr", "main.cc", @@ -1332,6 +1377,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-resource-dir=someResourceDir", "--gcc-toolchain=/usr", "main.cc", @@ -1379,6 +1425,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "main.cc", "-B../../bin", "-target", @@ -1416,6 +1463,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "main.cc", "-B../../bin", "-target", @@ -1453,6 +1501,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "main.cc", "-B../../bin", "-target", @@ -1490,6 +1539,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-mthumb", "main.cc", "-B../../bin", @@ -1528,6 +1578,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "main.cc", "-B../../bin", "-target", @@ -1565,6 +1616,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-mthumb", "main.cc", "-B../../bin", @@ -1603,6 +1655,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-mthumb", "main.cc", "-B../../bin", @@ -1641,6 +1694,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "main.cc", "-B../../bin", "-target", @@ -1678,6 +1732,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-mthumb", "main.cc", "-B../../bin", @@ -1722,6 +1777,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-ftrapv", "main.cc", "-B../../bin", @@ -1761,6 +1817,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-ftrapv", "main.cc", "-B../../bin", @@ -1800,6 +1857,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-ftrapv", "main.cc", "-B../../bin", @@ -1839,6 +1897,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-mthumb", "-ftrapv", "main.cc", @@ -1879,6 +1938,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-ftrapv", "main.cc", "-B../../bin", @@ -1918,6 +1978,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-mthumb", "-ftrapv", "main.cc", @@ -1958,6 +2019,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-mthumb", "-ftrapv", "main.cc", @@ -1998,6 +2060,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-ftrapv", "main.cc", "-B../../bin", @@ -2037,6 +2100,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-mthumb", "-ftrapv", "main.cc", @@ -2112,6 +2176,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "main.cc", "-B../../bin", "-target", @@ -2152,6 +2217,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "main.cc", "-B../../bin", "-target", @@ -2184,6 +2250,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "main.cc", "-B../../bin", "-target", @@ -2222,6 +2289,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fno-stack-protector", "-D__KERNEL__", "main.cc", @@ -2263,6 +2331,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fsanitize=kernel-address", "main.cc", "-B../../bin", @@ -2303,6 +2372,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fsanitize=kernel-address", "main.cc", "-B../../bin", @@ -2343,6 +2413,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fsanitize=kernel-address", "main.cc", "-B../../bin", @@ -2383,6 +2454,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-fsanitize=kernel-address", "main.cc", "-B../../bin", @@ -2405,6 +2477,47 @@ "cmd": { "path": "./x86_64-cros-linux-gnu-clang", "args": [ + "-fsanitize=fuzzer", + "main.cc" + ] + } + }, + "cmds": [ + { + "cmd": { + "path": "/usr/bin/ccache", + "args": [ + "../../usr/bin/clang", + "--sysroot=/usr/x86_64-cros-linux-gnu", + "-Qunused-arguments", + "-Wno-tautological-constant-compare", + "-Wno-tautological-unsigned-enum-zero-compare", + "-Wno-unknown-warning-option", + "-Wno-section", + "-static-libgcc", + "-fno-experimental-new-pass-manager", + "-fsanitize=fuzzer", + "main.cc", + "-B../../bin", + "-target", + "x86_64-cros-linux-gnu" + ], + "env_updates": [ + "CCACHE_BASEDIR=/usr/x86_64-cros-linux-gnu", + "CCACHE_DIR=/var/cache/distfiles/ccache", + "CCACHE_UMASK=002", + "CCACHE_CPP2=yes" + ] + } + } + ] + }, + { + "wd": "/tmp/stable", + "wrapper": { + "cmd": { + "path": "./x86_64-cros-linux-gnu-clang", + "args": [ "--sysroot=xyz", "main.cc" ] @@ -2421,6 +2534,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "--sysroot=xyz", "main.cc", "-B../../bin", @@ -2475,6 +2589,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "main.cc", "-B../../bin", "-target", @@ -2513,6 +2628,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-Wno-#warnings", "main.cc", "-B../../bin", @@ -2552,6 +2668,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-Wno-error=uninitialized", "main.cc", "-B../../bin", @@ -2591,6 +2708,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-Wno-error=unused-variable", "main.cc", "-B../../bin", @@ -2630,6 +2748,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-Wno-unused-variable", "main.cc", "-B../../bin", @@ -2669,6 +2788,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-Wunused-variable", "main.cc", "-B../../bin", @@ -2708,6 +2828,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "-someflag", "main.cc", "-B../../bin", @@ -2760,6 +2881,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "main.cc", "-B../../bin", "-target", @@ -2809,6 +2931,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "main.cc", "-B../../bin", "-target", @@ -2857,6 +2980,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "main.cc", "-B../../bin", "-target", @@ -2897,6 +3021,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "main.cc", "-B../../bin", "-target", @@ -2923,6 +3048,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "main.cc", "-B../../bin", "-target", @@ -2966,6 +3092,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "main.cc", "-B../../bin", "-target", @@ -2992,6 +3119,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "main.cc", "-B../../bin", "-target", @@ -3053,6 +3181,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "main.cc", "-B../../bin", "-target", @@ -3070,6 +3199,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "main.cc", "-B../../bin", "-target", @@ -3117,6 +3247,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "main.cc", "-B../../bin", "-target", @@ -3135,6 +3266,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "main.cc", "-B../../bin", "-target", @@ -3184,6 +3316,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "main.cc", "-B../../bin", "-target", @@ -3205,6 +3338,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "main.cc", "-B../../bin", "-target", @@ -3255,6 +3389,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "main.cc", "-B../../bin", "-target", @@ -3273,6 +3408,7 @@ "-Wno-tautological-unsigned-enum-zero-compare", "-Wno-unknown-warning-option", "-Wno-section", + "-static-libgcc", "main.cc", "-B../../bin", "-target", |