From 3d37d52937180d329722c552a89c03b13b2bea74 Mon Sep 17 00:00:00 2001 From: Keeley Hammond Date: Fri, 15 Jul 2022 09:37:08 -0700 Subject: [PATCH 1/2] chore: cherry-pick 5e227bebf193 from v8 --- patches/v8/.patches | 1 + patches/v8/cherry-pick-5e227bebf193.patch | 73 +++++++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 patches/v8/cherry-pick-5e227bebf193.patch diff --git a/patches/v8/.patches b/patches/v8/.patches index 0e16c5eabc6fe..ea88a8670a84c 100644 --- a/patches/v8/.patches +++ b/patches/v8/.patches @@ -10,3 +10,4 @@ revert_fix_cppgc_removed_deleted_cstors_in_cppheapcreateparams.patch revert_runtime_dhceck_terminating_exception_in_microtasks.patch chore_disable_is_execution_terminating_dcheck.patch build_remove_legacy_oom_error_callback.patch +cherry-pick-5e227bebf193.patch diff --git a/patches/v8/cherry-pick-5e227bebf193.patch b/patches/v8/cherry-pick-5e227bebf193.patch new file mode 100644 index 0000000000000..c428172aab400 --- /dev/null +++ b/patches/v8/cherry-pick-5e227bebf193.patch @@ -0,0 +1,73 @@ +From 5e227bebf19358bcb08bdef6c42de8b937aac19c Mon Sep 17 00:00:00 2001 +From: Ben Noordhuis +Date: Sat, 09 Jul 2022 14:05:56 +0200 +Subject: [PATCH] [arm64] Fix undefined symbol linker error + +Assembler::CheckBuffer() was defined inline in a header file but without +inline linkage, causing an undefined symbol link error on arm64 macOS. + +Fixes: https://github.com/nodejs/node-v8/issues/233 +Bug: v8:13055 +Change-Id: Ifb638705e95de72b2e8d472e7092e88d77cf8ba8 +Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3749583 +Auto-Submit: Ben Noordhuis +Reviewed-by: Leszek Swirski +Reviewed-by: Jakob Kummerow +Commit-Queue: Leszek Swirski +Cr-Commit-Position: refs/heads/main@{#81749} +--- + +diff --git a/src/codegen/arm64/assembler-arm64-inl.h b/src/codegen/arm64/assembler-arm64-inl.h +index da4201b..60deb07 100644 +--- a/src/codegen/arm64/assembler-arm64-inl.h ++++ b/src/codegen/arm64/assembler-arm64-inl.h +@@ -1066,21 +1066,6 @@ + return reg.Is64Bits() ? xzr : wzr; + } + +-inline void Assembler::CheckBufferSpace() { +- DCHECK_LT(pc_, buffer_start_ + buffer_->size()); +- if (V8_UNLIKELY(buffer_space() < kGap)) { +- GrowBuffer(); +- } +-} +- +-V8_INLINE void Assembler::CheckBuffer() { +- CheckBufferSpace(); +- if (pc_offset() >= next_veneer_pool_check_) { +- CheckVeneerPool(false, true); +- } +- constpool_.MaybeCheck(); +-} +- + EnsureSpace::EnsureSpace(Assembler* assembler) : block_pools_scope_(assembler) { + assembler->CheckBufferSpace(); + } +diff --git a/src/codegen/arm64/assembler-arm64.h b/src/codegen/arm64/assembler-arm64.h +index 51f6fa7..e3d8eb2 100644 +--- a/src/codegen/arm64/assembler-arm64.h ++++ b/src/codegen/arm64/assembler-arm64.h +@@ -2637,8 +2637,21 @@ + } + + void GrowBuffer(); +- V8_INLINE void CheckBufferSpace(); +- void CheckBuffer(); ++ ++ void CheckBufferSpace() { ++ DCHECK_LT(pc_, buffer_start_ + buffer_->size()); ++ if (V8_UNLIKELY(buffer_space() < kGap)) { ++ GrowBuffer(); ++ } ++ } ++ ++ void CheckBuffer() { ++ CheckBufferSpace(); ++ if (pc_offset() >= next_veneer_pool_check_) { ++ CheckVeneerPool(false, true); ++ } ++ constpool_.MaybeCheck(); ++ } + + // Emission of the veneer pools may be blocked in some code sequences. + int veneer_pool_blocked_nesting_; // Block emission if this is not zero. From 7594695ac47252a1968e3ea039688852510b7a4a Mon Sep 17 00:00:00 2001 From: PatchUp <73610968+patchup[bot]@users.noreply.github.com> Date: Fri, 15 Jul 2022 16:49:36 +0000 Subject: [PATCH 2/2] chore: update patches --- patches/v8/cherry-pick-5e227bebf193.patch | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/patches/v8/cherry-pick-5e227bebf193.patch b/patches/v8/cherry-pick-5e227bebf193.patch index c428172aab400..31e47fac5dcf5 100644 --- a/patches/v8/cherry-pick-5e227bebf193.patch +++ b/patches/v8/cherry-pick-5e227bebf193.patch @@ -1,7 +1,7 @@ -From 5e227bebf19358bcb08bdef6c42de8b937aac19c Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ben Noordhuis -Date: Sat, 09 Jul 2022 14:05:56 +0200 -Subject: [PATCH] [arm64] Fix undefined symbol linker error +Date: Sat, 9 Jul 2022 14:05:56 +0200 +Subject: Fix undefined symbol linker error Assembler::CheckBuffer() was defined inline in a header file but without inline linkage, causing an undefined symbol link error on arm64 macOS. @@ -15,13 +15,12 @@ Reviewed-by: Leszek Swirski Reviewed-by: Jakob Kummerow Commit-Queue: Leszek Swirski Cr-Commit-Position: refs/heads/main@{#81749} ---- diff --git a/src/codegen/arm64/assembler-arm64-inl.h b/src/codegen/arm64/assembler-arm64-inl.h -index da4201b..60deb07 100644 +index da4201b28307a71e988b50e26fc8854fdcc510d4..60deb07b65b5acaaa1e8762cc57730f366f483d2 100644 --- a/src/codegen/arm64/assembler-arm64-inl.h +++ b/src/codegen/arm64/assembler-arm64-inl.h -@@ -1066,21 +1066,6 @@ +@@ -1066,21 +1066,6 @@ const Register& Assembler::AppropriateZeroRegFor(const CPURegister& reg) const { return reg.Is64Bits() ? xzr : wzr; } @@ -44,10 +43,10 @@ index da4201b..60deb07 100644 assembler->CheckBufferSpace(); } diff --git a/src/codegen/arm64/assembler-arm64.h b/src/codegen/arm64/assembler-arm64.h -index 51f6fa7..e3d8eb2 100644 +index 703e4bba9381c57849882e7cb2cdeb751064dd2a..dceda86275d3ef0bfc2b5bea9d8f04957b2e721c 100644 --- a/src/codegen/arm64/assembler-arm64.h +++ b/src/codegen/arm64/assembler-arm64.h -@@ -2637,8 +2637,21 @@ +@@ -2625,8 +2625,21 @@ class V8_EXPORT_PRIVATE Assembler : public AssemblerBase { } void GrowBuffer();