pike.git / src / dynamic_load.c

version» Context lines:

pike.git/src/dynamic_load.c:34: Inside #if undefined(RTLD_NOW)
   error("Bad argument 1 to load_module()\n");   #ifndef RTLD_NOW   #define RTLD_NOW 0   #endif    module=dlopen(sp[-args].u.string->str, RTLD_NOW);    pop_stack();       if(module)    {    struct module *tmp; -  void *init, *init2, *exit; -  init=dlsym(module, "init_module_efuns"); -  init2=dlsym(module, "init_module_programs"); -  exit=dlsym(module, "exit_module"); +  fun init, init2, exit;    -  +  init=(fun)dlsym(module, "init_module_efuns"); +  init2=(fun)dlsym(module, "init_module_programs"); +  exit=(fun)dlsym(module, "exit_module"); +     if(!init || !init2 || !exit)    {    char *foo, buf1[1024], buf2[1024];    foo=STRRCHR(sp[-args].u.string->str,'/');    if(!foo) foo=sp[-args].u.string->str;    foo++;    if(strlen(foo) < 1000)    {    strcpy(buf1, foo);    foo=buf1;       while((*foo <= 'a' && *foo >= 'z' ) || (*foo <= 'A' && *foo >= 'Z' ))    foo++;       *foo=0;       strcpy(buf2,"init_");    strcat(buf2,buf1);    strcat(buf2,"_efuns"); -  init=dlsym(module, buf2); +  init=(fun)dlsym(module, buf2);       strcpy(buf2,"init_");    strcat(buf2,buf1);    strcat(buf2,"_programs"); -  init2=dlsym(module, buf2); +  init2=(fun)dlsym(module, buf2);       strcpy(buf2,"exit_");    strcat(buf2,buf1); -  exit=dlsym(module, buf2); +  exit=(fun)dlsym(module, buf2);    }    }       if(!init || !init2 || !exit)    error("Failed to initialize module.\n");       new_module=ALLOC_STRUCT(module_list);    new_module->next=dynamic_module_list;    dynamic_module_list=new_module;    new_module->module=module;