73 lines
2.6 KiB
Diff
73 lines
2.6 KiB
Diff
|
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.
|