Re: F40 proposal: Porting Fedora to Modern C (System-Wide Change proposal)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Oct 26, 2022 at 07:06:43AM +0000, Zbigniew Jędrzejewski-Szmek wrote:
> > == User Experience ==
> > User experience does not change.
> 
> "The new default for C standard is -c99. Users who want to use
> an older standard need to specify something like -c89." (???)

It is -std=c89/-std=gnu89 actually.

> > == Dependencies ==
> > To avoid regressing the porting effort, GCC as the system compiler
> > needs to reject obsolete constructs by default. This is expected for
> > GCC 14, to be released as part of Fedora 40 in Spring 2024.
> > 
> > == Contingency Plan ==
> > * Contingency mechanism: Upstream GCC will probably accept obsolete
> > constructs longer in case distributions like Fedora cannot port to
> > modern C in time.
> 
> Hmm, this sounds ominous, like if GCC might stop accepting old C syntax
> altogether. Isn't this just a question of specifying the right standard
> in compilation options?

GCC hasn't changed anything yet, the obsolete constructs are accepted
for decades with warnings, some of them in -Wall, others in -Wextra.
The goal of Florian's work is to determine if it is feasible to reject them
in -std={c,gnu}{9x,99,1x,11,17,18,2x} modes by default in GCC 14.

Examples of the obsolescent syntax:

qux ();		// implicit int, + () args
int baz (a, b)	// old style function definition
  a, b;		// even implicit int here
{
}

foo ()		// implicit int, + () args
{
  bar (1, 2);	// implicitly declared
  baz (1, 2);
}

a;		// implicit int

-Werror=implicit -Werror=implicit-function-declaration -Werror=old-style-definition
will reject these even now.  Though, I think -Wold-style-definition warns
even about the no argument case which in C2X is the same as in C++ - ()
being equivalent to (void).

> > == Documentation ==
> > This section will be updated once more documentation of the porting
> > effort will become available.
> > 
> > == Release Notes ==
> > Probably not needed because no user visible impact is intended.
> 
> It's not clear from the description: what about users who compile programs?

It would be GCC that rejects those by default, so it would affect users
compiling programs as well.

	Jakub
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux