This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]