chromatic wrote:
On Monday 30 June 2008 13:00:37 Will Coleda wrote:

# New Ticket Created by  Will Coleda
# Please include the string:  [perl #56484]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=56484 >


Any time we can produce a segfault, that's bad. CC'ing rt to get a ticket.

On Mon, Jun 30, 2008 at 3:55 PM, Ron Blaschke <[EMAIL PROTECTED]> wrote:
Given a regular x86 (GNU/Linux) box, using GCC 4.2.3, should the
following produce a working Parrot, using 64-bit ints?

 perl Configure.pl --intval="long long int" --opcode="long long int"

If fails for me on C<make> while building PGE.

 ../../parrot -o PGE.pbc --output-pbc PGE.pir
 ../../parrot ../../runtime/parrot/library/PGE/Perl6Grammar.pir
--output=PGE/builtins_gen.pir PGE/builtins.pg
 make[1]: *** [PGE.pbc] Segmentation fault
 make[1]: *** Deleting file `PGE.pbc'

The resulting Parrot is partially usable, though.

 $ ./parrot examples/pasm/hello.pasm
 Hello World

Ron, do you get any warning messages during Configure?  I see:

Figuring out how to pack() Parrot's types...Configure.pl: Unable to find a functional packtype for intvalsize. 'q' failed: Invalid type 'q' in pack at config/auto/pack.pm line 62.

Configure.pl:  Unable to find a functional packtype for opcode_t_size.
'q' failed: Invalid type 'q' in pack at config/auto/pack.pm line 62.

I'm only seeing this warning during Configure.

Determining some sizes...
Hmm, I see your chosen INTVAL isn't the same size as your pointers.  Parrot
should still compile and run, but you may see a ton of warnings.
.............................................done.

But I'm using a "long long" Perl build.  Sorry, forgot to mention that.

$ perl -V:ivtype
ivtype='long long';


There are also plenty of build warnings, such as:

src/headers.c: In function ‘Parrot_destroy_header_pools’:
src/headers.c:912: warning: cast to pointer from integer of different size

I suspect that fixing those would fix the segfaults.

I'm getting those too.  Some pieces don't seem to fit together.

On my system, miniparrot crashes; can you provide a backtrace?

Here's the one from the PGE segfault above.

(gdb) backtrace 10
#0 0xb7deba88 in compact_pool (interp=0x8052040, pool=0x8052b60) at src/gc/resources.c:450 #1 0xb7debe0d in Parrot_go_collect (interp=0x8052040) at src/gc/resources.c:564 #2 0xb7c6aeae in Parrot_dod_ms_run (interp=0x8052040, flags=1) at src/gc/dod.c:1141 #3 0xb7c6afe6 in Parrot_do_dod_run (interp=0x8052040, flags=1) at src/gc/dod.c:1194 #4 0xb7c6cdb0 in more_traceable_objects (interp=0x8052040, pool=0x8072cd8) at src/gc/smallobject.c:163 #5 0xb7c6ce8a in gc_ms_get_free_object (interp=0x8052040, pool=0x8072cd8) at src/gc/smallobject.c:245 #6 0xb7c703a7 in new_pmc_header (interp=0x8052040, flags=1024) at src/headers.c:322 #7 0xb7cc05e2 in get_new_pmc_header (interp=0x8052040, base_type=34, flags=1024) at src/pmc.c:246
#8  0xb7cc012a in pmc_new (interp=0x8052040, base_type=34) at src/pmc.c:71
#9 0xb7ed0591 in Parrot_PMCProxy_nci_parents (interp=0x8052040, pmc=0x8212938)


Here's one running "parrot examples/shootout/ack.pir".

(gdb) backtrace 10
#0  0xb69c19b5 in memcpy () from /lib/tls/i686/cmov/libc.so.6
#1 0xb7d14b4b in compact_pool (interp=0x8052040, pool=0x8052b60) at src/gc/resources.c:473 #2 0xb7d14e0d in Parrot_go_collect (interp=0x8052040) at src/gc/resources.c:564 #3 0xb7b93eae in Parrot_dod_ms_run (interp=0x8052040, flags=1) at src/gc/dod.c:1141 #4 0xb7b93fe6 in Parrot_do_dod_run (interp=0x8052040, flags=1) at src/gc/dod.c:1194 #5 0xb7b95db0 in more_traceable_objects (interp=0x8052040, pool=0x8072cd8) at src/gc/smallobject.c:163 #6 0xb7b95e8a in gc_ms_get_free_object (interp=0x8052040, pool=0x8072cd8) at src/gc/smallobject.c:245 #7 0xb7b993a7 in new_pmc_header (interp=0x8052040, flags=1024) at src/headers.c:322 #8 0xb7be95e2 in get_new_pmc_header (interp=0x8052040, base_type=20, flags=1024) at src/pmc.c:246
#9  0xb7be912a in pmc_new (interp=0x8052040, base_type=20) at src/pmc.c:71

Ron

Reply via email to