in reply to h2xs wierdness... what the????

This error has due to a bug in the Compiler's parser. It has been know for a few years now. Consider the following:
1) int *__restrict n; 2) fd_set *__restrict m;
The first one will be compiled ok, but the second one will fail. Because when compiler sees fd_set, it takes it as a data type, and then it assumes the next one would be the variable name, which in this case is the __restrict key word.

I suspect this problem has been subsequently fixed in the gcc compiler, however the C compiler used by perl might be a lite-weight (and perhaps older) version of gcc, which might still exhibit incorrect behaviour on __restrict.