From: xtkoba+ruby@... Date: 2021-05-28T19:12:00+00:00 Subject: [ruby-core:104087] [Ruby master Bug#17923] try to mark T_NONE object with miniruby x86 Win32 buildt with MSVC Issue #17923 has been updated by xtkoba (Tee KOBAYASHI). This issue reminded me of #17606, which seems to actually affect also i386-mswin32 according to: https://docs.microsoft.com/en-us/cpp/build/reference/zp-struct-member-alignment If so, the following patch is worth applying: ```diff --- a/vm_core.h +++ b/vm_core.h @@ -218,7 +218,7 @@ /* iseq data type */ typedef struct rb_compile_option_struct rb_compile_option_t; -#if (SIZEOF_SERIAL_T > SIZEOF_VOIDP) && defined(__CYGWIN__) +#if (SIZEOF_SERIAL_T > SIZEOF_VOIDP) && (defined(_MSC_VER) || defined(__CYGWIN__)) #pragma pack(push, 4) /* == SIZEOF_VOIDP */ #endif @@ -232,7 +232,7 @@ // v3 }; -#if (SIZEOF_SERIAL_T > SIZEOF_VOIDP) && defined(__CYGWIN__) +#if (SIZEOF_SERIAL_T > SIZEOF_VOIDP) && (defined(_MSC_VER) || defined(__CYGWIN__)) #pragma pack(pop) #endif ``` user:NuriYuri Could you try applying the above patch and see if anything changes? ---------------------------------------- Bug #17923: try to mark T_NONE object with miniruby x86 Win32 buildt with MSVC https://bugs.ruby-lang.org/issues/17923#change-92260 * Author: NuriYuri (Youri Nouri) * Status: Open * Priority: Normal * ruby -v: ruby 3.1.0dev (2021-05-28) [i386-mswin32_140] * Backport: 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN ---------------------------------------- Hello, I was asked to open a new bug ticket for this specific issue in this thread: https://bugs.ruby-lang.org/issues/17864#note-6 When I try to build ruby using "Visual Studio 2019 Developer Command Prompt v16.9.4". ``` 0x00a6df24 [2 M ] T_NONE ./tool/generic_erb.rb:7: [BUG] try to mark T_NONE object ruby 3.1.0dev (2021-05-28) [i386-mswin32_140] -- Control frame information ----------------------------------------------- c:0003 p:---- s:0023 e:000022 CFUNC :require c:0002 p:0011 s:0018 E:002370 EVAL ./tool/generic_erb.rb:7 [FINISH] c:0001 p:0000 s:0003 E:0006d0 (none) [FINISH] -- Ruby level backtrace information ---------------------------------------- ./tool/generic_erb.rb:7:in `
' ./tool/generic_erb.rb:7:in `require' -- C level backtrace information ------------------------------------------- C:\WINDOWS\SYSTEM32\ntdll.dll(NtWaitForSingleObject+0xc) [0x770C29DC] C:\WINDOWS\System32\KERNELBASE.dll(WaitForSingleObject+0x12) [0x754F0452] D:\nuriy\Downloads\ruby\miniruby.exe(rb_print_backtrace+0x2f) [0x002B8E04] D:\nuriy\Downloads\ruby\vm_dump.c:778 D:\nuriy\Downloads\ruby\miniruby.exe(rb_vm_bugreport+0xd1) [0x002B8ED7] D:\nuriy\Downloads\ruby\vm_dump.c:1044 D:\nuriy\Downloads\ruby\miniruby.exe(rb_bug_without_die+0x43) [0x001E02ED] D:\nuriy\Downloads\ruby\error.c:777 D:\nuriy\Downloads\ruby\miniruby.exe(rb_bug+0xf) [0x001E0242] D:\nuriy\Downloads\ruby\error.c:785 D:\nuriy\Downloads\ruby\miniruby.exe(gc_mark_ptr+0x7f) [0x001ECCA5] D:\nuriy\Downloads\ruby\gc.c:6606 D:\nuriy\Downloads\ruby\miniruby.exe(cc_table_mark_i+0x4f) [0x001EB165] D:\nuriy\Downloads\ruby\gc.c:2966 D:\nuriy\Downloads\ruby\miniruby.exe(rb_id_table_foreach+0x46) [0x0028B4D7] D:\nuriy\Downloads\ruby\id_table.c:299 D:\nuriy\Downloads\ruby\miniruby.exe(cc_table_mark+0x2f) [0x001EB111] D:\nuriy\Downloads\ruby\gc.c:2981 D:\nuriy\Downloads\ruby\miniruby.exe(gc_mark_children+0x1cc) [0x001EC6D8] D:\nuriy\Downloads\ruby\gc.c:6826 D:\nuriy\Downloads\ruby\miniruby.exe(rgengc_rememberset_mark+0xa5) [0x001F3F55] D:\nuriy\Downloads\ruby\gc.c:8213 D:\nuriy\Downloads\ruby\miniruby.exe(gc_marks_start+0xce) [0x001ED365] D:\nuriy\Downloads\ruby\gc.c:7773 D:\nuriy\Downloads\ruby\miniruby.exe(gc_start+0x1d8) [0x001EE7A3] D:\nuriy\Downloads\ruby\gc.c:8883 D:\nuriy\Downloads\ruby\miniruby.exe(heap_prepare+0x6d) [0x001F0604] D:\nuriy\Downloads\ruby\gc.c:2150 D:\nuriy\Downloads\ruby\miniruby.exe(newobj_slowpath_wb_protected+0x5b) [0x001F0F46] D:\nuriy\Downloads\ruby\gc.c:2539 D:\nuriy\Downloads\ruby\miniruby.exe(newobj_of0+0x62) [0x001F0ECF] D:\nuriy\Downloads\ruby\gc.c:2581 D:\nuriy\Downloads\ruby\miniruby.exe(newobj_of+0x1a) [0x001F0E56] D:\nuriy\Downloads\ruby\gc.c:2593 D:\nuriy\Downloads\ruby\miniruby.exe(rb_wb_protected_newobj_of+0x1c) [0x001F3BD7] D:\nuriy\Downloads\ruby\gc.c:2616 D:\nuriy\Downloads\ruby\miniruby.exe(str_new0+0x1d) [0x00285E00] D:\nuriy\Downloads\ruby\string.c:795 D:\nuriy\Downloads\ruby\miniruby.exe(str_new+0x13) [0x00285DDE] D:\nuriy\Downloads\ruby\string.c:814 D:\nuriy\Downloads\ruby\miniruby.exe(rb_str_new+0x14) [0x00280CFB] D:\nuriy\Downloads\ruby\string.c:820 D:\nuriy\Downloads\ruby\miniruby.exe(rb_io_getline_fast+0x87) [0x002040A5] D:\nuriy\Downloads\ruby\io.c:3477 D:\nuriy\Downloads\ruby\miniruby.exe(rb_io_getline_0+0xee) [0x00203D27] D:\nuriy\Downloads\ruby\io.c:3613 D:\nuriy\Downloads\ruby\miniruby.exe(rb_io_gets_internal+0x2c) [0x002041E1] D:\nuriy\Downloads\ruby\io.c:3743 D:\nuriy\Downloads\ruby\miniruby.exe(lex_io_gets+0xb) [0x00233A3D] D:\nuriy\Downloads\ruby\parse.y:6389 D:\nuriy\Downloads\ruby\miniruby.exe(lex_getline+0xf) [0x002339F3] D:\nuriy\Downloads\ruby\parse.y:6340 D:\nuriy\Downloads\ruby\miniruby.exe(nextline+0x42) [0x00235616] D:\nuriy\Downloads\ruby\parse.y:6507 D:\nuriy\Downloads\ruby\miniruby.exe(nextc+0x27) [0x002355A5] D:\nuriy\Downloads\ruby\parse.y:6549 D:\nuriy\Downloads\ruby\miniruby.exe(parser_yylex+0x82) [0x00237C9D] D:\nuriy\Downloads\ruby\parse.y:9159 D:\nuriy\Downloads\ruby\miniruby.exe(ruby_yyparse+0x36f) [0x0023B107] D:\nuriy\Downloads\ruby\parse.c:6800 D:\nuriy\Downloads\ruby\miniruby.exe(yycompile0+0x78) [0x00241DB6] D:\nuriy\Downloads\ruby\parse.y:6252 D:\nuriy\Downloads\ruby\miniruby.exe(rb_suppress_tracing+0xad) [0x002BAC60] D:\nuriy\Downloads\ruby\vm_trace.c:436 D:\nuriy\Downloads\ruby\miniruby.exe(yycompile+0x58) [0x00241D23] D:\nuriy\Downloads\ruby\parse.y:6300 D:\nuriy\Downloads\ruby\miniruby.exe(rb_parser_compile_file_path+0x37) [0x0023997E] D:\nuriy\Downloads\ruby\parse.y:6403 D:\nuriy\Downloads\ruby\miniruby.exe(load_file_internal+0x2ff) [0x0026D171] D:\nuriy\Downloads\ruby\ruby.c:2200 D:\nuriy\Downloads\ruby\miniruby.exe(rb_ensure+0x9d) [0x001E3661] D:\nuriy\Downloads\ruby\eval.c:1166 D:\nuriy\Downloads\ruby\miniruby.exe(load_file+0x38) [0x0026CE6D] D:\nuriy\Downloads\ruby\ruby.c:2334 D:\nuriy\Downloads\ruby\miniruby.exe(rb_parser_load_file+0x2d) [0x0026F0C6] D:\nuriy\Downloads\ruby\ruby.c:2356 D:\nuriy\Downloads\ruby\miniruby.exe(load_iseq_eval+0x31) [0x0020CDF8] D:\nuriy\Downloads\ruby\load.c:588 D:\nuriy\Downloads\ruby\miniruby.exe(require_internal+0x175) [0x0020DE88] D:\nuriy\Downloads\ruby\load.c:1076 D:\nuriy\Downloads\ruby\miniruby.exe(rb_require_string+0x16) [0x0020DC51] D:\nuriy\Downloads\ruby\load.c:1142 D:\nuriy\Downloads\ruby\miniruby.exe(rb_f_require+0xb) [0x0020D4AA] D:\nuriy\Downloads\ruby\load.c:838 D:\nuriy\Downloads\ruby\miniruby.exe(ractor_safe_call_cfunc_1+0xe) [0x002A98DC] D:\nuriy\Downloads\ruby\vm_insnhelper.c:2767 D:\nuriy\Downloads\ruby\miniruby.exe(vm_call_cfunc_with_frame+0xe2) [0x002AFE4E] D:\nuriy\Downloads\ruby\vm_insnhelper.c:2945 D:\nuriy\Downloads\ruby\miniruby.exe(vm_sendish+0x130) [0x002B6879] D:\nuriy\Downloads\ruby\vm_insnhelper.c:4516 D:\nuriy\Downloads\ruby\miniruby.exe(vm_exec_core+0xa8d) [0x002B2CC2] D:\nuriy\Downloads\ruby\vm_exec.c:143 D:\nuriy\Downloads\ruby\miniruby.exe(rb_vm_exec+0xa8) [0x002AD435] D:\nuriy\Downloads\ruby\vm.c:2173 D:\nuriy\Downloads\ruby\miniruby.exe(rb_iseq_eval_main+0x1c) [0x002AB4CA] D:\nuriy\Downloads\ruby\vm.c:2417 D:\nuriy\Downloads\ruby\miniruby.exe(rb_ec_exec_node+0xb3) [0x001E3363] D:\nuriy\Downloads\ruby\eval.c:317 D:\nuriy\Downloads\ruby\miniruby.exe(ruby_run_node+0x3e) [0x001E4A42] D:\nuriy\Downloads\ruby\eval.c:375 D:\nuriy\Downloads\ruby\miniruby.exe(main+0x41) [0x001A1041] D:\nuriy\Downloads\ruby\main.c:47 D:\nuriy\Downloads\ruby\miniruby.exe(__scrt_common_main_seh+0xfa) [0x002C797E] d:\agent\_work\3\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288 C:\WINDOWS\System32\KERNEL32.DLL(BaseThreadInitThunk+0x19) [0x7530FA29] C:\WINDOWS\SYSTEM32\ntdll.dll(RtlGetAppContainerNamedObjectPath+0x11e) [0x770B7A7E] -- Other runtime information ----------------------------------------------- * Loaded script: ./tool/generic_erb.rb * Loaded features: 0 enumerator.so 1 thread.rb 2 fiber.so 3 rational.so 4 complex.so 5 ruby2_keywords.rb 6 D:/nuriy/Downloads/ruby/lib/cgi/util.rb 7 D:/nuriy/Downloads/ruby/lib/erb/version.rb 8 D:/nuriy/Downloads/ruby/lib/erb.rb NMAKE : fatal error U1077: '.\miniruby.exe'�: code retour '0x3' Stop.``` -- https://bugs.ruby-lang.org/ Unsubscribe: