Changeset 1900 in Sophya for trunk/SophyaLib/SysTools/pdlmgr.cc
- Timestamp:
- Feb 15, 2002, 6:35:01 PM (24 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaLib/SysTools/pdlmgr.cc
r1797 r1900 15 15 static const char* sofext = ".so"; 16 16 static const char* sofext_HPUX = ".sl"; 17 static const char* sofext_Darwin = ".bundle"; 17 // static const char* sofext_Darwin = ".dylib"; pas necessaire - Reza 02/2002 18 18 19 19 // Variables et methodes static … … 172 172 cmd = "ld -b -o " + fnameso + " " + fnameobj + " -lm -lc"; 173 173 #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"; 175 175 #else 176 176 cmd = "ld -o " + fnameso + " " + fnameobj + " -lm -lc"; … … 203 203 #ifdef HPUX 204 204 soname += sofext_HPUX; 205 #elif defined(Darwin)206 soname += sofext_Darwin;207 205 #else 208 206 soname += sofext; … … 230 228 else fnameso = soname; 231 229 copy = cp; 230 fnameso = soname; 232 231 soName = fnameso; 233 232 … … 236 235 cerr << "PDynLinkMgr::PDynLinkMgr() Not yet available on HP-UX " << endl; 237 236 return; 238 #elif defined(Darwin)239 int rc = NSCreateObjectFileImageFromFile(fnameso.c_str(), &shfim);240 if (rc != NSObjectFileImageSuccess) {241 cerr << "PDynLinkMgr::PDynLinkMgr(): Error opening SO " << fnameso242 << " (" << soname << ")" << endl;243 cerr << "Loader Error (dlerror()) :" << rc << endl;244 return;245 }246 shmod = NSLinkModule(shfim, fnameso.c_str(), 0);247 237 #else 248 238 dlhandle = dlopen(fnameso.c_str(), RTLD_NOW); … … 265 255 cerr << "PDynLinkMgr::~PDynLinkMgr() Not yet available on HP-UX " << endl; 266 256 return; 267 #elif defined(Darwin)268 NSUnLinkModule(shmod, 0);269 NSDestroyObjectFileImage(shfim);270 257 #else 271 258 if (dlhandle) dlclose(dlhandle); dlhandle = NULL; … … 286 273 cerr << "PDynLinkMgr::GetFunction() Not yet available on HP-UX " << endl; 287 274 return 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) 277 string funame = "_" + funcname; 278 #else 279 string & funame = funcname; 280 #endif 293 281 if (dlhandle != NULL) 294 f = (DlFunction)dlsym(dlhandle, fun cname.c_str());282 f = (DlFunction)dlsym(dlhandle, funame.c_str()); 295 283 if (f == NULL) cerr << "PDynLinkMgr::GetFunction(): Error linking " << funcname << endl; 296 284 return(f);
Note:
See TracChangeset
for help on using the changeset viewer.