Hi,

I built a fresh CVS parrot with garbage collection and linked parrot
and imcc against Electric Fence.  A few tests failed.  The (edited)
results are here:

        http://www.technolalia.com/~ndronen/test-with-gc.txt

I don't think the mmap failures are important; I suspect they're induced
by fact that efence causes heap gobbling.  Still, there's this:

    # ElectricFence Aborting: free(45000000): address not from malloc().
    # ElectricFence Aborting: free(46000000): address not from malloc().

The stack traces from those aborts:

    $ gdb -q parrot core-interp.t
    Core was generated by `./parrot --gc-debug t/op/interp_6.pasm'.
        [ snip ]
    #0  0x400ebce1 in kill () from /lib/libc.so.6
    (gdb) where
    #0  0x400ebce1 in kill () from /lib/libc.so.6
    #1  0x400c1eb6 in EF_Abort () from /usr/lib/libefence.so.0
    #2  0x400c17c4 in free () from /usr/lib/libefence.so.0
    #3  0x080a5f66 in mem_sys_free (from=0x45000000) at memory.c:48
    #4  0x08125f7f in Parrot_destroy_header_pools (interpreter=0x43b4bcd0)
                      at headers.c:444
    #5  0x08064ce2 in Parrot_really_destroy (exit_code=0, vinterp=0x43b4bcd0)
                      at interpreter.c:883
    #6  0x08127445 in Parrot_exit (status=0) at exit.c:66
    #7  0x0805e845 in main (argc=1, argv=0xbffff53c) at main.c:515
    
    $ gdb -q parrot core-pmc.t
    Core was generated by `./parrot --gc-debug t/pmc/pmc_59.pasm'.
        [ snip ]
    #0  0x400ebce1 in kill () from /lib/libc.so.6
    (gdb) where
    #0  0x400ebce1 in kill () from /lib/libc.so.6
    #1  0x400c1eb6 in EF_Abort () from /usr/lib/libefence.so.0
    #2  0x400c17c4 in free () from /usr/lib/libefence.so.0
    #3  0x080a5f66 in mem_sys_free (from=0x46000000) at memory.c:48
    #4  0x08125f7f in Parrot_destroy_header_pools (interpreter=0x44ee3cd0)
                   at headers.c:444
    #5  0x08064ce2 in Parrot_really_destroy (exit_code=0, vinterp=0x44ee3cd0)
                      at interpreter.c:883
    #6  0x08127445 in Parrot_exit (status=0) at exit.c:66
    #7  0x0805e845 in main (argc=1, argv=0xbffff53c) at main.c:515

Rebuilding with --gc=malloc generated a few warnings, but no efence
aborts during make test:

    malloc.c
    malloc.c:1271: warning: function declaration isn't a prototype
    malloc.c: In function `sYSMALLOc':
    malloc.c:2875: warning: declaration of `brk' shadows global declaration
    malloc.c: In function `memalign':
    malloc.c:4220: warning: declaration of `brk' shadows global declaration
    malloc.c: In function `mallinfo':
    malloc.c:4639: warning: function returns an aggregate
    malloc.c:4663: warning: comparison between signed and unsigned
    malloc.c: At top level:
    malloc.c:4699: warning: function declaration isn't a prototype
    malloc.c: In function `malloc_stats':
    malloc.c:4700: warning: function call has aggregate value
    malloc.c:4716: warning: implicit declaration of function `PIO_eprintf'

Regards,

Nick

Reply via email to