------- Comment #12 from dje at gcc dot gnu dot org 2006-05-18 15:56 ------- Users are suppose to control the architecture and code generation through -mcpu=XXX, which sets the architecture options in self-consistent ways for the target. On Darwin, -mcpu=G5 sets -mpowerpc64; on Linux, -mpowerpc64 specifically is disabled for -mcpu=G5. 64-bit Darwin kernel always performs 64-bit context switch and apparently 64-bit Linux kernel does not.
This all is controlled by the OS_MISSING_POWERPC64 macro. The macro is defined for AIX and Linux and PPC64 Linux tests TARGET_64BIT on PPC64 Linux, i.e., it only works for -m64 on PPC64 Linux. If you want to add an error, follow the example from SUBTARGET_OVERRIDE_OPTIONS in aix52.h: if (TARGET_POWERPC64 && ! TARGET_64BIT) \ { \ error ("-maix64 required: 64-bit computation with 32-bit addressing not yet supported"); \ } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27619