Subject: bug#79353: 31.0.50; Eager macro expansion errors when building master

From: Stefan Monnier <[email-masked]>
Date: Sun, 31 Aug 2025 11:29:18 -0400

> 2. During initial autoload generation, this macro is unknown.  So the
> file tramp-adb.el is /loaded/, to give it a chance to define the macro.
>
> 3. The macro `tramp--with-startup' is indeed defined in tramp.el, which
> tramp-adb requires.  So far so good.  But during the loading of
> tramp.el, some other package it loads uses `cl-subseq' at the top level
> without first requiring cl-extra.
>
> 5. Why has this not been an issue before?  The macro `cl-subseq' is
> /itself/ an autoload in cl-extra.el.  Since the CL-specific loadefs file
> `cl-loaddefs.el' does not yet exist (remember this is during autoload
> generation), this causes the (handled) warning you see.

FWIW it sounds like a problem I've seen before in other circumstances
where I just added a `(require 'cl-extra)`, e.g.:

    lisp/emacs-lisp/comp-cstr.el:(require 'cl-extra) ;HACK: For `cl-find-class' when `cl-loaddefs' is missing.

- Stefan