electron/patches/v8/cherry-pick-5e227bebf193.patch

73 lines
2.6 KiB
Diff
Raw Normal View History

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Ben Noordhuis <info@bnoordhuis.nl>
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.
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 <info@bnoordhuis.nl>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
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 da4201b28307a71e988b50e26fc8854fdcc510d4..60deb07b65b5acaaa1e8762cc57730f366f483d2 100644
--- a/src/codegen/arm64/assembler-arm64-inl.h
+++ b/src/codegen/arm64/assembler-arm64-inl.h
@@ -1066,21 +1066,6 @@ const Register& Assembler::AppropriateZeroRegFor(const CPURegister& reg) const {
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 703e4bba9381c57849882e7cb2cdeb751064dd2a..dceda86275d3ef0bfc2b5bea9d8f04957b2e721c 100644
--- a/src/codegen/arm64/assembler-arm64.h
+++ b/src/codegen/arm64/assembler-arm64.h
@@ -2625,8 +2625,21 @@ class V8_EXPORT_PRIVATE Assembler : public AssemblerBase {
}
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.