Hi, On Windows if DLLL_EXPORT was declared objc_EXPORT was defined to an empty string. This is wrong as that would produce common symbols in the headers; except now -fno-common is the default. So setting the define to extern is the correct fix and removes the dependency on having common symbols being in use.
Committed after the bug reported tested the patch for me. Thanks, Andrew Pinski ChangeLog: * objc/objc-decls.h (objc_EXPORT): Define it to extern for DLL_EXPORT define case.