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
# ./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)