Skip to content

Commit

Permalink
doc: add mold to speeding up section
Browse files Browse the repository at this point in the history
PR-URL: nodejs#52179
Reviewed-By: Vinícius Lourenço Claro Cardoso <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
  • Loading branch information
congzhangzh authored and anonrig committed Mar 25, 2024
1 parent 20e1a28 commit f123196
Showing 1 changed file with 20 additions and 8 deletions.
28 changes: 20 additions & 8 deletions BUILDING.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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. <https://ccache.dev/performance.html>
2. <https://github.com/rui314/mold>

#### Troubleshooting Unix and macOS builds

Stale builds can sometimes result in `file not found` errors while building.
Expand Down

0 comments on commit f123196

Please sign in to comment.