From: KIMURA Koichi Date: 2008-05-22T16:48:54+09:00 Subject: [ruby-dev:34800] Windows2000上でtrunkがビルドできない 木村です。 もうちょっと絞り込もうと思ったのですが、自分ではこの辺が限界っぽいので とりあえず報告として。 自分の環境(VC 7.1 on Windows 2000)だと、5/9あたりからtrunkのビルドに 失敗するようになっています。 ただし、VC 7.1 on Windows xp でも試したのですがこちらでは正常にビルド できています。ですので参考情報程度に考えてください。 ビルドに失敗する理由の一つは ext/ripper/ripper.[ch] が正しく生成されない (0バイトのファイルができる)ためなのですが、その他にも nmake install したときにSEGVを起こしてインストールが中断されてしまいます。 もう少し具体的には、 installing binary commands installing command scripts installing library scripts installing headers installing manpages と来た manpages のインストール中に発生するもので、以下のような バックトレース情報が得られました(ただしこれは VC++6.0でビルドした場合の もの)。 7.1でビルドしても manpagesのステップでSEGVするのは同じです。 NTDLL! 77fcc83d() MSVCRT! 78001e00() ruby_xfree(void * 0x013a4758) line 425 + 26 bytes rb_str_free(unsigned long 13653920) line 583 + 12 bytes obj_free(rb_objspace * 0x00543130 rb_objspace, unsigned long 13653920) line 1474 + 9 bytes gc_sweep(rb_objspace * 0x00543130 rb_objspace) line 1371 + 13 bytes garbage_collect(rb_objspace * 0x00543130 rb_objspace) line 1704 + 9 bytes rb_newobj_from_heap(rb_objspace * 0x00543130 rb_objspace) line 643 + 25 bytes rb_newobj() line 709 + 9 bytes str_alloc(unsigned long 11093400) line 342 + 5 bytes str_new_shared(unsigned long 11093400, unsigned long 13646980) line 459 + 13 bytes str_new3(unsigned long 11093400, unsigned long 13646980) line 465 + 13 bytes rb_str_new3(unsigned long 13646980) line 471 + 22 bytes vm_eval(rb_thread_struct * 0x009c4148, unsigned long 0) line 352 + 12 bytes vm_eval_body(rb_thread_struct * 0x009c4148) line 1135 + 13 bytes vm_yield(rb_thread_struct * 0x009c4148, int 1, unsigned long * 0x0012b00c) line 602 + 628 bytes rb_yield(unsigned long 10244180) line 925 + 17 bytes rb_io_each_line(int 0, unsigned long * 0x009e0150, unsigned long 13540040) line 2198 + 9 bytes call_cfunc(unsigned long (void)* const 0x00446680 rb_io_each_line(int, unsigned long *, unsigned long), const unsigned long 13540040, const int -1, const int 0, const unsigned long * const 0x009e0150) line 288 + 15 bytes vm_call_cfunc(rb_thread_struct * const 0x009c4148, rb_control_frame_t * const 0x00a5fbc0, const int 0, const unsigned long 392, const unsigned long 13540040, const unsigned long 11038840, const unsigned long 0, const RNode * const 0x00a86a88, const rb_block_t * const 0x00a5fbd4) line 378 + 37 bytes vm_eval(rb_thread_struct * 0x009c4148, unsigned long 0) line 1048 + 314 bytes vm_eval_body(rb_thread_struct * 0x009c4148) line 1135 + 13 bytes vm_yield(rb_thread_struct * 0x009c4148, int 1, unsigned long * 0x0012bd20) line 602 + 628 bytes rb_yield(unsigned long 13540040) line 925 + 17 bytes rb_ensure(unsigned long (void)* 0x004294b0 rb_yield(unsigned long), unsigned long 13540040, unsigned long (void)* 0x004478a0 io_close(unsigned long), unsigned long 13540040) line 1210 + 7 bytes rb_io_s_open(int 1, unsigned long * 0x009e010c, unsigned long 11029940) line 4065 + 23 bytes rb_f_open(int 1, unsigned long * 0x009e010c) line 4249 + 20 bytes call_cfunc(unsigned long (void)* const 0x004482b0 rb_f_open(int, unsigned long *), const unsigned long 11098480, const int -1, const int 1, const unsigned long * const 0x009e010c) line 288 + 15 bytes vm_call_cfunc(rb_thread_struct * const 0x009c4148, rb_control_frame_t * const 0x00a5fcd8, const int 1, const unsigned long 4944, const unsigned long 11098480, const unsigned long 11106660, const unsigned long 8, const RNode * const 0x00a876a4, const rb_block_t * const 0x00a5fcec) line 378 + 37 bytes vm_eval(rb_thread_struct * 0x009c4148, unsigned long 0) line 1048 + 314 bytes vm_eval_body(rb_thread_struct * 0x009c4148) line 1135 + 13 bytes vm_yield(rb_thread_struct * 0x009c4148, int 1, unsigned long * 0x0012cac8) line 602 + 628 bytes rb_yield(unsigned long 13655720) line 925 + 17 bytes rb_ary_each(unsigned long 13655740) line 1131 + 18 bytes call_cfunc(unsigned long (void)* const 0x00404720 rb_ary_each(unsigned long), const unsigned long 13655740, const int 0, const int 0, const unsigned long * const 0x009e00f4) line 291 + 7 bytes vm_call_cfunc(rb_thread_struct * const 0x009c4148, rb_control_frame_t * const 0x00a5fd80, const int 0, const unsigned long 392, const unsigned long 13655740, const unsigned long 11059960, const unsigned long 0, const RNode * const 0x00a8bbf0, const rb_block_t * const 0x00a5fd94) line 378 + 37 bytes vm_eval(rb_thread_struct * 0x009c4148, unsigned long 0) line 1048 + 314 bytes vm_eval_body(rb_thread_struct * 0x009c4148) line 1135 + 13 bytes vm_invoke_proc(rb_thread_struct * 0x009c4148, rb_proc_t * 0x00d62c58, unsigned long 11098480, int 0, unsigned long * 0x009e00d0, rb_block_t * 0x00000000) line 617 + 781 bytes proc_call(int 0, unsigned long * 0x009e00d0, unsigned long 11637480) line 507 + 33 bytes call_cfunc(unsigned long (void)* const 0x004302d0 proc_call(int, unsigned long *, unsigned long), const unsigned long 11637480, const int -1, const int 0, const unsigned long * const 0x009e00d0) line 288 + 15 bytes vm_call_cfunc(rb_thread_struct * const 0x009c4148, rb_control_frame_t * const 0x00a5fe28, const int 0, const unsigned long 7400, const unsigned long 11637480, const unsigned long 10996860, const unsigned long 0, const RNode * const 0x00a7cc18, const rb_block_t * const 0x00000000) line 378 + 37 bytes vm_eval(rb_thread_struct * 0x009c4148, unsigned long 0) line 1048 + 314 bytes vm_eval_body(rb_thread_struct * 0x009c4148) line 1135 + 13 bytes vm_yield(rb_thread_struct * 0x009c4148, int 1, unsigned long * 0x0012e53c) line 602 + 628 bytes rb_yield(unsigned long 11637480) line 925 + 17 bytes rb_ary_each(unsigned long 11638180) line 1131 + 18 bytes call_cfunc(unsigned long (void)* const 0x00404720 rb_ary_each(unsigned long), const unsigned long 11638180, const int 0, const int 0, const unsigned long * const 0x009e00b4) line 291 + 7 bytes vm_call_cfunc(rb_thread_struct * const 0x009c4148, rb_control_frame_t * const 0x00a5fed0, const int 0, const unsigned long 392, const unsigned long 11638180, const unsigned long 11059960, const unsigned long 0, const RNode * const 0x00a8bbf0, const rb_block_t * const 0x00a5fee4) line 378 + 37 bytes vm_eval(rb_thread_struct * 0x009c4148, unsigned long 0) line 1048 + 314 bytes vm_eval_body(rb_thread_struct * 0x009c4148) line 1135 + 13 bytes vm_yield(rb_thread_struct * 0x009c4148, int 1, unsigned long * 0x0012f240) line 602 + 628 bytes rb_yield(unsigned long 1632270) line 925 + 17 bytes rb_ary_each(unsigned long 11774100) line 1131 + 18 bytes call_cfunc(unsigned long (void)* const 0x00404720 rb_ary_each(unsigned long), const unsigned long 11774100, const int 0, const int 0, const unsigned long * const 0x009e0098) line 291 + 7 bytes vm_call_cfunc(rb_thread_struct * const 0x009c4148, rb_control_frame_t * const 0x00a5ff78, const int 0, const unsigned long 392, const unsigned long 11774100, const unsigned long 11059960, const unsigned long 0, const RNode * const 0x00a8bbf0, const rb_block_t * const 0x00a5ff8c) line 378 + 37 bytes vm_eval(rb_thread_struct * 0x009c4148, unsigned long 0) line 1048 + 314 bytes vm_eval_body(rb_thread_struct * 0x009c4148) line 1135 + 13 bytes rb_iseq_eval(unsigned long 11474640) line 1343 + 9 bytes ruby_exec_node(void * 0x00af16d0, const char * 0x00000000) line 236 + 42 bytes ruby_run_node(void * 0x00af16d0) line 261 + 11 bytes main(int 13, char * * 0x009c3f78, char * * 0x009c3028) line 35 + 22 bytes MINIRUBY! mainCRTStartup + 227 bytes KERNEL32! 77e789d5() 最終的にはWindowsのカーネルの中で死んでるみたいですが、どうもよくわかり ません。 #メモリアリーナがどこかでぶっ壊されてたりするんでしょうか? -- 木村浩一