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]c79bf2ea4c
[3]8ebc3668b0/lib/fuzzer/CMakeLists.txt (L93-L107)
8ebc3668b0/lib/fuzzer/FuzzerMain.cpp
Change-Id: I946b3c821c3d7e6def7e07f1381f58241611ba3d Reviewed-on: https://boringssl-review.googlesource.com/c/34184 Commit-Queue: David Benjamin <davidben@google.com> Reviewed-by: Adam Langley <agl@google.com>
232 lines
7.1 KiB
Python
232 lines
7.1 KiB
Python
# Copyright (c) 2015, Google Inc.
|
|
#
|
|
# Permission to use, copy, modify, and/or distribute this software for any
|
|
# purpose with or without fee is hereby granted, provided that the above
|
|
# copyright notice and this permission notice appear in all copies.
|
|
#
|
|
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
|
# SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
|
|
# OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
|
|
# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
|
|
vars = {
|
|
'chromium_git': 'https://chromium.googlesource.com',
|
|
|
|
'checkout_clang': False,
|
|
'checkout_sde': False,
|
|
'checkout_nasm': False,
|
|
'checkout_libcxx': False,
|
|
}
|
|
|
|
deps = {
|
|
'boringssl/util/bot/android_ndk': {
|
|
'url': Var('chromium_git') + '/android_ndk.git' + '@' + '4e2cea441bfd43f0863d14f57b1e1844260b9884',
|
|
'condition': 'checkout_android',
|
|
},
|
|
|
|
'boringssl/util/bot/android_tools': {
|
|
'url': Var('chromium_git') + '/android_tools.git' + '@' + 'e958d6ea74442d4e0849bb8a018d215a0e78981d',
|
|
'condition': 'checkout_android',
|
|
},
|
|
|
|
'boringssl/util/bot/gyp':
|
|
Var('chromium_git') + '/external/gyp.git' + '@' + 'd61a9397e668fa9843c4aa7da9e79460fe590bfb',
|
|
|
|
'boringssl/util/bot/libFuzzer': {
|
|
'url': Var('chromium_git') + '/chromium/llvm-project/compiler-rt/lib/fuzzer.git' +'@' + '2a53098584c48af50aec3fb51febe5e651489774',
|
|
'condition': 'checkout_fuzzer',
|
|
},
|
|
|
|
# Update the following revisions from
|
|
# https://chromium.googlesource.com/chromium/buildtools/+/master/DEPS
|
|
'boringssl/util/bot/libcxx': {
|
|
'url': Var('chromium_git') + '/chromium/llvm-project/libcxx.git' + '@' + 'e713cc0acf1ae8b82f451bf58ebef67a46ceddfb',
|
|
'condition': 'checkout_libcxx',
|
|
},
|
|
'boringssl/util/bot/libcxxabi': {
|
|
'url': Var('chromium_git') + '/chromium/llvm-project/libcxxabi.git' + '@' + '307bb62985575b2e3216a8cfd7e122e0574f33a9',
|
|
'condition': 'checkout_libcxx',
|
|
},
|
|
}
|
|
|
|
recursedeps = [
|
|
# android_tools pulls in the NDK from a separate repository.
|
|
'boringssl/util/bot/android_tools',
|
|
]
|
|
|
|
hooks = [
|
|
{
|
|
'name': 'cmake_linux64',
|
|
'pattern': '.',
|
|
'condition': 'host_os == "linux"',
|
|
'action': [ 'download_from_google_storage',
|
|
'--no_resume',
|
|
'--platform=linux*',
|
|
'--no_auth',
|
|
'--bucket', 'chromium-tools',
|
|
'-s', 'boringssl/util/bot/cmake-linux64.tar.gz.sha1',
|
|
],
|
|
},
|
|
{
|
|
'name': 'cmake_linux64_extract',
|
|
'pattern': '.',
|
|
'condition': 'host_os == "linux"',
|
|
'action': [ 'python',
|
|
'boringssl/util/bot/extract.py',
|
|
'boringssl/util/bot/cmake-linux64.tar.gz',
|
|
'boringssl/util/bot/cmake-linux64/',
|
|
],
|
|
},
|
|
{
|
|
'name': 'cmake_mac',
|
|
'pattern': '.',
|
|
'condition': 'host_os == "mac"',
|
|
'action': [ 'download_from_google_storage',
|
|
'--no_resume',
|
|
'--platform=darwin',
|
|
'--no_auth',
|
|
'--bucket', 'chromium-tools',
|
|
'-s', 'boringssl/util/bot/cmake-mac.tar.gz.sha1',
|
|
],
|
|
},
|
|
{
|
|
'name': 'cmake_mac_extract',
|
|
'pattern': '.',
|
|
'condition': 'host_os == "mac"',
|
|
'action': [ 'python',
|
|
'boringssl/util/bot/extract.py',
|
|
'boringssl/util/bot/cmake-mac.tar.gz',
|
|
'boringssl/util/bot/cmake-mac/',
|
|
],
|
|
},
|
|
{
|
|
'name': 'cmake_win32',
|
|
'pattern': '.',
|
|
'condition': 'host_os == "win"',
|
|
'action': [ 'download_from_google_storage',
|
|
'--no_resume',
|
|
'--platform=win32',
|
|
'--no_auth',
|
|
'--bucket', 'chromium-tools',
|
|
'-s', 'boringssl/util/bot/cmake-win32.zip.sha1',
|
|
],
|
|
},
|
|
{
|
|
'name': 'cmake_win32_extract',
|
|
'pattern': '.',
|
|
'condition': 'host_os == "win"',
|
|
'action': [ 'python',
|
|
'boringssl/util/bot/extract.py',
|
|
'boringssl/util/bot/cmake-win32.zip',
|
|
'boringssl/util/bot/cmake-win32/',
|
|
],
|
|
},
|
|
{
|
|
'name': 'perl_win32',
|
|
'pattern': '.',
|
|
'condition': 'host_os == "win"',
|
|
'action': [ 'download_from_google_storage',
|
|
'--no_resume',
|
|
'--platform=win32',
|
|
'--no_auth',
|
|
'--bucket', 'chromium-tools',
|
|
'-s', 'boringssl/util/bot/perl-win32.zip.sha1',
|
|
],
|
|
},
|
|
{
|
|
'name': 'perl_win32_extract',
|
|
'pattern': '.',
|
|
'condition': 'host_os == "win"',
|
|
'action': [ 'python',
|
|
'boringssl/util/bot/extract.py',
|
|
'--no-prefix',
|
|
'boringssl/util/bot/perl-win32.zip',
|
|
'boringssl/util/bot/perl-win32/',
|
|
],
|
|
},
|
|
{
|
|
'name': 'yasm_win32',
|
|
'pattern': '.',
|
|
'condition': 'host_os == "win" and not checkout_nasm',
|
|
'action': [ 'download_from_google_storage',
|
|
'--no_resume',
|
|
'--platform=win32',
|
|
'--no_auth',
|
|
'--bucket', 'chromium-tools',
|
|
'-s', 'boringssl/util/bot/yasm-win32.exe.sha1',
|
|
],
|
|
},
|
|
{
|
|
'name': 'nasm_win32',
|
|
'pattern': '.',
|
|
'condition': 'host_os == "win" and checkout_nasm',
|
|
'action': [ 'download_from_google_storage',
|
|
'--no_resume',
|
|
'--platform=win32',
|
|
'--no_auth',
|
|
'--bucket', 'chromium-tools',
|
|
'-s', 'boringssl/util/bot/nasm-win32.exe.sha1',
|
|
],
|
|
},
|
|
{
|
|
'name': 'win_toolchain',
|
|
'pattern': '.',
|
|
'condition': 'host_os == "win"',
|
|
'action': [ 'python',
|
|
'boringssl/util/bot/vs_toolchain.py',
|
|
'update',
|
|
],
|
|
},
|
|
{
|
|
'name': 'clang',
|
|
'pattern': '.',
|
|
'condition': 'checkout_clang',
|
|
'action': [ 'python',
|
|
'boringssl/util/bot/update_clang.py',
|
|
],
|
|
},
|
|
{
|
|
'name': 'sde_linux64',
|
|
'pattern': '.',
|
|
'condition': 'checkout_sde and host_os == "linux"',
|
|
'action': [ 'download_from_google_storage',
|
|
'--no_resume',
|
|
'--bucket', 'chrome-boringssl-sde',
|
|
'-s', 'boringssl/util/bot/sde-linux64.tar.bz2.sha1'
|
|
],
|
|
},
|
|
{
|
|
'name': 'sde_linux64_extract',
|
|
'pattern': '.',
|
|
'condition': 'checkout_sde and host_os == "linux"',
|
|
'action': [ 'python',
|
|
'boringssl/util/bot/extract.py',
|
|
'boringssl/util/bot/sde-linux64.tar.bz2',
|
|
'boringssl/util/bot/sde-linux64/',
|
|
],
|
|
},
|
|
{
|
|
'name': 'sde_win32',
|
|
'pattern': '.',
|
|
'condition': 'checkout_sde and host_os == "win"',
|
|
'action': [ 'download_from_google_storage',
|
|
'--no_resume',
|
|
'--bucket', 'chrome-boringssl-sde',
|
|
'-s', 'boringssl/util/bot/sde-win32.tar.bz2.sha1'
|
|
],
|
|
},
|
|
{
|
|
'name': 'sde_win32_extract',
|
|
'pattern': '.',
|
|
'condition': 'checkout_sde and host_os == "win"',
|
|
'action': [ 'python',
|
|
'boringssl/util/bot/extract.py',
|
|
'boringssl/util/bot/sde-win32.tar.bz2',
|
|
'boringssl/util/bot/sde-win32/',
|
|
],
|
|
},
|
|
]
|