[Openmcl-devel] IDE compilation failure on darwinppc64
gb at clozure.com
Thu Sep 11 03:12:44 EDT 2008
It's a known issue (but apparently not a well-advertised one); the
ObjC bridge doesn't work on ppc64.
The two things that I remember that need doing involve:
1) support for calling ObjC methods that take a variable number of
arguments (as in
(#/stringWithFormat: ns:ns-string #@"hello, %a" #@"world.")
(The old way of doing this - prior to the WWDC 2007 Leopard
betas - involved the foreign type :<MARG> ...)
2) Adding support for ObjC 2.0 exception handling, similar to
what was done for x8664. (This basically involves adding a
bunch of debugging metainfo to the code in the lisp kernel
that does foreign-funtion calls, so that the point of the
call would be effectively declared as an exception handler.
The stuff in lisp-kernel/x86-spentry64.s that's inside
and the stuff at the bottom of the file basically comprise
Neither of those things is a -huge- amount of work (doing (2)
on x8664 took a while, but the ppc64 metainfo would be very
similar.) The same Leopard prerelease that introduced these
changes (WWDC 2007) broke signal handling on ppc64 (so that
even a simple C program that did very tame, basic signal
handling would crash trying to return from the handler), and
running ppc64 CCL on those betas was hopeless until that
bug was eventually fixed (not too long before Leopard was
There's been plenty of time since then to get the bridge
working on ppc64, but it hasn't gotten done.
On Wed, 10 Sep 2008, Garth Corral wrote:
> Hi all, I've searched the list archives and the clozure wiki but can
> find not reference to my issue so I thought I post here to see if
> anyone can help.
> I've recently installed ccl on my G5 system running OS X 10.5.4. I'm
> new to clozure but as near as I can tell, all seems well (using ppc64
> just because). Until, that is, I tried building the IDE using the
> procedure in the manual. It fails for me with the following:
> Welcome to Clozure Common Lisp Version 1.2-r10552 (DarwinPPC64)!
> ? (require :cocoa-application)
> > Error: Unknown foreign type: :<MARG>
> > While executing: %PARSE-FOREIGN-TYPE, in process listener(1).
> > Type :POP to abort, :R for a list of available restarts.
> > Type :? for other options.
> 1 >
> I've tried this with the 1.2 tarball, updated from svn, and with fresh
> trunk checkout. They all fail in the same way. It worked fine for me
> with the ppc32 image as well as X8664 on my MacBook Pro. I searched
> around to see if this was a known issue or it simply isn't supported
> but I came up empty. Any assistance with this will be appreciated.
> It isn't absolutely essential that I use the 64 bit image but if I can
> get it to work, why not? ;-)
> Thanks in advance,
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
More information about the Openmcl-devel