[parrot/parrot] 0fc4be: [gc] fix SIGBUS in GC trace_mem_block on alignment...

GitHub noreply at github.com
Sun Feb 8 14:11:13 UTC 2015


  Branch: refs/heads/master
  Home:   https://github.com/parrot/parrot
  Commit: 0fc4befcf67fc23e64348bd10a7430b9c8562989
      https://github.com/parrot/parrot/commit/0fc4befcf67fc23e64348bd10a7430b9c8562989
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2015-02-08 (Sun, 08 Feb 2015)

  Changed paths:
    M ChangeLog
    M src/gc/system.c

  Log Message:
  -----------
  [gc] fix SIGBUS in GC trace_mem_block on alignment-strict CPUs (armv5)

We traced all mem and stack pointers +1 and not by +4 or +8. This is not
only a huge performance loss, it is also illegal on certain RISC
architectures.  ptrdiff_t is not a pointer, it is an integer.
use size_t* instead.
Note that this is not repro in qemu, even not with echo 5>/proc/cpu/alignment
on armv5-linux.

Should fix GH #1200.




More information about the parrot-commits mailing list