So while mixing and matching GCC on Windows, I ran into this issue with stdio.h of all things:
In file included from hi.c:1:0:
\mingw\include/stdio.h:191:65: error: unknown type name ‘size_t’
_CRTIMP int __cdecl __MINGW_NOTHROW setvbuf (FILE*, char*, int, size_t);
Good grief how could stdio be all screwed up?
Well, it turns out it was my fault. I had not rebuilt things like SDL, or copied over pcap so I figured I could incorrectly just point a -I to my old includes, and the new gcc would post-pend all use -I stuff. NOPE it pre-pends them, meaning the old headers now take priority. And wouldn’t you know it, things have drifted between versions. So I just manually copied the files and libraries and all was well.
Googling around I did see other people with broken stdio.h but nobody posted the solution. I guess it’s to embarrassing, but here we are.