V8 build error with 22.7.0
オープン
まだ誰も着手していません。
build
confirmed-bug
v8 engine
- 主要言語
- JavaScript
- スター
- 122k
- フォーク
- 37.3k
- 平均マージ
- 4日 2時間
- マージ済み PR(30日)
- 283
説明
Like https://github.com/nodejs/node/issues/53633 which was for gcc 12 and fixed in commit f4a7ac5e1842c0f4629a0bebfda38f2502a2ee41 but with clang 15.0.7 on x86_64 linux I get the exact same build error:
../deps/v8/src/base/small-vector.h:25:3: error: static assertion failed due to requirement '::v8::base::is_trivially_copyable<std::pair<const v8::internal::com
piler::turboshaft::PhiOp *, const v8::internal::compiler::turboshaft::OpIndex>>::value': T should be trivially copyable
ASSERT_TRIVIALLY_COPYABLE(T);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../deps/v8/src/base/macros.h:211:3: note: expanded from macro 'ASSERT_TRIVIALLY_COPYABLE'
static_assert(::v8::base::is_trivially_copyable<T>::value, \
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../deps/v8/src/compiler/turboshaft/loop-unrolling-reducer.h:431:65: note: in instantiation of template class 'v8::base::SmallVector<std::pair<const v8::interna
l::compiler::turboshaft::PhiOp *, const v8::internal::compiler::turboshaft::OpIndex>, 16>' requested here
base::SmallVector<std::pair<const PhiOp*, const OpIndex>, 16> phis;
Maybe just remove that ASSERT_TRIVIALLY_COPYABLE? Upstream already tests for correctness and to us it's just a recurring source of build breakage.
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
まず、deps/v8/src/base/small-vector.h と deps/v8/src/compiler/turboshaft/loop-unrolling-reducer.h の失敗を、関連する issue 53633 および commit f4a7ac5e1842c0f4629a0bebfda38f2502a2ee41 と比較します。deps/v8/src/base/macros.h の assertion を確認し、clang 15.0.7 x86_64 Linux build を再現します。正しさのチェックを弱めることなく build が成功すれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- cpp, linux
- 領域
- build-system, compilers, operating-systems
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 35/100