Subject: Re: Help: linking a dll which uses runtime symbol on cygwin
From: Robert Collins <[email-masked]>
To: Chia-liang Kao <[email-masked]>
Cc: [email-masked]
Date: 02 Sep 2001 17:32:23 +1000

On 30 Aug 2001 08:44:55 +0800, Chia-liang Kao wrote:
> Hi,
> 
> I'm porting a program developed on FreeBSD to cygwin and encounter
> some problems with linking.
> 
> The problem is mainly about the perl extension. The main program
> exports some symbol for the plugins written in perl to use (via XS),
> and invokes the plugins by some function in libperl5_6_1.dll.
> 
> Sorry that I'm very unfamiliar with win32. I asked several people and
> digged the mailing list. I somewhat know about the implib/declspec,
> which seems to exist for some historical issues. I also played with
> the --auto-import patched ld but in vain.
> 
> Anyway, to simplify and show the scenario clearly:
> 
> * A (main program)
>   + links with B (libperl)
> 
> * C (the plugin glueware)
>   + uses some symbols from both A and B
>   + is loaded by B while A is running
> 
> on FreeBSD, I just cc -share C.o -o C.so, the unresolved symbols won't
> make any trouble.
> 
> So how do I get the C.dll on cygwin?

Create an export library for A, and ensure that it exports the symbols.

PE - the win32 loader format - doesn't automatically export all the
symbols, and unresolved symbols at link time are not allowed.

Rob

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/