Enable rust toolchain for bots that depend on chromium base/.

The Android bots and the libfuzzer bots have an indirect dependency on base. This CL downloads the rust toolchain for these bots so that rust can be used in Chromium base/ without guards to prevent WebRTC from breaking.

Change-Id: I81e0a32827e8eee29f333d933d0fb21dc0b7dc23
Bug: None
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/367921
Commit-Queue: Jeremy Leconte <jleconte@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43384}
This commit is contained in:
Jeremy Leconte 2024-11-08 21:02:24 +01:00 committed by WebRTC LUCI CQ
parent 7a79d68645
commit 849549d403
3 changed files with 123 additions and 15 deletions

3
.gn
View File

@ -82,6 +82,7 @@ default_args = {
# let's temporarily disable it.
enable_jni_multiplexing = false
# This adds a dependency to //base.
# TODO(b/42223878): use_fuzztest_wrapper adds a dependency to //base so
# let's temporarly disable it.
use_fuzztest_wrapper = false
}

46
DEPS
View File

@ -126,6 +126,46 @@ deps = {
'condition': 'not (host_os == "linux" and host_cpu == "arm64")',
},
'third_party/rust': {
'url': Var('chromium_git') + '/chromium/src/third_party/rust@0e0ef14876a32128574eaf80bc7fc1c7cde92006',
'condition': 'checkout_android or checkout_fuzzer',
},
'third_party/rust-toolchain': {
'dep_type': 'gcs',
'bucket': 'chromium-browser-clang',
'objects': [
{
'object_name': 'Linux_x64/rust-toolchain-009e73825af0e59ad4fc603562e038b3dbd6593a-2-llvmorg-20-init-3847-g69c43468.tar.xz',
'sha256sum': '043bc520520424fad9fdfc87102e3af7c8f1ca4da3f7885e18f54fd29fc783e4',
'size_bytes': 115068636,
'generation': 1725552307196828,
'condition': 'host_os == "linux" and non_git_source',
},
{
'object_name': 'Mac/rust-toolchain-009e73825af0e59ad4fc603562e038b3dbd6593a-2-llvmorg-20-init-3847-g69c43468.tar.xz',
'sha256sum': '100befb02da0940fdede41a0ad0e28ded1ce4b6794b5e488bccc91ba1d27348a',
'size_bytes': 108415524,
'generation': 1725552308530261,
'condition': 'host_os == "mac" and host_cpu == "x64"',
},
{
'object_name': 'Mac_arm64/rust-toolchain-009e73825af0e59ad4fc603562e038b3dbd6593a-2-llvmorg-20-init-3847-g69c43468.tar.xz',
'sha256sum': '6f3ba8fe5a9590b476c087b412bd60e7e46ec59bc37aac76d9f7894c6bc34a75',
'size_bytes': 97820200,
'generation': 1725552309875662,
'condition': 'host_os == "mac" and host_cpu == "arm64"',
},
{
'object_name': 'Win/rust-toolchain-009e73825af0e59ad4fc603562e038b3dbd6593a-2-llvmorg-20-init-3847-g69c43468.tar.xz',
'sha256sum': '1d04274c7a96aa0148a9bb5b29fa5b33c24b97971e33634bed62ce504b1cb346',
'size_bytes': 172453420,
'generation': 1725552311180142,
'condition': 'host_os == "win"',
},
],
},
'src/third_party/clang-format/script':
'https://chromium.googlesource.com/external/github.com/llvm/llvm-project/clang/tools/clang-format.git@3c0acd2d4e73dd911309d9e970ba09d58bf23a62',
'src/third_party/libc++/src':
@ -1960,6 +2000,12 @@ hooks = [
'action': ['vpython3', 'src/tools/clang/scripts/update.py',
'--package=clangd'],
},
{
'name': 'rust',
'pattern': '.',
'condition': 'checkout_android or checkout_fuzzer',
'action': ['python3', 'src/tools/rust/update_rust.py'],
},
{
# Update LASTCHANGE.
'name': 'lastchange',

View File

@ -234,54 +234,78 @@
# A given config *may* be platform-specific but is not necessarily so (i.e.,
# we might have mac, win, and linux bots all using the 'release_bot' config).
'configs': {
'android_asan_shared_release_bot_arm':
['android', 'asan', 'clang', 'pure_release_bot', 'arm'],
'android_asan_shared_release_bot_arm': [
'android',
'asan',
'chromium_base_dependency',
'clang',
'pure_release_bot',
'arm',
],
'android_debug_static_bot_arm': [
'android',
'chromium_base_dependency',
'debug_static_bot',
'arm',
'h265',
],
'android_debug_static_bot_arm64': [
'android',
'chromium_base_dependency',
'debug_static_bot',
'arm64',
'h265',
],
'android_debug_static_bot_x64': [
'android',
'chromium_base_dependency',
'debug_static_bot',
'x64',
'h265',
],
'android_debug_static_bot_x86': [
'android',
'chromium_base_dependency',
'debug_static_bot',
'x86',
'h265',
],
'android_pure_release_bot_arm': ['android', 'pure_release_bot', 'arm'],
'android_pure_release_bot_arm64': ['android', 'pure_release_bot', 'arm64'],
'android_pure_release_bot_arm': [
'android',
'chromium_base_dependency',
'pure_release_bot',
'arm',
],
'android_pure_release_bot_arm64': [
'android',
'chromium_base_dependency',
'pure_release_bot',
'arm64',
],
'android_release_bot_arm': [
'android',
'chromium_base_dependency',
'release_bot',
'arm',
'h265',
],
'android_release_bot_arm64': [
'android',
'chromium_base_dependency',
'release_bot',
'arm64',
'h265',
],
'android_release_bot_x64': [
'android',
'chromium_base_dependency',
'release_bot',
'x64',
'h265',
],
'android_release_bot_x86': [
'android',
'chromium_base_dependency',
'release_bot',
'x86',
'h265',
@ -305,15 +329,24 @@
'debug_bot_arm64': ['openh264', 'debug_bot', 'arm64', 'h265'],
'debug_bot_x64': ['openh264', 'debug_bot', 'x64', 'h265'],
'debug_bot_x86': ['openh264', 'debug_bot', 'x86', 'h265'],
'disable_trace_events_android_arm':
['android', 'arm', 'disable_trace_events', 'release_bot'],
'disable_trace_events_android_arm': [
'android',
'arm',
'chromium_base_dependency',
'disable_trace_events',
'release_bot',
],
'disable_trace_events_x64':
['x64', 'disable_trace_events', 'release_bot'],
'disable_trace_events_x86':
['x86', 'disable_trace_events', 'release_bot'],
'dummy_audio_file_devices_no_protobuf_android_arm': [
'android', 'debug_static_bot', 'arm', 'dummy_audio_file_devices',
'no_protobuf'
'android',
'arm',
'chromium_base_dependency',
'debug_static_bot',
'dummy_audio_file_devices',
'no_protobuf',
],
'dummy_audio_file_devices_no_protobuf_x64':
['debug_bot', 'x64', 'dummy_audio_file_devices', 'no_protobuf'],
@ -339,8 +372,14 @@
'ios', 'release_bot', 'arm64', 'no_ios_code_signing', 'xctest',
],
'libfuzzer_asan_release_bot_x64': [
'libfuzzer', 'asan', 'optimize_for_fuzzing', 'openh264',
'pure_release_bot', 'x64', 'h265'
'asan',
'chromium_base_dependency',
'h265',
'libfuzzer',
'openh264',
'optimize_for_fuzzing',
'pure_release_bot',
'x64',
],
'libstdcpp_x64': ['debug_bot', 'x64', 'no_custom_libcxx'],
'mac_asan_clang_release_bot_x64': [
@ -355,7 +394,13 @@
['msan', 'clang', 'openh264', 'pure_release_bot', 'x64', 'h265'],
'no_h264_debug_bot_x86': ['debug_bot', 'x86'],
'openssl_x64': ['debug_bot', 'x64', 'no_build_ssl'],
'perfetto_android_arm': [ 'android', 'arm', 'perfetto', 'release_bot'],
'perfetto_android_arm': [
'android',
'arm',
'chromium_base_dependency',
'perfetto',
'release_bot'
],
'perfetto_x64': [ 'x64', 'perfetto', 'release_bot'],
'perfetto_x86': [ 'x86', 'perfetto', 'release_bot'],
'pure_release_bot_x64': ['openh264', 'pure_release_bot', 'x64', 'h265'],
@ -366,8 +411,14 @@
'release_bot_x64_fuchsia':
['openh264', 'release_bot', 'x64', 'fuchsia', 'h265'],
'release_bot_x86': ['openh264', 'release_bot', 'x86', 'h265'],
'rtti_no_sctp_android_arm':
['android', 'debug_static_bot', 'arm', 'rtti', 'no_sctp'],
'rtti_no_sctp_android_arm': [
'android',
'arm',
'chromium_base_dependency',
'debug_static_bot',
'no_sctp',
'rtti',
],
'rtti_no_sctp_no_unicode_win_x86':
['debug_bot', 'x86', 'rtti', 'no_sctp', 'win_undef_unicode'],
'rtti_no_sctp_x64': ['debug_bot', 'x64', 'rtti', 'no_sctp'],
@ -440,6 +491,10 @@
'asan': {
'gn_args': 'is_asan=true',
},
# TODO(b/42223878): Remove this code when the dependency on base is gone.
'chromium_base_dependency': {
'mixins': ['enable_chromium_prelude', 'enable_rust']
},
# is_clang=true by default, this is only to guard from upstream changes.
'clang': {
'gn_args': 'is_clang=true',
@ -468,6 +523,12 @@
'dummy_audio_file_devices': {
'gn_args': 'rtc_use_dummy_audio_file_devices=true',
},
'enable_chromium_prelude': {
'gn_args': 'enable_chromium_prelude=true',
},
'enable_rust': {
'gn_args': 'enable_rust=true enable_rust_cxx=true',
},
'fuchsia': {
'gn_args': 'target_os="fuchsia"'
},
@ -484,7 +545,7 @@
'gn_args': 'ios_code_signing_identity_description="Apple Development"',
},
'libfuzzer': {
# use_fuzztest_wrapper adds a dependency to //base.
# TODO(b/42223878): use_fuzztest_wrapper adds a dependency to //base.
'gn_args': 'use_libfuzzer=true use_fuzztest_wrapper=true',
},
'lsan': {