6c597be1c6
Unfortunately, this requires partially reverting https://boringssl-review.googlesource.com/31324. This is a mess. While clang proper includes a fuzzer driver, Chromium doesn't use it. Chromium builds exclusively with fuzzer-no-link and links to its own copy of the fuzzer runtime[1]. As of [2], Chromium's clang (which we use on bots) no longer includes the driver, so we must mimic them. However, Chromium's setup is somewhat questionable because fuzzer-no-link pulls in libclang_rt.fuzzer_no_main which still includes most of libclang_rt.fuzzer, just not the one main function[3]. It appears Chromium is actually linking two copies of libclang_rt.fuzzer_no_main. Hopefully this mostly works out as Chromium's clang and libFuzzer should be relatively aligned, but it's not a good assumption for our build, which can take other Clangs too. Thus, if you pass -DFUZZ=1 as-is, we will assume you are using a "normal" Clang with all its relevant runtimes intact. If, however, you are using Chromium clang, you must drop the matching libFuzzer where the bots expected it and build with -DLIBFUZZER_FROM_DEPS=1. This involves no changes to the bots because we never actually unwound all the LIBFUZZER_FROM_DEPS bits before. [1] https://cs.chromium.org/chromium/src/testing/libfuzzer/BUILD.gn?rcl=d21c49585f262e851e2984f96f52905782706325&l=14 [2] |
||
---|---|---|
.. | ||
ar | ||
bot | ||
fipstools | ||
testresult | ||
32-bit-toolchain.cmake | ||
all_tests.go | ||
all_tests.json | ||
BUILD.toplevel | ||
check_filenames.go | ||
check_imported_libraries.go | ||
convert_comments.go | ||
convert_wycheproof.go | ||
diff_asm.go | ||
doc.config | ||
doc.css | ||
doc.go | ||
embed_test_data.go | ||
generate_build_files.py | ||
generate-asm-lcov.py | ||
generate-coverage.sh | ||
godeps.go | ||
make_errors.go | ||
make_prefix_headers.go | ||
read_symbols.go | ||
run_android_tests.go | ||
whitespace.txt |