delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2006/08/18/11:19:17

X-Spam-Check-By: sourceware.org
X-Virus-Status: clean(F-Secure/virusgw_smtp/220/frontmail1)
Date: Sat, 19 Aug 2006 00:18:39 +0900
Message-ID: <ulkpm138w.wl%atara-y@mx.scn.tv>
From: Yasutaka Atarashi <atara-y AT mx DOT scn DOT tv>
To: cygwin AT cygwin DOT com
Subject: No exported functions in libltdl3 (1.5.22-1) DLL
User-Agent: Wanderlust/2.12.2 (99 Luftballons) SEMI/1.14.6 (Maruoka) LIMIT/1.14.9 (Domyoji) APEL/10.6 Emacs/21.4 (i386-mingw-nt5.1.2600) MULE/5.0 (=?ISO-2022-JP?B?GyRCOC1MWhsoQg==?=) Meadow/2.10 (Asagao)
MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka")
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

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/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019