* bug#63556: 29.0.90; Use of _Generic breaks Emacs build on GCC <4.9
@ 2023-05-17 17:38 Spencer Baugh
2023-05-17 17:45 ` Eli Zaretskii
2023-05-17 17:57 ` Paul Eggert
0 siblings, 2 replies; 12+ messages in thread
From: Spencer Baugh @ 2023-05-17 17:38 UTC (permalink / raw)
To: 63556; +Cc: Paul Eggert
Commit 0f5b1fcdf0be8c1b3084518f1c4f6f375828094b "Help GCC compute
modiff_incr" added usage of _Generic, which breaks the build for me. I
think it's because I'm on gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44),
and _Generic was added in 4.9?
If we want to drop support for 4.8 that is fine with me, I just figure
this was unintentional.
In GNU Emacs 29.0.90 (build 3, x86_64-pc-linux-gnu, X toolkit, cairo
version 1.15.12, Xaw scroll bars) of 2023-05-17 built on
igm-qws-u22796a
Repository revision: 4d08492296c2a6d2910f2b740c2d2508275458fc
Repository branch: emacs-29
Windowing system distributor 'The X.Org Foundation', version 11.0.12011000
System Description: CentOS Linux 7 (Core)
Configured using:
'configure --with-x-toolkit=lucid --with-gif=ifavailable'
Configured features:
CAIRO DBUS FREETYPE GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON
LIBSELINUX LIBXML2 MODULES NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND
SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS X11 XDBE XIM XINPUT2 XPM LUCID
ZLIB
Important settings:
value of $LANG: en_US.UTF-8
locale-coding-system: utf-8-unix
Major mode: Compilation
Minor modes in effect:
jane-fe-minor-mode: t
editorconfig-mode: t
which-function-mode: t
global-git-commit-mode: t
magit-auto-revert-mode: t
shell-dirtrack-mode: t
server-mode: t
windmove-mode: t
savehist-mode: t
save-place-mode: t
tooltip-mode: t
global-eldoc-mode: t
show-paren-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
tab-bar-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
context-menu-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
buffer-read-only: t
line-number-mode: t
transient-mark-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
Load-path shadows:
/usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/project hides /home/sbaugh/.emacs.d/elpa/project-0.9.8/project
/usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/xref hides /home/sbaugh/.emacs.d/elpa/xref-1.6.3/xref
/usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/csharp-mode hides /home/sbaugh/src/emacs/emacs-29/lisp/progmodes/csharp-mode
/usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/xref hides /home/sbaugh/src/emacs/emacs-29/lisp/progmodes/xref
/usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/project hides /home/sbaugh/src/emacs/emacs-29/lisp/progmodes/project
/usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/eldoc hides /home/sbaugh/src/emacs/emacs-29/lisp/emacs-lisp/eldoc
/usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/auctex/lpath hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/dictionary/lpath
/home/sbaugh/src/emacs/emacs-29/lisp/net/dictionary hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/dictionary/dictionary
/usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/caml-font hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/ocaml/caml-font
/home/sbaugh/src/emacs/emacs-29/lisp/org/org-version hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-version
/home/sbaugh/src/emacs/emacs-29/lisp/org/org-loaddefs hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-loaddefs
/home/sbaugh/src/emacs/emacs-29/lisp/org/org-keys hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-keys
/home/sbaugh/src/emacs/emacs-29/lisp/org/ol hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ol
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-perl hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-perl
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-core hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-core
/home/sbaugh/src/emacs/emacs-29/lisp/org/ox hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ox
/home/sbaugh/src/emacs/emacs-29/lisp/org/ol-rmail hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ol-rmail
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-octave hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-octave
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-comint hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-comint
/home/sbaugh/src/emacs/emacs-29/lisp/org/ol-w3m hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ol-w3m
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-org hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-org
/home/sbaugh/src/emacs/emacs-29/lisp/org/ox-texinfo hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ox-texinfo
/home/sbaugh/src/emacs/emacs-29/lisp/org/org-inlinetask hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-inlinetask
/home/sbaugh/src/emacs/emacs-29/lisp/org/ol-mhe hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ol-mhe
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-ocaml hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-ocaml
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-clojure hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-clojure
/home/sbaugh/src/emacs/emacs-29/lisp/org/ox-publish hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ox-publish
/home/sbaugh/src/emacs/emacs-29/lisp/org/ol-irc hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ol-irc
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-calc hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-calc
/home/sbaugh/src/emacs/emacs-29/lisp/org/ox-odt hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ox-odt
/home/sbaugh/src/emacs/emacs-29/lisp/org/org-id hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-id
/home/sbaugh/src/emacs/emacs-29/lisp/org/ol-gnus hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ol-gnus
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-matlab hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-matlab
/home/sbaugh/src/emacs/emacs-29/lisp/org/ox-icalendar hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ox-icalendar
/home/sbaugh/src/emacs/emacs-29/lisp/org/org-footnote hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-footnote
/home/sbaugh/src/emacs/emacs-29/lisp/org/ol-bibtex hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ol-bibtex
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-lisp hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-lisp
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-C hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-C
/home/sbaugh/src/emacs/emacs-29/lisp/org/ox-org hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ox-org
/home/sbaugh/src/emacs/emacs-29/lisp/org/org-indent hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-indent
/home/sbaugh/src/emacs/emacs-29/lisp/org/ol-info hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ol-info
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-maxima hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-maxima
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-awk hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-awk
/home/sbaugh/src/emacs/emacs-29/lisp/org/ox-man hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ox-man
/home/sbaugh/src/emacs/emacs-29/lisp/org/org-goto hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-goto
/home/sbaugh/src/emacs/emacs-29/lisp/org/ox-md hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ox-md
/home/sbaugh/src/emacs/emacs-29/lisp/org/ol-eshell hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ol-eshell
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-lua hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-lua
/home/sbaugh/src/emacs/emacs-29/lisp/org/org-habit hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-habit
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-R hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-R
/home/sbaugh/src/emacs/emacs-29/lisp/org/ol-eww hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ol-eww
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-makefile hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-makefile
/home/sbaugh/src/emacs/emacs-29/lisp/org/ox-latex hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ox-latex
/home/sbaugh/src/emacs/emacs-29/lisp/org/ol-docview hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ol-docview
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-lob hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-lob
/home/sbaugh/src/emacs/emacs-29/lisp/org/ox-beamer hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ox-beamer
/home/sbaugh/src/emacs/emacs-29/lisp/org/org-faces hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-faces
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob
/home/sbaugh/src/emacs/emacs-29/lisp/org/ox-html hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ox-html
/home/sbaugh/src/emacs/emacs-29/lisp/org/org-feed hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-feed
/home/sbaugh/src/emacs/emacs-29/lisp/org/ol-bbdb hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ol-bbdb
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-lilypond hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-lilypond
/home/sbaugh/src/emacs/emacs-29/lisp/org/ox-ascii hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ox-ascii
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-latex hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-latex
/home/sbaugh/src/emacs/emacs-29/lisp/org/org hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-tangle hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-tangle
/home/sbaugh/src/emacs/emacs-29/lisp/org/org-tempo hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-tempo
/home/sbaugh/src/emacs/emacs-29/lisp/org/org-duration hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-duration
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-sqlite hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-sqlite
/home/sbaugh/src/emacs/emacs-29/lisp/org/org-entities hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-entities
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-table hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-table
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-js hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-js
/home/sbaugh/src/emacs/emacs-29/lisp/org/org-table hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-table
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-sql hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-sql
/home/sbaugh/src/emacs/emacs-29/lisp/org/org-timer hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-timer
/home/sbaugh/src/emacs/emacs-29/lisp/org/org-element hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-element
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-java hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-java
/home/sbaugh/src/emacs/emacs-29/lisp/org/org-ctags hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-ctags
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-shell hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-shell
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-groovy hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-groovy
/home/sbaugh/src/emacs/emacs-29/lisp/org/org-src hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-src
/home/sbaugh/src/emacs/emacs-29/lisp/org/org-datetree hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-datetree
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-haskell hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-haskell
/home/sbaugh/src/emacs/emacs-29/lisp/org/org-plot hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-plot
/home/sbaugh/src/emacs/emacs-29/lisp/org/org-compat hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-compat
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-screen hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-screen
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-fortran hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-fortran
/home/sbaugh/src/emacs/emacs-29/lisp/org/org-protocol hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-protocol
/home/sbaugh/src/emacs/emacs-29/lisp/org/org-crypt hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-crypt
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-sed hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-sed
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-gnuplot hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-gnuplot
/home/sbaugh/src/emacs/emacs-29/lisp/org/org-pcomplete hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-pcomplete
/home/sbaugh/src/emacs/emacs-29/lisp/org/org-colview hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-colview
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-scheme hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-scheme
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-forth hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-forth
/home/sbaugh/src/emacs/emacs-29/lisp/org/org-num hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-num
/home/sbaugh/src/emacs/emacs-29/lisp/org/org-clock hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-clock
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-exp hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-exp
/home/sbaugh/src/emacs/emacs-29/lisp/org/org-mouse hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-mouse
/home/sbaugh/src/emacs/emacs-29/lisp/org/org-capture hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-capture
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-sass hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-sass
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-eval hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-eval
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-ref hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-ref
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-emacs-lisp hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-emacs-lisp
/home/sbaugh/src/emacs/emacs-29/lisp/org/org-mobile hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-mobile
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-ruby hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-ruby
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-eshell hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-eshell
/home/sbaugh/src/emacs/emacs-29/lisp/org/org-lint hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-lint
/home/sbaugh/src/emacs/emacs-29/lisp/org/org-agenda hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-agenda
/home/sbaugh/src/emacs/emacs-29/lisp/org/org-macro hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-macro
/home/sbaugh/src/emacs/emacs-29/lisp/org/org-attach-git hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-attach-git
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-processing hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-processing
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-css hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-css
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-dot hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-dot
/home/sbaugh/src/emacs/emacs-29/lisp/org/org-list hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-list
/home/sbaugh/src/emacs/emacs-29/lisp/org/org-macs hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-macs
/home/sbaugh/src/emacs/emacs-29/lisp/org/org-attach hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-attach
/home/sbaugh/src/emacs/emacs-29/lisp/org/org-archive hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/org-archive
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-python hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-python
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-plantuml hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-plantuml
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-ditaa hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/lisp/ob-ditaa
/home/sbaugh/src/emacs/emacs-29/lisp/org/ob-julia hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/contrib/lisp/ob-julia
/home/sbaugh/src/emacs/emacs-29/lisp/org/ol-man hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/contrib/lisp/ol-man
/home/sbaugh/src/emacs/emacs-29/lisp/org/ox-koma-letter hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/org/contrib/lisp/ox-koma-letter
/home/sbaugh/.emacs.d/elpa/dash-2.19.1/dash hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/dash/dash
/home/sbaugh/.emacs.d/elpa/dash-2.19.1/dash-functional hides /usr/local/home/sbaugh/workspaces/fe-47828/+share+/app/emacs/elisp/contrib/dash/dash-functional
Features:
(shadow emacsbug grep sh-script treesit executable misearch
multi-isearch cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles
cc-align cc-engine cc-vars cc-defs goto-addr texinfo texinfo-loaddefs
magit-imenu git-rebase face-remap bug-reference vc-git vc-bzr vc-src
vc-sccs vc-svn vc-cvs vc-rcs log-view vc-fe qp sort smiley gnus-cite
mail-extr textsec uni-scripts idna-mapping ucs-normalize uni-confusable
textsec-check gnus-async gnus-bcklg gnus-ml disp-table nndoc gnus-dup
display-line-numbers mm-archive url-http-ntlm ntlm hmac-md5 hex-util md4
url-cache debbugs-gnu debbugs-compat debbugs soap-client url-http url-gw
rng-xsd rng-dt rng-util xsd-regexp network-stream nsm gnus-agent
gnus-srvr gnus-score score-mode nnvirtual gnus-msg gnus-art mm-uu
mml2015 mm-view mml-smime smime gnutls dig nntp gnus-cache gnus-sum shr
pixel-fill kinsoku url-file svg dom gnus-group gnus-undo gnus-start
gnus-dbus dbus xml gnus-cloud nnimap nnmail mail-source utf7 nnoo
gnus-spec gnus-int gnus-range gnus-win gnus nnheader range cus-edit
cus-load wid-edit vc-hg vc-dir vc vc-dispatcher tramp tramp-loaddefs
trampver tramp-integration tramp-compat parse-time iso8601 ls-lisp ffap
jane-merlin merlin-imenu merlin-xref merlin-cap merlin jane-async-merlin
jane-completion jane-common jane-project xref jane-fe-menu ecaml_plugin
linum view gopcaml magit-bookmark bookmark image+ advice image-file
image-converter editorconfig editorconfig-core editorconfig-core-handle
editorconfig-fnmatch whitespace jane-auto-modes vba-mode markdown-mode
color jane jane-micro-features jane-diff unified-test-mode shell-file
core core-buffer core-error core-util ert pp ewoc debug backtrace
jane-sexp jane-ocaml jane-tuareg-theme tuareg tuareg-compat tuareg-opam
skeleton flymake-proc flymake warnings thingatpt smie caml-types
caml-help caml-emacs find-file compile jane-cr jane-align
jane-deprecated jane-smerge gnu-elpa-keyring-update jane-ocp-indent
ocp-indent cl jane-util page-ext dired-x magit-extras project
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 magit-repos magit-apply magit-wip magit-log which-func imenu
magit-diff smerge-mode diff diff-mode git-commit log-edit message
sendmail yank-media puny dired dired-loaddefs rfc822 mml mml-sec epa epg
rfc6068 epg-config gnus-util text-property-search 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 server magit-mode
transient edmacro kmacro magit-git magit-section magit-utils crm dash
cl-extra help-mode windmove org ob ob-tangle ob-ref ob-lob ob-table
ob-exp org-macro org-src ob-comint org-pcomplete pcomplete org-list
org-footnote org-faces org-entities time-date noutline outline icons
ob-emacs-lisp ob-core ob-eval org-cycle org-table ol rx org-fold
org-fold-core org-keys oc org-loaddefs find-func cal-menu calendar
cal-loaddefs org-version org-compat org-macs format-spec gdb-mi bindat
gud comint easy-mmode files-x derived ansi-osc ansi-color ring vundo
pcase cyberpunk-theme savehist saveplace project-autoloads
vundo-autoloads magit-autoloads xref-autoloads csv-mode-autoloads
magit-section-autoloads cyberpunk-theme-autoloads
url-http-ntlm-autoloads url-auth git-commit-autoloads
with-editor-autoloads finder-inf info dash-autoloads vc-hgcmd-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
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 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
dynamic-setting system-font-setting font-render-setting cairo x-toolkit
xinput2 x multi-tty make-network-process emacs)
Memory information:
((conses 16 777364 43859)
(symbols 48 47737 56)
(strings 32 171876 9815)
(string-bytes 1 5612215)
(vectors 16 95026)
(vector-slots 8 1172146 106982)
(floats 8 569 272)
(intervals 56 7572 0)
(buffers 976 41)
(heap 1024 68944 7941))
^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#63556: 29.0.90; Use of _Generic breaks Emacs build on GCC <4.9
2023-05-17 17:38 bug#63556: 29.0.90; Use of _Generic breaks Emacs build on GCC <4.9 Spencer Baugh
@ 2023-05-17 17:45 ` Eli Zaretskii
2023-05-17 17:57 ` Paul Eggert
1 sibling, 0 replies; 12+ messages in thread
From: Eli Zaretskii @ 2023-05-17 17:45 UTC (permalink / raw)
To: Spencer Baugh; +Cc: eggert, 63556
> Cc: Paul Eggert <eggert@cs.ucla.edu>
> From: Spencer Baugh <sbaugh@janestreet.com>
> Date: Wed, 17 May 2023 13:38:30 -0400
>
>
> Commit 0f5b1fcdf0be8c1b3084518f1c4f6f375828094b "Help GCC compute
> modiff_incr" added usage of _Generic, which breaks the build for me. I
> think it's because I'm on gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44),
> and _Generic was added in 4.9?
>
> If we want to drop support for 4.8 that is fine with me, I just figure
> this was unintentional.
I don't think we want to drop support for GCC 4.8, no.
^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#63556: 29.0.90; Use of _Generic breaks Emacs build on GCC <4.9
2023-05-17 17:38 bug#63556: 29.0.90; Use of _Generic breaks Emacs build on GCC <4.9 Spencer Baugh
2023-05-17 17:45 ` Eli Zaretskii
@ 2023-05-17 17:57 ` Paul Eggert
2023-05-18 11:11 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-18 20:32 ` Paul Eggert
1 sibling, 2 replies; 12+ messages in thread
From: Paul Eggert @ 2023-05-17 17:57 UTC (permalink / raw)
To: Spencer Baugh; +Cc: 63556
[-- Attachment #1: Type: text/plain, Size: 397 bytes --]
On 2023-05-17 10:38, Spencer Baugh wrote:
> I think it's because I'm on gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44),
> and _Generic was added in 4.9?
Thanks for reporting the problem. Since _Generic is used here merely as
a micro-optimization on 32-bit platforms, it's not worth whatever
porting hassle you've run into, so I installed the attached patch so
that modiff no longer uses _Generic.
[-- Attachment #2: 0001-Port-modiff-changes-to-GCC-4.8.5.patch --]
[-- Type: text/x-patch, Size: 1767 bytes --]
From 0bba1b8c3df8b7b53e08fd69dcc832d253e7a2d1 Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@cs.ucla.edu>
Date: Wed, 17 May 2023 10:53:26 -0700
Subject: [PATCH] Port modiff changes to GCC 4.8.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Problem reported by Spencer Baugh.
* src/lisp.h (elogb): Now simply a function on unsigned long long int.
This avoids problems porting to GCC 4.8.5 20150623 (Red Hat 4.8.5-44).
There may be a minor runtime cost on 32-bit platforms but it’s
not worth worrying about.
---
src/lisp.h | 17 +++++------------
1 file changed, 5 insertions(+), 12 deletions(-)
diff --git a/src/lisp.h b/src/lisp.h
index c9a64f07427..57c1c7395c1 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -3906,18 +3906,11 @@ integer_to_uintmax (Lisp_Object num, uintmax_t *n)
}
/* Return floor (log2 (N)) as an int, where 0 < N <= ULLONG_MAX. */
-#if (201112 <= __STDC_VERSION__ && INT_MAX <= UINT_MAX \
- && LONG_MAX <= ULONG_MAX && LLONG_MAX <= ULLONG_MAX)
-# define elogb(n) \
- _Generic (+(n), \
- int: UINT_WIDTH - 1 - count_leading_zeros (n), \
- unsigned int: UINT_WIDTH - 1 - count_leading_zeros (n), \
- long: ULONG_WIDTH - 1 - count_leading_zeros_l (n), \
- unsigned long: ULONG_WIDTH - 1 - count_leading_zeros_l (n), \
- default: ULLONG_WIDTH - 1 - count_leading_zeros_ll (n))
-#else
-# define elogb(n) (ULLONG_WIDTH - 1 - count_leading_zeros_ll (n))
-#endif
+INLINE int
+elogb (unsigned long long int n)
+{
+ return ULLONG_WIDTH - 1 - count_leading_zeros_ll (n);
+}
/* A modification count. These are wide enough, and incremented
rarely enough, so that they should never overflow a 60-bit counter
--
2.39.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* bug#63556: 29.0.90; Use of _Generic breaks Emacs build on GCC <4.9
2023-05-17 17:57 ` Paul Eggert
@ 2023-05-18 11:11 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-18 11:42 ` Eli Zaretskii
2023-05-18 14:40 ` Paul Eggert
2023-05-18 20:32 ` Paul Eggert
1 sibling, 2 replies; 12+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-05-18 11:11 UTC (permalink / raw)
To: Paul Eggert; +Cc: Spencer Baugh, 63556
Paul Eggert <eggert@cs.ucla.edu> writes:
> Thanks for reporting the problem. Since _Generic is used here merely
> as a micro-optimization on 32-bit platforms, it's not worth whatever
> porting hassle you've run into, so I installed the attached patch so
> that modiff no longer uses _Generic.
Would anyone mind if I made configure check for that?
Btw, couldn't the macro be defined to something along the lines of this
when the compiler only supports C99?
#define foo(expression) \
(sizeof (expression) == sizeof (signed char) \
? code_for_signed_char \
: (sizeof (expression) == sizeof (short int) \
? code_for_short_int \
: (sizeof (expression) == sizeof (int) \
? code_for_int \
... and so on
^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#63556: 29.0.90; Use of _Generic breaks Emacs build on GCC <4.9
2023-05-18 11:11 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-05-18 11:42 ` Eli Zaretskii
2023-05-18 13:21 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-18 14:40 ` Paul Eggert
1 sibling, 1 reply; 12+ messages in thread
From: Eli Zaretskii @ 2023-05-18 11:42 UTC (permalink / raw)
To: Po Lu; +Cc: sbaugh, eggert, 63556
> Cc: Spencer Baugh <sbaugh@janestreet.com>, 63556@debbugs.gnu.org
> Date: Thu, 18 May 2023 19:11:07 +0800
> From: Po Lu via "Bug reports for GNU Emacs,
> the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
>
> Paul Eggert <eggert@cs.ucla.edu> writes:
>
> > Thanks for reporting the problem. Since _Generic is used here merely
> > as a micro-optimization on 32-bit platforms, it's not worth whatever
> > porting hassle you've run into, so I installed the attached patch so
> > that modiff no longer uses _Generic.
>
> Would anyone mind if I made configure check for that?
Depends on how complex is that, and what problem does it solve.
> Btw, couldn't the macro be defined to something along the lines of this
> when the compiler only supports C99?
>
> #define foo(expression) \
> (sizeof (expression) == sizeof (signed char) \
> ? code_for_signed_char \
> : (sizeof (expression) == sizeof (short int) \
> ? code_for_short_int \
> : (sizeof (expression) == sizeof (int) \
> ? code_for_int \
> ... and so on
AFAIR, sizeof is a compile-time expression, the preprocessor cannot
evaluate it.
^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#63556: 29.0.90; Use of _Generic breaks Emacs build on GCC <4.9
2023-05-18 11:42 ` Eli Zaretskii
@ 2023-05-18 13:21 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-18 14:12 ` Eli Zaretskii
0 siblings, 1 reply; 12+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-05-18 13:21 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: sbaugh, eggert, 63556
Eli Zaretskii <eliz@gnu.org> writes:
> Depends on how complex is that, and what problem does it solve.
The problem of using `long long' on systems with less than 64
significant bits in their words. I don't think that's a particularly
good idea -- once such uses pile up, Emacs will gradually become slower
and slower on such systems.
>> Btw, couldn't the macro be defined to something along the lines of this
>> when the compiler only supports C99?
>>
>> #define foo(expression) \
>> (sizeof (expression) == sizeof (signed char) \
>> ? code_for_signed_char \
>> : (sizeof (expression) == sizeof (short int) \
>> ? code_for_short_int \
>> : (sizeof (expression) == sizeof (int) \
>> ? code_for_int \
>> ... and so on
>
> AFAIR, sizeof is a compile-time expression, the preprocessor cannot
> evaluate it.
It doesn't have to be evaluated by the preprocessor (and nor is
_Generic.) It just needs to expand to an expression that does the right
thing.
^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#63556: 29.0.90; Use of _Generic breaks Emacs build on GCC <4.9
2023-05-18 13:21 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-05-18 14:12 ` Eli Zaretskii
0 siblings, 0 replies; 12+ messages in thread
From: Eli Zaretskii @ 2023-05-18 14:12 UTC (permalink / raw)
To: Po Lu; +Cc: sbaugh, eggert, 63556
> From: Po Lu <luangruo@yahoo.com>
> Cc: eggert@cs.ucla.edu, sbaugh@janestreet.com, 63556@debbugs.gnu.org
> Date: Thu, 18 May 2023 21:21:51 +0800
>
> Eli Zaretskii <eliz@gnu.org> writes:
>
> > Depends on how complex is that, and what problem does it solve.
>
> The problem of using `long long' on systems with less than 64
> significant bits in their words. I don't think that's a particularly
> good idea -- once such uses pile up, Emacs will gradually become slower
> and slower on such systems.
What does this have to do with _Generic?
> >> #define foo(expression) \
> >> (sizeof (expression) == sizeof (signed char) \
> >> ? code_for_signed_char \
> >> : (sizeof (expression) == sizeof (short int) \
> >> ? code_for_short_int \
> >> : (sizeof (expression) == sizeof (int) \
> >> ? code_for_int \
> >> ... and so on
> >
> > AFAIR, sizeof is a compile-time expression, the preprocessor cannot
> > evaluate it.
>
> It doesn't have to be evaluated by the preprocessor (and nor is
> _Generic.) It just needs to expand to an expression that does the right
> thing.
And what is "the right thing" in this case?
I guess I don't understand what this has to do with _Generic.
^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#63556: 29.0.90; Use of _Generic breaks Emacs build on GCC <4.9
2023-05-18 11:11 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-18 11:42 ` Eli Zaretskii
@ 2023-05-18 14:40 ` Paul Eggert
2023-05-19 0:46 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
1 sibling, 1 reply; 12+ messages in thread
From: Paul Eggert @ 2023-05-18 14:40 UTC (permalink / raw)
To: Po Lu; +Cc: Spencer Baugh, 63556
On 5/18/23 04:11, Po Lu wrote:
> Would anyone mind if I made configure check for that?
There would be problems in doing that. GCC and Clang both have problems
with _Generic (suggested by this original bug report), and some of them
have to do with which warnings you've enabled. The configure-time check
would run without the warnings whereas the build would run with them.
This is partly why intprops-internal.h has given up on _Generic with GCC
and Clang; see its ifdefs. I assumed that these problems didn't apply to
their simple use in elogb, but apparently I assumed incorrectly.
> Btw, couldn't the macro be defined to something along the lines of this
> when the compiler only supports C99?
>
> #define foo(expression) \
> (sizeof (expression) == sizeof (signed char) \
That wouldn't work on unusual platforms that have padding bits. Of
course we could simply refuse to port to targets like that; still, I'd
be reluctant to do that just for this little issue.
> The problem of using `long long' on systems with less than 64
> significant bits in their words. I don't think that's a particularly
> good idea -- once such uses pile up, Emacs will gradually become slower
> and slower on such systems.
I couldn't measure the slowdown in this case. Until it's measurable I
wouldn't worry about it. To some extent I put in that _Generic
originally more as documentation than as an actual attempt to speed
things up.
^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#63556: 29.0.90; Use of _Generic breaks Emacs build on GCC <4.9
2023-05-17 17:57 ` Paul Eggert
2023-05-18 11:11 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-05-18 20:32 ` Paul Eggert
1 sibling, 0 replies; 12+ messages in thread
From: Paul Eggert @ 2023-05-18 20:32 UTC (permalink / raw)
To: Spencer Baugh; +Cc: 63556-done
Oh, I see I forgot to mark bug#63556 as fixed. Doing that now. For the
record, the fix is here:
https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=0bba1b8c3df8b7b53e08fd69dcc832d253e7a2d1
^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#63556: 29.0.90; Use of _Generic breaks Emacs build on GCC <4.9
2023-05-18 14:40 ` Paul Eggert
@ 2023-05-19 0:46 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-19 3:05 ` Paul Eggert
0 siblings, 1 reply; 12+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-05-19 0:46 UTC (permalink / raw)
To: Paul Eggert; +Cc: Spencer Baugh, 63556
Paul Eggert <eggert@cs.ucla.edu> writes:
> There would be problems in doing that. GCC and Clang both have
> problems with _Generic (suggested by this original bug report), and
> some of them have to do with which warnings you've enabled. The
> configure-time check would run without the warnings whereas the build
> would run with them.
>
> This is partly why intprops-internal.h has given up on _Generic with
> GCC and Clang; see its ifdefs. I assumed that these problems didn't
> apply to their simple use in elogb, but apparently I assumed
> incorrectly.
[...]
>> Btw, couldn't the macro be defined to something along the lines of this
>> when the compiler only supports C99?
>> #define foo(expression) \
>> (sizeof (expression) == sizeof (signed char) \
>
> That wouldn't work on unusual platforms that have padding bits. Of
> course we could simply refuse to port to targets like that; still, I'd
> be reluctant to do that just for this little issue.
How does intprops.h work on such systems?
> I couldn't measure the slowdown in this case. Until it's measurable I
> wouldn't worry about it. To some extent I put in that _Generic
> originally more as documentation than as an actual attempt to speed
> things up.
OK, but that's the second use of `long long' in src/ outside of
NT-specific files. I can't help but be a little skittish.
^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#63556: 29.0.90; Use of _Generic breaks Emacs build on GCC <4.9
2023-05-19 0:46 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-05-19 3:05 ` Paul Eggert
2023-05-19 3:18 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 1 reply; 12+ messages in thread
From: Paul Eggert @ 2023-05-19 3:05 UTC (permalink / raw)
To: Po Lu; +Cc: Spencer Baugh, 63556
On 5/18/23 17:46, Po Lu wrote:
> How does intprops.h work on such systems?
It relies on _Generic. (Those systems use neither GCC nor Clang.)
> OK, but that's the second use of `long long' in src/ outside of
> NT-specific files. I can't help but be a little skittish.
Fair enough, although I see more than just one other use: EMACS_INT
(32-bit platforms configured --with-wide-int), color_distance,
time_from_jiffies (in Linux), system_process_attributes (in Linux).
Currently there's a 'verify (PTRDIFF_MAX <= ULLONG_MAX);' protecting the
use of elogb in lisp.h. Would it help to add a 'verify (max
(-MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM) <= ULLONG_MAX);' to
protect its use in floatfns.c?
^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#63556: 29.0.90; Use of _Generic breaks Emacs build on GCC <4.9
2023-05-19 3:05 ` Paul Eggert
@ 2023-05-19 3:18 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 0 replies; 12+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-05-19 3:18 UTC (permalink / raw)
To: Paul Eggert; +Cc: Spencer Baugh, 63556
Paul Eggert <eggert@cs.ucla.edu> writes:
> On 5/18/23 17:46, Po Lu wrote:
>
>> How does intprops.h work on such systems?
>
> It relies on _Generic. (Those systems use neither GCC nor Clang.)
What about in C99 hosts?
> Fair enough, although I see more than just one other use: EMACS_INT
> (32-bit platforms configured --with-wide-int), color_distance,
`color_distance' is the first use I was referring to. And, so far,
`--with-wide-int' is optional.
> time_from_jiffies (in Linux), system_process_attributes (in Linux).
These seem to be system-specific.
> Currently there's a 'verify (PTRDIFF_MAX <= ULLONG_MAX);' protecting
> the use of elogb in lisp.h. Would it help to add a 'verify (max
> (-MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM) <= ULLONG_MAX);' to
> protect its use in floatfns.c?
Sure. But it would make me feel a lot better if we could get away
without using `long long' at all on 32-bit systems.
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2023-05-19 3:18 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-17 17:38 bug#63556: 29.0.90; Use of _Generic breaks Emacs build on GCC <4.9 Spencer Baugh
2023-05-17 17:45 ` Eli Zaretskii
2023-05-17 17:57 ` Paul Eggert
2023-05-18 11:11 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-18 11:42 ` Eli Zaretskii
2023-05-18 13:21 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-18 14:12 ` Eli Zaretskii
2023-05-18 14:40 ` Paul Eggert
2023-05-19 0:46 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-19 3:05 ` Paul Eggert
2023-05-19 3:18 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-18 20:32 ` Paul Eggert
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.