Changeset 1795 in Sophya
- Timestamp:
- Nov 27, 2001, 3:45:55 PM (24 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaLib/SysTools/pdlmgr.cc
r1783 r1795 4 4 // 5 5 #include <machdefs.h> 6 #ifndef OS_MACOSX7 // EA : gerer dylib macosx un jour...8 6 9 7 #include "pdlmgr.h" … … 17 15 static const char* sofext = ".so"; 18 16 static const char* sofext_HPUX = ".sl"; 17 static const char* sofext_Darwin = ".bundle"; 19 18 20 19 // Variables et methodes static … … 171 170 #elif defined(HPUX) 172 171 cmd = "ld -b -o " + fnameso + " " + fnameobj + " -lm -lc"; 172 #elif defined(Darwin) 173 cmd = "ld -bundle -o " + fnameso + " " + fnameobj + " -lm -lc"; 173 174 #else 174 175 cmd = "ld -o " + fnameso + " " + fnameobj + " -lm -lc"; … … 193 194 PDynLinkMgr::PDynLinkMgr(string& soname, bool cp) 194 195 { 196 #ifndef Darwin 195 197 dlhandle = NULL; 198 #endif 196 199 soName = ""; 197 200 … … 199 202 #ifdef HPUX 200 203 soname += sofext_HPUX; 204 #elif defined(Darwin) 205 soname += sofext_Darwin; 201 206 #else 202 207 soname += sofext; … … 209 214 #ifndef HPUX 210 215 sprintf(buff,"pdlmgr%d%s", numSO,sofext); 216 #elif defined(Darwin) 217 sprintf(buff,"pdlmgr%d%s", numSO,sofext_Darwin); 211 218 #else 212 219 sprintf(buff,"pdlmgr%d%s", numSO,sofext_HPUX); … … 228 235 cerr << "PDynLinkMgr::PDynLinkMgr() Not yet available on HP-UX " << endl; 229 236 return; 237 #elif defined(Darwin) 238 int rc = NSCreateObjectFileImageFromFile(fnameso.c_str(), &shfim); 239 if (rc != NSObjectFileImageSuccess) { 240 cerr << "PDynLinkMgr::PDynLinkMgr(): Error opening SO " << fnameso 241 << " (" << soname << ")" << endl; 242 cerr << "Loader Error (dlerror()) :" << rc << endl; 243 return; 244 } 245 shmod = NSLinkModule(shfim, fnameso.c_str(), 0); 230 246 #else 231 247 dlhandle = dlopen(fnameso.c_str(), RTLD_NOW); … … 248 264 cerr << "PDynLinkMgr::~PDynLinkMgr() Not yet available on HP-UX " << endl; 249 265 return; 266 #elif defined(Darwin) 267 NSUnLinkModule(shmod, 0); 268 NSDestroyObjectFileImage(shfim); 250 269 #else 251 270 if (dlhandle) dlclose(dlhandle); dlhandle = NULL; … … 266 285 cerr << "PDynLinkMgr::GetFunction() Not yet available on HP-UX " << endl; 267 286 return f; 287 #elif defined(Darwin) 288 void* sym = NSLookupSymbolInModule(shmod,funcname.c_str()); 289 f = (DlFunction) NSAddressOfSymbol(sym); 290 return f; 268 291 #else 269 292 if (dlhandle != NULL) … … 274 297 } 275 298 276 #endif 299
Note:
See TracChangeset
for help on using the changeset viewer.