If the final artifact you're building happens to be rust you can also just add it as a cargo dependency: https://github.com/denoland/rusty_v8/blob/31e543f26bde595f80f4bb50c47a07ccac31c624/Cargo.toml#L110
On Friday, December 19, 2025 at 10:08:57 AM UTC+1 [email protected] wrote: > Hi All, > > I also confirmed on Windows x86_64 and Linux x86_64 the same steps work. > It's quite challenging to do the same on Linux arm64. I'm still > investigating. Please feel free to let me know if you have any questions. > > Best regards, > Sam > > On Wednesday, December 17, 2025 at 2:11:39 PM UTC+1 Sam Cao wrote: > >> Hi All, >> >> I found a way to build Temporal for v8_monolith. Please follow the steps. >> >> 1. Set 'v8_enable_temporal_support = true' in your gn file. Be >> careful that 'compiler_timing' must be turned off. That's >> 'compiler_timing >> = false'. >> 2. Build v8_monolith as usual. >> 3. Run 'git clone https://github.com/boa-dev/temporal.git' to clone >> Temporal to a local folder. >> 4. Run 'cd temporal' and 'git checkout v0.1.2'. >> 5. Update 'Cargo.toml' and 'temporal_capi/Cargo.toml' by adding the >> following section. >> [lib] >> crate-type = ["staticlib", "rlib"] >> 6. Make sure you have a rust toolchain installed. >> 7. Run 'cargo build --release --package temporal_capi --features >> compiled_data,zoneinfo64'. >> 8. Copy 'target/release/libtemporal_capi.a' to 'out.gn/xxx/obj'. >> 9. Set the preprocessor 'V8_TEMPORAL_SUPPORT' in your project. >> 10. Link libtemporal_capi.a and libv8_monolith.a in your project. >> 11. Done. >> >> I've tested it on MacOS and the Temporal API works well. >> >> Please let me know if you have any questions. >> >> Cheers, >> Sam >> >> >> On Thu, Oct 30, 2025 at 10:59 PM 'Manish Goregaokar' via v8-users < >> [email protected]> wrote: >> >>> No, but you can track this issue at >>> https://g-issues.chromium.org/issues/434763436. >>> >>> I believe some work needs to be done on the Rust GN rules to fix this. >>> That work is currently not being worked on (or planned). >>> >>> On Thu, Oct 30, 2025 at 1:21 PM Alexandra Wheeler <[email protected]> >>> wrote: >>> >>>> Hi, was there ever a fix? I'm running into this problem now on macos. >>>> >>>> On Monday, July 28, 2025 at 9:16:46 AM UTC-4 [email protected] wrote: >>>> >>>>> I'm seeing the same linker issue while trying to enable temporal in >>>>> rusty_v8: https://github.com/denoland/rusty_v8/pull/1825 >>>>> >>>>> I tried adding the `:v8_maybe_temporal` group as a dependency of the >>>>> static lib target, but it didn't resolve the issue. >>>>> >>>>> On Sunday, July 20, 2025 at 2:28:44 AM UTC+2 jmr wrote: >>>>> >>>>>> Disabling temporal support works as a workaround for now: >>>>>> >>>>>> v8_enable_temporal_support = false >>>>>> >>>>>> On Sunday, 20 July 2025 at 01:01:34 UTC+1 jmr wrote: >>>>>> >>>>>>> This does not help either: >>>>>>> >>>>>>> v8_static_library("v8_monolith") { >>>>>>> deps = [ >>>>>>> ":v8", >>>>>>> ":v8_libbase", >>>>>>> ":v8_libplatform", >>>>>>> ":v8_maybe_temporal", >>>>>>> "//third_party/rust/temporal_capi", >>>>>>> "//build/win:default_exe_manifest", >>>>>>> ] >>>>>>> public_deps = [ "//third_party/rust/temporal_capi" ] >>>>>>> .... >>>>>>> >>>>>>> On Sunday, 20 July 2025 at 00:51:15 UTC+1 jmr wrote: >>>>>>> >>>>>>>> Hitting the same issue. >>>>>>>> >>>>>>>> Adding: >>>>>>>> >>>>>>>> v8_static_library("v8_monolith") { >>>>>>>> deps = [ >>>>>>>> ":v8", >>>>>>>> ":v8_libbase", >>>>>>>> ":v8_libplatform", >>>>>>>> ":v8_maybe_temporal", >>>>>>>> "//build/win:default_exe_manifest", >>>>>>>> ] >>>>>>>> >>>>>>>> configs = [ ":internal_config" ] >>>>>>>> } >>>>>>>> >>>>>>>> Does not help. >>>>>>>> On Tuesday, 24 June 2025 at 19:11:35 UTC+1 [email protected] >>>>>>>> wrote: >>>>>>>> >>>>>>>>> Hi Manish, >>>>>>>>> >>>>>>>>> Yes, I made the change to BUILD.gn on Windows. I'll try on MacOS >>>>>>>>> this weekend. >>>>>>>>> >>>>>>>>> Best regards, >>>>>>>>> Sam >>>>>>>>> >>>>>>>>> On Tuesday, June 24, 2025 at 4:55:48 PM UTC+2 [email protected] >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> Did you make the requested change to BUILD.gn, or just change >>>>>>>>>> args? Again, I'm recommending adding `:v8_maybe_temporal` to the >>>>>>>>>> dependencies section of the `v8_monolith` build rule. >>>>>>>>>> >>>>>>>>>> When I get a chance I can try and replicate these flags locally. >>>>>>>>>> >>>>>>>>>> On Tue, Jun 24, 2025 at 3:32 AM Sam Cao <[email protected]> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> Hi Manish, >>>>>>>>>>> >>>>>>>>>>> I just tried the following flags (V8 v13.8.258.19) on Windows. >>>>>>>>>>> dcheck_always_on = false >>>>>>>>>>> is_component_build = false >>>>>>>>>>> is_debug = false >>>>>>>>>>> symbol_level = 0 >>>>>>>>>>> target_cpu = "x64" >>>>>>>>>>> use_custom_libcxx = false >>>>>>>>>>> v8_enable_i18n_support = false >>>>>>>>>>> v8_enable_pointer_compression = false >>>>>>>>>>> v8_enable_sandbox = false >>>>>>>>>>> v8_enable_temporal_support = true >>>>>>>>>>> v8_monolithic = true >>>>>>>>>>> v8_monolithic_for_shared_library = true >>>>>>>>>>> v8_static_library = true >>>>>>>>>>> v8_target_cpu = "x64" >>>>>>>>>>> v8_use_external_startup_data = false >>>>>>>>>>> >>>>>>>>>>> It still doesn't work. Here are the errors. >>>>>>>>>>> MSBuild version 17.13.19+0d9f5a35a for .NET Framework >>>>>>>>>>> >>>>>>>>>>> 1>Checking Build System >>>>>>>>>>> Building Custom Rule C:/****/CMakeLists.txt >>>>>>>>>>> lld-link : error : undefined symbol: temporal_rs_Instant_try_new >>>>>>>>>>> [C:\****.vcxproj] >>>>>>>>>>> >>> referenced by >>>>>>>>>>> v8_monolith.lib(js-temporal-objects.obj):(class >>>>>>>>>>> v8::internal::MaybeDirectHandle<class >>>>>>>>>>> v8::internal::JSTemporalInstant> >>>>>>>>>>> __cdecl >>>>>>>>>>> v8::internal::temporal::CreateTemporalInstantWithValidityCheck( >>>>>>>>>>> class v8::internal::Isolate *, class >>>>>>>>>>> v8::internal::DirectHandle<class v8::internal::JSFunction>, class >>>>>>>>>>> v8::internal::DirectHandle<class v8::internal::HeapObject>, class >>>>>>>>>>> v8::internal::DirectHandle<class v8::in >>>>>>>>>>> ternal::BigInt>)) >>>>>>>>>>> >>>>>>>>>>> lld-link : error : undefined symbol: temporal_rs_Instant_destroy >>>>>>>>>>> [C:\****.vcxproj] >>>>>>>>>>> >>> referenced by >>>>>>>>>>> v8_monolith.lib(js-temporal-objects.obj):(class >>>>>>>>>>> v8::internal::MaybeDirectHandle<class >>>>>>>>>>> v8::internal::JSTemporalInstant> >>>>>>>>>>> __cdecl >>>>>>>>>>> v8::internal::temporal::CreateTemporalInstantWithValidityCheck( >>>>>>>>>>> class v8::internal::Isolate *, class >>>>>>>>>>> v8::internal::DirectHandle<class v8::internal::JSFunction>, class >>>>>>>>>>> v8::internal::DirectHandle<class v8::internal::HeapObject>, class >>>>>>>>>>> v8::internal::DirectHandle<class v8::in >>>>>>>>>>> ternal::BigInt>)) >>>>>>>>>>> >>> referenced by >>>>>>>>>>> v8_monolith.lib(js-temporal-objects.obj):(public: static class >>>>>>>>>>> v8::internal::MaybeDirectHandle<class >>>>>>>>>>> v8::internal::JSTemporalInstant> >>>>>>>>>>> __cdecl v8::internal::JSTemporalInstant::Round(class v8: >>>>>>>>>>> :internal::Isolate *, class v8::internal::DirectHandle<class >>>>>>>>>>> v8::internal::JSTemporalInstant>, class >>>>>>>>>>> v8::internal::DirectHandle<class >>>>>>>>>>> v8::internal::Object>)) >>>>>>>>>>> >>> referenced by >>>>>>>>>>> v8_monolith.lib(js-temporal-objects.obj):(private: virtual void >>>>>>>>>>> __cdecl >>>>>>>>>>> std::_Ref_count_resource<class temporal_rs::Instant *, struct >>>>>>>>>>> std::default_delete<class temporal_rs::Instant>>::_Destr >>>>>>>>>>> oy(void)) >>>>>>>>>>> >>>>>>>>>>> lld-link : error : undefined symbol: temporal_rs_Instant_round >>>>>>>>>>> [C:\****.vcxproj] >>>>>>>>>>> >>> referenced by >>>>>>>>>>> v8_monolith.lib(js-temporal-objects.obj):(public: static class >>>>>>>>>>> v8::internal::MaybeDirectHandle<class >>>>>>>>>>> v8::internal::JSTemporalInstant> >>>>>>>>>>> __cdecl v8::internal::JSTemporalInstant::Round(class v8: >>>>>>>>>>> :internal::Isolate *, class v8::internal::DirectHandle<class >>>>>>>>>>> v8::internal::JSTemporalInstant>, class >>>>>>>>>>> v8::internal::DirectHandle<class >>>>>>>>>>> v8::internal::Object>)) >>>>>>>>>>> >>>>>>>>>>> lld-link : error : undefined symbol: >>>>>>>>>>> temporal_rs_Instant_epoch_milliseconds [C:\****.vcxproj] >>>>>>>>>>> >>> referenced by >>>>>>>>>>> v8_monolith.lib(js-temporal-objects.obj):(public: static class >>>>>>>>>>> v8::internal::MaybeDirectHandle<class v8::internal::Union<class >>>>>>>>>>> v8::internal::Smi, class v8::internal::HeapNumber>> __cdecl v8: >>>>>>>>>>> :internal::JSTemporalInstant::EpochMilliseconds(class >>>>>>>>>>> v8::internal::Isolate *, class v8::internal::DirectHandle<class >>>>>>>>>>> v8::internal::JSTemporalInstant>)) >>>>>>>>>>> >>> referenced by >>>>>>>>>>> v8_monolith.lib(js-temporal-objects.obj):(public: static class >>>>>>>>>>> v8::internal::MaybeDirectHandle<class v8::internal::String> __cdecl >>>>>>>>>>> v8::internal::JSTemporalInstant::ToString(class v8::interna >>>>>>>>>>> l::Isolate *, class v8::internal::DirectHandle<class >>>>>>>>>>> v8::internal::JSTemporalInstant>, class >>>>>>>>>>> v8::internal::DirectHandle<class >>>>>>>>>>> v8::internal::Object>)) >>>>>>>>>>> >>>>>>>>>>> lld-link : error : undefined symbol: >>>>>>>>>>> temporal_rs_Instant_epoch_nanoseconds [C:\****.vcxproj] >>>>>>>>>>> >>> referenced by >>>>>>>>>>> v8_monolith.lib(js-temporal-objects.obj):(public: static class >>>>>>>>>>> v8::internal::MaybeDirectHandle<class v8::internal::BigInt> __cdecl >>>>>>>>>>> v8::internal::JSTemporalInstant::EpochNanoseconds(class v8: >>>>>>>>>>> :internal::Isolate *, class v8::internal::DirectHandle<class >>>>>>>>>>> v8::internal::JSTemporalInstant>)) >>>>>>>>>>> Build Failed >>>>>>>>>>> >>>>>>>>>>> I'm not sure what went wrong. >>>>>>>>>>> >>>>>>>>>>> Best regards, >>>>>>>>>>> Sam >>>>>>>>>>> >>>>>>>>>>> On Monday, June 23, 2025 at 7:16:41 PM UTC+2 Sam Cao wrote: >>>>>>>>>>> >>>>>>>>>>>> Hi Manish, >>>>>>>>>>>> >>>>>>>>>>>> Thank you for the info. I'll try it later and let you know if >>>>>>>>>>>> it works. >>>>>>>>>>>> >>>>>>>>>>>> Best regards, >>>>>>>>>>>> Sam >>>>>>>>>>>> >>>>>>>>>>>> On Mon, Jun 23, 2025 at 6:02 PM 'Manish Goregaokar' via >>>>>>>>>>>> v8-users <[email protected]> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Hi! >>>>>>>>>>>>> >>>>>>>>>>>>> I don't know how to replicate this problem, but have you tried >>>>>>>>>>>>> adding `:v8_maybe_temporal` as a dependency to >>>>>>>>>>>>> `v8_static_library("v8_monolith")` in `BUILD.gn`? >>>>>>>>>>>>> >>>>>>>>>>>>> Let me know if that works and i can fix it upstream. >>>>>>>>>>>>> >>>>>>>>>>>>> On Sunday, June 22, 2025 at 1:05:38 PM UTC-7 Sam Cao wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> Hi V8 Dev Team, >>>>>>>>>>>>>> >>>>>>>>>>>>>> I tried to turn on v8_enable_temporal_support for my V8 >>>>>>>>>>>>>> embedder, but found the related JS temporal symbols are only >>>>>>>>>>>>>> built into >>>>>>>>>>>>>> libv8_monolith.a on Linux. On MacOS or Windows, I experienced >>>>>>>>>>>>>> js_temporal_* >>>>>>>>>>>>>> symbol not found errors. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Could you check it out? Thank you. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Best regards, >>>>>>>>>>>>>> Sam >>>>>>>>>>>>>> >>>>>>>>>>>>> -- >>>>>>>>>>>>> -- >>>>>>>>>>>>> v8-users mailing list >>>>>>>>>>>>> [email protected] >>>>>>>>>>>>> http://groups.google.com/group/v8-users >>>>>>>>>>>>> --- >>>>>>>>>>>>> You received this message because you are subscribed to a >>>>>>>>>>>>> topic in the Google Groups "v8-users" group. >>>>>>>>>>>>> To unsubscribe from this topic, visit >>>>>>>>>>>>> https://groups.google.com/d/topic/v8-users/nI21ZCjYJwo/unsubscribe >>>>>>>>>>>>> . >>>>>>>>>>>>> To unsubscribe from this group and all its topics, send an >>>>>>>>>>>>> email to [email protected]. >>>>>>>>>>>>> To view this discussion visit >>>>>>>>>>>>> https://groups.google.com/d/msgid/v8-users/e3eee9bb-bf9b-42ef-b215-6b89d2768f28n%40googlegroups.com >>>>>>>>>>>>> >>>>>>>>>>>>> <https://groups.google.com/d/msgid/v8-users/e3eee9bb-bf9b-42ef-b215-6b89d2768f28n%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>>>>>>>> . >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> -- Sam >>>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> -- >>>>>>>>>>> v8-users mailing list >>>>>>>>>>> [email protected] >>>>>>>>>>> http://groups.google.com/group/v8-users >>>>>>>>>>> --- >>>>>>>>>>> You received this message because you are subscribed to a topic >>>>>>>>>>> in the Google Groups "v8-users" group. >>>>>>>>>>> To unsubscribe from this topic, visit >>>>>>>>>>> https://groups.google.com/d/topic/v8-users/nI21ZCjYJwo/unsubscribe >>>>>>>>>>> . >>>>>>>>>>> To unsubscribe from this group and all its topics, send an email >>>>>>>>>>> to [email protected]. >>>>>>>>>>> >>>>>>>>>> To view this discussion visit >>>>>>>>>>> https://groups.google.com/d/msgid/v8-users/3c7455f9-bb11-4922-b9fb-03102f4d7a24n%40googlegroups.com >>>>>>>>>>> >>>>>>>>>>> <https://groups.google.com/d/msgid/v8-users/3c7455f9-bb11-4922-b9fb-03102f4d7a24n%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>>>>>> . >>>>>>>>>>> >>>>>>>>>> -- >>>> -- >>>> v8-users mailing list >>>> [email protected] >>>> http://groups.google.com/group/v8-users >>>> --- >>>> You received this message because you are subscribed to a topic in the >>>> Google Groups "v8-users" group. >>>> To unsubscribe from this topic, visit >>>> https://groups.google.com/d/topic/v8-users/nI21ZCjYJwo/unsubscribe. >>>> To unsubscribe from this group and all its topics, send an email to >>>> [email protected]. >>>> To view this discussion visit >>>> https://groups.google.com/d/msgid/v8-users/5f30552a-9213-4b9d-8de3-c3e13a83d420n%40googlegroups.com >>>> >>>> <https://groups.google.com/d/msgid/v8-users/5f30552a-9213-4b9d-8de3-c3e13a83d420n%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>> -- >>> -- >>> v8-users mailing list >>> [email protected] >>> http://groups.google.com/group/v8-users >>> --- >>> You received this message because you are subscribed to a topic in the >>> Google Groups "v8-users" group. >>> To unsubscribe from this topic, visit >>> https://groups.google.com/d/topic/v8-users/nI21ZCjYJwo/unsubscribe. >>> To unsubscribe from this group and all its topics, send an email to >>> [email protected]. >>> >> To view this discussion visit >>> https://groups.google.com/d/msgid/v8-users/CAL9OwVy7RZBMbBwFJrwoduhj%3DTKkO7jE_i5bvdHHRGZB-oOX%2Bw%40mail.gmail.com >>> >>> <https://groups.google.com/d/msgid/v8-users/CAL9OwVy7RZBMbBwFJrwoduhj%3DTKkO7jE_i5bvdHHRGZB-oOX%2Bw%40mail.gmail.com?utm_medium=email&utm_source=footer> >>> . >>> >> >> >> -- >> -- Sam >> > -- -- v8-users mailing list [email protected] http://groups.google.com/group/v8-users --- You received this message because you are subscribed to the Google Groups "v8-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/d/msgid/v8-users/973cce03-ad95-4b8a-b8c5-60cc3238ee13n%40googlegroups.com.
