From fc029181df676f97b9e329639760f87722cbcece Mon Sep 17 00:00:00 2001 From: Cong Zhang <13283869+congzhangzh@users.noreply.github.com> Date: Mon, 25 Mar 2024 23:40:09 +0800 Subject: [PATCH] doc: add mold to speeding up section MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/52179 Reviewed-By: Vinícius Lourenço Claro Cardoso Reviewed-By: Yagiz Nizipli --- BUILDING.md | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/BUILDING.md b/BUILDING.md index 53f636a4cf641e..a4e910aba39cca 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -531,23 +531,30 @@ make test-only #### Speeding up frequent rebuilds when developing -If you plan to frequently rebuild Node.js, especially if using several branches, -installing `ccache` can help to greatly reduce build times. Set up with: +Tips: The `ccache` utility is widely used and should generally work fine. +If you encounter any difficulties, consider disabling `mold` as a +troubleshooting step. + +If you plan to frequently rebuild Node.js, especially if using several +branches, installing `ccache` and `mold` can help to greatly reduce build +times. Set up with: On GNU/Linux: ```bash -sudo apt install ccache # for Debian/Ubuntu, included in most Linux distros -export CC="ccache gcc" # add to your .profile -export CXX="ccache g++" # add to your .profile +sudo apt install ccache mold # for Debian/Ubuntu, included in most Linux distros +export CC="ccache gcc" # add to your .profile +export CXX="ccache g++" # add to your .profile +export LDFLAGS="-fuse-ld=mold" # add to your .profile ``` On macOS: ```bash -brew install ccache # see https://brew.sh -export CC="ccache cc" # add to ~/.zshrc or other shell config file -export CXX="ccache c++" # add to ~/.zshrc or other shell config file +brew install ccache mold # see https://brew.sh +export CC="ccache cc" # add to ~/.zshrc or other shell config file +export CXX="ccache c++" # add to ~/.zshrc or other shell config file +export LDFLAGS="-fuse-ld=mold" # add to ~/.zshrc or other shell config file ``` This will allow for near-instantaneous rebuilds when switching branches back @@ -565,6 +572,11 @@ the specified directory. The JS debugger of Visual Studio Code supports this configuration since the November 2020 version and allows for setting breakpoints. +Refs: + +1. +2. + #### Troubleshooting Unix and macOS builds Stale builds can sometimes result in `file not found` errors while building.