Subject: bug#57200: 29.0.50; Symbol's function definition is void: update-directory-autoloads

From: Yasuhiro Kimura <[email-masked]>
Date: Sun, 14 Aug 2022 14:19:33 +0900 (JST)

Dear Emacs developers,

I'm a member of FreeBSD Emacs ports maintainance team. In FreeBSD
ports collections there are 2 Emacs ports, editors/emacs and
editors/emacs-devel. The former provides latest release of Emacs. The
latter tracks master branch of Emacs repository and is updated
regularly.

Recently we updated editors/emacs-devel from 3d6af11c42 to 11e6c12def
(both are commits in master branch of emacs repository) and after that
we faced the problem. There are some ports in ports collections that
depends on Emacs (ports of ELPA packages, for example). And some of
such ports fail to build now. I analyzed build errors and found
something in common.

* Build fails when editors/emacs-devel is used as Emacs.
* Build fails when 'update-directory-autoloads' function is used to
  build port.
* Build fails with following error message.
  "Symbol's function definition is void: update-directory-autoloads"

At first I updated editors/emacs-devel to more recent commit of Emacs
repository (commit 4e23ecb882 at Sat Aug 13 02:36:54 2022 UTC) but the
error still happens. So I tried bisect between above 2
commit. According to the result of it the error happens following
commit and later.

----------------------------------------------------------------------
commit aa9eaac68e
Author:     Lars Ingebrigtsen <[email-masked]>
AuthorDate: Thu Aug 4 17:03:59 2022 +0200
Commit:     Lars Ingebrigtsen <[email-masked]>
CommitDate: Thu Aug 4 17:03:59 2022 +0200

    Move autoload.el to lisp/obsolete/
----------------------------------------------------------------------

Since update-directory-autoloads is defined in autoload.el, it seems
very likely for me that this commit causes the error.

By the way I have also been chasing emacs master branch with 64bit
Window 10 and MSYS2. So I built commit 11e6c12def with them and
checked if same error happens. But it doesn't.  So the problem may be
specific to FreeBSD or our editors/emacs-devel port.

If any other informatin is necessary, please feel free to requesting
it.

Best Regards.

---
Yasuhiro Kimura

In GNU Emacs 29.0.50 (build 1, amd64-portbld-freebsd13.1)
Repository revision: 11e6c12
Repository branch: master
System Description: 13.1-RELEASE-p1

Configured using:
 'configure --disable-build-details --localstatedir=/var
 --without-libsystemd --without-selinux --without-gconf
 --with-sound=no --with-x-toolkit=no --without-cairo --without-dbus
 --without-gconf --without-gif --without-gsettings
 --without-imagemagick --without-jpeg --without-lcms2 --without-libotf
 --without-m17n-flt --without-pgtk --without-png --without-rsvg
 --without-tiff --without-toolkit-scroll-bars --without-webp
 --without-x --without-xim --without-xpm --without-xwidgets
 --enable-acl --without-cairo --without-dbus --without-gif
 --with-gnutls --without-gsettings --without-harfbuzz --without-jpeg
 --with-json --with-file-notification=kqueue --without-lcms2
 --without-m17n-flt --without-imagemagick --without-mailutils
 --with-modules --with-native-compilation --without-libotf
 --without-pgtk --without-png --without-toolkit-scroll-bars
 --with-sqlite3 --without-rsvg --with-threads --without-tiff
 --without-webp --without-xft --without-xim --with-xml2 --without-xpm
 --without-xwidgets --with-x-toolkit=no --prefix=/usr/local
 --mandir=/usr/local/man --disable-silent-rules
 --infodir=/usr/local/share/emacs/info/
 --build=amd64-portbld-freebsd13.1 'CFLAGS=-O2 -pipe
 -fstack-protector-strong -isystem /usr/local/include
 -fno-strict-aliasing ' 'CPPFLAGS=-isystem /usr/local/include'
 'LDFLAGS= -L/usr/local/lib/gcc11 -fstack-protector-strong
 -L/usr/local/lib ''

Configured features:
ACL GMP GNUTLS JSON LIBXML2 MODULES NATIVE_COMP NOTIFY KQUEUE PDUMPER
SQLITE3 THREADS XIM ZLIB

Important settings:
  value of $LANG: ja_JP.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Summary freebsd.org

Minor modes in effect:
  global-git-commit-mode: t
  magit-auto-revert-mode: t
  shell-dirtrack-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  buffer-read-only: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/usr/local/share/emacs/29.0.50/site-lisp/transient hides /usr/local/share/emacs/29.0.50/lisp/transient
/home/yasu/share/emacs/lisp/ruby-mode hides /usr/local/share/emacs/29.0.50/lisp/progmodes/ruby-mode
/usr/local/share/emacs/29.0.50/site-lisp/flim/sasl hides /usr/local/share/emacs/29.0.50/lisp/net/sasl

Features:
(shadow pp emacsbug network-stream mew-varsx mew-unix mew-w3m w3m
doc-view jka-compr image-mode exif timezone w3m-hist w3m-fb
bookmark-w3m w3m-ems wid-edit w3m-favicon w3m-image tab-line w3m-proc
w3m-util mew-auth mew-config mew-imap2 mew-imap mew-nntp2 mew-nntp
mew-pop mew-smtp mew-ssl mew-ssh mew-net mew-highlight mew-sort
mew-fib mew-ext mew-refile mew-demo mew-attach mew-draft mew-message
mew-thread mew-virtual mew-summary4 mew-summary3 mew-summary2
mew-summary mew-search mew-pick mew-passwd mew-scan mew-syntax mew-bq
mew-smime mew-pgp mew-header mew-exec mew-mark mew-mime mew-edit
mew-decode mew-encode mew-cache mew-minibuf mew-complete mew-addrbook
mew-local mew-vars3 mew-vars2 mew-vars mew-env mew-lang-jp mew-mule3
mew-mule mew-gemacs mew-key mew-func mew-blvs mew-const mew term/tmux
term/xterm xterm magit-version yaml-mode tmux mime-setup
mail-mime-setup semi-setup semi-def alist path-util apel-ver product
rng-nxml rng-valid rng-loc rng-uri rng-parse nxml-parse rng-match
rng-dt rng-util rng-pttrn nxml-ns nxml-mode nxml-outln nxml-rap
sgml-mode facemenu dom nxml-util nxml-enc xmltok forge-list
forge-commands forge-semi forge-bitbucket buck forge-gogs gogs
forge-gitea gtea forge-gitlab glab forge-github ghub-graphql treepy
gsexp ghub let-alist gnutls forge-notify forge-revnote forge-pullreq
forge-issue forge-topic yaml parse-time iso8601 bug-reference
forge-post markdown-mode color noutline outline forge-repo forge
forge-core forge-db closql emacsql-sqlite advice emacsql
emacsql-compiler url-http url-auth url-gw nsm magit-submodule
magit-obsolete magit-blame magit-stash magit-reflog magit-bisect
magit-push magit-pull magit-fetch magit-clone magit-remote
magit-commit magit-sequence magit-notes magit-worktree magit-tag
magit-merge magit-branch magit-reset magit-files magit-refs
magit-status magit package browse-url url url-proxy url-privacy
url-expand url-methods url-history url-cookie generate-lisp-file
url-domsuf url-util url-handlers url-parse auth-source json map
url-vars magit-repos magit-apply magit-wip magit-log which-func imenu
magit-diff smerge-mode diff image diff-mode easy-mmode git-commit
log-edit message sendmail mailcap yank-media puny dired dnd
dired-loaddefs rfc822 mml mml-sec password-cache epa derived epg
rfc6068 epg-config gnus-util text-property-search time-date mm-decode
mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util
ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader
pcvs-util add-log magit-core magit-autorevert autorevert filenotify
magit-margin magit-transient magit-process with-editor shell pcomplete
comint ring server ansi-color magit-mode transient comp regexp-opt
comp-cstr warnings icons cl-extra edmacro kmacro help-mode tool-bar
magit-git magit-base magit-section cl-seq format-spec crm subr-x eieio
byte-opt bytecomp byte-compile cconv eieio-core cl-macs gv dash
compat-27 compat-26 compat gitignore-mode gitconfig-mode conf-mode rx
gitattributes-mode thingatpt cl-loaddefs cl-lib cp5022x japan-util rmc
iso-transl tooltip eldoc paren electric uniquify ediff-hook vc-hooks
lisp-float-type elisp-mode tabulated-list replace newcomment text-mode
lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch
easymenu timer select mouse jit-lock font-lock syntax font-core
term/tty-colors frame minibuffer nadvice seq simple cl-generic
indonesian philippine cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew
greek romanian slovak czech european ethiopic indian cyrillic chinese
composite emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button
loaddefs faces cus-face macroexp files window text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads kqueue multi-tty
make-network-process native-compile emacs)

Memory information:
((conses 16 322633 32592)
 (symbols 48 26484 19)
 (strings 32 89853 3829)
 (string-bytes 1 2723756)
 (vectors 16 57672)
 (vector-slots 8 1060785 39588)
 (floats 8 295 503)
 (intervals 56 2452 109)
 (buffers 992 14))