mirror of
https://github.com/nodejs/node.git
synced 2026-10-28 10:15:07 +08:00
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:
5 files changed
+23
-74
No files matched your search
@@ -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 }}
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
withSQLite ? true,
|
||||
withFFI ? true,
|
||||
withSSL ? true,
|
||||
withTemporal ? false,
|
||||
withTemporal ? true,
|
||||
withPerfetto ? false,
|
||||
sharedLibDeps ? (
|
||||
import ./tools/nix/sharedLibDeps.nix {
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
withSSL ? true,
|
||||
withFFI ? true,
|
||||
withPerfetto ? false,
|
||||
withTemporal ? false,
|
||||
withTemporal ? true,
|
||||
}:
|
||||
{
|
||||
inherit (pkgs)
|
||||
|
||||
@@ -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
@@ -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"
|
||||
|
||||
Reference in new issue
Block a user