From http://sourceware.org/ml/libc-alpha/2012-05/msg00817.html This gets into the general issue of the two meanings, "64-bit ABI - long, off_t etc. are always 64-bit" (so various "long" and "long long" functions can be aliases, for example) and "64-bit is the native size for various operations, so use 64-bit types internally". Hitherto wordsize-64 has been the former (which implies the latter). We haven't really had a way to configure the latter in sysdeps directories, although you can make gmp-mparam.h use a 64-bit type for the GMP code (and that, and soft-fp, is the only way MIPS n32 really uses 64-bit internally in glibc). Like MIPS n32, x32 is a case of 64-bit registers but 32-bit ABI; logically we should maybe have separate sysdeps directories for this case, and if necessary an associated define separate from __WORDSIZE. Most of the dbl-64/wordsize-64 code is the "register size" case - except for lround / llround where the size of "long" comes into it.