Enable obj.sanitize_coverage_trace_pc_guard for Zig

This commit is contained in:
Sosuke Suzuki
2025-10-30 10:33:07 +09:00
parent e686b426e1
commit 423cf0be91

View File

@@ -48,6 +48,7 @@ const BunBuildOptions = struct {
/// enable debug logs in release builds
enable_logs: bool = false,
enable_asan: bool,
enable_fuzzilli: bool,
enable_valgrind: bool,
use_mimalloc: bool,
tracy_callstack_depth: u16,
@@ -97,6 +98,7 @@ const BunBuildOptions = struct {
opts.addOption(bool, "baseline", this.isBaseline());
opts.addOption(bool, "enable_logs", this.enable_logs);
opts.addOption(bool, "enable_asan", this.enable_asan);
opts.addOption(bool, "enable_fuzzilli", this.enable_fuzzilli);
opts.addOption(bool, "enable_valgrind", this.enable_valgrind);
opts.addOption(bool, "use_mimalloc", this.use_mimalloc);
opts.addOption([]const u8, "reported_nodejs_version", b.fmt("{}", .{this.reported_nodejs_version}));
@@ -271,6 +273,7 @@ pub fn build(b: *Build) !void {
.tracy_callstack_depth = b.option(u16, "tracy_callstack_depth", "") orelse 10,
.enable_logs = b.option(bool, "enable_logs", "Enable logs in release") orelse false,
.enable_asan = b.option(bool, "enable_asan", "Enable asan") orelse false,
.enable_fuzzilli = b.option(bool, "enable_fuzzilli", "Enable Fuzzilli fuzzing support (requires asan)") orelse false,
.enable_valgrind = b.option(bool, "enable_valgrind", "Enable valgrind") orelse false,
.use_mimalloc = b.option(bool, "use_mimalloc", "Use mimalloc as default allocator") orelse false,
.llvm_codegen_threads = b.option(u32, "llvm_codegen_threads", "Number of threads to use for LLVM codegen") orelse 1,
@@ -502,6 +505,7 @@ fn addMultiCheck(
.codegen_path = root_build_options.codegen_path,
.no_llvm = root_build_options.no_llvm,
.enable_asan = root_build_options.enable_asan,
.enable_fuzzilli = root_build_options.enable_fuzzilli,
.enable_valgrind = root_build_options.enable_valgrind,
.use_mimalloc = root_build_options.use_mimalloc,
.override_no_export_cpp_apis = root_build_options.override_no_export_cpp_apis,
@@ -626,6 +630,16 @@ fn configureObj(b: *Build, opts: *BunBuildOptions, obj: *Compile) void {
obj.step.dependOn(&fail_step.step);
}
}
if (opts.enable_fuzzilli) {
if (!opts.enable_asan) {
const fail_step = b.addFail("enable_fuzzilli requires enable_asan to be enabled. Please set -Denable_asan=true");
obj.step.dependOn(&fail_step.step);
}
if (!enableFastBuild(b)) {
obj.sanitize_coverage_trace_pc_guard = true;
}
}
obj.bundle_compiler_rt = false;
obj.bundle_ubsan_rt = false;