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.

Reply via email to