diff --git a/.github/actions/install/action.yml b/.github/actions/install/action.yml index 86daf6d8..c18090bb 100644 --- a/.github/actions/install/action.yml +++ b/.github/actions/install/action.yml @@ -13,7 +13,7 @@ inputs: zig-v8: description: 'zig v8 version to install' required: false - default: 'v0.2.6' + default: 'v0.2.7' v8: description: 'v8 version to install' required: false diff --git a/Dockerfile b/Dockerfile index adce8fd9..48df995c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,7 @@ FROM debian:stable-slim ARG MINISIG=0.12 ARG ZIG_MINISIG=RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U ARG V8=14.0.365.4 -ARG ZIG_V8=v0.2.6 +ARG ZIG_V8=v0.2.7 ARG TARGETPLATFORM RUN apt-get update -yq && \ diff --git a/build.zig b/build.zig index 7d97728a..bcf34bee 100644 --- a/build.zig +++ b/build.zig @@ -35,7 +35,8 @@ pub fn build(b: *Build) !void { opts.addOption([]const u8, "git_commit", git_commit orelse "dev"); opts.addOption(?[]const u8, "snapshot_path", snapshot_path); - const enable_tsan = b.option(bool, "tsan", "Enable Thread Sanitizer"); + const enable_tsan = b.option(bool, "tsan", "Enable Thread Sanitizer") orelse false; + const enable_asan = b.option(bool, "asan", "Enable Address Sanitizer") orelse false; const enable_csan = b.option(std.zig.SanitizeC, "csan", "Enable C Sanitizers"); const lightpanda_module = blk: { @@ -50,7 +51,7 @@ pub fn build(b: *Build) !void { }); mod.addImport("lightpanda", mod); // allow circular "lightpanda" import - try addDependencies(b, mod, opts, prebuilt_v8_path); + try addDependencies(b, mod, opts, enable_asan, enable_tsan, prebuilt_v8_path); break :blk mod; }; @@ -170,15 +171,25 @@ pub fn build(b: *Build) !void { } } -fn addDependencies(b: *Build, mod: *Build.Module, opts: *Build.Step.Options, prebuilt_v8_path: ?[]const u8) !void { +fn addDependencies( + b: *Build, + mod: *Build.Module, + opts: *Build.Step.Options, + is_asan: bool, + is_tsan: bool, + prebuilt_v8_path: ?[]const u8, +) !void { mod.addImport("build_config", opts.createModule()); const target = mod.resolved_target.?; const dep_opts = .{ .target = target, .optimize = mod.optimize.?, - .prebuilt_v8_path = prebuilt_v8_path, .cache_root = b.pathFromRoot(".lp-cache"), + .prebuilt_v8_path = prebuilt_v8_path, + .is_asan = is_asan, + .is_tsan = is_tsan, + .v8_enable_sandbox = is_tsan, }; mod.addIncludePath(b.path("vendor/lightpanda")); diff --git a/build.zig.zon b/build.zig.zon index f32868b8..26ac5346 100644 --- a/build.zig.zon +++ b/build.zig.zon @@ -6,8 +6,8 @@ .minimum_zig_version = "0.15.2", .dependencies = .{ .v8 = .{ - .url = "https://github.com/lightpanda-io/zig-v8-fork/archive/v0.2.6.tar.gz", - .hash = "v8-0.0.0-xddH60NRBAAWmpZq9nWdfFAEqVJ9zqJnvr1Nl9m2AbcY", + .url = "https://github.com/lightpanda-io/zig-v8-fork/archive/refs/tags/0.2.7.tar.gz", + .hash = "v8-0.0.0-xddH62VUBADeNHR3Go37RmFrODPARC-f5vjxkpJtxQsZ", }, //.v8 = .{ .path = "../zig-v8-fork" }, .@"boringssl-zig" = .{