This commit could be breaking, since it was done for the sake of 64-bit systems and untested on 32-bit: https://github.com/mono/mono/commit/f37d7a9fcea4b0ece5ac461506d6029e37373fae
(I have no idea if it is correct or not, so just keep in mind it may be worth trying to revert it.)
UPD. This is wrong and should be reverted or fixed: https://github.com/mono/mono/commit/2f2771fcfa22ac16a24a6a1ff2554440e5de29ca
Looking further at Mono code, I am always suspicious of commits claiming to fix something, since they often break something else which a commit author is unaware of or does not care about. Look at this, for example: https://github.com/mono/mono/commit/0d464be2b3ae6f7ddb9a3f3c97622a988be8ae33
It does not do what it claims in the title: while perhaps fixing ELF ABI2 compliance, it also modifies unrelated ppc code in few instances. Are those changes actually correct? I have no idea, but we can be sure they were never tested outside of whatever Linux ABI2 was tested on.
Assuming Mono did work on Darwin ppc at some point of time (the latest they have a binary for is 2.10.5), any changes to assembler code or function conventions are potentially breaking, since obviously nothing was ever tested ever since.
UPD. Also this may or may not be okay: https://github.com/mono/mono/commit/ca47362a921ba3ce58b2ae75b319d06b74feef1e
And this:
[ppc] use different thunk machinery that works on ppc64 · mono/mono@f37d7a9
The old thunk machinery was sort of working on 64bit (before f4bd0844383cd3d48109279dc1e930d038afc47 ), but it relies on having on the memory layout of allocated chunks for code. Either the propert...
github.com
Last edited: