On 26 Dec 2015, at 20:44, Dmitry Moskalchuk <[email protected]> wrote: > > Practically, the best choice might be running GNU/Linux in qemu-arm, ssh > there, and run libobjc2 tests on it. At least, doing that would be > _much_ easier than setting up Android development environment.
I managed to get a development environment set up in qemu. All of the ARM-specific codepaths now work correctly: - Message sending works - Blocks as IMPs work - C++ exceptions work. The property introspection test was failing, because char is unsigned char and not signed char on ARM Linux. That’s also now fixed. Interestingly, the ManyManySelectors test fails on ARM Linux, because it maps things below the 128KB line and so the selector code thinks that some pointer values are valid selector IDs. This won’t be a problem if you don’t register more than 2^16 selectors (not an issue for most code - we shipped with a bug where message sending was broken with more than this many selectors for years and only one program so far has triggered it). It’s probably fixable by ignoring the top bit in the sel id for lookup (it’s already ignored for the asm paths) and using it to distinguish the values. I’ll think about this, as it’s a bit complex on big-endian systems. David -- Sent from my IBM 1620 _______________________________________________ Gnustep-dev mailing list [email protected] https://lists.gnu.org/mailman/listinfo/gnustep-dev
