delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2000/07/21/00:55:41

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: <3977D84A.8E7F97A7@ece.gatech.edu>
Date: Fri, 21 Jul 2000 00:57:46 -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>, cygwin AT sources DOT redhat DOT com
Subject: Re: binutils prerelease available for testing (feedback needed)
References: <20000720094222 DOT 78726 DOT qmail AT hotmail DOT com> <39771232 DOT 7951D490 AT ece DOT gatech DOT edu> <3977D109 DOT 3BE17529 AT ece DOT gatech DOT edu>

Okay, it's confirmed -- I've just built cvs 20000721 + Mark E's patch.
Same behavior as before, no worse (no better).

--Chuck

P.S. 

CASE 1:  static link, 'USE_GLOBAL_ARRAYS'
nm pngtest-stat.exe | grep png_libpng_ver

0082f044 D _png_libpng_ver

executable works fine.

CASE 2:  dynamic link (direct to dll, using virtual import lib)
'USE_GLOBAL_ARRAYS'
nm pngtest.exe | grep png_libpng_ver

0080627c I __imp__png_libpng_ver
00803630 T _png_libpng_ver

executable works fine.

CASE 3:  dynamic link (using .dll.a import lib) 'USE_GLOBAL_ARRAYS'
nm pngtest.exe | grep png_libpng_ver

0080620c I __imp__png_libpng_ver
<<<< NO  T _png_libpng_ver >>>>>

executable stackdumps.

CASE 4 - 6 omitted.




Charles Wilson wrote:
> 
> I've tried building binutils in three ways:
> 
>   cvs 20000718
>   cvs 20000718 with the gas/config/obj-coff.c patch reverted
>   cvs 20000721 (after DJ reverted the gas/config.obj-coff.c patch in
> CVS)
> 
> I will try using the patch posted to the cygwin list by Mark E. on
> 2000-7-20 at 19:54 EDT.
> 
> In all three tested cases, I get the same behavior with libpng, pngtest,
> *with png_libpng_ver exported as DATA*.
> 
> --------------------------------
> 
> CASE 1: 'USE_GLOBAL_ARRAYS' #define'd -- this forces access to
> 'png_libpng_ver' to directly refer to a character array, rather than
> being #defined into an access_function: 'png_get_header_ver()'
> 
> I can link statically. Executable works fine.
> 
> CASE 2: 'USE_GLOBAL_ARRAYS' #define'd (dll exports png_libpng_ver as a
> DATA item)
> I can link directly to the dll (that is, remove the import lib and the
> static lib from the search path, *forcing* ld to link with the dll using
> a virtual, in-memory, generate-on-the-fly import lib. Executable works
> fine.
> 
> 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.
> 
> CASE 4: 'NO_GLOBAL_ARRAYS' #define'd (causes: #define png_libpng_ver
> png_get_header_ver(); png_libpng_ver DOES NOT APPEAR anywhere in the
> dll, importlib, static lib, or executable.
> 
> I can link statically. Executable works fine.
> 
> CASE 5: 'NO_GLOBAL_ARRAYS' #define'd. dll contains NO DATA items.
> I can link directly to the dll. Executable works fine.
> 
> CASE 6: 'NO_GLOBAL_ARRAYS' #define'd.
> I can link using the import lib libpng.dll.a. Executable works fine.
> 
> ----------------------------------
> 
> Danny, when you ran your tests, did your DLL export any DATA items?
> 
> The problem seems to be that the combination of: 'link using an import
> lib' + 'DATA items exported by dll' doesn't work. None of the proposed
> fixes helps this problem. (Haven't tested Mark E.'s patch yet)
> 
> --Chuck
> 
> Charles Wilson wrote:
> >
> > I'll check to see if this eliminates my problems, later tonight.
> >
> > --Chuck
> >
> > Danny Smith wrote:
> > >
> > > Hi
> > > You may be ahead of me on this but...
> > > I have experienced similar problems as report by Eric Fifer and Charles
> > > Wilson using binutils-000718, with access violations linking against C
> > > dlls with data exports or with C++ dlls.
> > >
> > > But, rebuilding binutils-000718 after reverting the changes made to
> > > gas/config/obj_coff.c
> > > (http://sources.redhat.com/ml/binutils/2000-07/msg00226.html)  back to
> > > binutils-000717 version, I can successfully build and link against dlls,
> > > using either dllwrap or gcc -shared.  This works also with -mno-cygwin.
> > > I have tested linking against implib as well as directly aginst dll
> > > without implib.  Both work, for C and C++, and dll data is exported
> > > correctly.   Also with standalone MingW.
> > >
> > > Hope this helps.
> > >
> > > Regards
> > >
> > > --
> > > Want to unsubscribe from this list?
> > > Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com
> >
> > --
> > Want to unsubscribe from this list?
> > Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com
> 
> --
> Want to unsubscribe from this list?
> Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com

--
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