tools: enable temporal by default in Nix integration

So we can test it with `test-shared.yml`.

Signed-off-by: Antoine du Hamel <duhamelantoine1995@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/66267
Reviewed-By: Filip Skokan <panva.ip@gmail.com>
Reviewed-By: René <contact.9a5d6388@renegade334.me.uk>
This commit is contained in:
Antoine du Hamel committed 2026-09-28 23:54:53 +02:00
1 parent 78b502a565
commit 0607f14c3a
5 files changed
+23 -74

No files matched your search

+10 -1
View File
@@ -168,7 +168,16 @@ jobs:
extra-nix-flags: |
--arg useSeparateDerivationForV8 true \
${{ matrix.perfetto && '--arg withPerfetto true \' || '\' }}
${{ endsWith(matrix.system, '-darwin') && '--arg withAmaro false --arg withLief false --arg withSQLite false --arg withFFI false --arg extraConfigFlags ''["--without-inspector" "--without-node-options"]'' \' || '\' }}
${{ endsWith(matrix.system, '-darwin') && '\
--arg withAmaro false \
--arg withFFI false \
--arg withLief false \
--arg withSQLite false \
--arg withTemporal false \
--arg extraConfigFlags ''[
"--without-inspector"
"--without-node-options"
]'' \' || '\' }}
secrets:
CACHIX_AUTH_TOKEN: ${{ secrets.CACHIX_AUTH_TOKEN }}
+1 -1
View File
@@ -18,7 +18,7 @@
withSQLite ? true,
withFFI ? true,
withSSL ? true,
withTemporal ? false,
withTemporal ? true,
withPerfetto ? false,
sharedLibDeps ? (
import ./tools/nix/sharedLibDeps.nix {
+1 -1
View File
@@ -6,7 +6,7 @@
withSSL ? true,
withFFI ? true,
withPerfetto ? false,
withTemporal ? false,
withTemporal ? true,
}:
{
inherit (pkgs)
-63
View File
@@ -1,63 +0,0 @@
diff --git a/deps/v8/src/objects/js-temporal-zoneinfo64.cc b/deps/v8/src/objects/js-temporal-zoneinfo64.cc
index 99dd3a84c1e..b6b399c10dc 100644
--- a/deps/v8/src/objects/js-temporal-zoneinfo64.cc
+++ b/deps/v8/src/objects/js-temporal-zoneinfo64.cc
@@ -11,12 +11,44 @@
#include "temporal_rs/TimeZone.hpp"
#ifdef V8_INTL_SUPPORT
-#include "udatamem.h"
+#include "unicode/udata.h"
+typedef struct {
+ uint16_t headerSize;
+ uint8_t magic1;
+ uint8_t magic2;
+} MappedData;
+typedef struct {
+ MappedData dataHeader;
+ UDataInfo info;
+} DataHeader;
+typedef struct {
+ void* Lookup;
+ void* NumEntries;
+} commonDataFuncs;
+struct UDataMemory {
+ const commonDataFuncs *vFuncs; /* Function Pointers for accessing TOC */
+
+ const DataHeader *pHeader; /* Header of the memory being described by this */
+ /* UDataMemory object. */
+ const void *toc; /* For common memory, table of contents for */
+ /* the pieces within. */
+ UBool heapAllocated; /* True if this UDataMemory Object is on the */
+ /* heap and thus needs to be deleted when closed. */
+
+ void *mapAddr; /* For mapped or allocated memory, the start addr. */
+ /* Only non-null if a close operation should unmap */
+ /* the associated data. */
+ void *map; /* Handle, or other data, OS dependent. */
+ /* Only non-null if a close operation should unmap */
+ /* the associated data, and additional info */
+ /* beyond the mapAddr is needed to do that. */
+ int32_t length; /* Length of the data in bytes; -1 if unknown. */
+};
#else
// Defined in builtins-temporal-zoneinfo64-data.cc, generated by
// include-file-as-bytes.py
-extern "C" uint32_t zoneinfo64_static_data[];
-extern "C" size_t zoneinfo64_static_data_len;
+static uint32_t zoneinfo64_static_data[] = {};
+static size_t zoneinfo64_static_data_len = 0;
#endif
namespace v8::internal {
@@ -33,7 +65,7 @@ ZoneInfo64Provider::ZoneInfo64Provider() {
// NOT udata_getLength: this ignores the header,
// and we're parsing resb files with the header
auto length = memory->length;
- const void* data = udata_getRawMemory(memory);
+ const void* data = udata_getMemory(memory);
DCHECK_WITH_MSG(length % 4 == 0, "ICU4C should align udata to uint32_t");
if (length % 4 != 0) {
// This really shouldn't happen: ICU4C aligns these files
--
2.51.0
+11 -8
View File
@@ -25,7 +25,10 @@
let
useSharedAbseil = builtins.elem "--shared-abseil" configureFlags;
useSharedHighway = builtins.elem "--shared-highway" configureFlags;
useSharedPerfetto = builtins.elem "--shared-perfetto" configureFlags;
useSharedSimdutf = builtins.elem "--shared-simdutf" configureFlags;
useSharedTemporal = builtins.elem "--shared-temporal_capi" configureFlags;
src =
let
inherit (lib) fileset;
@@ -50,8 +53,13 @@ let
++ lib.optional (!useSharedHighway) ../../tools/v8_gypfiles/highway.gyp
++ lib.optional (!useSharedSimdutf) ../../tools/v8_gypfiles/simdutf.gyp
++ lib.optional (
builtins.elem "--with-perfetto" configureFlags
&& !(builtins.elem "--shared-perfetto" configureFlags)
if useSharedTemporal then
icu == null
else
!(builtins.elem "--v8-disable-temporal-support" configureFlags)
) ../../deps/crates
++ lib.optional (
builtins.elem "--with-perfetto" configureFlags && !useSharedPerfetto
) ../../deps/perfetto
++ lib.optionals (icu != null) [
../../tools/icu/icu_versions.json
@@ -111,14 +119,9 @@ stdenv.mkDerivation (finalAttrs: {
else
"${builtins.elemAt v8Version 0}.${builtins.elemAt v8Version 1}.${builtins.elemAt v8Version 2}.${builtins.elemAt v8Version 3}-${builtins.elemAt v8_embedder_string 0}";
patches = lib.optional (
# V8 accesses internal ICU headers and methods in the Temporal files.
!(builtins.isString icu) && builtins.elem "--v8-enable-temporal-support" configureFlags
) ./temporal-no-vendored-icu.patch;
# We need to patch tools/gyp/ to work from within Nix sandbox
prePatch = ''
${lib.optionalString (builtins.length finalAttrs.patches == 0) "patches=()"}
${lib.optionalString (builtins.length (finalAttrs.patches or [ ]) == 0) "patches=()"}
for patch in ${lib.concatStringsSep " " patches}; do
filtered=$(mktemp)
filterdiff -p1 -i 'tools/gyp/pylib/*' "$patch" > "$filtered"