Hi All, Good news. This hack finally works on Linux arm64, but it is twice more complicated.
Best regards, Sam On Friday, December 19, 2025 at 10:42:25 AM UTC+1 [email protected] wrote: > 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/a3a2dc06-a919-4fea-af46-d7ce67f79076n%40googlegroups.com.
