From: KOBAYASHI Yasuhiro Date: 2007-02-27T18:32:56+09:00 Subject: [ruby-list:43225] Re: Ruby 1.8.6 preview2 has been released こばやしです。 下記の環境でBuildしてみました。 mingw32 gcc (GCC) 3.4.4 (cygming special, gdc 0.12, using dmd 0.125) その結果、 opensslでコンパイルエラー strscanとthreadでリンクエラー make checkは成功しましたが、最後にSegmentation faultとなりま した。 opensslでは、Mingw32の環境はconfigure時に、 ac_cv_header_sys_times_h=no と指定しているけれど、 opensslのextend.rbでは、ヘッダーファイルのチェックをしていて、 ヘッダーファイルが存在するというのがまずそうです。 その他のところは、時間がないので未調査です。 よろしくお願いします。 -------->8-------->8-------->8-------->8-------->8-------- ~/ruby-1.8.6-preview2$ ./configure --with-gcc='gcc -mno-cygwin' --with-winsock2 --enable-shared --with-opt-dir=/usr/local checking build system type... i686-pc-cygwin checking host system type... i686-pc-cygwin checking target system type... i686-pc-cygwin checking for gcc... gcc -mno-cygwin [...] ~/ruby-1.8.6-preview2$ make -k gcc -mno-cygwin -g -O2 -DRUBY_EXPORT -I. -I. -c array.c [...] compiling openssl make[1]: Entering directory `/home/kobayays/ruby-1.8.6-preview2/ext/openssl' gcc -mno-cygwin -I. -I../.. -I../../. -I../.././ext/openssl -DRUBY_EXTCONF_H=\"extconf.h\" -I/usr/local/include -g -O2 -c openssl_missing.c gcc -mno-cygwin -I. -I../.. -I../../. -I../.././ext/openssl -DRUBY_EXTCONF_H=\"extconf.h\" -I/usr/local/include -g -O2 -c ossl.c In file included from ../../missing.h:16, from ../../ruby.h:718, from ossl.h:26, from ossl.c:11: /usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../../i686-pc-mingw32/include/sys/time.h:27: error: redefinition of `struct timezone' /usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../../i686-pc-mingw32/include/sys/time.h:40: error: conflicting types for 'gettimeofday' ../../win32/win32.h:209: error: previous declaration of 'gettimeofday' was here /usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../../i686-pc-mingw32/include/sys/time.h:40: error: conflicting types for 'gettimeofday' ../../win32/win32.h:209: error: previous declaration of 'gettimeofday' was here make[1]: *** [ossl.o] Error 1 gcc -mno-cygwin -I. -I../.. -I../../. -I../.././ext/openssl -DRUBY_EXTCONF_H=\"extconf.h\" -I/usr/local/include -g -O2 -c ossl_asn1.c [...] compiling strscan make[1]: Entering directory `/home/kobayays/ruby-1.8.6-preview2/ext/strscan' gcc -mno-cygwin -I. -I../.. -I../../. -I../.././ext/strscan -I/usr/local/include -g -O2 -c strscan.c gcc -mno-cygwin -shared -s -Wl,--enable-auto-import,--export-all -L"/usr/local/lib" -L"../.." -o ../../.ext/i386-mingw32/strscan.so strscan.o -lmsvcrt-ruby18 -lws2_32 strscan.o: In function `strscan_do_scan': /home/kobayays/ruby-1.8.6-preview2/ext/strscan/strscan.c:406: undefined reference to `_rb_kcode_set_option' /home/kobayays/ruby-1.8.6-preview2/ext/strscan/strscan.c:420: undefined reference to `_rb_kcode_reset_option' collect2: ld returned 1 exit status make[1]: *** [../../.ext/i386-mingw32/strscan.so] Error 1 make[1]: Target `all' not remade because of errors. make[1]: Leaving directory `/home/kobayays/ruby-1.8.6-preview2/ext/strscan' [...] compiling thread make[1]: Entering directory `/home/kobayays/ruby-1.8.6-preview2/ext/thread' gcc -mno-cygwin -I. -I../.. -I../../. -I../.././ext/thread -I/usr/local/include -DUSE_MEM_POOLS -g -O2 -c thread.c gcc -mno-cygwin -shared -s -Wl,--enable-auto-import,--export-all -L"/usr/local/lib" -L"../.." -o ../../.ext/i386-mingw32/thread.so thread.o -lmsvcrt-ruby18 -lws2_32 thread.o: In function `wake_thread': /home/kobayays/ruby-1.8.6-preview2/ext/thread/thread.c:212: undefined reference to `_rb_eThreadError' thread.o: In function `run_thread': /home/kobayays/ruby-1.8.6-preview2/ext/thread/thread.c:219: undefined reference to `_rb_eThreadError' thread.o: In function `wait_condvar': /home/kobayays/ruby-1.8.6-preview2/ext/thread/thread.c:647: undefined reference to `_rb_eThreadError' thread.o: In function `rb_queue_pop': /home/kobayays/ruby-1.8.6-preview2/ext/thread/thread.c:989: undefined reference to `_rb_eThreadError' collect2: ld returned 1 exit status make[1]: *** [../../.ext/i386-mingw32/thread.so] Error 1 cp ../.././ext/thread/lib/thread.rb ../../.ext/common make[1]: Target `all' not remade because of errors. make[1]: Leaving directory `/home/kobayays/ruby-1.8.6-preview2/ext/thread' [...] make[1]: Leaving directory `/home/kobayays/ruby-1.8.6-preview2/ext/zlib' making ruby.exe, rubyw.exe make[1]: Entering directory `/home/kobayays/ruby-1.8.6-preview2' windres --include-dir . --include-dir . --include-dir ./win32 ruby.rc ruby.res.o gcc -mno-cygwin -g -O2 -DRUBY_EXPORT -Wl,--stack,0x02000000 -L. main.o ruby.res.o -lmsvcrt-ruby18 -lws2_32 -o ruby.exe windres --include-dir . --include-dir . --include-dir ./win32 rubyw.rc rubyw.res.o gcc -mno-cygwin -mwindows -e _mainCRTStartup -g -O2 -DRUBY_EXPORT -Wl,--stack,0x02000000 -L. \ main.o rubyw.res.o -lmsvcrt-ruby18 -lws2_32 -o rubyw.exe make[1]: Leaving directory `/home/kobayays/ruby-1.8.6-preview2' ~/ruby-1.8.6-preview2$ make check test succeeded ./miniruby.exe ./runruby.rb --extout=.ext -- "./test/runner.rb" --basedir="./test" --runner=console This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. ./test/dbm/test_dbm.rb:20: [BUG] Segmentation fault ruby 1.8.6 (2007-02-24) [i386-mingw32] make: *** [test-all] Error 3 ~/ruby-1.8.6-preview2$ gcc --version gcc (GCC) 3.4.4 (cygming special, gdc 0.12, using dmd 0.125) Copyright (C) 2004 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. ~/ruby-1.8.6-preview2$ -------->8-------->8-------->8-------->8-------->8-------- -- KOBAYASHI Yasuhiro