[Ecls-list] Need help compiling ECL 10.4.1 (32-bit) on Win7 64-bit via mingw32/msys
Hi, New to the list, so please forgive me if I've missed a thread that covers this. I'm trying to compile ECL 10.4.1 under Windows 7 64-bit. Unfortunately, I'm having problems, and the Windows with Mingw/Cygwin section of the reference guide is totally blank, so I thought I should ask here. (Note: already read some previous comments about 64-bit support. I'm just trying to build a 32-bit ECL via 32-bit MinGW, so don't worry, I'm not barking up *that* tree. However, the OS *is* 64-bit.) 1. I grabbed the CVS version of the Boehm GC. Built it successfully using ./configure make make install. (7.1 failed to compile via MSys in this way.) 2. I tried to ./configure and make ECL. This did not pan out... ./configure --enable-threads=yes # no problem, but did give some warnings: # configure: Configuring included GMP library: # configure: WARNING: you should use --build, --host, --target make # (This fails; output attached at the end) From here, I don't really know how to proceed. I don't need to run 10.4.1, but I would really like to get some version of ECL running on this system. If anyone can advise me of some way to get some version going, it'd really be appreciated. Attached at the bottom is the error from running make, plus notes on my MinGW configuration (in case it matters). Thanks in advance. Best Regards, Paul Goins -- Error in make on ECL 10.4.1: gcc -DECLDIR=\/usr/local/lib/ecl-10.4.1\ -I. -Ic:/Users/Vultaire/Desktop/pauls_stuff/ecl-10.4.1/build -I/c/Users/Vultaire/Desktop/pauls_stuff/ecl-10.4.1/src/c -I../ecl/gc -DECL_API -DECL_NO_LEGACY -g -O2 -D_THREAD_SAFE -Dmingw32 -c -o file.o tmp.c In file included from c:\mingw\bin\../lib/gcc/mingw32/4.5.0/../../../../include/unistd.h:13:0, from c:/Users/Vultaire/Desktop/pauls_stuff/ecl-10.4.1/src/c/file.d:29: c:\mingw\bin\../lib/gcc/mingw32/4.5.0/../../../../include/process.h:95:2: error: expected identifier or '(' before '{' token c:\mingw\bin\../lib/gcc/mingw32/4.5.0/../../../../include/process.h:95:16: error: expected identifier or '(' before 'void' c:\mingw\bin\../lib/gcc/mingw32/4.5.0/../../../../include/process.h:100:2: error: conflicting types for 'GC_beginthreadex' c:/Users/Vultaire/Desktop/pauls_stuff/ecl-10.4.1/build/ecl/gc/gc.h:1049:21: note: previous declaration of 'GC_beginthreadex' was here c:/Users/Vultaire/Desktop/pauls_stuff/ecl-10.4.1/src/c/file.d: In function 'ecl_off_t_to_integer': c:/Users/Vultaire/Desktop/pauls_stuff/ecl-10.4.1/src/c/file.d:4813:4: warning: right shift count = width of type c:/Users/Vultaire/Desktop/pauls_stuff/ecl-10.4.1/src/c/file.d: In function 'ecl_integer_to_off_t': c:/Users/Vultaire/Desktop/pauls_stuff/ecl-10.4.1/src/c/file.d:4844:8: warning: left shift count = width of type c:/Users/Vultaire/Desktop/pauls_stuff/ecl-10.4.1/src/c/file.d: In function 'not_a_file_stream': c:/Users/Vultaire/Desktop/pauls_stuff/ecl-10.4.1/src/c/file.d:4890:2: warning: function declared 'noreturn' has a 'return' statement make[2]: *** [file.o] Error 1 make[2]: Leaving directory `/c/Users/Vultaire/Desktop/pauls_stuff/ecl-10.4.1/build/c' make[1]: *** [libeclmin.a] Error 2 make[1]: Leaving directory `/c/Users/Vultaire/Desktop/pauls_stuff/ecl-10.4.1/build' make: *** [all] Error 2 -- MinGW installation: MinGW installed via mingw-get-inst-20100909.exe, using the latest repository catalogues during installation. All components except the MSYS System Builder were installed. (If there's a specific version of MinGW which is known to work, please let me know what version and I will try it instead.) Log: Pre-inst Installing: C Compiler C++ Compiler Fortran Compiler ObjC Compiler Ada Compiler MSYS Basic System MinGW Developer Toolkit Downloading latest repository catalogues Destination location: C:\MinGW Package download log downloading: mingwrt-3.18-mingw32-dll.tar.gz: 8122 b downloading: libgmp-5.0.1-1-mingw32-dll-10.tar.lzma: 159027 b downloading: libmpfr-2.4.1-1-mingw32-dll-1.tar.lzma: 44 b downloading: libpthread-2.8.0-3-mingw32-dll-2.tar.lzma: 20862 b downloading: pthreads-w32-2.8.0-3-mingw32-dev.tar.lzma: 13727 b downloading: libgomp-4.5.0-1-mingw32-dll-1.tar.lzma: 17170 b downloading: libmpc-0.8.1-1-mingw32-dll-2.tar.lzma: 24146 b downloading: libssp-4.5.0-1-mingw32-dll-0.tar.lzma: 15900 b downloading: libgcc-4.5.0-1-mingw32-dll-1.tar.lzma: 41185 b downloading: w32api-3.15-1-mingw32-dev.tar.lzma: 1128210 b downloading: mingwrt-3.18-mingw32-dev.tar.gz: 568649 b downloading: binutils-2.20.51-1-mingw32-bin.tar.lzma: 3097316 b downloading: libexpat-2.0.1-1-mingw32-dll-1.tar.gz: 62787 b
Re: [Ecls-list] Need help compiling ECL 10.4.1 (32-bit) on Win7 64-bit via mingw32/msys
Hello, On 10/30/2010 5:24 AM, Gabriel Dos Reis wrote: On Fri, Oct 29, 2010 at 12:48 PM, Paul Goinsgene...@vultaire.net wrote: Info: resolving _GC_dont_gc by linking to __imp__GC_dont_gc (auto-import) Info: resolving _GC_oom_fn by linking to __imp__GC_oom_fn (auto-import) Info: resolving _GC_no_dls by linking to __imp__GC_no_dls (auto-import) Info: resolving _GC_all_interior_pointers by linking to __imp__GC_all_interior_pointers (auto-import) Info: resolving _GC_time_limit by linking to __imp__GC_time_limit (auto-import) Info: resolving _GC_push_other_roots by linking to __imp__GC_push_other_roots (auto-import) Info: resolving _GC_start_call_back by linking to __imp__GC_start_call_back (auto-import) Info: resolving _GC_java_finalization by linking to __imp__GC_java_finalization (auto-import) Info: resolving _GC_print_stats by linking to __imp__GC_print_stats (auto-importc:/mingw/bin/../lib/gcc/mingw32/4.5.0/../../../../mingw32/bin/ld.exe: warning: auto-importing has been activated without --enable-auto-import specified on the command line. This should work unless it involves constant data structures referencing symbols from auto-imported DLLs. libeclmin.a(threads.o): In function `ecl_import_current_thread': c:/Users/Vultaire/Desktop/pauls_stuff/ecl-10.4.1/src/c/threads.d:248: undefined reference to `GC_register_my_thread' libeclmin.a(threads.o): In function `mp_process_enable': c:/Users/Vultaire/Desktop/pauls_stuff/ecl-10.4.1/src/c/threads.d:408: undefined reference to `gc_createthr...@24' libeclmin.a(threads.o): In function `ecl_release_current_thread': c:/Users/Vultaire/Desktop/pauls_stuff/ecl-10.4.1/src/c/threads.d:280: undefined reference to `GC_unregister_my_thread) It sounds as if tECL is able to pick up the GC library but only a few symbols are missing. When you configured, did ECL really report that it was building a 32-bit program? I logged the configure... it looks like it. Things do look slightly different between the GC configure and the ECL configure though; namely that ECL has the target as pentium3 and Boehm as i686. ECL: Switching to directory `build' to continue configuration. checking build system type... pentium3-pc-mingw32 checking host system type... pentium3-pc-mingw32 [...] checking for architecture... PENTIUM3 checking for software type... mingw32 / [...] [...] using ABI=32 CC=gcc CFLAGS=-g -O2 CPPFLAGS=-I/usr/local/include MPN_PATH= x86/p6/p3mmx x86/p6/mmx x86/p6 x86 generic Boehm GC: checking build system type... i686-pc-mingw32 checking host system type... i686-pc-mingw32 checking target system type... i686-pc-mingw32 I can send the full configure logs from both if desired; I have them saved. - Paul -- Nokia and ATT present the 2010 Calling All Innovators-North America contest Create new apps games for the Nokia N8 for consumers in U.S. and Canada $10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store http://p.sf.net/sfu/nokia-dev2dev ___ Ecls-list mailing list Ecls-list@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ecls-list
Re: [Ecls-list] Need help compiling ECL 10.4.1 (32-bit) on Win7 64-bit via mingw32/msys
I've looked into things a bit further here. Perhaps now it's not problems with ECL per se, but with compiling the Boehm GC. On Fri, Oct 29, 2010 at 12:48 PM, Paul Goinsgene...@vultaire.net wrote: libeclmin.a(threads.o): In function `ecl_import_current_thread': c:/Users/Vultaire/Desktop/pauls_stuff/ecl-10.4.1/src/c/threads.d:248: undefined reference to `GC_register_my_thread' libeclmin.a(threads.o): In function `mp_process_enable': c:/Users/Vultaire/Desktop/pauls_stuff/ecl-10.4.1/src/c/threads.d:408: undefined reference to `gc_createthr...@24' libeclmin.a(threads.o): In function `ecl_release_current_thread': c:/Users/Vultaire/Desktop/pauls_stuff/ecl-10.4.1/src/c/threads.d:280: undefined reference to `GC_unregister_my_thread) The above are all threading related symbols. A straight ./configure on the Boehm GC build doesn't enable thread support. Unfortunately, ./configure --enable-threads=win32 also seems not to work; I can compile, but the symbols are non-existant. **For those who don't want to read the reset of this log, my question is: has anyone got the Boehm GC compiled and working with ECL via MinGW, and if so, how exactly did you pull it off?** More details: The above symbols should be compiled into win32_threads.o, but nm shows this: $ nm win32_threads.o b .bss d .data N .debug_abbrev N .debug_info N .debug_line N .debug_pubtypes t .text I retried the compile, adding CPPFLAGS=-DWIN32_THREADS to the configure step. In this case, win32_threads.o seems to turn out alright: $ nm win32_threads.o | grep -e GC_CreateThread -e GC_register_my_thread -e GC_unregister_my_thread 0ec8 T _gc_createthr...@24 039c T _GC_register_my_thread 00d8 T _GC_register_my_thread_inner 045c T _GC_unregister_my_thread So, it looks like I've got the needed symbols for ECL now. But, now the Boehm compile doesn't finish (at which point I should probably be switching this discussion to a different ML...): /bin/sh ./libtool --tag=CC --mode=link gcc -fexceptions -g -O2 -version-info 1:3:0 -no-undefined -o libgc.la -rpath /usr/local/lib allchblk.lo alloc.lo blacklst.lo checksums.lo dbg_mlc.lo dyn_load.lo finalize.lo gc_dlopen.lo gcj_mlc.lo headers.lo malloc.lo mallocx.lo mark.lo mark_rts.lo misc.lo new_hblk.lo obj_map.lo os_dep.lo pcr_interface.lo ptr_chck.lo real_malloc.lo reclaim.lo specific.lo stubborn.lo typd_mlc.lo backgraph.lo thread_local_alloc.lo win32_threads.lo atomic_ops.lo mach_dep.lo libtool: link: gcc -shared .libs/allchblk.o .libs/alloc.o .libs/blacklst.o .libs/checksums.o .libs/dbg_mlc.o .libs/dyn_load.o .libs/finalize.o .libs/gc_dlopen.o .libs/gcj_mlc.o .libs/headers.o .libs/malloc.o .libs/mallocx.o .libs/mark.o .libs/mark_rts.o .libs/misc.o .libs/new_hblk.o .libs/obj_map.o .libs/os_dep.o .libs/pcr_interface.o .libs/ptr_chck.o .libs/real_malloc.o .libs/reclaim.o .libs/specific.o .libs/stubborn.o .libs/typd_mlc.o .libs/backgraph.o .libs/thread_local_alloc.o .libs/win32_threads.o .libs/atomic_ops.o .libs/mach_dep.o -o .libs/libgc-1.dll -Wl,--enable-auto-image-base -Xlinker --out-implib -Xlinker .libs/libgc.dll.a Creating library file: .libs/libgc.dll.a .libs/win32_threads.o: In function `GC_check_finalizer_nested': c:\Users\Vultaire\bdwgc/win32_threads.c:562: multiple definition of `GC_check_finalizer_nested' .libs/finalize.o:c:\Users\Vultaire\bdwgc/finalize.c:510: first defined here .libs/win32_threads.o: In function `GC_do_blocking_inner': c:\Users\Vultaire\bdwgc/win32_threads.c:769: multiple definition of `GC_do_blocking_inner' .libs/misc.o:c:\Users\Vultaire\bdwgc/misc.c:1541: first defined here .libs/win32_threads.o: In function `GC_call_with_gc_active': c:\Users\Vultaire\bdwgc/win32_threads.c:799: multiple definition of `GC_call_with_gc_active' .libs/misc.o:c:\Users\Vultaire\bdwgc/misc.c:1496: first defined here .libs/ptr_chck.o: In function `GC_is_visible': c:\Users\Vultaire\bdwgc/ptr_chck.c:206: undefined reference to `GC_is_static_root' c:\Users\Vultaire\bdwgc/ptr_chck.c:211: undefined reference to `GC_is_static_root' .libs/win32_threads.o:win32_threads.c:(.text+0x7d8): undefined reference to `GC_write_cs' .libs/win32_threads.o:win32_threads.c:(.text+0x828): undefined reference to `GC_write_cs' collect2: ld returned 1 exit status make[1]: *** [libgc.la] Error 1 make[1]: Leaving directory `/c/Users/Vultaire/bdwgc' make: *** [all-recursive] Error 1 Anyway, that's as far as I've gotten so far. - Paul
Re: [Ecls-list] Need help compiling ECL 10.4.1 (32-bit) on Win7 64-bit via mingw32/msys
On 10/31/2010 5:11 PM, Gabriel Dos Reis wrote: On Sat, Oct 30, 2010 at 10:51 PM, Paul Goinsgene...@vultaire.net wrote: I've looked into things a bit further here. Perhaps now it's not problems with ECL per se, but with compiling the Boehm GC. Is this GC from CVS as of today? -- Gaby Now it is; I just re-pulled. However, I'm getting the exact same errors. - Paul -- Nokia and ATT present the 2010 Calling All Innovators-North America contest Create new apps games for the Nokia N8 for consumers in U.S. and Canada $10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store http://p.sf.net/sfu/nokia-dev2dev ___ Ecls-list mailing list Ecls-list@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ecls-list