Subject: bug#45186: Emacs master: build broken by spurious message ".../c-by.elc failed to provide feature `semantic/bovine/c-by"

From: Alan Mackenzie <[email-masked]>
Date: Sat, 12 Dec 2020 11:44:26 +0000

Hello, Lars.

On Fri, Dec 11, 2020 at 21:46:35 +0100, Lars Ingebrigtsen wrote:
> Alan Mackenzie <[email-masked]> writes:

> > I've just updated a master repo here, and tried a make bootstrap.

> > I get the error message:

> >     cedet/semantic/bovine/c.el:35:1: Error: Loading file
> >     /home/acm/emacs/emacs.git/sub-master-a/lisp/cedet/semantic/bovine/c-by.elc
> >     failed to provide feature `semantic/bovine/c-by'

> I tried a "make bootstrap" on the current trunk now (on
> Debian/bullseye), and I did not get that error message...

Thanks for looking at it.

I got the error message again this morning (it wasn't just a bad dream),
and I'm trying to think how it could have happened.

The way of calling require

    (require 'semantic/bovine/c-by)

with the path included in the required symbol is totally new to me.  It
just seems like a wrong thing to do.  But it's been working for many
years, obviously, for some value of "working".

I do a git status, and notice amongs my untracked files list:

        lisp/cedet/semantic/wisent/java-tags-wy.el
	lisp/cedet/srecode/srecode-template-wy.el

, so I've deleted these.  It hasn't helped.

I've inserted a

    (provide 'semantic/bovine/c-by)

into c-by.el.  Now I get other errors:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
In toplevel form:
cedet/semantic/wisent/js-wy.el:58:17: Error: Bad input grammar
make[2]: *** [Makefile:295: cedet/semantic/wisent/js-wy.elc] Error 1
make[2]: *** Waiting for unfinished jobs....

In toplevel form:
cedet/semantic/wisent/javascript.el:31:1: Error: Bad input grammar
make[2]: *** [Makefile:295: cedet/semantic/wisent/javascript.elc] Error
1

In toplevel form:
cedet/semantic/wisent/python-wy.el:58:17: Error: Symbol `SEMICOLON' is
used, but is not defined as a token and has no rules
make[2]: *** [Makefile:295: cedet/semantic/wisent/python-wy.elc] Error 1

In toplevel form:
cedet/semantic/wisent/python.el:37:1: Error: Symbol `SEMICOLON' is used,
but is not defined as a token and has no rules
make[2]: *** [Makefile:295: cedet/semantic/wisent/python.elc] Error 1

In end of data:
cedet/semantic/bovine/c.el:2272:1: Warning: the function
    `semantic-c-by--install-parser' is not known to be defined.
make[2]: Leaving directory '/home/acm/emacs/emacs.git/sub-master-a/lisp'
make[1]: *** [Makefile:318: compile-main] Error 2
make[1]: Leaving directory '/home/acm/emacs/emacs.git/sub-master-a/lisp'
make: *** [Makefile:411: lisp] Error 2
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

.  The word SEMICOLON doesn't appear anywhere in the git log.  I really
don't want to start burrowing through the internals of the cedet things.

I don't understand how Emacs is building for everybody else but not me.
I've tried reconfiguring my Emacs with no options to ./configure.  This
hasn't helped either.

Perhaps this conversation would be better on emacs-devel.  Anyhow thanks
for your patience in reading this miserable post!

> -- 
> (domestic pets only, the antidote for overdose, milk.)
>    bloggy blog: http://lars.ingebrigtsen.no

-- 
Alan Mackenzie (Nuremberg, Germany).