Handling of extern inline in c99 mode
Joseph S. Myers
joseph@codesourcery.com
Wed Nov 1 22:56:00 GMT 2006
On Wed, 1 Nov 2006, Ian Lance Taylor wrote:
> According to the proposal, we will restore the GNU handling for
> "extern inline" even when using -std=c99, which will fix the problem
> when using glibc.
We definitely need to revert that until the fixincludes changes are
available. (The precise nature of the fix - whether we disable the
inlines, change them to be C99-aware or add an attribute to give yet
another form of inline function in gnu99 mode that mimics gnu89 extern
inline - is less important.)
> (Then we will break it again in gcc 4.4, but by then we can hope that
> glibc will be fixed, and we can force people who want to use -std=c99
> or -std=gnu99 on GNU/Linux to upgrade to a newer glibc.)
libgfortran uses -std=gnu99 and so default bootstrap is currently broken
on GNU/Linux. Thus, I hereby propose starting the 48 hour reversion
timer. (Only enough of the behavior needs reverting to fix bootstrap, not
the whole patch, but the whole patch might need to be if there isn't a
smaller fix available. A first attempted fix did not fix bootstrap
<http://gcc.gnu.org/ml/gcc-patches/2006-11/msg00019.html>.)
Given this use of -std=gnu99 in GCC I don't think "upgrade to a newer
glibc" will suffice - we will need the fixincludes changes for all the
problematic headers installed by glibc 2.3 or later, and I expect such
fixes will need to stay around for at least the next five years. Of
course those wishing to *build* glibc with new inline rules will need to
use glibc 2.6 or later.
Once we have the fixincludes fixes, I don't think we need to wait for 4.4
to switch the default in gnu99 mode back to C99 inline semantics, as long
as we have those fixes during Stage 1. However long we wait, a lot of
code will simply not be fixed until -std=gnu99 becomes the default (and
accordingly that change will break a lot of code, and so should be done in
a future Stage 1).
--
Joseph S. Myers
joseph@codesourcery.com
More information about the Gcc
mailing list