[Mono-dev] (another) FreeBSD/amd64 build breakage

Atsushi Eno atsushi at ximian.com
Sun Nov 16 17:19:47 EST 2008


Here is another FreeBSD/amd64 build brakage reported (I'm translating
a Japanese report).

The error is:

./../doltlibtool --quiet --tag=CC --mode=link gcc -I../..
-I../../libgc/include -D_REENTRANT -I/usr/local/include/glib-2.0
-I/usr/local/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  -pthread -o mono
-export-dynamic -Wl,-version-script=./ldscript.mono -Wl,--export-dynamic
main.o libmono-static.la -pthread -L/usr/local/lib -lgthread-2.0
-lglib-2.0 -liconv   -lm  -pthread -lm
/.libs/libmono-static.a(aot-compiler.o)(.text+0x870a): In function
/local/home/ksmakoto/Mono/mono/mono/mini/aot-compiler.c:3500: undefined
reference to `mono_arch_create_monitor_enter_trampoline_full'
undefined reference to `mono_arch_create_monitor_exit_trampoline_full'
gmake[4]: *** [mono] Error 1
gmake[4]: Leaving directory `/local/home/ksmakoto/Mono/mono/mono/mini'

The reporter looked at the code in depth and noticed:

- the caller in aot-compiler.c couldn't resolve
  mono_arch_create_monitor_enter_trampoline_full, but the relevant
  code is under:
#ifdef __x86_64__
  The former is defined as 1 in mini-amd64.h and the latter is 1
  in amd64 by default. Hence it is valid.
- The callee mono_arch_create_monitor_enter_trampoline_full is defined
  under #ifdef MONO_ARCH_MONITOR_OBJECT_REG in tramp-amd64.c.
  It is defined in mini-am64.h as:
#if defined(__linux__) && !defined(HAVE_MOVING_COLLECTOR)
  and hence it is *not* defined in FreeBSD.

Atsushi Eno

More information about the Mono-devel-list mailing list