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/