Description of problem: i386-redhat-linux-gcc32 feeds its 32-bit output to 64-bit gas. This fails as soon as it gets to `pushl %ebp' (i.e. very quickly). Version-Release number of selected component (if applicable): compat-gcc-32-3.2.3-47.fc4 How reproducible: always Steps to Reproduce: 1. echo 'int main() { return 0; }' > foo.c 2. i386-redhat-linux-gcc32 foo.c Actual results: /tmp/ccEN4RhT.s: Assembler messages: /tmp/ccEN4RhT.s:6: Error: suffix or operands invalid for `push' Expected results: No errors and a 32-bit a.out. Additional info: Line 6 is the first instruction, `pushl %ebp'. Fails the same way with `i386-redhat-linux-gcc32 -m32' Works with `gcc32 -m32'.
/usr/bin/g++32 fails similarly. gcc32 is an x86_64 compiler, while g++32 is an i386 compiler.
That is a bug in the x86-64/ppc comps. compat-gcc-*.i386.rpm must not be included on x86-64, similarly compat-gcc-*.ppc64.rpm must not be included on ppc. Only compat-[^g]*.i386.rpm (resp. compat-[^g]*.ppc64.rpm) are meant to be installed in addition to compat-[^g]*.x86_64.rpm (resp. *.ppc.rpm).
I'm removing compat-gcc-* from the compat-arch-development group.