This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

-fkeep-inline-functions and broken Cygwin bootstrap (was: Building GCC 4.3.0 on Cygwin...)


Dave Korn wrote:

> # 405 "/usr/include/stdio.h" 3 4

[ Which is from newlib (libc/include/stdio.h) if anyone reading this
doesn't have a Cygwin system handy. ]

> static __inline__ int __sgetc_r(struct _reent *__ptr, FILE *__p)
>   {
> [...]
>
>   The critical difference is the presence or absence of
> -fkeep-inline-functions.  I think I remember there being some change between
> gcc-3.x and gcc-4.x in inline handling and I think that's what's biting us
> now; I think this may only arise in stage1 where we're trying to use 3.x to
> compile 4.x.

I too thought that this was related to the c99 inline changes, but I
think those only apply to "extern inline" which is not the case here.

The real cause seems to be that -fkeep-inline-functions was a no-op up
until: <http://gcc.gnu.org/ml/gcc-patches/2007-02/msg01396.html>, which
seems to roughly correspond to when bootstrap stopped working on Cygwin.

So it looks like we need to either stop using -fkeep-inline-functions
for this file, change the definition to extern inline (or extern inline
plus __attribute__((gnu_inline))?  I'm still a little confused there),
or link against -lcygwin.  I kind of think the latter sounds wrong,
since there really is no reason that these unused function bodies should
end up in the .o file simply because it happens to have #include
<stdio.h> at the top.

Brian


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]