With the following build script on Big Sur + homebrew, I get horribly long compile times when using make bootstrap
as opposed to simply make
on gccemacs.
I've read the Makefile in the src directory - the explanation for bootstrap is pretty stoic.
# make bootstrap
# Removes all the compiled files to force a new bootstrap from a
# clean slate, and then build in the normal way.
However, I see some articles on the interwebs (by people much more skilled than myself) that use make bootstrap
in their Emacs builds.
Are there any gains (error-checking, performance, ???) by make-ing Emacs with make bootstrap
(as opposed to just make
)? Curious if I'm missing any 'features' by omitting bootstrap from my build script.
export CC=/usr/bin/clang
# exporting CXX (NOT CC) to gcc-10 results in huge compile performance gains.
export CXX=/usr/local/bin/gcc-10
# set LDFLAGS and CFLAGS to include the libraries and headers for libgccjit
LIBGCCJIT_DIR=$(brew --prefix libgccjit)
export CFLAGS="-I$LIBGCCJIT_DIR/include"
export LDFLAGS="-L$LIBGCCJIT_DIR/lib/gcc/10"
./configure --with-nativecomp --with-xwidgets
# 20FEB21 - gccemacs - Fast bootstrap is now active by default https://akrl.sdf.org/gccemacs.html
# NATIVE_FULL_AOT=1 should be used instead of NATIVE_FAST_BOOT=1
# not passing bindir to make results in dlopen failures
make -j16 NATIVE_FULL_AOT=1 bindir=/Users/bobrien/src/gnu-emacs/28/gccemacs/nextstep/Emacs.app/Contents/MacOS
make -j16 install
These are the substantially different build times of make bootstrap
versus make
# ./build.sh 28625.69s user 592.94s system 1157% cpu 42:03.62 total (with make bootstrap)
# ./build.sh 99.15s user 58.67s system 146% cpu 1:47.39 total (with 'just' make)