Skip to content

Commit 22cc899

Browse files
committed
Use @rules_cc//cc/compiler instead
1 parent 09ec799 commit 22cc899

7 files changed

Lines changed: 52 additions & 55 deletions

File tree

.bazelrc

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,6 @@ build:asan-honggfuzz-gcc --//fuzzing:cc_engine=//fuzzing/engines:honggfuzz
7979
build:asan-honggfuzz-gcc --@rules_fuzzing//fuzzing:cc_engine_instrumentation=honggfuzz
8080
build:asan-honggfuzz-gcc --@rules_fuzzing//fuzzing:cc_engine_sanitizer=asan
8181
build:asan-honggfuzz-gcc --repo_env=CC=gcc
82-
build:asan-honggfuzz-gcc --@rules_fuzzing//fuzzing:compiler_type=gcc
8382

8483
# Replay + ASAN
8584
build:asan-replay --//fuzzing:cc_engine=//fuzzing/engines:replay

fuzzing/BUILD

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -73,22 +73,6 @@ bool_flag(
7373
visibility = ["//visibility:public"],
7474
)
7575

76-
string_flag(
77-
name = "compiler_type",
78-
build_setting_default = "clang",
79-
values = [
80-
"clang",
81-
"gcc",
82-
],
83-
visibility = ["//visibility:public"],
84-
)
85-
86-
config_setting(
87-
name = "is_gcc",
88-
flag_values = {":compiler_type": "gcc"},
89-
visibility = ["//visibility:public"],
90-
)
91-
9276
exports_files([
9377
"cc_defs.bzl",
9478
"java_defs.bzl",

fuzzing/private/binary.bzl

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,14 +47,14 @@ Provider for storing information about a fuzz test binary.
4747
},
4848
)
4949

50-
def _fuzzing_binary_transition_impl(settings, _attr):
50+
def _fuzzing_binary_transition_impl(settings, attr):
5151
opts = instrum_opts.make(
5252
copts = settings["//command_line_option:copt"],
5353
conlyopts = settings["//command_line_option:conlyopt"],
5454
cxxopts = settings["//command_line_option:cxxopt"],
5555
linkopts = settings["//command_line_option:linkopt"],
5656
)
57-
compiler_type = settings["@rules_fuzzing//fuzzing:compiler_type"]
57+
compiler_type = getattr(attr, "compiler", "clang")
5858

5959
is_fuzzing_build_mode = settings["@rules_fuzzing//fuzzing:cc_fuzzing_build_mode"]
6060
if is_fuzzing_build_mode:
@@ -88,7 +88,6 @@ fuzzing_binary_transition = transition(
8888
"@rules_fuzzing//fuzzing:cc_engine_instrumentation",
8989
"@rules_fuzzing//fuzzing:cc_engine_sanitizer",
9090
"@rules_fuzzing//fuzzing:cc_fuzzing_build_mode",
91-
"@rules_fuzzing//fuzzing:compiler_type",
9291
"//command_line_option:copt",
9392
"//command_line_option:conlyopt",
9493
"//command_line_option:cxxopt",
@@ -187,6 +186,11 @@ The instrumentation is controlled by the following flags:
187186
cfg = fuzzing_binary_transition,
188187
mandatory = True,
189188
),
189+
"compiler": attr.string(
190+
default = "clang",
191+
values = ["clang", "gcc"],
192+
doc = "The compiler used to build the fuzz test executable.",
193+
),
190194
"_allowlist_function_transition": attr.label(
191195
default = "@bazel_tools//tools/allowlists/function_transition_allowlist",
192196
),

fuzzing/private/extensions.bzl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ load("@bazel_features//:features.bzl", "bazel_features")
1818
load("//fuzzing:repositories.bzl", "rules_fuzzing_dependencies")
1919

2020
def _non_module_dependencies(mctx):
21-
rules_fuzzing_dependencies()
21+
rules_fuzzing_dependencies(bzlmod = True)
2222

2323
if bazel_features.external_deps.extension_metadata_has_reproducible:
2424
return mctx.extension_metadata(reproducible = True)

fuzzing/private/fuzz_test.bzl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,10 @@ def fuzzing_decoration(
8383
fuzzing_binary(
8484
name = instrum_binary_name,
8585
binary = raw_binary,
86+
compiler = select({
87+
str(Label("@rules_cc//cc/compiler:gcc")): "gcc",
88+
"//conditions:default": "clang",
89+
}),
8690
engine = engine,
8791
corpus = corpus_name,
8892
dictionary = dict_name if dicts else None,

fuzzing/repositories.bzl

Lines changed: 35 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -18,47 +18,49 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive", "http_jar")
1818
load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
1919
load("//fuzzing/private/oss_fuzz:repository.bzl", "oss_fuzz_repository")
2020

21-
def rules_fuzzing_dependencies(oss_fuzz = True, honggfuzz = True, jazzer = True):
21+
def rules_fuzzing_dependencies(oss_fuzz = True, honggfuzz = True, jazzer = True, bzlmod = False):
2222
"""Instantiates the dependencies of the fuzzing rules.
2323
2424
Args:
2525
oss_fuzz: Include OSS-Fuzz dependencies.
2626
honggfuzz: Include Honggfuzz dependencies.
2727
jazzer: Include Jazzer dependencies.
28+
bzlmod: Whether to exclude dependencies that are already provided by bazel_deps.
2829
"""
2930

30-
maybe(
31-
http_archive,
32-
name = "platforms",
33-
urls = [
34-
"https://mirror.bazel.build/github.com/bazelbuild/platforms/releases/download/0.0.8/platforms-0.0.8.tar.gz",
35-
"https://github.com/bazelbuild/platforms/releases/download/0.0.8/platforms-0.0.8.tar.gz",
36-
],
37-
sha256 = "8150406605389ececb6da07cbcb509d5637a3ab9a24bc69b1101531367d89d74",
38-
)
39-
maybe(
40-
http_archive,
41-
name = "rules_python",
42-
sha256 = "d70cd72a7a4880f0000a6346253414825c19cdd40a28289bdf67b8e6480edff8",
43-
strip_prefix = "rules_python-0.28.0",
44-
url = "https://github.com/bazelbuild/rules_python/releases/download/0.28.0/rules_python-0.28.0.tar.gz",
45-
)
46-
maybe(
47-
http_archive,
48-
name = "bazel_skylib",
49-
sha256 = "cd55a062e763b9349921f0f5db8c3933288dc8ba4f76dd9416aac68acee3cb94",
50-
urls = [
51-
"https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.5.0/bazel-skylib-1.5.0.tar.gz",
52-
"https://github.com/bazelbuild/bazel-skylib/releases/download/1.5.0/bazel-skylib-1.5.0.tar.gz",
53-
],
54-
)
55-
maybe(
56-
http_archive,
57-
name = "com_google_absl",
58-
urls = ["https://github.com/abseil/abseil-cpp/archive/refs/tags/20240116.1.zip"],
59-
strip_prefix = "abseil-cpp-20240116.1",
60-
integrity = "sha256-7capMWOvWyoYbUaHF/b+I2U6XLMaHmky8KugWvfXYuk=",
61-
)
31+
if not bzlmod:
32+
maybe(
33+
http_archive,
34+
name = "platforms",
35+
urls = [
36+
"https://mirror.bazel.build/github.com/bazelbuild/platforms/releases/download/0.0.8/platforms-0.0.8.tar.gz",
37+
"https://github.com/bazelbuild/platforms/releases/download/0.0.8/platforms-0.0.8.tar.gz",
38+
],
39+
sha256 = "8150406605389ececb6da07cbcb509d5637a3ab9a24bc69b1101531367d89d74",
40+
)
41+
maybe(
42+
http_archive,
43+
name = "rules_python",
44+
sha256 = "d70cd72a7a4880f0000a6346253414825c19cdd40a28289bdf67b8e6480edff8",
45+
strip_prefix = "rules_python-0.28.0",
46+
url = "https://github.com/bazelbuild/rules_python/releases/download/0.28.0/rules_python-0.28.0.tar.gz",
47+
)
48+
maybe(
49+
http_archive,
50+
name = "bazel_skylib",
51+
sha256 = "cd55a062e763b9349921f0f5db8c3933288dc8ba4f76dd9416aac68acee3cb94",
52+
urls = [
53+
"https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.5.0/bazel-skylib-1.5.0.tar.gz",
54+
"https://github.com/bazelbuild/bazel-skylib/releases/download/1.5.0/bazel-skylib-1.5.0.tar.gz",
55+
],
56+
)
57+
maybe(
58+
http_archive,
59+
name = "com_google_absl",
60+
urls = ["https://github.com/abseil/abseil-cpp/archive/refs/tags/20240116.1.zip"],
61+
strip_prefix = "abseil-cpp-20240116.1",
62+
integrity = "sha256-7capMWOvWyoYbUaHF/b+I2U6XLMaHmky8KugWvfXYuk=",
63+
)
6264

6365
if oss_fuzz:
6466
maybe(

honggfuzz.BUILD

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ COMMON_COPTS = [
3535
"-Wextra",
3636
"-Werror",
3737
] + select({
38-
"@rules_fuzzing//fuzzing:is_gcc": [
38+
"@rules_cc//cc/compiler:gcc": [
3939
"-Wno-override-init",
4040
"-Wno-format-truncation",
4141
# Do not instrument Honggfuzz itself, in order to avoid recursive
@@ -159,6 +159,10 @@ cc_library(
159159
deps = [
160160
":honggfuzz_common",
161161
],
162+
target_compatible_with = select({
163+
"@platforms//os:linux": [],
164+
"//conditions:default": ["@platforms//:incompatible"],
165+
}),
162166
alwayslink = 1,
163167
)
164168

0 commit comments

Comments
 (0)