Bug 36500 - gcc ICEs when being passed -mfpu=neon
gcc ICEs when being passed -mfpu=neon
Status: RESOLVED FIXED
Product: gcc
Classification: Unclassified
Component: target
4.3.1
: P3 blocker
: 4.3.2
Assigned To: Not yet assigned to anyone
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2008-06-11 18:43 UTC by Koen Kooi
Modified: 2008-06-11 23:43 UTC (History)
1 user (show)

See Also:
Host: i686-linux
Target: arm-linux-gnueabi
Build: i686-linux
Known to work:
Known to fail:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Koen Kooi 2008-06-11 18:43:57 UTC
When crosscompiling for OMAP3 gcc will ICE if you use -mfpu=neon

No ICE: -march=armv7-a -mtune=cortex-a8 -mfpu=vfp -mfloat-abi=softfp
ICE: -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp

Testcase:
koen@lieve:/OE/angstrom-tmp/work$ cat helloworld.c 
#include <stdio.h>
int main(void)
{
        printf("Hello world!\n");       while(1);
        return 0;
}
koen@lieve:/OE/angstrom-tmp/work$ arm-angstrom-linux-gnueabi-gcc-4.3.1 helloworld.c -o helloworld -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp
helloworld.c:1: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.

Replace it with -mfpu=vfp:
koen@lieve:/OE/angstrom-tmp/work$ arm-angstrom-linux-gnueabi-gcc-4.3.1 helloworld.c -o helloworld -march=armv7-a -mtune=cortex-a8 -mfpu=vfp -mfloat-abi=softfp
koen@lieve:/OE/angstrom-tmp/work$ file helloworld
helloworld: ELF 32-bit LSB executable, ARM, version 1 (SYSV), for GNU/Linux 2.6.14, dynamically linked (uses shared libs), not stripped
Comment 1 Koen Kooi 2008-06-11 18:53:06 UTC
marking it as blocker, since NEON can't be used
Comment 2 Joseph S. Myers 2008-06-11 19:54:15 UTC
Already fixed by my patches r136660 on trunk, r136661 on 4.3 branch.
Comment 3 Koen Kooi 2008-06-11 21:44:29 UTC
And indeed that patch fixes it!