This is the mail archive of the
mailing list for the GCC project.
Re: fixincludes for glibc 'inline' non-C99 conformance
On Nov 3, 2006, at 6:55 PM, Mark Mitchell wrote:
I understand your frustration, but this is something that happens
to all of us who work on GCC. It's annoying, but it's not
necessarily avoidable. People don't -- and probably can't --
realize the impact of patches like this until they are checked in
and things stop working.
I'd still like to hear from other people about what they think the
right path forward is.
The problem with a switch is then people cannot just check the
compiler version number and do the right thing because then they have
to factor in the setting of the switch for it to work, so, if a
switch is added, then we'll also need a define for it. Also, the
existence of the switch gives them yet another mode in which they
have to test and increases the likely hood they'll get it wrong.
I think that if we put a warning into all release branches now, that
we'll have more than a year of warning before gcc 4.3 is released, by
that time, hopefully, most important projects will have had an
opportunity to update.
If it were put into the 4.2 branch, I can understand the request to
back it out, but not from a stage 1 mainline. The issue is that
_all_ of the problems were known about 8 years ago, there aren't any
new ones I've seen. I think asking for it to be backed out of
mainline is silly. If someone wants a switch, someone will
contribute a switch. We have more than 18 months to develop the 5
lines of code for the switch, I'm confident that is enough time to
come up with the 5 lines of code. There just isn't any way around
the hurt. A switch isn't really going to help with the hurt. What
will help, is if all projects fix their code, if they do that, no
hurt, if they don't do that, hurt. They won't start to address that,
until there is hurt, so the situation has been rigged from the start,
there is gonna be hurt.
Now, I'd propose that we table the idea of backing it out now, and
let the world end, let people contribute to a wiki all the projects
that fail to build with the changed semantics and solicit fixincludes
for the projects that have installed headers. Let's encourage people
to file bug reports against those projects and link those reports
onto our wiki and see how they come along in the next year. After we
create the 4.3 release branch, I'd propose that we then make the
decision to flip the switch default (or back the patch out, if there
is no switch by then) for the release branch only, leaving mainline
as it is.
While I see the harm in not having gcc bootstrap for a year or two on
linux, that is reason enough to back it out, I don't see the harm if
gcc can't recompile the entire world immediately.