delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2000/07/21/13:12:28

Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT sources DOT redhat DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT sources DOT redhat DOT com>
List-Help: <mailto:cygwin-help AT sources DOT redhat DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner AT sources DOT redhat DOT com
Delivered-To: mailing list cygwin AT sources DOT redhat DOT com
Message-ID: <3978840D.7740F581@ece.gatech.edu>
Date: Fri, 21 Jul 2000 13:10:37 -0400
From: Charles Wilson <cwilson AT ece DOT gatech DOT edu>
X-Mailer: Mozilla 4.73 [en] (Windows NT 5.0; U)
X-Accept-Language: en
MIME-Version: 1.0
To: Danny Smith <danny_r_smith AT hotmail DOT com>
CC: cygwin AT sources DOT redhat DOT com
Subject: Re: binutils prerelease available for testing (feedback needed)
References: <20000721062628 DOT 85462 DOT qmail AT hotmail DOT com>

Danny Smith wrote:
> 
> >From: Charles Wilson <cwilson AT ece DOT gatech DOT edu>
> >To: Danny Smith <danny_r_smith AT hotmail DOT com>, cygwin AT sources DOT redhat DOT com
> >Subject: Re: binutils prerelease available for testing (feedback needed)
> >Date: Fri, 21 Jul 2000 00:57:46 -0400
> >
> >Okay, it's confirmed -- I've just built cvs 20000721 + Mark E's patch.
> >Same behavior as before, no worse (no better).
> >
> >--Chuck
> > > CASE 3: 'USE_GLOBAL_ARRAYS' #define'd (dll exports png_libpng_ver as a
> > > DATA item)
> > > I can link using the import lib. Executable stackdumps.
> > >
> > > Danny, when you ran your tests, did your DLL export any DATA items?
> > >
> Yes, all my test cases (except Fortran) exported DATA.  The C++ code
> exported classes and instances of these class. Some of the classes had
> static data members that were exported. Dlls were built using
> __declspec(dllexport) in code.    All imports were marked in client code
> using __declspec(dllimport) attribute.
> 

!!!!! these are the correct rules. I was following them as well. I'm
flabbergasted.

Danny -- can you do me a favor? Build three versions of an executable,
linking to the static lib, directly to the dll (verify using 'ld
--verbose' that your build is NOT finding the dll or static lib or
hunting in some unexpected directory), and using the import library.

Then, pick a 'DATA' symbol in the dll, and do:

nm prog_stat.exe | grep 'my_symbol'
nm prog_dll.exe | grep 'my_symbol'
nm prog_imp.exe | grep 'my_symbol'

I believe my problem is that my 'prog_imp.exe' contains only a 'I
__imp__my_symbol' and no 'T _my_symbol', whereas my prog_dll.exe
contains both. I'd like to know what your prog_imp.exe contains...

Thanks,
Chuck

Note: to get the 'correct' ld command line, I've used 'gcc --verbose' as
my initial link command, then used the collect2.exe line that gcc
reported as my 'real' link command.

--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com

- Raw text -


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