Dear all, I'm still struggling to build mono 3.2.x on windows using mingw-w64. Finally I desire a working libmono for embedding. I would prefer sgen GC since I was experiencing "too many root sets" and "too many heap sections" errors in the past with mono 2.10.x.
Now trying to build mono I tried different ways: *1. configure + build* The standard way? > configure --prefix=/C/Coding/mono-3.2.6 --with-crosspkgdir=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --host=x86_64-w64-mingw32 --enable-parallel-mark --program-transform-name="" --with-tls=none --disable-mcs-build --enable-nls=no --disable-embed-check --enable-win32-dllmain=yes --with-libgc-threads=win32 --with-profile4=yes configure works well. But make fails in mono-3.2.6/libgc/mallocx.c with: > mallocx.c:34:1: error: initializer element is not constant > ptr_t * GC_CONST GC_objfreelist_ptr = GC_objfreelist; and errors alike. *2. configure --with-gc=none --with-sgen=yes * So I added --with-gc=none --with-sgen=yes to the above configure line. Now make skips libgc (as expected), and run make. There are some smaller(?) issues i could temporarily fix as follows: a > null-gc.c:25:4: error: 'MonoThreadInfoCallbacks' has no member named 'mono_gc_pthread_create' solved by adding #ifndef HOST_WIN32 arround this line. win32 threads don't seem to be handled in null-gc.c b > CCLD pedump.exe > ./.libs/libmonoruntime.a(libmonoruntime_la-threadpool.o): In function `check_for_interruption_critical': > c:\Coding\Builds64\mono-3.2.6\mono\metadata/threadpool.c:1424: undefined reference to `mono_gc_set_skip_thread' > ./.libs/libmonoruntime.a(libmonoruntime_la-threadpool.o): In function `tp_poll_wait': > c:\Coding\Builds64\mono-3.2.6\mono\metadata/../../mono/metadata/tpool-poll.c:179: undefined reference to `mono_gc_set_skip_thread' > c:\Coding\Builds64\mono-3.2.6\mono\metadata/../../mono/metadata/tpool-poll.c:189: undefined reference to `mono_gc_set_skip_thread' > c:\Coding\Builds64\mono-3.2.6\mono\metadata/../../mono/metadata/tpool-poll.c:189: undefined reference to `mono_gc_set_skip_thread' > ./.libs/libmonoruntime.a(libmonoruntime_la-threadpool.o): In function `async_invoke_thread': > c:\Coding\Builds64\mono-3.2.6\mono\metadata/threadpool.c:1560: undefined reference to `mono_gc_set_skip_thread' > ./.libs/libmonoruntime.a(libmonoruntime_la-threadpool.o):c:\Coding\Builds64\mono-3.2.6\mono\metadata/threadpool.c:1573: more undefined references to `mono_gc_set_skip_thread' follow this one was solved by putting the mono_gc_set_skip_thread routine outside of the #ifndef HOST_WIN32 guards in null-gc.c . c > exceptions-amd64.c:121:6: error: 'win32_chained_exception_needs_run' undeclared (first use in this function) This one was coverd in BearishSuns post. Now make succeeds ... strangly, however, libmonoboehm.a is build along the way. But even worse libmonosgen.a and monosgen are not build. So can anyone point me some direction to proceed. The ignorance for sgen seems to me like some misconfigured Makefile. Some parts of sgen seem to be build. I find files like ./mono/metadata/.deps/libmonoruntimesgen_la-appdomain.Plo . As a further observation I find the following in the config.log: > SUPPORT_BOEHM_FALSE='#' > SUPPORT_BOEHM_TRUE='' > SUPPORT_SGEN_FALSE='' > SUPPORT_SGEN_TRUE='#' I guess that is causing the trouble. Any suggestions? Thanks! Frank -- View this message in context: http://mono.1490590.n4.nabble.com/Compile-Mono-on-Windows-64-bit-tp4661469p4661801.html Sent from the Mono - General mailing list archive at Nabble.com. _______________________________________________ Mono-list maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-list
