Arm64 Linux でのコンパイル
x86 でも Apple Silicon Mac でもないマシンで V8 の チェックアウト と ビルド に関する手順を実行した場合、ビルドシステムがネイティブ バイナリをダウンロードして実行できないため、問題が発生した可能性があります。ただし、Arm64 Linux マシンを使用して V8 で作業することは 公式にはサポートされていませんが、それらの障害を克服するのは非常に簡単です。
vpython
のバイパス #
fetch v8
、gclient sync
、およびその他の depot_tools
コマンドは、「vpython」と呼ばれる Python のラッパーを使用します。それに関するエラーが表示された場合、次の変数を定義して代わりにシステムの Python インストールを使用できます。
export VPYTHON_BYPASS="manually managed python not supported by chrome operations"
互換性のある ninja
バイナリ #
最初に、depot_tools
にあるバイナリではなく、ninja
にネイティブ バイナリを使用するようにする必要があります。これを行う簡単な方法は、depot_tools
のインストール時に次のとおりに PATH を調整することです。
export PATH=$PATH:/path/to/depot_tools
このように、お使いのシステムの ninja
インストールを使用できますが、利用できない可能性があります。利用できない場合は、ソースからビルドできます。
clang のコンパイル #
既定では、V8 はお使いのマシンで実行されない独自にビルドされた clang を使用します。GN 引数を調整して システムの clang または GCC を使用 することもできますが、最もサポートされているバージョンであるアップストリームと同じ clang を使用することをお勧めします。
V8 チェックアウトから直接、ローカルでビルドできます。
./tools/clang/scripts/build.py --without-android --without-fuchsia \
--host-cc=gcc --host-cxx=g++ \
--gcc-toolchain=/usr \
--use-system-cmake --disable-asserts
GN 引数のマニュアルでの設定 #
便利なスクリプトは既定では機能しない場合があります。代わりに、マニュアルのワークフローに従って、GN 引数を手動で設定する必要があります。次の引数を使用して、通常の「release」、「optdebug」、「debug」構成を取得できます。
リリース
is_debug=false
optdebug
is_debug=true
v8_enable_backtrace=true
v8_enable_slow_dchecks=true
debug
is_debug=true
v8_enable_backtrace=true
v8_enable_slow_dchecks=true
v8_optimized_debug=false
システムの clang または GCC の使用 #
GCC でのビルドは、clang を使用したコンパイルを無効にするだけです。
is_clang=false
既定では、V8 は GCC の新しいバージョンが必要な lld
を使用してリンクします。use_lld=false
を使用して gold リンクに切り替え、さらに use_gold=false
を使用して ld
を使用できます。
システムにインストールされている clang(/usr
など)を使用する場合、次の引数を使用できます。
clang_base_path="/usr"
clang_use_chrome_plugins=false
ただし、システムの clang バージョンは適切にサポートされていない可能性があるため、不明なコンパイラ フラグなどの警告に対処する必要があります。この場合は、次の方法で警告をエラーとして処理しないようにします。
treat_warnings_as_errors=false