diff --git a/examples/BUILD b/examples/BUILD index 41fc5ad..3c5b489 100644 --- a/examples/BUILD +++ b/examples/BUILD @@ -52,56 +52,42 @@ cc_test( deps = [":math_lib"], ) -cc_test( - name = "asan_test", - srcs = ["asan_test.cpp"], - features = ["asan"], - deps = [ - "@googletest//:gtest", - "@googletest//:gtest_main", - ], -) +# cc_test( +# name = "asan_test", +# srcs = ["asan_test.cpp"], +# features = ["asan"], +# deps = [ +# "@googletest//:gtest", +# "@googletest//:gtest_main", +# ], +# ) -# for some reason this test is very flaky. # cc_test( -# name = "tsan_test", -# srcs = ["tsan_test.cpp"], -# features = ["tsan"], +# name = "ubsan_test", +# srcs = ["ubsan_test.cpp"], # env = { -# "TSAN_OPTIONS": "halt_on_error=1", +# "UBSAN_OPTIONS": "halt_on_error=1", # }, +# features = ["ubsan"], # deps = [ # "@googletest//:gtest", # "@googletest//:gtest_main", # ], # ) -cc_test( - name = "ubsan_test", - srcs = ["ubsan_test.cpp"], - env = { - "UBSAN_OPTIONS": "halt_on_error=1", - }, - features = ["ubsan"], - deps = [ - "@googletest//:gtest", - "@googletest//:gtest_main", - ], -) - -cc_test( - name = "lsan_test", - srcs = ["lsan_test.cpp"], - env = { - "ASAN_OPTIONS": "detect_leaks=1", - "LSAN_OPTIONS": "exitcode=23", - }, - features = [ - "lsan", - "asan", - ], - deps = [ - "@googletest//:gtest", - "@googletest//:gtest_main", - ], -) +# cc_test( +# name = "lsan_test", +# srcs = ["lsan_test.cpp"], +# env = { +# "ASAN_OPTIONS": "detect_leaks=1", +# "LSAN_OPTIONS": "exitcode=23", +# }, +# features = [ +# "lsan", +# "asan", +# ], +# deps = [ +# "@googletest//:gtest", +# "@googletest//:gtest_main", +# ], +# ) diff --git a/examples/MODULE.bazel b/examples/MODULE.bazel index c674565..d356a05 100644 --- a/examples/MODULE.bazel +++ b/examples/MODULE.bazel @@ -30,7 +30,7 @@ bazel_dep(name = "score_bazel_platforms", version = "0.1.1") # ******************************************************************************* # C++ Rules for Bazel # ******************************************************************************* -bazel_dep(name = "rules_cc", version = "0.2.14") +bazel_dep(name = "rules_cc", version = "0.2.17") bazel_dep(name = "googletest", version = "1.17.0") # ******************************************************************************* diff --git a/examples/MODULE.bazel.lock b/examples/MODULE.bazel.lock index ed3d1ef..c97357a 100644 --- a/examples/MODULE.bazel.lock +++ b/examples/MODULE.bazel.lock @@ -166,7 +166,8 @@ "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5", "https://bcr.bazel.build/modules/rules_cc/0.1.1/MODULE.bazel": "2f0222a6f229f0bf44cd711dc13c858dad98c62d52bd51d8fc3a764a83125513", "https://bcr.bazel.build/modules/rules_cc/0.2.14/MODULE.bazel": "353c99ed148887ee89c54a17d4100ae7e7e436593d104b668476019023b58df8", - "https://bcr.bazel.build/modules/rules_cc/0.2.14/source.json": "55d0a4587c5592fad350f6e698530f4faf0e7dd15e69d43f8d87e220c78bea54", + "https://bcr.bazel.build/modules/rules_cc/0.2.17/MODULE.bazel": "1849602c86cb60da8613d2de887f9566a6d354a6df6d7009f9d04a14402f9a84", + "https://bcr.bazel.build/modules/rules_cc/0.2.17/source.json": "3832f45d145354049137c0090df04629d9c2b5493dc5c2bf46f1834040133a07", "https://bcr.bazel.build/modules/rules_cc/0.2.4/MODULE.bazel": "1ff1223dfd24f3ecf8f028446d4a27608aa43c3f41e346d22838a4223980b8cc", "https://bcr.bazel.build/modules/rules_cc/0.2.8/MODULE.bazel": "f1df20f0bf22c28192a794f29b501ee2018fa37a3862a1a2132ae2940a23a642", "https://bcr.bazel.build/modules/rules_diff/1.0.0/MODULE.bazel": "1739509d8db9a6cd7d3584822340d3dfe1f9f27e62462fbca60aa061d88741b2", @@ -424,6 +425,7 @@ "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_cc/0.0.9/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_cc/0.1.1/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_cc/0.2.14/MODULE.bazel": "not found", + "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_cc/0.2.17/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_cc/0.2.4/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_cc/0.2.8/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/rules_diff/1.0.0/MODULE.bazel": "not found", @@ -563,6 +565,104 @@ }, "selectedYankedVersions": {}, "moduleExtensions": { + "@@aspect_rules_js+//npm:extensions.bzl%pnpm": { + "general": { + "bzlTransitiveDigest": "z9R57PYt8T9Wu/2SwhxlaNxEusUyr3WsInkutJ8hufU=", + "usagesDigest": "ZYGEy1FrDUNPBzAzD+ujlHkMEsVPMYOvpHm9RhUexUE=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "pnpm": { + "repoRuleId": "@@aspect_rules_js+//npm/private:npm_import.bzl%npm_import_rule", + "attributes": { + "package": "pnpm", + "version": "8.6.7", + "root_package": "", + "link_workspace": "", + "link_packages": {}, + "integrity": "sha512-vRIWpD/L4phf9Bk2o/O2TDR8fFoJnpYrp2TKqTIZF/qZ2/rgL3qKXzHofHgbXsinwMoSEigz28sqk3pQ+yMEQQ==", + "url": "", + "commit": "", + "patch_args": [ + "-p0" + ], + "patches": [], + "custom_postinstall": "", + "npm_auth": "", + "npm_auth_basic": "", + "npm_auth_username": "", + "npm_auth_password": "", + "lifecycle_hooks": [], + "extra_build_content": "load(\"@aspect_rules_js//js:defs.bzl\", \"js_binary\")\njs_binary(name = \"pnpm\", data = glob([\"package/**\"]), entry_point = \"package/dist/pnpm.cjs\", visibility = [\"//visibility:public\"])", + "generate_bzl_library_targets": false, + "extract_full_archive": true + } + }, + "pnpm__links": { + "repoRuleId": "@@aspect_rules_js+//npm/private:npm_import.bzl%npm_import_links", + "attributes": { + "package": "pnpm", + "version": "8.6.7", + "dev": false, + "root_package": "", + "link_packages": {}, + "deps": {}, + "transitive_closure": {}, + "lifecycle_build_target": false, + "lifecycle_hooks_env": [], + "lifecycle_hooks_execution_requirements": [ + "no-sandbox" + ], + "lifecycle_hooks_use_default_shell_env": false, + "bins": {}, + "npm_translate_lock_repo": "", + "package_visibility": [ + "//visibility:public" + ], + "replace_package": "" + } + } + }, + "recordedRepoMappingEntries": [ + [ + "aspect_bazel_lib+", + "bazel_skylib", + "bazel_skylib+" + ], + [ + "aspect_bazel_lib+", + "bazel_tools", + "bazel_tools" + ], + [ + "aspect_rules_js+", + "aspect_bazel_lib", + "aspect_bazel_lib+" + ], + [ + "aspect_rules_js+", + "bazel_features", + "bazel_features+" + ], + [ + "aspect_rules_js+", + "bazel_skylib", + "bazel_skylib+" + ], + [ + "aspect_rules_js+", + "bazel_tools", + "bazel_tools" + ], + [ + "bazel_features+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, "@@aspect_rules_py+//py:extensions.bzl%py_tools": { "general": { "bzlTransitiveDigest": "/auhlg7ATdFttD+/XpCyzxusSYn4Pc9zPT+ABAWFEDw=", @@ -705,6 +805,464 @@ ] } }, + "@@gazelle+//:extensions.bzl%go_deps": { + "general": { + "bzlTransitiveDigest": "B5la0IQ0ikF4Rx9OjYZg4KnBflAzCMy0MfsJPxZxXWk=", + "usagesDigest": "tfQCHJg51LFgV7hTP9SLQammcDdAISgPLeV+eH7GlJ4=", + "recordedFileInputs": { + "@@gazelle+//go.mod": "9ae159a385b2f244bbe964b9f91dbea6e7bd534e0b22e846655f241c65de2c49", + "@@gazelle+//go.sum": "7469786f3930030c430969cedae951e6947cb40f4a563dac94a350659c0fedc4", + "@@rules_buf+//go.mod": "c96e5c352880a2df5cd7294265df91c7bad4fb24ef3865ccb1b9ceb29341cf8a", + "@@rules_buf+//go.sum": "968d06e5d35e524686d63dda36b4fb82d5054a4c5a42a5da8214a43cc4e8edb3", + "@@rules_go+//go.mod": "a7143f329c2a3e0b983ce74a96c0c25b0d0c59d236d75f7e1b069aadd988d55e", + "@@rules_go+//go.sum": "022d36c9ebcc7b5dee1e9b85b3da9c9f3a529ee6f979946d66e4955b8d54614a" + }, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "com_github_bazelbuild_buildtools": { + "repoRuleId": "@@gazelle+//internal:go_repository.bzl%go_repository", + "attributes": { + "importpath": "github.com/bazelbuild/buildtools", + "build_directives": [], + "build_file_generation": "auto", + "build_extra_args": [], + "patches": [], + "patch_args": [], + "sum": "h1:2Gc2Q6hVR1SJ8bBI9Ybzoggp8u/ED2WkM4MfvEIn9+c=", + "replace": "", + "version": "v0.0.0-20231115204819-d4c9dccdfbb1" + } + }, + "com_github_stretchr_testify": { + "repoRuleId": "@@gazelle+//internal:go_repository.bzl%go_repository", + "attributes": { + "importpath": "github.com/stretchr/testify", + "build_directives": [], + "build_file_generation": "auto", + "build_extra_args": [], + "patches": [], + "patch_args": [], + "sum": "h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=", + "replace": "", + "version": "v1.8.4" + } + }, + "in_gopkg_yaml_v3": { + "repoRuleId": "@@gazelle+//internal:go_repository.bzl%go_repository", + "attributes": { + "importpath": "gopkg.in/yaml.v3", + "build_directives": [], + "build_file_generation": "auto", + "build_extra_args": [], + "patches": [], + "patch_args": [], + "sum": "h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=", + "replace": "", + "version": "v3.0.1" + } + }, + "com_github_davecgh_go_spew": { + "repoRuleId": "@@gazelle+//internal:go_repository.bzl%go_repository", + "attributes": { + "importpath": "github.com/davecgh/go-spew", + "build_directives": [], + "build_file_generation": "auto", + "build_extra_args": [], + "patches": [], + "patch_args": [], + "sum": "h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=", + "replace": "", + "version": "v1.1.1" + } + }, + "com_github_google_go_cmp": { + "repoRuleId": "@@gazelle+//internal:go_repository.bzl%go_repository", + "attributes": { + "importpath": "github.com/google/go-cmp", + "build_directives": [], + "build_file_generation": "auto", + "build_extra_args": [], + "patches": [], + "patch_args": [], + "sum": "h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=", + "replace": "", + "version": "v0.6.0" + } + }, + "com_github_pmezard_go_difflib": { + "repoRuleId": "@@gazelle+//internal:go_repository.bzl%go_repository", + "attributes": { + "importpath": "github.com/pmezard/go-difflib", + "build_directives": [], + "build_file_generation": "auto", + "build_extra_args": [], + "patches": [], + "patch_args": [], + "sum": "h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=", + "replace": "", + "version": "v1.0.0" + } + }, + "org_golang_x_mod": { + "repoRuleId": "@@gazelle+//internal:go_repository.bzl%go_repository", + "attributes": { + "importpath": "golang.org/x/mod", + "build_directives": [], + "build_file_generation": "auto", + "build_extra_args": [], + "patches": [], + "patch_args": [], + "sum": "h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0=", + "replace": "", + "version": "v0.14.0" + } + }, + "org_golang_x_sys": { + "repoRuleId": "@@gazelle+//internal:go_repository.bzl%go_repository", + "attributes": { + "importpath": "golang.org/x/sys", + "build_directives": [], + "build_file_generation": "auto", + "build_extra_args": [], + "patches": [], + "patch_args": [], + "sum": "h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q=", + "replace": "", + "version": "v0.14.0" + } + }, + "org_golang_x_tools_go_vcs": { + "repoRuleId": "@@gazelle+//internal:go_repository.bzl%go_repository", + "attributes": { + "importpath": "golang.org/x/tools/go/vcs", + "build_directives": [], + "build_file_generation": "auto", + "build_extra_args": [], + "patches": [], + "patch_args": [], + "sum": "h1:cOIJqWBl99H1dH5LWizPa+0ImeeJq3t3cJjaeOWUAL4=", + "replace": "", + "version": "v0.1.0-deprecated" + } + }, + "in_gopkg_check_v1": { + "repoRuleId": "@@gazelle+//internal:go_repository.bzl%go_repository", + "attributes": { + "importpath": "gopkg.in/check.v1", + "build_directives": [], + "build_file_generation": "auto", + "build_extra_args": [], + "patches": [], + "patch_args": [], + "sum": "h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=", + "replace": "", + "version": "v1.0.0-20201130134442-10cb98267c6c" + } + }, + "com_github_gogo_protobuf": { + "repoRuleId": "@@gazelle+//internal:go_repository.bzl%go_repository", + "attributes": { + "importpath": "github.com/gogo/protobuf", + "build_directives": [ + "gazelle:proto disable" + ], + "build_file_generation": "auto", + "build_extra_args": [], + "patches": [], + "patch_args": [], + "sum": "h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=", + "replace": "", + "version": "v1.3.2" + } + }, + "com_github_golang_mock": { + "repoRuleId": "@@gazelle+//internal:go_repository.bzl%go_repository", + "attributes": { + "importpath": "github.com/golang/mock", + "build_directives": [], + "build_file_generation": "auto", + "build_extra_args": [], + "patches": [], + "patch_args": [], + "sum": "h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc=", + "replace": "", + "version": "v1.6.0" + } + }, + "com_github_golang_protobuf": { + "repoRuleId": "@@gazelle+//internal:go_repository.bzl%go_repository", + "attributes": { + "importpath": "github.com/golang/protobuf", + "build_directives": [], + "build_file_generation": "auto", + "build_extra_args": [], + "patches": [], + "patch_args": [], + "sum": "h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=", + "replace": "", + "version": "v1.5.2" + } + }, + "org_golang_google_protobuf": { + "repoRuleId": "@@gazelle+//internal:go_repository.bzl%go_repository", + "attributes": { + "importpath": "google.golang.org/protobuf", + "build_directives": [], + "build_file_generation": "auto", + "build_extra_args": [], + "patches": [], + "patch_args": [], + "sum": "h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw=", + "replace": "", + "version": "v1.28.0" + } + }, + "org_golang_x_net": { + "repoRuleId": "@@gazelle+//internal:go_repository.bzl%go_repository", + "attributes": { + "importpath": "golang.org/x/net", + "build_directives": [], + "build_file_generation": "auto", + "build_extra_args": [], + "patches": [], + "patch_args": [], + "sum": "h1:4nGaVu0QrbjT/AK2PRLuQfQuh6DJve+pELhqTdAj3x0=", + "replace": "", + "version": "v0.0.0-20210405180319-a5a99cb37ef4" + } + }, + "org_golang_x_text": { + "repoRuleId": "@@gazelle+//internal:go_repository.bzl%go_repository", + "attributes": { + "importpath": "golang.org/x/text", + "build_directives": [], + "build_file_generation": "auto", + "build_extra_args": [], + "patches": [], + "patch_args": [], + "sum": "h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k=", + "replace": "", + "version": "v0.3.3" + } + }, + "org_golang_google_genproto": { + "repoRuleId": "@@gazelle+//internal:go_repository.bzl%go_repository", + "attributes": { + "importpath": "google.golang.org/genproto", + "build_directives": [], + "build_file_generation": "auto", + "build_extra_args": [], + "patches": [], + "patch_args": [], + "sum": "h1:+kGHl1aib/qcwaRi1CbqBZ1rk19r85MNUf8HaBghugY=", + "replace": "", + "version": "v0.0.0-20200526211855-cb27e3aa2013" + } + }, + "org_golang_google_grpc": { + "repoRuleId": "@@gazelle+//internal:go_repository.bzl%go_repository", + "attributes": { + "importpath": "google.golang.org/grpc", + "build_directives": [ + "gazelle:proto disable" + ], + "build_file_generation": "auto", + "build_extra_args": [], + "patches": [], + "patch_args": [], + "sum": "h1:fPVVDxY9w++VjTZsYvXWqEf9Rqar/e+9zYfxKK+W+YU=", + "replace": "", + "version": "v1.50.0" + } + }, + "org_golang_x_tools": { + "repoRuleId": "@@gazelle+//internal:go_repository.bzl%go_repository", + "attributes": { + "importpath": "golang.org/x/tools", + "build_directives": [], + "build_file_generation": "auto", + "build_extra_args": [], + "patches": [], + "patch_args": [], + "sum": "h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ=", + "replace": "", + "version": "v0.13.0" + } + }, + "com_github_bmatcuk_doublestar_v4": { + "repoRuleId": "@@gazelle+//internal:go_repository.bzl%go_repository", + "attributes": { + "importpath": "github.com/bmatcuk/doublestar/v4", + "build_directives": [], + "build_file_generation": "auto", + "build_extra_args": [], + "patches": [], + "patch_args": [], + "sum": "h1:FH9SifrbvJhnlQpztAx++wlkk70QBf0iBWDwNy7PA4I=", + "replace": "", + "version": "v4.6.1" + } + }, + "com_github_fsnotify_fsnotify": { + "repoRuleId": "@@gazelle+//internal:go_repository.bzl%go_repository", + "attributes": { + "importpath": "github.com/fsnotify/fsnotify", + "build_directives": [], + "build_file_generation": "auto", + "build_extra_args": [], + "patches": [], + "patch_args": [], + "sum": "h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=", + "replace": "", + "version": "v1.7.0" + } + }, + "org_golang_x_sync": { + "repoRuleId": "@@gazelle+//internal:go_repository.bzl%go_repository", + "attributes": { + "importpath": "golang.org/x/sync", + "build_directives": [], + "build_file_generation": "auto", + "build_extra_args": [], + "patches": [], + "patch_args": [], + "sum": "h1:zxkM55ReGkDlKSM+Fu41A+zmbZuaPVbGMzvvdUPznYQ=", + "replace": "", + "version": "v0.4.0" + } + }, + "bazel_gazelle_go_repository_config": { + "repoRuleId": "@@gazelle+//internal/bzlmod:go_deps.bzl%_go_repository_config", + "attributes": { + "importpaths": { + "@gazelle+": "github.com/bazelbuild/bazel-gazelle", + "com_github_bazelbuild_buildtools": "github.com/bazelbuild/buildtools", + "@rules_go+": "github.com/bazelbuild/rules_go", + "com_github_stretchr_testify": "github.com/stretchr/testify", + "in_gopkg_yaml_v3": "gopkg.in/yaml.v3", + "com_github_davecgh_go_spew": "github.com/davecgh/go-spew", + "com_github_google_go_cmp": "github.com/google/go-cmp", + "com_github_pmezard_go_difflib": "github.com/pmezard/go-difflib", + "org_golang_x_mod": "golang.org/x/mod", + "org_golang_x_sys": "golang.org/x/sys", + "org_golang_x_tools_go_vcs": "golang.org/x/tools/go/vcs", + "in_gopkg_check_v1": "gopkg.in/check.v1", + "com_github_gogo_protobuf": "github.com/gogo/protobuf", + "com_github_golang_mock": "github.com/golang/mock", + "com_github_golang_protobuf": "github.com/golang/protobuf", + "org_golang_google_protobuf": "google.golang.org/protobuf", + "org_golang_x_net": "golang.org/x/net", + "org_golang_x_text": "golang.org/x/text", + "org_golang_google_genproto": "google.golang.org/genproto", + "org_golang_google_grpc": "google.golang.org/grpc", + "org_golang_x_tools": "golang.org/x/tools", + "com_github_bmatcuk_doublestar_v4": "github.com/bmatcuk/doublestar/v4", + "com_github_fsnotify_fsnotify": "github.com/fsnotify/fsnotify", + "org_golang_x_sync": "golang.org/x/sync", + "@rules_buf+": "github.com/bufbuild/rules_buf" + }, + "module_names": { + "@rules_buf+": "rules_buf", + "@rules_go+": "rules_go", + "@gazelle+": "gazelle" + }, + "build_naming_conventions": {} + } + } + }, + "moduleExtensionMetadata": { + "explicitRootModuleDirectDeps": [], + "explicitRootModuleDirectDevDeps": [], + "useAllRepos": "NO", + "reproducible": false + }, + "recordedRepoMappingEntries": [ + [ + "gazelle+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@gazelle+//internal/bzlmod:non_module_deps.bzl%non_module_deps": { + "general": { + "bzlTransitiveDigest": "AjbsH9WZCj0ipLarbbkp25YBRrRhWYvO7OIiTcHyyok=", + "usagesDigest": "/EIHHLtjAqjZiKFavzwtqyPtUxCp0xuO4NLoiFGXgIw=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "bazel_gazelle_go_repository_cache": { + "repoRuleId": "@@gazelle+//internal:go_repository_cache.bzl%go_repository_cache", + "attributes": { + "go_sdk_name": "@rules_go++go_sdk+go_default_sdk", + "go_env": {} + } + }, + "bazel_gazelle_go_repository_tools": { + "repoRuleId": "@@gazelle+//internal:go_repository_tools.bzl%go_repository_tools", + "attributes": { + "go_cache": "@@gazelle++non_module_deps+bazel_gazelle_go_repository_cache//:go.env" + } + }, + "bazel_gazelle_is_bazel_module": { + "repoRuleId": "@@gazelle+//internal:is_bazel_module.bzl%is_bazel_module", + "attributes": { + "is_bazel_module": true + } + } + }, + "recordedRepoMappingEntries": [ + [ + "gazelle+", + "bazel_gazelle_go_repository_cache", + "gazelle++non_module_deps+bazel_gazelle_go_repository_cache" + ], + [ + "gazelle+", + "go_host_compatible_sdk_label", + "rules_go++go_sdk+go_host_compatible_sdk_label" + ], + [ + "rules_go++go_sdk+go_host_compatible_sdk_label", + "go_default_sdk", + "rules_go++go_sdk+go_default_sdk" + ] + ] + } + }, + "@@pybind11_bazel+//:internal_configure.bzl%internal_configure_extension": { + "general": { + "bzlTransitiveDigest": "vyKH4VZgvJxNRuv2Dn3yUi/i7TcjLFk2up5SgTbIUY8=", + "usagesDigest": "D1r3lfzMuUBFxgG8V6o0bQTLMk3GkaGOaPzw53wrwyw=", + "recordedFileInputs": { + "@@pybind11_bazel+//MODULE.bazel": "e6f4c20442eaa7c90d7190d8dc539d0ab422f95c65a57cc59562170c58ae3d34" + }, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "pybind11": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "build_file": "@@pybind11_bazel+//:pybind11-BUILD.bazel", + "strip_prefix": "pybind11-2.12.0", + "urls": [ + "https://github.com/pybind/pybind11/archive/v2.12.0.zip" + ] + } + } + }, + "recordedRepoMappingEntries": [ + [ + "pybind11_bazel+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, "@@rules_buf+//buf:extensions.bzl%buf": { "general": { "bzlTransitiveDigest": "sePGRkBYa7vJOQz6tbLoOv/Ni52ygaAUBfoHdxtnwI8=", @@ -730,6 +1288,89 @@ ] } }, + "@@rules_fuzzing+//fuzzing/private:extensions.bzl%non_module_dependencies": { + "general": { + "bzlTransitiveDigest": "lxvzPQyluk241QRYY81nZHOcv5Id/5U2y6dp42qibis=", + "usagesDigest": "wy6ISK6UOcBEjj/mvJ/S3WeXoO67X+1llb9yPyFtPgc=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "platforms": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/platforms/releases/download/0.0.8/platforms-0.0.8.tar.gz", + "https://github.com/bazelbuild/platforms/releases/download/0.0.8/platforms-0.0.8.tar.gz" + ], + "sha256": "8150406605389ececb6da07cbcb509d5637a3ab9a24bc69b1101531367d89d74" + } + }, + "rules_python": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "sha256": "d70cd72a7a4880f0000a6346253414825c19cdd40a28289bdf67b8e6480edff8", + "strip_prefix": "rules_python-0.28.0", + "url": "https://github.com/bazelbuild/rules_python/releases/download/0.28.0/rules_python-0.28.0.tar.gz" + } + }, + "bazel_skylib": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "sha256": "cd55a062e763b9349921f0f5db8c3933288dc8ba4f76dd9416aac68acee3cb94", + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.5.0/bazel-skylib-1.5.0.tar.gz", + "https://github.com/bazelbuild/bazel-skylib/releases/download/1.5.0/bazel-skylib-1.5.0.tar.gz" + ] + } + }, + "com_google_absl": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "urls": [ + "https://github.com/abseil/abseil-cpp/archive/refs/tags/20240116.1.zip" + ], + "strip_prefix": "abseil-cpp-20240116.1", + "integrity": "sha256-7capMWOvWyoYbUaHF/b+I2U6XLMaHmky8KugWvfXYuk=" + } + }, + "rules_fuzzing_oss_fuzz": { + "repoRuleId": "@@rules_fuzzing+//fuzzing/private/oss_fuzz:repository.bzl%oss_fuzz_repository", + "attributes": {} + }, + "honggfuzz": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "build_file": "@@rules_fuzzing+//:honggfuzz.BUILD", + "sha256": "6b18ba13bc1f36b7b950c72d80f19ea67fbadc0ac0bb297ec89ad91f2eaa423e", + "url": "https://github.com/google/honggfuzz/archive/2.5.zip", + "strip_prefix": "honggfuzz-2.5" + } + }, + "rules_fuzzing_jazzer": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_jar", + "attributes": { + "sha256": "ee6feb569d88962d59cb59e8a31eb9d007c82683f3ebc64955fd5b96f277eec2", + "url": "https://repo1.maven.org/maven2/com/code-intelligence/jazzer/0.20.1/jazzer-0.20.1.jar" + } + }, + "rules_fuzzing_jazzer_api": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_jar", + "attributes": { + "sha256": "f5a60242bc408f7fa20fccf10d6c5c5ea1fcb3c6f44642fec5af88373ae7aa1b", + "url": "https://repo1.maven.org/maven2/com/code-intelligence/jazzer-api/0.20.1/jazzer-api-0.20.1.jar" + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_fuzzing+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, "@@rules_go+//go:extensions.bzl%go_sdk": { "os:linux,arch:amd64": { "bzlTransitiveDigest": "9JKZqQmIEnLoXxZGppGVismV4hf0L4VZsaTELlXwCUM=", @@ -808,6 +1449,225 @@ ] } }, + "@@rules_go+//go/private:extensions.bzl%non_module_dependencies": { + "general": { + "bzlTransitiveDigest": "Rn55bNn9CiwgGXTm6vfW+2ytVLWzXlgCyCeeAjDMWkU=", + "usagesDigest": "JL1XfI3Chd9vaoVGnIlNXDdHjWcf9WYe/Lu+A1HCC74=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "bazel_skylib": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.4.2/bazel-skylib-1.4.2.tar.gz", + "https://github.com/bazelbuild/bazel-skylib/releases/download/1.4.2/bazel-skylib-1.4.2.tar.gz" + ], + "sha256": "66ffd9315665bfaafc96b52278f57c7e2dd09f5ede279ea6d39b2be471e7e3aa", + "strip_prefix": "" + } + }, + "org_golang_x_tools": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "urls": [ + "https://mirror.bazel.build/github.com/golang/tools/archive/refs/tags/v0.7.0.zip", + "https://github.com/golang/tools/archive/refs/tags/v0.7.0.zip" + ], + "sha256": "9f20a20f29f4008d797a8be882ef82b69cf8f7f2b96dbdfe3814c57d8280fa4b", + "strip_prefix": "tools-0.7.0", + "patches": [ + "@@rules_go+//third_party:org_golang_x_tools-deletegopls.patch", + "@@rules_go+//third_party:org_golang_x_tools-gazelle.patch" + ], + "patch_args": [ + "-p1" + ] + } + }, + "org_golang_x_tools_go_vcs": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "urls": [ + "https://mirror.bazel.build/github.com/golang/tools/archive/refs/tags/go/vcs/v0.1.0-deprecated.zip", + "https://github.com/golang/tools/archive/refs/tags/go/vcs/v0.1.0-deprecated.zip" + ], + "sha256": "1b389268d126467105305ae4482df0189cc80a13aaab28d0946192b4ad0737a8", + "strip_prefix": "tools-go-vcs-v0.1.0-deprecated/go/vcs", + "patches": [ + "@@rules_go+//third_party:org_golang_x_tools_go_vcs-gazelle.patch" + ], + "patch_args": [ + "-p1" + ] + } + }, + "org_golang_x_sys": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "urls": [ + "https://mirror.bazel.build/github.com/golang/sys/archive/refs/tags/v0.12.0.zip", + "https://github.com/golang/sys/archive/refs/tags/v0.12.0.zip" + ], + "sha256": "229b079d23d18f5b1a0c46335020cddc6e5d543da2dae6e45b59d84b5d074e3a", + "strip_prefix": "sys-0.12.0", + "patches": [ + "@@rules_go+//third_party:org_golang_x_sys-gazelle.patch" + ], + "patch_args": [ + "-p1" + ] + } + }, + "org_golang_x_xerrors": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "urls": [ + "https://mirror.bazel.build/github.com/golang/xerrors/archive/04be3eba64a22a838cdb17b8dca15a52871c08b4.zip", + "https://github.com/golang/xerrors/archive/04be3eba64a22a838cdb17b8dca15a52871c08b4.zip" + ], + "sha256": "ffad2b06ef2e09d040da2ff08077865e99ab95d4d0451737fc8e33706bb01634", + "strip_prefix": "xerrors-04be3eba64a22a838cdb17b8dca15a52871c08b4", + "patches": [ + "@@rules_go+//third_party:org_golang_x_xerrors-gazelle.patch" + ], + "patch_args": [ + "-p1" + ] + } + }, + "org_golang_google_protobuf": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "sha256": "f5d1f6d0e9b836aceb715f1df2dc065083a55b07ecec3b01b5e89d039b14da02", + "urls": [ + "https://mirror.bazel.build/github.com/protocolbuffers/protobuf-go/archive/refs/tags/v1.31.0.zip", + "https://github.com/protocolbuffers/protobuf-go/archive/refs/tags/v1.31.0.zip" + ], + "strip_prefix": "protobuf-go-1.31.0", + "patches": [ + "@@rules_go+//third_party:org_golang_google_protobuf-gazelle.patch" + ], + "patch_args": [ + "-p1" + ] + } + }, + "com_github_golang_protobuf": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "urls": [ + "https://mirror.bazel.build/github.com/golang/protobuf/archive/refs/tags/v1.5.3.zip", + "https://github.com/golang/protobuf/archive/refs/tags/v1.5.3.zip" + ], + "sha256": "2dced4544ae5372281e20f1e48ca76368355a01b31353724718c4d6e3dcbb430", + "strip_prefix": "protobuf-1.5.3", + "patches": [ + "@@rules_go+//third_party:com_github_golang_protobuf-gazelle.patch" + ], + "patch_args": [ + "-p1" + ] + } + }, + "com_github_mwitkow_go_proto_validators": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "urls": [ + "https://mirror.bazel.build/github.com/mwitkow/go-proto-validators/archive/refs/tags/v0.3.2.zip", + "https://github.com/mwitkow/go-proto-validators/archive/refs/tags/v0.3.2.zip" + ], + "sha256": "d8697f05a2f0eaeb65261b480e1e6035301892d9fc07ed945622f41b12a68142", + "strip_prefix": "go-proto-validators-0.3.2" + } + }, + "com_github_gogo_protobuf": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "urls": [ + "https://mirror.bazel.build/github.com/gogo/protobuf/archive/refs/tags/v1.3.2.zip", + "https://github.com/gogo/protobuf/archive/refs/tags/v1.3.2.zip" + ], + "sha256": "f89f8241af909ce3226562d135c25b28e656ae173337b3e58ede917aa26e1e3c", + "strip_prefix": "protobuf-1.3.2", + "patches": [ + "@@rules_go+//third_party:com_github_gogo_protobuf-gazelle.patch" + ], + "patch_args": [ + "-p1" + ] + } + }, + "gogo_special_proto": { + "repoRuleId": "@@rules_go+//proto:gogo.bzl%gogo_special_proto", + "attributes": {} + }, + "org_golang_google_genproto": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "urls": [ + "https://mirror.bazel.build/github.com/googleapis/go-genproto/archive/007df8e322eb3e384d36c0821e2337825c203ca6.zip", + "https://github.com/googleapis/go-genproto/archive/007df8e322eb3e384d36c0821e2337825c203ca6.zip" + ], + "sha256": "e7d0f3faed86258ed4e8e5527a8e98ff00fbd5b1a9b379a99a4aa2f76ce8bbcc", + "strip_prefix": "go-genproto-007df8e322eb3e384d36c0821e2337825c203ca6", + "patches": [ + "@@rules_go+//third_party:org_golang_google_genproto-gazelle.patch" + ], + "patch_args": [ + "-p1" + ] + } + }, + "com_github_golang_mock": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "urls": [ + "https://mirror.bazel.build/github.com/golang/mock/archive/refs/tags/v1.7.0-rc.1.zip", + "https://github.com/golang/mock/archive/refs/tags/v1.7.0-rc.1.zip" + ], + "patches": [ + "@@rules_go+//third_party:com_github_golang_mock-gazelle.patch" + ], + "patch_args": [ + "-p1" + ], + "sha256": "5359c78b0c1649cf7beb3b48ff8b1d1aaf0243b22ea4789aba94805280075d8e", + "strip_prefix": "mock-1.7.0-rc.1" + } + }, + "io_bazel_rules_nogo": { + "repoRuleId": "@@rules_go+//go/private:nogo.bzl%go_register_nogo", + "attributes": { + "nogo": "@io_bazel_rules_go//:default_nogo" + } + } + }, + "recordedRepoMappingEntries": [ + [ + "bazel_features+", + "bazel_features_globals", + "bazel_features++version_extension+bazel_features_globals" + ], + [ + "bazel_features+", + "bazel_features_version", + "bazel_features++version_extension+bazel_features_version" + ], + [ + "rules_go+", + "bazel_features", + "bazel_features+" + ], + [ + "rules_go+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, "@@rules_kotlin+//src/main/starlark/core/repositories:bzlmod_setup.bzl%rules_kotlin_extensions": { "general": { "bzlTransitiveDigest": "hUTp2w+RUVdL7ma5esCXZJAFnX7vLbVfLd7FwnQI6bU=", @@ -1042,9 +1902,161 @@ ] } }, + "@@rules_rust+//crate_universe/private:internal_extensions.bzl%cu_nr": { + "general": { + "bzlTransitiveDigest": "pkKYmGmCmLXmfoskyn8tfyQRAqAIKifHQs9cZyYY5QE=", + "usagesDigest": "dQ7SQZ7uSSL3vVKSMBKRxKJUm9OVrZZA+S1/QQfT570=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "cargo_bazel_bootstrap": { + "repoRuleId": "@@rules_rust+//cargo/private:cargo_bootstrap.bzl%cargo_bootstrap_repository", + "attributes": { + "srcs": [ + "@@rules_rust+//crate_universe:src/api.rs", + "@@rules_rust+//crate_universe:src/api/lockfile.rs", + "@@rules_rust+//crate_universe:src/cli.rs", + "@@rules_rust+//crate_universe:src/cli/generate.rs", + "@@rules_rust+//crate_universe:src/cli/query.rs", + "@@rules_rust+//crate_universe:src/cli/render.rs", + "@@rules_rust+//crate_universe:src/cli/splice.rs", + "@@rules_rust+//crate_universe:src/cli/vendor.rs", + "@@rules_rust+//crate_universe:src/config.rs", + "@@rules_rust+//crate_universe:src/context.rs", + "@@rules_rust+//crate_universe:src/context/crate_context.rs", + "@@rules_rust+//crate_universe:src/context/platforms.rs", + "@@rules_rust+//crate_universe:src/lib.rs", + "@@rules_rust+//crate_universe:src/lockfile.rs", + "@@rules_rust+//crate_universe:src/main.rs", + "@@rules_rust+//crate_universe:src/metadata.rs", + "@@rules_rust+//crate_universe:src/metadata/cargo_bin.rs", + "@@rules_rust+//crate_universe:src/metadata/cargo_tree_resolver.rs", + "@@rules_rust+//crate_universe:src/metadata/cargo_tree_rustc_wrapper.bat", + "@@rules_rust+//crate_universe:src/metadata/cargo_tree_rustc_wrapper.sh", + "@@rules_rust+//crate_universe:src/metadata/dependency.rs", + "@@rules_rust+//crate_universe:src/metadata/metadata_annotation.rs", + "@@rules_rust+//crate_universe:src/rendering.rs", + "@@rules_rust+//crate_universe:src/rendering/template_engine.rs", + "@@rules_rust+//crate_universe:src/rendering/templates/module_bzl.j2", + "@@rules_rust+//crate_universe:src/rendering/templates/partials/header.j2", + "@@rules_rust+//crate_universe:src/rendering/templates/partials/module/aliases_map.j2", + "@@rules_rust+//crate_universe:src/rendering/templates/partials/module/deps_map.j2", + "@@rules_rust+//crate_universe:src/rendering/templates/partials/module/repo_git.j2", + "@@rules_rust+//crate_universe:src/rendering/templates/partials/module/repo_http.j2", + "@@rules_rust+//crate_universe:src/rendering/templates/vendor_module.j2", + "@@rules_rust+//crate_universe:src/rendering/verbatim/alias_rules.bzl", + "@@rules_rust+//crate_universe:src/select.rs", + "@@rules_rust+//crate_universe:src/splicing.rs", + "@@rules_rust+//crate_universe:src/splicing/cargo_config.rs", + "@@rules_rust+//crate_universe:src/splicing/crate_index_lookup.rs", + "@@rules_rust+//crate_universe:src/splicing/splicer.rs", + "@@rules_rust+//crate_universe:src/test.rs", + "@@rules_rust+//crate_universe:src/utils.rs", + "@@rules_rust+//crate_universe:src/utils/starlark.rs", + "@@rules_rust+//crate_universe:src/utils/starlark/glob.rs", + "@@rules_rust+//crate_universe:src/utils/starlark/label.rs", + "@@rules_rust+//crate_universe:src/utils/starlark/select.rs", + "@@rules_rust+//crate_universe:src/utils/starlark/select_dict.rs", + "@@rules_rust+//crate_universe:src/utils/starlark/select_list.rs", + "@@rules_rust+//crate_universe:src/utils/starlark/select_scalar.rs", + "@@rules_rust+//crate_universe:src/utils/starlark/select_set.rs", + "@@rules_rust+//crate_universe:src/utils/starlark/serialize.rs", + "@@rules_rust+//crate_universe:src/utils/starlark/target_compatible_with.rs", + "@@rules_rust+//crate_universe:src/utils/symlink.rs", + "@@rules_rust+//crate_universe:src/utils/target_triple.rs" + ], + "binary": "cargo-bazel", + "cargo_lockfile": "@@rules_rust+//crate_universe:Cargo.lock", + "cargo_toml": "@@rules_rust+//crate_universe:Cargo.toml", + "version": "1.86.0", + "timeout": 900, + "rust_toolchain_cargo_template": "@rust_host_tools//:bin/{tool}", + "rust_toolchain_rustc_template": "@rust_host_tools//:bin/{tool}", + "compressed_windows_toolchain_names": false + } + } + }, + "moduleExtensionMetadata": { + "explicitRootModuleDirectDeps": [ + "cargo_bazel_bootstrap" + ], + "explicitRootModuleDirectDevDeps": [], + "useAllRepos": "NO", + "reproducible": false + }, + "recordedRepoMappingEntries": [ + [ + "bazel_features+", + "bazel_features_globals", + "bazel_features++version_extension+bazel_features_globals" + ], + [ + "bazel_features+", + "bazel_features_version", + "bazel_features++version_extension+bazel_features_version" + ], + [ + "rules_cc+", + "bazel_tools", + "bazel_tools" + ], + [ + "rules_cc+", + "cc_compatibility_proxy", + "rules_cc++compatibility_proxy+cc_compatibility_proxy" + ], + [ + "rules_cc+", + "rules_cc", + "rules_cc+" + ], + [ + "rules_cc++compatibility_proxy+cc_compatibility_proxy", + "rules_cc", + "rules_cc+" + ], + [ + "rules_rust+", + "bazel_features", + "bazel_features+" + ], + [ + "rules_rust+", + "bazel_skylib", + "bazel_skylib+" + ], + [ + "rules_rust+", + "bazel_tools", + "bazel_tools" + ], + [ + "rules_rust+", + "cui", + "rules_rust++cu+cui" + ], + [ + "rules_rust+", + "rrc", + "rules_rust++i2+rrc" + ], + [ + "rules_rust+", + "rules_cc", + "rules_cc+" + ], + [ + "rules_rust+", + "rules_rust", + "rules_rust+" + ] + ] + } + }, "@@score_bazel_cpp_toolchains+//extensions:gcc.bzl%gcc": { "general": { - "bzlTransitiveDigest": "lAJgOidA+Xci/QNUrSfaPi/sdTIWryRPu5Na4TyI/5s=", + "bzlTransitiveDigest": "guk5FuloiXM4w0R49FRHBJVI+yTp2RKkdReEhxJK8SY=", "usagesDigest": "unK8CU54SxQZb3A5+/fOy5ZHARy5jWDy5NpNfcCVyNA=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, @@ -1144,6 +2156,8 @@ "extra_compile_flags": [], "extra_c_compile_flags": [], "extra_cxx_compile_flags": [], + "extra_known_features": [], + "extra_enabled_features": [], "extra_link_flags": [], "license_info_variable": "", "license_info_value": "", @@ -1169,6 +2183,8 @@ "extra_compile_flags": [], "extra_c_compile_flags": [], "extra_cxx_compile_flags": [], + "extra_known_features": [], + "extra_enabled_features": [], "extra_link_flags": [], "license_info_variable": "", "license_info_value": "", @@ -1194,6 +2210,8 @@ "extra_compile_flags": [], "extra_c_compile_flags": [], "extra_cxx_compile_flags": [], + "extra_known_features": [], + "extra_enabled_features": [], "extra_link_flags": [], "license_info_variable": "", "license_info_value": "", @@ -1219,6 +2237,8 @@ "extra_compile_flags": [], "extra_c_compile_flags": [], "extra_cxx_compile_flags": [], + "extra_known_features": [], + "extra_enabled_features": [], "extra_link_flags": [ "-lpthread" ], @@ -1246,6 +2266,8 @@ "extra_compile_flags": [], "extra_c_compile_flags": [], "extra_cxx_compile_flags": [], + "extra_known_features": [], + "extra_enabled_features": [], "extra_link_flags": [], "license_info_variable": "", "license_info_value": "", @@ -1271,6 +2293,8 @@ "extra_compile_flags": [], "extra_c_compile_flags": [], "extra_cxx_compile_flags": [], + "extra_known_features": [], + "extra_enabled_features": [], "extra_link_flags": [], "license_info_variable": "", "license_info_value": "", @@ -1315,6 +2339,8 @@ "-isystem", "external/%{toolchain_pkg}%/usr/include" ], + "extra_known_features": [], + "extra_enabled_features": [], "extra_link_flags": [ "-B", "external/%{toolchain_pkg}%/usr/bin", @@ -1390,6 +2416,8 @@ "external/%{toolchain_pkg}%/usr/lib/x86_64-linux-gnu", "--no-canonical-prefixes" ], + "extra_known_features": [], + "extra_enabled_features": [], "extra_link_flags": [ "-B", "external/%{toolchain_pkg}%/usr/aarch64-linux-gnu/bin", diff --git a/examples/tsan_test.cpp b/examples/tsan_test.cpp deleted file mode 100644 index 782aeeb..0000000 --- a/examples/tsan_test.cpp +++ /dev/null @@ -1,40 +0,0 @@ -/******************************************************************************** - * Copyright (c) 2026 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0 - * - * SPDX-License-Identifier: Apache-2.0 - ********************************************************************************/ -#include -#include -#include - -static int shared_value = 0; - -static void tsan_buggy() { - std::thread writer([]() { - for (int i = 0; i < 100000; ++i) { - shared_value = i; // unsynchronized write - } - }); - - std::thread reader([]() { - int tmp = 0; - for (int i = 0; i < 100000; ++i) { - tmp = shared_value; // unsynchronized read - } - (void)tmp; - }); - - writer.join(); - reader.join(); -} - -TEST(TsanBugReproTest, ReadWriteRace_ShouldCrashUnderThreadSanitizer) { - ASSERT_DEATH({ tsan_buggy(); }, ".*"); -} \ No newline at end of file diff --git a/extensions/gcc.bzl b/extensions/gcc.bzl index 102b5d9..221481e 100644 --- a/extensions/gcc.bzl +++ b/extensions/gcc.bzl @@ -68,6 +68,24 @@ _attrs_tc = { default = [], doc = "List of additional flags to be passed to linker.", ), + "extra_enabled_features": attr.label_list( + mandatory = False, + doc = ("Extra `cc_feature` features to add to this toolchain in an initially " + + "enabled state. This attribute has limited integration with `cc_feature`, " + + "and does not run additional correctness checks or handle things like `data` " + + "files. This is only offered as a migration bridge for projects transitioning " + + "to rule-based toolchain configurations, or sharing of simple argument sets " + + "with older toolchains."), + ), + "extra_known_features": attr.label_list( + mandatory = False, + doc = ("Extra `cc_feature` features to add to this toolchain in an initially " + + "disabled state. This attribute has limited integration with `cc_feature`, " + + "and does not run additional correctness checks or handle things like `data` " + + "files. This is only offered as a migration bridge for projects transitioning " + + "to rule-based toolchain configurations, or sharing of simple argument sets " + + "with older toolchains."), + ), "license_info_url": attr.string( default = "", mandatory = False, @@ -193,6 +211,8 @@ def _get_toolchains(tags): "tc_extra_compile_flags": tag.extra_compile_flags, "tc_extra_cxx_compile_flags": tag.extra_cxx_compile_flags, "tc_extra_link_flags": tag.extra_link_flags, + "tc_extra_known_features": tag.extra_known_features, + "tc_extra_enabled_features": tag.extra_enabled_features, "tc_license_info_url": tag.license_info_url, "tc_license_info_variable": tag.license_info_variable, "tc_license_path": tag.license_path, @@ -333,6 +353,8 @@ def _impl(mctx): extra_compile_flags = toolchain_info["tc_extra_compile_flags"], extra_c_compile_flags = toolchain_info["tc_extra_c_compile_flags"], extra_cxx_compile_flags = toolchain_info["tc_extra_cxx_compile_flags"], + extra_known_features = toolchain_info["tc_extra_known_features"], + extra_enabled_features = toolchain_info["tc_extra_enabled_features"], extra_link_flags = toolchain_info["tc_extra_link_flags"], license_info_variable = toolchain_info["tc_license_info_variable"], license_info_value = toolchain_info["tc_license_info_url"], diff --git a/rules/common.bzl b/rules/common.bzl index 03b5396..10dd657 100644 --- a/rules/common.bzl +++ b/rules/common.bzl @@ -45,3 +45,14 @@ def get_flag_group(flags): ), ] return [] + +def label_list_to_string(input_list): + """ Small helper function to transform label list into string list + + Args: + input_list (list[labels]): A list of Bazel labels. + + Return: + str: Formated string + """ + return "[{}]".format(", ".join(["\"{}\"".format(item) for item in input_list])) diff --git a/rules/gcc.bzl b/rules/gcc.bzl index 576617e..f9a733a 100644 --- a/rules/gcc.bzl +++ b/rules/gcc.bzl @@ -14,7 +14,7 @@ """ Module rule for defining GCC toolchains in Bazel. """ -load("@score_bazel_cpp_toolchains//rules:common.bzl", "get_flag_groups") +load("@score_bazel_cpp_toolchains//rules:common.bzl", "get_flag_groups", "label_list_to_string") def dict_union(x, y): """ Helper function to merge 2 dict @@ -53,12 +53,16 @@ cc_toolchain_config( sysroot = "@{tc_pkg_repo}//:sysroot_dir", target_cpu = "{tc_cpu}", target_os = "{tc_os}", + extra_known_features = {tc_extra_known_features}, + extra_enabled_features = {tc_extra_enabled_features}, visibility = ["//visibility:public"], ) """.format( tc_pkg_repo = rctx.attr.tc_pkg_repo, tc_cpu = rctx.attr.tc_cpu, tc_os = rctx.attr.tc_os, + tc_extra_known_features = label_list_to_string(rctx.attr.extra_known_features), + tc_extra_enabled_features = label_list_to_string(rctx.attr.extra_enabled_features), ) def _get_cc_config_qnx(rctx): @@ -224,6 +228,8 @@ gcc_toolchain = repository_rule( "extra_c_compile_flags": attr.string_list(doc = "Extra/Additional C-specific compile flags."), "extra_compile_flags": attr.string_list(doc = "Extra/Additional compile flags."), "extra_cxx_compile_flags": attr.string_list(doc = "Extra/Additional C++-specific compile flags."), + "extra_known_features": attr.label_list(doc = "Extra/Additional C++ FeatureInfo provider list"), + "extra_enabled_features": attr.label_list(doc = "Extra/Additional C++ FeatureInfo provider list enabled by default"), "extra_link_flags": attr.string_list(doc = "Extra/Additional link flags."), "gcc_version": attr.string(doc = "GCC version string"), "use_base_constraints_only": attr.bool(doc = "Boolean flag to state only base constraints should be used for toolchain compatibility definition"), diff --git a/templates/linux/cc_toolchain_config.bzl.template b/templates/linux/cc_toolchain_config.bzl.template index 8ee5a75..a22af9f 100644 --- a/templates/linux/cc_toolchain_config.bzl.template +++ b/templates/linux/cc_toolchain_config.bzl.template @@ -27,6 +27,7 @@ load("@bazel_tools//tools/cpp:cc_toolchain_config_lib.bzl", "with_feature_set", ) load("@rules_cc//cc:defs.bzl", "cc_common", "CcToolchainConfigInfo") +load("@rules_cc//cc/toolchains:feature_injection.bzl", "convert_feature", "FeatureInfo") load(":flags.bzl", "UNFILTERED_COMPILE_FLAGS", "DEFAULT_COMPILE_FLAGS", @@ -85,9 +86,6 @@ def _impl(ctx): dbg_feature = feature(name = "dbg") opt_feature = feature(name = "opt") - # Temp solution until we do not add feature injection - gnu11_feature = feature(name = "gnu11") - supports_dynamic_linker_feature = feature(name = "supports_dynamic_linker", enabled = True) supports_fission_feature = feature(name = "supports_fission", enabled = True) @@ -207,16 +205,6 @@ def _impl(ctx): actions = all_compile_actions, flag_groups = target_cpu_flags, ), - flag_set( - actions = all_c_compile_actions, - flag_groups = [flag_group(flags = ["-std=c11"])], - with_features = [with_feature_set(not_features = ["gnu11"])], - ), - flag_set( - actions = all_c_compile_actions, - flag_groups = [flag_group(flags = ["-std=gnu11"])], - with_features = [with_feature_set(features = ["gnu11"])], - ), flag_set( actions = all_cpp_compile_actions, flag_groups = DEFAULT_CXX_COMPILE_FLAGS, @@ -288,187 +276,6 @@ def _impl(ctx): ], ) - sanitizer_feature = feature( - name = "sanitizer", - flag_sets = [ - flag_set( - actions = all_compile_actions, - flag_groups = [ - flag_group( - flags = [ - "-fno-omit-frame-pointer", - "-fno-sanitize-recover=all", # TODO: Check if this is needed. - "-g", - ], - ), - ], - with_features = [ - with_feature_set( - features = [ - "asan", - "lsan", - "tsan", - "ubsan", - ], - not_features = ["opt"], - ) - ], - ), - ], - ) - - asan_feature = feature( - name = "asan", - implies = ["sanitizer"], - flag_sets = [ - flag_set( - actions = all_compile_actions, - flag_groups = [ - flag_group( - flags = [ - "-fsanitize=address", - "-DADDRESS_SANITIZER", - "-O0", - ], - ), - ], - with_features = [ - with_feature_set( - not_features = ["opt"], - ) - ], - ), - flag_set( - actions = all_link_actions, - flag_groups = [ - flag_group( - flags = [ - "-fsanitize=address", - ], - ), - ], - with_features = [ - with_feature_set( - not_features = ["opt"], - ) - ], - ), - ], - ) - - lsan_feature = feature( - name = "lsan", - implies = ["sanitizer"], - flag_sets = [ - flag_set( - actions = all_compile_actions, - flag_groups = [ - flag_group( - flags = [ - "-fsanitize=leak", - "-O0", - ], - ), - ], - with_features = [ - with_feature_set( - not_features = ["opt"], - ) - ], - ), - flag_set( - actions = all_link_actions, - flag_groups = [ - flag_group( - flags = [ - "-fsanitize=leak", - ], - ), - ], - with_features = [ - with_feature_set( - not_features = ["opt"], - ) - ], - ), - ], - ) - - tsan_feature = feature( - name = "tsan", - implies = ["sanitizer"], - flag_sets = [ - flag_set( - actions = all_compile_actions, - flag_groups = [ - flag_group( - flags = [ - "-fsanitize=thread", - "-O1", - ], - ), - ], - with_features = [ - with_feature_set( - not_features = ["opt"], - ) - ], - ), - flag_set( - actions = all_link_actions, - flag_groups = [ - flag_group( - flags = [ - "-fsanitize=thread", - ], - ), - ], - with_features = [ - with_feature_set( - not_features = ["opt"], - ) - ], - ), - ], - ) - - ubsan_feature = feature( - name = "ubsan", - implies = ["sanitizer"], - flag_sets = [ - flag_set( - actions = all_compile_actions, - flag_groups = [ - flag_group( - flags = [ - "-fsanitize=undefined", - ], - ), - ], - with_features = [ - with_feature_set( - not_features = ["opt"], - ) - ], - ), - flag_set( - actions = all_link_actions, - flag_groups = [ - flag_group( - flags = [ - "-fsanitize=undefined", - ], - ), - ], - with_features = [ - with_feature_set( - not_features = ["opt"], - ) - ], - ), - ], - ) - minimal_warnings_feature = feature( name = "minimal_warnings", enabled = False, @@ -642,14 +449,8 @@ def _impl(ctx): features = [ compiler_library_search_paths_feature, - sanitizer_feature, - asan_feature, - lsan_feature, - tsan_feature, - ubsan_feature, dbg_feature, unfiltered_compile_flags_feature, - gnu11_feature, default_compile_flags_feature, default_link_flags_feature, sysroot_link_flags_feature, @@ -671,6 +472,9 @@ def _impl(ctx): gcc_coverage_map_format_feature, ] + extra_rules_based_features = depset(ctx.attr.extra_enabled_features + ctx.attr.extra_known_features) + features.extend([convert_feature(extra_feature[FeatureInfo], enabled = extra_feature in ctx.attr.extra_enabled_features) for extra_feature in extra_rules_based_features.to_list()]) + # Get builtin include directories from attribute if provided cxx_builtin_include_directories = [] if hasattr(ctx.attr, "builtin_include_directories") and ctx.attr.builtin_include_directories: @@ -715,5 +519,23 @@ cc_toolchain_config = rule( "host_dir": attr.label(default = None), "target_dir": attr.label(default = None), "cxx_builtin_include_directories": attr.label(allow_files = True, default = None), + "extra_enabled_features": attr.label_list( + providers = [FeatureInfo], + default = [], + doc = """ +Extra `cc_feature` features to add to this toolchain in an initially enabled state. +This attribute has limited integration with `cc_feature`, and does not run additional correctness checks or handle things like `data` files. +This is only offered as a migration bridge for projects transitioning to rule-based toolchain configurations, or sharing of simple argument sets with older toolchains. +""", + ), + "extra_known_features": attr.label_list( + providers = [FeatureInfo], + default = [], + doc = """ +Extra `cc_feature` features to add to this toolchain in an initially disabled state. +This attribute has limited integration with `cc_feature`, and does not run additional correctness checks or handle things like `data` files. +This is only offered as a migration bridge for projects transitioning to rule-based toolchain configurations, or sharing of simple argument sets with older toolchains. +""", + ), }, ) \ No newline at end of file diff --git a/templates/qnx/cc_toolchain_config.bzl.template b/templates/qnx/cc_toolchain_config.bzl.template index 6a609f3..3daeec6 100644 --- a/templates/qnx/cc_toolchain_config.bzl.template +++ b/templates/qnx/cc_toolchain_config.bzl.template @@ -449,6 +449,9 @@ def _impl(ctx): runtime_library_search_directories_feature, ] + extra_rules_based_features = depset(ctx.attr.extra_enabled_features + ctx.attr.extra_known_features) + features.extend([convert_feature(extra_feature[FeatureInfo], enabled = extra_feature in ctx.attr.extra_enabled_features) for extra_feature in extra_rules_based_features.to_list()]) + cxx_builtin_include_directories = [ "/proc/self/cwd/{}".format(include_directory.path) for include_directory in ctx.files.cxx_builtin_include_directories @@ -482,5 +485,23 @@ cc_toolchain_config = rule( "target_cpu": attr.string(mandatory = True), "target_os": attr.string(mandatory = True), "cxx_builtin_include_directories": attr.label(allow_files = True, mandatory = True), + "extra_enabled_features": attr.label_list( + providers = [FeatureInfo], + default = [], + doc = """ +Extra `cc_feature` features to add to this toolchain in an initially enabled state. +This attribute has limited integration with `cc_feature`, and does not run additional correctness checks or handle things like `data` files. +This is only offered as a migration bridge for projects transitioning to rule-based toolchain configurations, or sharing of simple argument sets with older toolchains. +""", + ), + "extra_known_features": attr.label_list( + providers = [FeatureInfo], + default = [], + doc = """ +Extra `cc_feature` features to add to this toolchain in an initially disabled state. +This attribute has limited integration with `cc_feature`, and does not run additional correctness checks or handle things like `data` files. +This is only offered as a migration bridge for projects transitioning to rule-based toolchain configurations, or sharing of simple argument sets with older toolchains. +""", + ), }, )