Skip to content

chore: bump V8 to 15.0.206 - #13

Merged
kassane merged 2 commits into
mainfrom
auto-bump/v15.0.206
May 25, 2026
Merged

chore: bump V8 to 15.0.206#13
kassane merged 2 commits into
mainfrom
auto-bump/v15.0.206

Conversation

@kassane

@kassane kassane commented May 25, 2026

Copy link
Copy Markdown
Owner

No description provided.

@github-actions

Copy link
Copy Markdown

linux-arm64 (pointer-compression) failed — run

Last 80 lines of build log
FAILED: obj/third_party/partition_alloc/src/partition_alloc/allocator_shim/allocator_shim_default_dispatch_to_partition_alloc.o 
ccache aarch64-linux-gnu-g++ -MD -MF obj/third_party/partition_alloc/src/partition_alloc/allocator_shim/allocator_shim_default_dispatch_to_partition_alloc.o.d -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D__ARM_NEON__=1 -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_NONE -D_GLIBCXX_ASSERTIONS=1 -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_OZONE=1 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DIS_ALLOCATOR_SHIM_IMPL -I../.. -Igen -I../../third_party/partition_alloc/src -Igen/third_party/partition_alloc/src -Wall -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -Wno-comments -Wno-packed-not-aligned -Wno-missing-field-initializers -Wno-unused-parameter -Wno-psabi -fno-strict-overflow -fno-ident -fno-math-errno -fno-strict-aliasing -fstack-protector -funwind-tables -fPIC -pipe -pthread -mbranch-protection=standard -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -fno-omit-frame-pointer -g0 -fvisibility=hidden -O3 -fdata-sections -ffunction-sections -Wno-narrowing -Wno-class-memaccess -Wno-invalid-offsetof -std=gnu++20 -fno-exceptions -fno-rtti -fvisibility-inlines-hidden  -c ../../third_party/partition_alloc/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.cc -o obj/third_party/partition_alloc/src/partition_alloc/allocator_shim/allocator_shim_default_dispatch_to_partition_alloc.o
In file included from ../../third_party/partition_alloc/src/partition_alloc/partition_alloc.h:8,
                 from ../../third_party/partition_alloc/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.h:11,
                 from ../../third_party/partition_alloc/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.cc:5:
../../third_party/partition_alloc/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.cc: In static member function ‘static void* allocator_shim::internal::PartitionAllocFunctionsInternal<base_alloc_flags, base_free_flags>::AlignedRealloc(void*, size_t, size_t, allocator_shim::AllocToken, void*)’:
../../third_party/partition_alloc/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.cc:342:20: error: there are no arguments to ‘memcpy’ that depend on a template parameter, so a declaration of ‘memcpy’ must be available [-fpermissive]
  342 |     PA_UNSAFE_TODO(memcpy(new_ptr, address, copy_size));
      |                    ^~~~~~
../../third_party/partition_alloc/src/partition_alloc/partition_alloc_base/compiler_specific.h:525:32: note: in definition of macro ‘PA_UNSAFE_BUFFERS’
  525 | #define PA_UNSAFE_BUFFERS(...) __VA_ARGS__
      |                                ^~~~~~~~~~~
../../third_party/partition_alloc/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.cc:342:5: note: in expansion of macro ‘PA_UNSAFE_TODO’
  342 |     PA_UNSAFE_TODO(memcpy(new_ptr, address, copy_size));
      |     ^~~~~~~~~~~~~~
../../third_party/partition_alloc/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.cc:342:20: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
  342 |     PA_UNSAFE_TODO(memcpy(new_ptr, address, copy_size));
      |                    ^~~~~~
../../third_party/partition_alloc/src/partition_alloc/partition_alloc_base/compiler_specific.h:525:32: note: in definition of macro ‘PA_UNSAFE_BUFFERS’
  525 | #define PA_UNSAFE_BUFFERS(...) __VA_ARGS__
      |                                ^~~~~~~~~~~
../../third_party/partition_alloc/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.cc:342:5: note: in expansion of macro ‘PA_UNSAFE_TODO’
  342 |     PA_UNSAFE_TODO(memcpy(new_ptr, address, copy_size));
      |     ^~~~~~~~~~~~~~
../../third_party/partition_alloc/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.cc: In static member function ‘static void* allocator_shim::internal::PartitionAllocFunctionsInternal<base_alloc_flags, base_free_flags>::AlignedReallocUnchecked(void*, size_t, size_t, allocator_shim::AllocToken, void*)’:
../../third_party/partition_alloc/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.cc:380:20: error: there are no arguments to ‘memcpy’ that depend on a template parameter, so a declaration of ‘memcpy’ must be available [-fpermissive]
  380 |     PA_UNSAFE_TODO(memcpy(new_ptr, address, copy_size));
      |                    ^~~~~~
../../third_party/partition_alloc/src/partition_alloc/partition_alloc_base/compiler_specific.h:525:32: note: in definition of macro ‘PA_UNSAFE_BUFFERS’
  525 | #define PA_UNSAFE_BUFFERS(...) __VA_ARGS__
      |                                ^~~~~~~~~~~
../../third_party/partition_alloc/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.cc:380:5: note: in expansion of macro ‘PA_UNSAFE_TODO’
  380 |     PA_UNSAFE_TODO(memcpy(new_ptr, address, copy_size));
      |     ^~~~~~~~~~~~~~
../../third_party/partition_alloc/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.cc: In instantiation of ‘static void* allocator_shim::internal::PartitionAllocFunctionsInternal<base_alloc_flags, base_free_flags>::AlignedRealloc(void*, size_t, size_t, allocator_shim::AllocToken, void*) [with partition_alloc::internal::AllocFlags base_alloc_flags = partition_alloc::internal::AllocFlags::kNoHooks; partition_alloc::internal::FreeFlags base_free_flags = partition_alloc::internal::FreeFlags::kNoHooks; size_t = long unsigned int; allocator_shim::AllocToken = partition_alloc::internal::base::StrongAlias<allocator_shim::AllocTokenTag, long unsigned int>]’:
../../third_party/partition_alloc/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.cc:709:5:   required from here
  709 |     PartitionAllocFunctionsInternal<partition_alloc::AllocFlags::kNoHooks,
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  710 |                                     partition_alloc::FreeFlags::kNoHooks>;
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../third_party/partition_alloc/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.cc:342:26: error: ‘memcpy’ was not declared in this scope
  342 |     PA_UNSAFE_TODO(memcpy(new_ptr, address, copy_size));
      |                    ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../third_party/partition_alloc/src/partition_alloc/partition_alloc_base/compiler_specific.h:525:32: note: in definition of macro ‘PA_UNSAFE_BUFFERS’
  525 | #define PA_UNSAFE_BUFFERS(...) __VA_ARGS__
      |                                ^~~~~~~~~~~
../../third_party/partition_alloc/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.cc:342:5: note: in expansion of macro ‘PA_UNSAFE_TODO’
  342 |     PA_UNSAFE_TODO(memcpy(new_ptr, address, copy_size));
      |     ^~~~~~~~~~~~~~
../../third_party/partition_alloc/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.cc:36:1: note: ‘memcpy’ is defined in header ‘<cstring>’; this is probably fixable by adding ‘#include <cstring>’
   35 | #include <malloc.h>
  +++ |+#include <cstring>
   36 | #endif
../../third_party/partition_alloc/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.cc: In instantiation of ‘static void* allocator_shim::internal::PartitionAllocFunctionsInternal<base_alloc_flags, base_free_flags>::AlignedReallocUnchecked(void*, size_t, size_t, allocator_shim::AllocToken, void*) [with partition_alloc::internal::AllocFlags base_alloc_flags = partition_alloc::internal::AllocFlags::kNoHooks; partition_alloc::internal::FreeFlags base_free_flags = partition_alloc::internal::FreeFlags::kNoHooks; size_t = long unsigned int; allocator_shim::AllocToken = partition_alloc::internal::base::StrongAlias<allocator_shim::AllocTokenTag, long unsigned int>]’:
../../third_party/partition_alloc/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.cc:709:5:   required from here
  709 |     PartitionAllocFunctionsInternal<partition_alloc::AllocFlags::kNoHooks,
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  710 |                                     partition_alloc::FreeFlags::kNoHooks>;
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../third_party/partition_alloc/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.cc:380:26: error: ‘memcpy’ was not declared in this scope
  380 |     PA_UNSAFE_TODO(memcpy(new_ptr, address, copy_size));
      |                    ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../third_party/partition_alloc/src/partition_alloc/partition_alloc_base/compiler_specific.h:525:32: note: in definition of macro ‘PA_UNSAFE_BUFFERS’
  525 | #define PA_UNSAFE_BUFFERS(...) __VA_ARGS__
      |                                ^~~~~~~~~~~
../../third_party/partition_alloc/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.cc:380:5: note: in expansion of macro ‘PA_UNSAFE_TODO’
  380 |     PA_UNSAFE_TODO(memcpy(new_ptr, address, copy_size));
      |     ^~~~~~~~~~~~~~
../../third_party/partition_alloc/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.cc:380:26: note: ‘memcpy’ is defined in header ‘<cstring>’; this is probably fixable by adding ‘#include <cstring>’
  380 |     PA_UNSAFE_TODO(memcpy(new_ptr, address, copy_size));
      |                    ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../third_party/partition_alloc/src/partition_alloc/partition_alloc_base/compiler_specific.h:525:32: note: in definition of macro ‘PA_UNSAFE_BUFFERS’
  525 | #define PA_UNSAFE_BUFFERS(...) __VA_ARGS__
      |                                ^~~~~~~~~~~
../../third_party/partition_alloc/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.cc:380:5: note: in expansion of macro ‘PA_UNSAFE_TODO’
  380 |     PA_UNSAFE_TODO(memcpy(new_ptr, address, copy_size));
      |     ^~~~~~~~~~~~~~
../../third_party/partition_alloc/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.cc: In instantiation of ‘static void* allocator_shim::internal::PartitionAllocFunctionsInternal<base_alloc_flags, base_free_flags>::AlignedRealloc(void*, size_t, size_t, allocator_shim::AllocToken, void*) [with partition_alloc::internal::AllocFlags base_alloc_flags = partition_alloc::internal::AllocFlags::kNoHooks; partition_alloc::internal::FreeFlags base_free_flags = (partition_alloc::internal::FreeFlags)6; size_t = long unsigned int; allocator_shim::AllocToken = partition_alloc::internal::base::StrongAlias<allocator_shim::AllocTokenTag, long unsigned int>]’:
../../third_party/partition_alloc/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.cc:713:5:   required from here
  713 |     PartitionAllocFunctionsInternal<

…c shim

linux-arm64 (pointer-compression) on V8 15.0.206 (PR #13) failed:

  allocator_shim_default_dispatch_to_partition_alloc.cc:342: error: there
  are no arguments to 'memcpy' that depend on a template parameter, so a
  declaration of 'memcpy' must be available [-fpermissive]
    PA_UNSAFE_TODO(memcpy(new_ptr, address, copy_size));
  note: 'memcpy' is defined in header '<cstring>'; this is probably
        fixable by adding '#include <cstring>'

Run: https://github.com/kassane/libv8/actions/runs/26401418861/job/77714396376

V8 15.0.206 added AlignedRealloc / AlignedReallocUnchecked *template*
member functions to PartitionAllocFunctionsInternal that call memcpy,
but the TU never includes <cstring>. C++ two-phase name lookup requires
a non-dependent name (memcpy) to be declared at template-definition
time; gcc-14 (linux-arm64) enforces this and rejects it. clang (every
other target) resolves memcpy transitively and is laxer, so only the
gcc target trips.

Same class as Patch 6 (gcc missing-include). The include is correct and
harmless on every platform, so it's applied unconditionally — inserted
after the `#include <malloc.h>` / `#endif` block so it lands outside the
platform conditional and memcpy is declared regardless of the guard.

partition_alloc is a gclient DEP populated by `gclient sync` before
patch-v8.sh runs, so the file is present at patch time. Patch is
sentinel-gated and idempotent, and short-circuits if a future V8 ships
the include itself.

Verified the anchor + insertion against a synthetic copy of the
platform-gated malloc.h include block.
@kassane
kassane merged commit 294ee78 into main May 25, 2026
11 checks passed
@kassane
kassane deleted the auto-bump/v15.0.206 branch May 25, 2026 19:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants