
Hi,
These are not as portable as they could be. The idea is that they as portable as possible, and they are generated by directly testing code - generating a type and prodding sizeof it. The hope is that even a really broken setup can't lie about those sort of things :)
A C standard defines headers that have int8_t, uint8_t, int16_t, uint16_t, and so on. These types are guaranteed by the standard, no matter what sizes "short", "int", and so on are. Yes, but the reason we need to do these hacks is precisely because the standard is badly implemented. I think this these types are defined on Linux/glibc, rather than in standard C, but may well be wrong.
As for the rest of the things, I'm not really sure - I guess only Tom will know exactly why this was done the way it was - and might relate to Autoconf, and hence is a good reason to change it :) Thanks Neil