four things will affect general binary compatibility: CPU architecture and vendor initial options: i486-pc (generic IA-32 PCs) x86_64-pc (generic AMD64 or Intel 64 PCs) arm*-* (some ARM device) planned future options: mips*-* powerpc*-* kernel initial options: linux different hardware targets will be built with different configs planned future options: knetbsd system libraries initial options: eglibc portable C/C++ library: works with almost any kernel optimized for speed rather than for space (big and fast) planned future options: uclibc* different configurations of uClibc can be ABI-incompatible only works with Linux optimized for space rather than for speed (small and slow) example architecture string: x86_64-pc-linux-eglibc