From: dc@... Date: 2016-09-21T20:56:31+00:00 Subject: [ruby-core:77340] [Ruby trunk Bug#5244] Continuation causes Bus Error on Debian sparc Issue #5244 has been updated by Dennis Clarke. This may still be a problem on Solaris sparc64 where the link stage fails thus : ~~~ compiling vm.c "./include/ruby/st.h", line 85: warning: nonportable bit-field type "vm_insnhelper.c", line 1838: warning: statement not reached "vm.inc", line 1443: warning: statement not reached "vm.inc", line 1671: warning: statement not reached "vm_exec.c", line 125: warning: statement not reached "vm_method.c", line 1220: warning: statement not reached "vm_method.c", line 1259: warning: statement not reached "vm_eval.c", line 249: warning: statement not reached "vm_eval.c", line 1066: warning: statement not reached "vm.c", line 442: warning: statement not reached "vm.c", line 1786: warning: "__typeof__" is an extension of ANSI C gmake[1]: Leaving directory `/usr/local/build/ruby-2.2.5_SunOS5.10_sparcv9.001' processing probes in object files linking miniruby Undefined first referenced symbol in file asm sparc.o ld: fatal: symbol referencing errors. No output written to miniruby gmake: *** [miniruby] Error 2 $ ~~~ This is Solaris 10 sparc on a T5240 with Oracle Studio compilers version 12.5 and using strict ANSI compliance mode and c99 compiler flags : $ echo $CFLAGS -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xc -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 Perhaps I need to use just cc and a transition mode option that is not so strict about C code compliance ? ---------------------------------------- Bug #5244: Continuation causes Bus Error on Debian sparc https://bugs.ruby-lang.org/issues/5244#change-60585 * Author: Lucas Nussbaum * Status: Closed * Priority: Normal * Assignee: Naohisa Goto * ruby -v: - * Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN ---------------------------------------- Hi, $ ./miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext -rcontinuation -e 'callcc { |c| c.call }' -e:1: [BUG] Bus Error ruby 1.9.3dev (2011-08-26) [sparc-linux] -- Control frame information ----------------------------------------------- c:0004 p:---- s:0009 b:0009 l:000008 d:000008 CFUNC :callcc c:0003 p:0009 s:0006 b:0006 l:000fcc d:001d74 EVAL -e:1 c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH c:0001 p:0000 s:0002 b:0002 l:000fcc d:000fcc TOP -- Ruby level backtrace information ---------------------------------------- -e:1:in `
' -e:1:in `callcc' -- C level backtrace information ------------------------------------------- Bus error gdb says: (gdb) run -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext -rcontinuation -e 'callcc { |c| c.call }' Starting program: /home/lucas/ruby1.9.1-1.9.3~preview1+svn33077/miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext -rcontinuation -e 'callcc { |c| c.call }' [Thread debugging using libthread_db enabled] [New Thread 0xf7fc7b70 (LWP 31418)] [Thread 0xf7fc7b70 (LWP 31418) exited] process 31417 is executing new program: /home/lucas/ruby1.9.1-1.9.3~preview1+svn33077/ruby1.9.1 [Thread debugging using libthread_db enabled] [New Thread 0xf79e5b70 (LWP 31419)] Program received signal SIGBUS, Bus error. 0xf7f4d304 in cont_capture (stat=Cannot access memory at address 0x49 ) at cont.c:439 439 if (ruby_setjmp(cont->jmpbuf)) { (gdb) print cont Cannot access memory at address 0xfffffff9 ---Files-------------------------------- ruby.patch (480 Bytes) flush_windows.patch (2.19 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: