Ignore:
Timestamp:
Apr 9, 2009, 1:35:20 AM (10 years ago)
Author:
gb
Message:

pmcl-kernel.c: don't define objc_personality_v0, since in the Wacky World
Of Mach-O this can have the effect of shadowing the real ObjC runtime symbol.

x86-spentry64.s: in ffcall_return_registers: after saving return registers
relative to %csave0, restore them from there (not from %csave3). Most
callers don't care (will just look at the register buffer that csave0
pointed to), but if we're returning/raising an ObjC exception we want to get
it from the right place.

In the ObjC exception gunk, reference the new 'lisp_objc_personality' via
a 64-bit absolute address. This seems to be OK with the Leopard linker;
we'll see about other versions.

objc-support.lisp: in SETUP-OBJC-EXCEPTION-GLOBALS, try to ensure that
this only happens once per session (since we're using a kludge to
detect whether or not indirection is necessary.)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/lisp-kernel/pmcl-kernel.c

    r11908 r11913  
    14961496#ifdef DARWIN
    14971497#if WORD_SIZE==64
    1498 void *__objc_personality_v0 = NULL;
     1498void *lisp_objc_personality = NULL;
    14991499#endif
    15001500#endif
     
    17661766#ifdef DARWIN
    17671767#if WORD_SIZE==64
    1768   lisp_global(OBJC_2_PERSONALITY) = (LispObj) &__objc_personality_v0;
     1768  lisp_global(OBJC_2_PERSONALITY) = (LispObj) &lisp_objc_personality;
    17691769#endif
    17701770#endif
Note: See TracChangeset for help on using the changeset viewer.