A bug exposed in Ubuntu 8.10 is that return types smaller than a word are treated as words so:
return (result == CPNATIVE_OK) ? 1 : 0
test edi, edi
without eax having been cleared. As we look at eax we see both the least significant byte (of 0 or 1) and junk in the most significant 3 bytes. This is sufficient to not allow Jikes RVM to run several of the DaCapo benchmarks on Ubuntu 8.10.
Ubuntu 8.10 x86-64-linux