This is the mail archive of the cygwin-apps@cygwin.com 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]

Re: Waiting for xfree86? [Was: guile-1.6.4-1]


On Tue, Jul 22, 2003 at 12:25:51PM -0500, Brian Ford wrote:
> I compile the program stuff.exe that depends upon the non-rebuilt dll
> foo.dll.  No interfaces between stuff.exe and foo.dll were changed in
> 1.5.0, but foo.dll calls lseek.
> 
> Now, when lseek in foo.dll is resolved at link time with the 1.5.0
> cygwin1.dll, lseek resolves to lseek64.  But foo.dll wanted plain old
> lseek.
> 
> Do I have this right, or am I still seriously confused?

Confused, I guess.  You're mixing link time with load time.  Link
time is when gcc (actually ld) creates the dll.  Load time is when
the dll is loaded into memory on demand of an application linked
against symbols in that dll.

The dependency on lseek has been resolved at link time, the time when
foo.dll has been created.  Therefore, if foo.dll expects lseek, it gets
lseek on load time.

When rebuilding foo.dll, the dependency to lseek is converted to a
dependency on lseek64 in the created dll already at link time. 
`nm foo.dll' will show you the symbol lseek64.  When foo.dll is loaded
into memory it expects to get lseek64 now.

Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Developer                                mailto:cygwin@cygwin.com
Red Hat, Inc.


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