[Redirecting to [email protected].]
Tijl Coosemans wrote:
> Autoconf 2.73 is more problematic. They've changed AC_PROG_CC to enable
> C23 mode if the compiler supports it, but old code doesn't magically
> become C23 compatible of course. IMHO they should leave old macros
> alone and introduce AC_PROG_C23 or something.
Things depend on the degree of compatibility of a language version and its
previous version.
For C, ISO C 23 is mostly compatible to the previous ISO C 17. We have been
testing the AC_PROG_CC that enables C23 mode automatically for more than a
year before releasing it in Autoconf 2.73 (in Gnulib: since 2024-11-17),
and encountered issues only in two areas:
- function pointer types with no parameters (() was equivalent to (...)
before C23),
- the 'register' keyword.
In the FreeBSD ports, it appears that only 7 out of ca. 35000 packages are
affected by this change [1]. Which I would consider as a very small amount of
breakage.
For C++, on the other hand, the incompabilities from C++17 to C++20 are
large enough that AC_PROG_CXX does *not* attempt to force C++20 on every
package's compilation.
Bruno
[1]
https://cgit.freebsd.org/ports/commit/?id=4c463df3afd4e57a851c625e87fd729179785c79