Problems building with extern inline functions in winebase.h

John Alvord jalvo at mbay.net
Fri Aug 17 09:56:19 CDT 2001


On Fri, 17 Aug 2001, Mike Bond wrote:

> On Thu, Aug 16, 2001 at 10:37:39AM -0700, Alexandre Julliard wrote:
> > This patch should fix the build failure, though it doesn't explain why
> > gcc doesn't inline such a simple function.
> 
> This indeed allow me to build. My guess is that gcc-2.96 won't inline
> anything in a debug build. The suggestion about 'static inline' instead
> of 'extern inline' worked right up until it got to the file that actually
> implemented the various functions in question, at which point the
> compiler complained about the two definitions not matching, one being
> static the other not. My guess as to why the 'static inline' would work
> is that while it would still not actually inline it in a debug build,
> it is providing a static implementation to each file that includes
> winbase.h. This is horrible bloat for debug builds as many files that
> do not need it will get those functions anyway. It would still be nice
> if there could be a way to inline those various functions in a more
> generic way so anything built against winelib outside of the scheduler
> could take advantage of the inlining, but I really don't see, the way
> inline is being interpreted in 2.96, that this could be done.

Linux itself just went through a transformation of extern inline into
static inline. It was triggered by a change in gcc, presumably for the
better. There was some on-list grumbling, but the change was necessary.

john





More information about the wine-devel mailing list