Update tools and add a .bazelversion So that MODULE.bazel.lock is actually checked to be up-to-date, we should run with --lockfile_mode=error on CI. But since the lock file format changes by Bazel version, that means we also need to pick a particular Bazel version. This matches the best practices documented here: https://bazel.build/external/lockfile#best-practices To update libc++, we now need to pull in a bit of LLVM libc. See https://discourse.llvm.org/t/rfc-project-hand-in-hand-llvm-libc-libc-code-sharing/77701 Change-Id: I53b28067bab86d34be8c76625d6bedc23f0baeba Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/73487 Commit-Queue: Adam Langley <agl@google.com> Auto-Submit: David Benjamin <davidben@google.com> Reviewed-by: Adam Langley <agl@google.com>
diff --git a/.bazelversion b/.bazelversion new file mode 100644 index 0000000..815da58 --- /dev/null +++ b/.bazelversion
@@ -0,0 +1 @@ +7.4.1
diff --git a/.gitignore b/.gitignore index 0826131..b087ff5 100644 --- a/.gitignore +++ b/.gitignore
@@ -24,6 +24,7 @@ /util/bot/libcxx /util/bot/libcxxabi /util/bot/llvm-build +/util/bot/llvm-libc /util/bot/nasm-win32.exe /util/bot/ninja /util/bot/perl-win32
diff --git a/CMakeLists.txt b/CMakeLists.txt index a5e9ca4..38d63db 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt
@@ -449,7 +449,10 @@ libcxx PRIVATE -D_LIBCPP_BUILDING_LIBRARY -DLIBCXX_BUILDING_LIBCXXABI + -DLIBC_NAMESPACE=bssl_llvm_libc ) + # LLVM libc++ depends on some shared headers from LLVM libc. + target_include_directories(libcxx PRIVATE util/bot/llvm-libc) set_target_properties( libcxx libcxxabi PROPERTIES COMPILE_FLAGS "-Wno-missing-prototypes -Wno-implicit-fallthrough" @@ -686,7 +689,8 @@ target_link_libraries(pki_test test_support_lib boringssl_gtest pki crypto) add_dependencies(all_tests pki_test) -# The PKI library requires C++17. +# The PKI library requires C++17, but we haven't required this everywhere yet. +# TODO(crbug.com/42290600): Remove the C++17 bits. set_target_properties( pki pki_test PROPERTIES @@ -711,7 +715,14 @@ add_library(Fuzzer STATIC ${LIBFUZZER_SOURCES}) # libFuzzer does not pass our aggressive warnings. It also must be built # without -fsanitize-coverage options or clang crashes. - set_target_properties(Fuzzer PROPERTIES COMPILE_FLAGS "-Wno-shadow -Wno-format-nonliteral -Wno-missing-prototypes -fsanitize-coverage=0") + set_target_properties( + Fuzzer PROPERTIES + COMPILE_FLAGS "-Wno-shadow -Wno-format-nonliteral -Wno-missing-prototypes -fsanitize-coverage=0" + # libFuzzer requires C++17, but we haven't required this everywhere yet. + # TODO(crbug.com/42290600): Remove this. + CXX_STANDARD 17 + CXX_STANDARD_REQUIRED TRUE + ) endif() add_subdirectory(fuzz)
diff --git a/MODULE.bazel b/MODULE.bazel index 2efb2cb..919c716 100644 --- a/MODULE.bazel +++ b/MODULE.bazel
@@ -33,5 +33,5 @@ bazel_dep(name = "googletest", version = "1.15.2") bazel_dep(name = "platforms", version = "0.0.10") -bazel_dep(name = "rules_cc", version = "0.0.10") +bazel_dep(name = "rules_cc", version = "0.1.0") bazel_dep(name = "rules_license", version = "1.0.0")
diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 0af39b5..2c2a121 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock
@@ -13,7 +13,8 @@ "https://bcr.bazel.build/modules/apple_support/1.5.0/MODULE.bazel": "50341a62efbc483e8a2a6aec30994a58749bd7b885e18dd96aa8c33031e558ef", "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd", "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", - "https://bcr.bazel.build/modules/bazel_features/1.11.0/source.json": "c9320aa53cd1c441d24bd6b716da087ad7e4ff0d9742a9884587596edfe53015", + "https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58", + "https://bcr.bazel.build/modules/bazel_features/1.19.0/source.json": "d7bf14517c1b25b9d9c580b0f8795fceeae08a7590f507b76aace528e941375d", "https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a", "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8", "https://bcr.bazel.build/modules/bazel_skylib/1.1.1/MODULE.bazel": "1add3e7d93ff2e6998f9e118022c84d163917d912f5afafb3058e3d2f1545b5e", @@ -52,20 +53,18 @@ "https://bcr.bazel.build/modules/re2/2024-07-02/MODULE.bazel": "0eadc4395959969297cbcf31a249ff457f2f1d456228c67719480205aa306daa", "https://bcr.bazel.build/modules/re2/2024-07-02/source.json": "547d0111a9d4f362db32196fef805abbf3676e8d6afbe44d395d87816c1130ca", "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647", - "https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002", - "https://bcr.bazel.build/modules/rules_cc/0.0.10/source.json": "90310b16e0e7df0cf40f8d1dccd7d373360f42419a6bfbbf5bb013182dd70e84", "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c", "https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f", "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e", "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5", + "https://bcr.bazel.build/modules/rules_cc/0.1.0/MODULE.bazel": "2fef03775b9ba995ec543868840041cc69e8bc705eb0cb6604a36eee18c87d8b", + "https://bcr.bazel.build/modules/rules_cc/0.1.0/source.json": "8a4e832d75e073ab56c74dd77008cf7a81e107dec4544019eb1eefc1320d55be", "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6", "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74", - "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe", "https://bcr.bazel.build/modules/rules_java/7.6.5/MODULE.bazel": "481164be5e02e4cab6e77a36927683263be56b7e36fef918b458d7a8a1ebadb1", "https://bcr.bazel.build/modules/rules_java/7.6.5/source.json": "a805b889531d1690e3c72a7a7e47a870d00323186a9904b36af83aa3d053ee8d", "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", - "https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036", - "https://bcr.bazel.build/modules/rules_jvm_external/5.2/source.json": "10572111995bc349ce31c78f74b3c147f6b3233975c7fa5eff9211f6db0d34d9", + "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/source.json": "a075731e1b46bc8425098512d038d416e966ab19684a10a34f4741295642fc35", "https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0", "https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d", "https://bcr.bazel.build/modules/rules_license/1.0.0/MODULE.bazel": "a7fda60eefdf3d8c827262ba499957e4df06f659330bbe6cdbdb975b768bb65c", @@ -84,9 +83,7 @@ "https://bcr.bazel.build/modules/rules_python/0.33.2/source.json": "e539592cd3aae4492032cecea510e46ca16eeb972271560b922cae9893944e2f", "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c", "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", - "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c", - "https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c", - "https://bcr.bazel.build/modules/stardoc/0.7.0/source.json": "e3c524bf2ef20992539ce2bc4a2243f4853130209ee831689983e28d05769099", + "https://bcr.bazel.build/modules/stardoc/0.5.1/source.json": "a96f95e02123320aa015b956f29c00cb818fa891ef823d55148e1a362caacf29", "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/source.json": "f1ef7d3f9e0e26d4b23d1c39b5f5de71f584dd7d1b4ef83d9bbba6ec7a6a6459", "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0", @@ -99,20 +96,20 @@ "@@apple_support~//crosstool:setup.bzl%apple_cc_configure_extension": { "general": { "bzlTransitiveDigest": "ltCGFbl/LQQZXn/LEMXfKX7pGwyqNiOCHcmiQW0tmjM=", - "usagesDigest": "RkqDb8JtSSm4rLheCLMw/Dx3QQE7dZbl4taOVEYaQZg=", + "usagesDigest": "2Jj0sTGzjx2KfYRjWYbL6DZ1bi8HL2roIAGfOViiul8=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, "generatedRepoSpecs": { - "local_config_apple_cc": { - "bzlFile": "@@apple_support~//crosstool:setup.bzl", - "ruleClassName": "_apple_cc_autoconf", - "attributes": {} - }, "local_config_apple_cc_toolchains": { "bzlFile": "@@apple_support~//crosstool:setup.bzl", "ruleClassName": "_apple_cc_autoconf_toolchains", "attributes": {} + }, + "local_config_apple_cc": { + "bzlFile": "@@apple_support~//crosstool:setup.bzl", + "ruleClassName": "_apple_cc_autoconf", + "attributes": {} } }, "recordedRepoMappingEntries": [ @@ -127,7 +124,7 @@ "@@platforms//host:extension.bzl%host_platform": { "general": { "bzlTransitiveDigest": "xelQcPZH8+tmuOHVjL9vDxMnnQNMlwj0SlvgoqBkm4U=", - "usagesDigest": "V1R2Y2oMxKNfx2WCWpSCaUV1WefW1o8HZGm3v1vHgY4=", + "usagesDigest": "hgylFkgWSg0ulUwWZzEM1aIftlUnbmw2ynWLdEfHnZc=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {},
diff --git a/util/bot/DEPS b/util/bot/DEPS index 1c7fa7c..a16357a 100644 --- a/util/bot/DEPS +++ b/util/bot/DEPS
@@ -31,20 +31,23 @@ # cipd describe PACKAGE_NAME -version latest # infra/3pp/tools/bazel_bootstrap/linux-amd64 - 'bazel_version': 'version:3@7.3.1.1', + # Keep this in sync with .bazelversion. The CIPD versions have an extra .1 at + # the end which must be removed. See https://crbug.com/380903148. + 'bazel_version': 'version:3@7.4.1.1', # infra/3pp/tools/cmake/linux-amd64 - 'cmake_version': 'version:3@3.30.2.chromium.8', + 'cmake_version': 'version:3@3.31.1.chromium.8', # infra/3pp/tools/go/linux-amd64 - 'go_version': 'version:3@1.22.6', + 'go_version': 'version:3@1.23.3', # infra/3pp/tools/perl/windows-amd64 'perl_version': 'version:2@5.32.1.1', # Update the following from # https://chromium.googlesource.com/chromium/src/+/main/DEPS 'android_sdk_platform-tools_version': 'WihaseZR6cojZbkzIqwGhpTp92ztaGfqq8njBU8eTXYC', - 'libfuzzer_revision': '758bd21f103a501b362b1ca46fa8fcb692eaa303', - 'libcxx_revision': 'de70eaccdf8b5e1c3b574f6849db6294626a3a13', - 'libcxxabi_revision': 'eb6567388e89d9730c76dee71d68ac82e4a1abf6', + 'libfuzzer_revision': 'a7128317fe7935a43d6c9f39df54f21113951941', + 'libcxx_revision': '76cb1e3b4a69ccc6407c9a3aaab3aaba2432f868', + 'libcxxabi_revision': '6c4fa00e4becc30085cbc8b44c2764ef307daae2', + 'llvm_libc_revision': '17e581644f9a71be3eb30f468722ce866058f93a', 'ninja_version': 'version:2@1.12.1.chromium.4', # The Android NDK cannot be updated until https://crbug.com/boringssl/454 is fixed. @@ -112,6 +115,10 @@ 'url': Var('chromium_git') + '/external/github.com/llvm/llvm-project/libcxxabi.git' + '@' + Var('libcxxabi_revision'), 'condition': 'checkout_libcxx', }, + 'boringssl/util/bot/llvm-libc': { + 'url': Var('chromium_git') + '/external/github.com/llvm/llvm-project/libc.git' + '@' + Var('llvm_libc_revision'), + 'condition': 'checkout_libcxx', + }, 'boringssl/util/bot/ninja': { 'packages': [{
diff --git a/util/bot/update_clang.py b/util/bot/update_clang.py index c6c6b8f..b8bb0f3 100644 --- a/util/bot/update_clang.py +++ b/util/bot/update_clang.py
@@ -29,8 +29,8 @@ # CLANG_REVISION and CLANG_SUB_REVISION determine the build of clang # to use. These should be synced with tools/clang/scripts/update.py in # Chromium. -CLANG_REVISION = 'llvmorg-20-init-1009-g7088a5ed' -CLANG_SUB_REVISION = 10 +CLANG_REVISION = 'llvmorg-20-init-9764-gb81d8e90' +CLANG_SUB_REVISION = 7 PACKAGE_VERSION = '%s-%s' % (CLANG_REVISION, CLANG_SUB_REVISION)