This is the mail archive of the
cygwin
mailing list for the Cygwin project.
No exported functions in libltdl3 (1.5.22-1) DLL
- From: Yasutaka Atarashi <atara-y at mx dot scn dot tv>
- To: cygwin at cygwin dot com
- Date: Sat, 19 Aug 2006 00:18:39 +0900
- Subject: No exported functions in libltdl3 (1.5.22-1) DLL
Hi,
I have some doubt regarding libltdl3 DLL (cygltdl-3.dll) of the current release (1.5.22-1).
cygltdl-3.dll in the previous release (1.5.20-2) has 34 exported entries. On the other hand, cygltdl-3.dll in the current release has only 3 exported entries (lt_dlfree, lt_dlmalloc, and lt_dlrealloc). They are global data (pointer to function). No functions are exported. I think this is a problem.
I guess that the reason why exported entries are limited is inconsistent manner to handle DLL_EXPORT macro between libltdl/ltdl.h and libltdl/ltdl.c. ltdl.h checks DLL_EXPORT and __WINDOWS__ macros, and __declspec(dllexport) is used (for functions) if both of them are defined. On the other hand, ltdl.c checks DLL_EXPORT macro only and __declspec(dllexport) is used (for data) if it is defined. For cygwin environment, __WINDOWS__ macro is not defined. Therefore, only data are declared with __declspec(dllexport) and exported.
I confirmed that both of data and functions were exported if both of them were declared with __declspec(dllexport) by removing check of __WINDOWS__ macro from ltdl.h, or if no entities were declared with __declspec(dllexport) by adding check of __WINDOWS__ macro to ltdl.c.
I think this is a problem and it should be fixed. Are there misunderstandings?
Regards,
Yasutaka ATARASHI
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/