Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , 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 X-Mailer: Mozilla 4.73 [en] (Windows NT 5.0; U) X-Accept-Language: en MIME-Version: 1.0 To: Danny Smith 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> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Danny Smith wrote: > > >From: Charles Wilson > >To: Danny Smith , 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