From: Earnie B. <ea...@us...> - 2003-09-22 11:07:54
|
Danny Smith wrote: > The use of the "extern inline" GNU extension in mingw runtime is > getting me into trouble with GCC's new -funit-at-a-time when compiling > multiple files at once into a single output file, resulting in multiple > definition errors when different input files include a header like > math.h with extern inlined functions. This may be a bug > in -funit-at-a-time that will eventually get fixed. But a similar > problem will occur again when GCC enforces C99 semantics (inline if > possible, but also emit an extern symbol) for the 'extern inline' syntax > with -std=c99. > > I propose changing all to externs to static inline in headers for C, > using a macro like > > #ifdef __cplusplus > #define __CRT_INLINE inline > #else > #define __CRT_INLINE static __inline__ > #endif > > Also, I wll probably need to add more guards that hide the inlines > completely. > I'll agree. > The extern symbols for these inlines will still need to be maintained in > libmingwex.a, > since some libraries (built without optimization) may still be > referenceing these as externs. > Should we think about versionizing the file name? > Any comments. > Should we think about mingwex.dll? Earnie. -- http://www.mingw.org |