On Tue, Oct 25, 2022 at 10:05:52AM -0400, Ben Cotton wrote:
Neither change is trivial to implement because introducing errors
for
these constructs (as required by C99) alters the result of autoconf
configure checks. Quite a few such checks use an implicitly declared
`exit` function, for instance. These failures are not really related
to the feature under test. If the build system is well written, the
build still succeeds, the relevant features are automatically disabled
in the test suite and removed from reference ABI lists, and it's not
immediately apparent that feature is gone. Therefore, some care is
needed that no such alterations happen, and packages need to be ported
to C99. Various tools for this porting activity are being developed to
support this proposal. Cross-distribution collaboration will help as
well, sharing patches and insights.
Would it help if we made autoreconf (and the equivalent step for other
build systems) mandatory? Debian has declared this as "good practice"
since forever[0].
It would mean we could fix any problems in current autoconf
concurrently with the changes to GCC and Fedora.
==== Removal of old-style function definitions ====
An old style function definition looks like this:
int
sum (a, b)
char *a;
int b;
{
return atoi (a) + b;
}
<sad-face>
I preferred it when C was like this .. The first real paying job I
had used a compiler[1] that only supported K&R C decls.
Rich.
[0]
https://wiki.debian.org/Autoreconf
[1] Microware C Compiler for OS-9
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
Read my programming and virtualization blog:
http://rwmj.wordpress.com
virt-p2v converts physical machines to virtual machines. Boot with a
live CD or over the network (PXE) and turn machines into KVM guests.
http://libguestfs.org/virt-v2v