I wrote:
> This is standard practice for gcc: it tries to use "cleaned up" versions
> of system headers that will not elicit useless warnings from gcc. It's
> a good idea, actually, because the degree of insanity in vendor-supplied
> system headers is pretty depressing. But if the gcc install process
> generated an invalid "cleanup" file then you need to take that up with
> the gcc boys, not us.
On rereading this, a nearly-dead neuron fired --- I have seen problems
of this sort arise when someone took a gcc installation generated on
NiftyVendorUnix M.N and copied it verbatim to NiftyVendorUnix M.N+1,
or indeed any release other than M.N. Then you have a situation where
gcc is inserting cleaned-up versions of some system headers but not
others (because it doesn't force the issue when it doesn't have to),
and if the vendor did something like move a typedef from one header
to another, you lose, because the cleaned-up headers are not in sync
with the others.
In short ... where'd you get your gcc installation from?
regards, tom lane