pike.git / lib / master.pike.in

version» Context lines:

pike.git/lib/master.pike.in:1:   // -*- Pike -*-   //   // Master Control Program for Pike.   //   // This file is part of Pike. For copyright information see COPYRIGHT.   // Pike is distributed under GPL, LGPL and MPL. See the file COPYING   // for more information.   // - // $Id: master.pike.in,v 1.336 2004/03/15 13:04:55 mast Exp $ + // $Id: master.pike.in,v 1.337 2004/03/22 17:42:06 mast Exp $      #pike __REAL_VERSION__   //#pragma strict_types      // Some programs destroys character pairs beginning with the currency   // symbol when running in chinese locale.   #if "ยค/" != "\244/"   #error "master.pike.in is corrupted."   #endif   
pike.git/lib/master.pike.in:813:    {    DEC_RESOLV_MSG_DEPTH();    resolv_debug ("low_findprog %s: compilation failed\n", fname);    objects[ret] = no_value;    ret=programs[fname]=0; // Negative cache.    throw(e);    }    DEC_RESOLV_MSG_DEPTH();    resolv_debug ("low_findprog %s: compilation ok\n", fname);    break; +    #if constant(load_module)    case ".so":    if (fname == "") { -  werror( "low_findprog(\"%s\", \"%s\") => load_module(\"\")\n" +  werror( "low_findprog(%O, %O) => load_module(\"\")\n"    "%s\n", pname, ext, describe_backtrace(backtrace()) );    }       if (array|object err = catch (ret = load_module(fakeroot(fname)))) {    DEC_RESOLV_MSG_DEPTH();    resolv_debug ("low_findprog %s: failed to load binary\n", fname);    objects[ret] = no_value;    ret=programs[fname]=0; // Negative cache. -  +  if (objectp (err) && err->is_dlopen_error) +  // Do not treat errors from dlopen(3) as exceptions since in +  // a dist we can have .so files that are dynamically linked +  // against libraries that don't exist on the system, and in +  // that case we should just treat the module as nonexisting. +  // +  // What we really want is to do this only for errors that +  // are due to nonexisting files, but the error reporting +  // from dlerror(3) doesn't allow us to tell those from other +  // errors. +  call_compile_warning (handler, fname, +  "Failed to load library: %s\n", err->__dlerror); +  else    compile_cb_rethrow (err);    } -  +  else    resolv_debug ("low_findprog %s: loaded binary\n", fname);   #endif /* load_module */    }       AUTORELOAD_FINISH(ret,programs,fname);       resolv_debug("low_findprog %s: returning %O\n", fname, ret);       return programs[fname]=ret;    }