[Openmcl-devel] Invalid CDB Files?

Gary Byers gb at clozure.com
Fri Dec 29 07:47:54 UTC 2006

The good news is that I'm getting close to having a releasable interface
translator that can handle ObjC 2.x syntax.  (I stopped whining and merged
a couple of gcc branches together.)

The bad news is that I just discovered that the Darwin ppc64 port
seems to have trouble loading shared libraries under ... post-Tiger
systems.  The ultimate reason for this has to do with the lisp
expecting some low-memory pages that contain things like NIL being
unused until the lisp kernel maps them in from the heap image; there's
never been any guarantee that the dynamic linker wouldn't decide to
use those pages for its own evil purposes, and if the lisp steps on
some dynamic linker data it's not too surprising that loading shared
libraries or trying to resolve symbols in those libraries starts to
fail.  The dynamic linker seems glad to map its data elsewhere under
Tiger and earlier, but that's probably just been blind luck.

The workaround for this involves being more explicit about needing the
memory pages in question.  For arcane reasons, it'll also involve
changing the address of NIL (which is assumed to be a constant) and
that in turn will involve some bootstrapping/chaos.  I'll have to look
more carefully at the ppc32 and x86-64 Darwin ports: they seem to be
lucking out (the pages that they assume are free are indeed free), but
so was the ppc64 until fairly recently.  It might be wise to make a
similar change to the ppc32 & x86-64 ports as well, rather than trust
that their luck will hold.

- total chaos in CVS for a day or two until all hosts/targets agree
   on where NIL is
- new snapshots soon after
- interface translator is a separate/orthogonal issue, but I can
   probably put together a set of patches relative to Apple's
   GCC-5363 (sources to which are available on an Apple website.)
   This would probably only be of interest to people with access
   to Leopard via ADC; it'd be of even more interest to those people
   if OpenMCL could reliably load and use shared libraries on
   platforms of interest.

On Thu, 21 Dec 2006, Phil wrote:

> It's been a while since anything was stated on the topic of Leopard
> testing.  So just checking in to see if things are nearing a point
> where said testing would be worthwhile?
> Thanks,
> Phil
> On Nov 1, 2006, at 3:00 AM, Gary Byers wrote:
>> That support (for both ppc64 and x86-64) is an announced feature of
>> Leopard.
>> (I have, coincidentally, been working on this lately.  If/when things
>> reach some level of usability, it'd be good if there was some way of
>> (a) making Leopard .cdb files available to Leopard beta testers and
>> (b) doing (a) in a way that doesn't violate the letter/spirit of
>>      applicable NDAs.)
> _______________________________________________
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
> http://clozure.com/mailman/listinfo/openmcl-devel

More information about the Openmcl-devel mailing list