Bug in gcc and/or binutils?

Gerrit P. Haase gerrit@familiehaase.de
Thu Sep 15 20:23:00 GMT 2005


Peter Ekberg wrote:

> Hi!
> 
> I have been looking at a failure in the testsuite in
> libtool-cvs which I have reduced to the following
> script. I have included the approximate output from
> any program execed by it in comments along with
> comments as to what is going wrong.
> 
> $ gcc --version | head -1
> gcc (GCC) 3.4.4 (cygming special) (gdc 0.12, using dmd 0.125)
> $ ld --version | head -1
> GNU ld version 2.16.91 20050610
> 
> Etc etc yada yada updated the Cygwin installation the
> other day...
> 
> This limitation is perhaps already known?

Not that I'm aware of.  I try to avoid using .def files anyway.  But I
can confirm that I get the same results.  I suspect some change in
binutils, at least also dlltool fails to create a proper import library
when this .def file is used, just change the script like this to see:

  run gcc -shared -o a.dll a.o
  run dlltool --as=as --dllname a.dll --def a.def --output-lib a.bad.lib

instead of:

  run gcc -shared a.def a.o -o a.dll -Wl,--out-implib,a.bad.lib


However DATA handling was changed in gcc too.

To avoid these kind of problems you must define whether you're exporting 
DATA or not, then it will work:

------------a.def---------------
EXPORTS
     v7 @1 DATA
------------a.def---------------

The old impgen tool included with libtool fails to proper declare
whether some symbol is DATA or not.  So IMO it is a bug in libtool.

At first I thought it might be a problem with the D compiler frontend
included with gcc because .d may trigger some special logic in gcc,
however, trying the same with dlltool shows that this may not the reason
for this issue.

Thank you very much for this detailed analysis, I'll try to investigate
further, because some of the Gnome base packages use .def files too,
maybe this is the reason why I cannot get the Gnome desktop up and
running with the latest releases.  However, I see no apps crashing
(besides Mozilla).


Gerrit
-- 
=^..^=

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list