Evil(took my sunday afternoon to figure why,sniff) macro defined at _mingw.h and used at io.h was causing the undefined link symbol __findfirst and __findnext at libmingwex.a using #__MSVCRT_VERSION__ >= 0x0800 for msvcr100.dll.

# ifdef __GNUC__
#  define _CRTALIAS __CRT_INLINE __attribute__ ((__always_inline__))
# else
# endif

and used at io.h 

#if __MSVCRT_VERSION__ >= 0x0800
#ifndef _USE_32BIT_TIME_T
_CRTIMP intptr_t __cdecl __MINGW_NOTHROW _findfirst (const char* _v1, struct _finddata_t* _v2) { return(_findfirst64i32 (_v1,(struct _finddata64i32_t*)_v2)); }
_CRTIMP int __cdecl __MINGW_NOTHROW _findnext (intptr_t _v1, struct _finddata_t* _v2) { return(_findnext64i32  (_v1,(struct _finddata64i32_t*)_v2)); }

just replaced the _CRTALIAS to _CRTIMP as above and GCC got happy.

Unfortunely now during application run windows popus missing _stat symbol at msvcr100.dll.
Any hints on this?

Should this changes be reported as a feature request to be updatedb on headers?
Also the io.h has some spaghetti( not native speaker ) #if checks.
Also those doubled code also defined wchar.h. Would be clear to write an aux header file and include on both io.h and wchar.h .