delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/1997/03/13/11:54:02

From: sos AT prospect DOT com DOT ru (Sergey Okhapkin)
Subject: RE: Can't Reference Stderr from a DLL
13 Mar 1997 11:54:02 -0800 :
Approved: cygnus DOT gnu-win32 AT cygnus DOT com
Distribution: cygnus
Message-ID: <01BC2FA2.414464E0.cygnus.gnu-win32@gater.krystalbank.msk.ru>
Original-To: "gnu-win32 AT cygnus DOT com" <gnu-win32 AT cygnus DOT com>,
"'John Cerney'"
<j-cerney1 AT ti DOT com>
Encoding: 31 TEXT
Original-Sender: owner-gnu-win32 AT cygnus DOT com

John Cerney wrote:
> I've run into problem trying to build a dynamic lib version of 
perl5.003_25.
>
> Looking at the cygwin.dll source code, it appears that stderr is 
translated to
> _impure_ptr->stderr by the defines inside of the <stdio.h> include. 
_impure_ptr
> is defined in libccrt0.cc inside of cygwin.dll, which also references 
main().
> Does the linker try to resolve all references in an object file, even if 
you
> just refer to one variable that is defined in it?
>
> I have tried building the DLL using the --noinhibit-exec linker option. 
The dll
> is built in this case, but the main.exe executable crashes with a seg 
fault.
>

This is due to _impure_ptr in a main program and in DLL are _different_ 
variables! And _impure_ptr in a DLL is not initialised to point to 
reent_data structure in a main program. I have the same troubles with X 
libraries builded as DLL. I already wrote mr. Noer about this bug, no 
answer for a now...

--
Sergey Okhapkin
Moscow, Russia
Looking for a job.


-
For help on using this list, send a message to
"gnu-win32-request AT cygnus DOT com" with one line of text: "help".

- Raw text -


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