2

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)

o__b
  • 23
  • 4
  • Once upon a time I had built Emacs-24.x on OS X Lion from scratch without using any package manager like the `homebrew` and the *bootstrap* option. Moreover it had both OS X look and feel (AFAICR it was thanks to the `--with-ns` option) and the `SSL` support (building Emacs with the SSL option sometimes gives trouble because of the `GNUTLS` thing) So, the best that I can say is ditching this unknown `bootstrap` option and not rely too much on `homebrew` – Terry Feb 22 '21 at 13:41

0 Answers0