------- Additional Comments From rearnsha at gcc dot gnu dot org 2004-11-23 10:57 ------- I agree that this is a bug, and I think it's been fixed now for gcc-4.x, but I'm not going to attempt to back-port the fix to the branch, given the possible work-around outlined below.
The reason for the 'bug' is that the ep9312 hardware floating point unit has a different floating point layout from that used by Linux, and the -mcpu=ep9312 flag is changing the ABI to match the hardware (that's incorrect, -mcpu flags must not change the ABI). WORKAROUND: The ep9312 is based on the ARM9 core, so you can get best 'integer' code by using -mcpu=arm9. If you want good floating point performance you will have to do a lot more work: this will involve porting both the compiler and glibc (plus some applications that are ARM floating-point aware) to use the ep9312. You will likely encounter many more bugs on the way at this stage, so I recommend you don't attempt this yet (there is work underway to produce a new ABI for ARM linux that will make support for the ep9312 much easier). -- What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |WONTFIX http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18620