http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42293
Nicola Pero <nicola at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |nicola at gcc dot gnu.org --- Comment #7 from Nicola Pero <nicola at gcc dot gnu.org> 2010-11-22 17:55:12 UTC --- libobjc now defines #define __GNU_LIBOBJC__ 20100911 in objc/objc.h, so I guess you could use #if !defined(__OBJC__) && !defined(__GNU_LIBOBJC__) && !defined(__objc_INCLUDE_GNU) #define BOOL WINBOOL #endif in the mingw headers ... which should hopefully cover all cases ? __OBJC__ should catch when Objective-C is being used; __GNU_LIBOBJC__ should catch when (a recent) libobjc is being used, and __objc_INCLUDE_GNU should catch when an old libobjc is being used. -- Having said that, the trick of #defining __OBJC__ before including gc.h is fine with me if it fixes the problem in another way ... if clear, descriptive comments are added, it seems that the attached patch (assuming it works) is a decent workaround. :-) Thanks