Perhaps this is a known issue...

Most parrot programs seem to crash on x86 when the latest CVS parrot 
is compiled with "-O2" or "-g -O2" and when JIT is enabled.
The programs appear to run to completion and only crash prior to exitting.
Repeatable on both Cygwin and Linux x86.
When JIT is not used, everything is fine.

Cygwin: gcc version 2.95.3-5 (cygwin special)
Linux:  gcc 2.96

$ perl ./assemble.pl examples/assembly/mops.pasm | ./parrot -j -
Iterations:    100000000
Estimated ops: 200000000
Elapsed time:  1.133729
M op/s:        176.409004
Segmentation fault (core dumped)

$ gdb ./parrot core
GNU gdb 5.1.1

#0  runops_jit (interpreter=0x80f7a90, pc=0x810e668) at interpreter.c:239
239         Interp_flags_CLEAR(interpreter, PARROT_JIT_FLAG);

(gdb) print interpreter
$1 = (struct Parrot_Interp *) 0x1

(gdb) where
#0  runops_jit (interpreter=0x80f7a90, pc=0x810e668) at interpreter.c:239
#1  0x080499c4 in runops (interpreter=0x80f7a90, code=0x810e4f0, offset=0)
    at interpreter.c:371
#2  0x08070dbc in Parrot_runcode (interpreter=0x80f7a90, argc=1, 
    argv=0xbffff9ac) at embed.c:311
#3  0x0809e67a in main (argc=1, argv=0xbffff9ac) at test_main.c:50
#4  0x400a9280 in __libc_start_main () from /lib/libc.so.6

`interpreter' seems to change in value from 0x80f7a90 to 0x1 when
it drops out of the call to `(jit_code) (interpreter);'
The stack (or stack pointer?) appears to be corrupted.

parrot compile flags:

-fno-strict-aliasing -I/usr/local/include -g -O2 -Wall -Wstrict-prototypes 
-Wmissing-prototypes
-Winline -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings 
-Waggregate-return
-Winline -W -Wno-unused -Wsign-compare  -I./include  -DHAS_JIT -DI386 
-DHAVE_COMPUTED_GOTO


__________________________________________________
Do you Yahoo!?
Faith Hill - Exclusive Performances, Videos & More
http://faith.yahoo.com

Reply via email to