Yes, it is stupid.
And you didn't actually ask a question, so I don't know how you expect a yes/no answer to it.
There is AFAIK nothing wrong with gcc32 c++. Glancing at your errors, I would guess that something included <linux/blah> when it should not have? If you can't figure it out, perhaps add -fsave-temps and look at the cpp output file (.ii) to get a clue what's wrong.