diff options
author | bjeram <bogdan.jeram+github@gmail.com> | 2014-12-12 13:24:41 +0100 |
---|---|---|
committer | bjeram <bogdan.jeram+github@gmail.com> | 2014-12-12 13:24:41 +0100 |
commit | 716885f2a7a247b6be56e0b50035fbeb8bab5ef7 (patch) | |
tree | cd0abcf77ba09572a15091906d295c6353b55b1b /ACE | |
parent | 2481a43058a2a3d514de2c7d96edefbaa9acf8b0 (diff) | |
download | ATCD-716885f2a7a247b6be56e0b50035fbeb8bab5ef7.tar.gz |
Update OS_NS_dlfcn.inl
fixed ACE_OS::dlsym function that it works for VxWorks - older than 6.9.
Diffstat (limited to 'ACE')
-rw-r--r-- | ACE/ace/OS_NS_dlfcn.inl | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/ACE/ace/OS_NS_dlfcn.inl b/ACE/ace/OS_NS_dlfcn.inl index 4e22ac47293..e10e5ca97fd 100644 --- a/ACE/ace/OS_NS_dlfcn.inl +++ b/ACE/ace/OS_NS_dlfcn.inl @@ -256,6 +256,14 @@ ACE_OS::dlsym (ACE_SHLIB_HANDLE handle, // which resolves the most recently loaded symbols, which resolve // mostly what we want.. ACE_UNUSED_ARG (handle); + #if _WRS_VXWORKS_MAJOR < 6 || (_WRS_VXWORKS_MAJOR == 6 && _WRS_VXWORKS_MINOR < 9) + SYM_TYPE symtype; + char *value = 0; + STATUS status; + ACE_OSCALL (::symFindByName(sysSymTbl, symbolname, &value, &symtype), int, -1, status); + + return status == OK ? reinterpret_cast <void*>(value) : 0; +#else STATUS status; SYMBOL_DESC symbolDesc; /* symFind() descriptor */ @@ -266,6 +274,7 @@ ACE_OS::dlsym (ACE_SHLIB_HANDLE handle, ACE_OSCALL (::symFind(sysSymTbl, &symbolDesc), int, -1, status); return status == OK ? reinterpret_cast <void*>(symbolDesc.value) : 0; +#endif # else |