From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ben Noordhuis 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 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 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.