Subject: 25.0: Build fails | Compiler-macro error for cl-typep: (void-function cl--compiler-macro-typep)

From: Kaushal Modi <[email-masked]>
Date: Mon, 14 Sep 2015 15:23:26 +0000

My emacs build from master branch fails with these errors:

I have updated to the latest commit as of now (
http://git.savannah.gnu.org/cgit/emacs.git/commit/?id=560022a5b670422c133381824a8b79dca72402a5
 )

I do use make bookstrap to ensure a clean install.

Loading /home/kmodi/downloads/git/emacs/lisp/emacs-lisp/cl-preloaded.el
(source)...
Warning: Eager macro-expansion skipped due to cycle:
  … => (load "cl-macs.el") => (macroexpand-all (define-inline cl-typep …))
=> (load "cl-macs.el")
macroexp--expand-all: (void-function define-inline)
Compiler-macro error for cl-typep: (void-function cl--compiler-macro-typep)
macroexp--expand-all: (void-function define-inline)
Compiler-macro error for cl-typep: (void-function cl--compiler-macro-typep)
macroexp--expand-all: (void-function define-inline)
Compiler-macro error for cl-typep: (void-function cl--compiler-macro-typep)
macroexp--expand-all: (void-function define-inline)
Compiler-macro error for cl-typep: (void-function cl--compiler-macro-typep)
macroexp--expand-all: (void-function define-inline)
Compiler-macro error for cl-typep: (void-function cl--compiler-macro-typep)
macroexp--expand-all: (void-function define-inline)
Compiler-macro error for cl-typep: (void-function cl--compiler-macro-typep)
macroexp--expand-all: (void-function define-inline)
Compiler-macro error for cl-typep: (void-function cl--compiler-macro-typep)
macroexp--expand-all: (void-function define-inline)
Compiler-macro error for cl-typep: (void-function cl--compiler-macro-typep)
macroexp--expand-all: (void-function define-inline)
Compiler-macro error for cl-typep: (void-function cl--compiler-macro-typep)
Eager macro-expansion failure: (void-function define-inline)
Warning: Eager macro-expansion skipped due to cycle:
  … => (load "cl-macs.el") => (macroexpand-all (define-inline cl-typep …))
=> (load "cl-macs.el")
macroexp--expand-all: (void-function define-inline)
Compiler-macro error for cl-typep: (void-function cl--compiler-macro-typep)
macroexp--expand-all: (void-function define-inline)
Compiler-macro error for cl-typep: (void-function cl--compiler-macro-typep)
macroexp--expand-all: (void-function define-inline)
Compiler-macro error for cl-typep: (void-function cl--compiler-macro-typep)
macroexp--expand-all: (void-function define-inline)
Compiler-macro error for cl-typep: (void-function cl--compiler-macro-typep)
macroexp--expand-all: (void-function define-inline)
Compiler-macro error for cl-typep: (void-function cl--compiler-macro-typep)
macroexp--expand-all: (void-function define-inline)
Compiler-macro error for cl-typep: (void-function cl--compiler-macro-typep)
macroexp--expand-all: (void-function define-inline)
Compiler-macro error for cl-typep: (void-function cl--compiler-macro-typep)
macroexp--expand-all: (void-function define-inline)
Compiler-macro error for cl-typep: (void-function cl--compiler-macro-typep)
macroexp--expand-all: (void-function define-inline)
Compiler-macro error for cl-typep: (void-function cl--compiler-macro-typep)

------------------------------------------------------

My emacs build script which I execute using "source mybuild.csh
origin/master":

#!/bin/tcsh -f
# Time-stamp: <2015-09-11 10:56:05 kmodi>

# Usage: source mybuild.csh <VERSION or BRANCH>
# Example: source mybuild.csh emacs-24
#          source mybuild.csh master

# For RHEL 6, do "setenv MY_OSREV 6"
# "${HOME}/usr_local/${MY_OSREV}" is the directory that I use as
# --prefix for building libraries locally when the default library
# does not exist or is older than the requirements.

# I already have the env vars PATH, LD_LIBRARY_PATH, PKG_CONFIG_PATH
# and INCLUDE_PATH to include the respective directories in
# ${HOME}/usr_local/${MY_OSREV}.

# Ensure that PKG_CONFIG_PATH has /usr/share/pkgconfig for xproto.pc
# and related files. This is necessary for XFT and related X11
# features.. otherwise the fonts will look horrible.

set emacs_gdb_build = 0

git checkout master
git fetch --all
git reset --hard $argv[1]

# If $argv[1] is master, basename $argv[1] -> master
# If $argv[1] is origin/emacs-24.5, basename $argv[1] -> emacs-24.5
if ( ${emacs_gdb_build} ) then
    setenv MY_EMACS_INSTALL_DIR
"${HOME}/usr_local/apps/${MY_OSREV}/emacs/`basename $argv[1]`_debug"
else
    setenv MY_EMACS_INSTALL_DIR
"${HOME}/usr_local/apps/${MY_OSREV}/emacs/`basename $argv[1]`"
endif
# setenv MY_EMACS_INSTALL_DIR
"${HOME}/usr_local/apps/${MY_OSREV}/emacs/test"
mkdir -p ${MY_EMACS_INSTALL_DIR}

# Basic configure command
setenv MY_EMACS_CONFIGURE "./configure --prefix=${MY_EMACS_INSTALL_DIR}"

# Initialize the configure flag vairables
set emacs_configure_CFLAGS   = ''
set emacs_configure_CXXFLAGS = ''
set emacs_configure_CPPFLAGS = ''
set emacs_configure_LDFLAGS  = ''

set emacs_configure_CPPFLAGS = 'CPPFLAGS="'"-fgnu89-inline
-I${HOME}/usr_local/${MY_OSREV}/include -I/usr/include/freetype2
-I/usr/include"
# -L${HOME}/usr_local/${MY_OSREV}/lib required for libgpm (GPM feature)
# -L${HOME}/usr_local/${MY_OSREV}/lib64 required for libgif (GIF feature)
set emacs_configure_LDFLAGS  =
'LDFLAGS="'"-L${HOME}/usr_local/${MY_OSREV}/lib
-L${HOME}/usr_local/${MY_OSREV}/lib64"

# For Debug
if ( ${emacs_gdb_build} ) then
    set emacs_configure_CFLAGS   = 'CFLAGS="'"-ggdb3 -O0"
    set emacs_configure_CXXFLAGS = 'CXXFLAGS="'"-ggdb3 -O0"
    set emacs_configure_LDFLAGS  = "${emacs_configure_LDFLAGS} -ggdb3"
endif

# Close the double quotes
if ( ! ( "${emacs_configure_CFLAGS}" == "" ) ) then
    set emacs_configure_CFLAGS = "${emacs_configure_CFLAGS}"'"'
endif
if ( ! ( "${emacs_configure_CXXFLAGS}" == "" ) ) then
    set emacs_configure_CXXFLAGS = "${emacs_configure_CXXFLAGS}"'"'
endif
if ( ! ( "${emacs_configure_CPPFLAGS}" == "" ) ) then
    set emacs_configure_CPPFLAGS = "${emacs_configure_CPPFLAGS}"'"'
endif
if ( ! ( "${emacs_configure_LDFLAGS}" == "" ) ) then
    set emacs_configure_LDFLAGS = "${emacs_configure_LDFLAGS}"'"'
endif

setenv MY_EMACS_CONFIGURE "${MY_EMACS_CONFIGURE}
${emacs_configure_CPPFLAGS} ${emacs_configure_CFLAGS}
${emacs_configure_CXXFLAGS} ${emacs_configure_LDFLAGS}"

echo ""
echo "  MY_EMACS_CONFIGURE = ${MY_EMACS_CONFIGURE}"
echo ""
echo "Waiting for 5 seconds .. Press Ctrl+C to cancel this installation."
sleep 5

\rm -f configure Makefile
make clean

if ( ! -e src/epaths.in.bkp ) then
    \cp src/epaths.in src/epaths.in.bkp
endif
\cp -f src/epaths.in.bkp src/epaths.in
sed -i 's|/usr/local|${MY_EMACS_INSTALL_DIR}|g' src/epaths.in

if ( ! -e GNUmakefile.bkp ) then
    \cp GNUmakefile GNUmakefile.bkp
endif
\cp -f GNUmakefile.bkp GNUmakefile
sed -i 's|./configure|${MY_EMACS_CONFIGURE}|g' GNUmakefile

# Do NOT call autoreconf. "make bookstrap" below will call autoreconf with
# proper arguments.
# The `make bootstrap' step is required for a clean fresh install
if ( -f Makefile ) then
    make bootstrap
endif
make install

# I use the Exuberant ctags (now Universal ctags build from its github
# repo). So rename the binary and man of "ctags" that ship with emacs so
# that I do not end up using the incorrect ctags.
if ( -e ${MY_EMACS_INSTALL_DIR}/bin/ctags ) then
    \mv ${MY_EMACS_INSTALL_DIR}/bin/ctags
${MY_EMACS_INSTALL_DIR}/bin/ctags_emacs
endif
if ( -e ${MY_EMACS_INSTALL_DIR}/share/man/man1/ctags.1.gz ) then
    \mv ${MY_EMACS_INSTALL_DIR}/share/man/man1/ctags.1.gz
${MY_EMACS_INSTALL_DIR}/share/man/man1/ctags_emacs.1.gz
endif

# unset all internal variables
unset {emacs_configure_CFLAGS}
unset {emacs_configure_CPPFLAGS}
unset {emacs_configure_CXXFLAGS}
unset {emacs_configure_LDFLAGS}