Changeset 1900 in Sophya for trunk/SophyaLib/SysTools/pdlmgr.cc


Ignore:
Timestamp:
Feb 15, 2002, 6:35:01 PM (24 years ago)
Author:
ansari
Message:

Portage sous Mac OS X - Reza 15/02/2002

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaLib/SysTools/pdlmgr.cc

    r1797 r1900  
    1515static const char* sofext = ".so";
    1616static const char* sofext_HPUX = ".sl";
    17 static const char* sofext_Darwin = ".bundle";
     17// static const char* sofext_Darwin = ".dylib"; pas necessaire - Reza 02/2002
    1818
    1919// Variables et methodes static
     
    172172  cmd = "ld -b -o " + fnameso + " " + fnameobj + " -lm -lc";
    173173#elif defined(Darwin)
    174   cmd = "ld -bundle -o " + fnameso + " " + fnameobj + " -lm  -lcc_dynamic -lSystem -lbundle1.o";
     174  cmd = "cc -bundle -flat_namespace -o " + fnameso + " " + fnameobj + " -lm  -lcc_dynamic -lSystem -lbundle1.o";
    175175#else
    176176  cmd = "ld -o " + fnameso + " " + fnameobj + " -lm -lc";
     
    203203#ifdef HPUX
    204204  soname += sofext_HPUX;
    205 #elif defined(Darwin)
    206  soname += sofext_Darwin;
    207205#else
    208206  soname += sofext;
     
    230228else fnameso = soname;
    231229copy = cp;
     230 fnameso = soname;
    232231soName = fnameso;
    233232
     
    236235cerr << "PDynLinkMgr::PDynLinkMgr() Not yet available on HP-UX " << endl;
    237236return;
    238 #elif defined(Darwin)
    239  int rc = NSCreateObjectFileImageFromFile(fnameso.c_str(), &shfim);
    240  if (rc != NSObjectFileImageSuccess) {
    241    cerr << "PDynLinkMgr::PDynLinkMgr(): Error opening SO " << fnameso
    242         << " (" << soname << ")" << endl;
    243    cerr << "Loader Error (dlerror()) :" << rc << endl;
    244    return;
    245  }
    246  shmod = NSLinkModule(shfim, fnameso.c_str(), 0);
    247237#else
    248238dlhandle =  dlopen(fnameso.c_str(), RTLD_NOW);
     
    265255cerr << "PDynLinkMgr::~PDynLinkMgr() Not yet available on HP-UX " << endl;
    266256return;
    267 #elif defined(Darwin)
    268  NSUnLinkModule(shmod, 0);
    269  NSDestroyObjectFileImage(shfim);
    270257#else
    271258if (dlhandle) dlclose(dlhandle);    dlhandle = NULL;
     
    286273cerr << "PDynLinkMgr::GetFunction() Not yet available on HP-UX " << endl;
    287274return f;
    288 #elif defined(Darwin)
    289  void* sym = NSLookupSymbolInModule(shmod,funcname.c_str());
    290  f = (DlFunction) NSAddressOfSymbol(sym);
    291  return f;
    292 #else
     275#else
     276#if defined(Darwin)
     277string funame = "_" + funcname;
     278#else
     279string & funame = funcname;
     280#endif
    293281if (dlhandle != NULL) 
    294   f = (DlFunction)dlsym(dlhandle, funcname.c_str());
     282  f = (DlFunction)dlsym(dlhandle, funame.c_str());
    295283if (f == NULL) cerr << "PDynLinkMgr::GetFunction(): Error linking " << funcname << endl;
    296284return(f);
Note: See TracChangeset for help on using the changeset viewer.