[Mono-list] Compile mono 1.9.1 for arm linux

Chen, Michael (Dongliang) micchen2 at cisco.com
Thu Jul 24 08:43:11 EDT 2008


Tim,

Thank you very much for your help. That seems fix the linking issue. Now
I got an error, see below.

Would you mind let me know which version of mono you were compiling?
What's the building environment, like gcc version, which Linux
distribution you used?

Thanks in advance,
Dongliang

./configure --build=arm-linux --with-tls=pthread
...
Make
...
gcc -I../.. -I../../libgc/include -pthread -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include -g -O2 -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 -mno-tls-direct-seg-refs -o genmdesc genmdesc-genmdesc.o
genmdesc-helpers.o ../../mono/metadata/.libs/opcodes.o -pthread
../../mono/utils/.libs/libmonoutils.a -lgthread-2.0 -lrt -lglib-2.0 -ldl
-lpthread -lm
./genmdesc ./cpu-arm.md cpu-arm.h arm_cpu_desc

** ERROR **: Invalid opcode 'arm_rsbs_imm' at line 275 in ./cpu-arm.md

aborting...
make[3]: *** [cpu-arm.h] Aborted
make[3]: Leaving directory `/work/mono/src/mono-1.9.1/mono/mini'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/work/mono/src/mono-1.9.1/mono'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/work/mono/src/mono-1.9.1'
make: *** [all] Error 2

-----Original Message-----
On Wed, 2008-07-23 at 13:58 -0400, Chen, Michael (Dongliang) wrote:
> Hi all,
> 
> I am new to mono. I was trying to compile mono 1.9.1 for arm
processor.
> I downloaded mono-1.9.1.tar.bz2, uncompressed it. I got the following
> error while compiling it. 
> 
> If any one could point out what I did wrong and how to fix this issue,
> I'd appreciate it.
> 
> ./configure --build=arm-linux
> ...
> 
> make
> ...
> /bin/sh ../../libtool --tag=CC   --mode=link gcc  -g -O2
> -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 -mno-tls-direct-seg-refs   -o pedump
> pedump.o libmonoruntime.la ../io-layer/libwapi.la
> ../utils/libmonoutils.la ../../libgc/libmonogc.la -pthread
-lgthread-2.0
> -lrt -lglib-2.0   -lm -ldl -lpthread -lm
> gcc -g -O2 -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 -mno-tls-direct-seg-refs -o pedump
pedump.o
> -pthread  ./.libs/libmonoruntime.a ../io-layer/.libs/libwapi.a
> ../utils/.libs/libmonoutils.a ../../libgc/.libs/libmonogc.a
> -lgthread-2.0 -lrt -lglib-2.0 -ldl -lpthread -lm
> ./.libs/libmonoruntime.a(reflection.o): In function
> `create_dynamic_mono_image':
> /work/mono/src/mono-1.9.1/mono/metadata/reflection.c:4340: undefined
> reference to `GC_local_malloc'
> ./.libs/libmonoruntime.a(reflection.o): In function
> `mono_image_basic_init':
> /work/mono/src/mono-1.9.1/mono/metadata/reflection.c:4425: undefined
> reference to `GC_local_malloc'
> ./.libs/libmonoruntime.a(object.o): In function
> `mono_object_new_ptrfree_box':
> /work/mono/src/mono-1.9.1/mono/metadata/object.c:3447: undefined
> reference to `GC_local_malloc_atomic'
> ./.libs/libmonoruntime.a(object.o): In function
> `mono_object_new_ptrfree':
> /work/mono/src/mono-1.9.1/mono/metadata/object.c:3423: undefined
> reference to `GC_local_malloc_atomic'
> ./.libs/libmonoruntime.a(object.o): In function
`mono_object_new_fast':
> /work/mono/src/mono-1.9.1/mono/metadata/object.c:3415: undefined
> reference to `GC_local_gcj_malloc'
> ./.libs/libmonoruntime.a(object.o): In function
> `mono_object_allocate_spec':
> /work/mono/src/mono-1.9.1/mono/metadata/object.c:3329: undefined
> reference to `GC_local_gcj_malloc'
> ./.libs/libmonoruntime.a(object.o): In function
`mono_object_allocate':
> /work/mono/src/mono-1.9.1/mono/metadata/object.c:3304: undefined
> reference to `GC_local_malloc'
> ./.libs/libmonoruntime.a(object.o): In function
> `mono_object_allocate_spec':
> /work/mono/src/mono-1.9.1/mono/metadata/object.c:3329: undefined
> reference to `GC_local_gcj_malloc'
> ./.libs/libmonoruntime.a(object.o): In function
> `mono_object_allocate_ptrfree':
> /work/mono/src/mono-1.9.1/mono/metadata/object.c:3321: undefined
> reference to `GC_local_malloc_atomic'
> ./.libs/libmonoruntime.a(object.o): In function
`mono_object_allocate':
> /work/mono/src/mono-1.9.1/mono/metadata/object.c:3304: undefined
> reference to `GC_local_malloc'
> /work/mono/src/mono-1.9.1/mono/metadata/object.c:3304: undefined
> reference to `GC_local_malloc'
> ./.libs/libmonoruntime.a(object.o): In function
> `mono_object_allocate_ptrfree':
> /work/mono/src/mono-1.9.1/mono/metadata/object.c:3321: undefined
> reference to `GC_local_malloc_atomic'
> ./.libs/libmonoruntime.a(object.o): In function
> `mono_object_allocate_spec':
> /work/mono/src/mono-1.9.1/mono/metadata/object.c:3329: undefined
> reference to `GC_local_gcj_malloc'
> ./.libs/libmonoruntime.a(object.o): In function
> `mono_object_allocate_ptrfree':
> /work/mono/src/mono-1.9.1/mono/metadata/object.c:3321: undefined
> reference to `GC_local_malloc_atomic'
> ./.libs/libmonoruntime.a(object.o): In function
`mono_object_allocate':
> /work/mono/src/mono-1.9.1/mono/metadata/object.c:3304: undefined
> reference to `GC_local_malloc'
> ./.libs/libmonoruntime.a(boehm-gc.o): In function
`mono_gc_alloc_fixed':
> /work/mono/src/mono-1.9.1/mono/metadata/boehm-gc.c:332: undefined
> reference to `GC_local_malloc'
> ../utils/.libs/libmonoutils.a(mono-hash.o): In function
> `g_hash_table_resize':
> /work/mono/src/mono-1.9.1/mono/utils/mono-hash.c:724: undefined
> reference to `GC_local_malloc'
> ../utils/.libs/libmonoutils.a(mono-hash.o): In function
> `mono_g_hash_table_new_full':
> /work/mono/src/mono-1.9.1/mono/utils/mono-hash.c:188: undefined
> reference to `GC_local_malloc'
> /work/mono/src/mono-1.9.1/mono/utils/mono-hash.c:199: undefined
> reference to `GC_local_malloc'
>
../utils/.libs/libmonoutils.a(mono-hash.o):/work/mono/src/mono-1.9.1/mon
> o/utils/mono-hash.c:339: more undefined references to
`GC_local_malloc'
> follow
> collect2: ld returned 1 exit status
> make[3]: *** [pedump] Error 1
> make[3]: Leaving directory `/work/mono/src/mono-1.9.1/mono/metadata'
> make[2]: *** [all-recursive] Error 1
> make[2]: Leaving directory `/work/mono/src/mono-1.9.1/mono'
> make[1]: *** [all-recursive] Error 1          
> 
> 
> 
> I am using Fedora Core 8
> gcc --version
> gcc (GCC) 4.1.2 20070925 (Red Hat 4.1.2-33)
> Copyright (C) 2006 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.  There
is
> NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
> PURPOSE.
> 
> uname -a
> Linux 2.6.25.9-40.fc8 #1 SMP Fri Jun 27 16:25:53 EDT 2008 i686 i686
i386
> GNU/Linux
> 

When I was building for N800, I had to configure with

--with-tls=pthread

to dodge those missing GC_local_xxx references. Can't tell you why
exactly :P

Tim





     - - - - -                              Cisco                            - - - - -         
This e-mail and any attachments may contain information which is confidential, 
proprietary, privileged or otherwise protected by law. The information is solely 
intended for the named addressee (or a person responsible for delivering it to 
the addressee). If you are not the intended recipient of this message, you are 
not authorized to read, print, retain, copy or disseminate this message or any 
part of it. If you have received this e-mail in error, please notify the sender 
immediately by return e-mail and delete it from your computer.



More information about the Mono-list mailing list