[Mono-devel-list] Build failed for mono 0.29 on Windows

Daniel Morgan danielmorgan at verizon.net
Sat Jan 3 12:03:49 EST 2004


Looks like you need libgc (Boehm Garbage Collector).

If you need locale support, then you also need to get the icu library.
See the end of this email for that.

Here is some info from Johannes Roith about building mono on windows using
cygwin:

Hello!

Here is a small collection of info/problems with the current windows
build:

Build with:
./configure --prefix=/usr/mono-0.28 --with-gc=boehm

(prefix should be a clean directory)

- Mono builds fine without GC
- The problem is the gc.
- at first the configure script claims it can't find gc.h, etc.

This can be fixed by exporting:

export CPPFLAGS="$CPPFLAGS -I/usr/local/include"
export LDFLAGS="$LDFLAGS -I/usr/local/lib"
export CC="gcc -mno-cygwin"

Eventually adapt the path.

- It will still miss GC-malloc.
This can be solved by copying gc.dll to your lib dir /lib or /usr/lib
Gc.dll is contained in the package
http://www.go-mono.org/archive/libgc-dev.zip
- Now the configure script should pass.
The build might then stop somewhere because of different things:



Case 1:

This happens, when the libgc from the cvs module libgc is installed (I
believe):

gcc -mno-cygwin -O -g -Wall -Wunused -Wmissing-prototypes
-Wmissing-declarations
-Wstrict-prototypes -Wmissing-prototypes -Wnested-externs
-Wpointer-arith -Wno-
cast-qual -Wcast-align -Wwrite-strings -I/usr/local/lib -I/usr/local/lib
-o mono
sn.exe monosn.o -Wl,--export-dynamic ../metadata/.libs/libmetadata.al
../io-lay
er/.libs/libwapi.al ../utils/.libs/libmonoutils.al
/usr/local/lib/libgc.a -lpthr
ead -L/home/Administrator/install/lib -lgthread-2.0 -lgmodule-2.0
-lglib-2.0 .li
bs/libimp-cygintl-2.a -L/usr/lib .libs/libimp-cygiconv-2.a -lws2_32
-lpsapi
/usr/local/lib/libgc.a(misc.o)(.text+0x830): In function
`GC_init_inner':
/home/Administrator/libgc/misc.c:598: undefined reference to
`gc_thread_vtable'
/usr/local/lib/libgc.a(alloc.o)(.text+0xc1b): In function
`GC_stopped_mark':
/home/Administrator/libgc/alloc.c:466: undefined reference to
`gc_thread_vtable'
/usr/local/lib/libgc.a(alloc.o)(.text+0xcb5):/home/Administrator/libgc/a
lloc.c:5
30: undefined reference to `gc_thread_vtable'
/usr/local/lib/libgc.a(alloc.o)(.text+0xe30):/home/Administrator/libgc/a
lloc.c:4
97: undefined reference to `gc_thread_vtable'
/usr/local/lib/libgc.a(os_dep.o)(.text+0x28): In function
`GC_disable_signals':
/home/Administrator/libgc/os_dep.c:400: undefined reference to
`sigprocmask'
/usr/local/lib/libgc.a(os_dep.o)(.text+0x38):/home/Administrator/libgc/o
s_dep.c:
377: undefined reference to `sigfillset'
/usr/local/lib/libgc.a(os_dep.o)(.text+0x4c):/home/Administrator/libgc/o
s_dep.c:
379: undefined reference to `sigdelset'
/usr/local/lib/libgc.a(os_dep.o)(.text+0x60):/home/Administrator/libgc/o
s_dep.c:
380: undefined reference to `sigdelset'
/usr/local/lib/libgc.a(os_dep.o)(.text+0x74):/home/Administrator/libgc/o
s_dep.c:
381: undefined reference to `sigdelset'
/usr/local/lib/libgc.a(os_dep.o)(.text+0x88):/home/Administrator/libgc/o
s_dep.c:
383: undefined reference to `sigdelset'
/usr/local/lib/libgc.a(os_dep.o)(.text+0x9c):/home/Administrator/libgc/o
s_dep.c:
389: undefined reference to `sigdelset'
/usr/local/lib/libgc.a(os_dep.o)(.text+0xb0):/home/Administrator/libgc/o
s_dep.c:
392: more undefined references to `sigdelset' follow
/usr/local/lib/libgc.a(os_dep.o)(.text+0xee): In function
`GC_enable_signals':
/home/Administrator/libgc/os_dep.c:409: undefined reference to
`sigprocmask'
/usr/local/lib/libgc.a(os_dep.o)(.text+0x199): In function
`GC_unix_get_mem':
/home/Administrator/libgc/os_dep.c:1272: undefined reference to `sbrk'
/usr/local/lib/libgc.a(os_dep.o)(.text+0x1ba):/home/Administrator/libgc/
os_dep.c
:1277: undefined reference to `sbrk'
/usr/local/lib/libgc.a(os_dep.o)(.text+0x1c5):/home/Administrator/libgc/
os_dep.c
:1279: undefined reference to `sbrk'
/usr/local/lib/libgc.a(os_dep.o)(.text+0x1f7): In function
`GC_default_push_othe
r_roots':
/home/Administrator/libgc/os_dep.c:1692: undefined reference to
`gc_thread_vtabl
e'
/usr/local/lib/libgc.a(win32_threads.o)(.text+0xcad): In function
`GC_pthread_de
tach':
/home/Administrator/libgc/win32_threads.c:806: undefined reference to
`gc_thread
_vtable'
make[4]: *** [monosn.exe] Error 1
make[4]: Leaving directory
`/cygdrive/d/mono-0.28/mono-0.28/mono/metadata'
make[3]: *** [all] Error 2
make[3]: Leaving directory
`/cygdrive/d/mono-0.28/mono-0.28/mono/metadata'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/cygdrive/d/mono-0.28/mono-0.28/mono'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/cygdrive/d/mono-0.28/mono-0.28'
make: *** [all] Error 2


Case 2:

This happens, when you use the .h files from the libgc-dev.zip file.

gcc -mno-cygwin -O -g -Wall -Wunused -Wmissing-prototypes
-Wmissing-declarations
-Wstrict-prototypes -Wmissing-prototypes -Wnested-externs
-Wpointer-arith -Wno-
cast-qual -Wcast-align -Wwrite-strings -I/usr/local/lib -I/usr/local/lib
-o mono
sn.exe monosn.o -Wl,--export-dynamic ../metadata/.libs/libmetadata.al
../io-lay
er/.libs/libwapi.al ../utils/.libs/libmonoutils.al
/usr/local/lib/libgc.a -lpthr
ead -L/home/Administrator/install/lib -lgthread-2.0 -lgmodule-2.0
-lglib-2.0 .li
bs/libimp-cygintl-2.a -L/usr/lib .libs/libimp-cygiconv-2.a -lws2_32
-lpsapi
/usr/local/lib/libgc.a(os_dep.o)(.text+0x28): In function
`GC_disable_signals':
/home/work/w3m/build/gc6.2/os_dep.c:558: undefined reference to
`sigprocmask'
/usr/local/lib/libgc.a(os_dep.o)(.text+0x38):/home/work/w3m/build/gc6.2/
os_dep.c
:535: undefined reference to `sigfillset'
/usr/local/lib/libgc.a(os_dep.o)(.text+0x4c):/home/work/w3m/build/gc6.2/
os_dep.c
:537: undefined reference to `sigdelset'
/usr/local/lib/libgc.a(os_dep.o)(.text+0x60):/home/work/w3m/build/gc6.2/
os_dep.c
:538: undefined reference to `sigdelset'
/usr/local/lib/libgc.a(os_dep.o)(.text+0x74):/home/work/w3m/build/gc6.2/
os_dep.c
:539: undefined reference to `sigdelset'
/usr/local/lib/libgc.a(os_dep.o)(.text+0x88):/home/work/w3m/build/gc6.2/
os_dep.c
:541: undefined reference to `sigdelset'
/usr/local/lib/libgc.a(os_dep.o)(.text+0x9c):/home/work/w3m/build/gc6.2/
os_dep.c
:547: undefined reference to `sigdelset'
/usr/local/lib/libgc.a(os_dep.o)(.text+0xb0):/home/work/w3m/build/gc6.2/
os_dep.c
:550: more undefined references to `sigdelset' follow
/usr/local/lib/libgc.a(os_dep.o)(.text+0xee): In function
`GC_enable_signals':
/home/work/w3m/build/gc6.2/os_dep.c:567: undefined reference to
`sigprocmask'
/usr/local/lib/libgc.a(os_dep.o)(.text+0x199): In function
`GC_unix_get_mem':
/home/work/w3m/build/gc6.2/os_dep.c:1569: undefined reference to `sbrk'
/usr/local/lib/libgc.a(os_dep.o)(.text+0x1ba):/home/work/w3m/build/gc6.2
/os_dep.
c:1574: undefined reference to `sbrk'
/usr/local/lib/libgc.a(os_dep.o)(.text+0x1c5):/home/work/w3m/build/gc6.2
/os_dep.
c:1576: undefined reference to `sbrk'
make[4]: *** [monosn.exe] Error 1
make[4]: Leaving directory
`/cygdrive/d/mono-0.28/mono-0.28/mono/metadata'
make[3]: *** [all] Error 2
make[3]: Leaving directory
`/cygdrive/d/mono-0.28/mono-0.28/mono/metadata'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/cygdrive/d/mono-0.28/mono-0.28/mono'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/cygdrive/d/mono-0.28/mono-0.28'
make: *** [all] Error 2

There were some other cases, but I can't reproduce them again.

- if you manage to get pass that point and build mono to the new prefix

The wizard:
* delete the *.a and *.la the lib directory of the install directory
* copy monowiz.win32.nsi from cvs to /mono
* also copy the mono-setup-light.bmp file to /mono
* make win32setup
* make sure you have nsis4cygwin installed
(http://www.jroith.de/nsis4cygwin.zip)

I can - maybe - come to #mono in ~ 7 hours for a few minutes before
school starts, but I can't promise it.
In earlier releases for some reason the GC was not much of a problem. It
just depends on your current cygwin setup. I'm sorry, I don't know more
right know.

Good luck with everthing!
Johannes



More information about the Mono-devel-list mailing list