[Mono-dev] Failed assertion on ARM11 after compiling with -DARM_FPU_VFP

Bill Agee billagee at gmail.com
Sat Jun 25 21:15:38 EDT 2011


Hi all,

I'm seeing an odd mono crash after cross compiling mono for a Cavium Econa
CNS3420 (a dual-core ARM11).

I'm using the mono-2.10.2 tarball.

The CNS3420 appears to support VFP, but when I compile Mono with these
CFLAGS:

  CFLAGS="-DARM_FPU_VFP -O3 -march=armv6k -mcpu=mpcore -mfloat-abi=softfp
-mfpu=vfp"

...I frequently see a crash in mono when running on my target machine.

The .NET stacktrace varies, but the native stacktrace and error is always
this failed assertion:

====
wrong maximal instruction length of instruction r4const (expected 20, got
24)
* Assertion: should not be reached at mini-arm.c:4658

Native stacktrace:

        mono() [0xa6928]
        /lib/libc.so.6(__default_rt_sa_restorer_v2+0) [0x3575d660]
        /lib/libc.so.6(gsignal+0x40) [0x3575c2fc]
        /lib/libc.so.6(abort+0x1b0) [0x35761b14]
        mono() [0x1ed810]
        mono() [0x1ed854]
        mono() [0xd8e10]
        mono() [0x1c494]
        mono() [0x2166c]
        mono() [0x22b74]
        mono() [0x2342c]
        mono(mono_compile_method+0x18) [0x1a4560]
        mono() [0xaab50]
        mono() [0xab6c4]


Aborted
====

The problem goes away if I compile with -DARM_FPU_NONE instead of
-DARM_FPU_VFP:

  CFLAGS="-DARM_FPU_NONE -O3 -march=armv6k -mcpu=mpcore -mfloat-abi=softfp
-mfpu=vfp"


Does anyone have any idea what the issue might be?

Here's the full build command from my makefile:

       
CC=/usr/local/cavium/cns3xxx-sdk/tools/glibc64k/bin/arm-none-linux-gnueabi-gcc
\
         
CXX=/usr/local/cavium/cns3xxx-sdk/tools/glibc64k/bin/arm-none-linux-gnueabi-g++
\
          CFLAGS="-DARM_FPU_VFP -O3 -march=armv6k -mcpu=mpcore
-mfloat-abi=softfp -mfpu=vfp" \
          ./configure \
          --prefix=/foo \
          --disable-mcs-build \
          --with-profile4=no \
          --with-moonlight=no \
          --host=arm-none-linux-gnueabi \
          --with-tls=pthread \
          --with-sigaltstack=no \
          mono_cv_uscore=${mono_cv_uscore=no} && \
        make


Thanks in advance for any hints/pointers!


--
View this message in context: http://mono.1490590.n4.nabble.com/Failed-assertion-on-ARM11-after-compiling-with-DARM-FPU-VFP-tp3625317p3625317.html
Sent from the Mono - Dev mailing list archive at Nabble.com.


More information about the Mono-devel-list mailing list