The attached patch adds linkage table support for PowerPC Darwin. I'd
like people who are running a variety of systems to test this against
current CVS SBCL (make sure it's at least 0.8.17.31) because I ran into
gcc-specific problems when testing this on my systems. Specifically,
the particular revision of gcc 3.1 affected whether or not the patch
worked. However, gcc 3.3 seems to work fine these days for compiling
SBCL, and older gcc 3.1s seem to be fine, so I've decided to revert the
CC definition back to your system's default gcc.
If you see a hang at the beginning of target-2, please reply with what
gcc --version says, and what version of Xcode you have installed.
Linux/PowerPC users: please edit src/compiler/parms/ppc.lisp and try to
find an address range for the linkage tables. The values I put in there
may work; if so, delete the #!+darwin and enclosing progn and let me
know; otherwise, please tell me what addresses work for Linux.
Also, lazy foreign functions don't seem to work on non-gencgc platforms
because arch_get_bad_addr explicity returns 0 if the fault occurs at
the pc. I don't know why it does this as it prevents the lazy function
guard page from showing up as the fault address. Could someone with
sufficient hysterical perspective please illuminate the matter? I
believe this affects Solaris/SPARC as well.
Merry New Year,