Subject: Re: 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 18:35:32 +0000

This issue got resolved after I reran my build script after I ran a couple
of Cleanup make commands like "make maintainer-clean" and "make bootstrap".

I am though not sure which one worked.

Just to note, I can facing some cl- byte code issue when using the esup
package (https://github.com/jschaf/esup). It gives this error on doing M-x
esup:

Debugger entered--Lisp error: (error "Invalid byte code")
  cl--defalias(cl-values list "Return multiple values, Common Lisp
style.\nThe arguments of `cl-values' are the values\nthat the containing
function should return.\n\n(fn &rest VALUES)")
  byte-code("\300\301\302\303#\210\300\304\305\306#\207" [cl--defalias
cl-values list "Return multiple values, Common Lisp style.\nThe arguments
of `cl-values' are the values\nthat the containing function should
return.\n\n(fn &rest VALUES)" cl-values-list identity "Return multiple
values, Common Lisp style, taken from a list.\nLIST specifies the list of
values\nthat the containing function should return.\n\n(fn LIST)"] 4)
  eval((byte-code "\300\301\302\303#\210\300\304\305\306#\207"
[cl--defalias cl-values list "Return multiple values, Common Lisp
style.\nThe arguments of `cl-values' are the values\nthat the containing
function should return.\n\n(fn &rest VALUES)" cl-values-list identity
"Return multiple values, Common Lisp style, taken from a list.\nLIST
specifies the list of values\nthat the containing function should
return.\n\n(fn LIST)"] 4))
  esup-child-profile-sexp(3554 3979 1)
  esup-child-profile-buffer(#<buffer cl-lib.elc> 1)
  esup-child-profile-file("cl-lib" 1)
  esup-child-profile-sexp(6215 6232 0)
  esup-child-profile-buffer(#<buffer init.el> 0)
  esup-child-profile-file("/home/kmodi/.emacs.d/init.el" 0)
  esup-child-run("/home/kmodi/.emacs.d/init.el" "33838")
  eval((esup-child-run "/home/kmodi/.emacs.d/init.el" "33838"))
  command-line-1(("-L"
"/home/kmodi/.emacs.d-master/elpa_25_0/esup-20150519.1701/" "-l"
"esup-child" "--eval=(esup-child-run \"/home/kmodi/.emacs.d/init.el\"
\"33838\")"))
  command-line()
  normal-top-level()

On Mon, Sep 14, 2015 at 11:23 AM Kaushal Modi <[email-masked]>
wrote:

> 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}
>
>
>