[Mono-dev] cross compiling mono in OE for ARM

Cliff Brake cliff.brake at gmail.com
Tue Jul 10 17:21:53 EDT 2007


On 7/10/07, Paolo Molaro <lupus at ximian.com> wrote:
> On 07/10/07 Cliff Brake wrote:
> > > I think openmoko currently uses oabi (I'm not currently build for
>
> Uhm, from
> http://lists.openmoko.org/pipermail/community/2006-November/000079.html:
> it seems like they use softfloat, but with the old ABI.
> Mono has been tested on the hard-float old ABI and on the softfloat
> eabi.
> So if you compile for the old abi, hw FPA instructions are used by the
> jit and they may not have the kernel emulation enables, so you get the
> SIGILL.
> You may want to force the
> #define MONO_ARCH_SOFT_FLOAT 1
> at the start of mini/mini-arm.h, even for the ARM_FPU_FPA case.
>
> No guarantee that will work, but if you're lucky it may and it is in the
> right direction of things if they really still use the softfloat old
> abi (which in 2007 is a bit silly...) instead of eabi.

Agreed.

Well here is the configure results with my EABI toolchain -- does this
look correct?

configure:40078: checking which FPU to use
configure:40104: arm-angstrom-linux-gnueabi-gcc -march=armv5te
-mtune=xscale -c
-isystem/build/radiant/rep3/oe/compulab-pxa270/tmp/staging/arm-angstrom-linux-gnueabi/include
-fexpensive-optimizations -fomit-frame-pointer -frename-registers -Os
-fno-strict-aliasing -Wdeclaration-after-statement -g -Wall -Wunused
-Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes
-Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wno-cast-qual
-Wcast-align -Wwrite-strings
-isystem/build/radiant/rep3/oe/compulab-pxa270/tmp/staging/arm-angstrom-linux-gnueabi/include
-DGC_LINUX_THREADS -D_GNU_SOURCE -D_REENTRANT -DUSE_MMAP -DUSE_MUNMAP
conftest.c >&5
conftest.c:142: warning: function declaration isn't a prototype
/tmp/ccCGEzFj.s: Assembler messages:
/tmp/ccCGEzFj.s:23: Error: selected processor does not support `ldfd f0,[r0]'
configure:40110: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE "mono"
| #define VERSION "1.2.4"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define HAVE_NETDB_H 1
| #define HAVE_UTIME_H 1
| #define HAVE_SEMAPHORE_H 1
| #define HAVE_SYS_UN_H 1
| #define HAVE_LINUX_RTC_H 1
| #define HAVE_SYS_SYSCALL_H 1
| #define HAVE_ZLIB 1
| #define HAVE_ELF_H 1
| #define HAVE_POLL_H 1
| #define HAVE_SYS_POLL_H 1
| #define HAVE_SYS_WAIT_H 1
| #define HAVE_GRP_H 1
| #define HAVE_SYSLOG_H 1
| #define HAVE_WCHAR_H 1
| #define HAVE_ISINF 1
| #define SIZEOF_VOID_P 4
| #define MONO_XEN_OPT 1
| #define DISABLED_FEATURES "none"
| #define HAVE_BOEHM_GC 1
| #define HAVE_GC_H 1
| #define USE_INCLUDED_LIBGC 1
| #define HAVE_GC_GCJ_MALLOC 1
| #define HAVE_GC_ENABLE 1
| #define USED_GC_NAME "Included Boehm (with typed GC)"
| #define HAVE_DL_LOADER 1
| #define HAVE_EXECINFO_H 1
| #define HAVE_GETGRGID_R 1
| #define HAVE_GETGRNAM_R 1
| #define HAVE_GETPWNAM_R 1
| #define HAVE_GETPWUID_R 1
| #define HAVE_GETRESUID 1
| #define HAVE_SETRESUID 1
| #define HAVE_BACKTRACE_SYMBOLS 1
| #define HAVE_MKSTEMP 1
| #define HAVE_MMAP 1
| #define HAVE_MADVISE 1
| #define HAVE_MSG_NOSIGNAL 1
| #define HAVE_SOL_IP 1
| #define HAVE_SOL_IPV6 1
| #define HAVE_IP_PKTINFO 1
| #define HAVE_IPV6_PKTINFO 1
| #define HAVE_IP_MTU_DISCOVER 1
| #define HAVE_STRUCT_IP_MREQN 1
| #define HAVE_GETHOSTBYNAME2_R 1
| #define HAVE_INET_PTON 1
| #define HAVE_INET_ATON 1
| #define MONO_SIZEOF_SUNPATH 0
| #define MONO_ZERO_ARRAY_LENGTH 0
| #define HAVE_PTHREAD_H 1
| #define HAVE_PTHREAD_MUTEX_TIMEDLOCK 1
| #define HAVE_PTHREAD_GETATTR_NP 1
| #define HAVE_PTHREAD_ATTR_SETSTACKSIZE 1
| #define HAVE_PTHREAD_ATTR_GETSTACK 1
| #define HAVE_TM_GMTOFF 1
| #define HAVE_FINITE 1
| #define HAVE_ISFINITE 1
| #define HAVE_POLL 1
| #define HAVE_SIGNBIT 1
| #define HAVE_SYS_EPOLL_H 1
| #define HAVE_EPOLL_CTL 1
| #define HAVE_EPOLL 1
| #define HAVE_SYS_IOCTL_H 1
| #define HAVE_NET_IF_H 1
| #define HAVE_SIOCGIFCONF 1
| #define HAVE_FSTAB_H 1
| #define HAVE_SYS_SENDFILE_H 1
| #define HAVE_SYS_STATVFS_H 1
| #define HAVE_SYS_XATTR_H 1
| #define HAVE_SYS_MMAN_H 1
| #define HAVE_GETDOMAINNAME 1
| #define HAVE_SETDOMAINNAME 1
| #define HAVE_FGETGRENT 1
| #define HAVE_FGETPWENT 1
| #define HAVE_FGETPWENT 1
| #define HAVE_LUTIMES 1
| #define HAVE_MREMAP 1
| #define HAVE_REMAP_FILE_PAGES 1
| #define HAVE_POSIX_FADVISE 1
| #define HAVE_POSIX_FALLOCATE 1
| #define HAVE_POSIX_MADVISE 1
| #define HAVE_VSNPRINTF 1
| #define HAVE_SENDFILE 1
| #define HAVE_SETHOSTID 1
| #define HAVE_STATFS 1
| #define HAVE_FSTATFS 1
| #define HAVE_STATVFS 1
| #define HAVE_FSTATVFS 1
| #define HAVE_STIME 1
| #define HAVE_STRERROR_R 1
| #define HAVE_TTYNAME_R 1
| #define SIZEOF_SIZE_T 4
| #define HAVE_BLKSIZE_T 1
| #define HAVE_BLKSIZE_T 1
| #define HAVE_BLKCNT_T 1
| #define HAVE_BLKCNT_T 1
| #define HAVE_SUSECONDS_T 1
| #define HAVE_SUSECONDS_T 1
| #define HAVE_STRUCT_POLLFD 1
| #define HAVE_STRUCT_POLLFD 1
| #define HAVE_STRUCT_STAT 1
| #define HAVE_STRUCT_STAT 1
| #define HAVE_STRUCT_TIMEVAL 1
| #define HAVE_STRUCT_TIMEVAL 1
| #define HAVE_STRUCT_TIMEZONE 1
| #define HAVE_STRUCT_TIMEZONE 1
| #define HAVE_STRUCT_DIRENT_D_OFF 1
| #define HAVE_STRUCT_DIRENT_D_RECLEN 1
| #define HAVE_STRUCT_DIRENT_D_TYPE 1
| #define HAVE_CURSES_H 1
| #define HAVE_TERM_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_GETPROCESSID 1
| #define HAVE_SOCKLEN_T 1
| #define HAVE_ARRAY_ELEM_INIT 1
| #define HAVE_TRUNC 1
| #define NAME_DEV_RANDOM "/dev/random"
| #define HAVE_CRYPT_RNG 1
| #define HAVE_VISIBILITY_HIDDEN 1
| /* end confdefs.h.  */
|
| int
| main ()
| {
|
| 		__asm__ ("ldfd f0, [r0]");
|
|   ;
|   return 0;
| }
configure:40161: arm-angstrom-linux-gnueabi-gcc -march=armv5te
-mtune=xscale -c
-isystem/build/radiant/rep3/oe/compulab-pxa270/tmp/staging/arm-angstrom-linux-gnueabi/include
-fexpensive-optimizations -fomit-frame-pointer -frename-registers -Os
-fno-strict-aliasing -Wdeclaration-after-statement -g -Wall -Wunused
-Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes
-Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wno-cast-qual
-Wcast-align -Wwrite-strings
-isystem/build/radiant/rep3/oe/compulab-pxa270/tmp/staging/arm-angstrom-linux-gnueabi/include
-DGC_LINUX_THREADS -D_GNU_SOURCE -D_REENTRANT -DUSE_MMAP -DUSE_MUNMAP
conftest.c >&5
conftest.c:142: warning: function declaration isn't a prototype
configure:40167: $? = 0
configure:40174: test -z "$ac_c_werror_flag" || test ! -s conftest.err
configure:40177: $? = 0
configure:40184: test -s conftest.o
configure:40187: $? = 0
configure:40203: result: VFP

Cliff

-- 
=======================
Cliff Brake
http://bec-systems.com



More information about the Mono-devel-list mailing list