According to Apple's gcc 4.2.1 doc:
-arch arch
Compile for the specified target architecture arch. The allowable values are 'i386', 'x86_64', 'ppc' and 'ppc64'. Multiple options work, and direct the compiler to produce “universal” binaries including object code for each architecture specified with -arch. This option only works if assembler and libraries are available for each architecture specified. (APPLE ONLY)
So what's the difference between these two calls:
gcc -arch i386 program.c
and
gcc -m32 program.c
Is it just that -arch is more powerful as it's more flexible and can produce universal binaries when specifiying multiple archs?