Skip to content

build: Use docker volumes instead of bind-mounts to speed up kernel build on macOS - #106

Merged
robin-reckmann merged 6 commits into
masterfrom
fast-macos-build
Apr 13, 2026
Merged

robin-reckmann merged 6 commits into
masterfrom
fast-macos-build

Conversation

@robin-reckmann

@robin-reckmann robin-reckmann commented Apr 5, 2026

Copy link
Copy Markdown
Collaborator

Docker bind mounts are really slow on macOS. So creating a docker volumes of the kernel and ccache and building on there speeds up the overall build a lot.

volume bind-mount improvement
build from scratch 16min 0sec 18min 14sec 1.13x
re-build after removing out/ 0min 42sec 2min 6sec 3x
re-build without changes 0min 32sec 2min 6sec 3.9x

@github-actions

github-actions Bot commented Apr 5, 2026

Copy link
Copy Markdown

vamOS System Profile

Changes vs master

Metric Change
Used space 3486.4MB → 3486.8MB (+.4MB)
Sparse image 3440.9MB → 3440.4MB (-.4MB)
Package count 524 → 524

Added packages: alacritty-terminfo-0.17.0_1, dhcpcd-10.3.1_1, htop-3.5.0_1, libjpeg-turbo-3.1.4.1_1, libnfsidmap-2.9.1_1, libpng-1.6.57_1, libpng-devel-1.6.57_1, libsodium-1.0.22_1, libsodium-devel-1.0.22_1, logrotate-3.22.0_2, nfs-utils-2.9.1_1, openssh-10.3p1_1, python3-3.14.4_1, stress-ng-0.21.00_1, wayland-1.25.0_1, wayland-devel-1.25.0_1, wayland-protocols-1.48_1

Removed packages: alacritty-terminfo-0.16.1_1, dhcpcd-10.3.0_1, htop-3.4.1_1, libjpeg-turbo-3.1.1_1, libnfsidmap-2.8.7_1, libpng-1.6.56_1, libpng-devel-1.6.56_1, libsodium-1.0.21_1, libsodium-devel-1.0.21_1, logrotate-3.22.0_1, nfs-utils-2.8.7_1, openssh-10.2p1_1, python3-3.14.3_1, stress-ng-0.20.01_1, wayland-1.24.0_1, wayland-devel-1.24.0_1, wayland-protocols-1.47_1

Directory size changes (>1MB)
Directory Change

Metric Value
Used space 3486.8MB / 5959.5MB
Files 56353
Directories 4763
Symlinks 3602
Packages 524

Top 10 Directories

Directory Size

Category Breakdown

Category Size %
xbps packages 2490.2MB 71.4%
Python venv 655.3MB 18.7%
Firmware 11.5MB .3%
Other 329.6MB 9.4%

Top 10 Packages by Size

Package Size
mit-krb5-libs-1.21.3_1 270.4MB
gawk-5.3.2_1 210.3MB
llvm-21_3 148.6MB
libldns-1.9.0_1 124.3MB
pd-mapper-1.0_1 73.9MB
libclang21-21.1.7_1 70.2MB
glib-2.88.0_1 67.4MB
gcc-14.2.1+20250405_4 65.4MB
libcap-progs-2.77_1 56MB
cmake-4.2.2_1 53.2MB

Top 30 Files by Size

File Size
/usr/lib/llvm/21/lib/libLLVM.so.21.1 124.3MB
/usr/lib/llvm/21/lib/libMLIR.so.21.1 89.7MB
/usr/lib/llvm/21/bin/mlir-transform-opt 82.9MB
/usr/lib/llvm/21/lib/libclang-cpp.so.21.1 56MB
/usr/lib/llvm/21/bin/mlir-translate 53.2MB
/usr/lib/llvm/21/bin/llvm-exegesis 52MB
/usr/lib/llvm/21/bin/llvm-bolt-binary-analysis 50.6MB
/usr/local/venv/lib/python3.12/site-packages/ffmpeg/install/lib/libavcodec.a 50.5MB
/usr/bin/uv 49.1MB
/usr/lib/gcc/aarch64-linux-gnu/14.2/gnat1 40.1MB
/usr/bin/gdb 38.1MB
/usr/lib/gcc/aarch64-linux-gnu/14.2/cc1plus 37.3MB
/usr/lib/libgallium-25.3.3.so 35.4MB
/usr/lib/libllvm-qcom.so 35.2MB
/usr/lib/gcc/aarch64-linux-gnu/14.2/cc1 35.2MB
/usr/lib/gcc/aarch64-linux-gnu/14.2/lto1 33.9MB
/usr/bin/lto-dump 33.9MB
/usr/lib/libRusticlOpenCL.so.1.0.0 32.5MB
/usr/local/venv/bin/ruff 31.8MB
/usr/share/icu/78.2/icudt78l.dat 31.5MB
/usr/lib/llvm/21/lib/libclang.so.21.1.7 30.2MB
/usr/lib/llvm/21/bin/c-index-test 28.6MB
/usr/local/venv/lib/python3.12/site-packages/gcc_arm_none_eabi/toolchain/libexec/gcc/arm-none-eabi/13.2.1/cc1 28.2MB
/usr/lib/libz3.so 27.9MB
/usr/bin/run 26.6MB
/usr/local/venv/lib/python3.12/site-packages/numpy.libs/libscipy_openblas64_-71e1b124.so 23.6MB
/usr/comma/updater 23.5MB
/usr/comma/setup 23.5MB
/usr/comma/reset 23.5MB
/usr/local/uv/python/cpython-3.12.13-linux-aarch64-gnu/bin/python3.12 22.1MB

@robin-reckmann
robin-reckmann marked this pull request as draft April 5, 2026 12:27
@robin-reckmann
robin-reckmann marked this pull request as ready for review April 5, 2026 13:51
@robin-reckmann
robin-reckmann merged commit 1a71f48 into master Apr 13, 2026
4 checks passed
@robin-reckmann
robin-reckmann deleted the fast-macos-build branch April 13, 2026 22:28
andiradulescu pushed a commit that referenced this pull request Jul 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants