------- Additional Comments From pinskia at gcc dot gnu dot org 2005-09-16 04:24 ------- I am going to implement the next runtime behavior. The following code works and is just like the code in your testcase too but works with both runtimes:) : #include <objc/objc-api.h> #include <dlfcn.h> #include <objc/Object.h>
#ifdef __NEXT_RUNTIME__ #define objc_get_class objc_getClass #endif int main() { Class foo1; Class foo2; dlopen("./1.so", RTLD_NOW); foo1 = objc_get_class ("Foo"); [foo1 class]; dlopen("./2.so", RTLD_NOW); foo2 = objc_get_class ("Foo"); // [foo1 class]; [foo2 class]; return 0; } --- Also if [foo1 class] is uncommented, then it works also. if you comment the first [foo1 class] and uncomment the second one, it aborts with: objc: thread is already initializing this class! Trace/BPT trap If I do [foo2 class]; and then [foo1 class];, it works also. I really think all should work just fine. -- What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|unassigned at gcc dot gnu |pinskia at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18764