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/

Reply via email to