Multiple architectures Variations CPU architectures vary in a number of ways that affect userland applications. Pointer Size Strict Alignment Byte order Page Size Sizeof long Stack growth direction Security technologies (W^X, StackGap StackGhost, Propolice) GCC versions It's even more critical for kernel code: cache behaviour, dma and interrupt handling, etc.