summaryrefslogtreecommitdiff
path: root/ACE/ace/OS_NS_dlfcn.inl
diff options
context:
space:
mode:
authorbjeram <bogdan.jeram+github@gmail.com>2014-12-12 13:24:41 +0100
committerbjeram <bogdan.jeram+github@gmail.com>2014-12-12 13:24:41 +0100
commit716885f2a7a247b6be56e0b50035fbeb8bab5ef7 (patch)
treecd0abcf77ba09572a15091906d295c6353b55b1b /ACE/ace/OS_NS_dlfcn.inl
parent2481a43058a2a3d514de2c7d96edefbaa9acf8b0 (diff)
downloadATCD-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/ace/OS_NS_dlfcn.inl')
-rw-r--r--ACE/ace/OS_NS_dlfcn.inl9
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