delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/1997/08/01/06:52:46

From: giac AT dalim DOT de ("Philippe GIACINTI")
Subject: Re: helpful hints to build dlls in Win32 using cygwin (gnu)
1 Aug 1997 06:52:46 -0700 :
Approved: cygnus DOT gnu-win32 AT cygnus DOT com
Distribution: cygnus
Message-ID: <9708011319.ZM28568.cygnus.gnu-win32@pion.kehl.dalim.de>
References: <33E0F327 DOT DF8B81B3 AT Eng DOT Sun DOT COM>
<199708010456 DOT OAA10715 AT mundook DOT cs DOT mu DOT OZ DOT AU>
Mime-Version: 1.0
In-Reply-To: Fergus Henderson <fjh@cs.mu.OZ.AU>
"Re: helpful hints to build dlls in Win32 using cygwin (gnu)" (Aug 1, 2:56pm)
X-Face: ^cJc2\tiS@#Ja AT 7laz+N]T)kL{-Kay)Oz"?}p[wuY#}}dO"enP!QVO{,}&4P2V[hEfJD]9&
E1ou~|tY/|9d&7c,7yf>7n: Zj8FD(LtPXWHzy^OJIDi/~O~R]3x/5}"7P;|,*%f:3Z!>h8Ff/&)g?/
}$RXQ
X-Mailer: Z-Mail (3.2.3 08feb96 MediaMail)
Original-To: gnu-win32 AT cygnus DOT com
Original-Sender: owner-gnu-win32 AT cygnus DOT com

Fergus Henderson writes:

>Padmakar Vishnubhatt <padmakar AT eng DOT sun DOT com> writes:
>
>>I did exactly as u recommended in your hints - and yet I get the
>>following error when I run the linker (ld).  Am I missing something in
>>the cygwin distribution?
>>
>>/gnuwin32/b18/H-i386-cygwin32/i386-cygwin32/lib/libcygwin.a(libccrt0.o)(.text+0x
>>8a):libccrt0.cc: undefined reference to `GetModuleHandleA AT 4'
>
>Your problem is due to `_impure_ptr'.  (By the way, to debug these
>sorts of problems, use the `-Map' and `--cref' options to `ld'.)
>libccrt0.o should not be linked in to DLLs at all.
>The reason that it does get linked in is because it defines `_impure_ptr',
>which is referenced by your code (implicitly, e.g. because stdout
>is #defined as `_impure_ptr._stdout'), and which is
>not defined anywhere else.
>
>You need to provide a definition of `_impure_ptr'.
>You also need to initialize it (otherwise references to stdout
>etc. in your DLL will be bogus).
>


The problem of definition and initialization of _impure_ptr is solved in my
previous patch.
If you use this patch you must link your dll with libccrt0.o and then you have
to add -lkernel32 to your link line ...

regards.

-- 

 ==========================================================================
|                         Philippe GIACINTI                                |
|                                                                          |
| DALiM GmbH R&D                                email:  giac AT dalim DOT de      |
| Daimler Strasse 2,                            tel:    +49.7851.9196-28   |
| D-77694 Kehl-Sundheim Germany                 fax:    +49.7851.73576	   |
|                                                                          |
 ==========================================================================
-
For help on using this list (especially unsubscribing), 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