diff options
author | Yaakov Selkowitz <yselkowi@redhat.com> | 2012-01-24 10:29:01 +0400 |
---|---|---|
committer | Yaakov Selkowitz <yselkowi@redhat.com> | 2012-01-24 10:29:01 +0400 |
commit | abd9714a7b233a8f163d57223719ee882bcb2213 (patch) | |
tree | 6e6b9128d7799f2a760a97360517072868350171 /winsup/utils/ldd.cc | |
parent | f171a1e0a63bfd88367cfa5e97d265c981473667 (diff) |
* ldd.cc (start_process): Handle .oct and .so as DLLs.
Diffstat (limited to 'winsup/utils/ldd.cc')
-rw-r--r-- | winsup/utils/ldd.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/winsup/utils/ldd.cc b/winsup/utils/ldd.cc index 6cefeb8af..fa771b288 100644 --- a/winsup/utils/ldd.cc +++ b/winsup/utils/ldd.cc @@ -189,7 +189,11 @@ start_process (const wchar_t *fn, bool& isdll) PROCESS_INFORMATION pi; si.cb = sizeof (si); wchar_t *cmd; - if (wcslen (fn) < 4 || wcscasecmp (wcschr (fn, L'\0') - 4, L".dll") != 0) + /* OCaml natdynlink plugins (.cmxs) cannot be handled by ldd because they + can only be loaded by flexdll_dlopen() */ + if (wcslen (fn) < 4 || (wcscasecmp (wcschr (fn, L'\0') - 4, L".dll") != 0 + && wcscasecmp (wcschr (fn, L'\0') - 4, L".oct") != 0 + && wcscasecmp (wcschr (fn, L'\0') - 3, L".so") != 0)) { cmd = wcsdup (fn); isdll = false; |