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

Reply via email to