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/0a2de8e7-ee24-47d7-80e9-25f51ef22fa9n%40googlegroups.com.

Reply via email to