[Openmcl-devel] ARM testing
gb at clozure.com
Thu Jan 20 05:13:56 UTC 2011
On Wed, 19 Jan 2011, David Brown wrote:
> On Wed, Jan 19 2011, Gary Byers wrote:
>> Bootstrapping that change is a bit complicated (it affects how consing
>> works, among other things.) While trying to get things working in the
>> trunk, I added a workaround in the CCL kernel: if we get an illegal
>> instruction exception and the instruction is a conditional trap whose
>> condition was false, just skip over the instruction. That enables code
>> to run, but there's noticeable overhead (we spend a lot oftime handling
>> and ignoring conditional traps that are being executed unconditionally.)
>> If that change was backported to 1.6, you'd at least be able to run.
> Would it be easier to just checkin a new image for arm? I don't mind
> running trunk.
The (small) trick:
- checkout the trunk
- rebuild the lisp kernel
- rebuild the image, using the new kernel
- rebuild the image again
>>> The CPU is an ARM v7 (QSD8x50, same as what's in the Nexus One).
>> I missed that on first reading. It just so happens that my phone is
>> a Nexus One, so my confidence in this explanation just went from ~90%
>> to ~100%.
> Have you found much change needed between Android and libc? Android's
> libc is kind of spartan, and only tends to implement what they needed
> for Android itself.
CCL's use of libc is also pretty minimal; we mostly just call things that're
wrappers around system calls, and the actual Linux syscalls are the same.
There were a few things that were just missing (whatever's used to enumerate
IP interfaces, constants from sysexits.h.) The bigger problems were with
things that were implemented incorrectly (signal mask handling) and with
differences between dynamic linkers.
More information about the Openmcl-devel