Subject: bug#72929: [Norbert Koch] Error building emacs after 73277a4097b

From: Norbert Koch <[email-masked]>
Date: Sun, 01 Sep 2024 16:55:34 +0200

Stefan Kangas <[email-masked]> writes:

Hello Stefan,

> Thanks for reporting this.
>
> Forwarding the below to the bug tracker in case anyone sees a quick fix.
> I'll be AFK in the next couple of hours or so.
>
> FWIW, I can't reproduce the below on macOS 15 or Ubuntu 22.04 LTS.

> Did you try `make bootstrap`?  Could you include your build details as
> per `M-x report-emacs-bug`?

Yes, I see the same problem with a make bootstrap.

Here's the build information

In GNU Emacs 31.0.50 (build 8, x86_64-pc-linux-gnu, X toolkit, cairo
 version 1.18.0, Xaw scroll bars) of 2024-09-01 built on dest-ltnok-02
Repository revision: 59e0b82776ade72680e7c369f6089eab4a74dc4a
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12101013
System Description: Debian GNU/Linux trixie/sid

Configured using:
 'configure --prefix=/home/nok/local'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NATIVE_COMP
NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XDBE XIM XINPUT2 XPM LUCID ZLIB

Important settings:
  value of $LC_ALL: en_US.utf8
  value of $LANG: en_US.utf8
  locale-coding-system: utf-8-unix

Major mode: Message

Minor modes in effect:
  gnus-message-citation-mode: t
  footnote-mode: t
  flyspell-mode: t
  rcirc-track-minor-mode: t
  gnus-desktop-notify-mode: t
  global-origami-mode: t
  origami-mode: t
  global-company-mode: t
  company-mode: t
  fortune-cookie-mode: t
  electric-pair-mode: t
  display-battery-mode: t
  desktop-save-mode: t
  global-tree-sitter-mode: t
  flycheck-posframe-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  global-git-commit-mode: t
  mml-mode: t
  magit-auto-revert-mode: t
  server-mode: t
  marginalia-mode: t
  vertico-prescient-mode: t
  which-key-mode: t
  global-flycheck-mode: t
  flycheck-mode: t
  override-global-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  minibuffer-regexp-mode: t
  column-number-mode: t
  line-number-mode: t
  auto-fill-function: #[128 \304\300\301.#\207 [yas--auto-fill message-do-auto-fill :around nil apply] 5 advice]
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  abbrev-mode: t

Load-path shadows:
/home/nok/.emacs.d/elpa/transient-20240831.2233/transient hides /home/nok/local/share/emacs/31.0.50/lisp/transient
/home/nok/.emacs.d/elpa/bind-key-20230203.2004/bind-key hides /home/nok/local/share/emacs/31.0.50/lisp/bind-key
/home/nok/.emacs.d/elpa/which-key-20240620.2145/which-key hides /home/nok/local/share/emacs/31.0.50/lisp/which-key
/home/nok/.emacs.d/elpa/dictionary-20201001.1727/dictionary hides /home/nok/local/share/emacs/31.0.50/lisp/net/dictionary
/home/nok/.emacs.d/elpa/flim-20240221.1353/sasl hides /home/nok/local/share/emacs/31.0.50/lisp/net/sasl

Features:
(shadow tramp-cache time-stamp tramp-sh shortdoc help-fns radix-tree
emacsbug url-http url-gw url-auth gnus-gravatar gravatar dns url-cache
smiley mm-archive gnus-async gnus-bcklg gnus-ml disp-table view
sh-script smie treesit executable ffap tramp trampver tramp-integration
files-x tramp-message tramp-compat tramp-loaddefs mailalias smtpmail
textsec uni-scripts idna-mapping ucs-normalize uni-confusable
textsec-check qp sort gnus-cite footnote fortune mail-extr goto-addr
bug-reference magit-extras face-remap gnus-demon gnus-topic nndraft nnmh
nnml utf-7 epa-file network-stream nsm nnfolder nnnil gnus-agent
gnus-srvr gnus-score score-mode nnvirtual nntp gnus-cache nok-gnus
ebdb-message ebdb-gnus gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime
smime gnutls dig gnus-sum ebdb-mua ebdb-com ebdb-format ebdb eieio-opt
speedbar ezimage dframe eieio-base timezone eww url-queue thingatpt shr
pixel-fill kinsoku url-file svg dom mm-url mule-util jka-compr vc-dir
ewoc vc display-line-numbers diary-lib diary-loaddefs cal-menu calendar
cal-loaddefs k8s-mode vc-git vc-dispatcher ansible-doc flyspell ispell
yaml-mode company-oddmuse company-keywords company-etags etags fileloop
generator company-gtags company-dabbrev-code company-dabbrev
company-files company-clang company-capf company-cmake company-semantic
company-template company-bbdb rcirc gnus-desktop-notify alert log4e
notifications gntp gnus-group gnus-undo gnus-start gnus-dbus gnus-cloud
nnimap nnmail mail-source utf7 nnoo parse-time iso8601 gnus-spec
gnus-int gnus-range gnus-win gnus nnheader range wid-edit origami
origami-parsers cl company fortune-cookie elec-pair battery dbus xml
desktop frameset cus-load tree-sitter-langs tree-sitter-langs-build
tar-mode arc-mode archive-mode pp tree-sitter-hl tree-sitter
tree-sitter-load tree-sitter-cli tsc tsc-dyn tsc-dyn-get dired-aux
tsc-obsolete xterm-color flycheck-posframe posframe java-snippets
yasnippet-snippets yasnippet kubed counsel xdg xref project compile
magit-submodule 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
magit-repos magit-apply magit-wip magit-log which-func imenu magit-diff
smerge-mode diff diff-mode track-changes git-commit log-edit message
sendmail yank-media puny rfc822 mml mml-sec 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 comp comp-cstr warnings
comp-run comp-common shell pcomplete comint ansi-osc server magit-mode
transient edmacro kmacro benchmark magit-git magit-base magit-section
format-spec cursor-sensor crm dash rainbow-delimiters swiper ivy delsel
ring ivy-faces ivy-overlay colir color use-package-bind-key marginalia
vertico-prescient vertico prescient char-fold compat which-key flycheck
ansi-color find-func bind-key easy-mmode s exec-path-from-shell
use-package-ensure use-package-core modus-vivendi-theme modus-themes
0blayout-autoloads ace-window-autoloads all-the-icons-ivy-autoloads
all-the-icons-autoloads auctex-autoloads tex-site
auto-complete-autoloads avy-autoloads awk-ts-mode-autoloads
awk-yasnippets-autoloads bind-key-autoloads blamer-autoloads
async-autoloads boxquote-autoloads chemtable-autoloads
company-statistics-autoloads company-autoloads consult-gh-autoloads
consult-autoloads counsel-at-point-autoloads counsel-spotify-autoloads
counsel-tramp-autoloads counsel-autoloads debian-el-autoloads debian-el
dired dired-loaddefs dictcc-autoloads dockerfile-mode-autoloads
ebdb-autoloads cl-extra help-mode eglot-java-autoloads
exec-path-from-shell-autoloads flycheck-color-mode-line-autoloads
flycheck-posframe-autoloads flycheck-yamllint-autoloads
flycheck-autoloads git-modes-autoloads hydra-autoloads
ivy-explorer-autoloads ivy-pass-autoloads jenkins-autoloads
jenkinsfile-mode-autoloads groovy-mode-autoloads just-mode-autoloads
justl-autoloads inheritenv-autoloads k8s-mode-autoloads kubed-autoloads
kubernetes-autoloads list-unicode-display-autoloads magit-lfs-autoloads
magit-patch-changelog-autoloads magit-autoloads pcase
magit-popup-autoloads magit-section-autoloads marginalia-autoloads
markdown-mode-autoloads multi-vterm-autoloads org-alert-autoloads
alert-autoloads log4e-autoloads password-store-menu-autoloads
password-store-autoloads playerctl-autoloads poly-ansible-autoloads
ansible-autoloads f-autoloads polymode-autoloads popup-autoloads
posframe-autoloads pulseaudio-control-autoloads rg-autoloads s-autoloads
semi-autoloads flim-autoloads oauth2-autoloads apel-autoloads
slime-autoloads macrostep-autoloads sr-speedbar-autoloads
stumpwm-mode-autoloads swiper-autoloads ivy-autoloads systemd-autoloads
rx terraform-doc-autoloads promise-autoloads request-autoloads
terraform-mode-autoloads hcl-mode-autoloads tmux-mode-autoloads
transient-autoloads tree-sitter-langs-autoloads tree-sitter-autoloads
tsc-autoloads unicode-fonts-autoloads ucs-utils-autoloads
list-utils-autoloads pcache-autoloads vcard-autoloads
vertico-prescient-autoloads vertico-autoloads prescient-autoloads
vterm-autoloads w3m-load w3m-autoloads wgrep-autoloads
which-key-autoloads with-editor-autoloads info dash-autoloads
xterm-color-autoloads yaml-mode-autoloads yasnippet-snippets-autoloads
yasnippet-autoloads package browse-url url url-proxy url-privacy
url-expand url-methods url-history url-cookie generate-lisp-file
url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq
eieio eieio-core cl-macs icons password-cache json subr-x map byte-opt
gv bytecomp byte-compile url-vars cl-loaddefs cl-lib rmc iso-transl
tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks
lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd
touch-screen tool-bar dnd fontset image regexp-opt fringe tabulated-list
replace newcomment text-mode lisp-mode prog-mode register page tab-bar
menu-bar rfn-eshadow isearch easymenu timer select scroll-bar 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 theme-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 dbusbind inotify lcms2 dynamic-setting system-font-setting
font-render-setting cairo x-toolkit xinput2 x multi-tty move-toolbar
make-network-process native-compile emacs)

Memory information:
((conses 16 805575 118877) (symbols 48 42328 10)
 (strings 32 182739 13460) (string-bytes 1 5641825)
 (vectors 16 104015) (vector-slots 8 1695707 73923) (floats 8 755 468)
 (intervals 56 3224 2251) (buffers 992 58))

> From: Norbert Koch
> Subject: Error building emacs after 73277a4097b
> To: Stefan Kangas
> Date: Sun, 01 Sep 2024 16:14:22 +0200 (33 minutes, 18 seconds ago)
>
> Hello Stefan,
>
> sorry to disturb you, but I get an error when building emacs on my
> Debian sid:
>
> image.c: In function ‘xpm_str_to_int’:
> image.c:6254:17: error: implicit declaration of function ‘strtol’; did
> you mean ‘strtok’? [-Wimplicit-function-declaration]
>  6254 |   long result = strtol (*buf, &p, 10);
>       |                 ^~~~~~
>       |                 strtok
> image.c:6254:17: warning: nested extern declaration of ‘strtol’
> [-Wnested-externs]
> In file included from ../lib/stdlib.h:49,
>                  from /usr/include/glib-2.0/glib/gutils.h:426,
>                  from /usr/include/glib-2.0/glib/gthread.h:36,
>                  from /usr/include/glib-2.0/glib/gasyncqueue.h:34,
>                  from /usr/include/glib-2.0/glib.h:34,
>                  from /usr/include/glib-2.0/gobject/gbinding.h:30,
>                  from /usr/include/glib-2.0/glib-object.h:24,
>                  from /usr/include/librsvg-2.0/librsvg/rsvg.h:30,
>                  from image.c:11649:
> /usr/include/stdlib.h: At top level:
> /usr/include/stdlib.h:177:17: error: conflicting types for ‘strtol’;
> have ‘long int(const char * restrict,  char ** restrict,  int)’
>   177 | extern long int strtol (const char *__restrict __nptr,
>       |                 ^~~~~~
> image.c:6254:17: note: previous implicit declaration of ‘strtol’ with
> type ‘int()’
>  6254 |   long result = strtol (*buf, &p, 10);
>       |                 ^~~~~~
>
>
> Regards,
> Norbert

--