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
[EMAIL PROTECTED]

Reply via email to