GCC-3 additions

Danny Smith danny_r_smith_2001@yahoo.co.nz
Sat Oct 13 21:32:00 GMT 2001

 --- Christopher Faylor <cgf@redhat.com> wrote: > On Sun, Oct 14, 2001 at
12:53:28PM +1000, Danny Smith wrote:
> >1) How important is Donn Terry's -fnative-struct feature.  Merging his
> >patchset from 2.95 into 3.0 branch is easy.  Merging into 3.1 takes a
> bit
> >more work, with change to table-driven attributes, but getting there. 
> I've been using -fnative-struct for all of my cygwin DLL builds
> recently.  Anecdotal evidence (from Earnie, maybe?) indicates that it
> causes a noticeable speedup but I haven't really noticed anything
> myself.

Nor have I.  It only effects structs with multiple bitfields, though, and
only in some cases.

> >2) How important is fastcall calling convention to cygwin apps.  I have
> >been working with Eric Kohl on a patchset that he is keen to get into
> mingw
> >binaries. ReactOS project needs them for building MS-compat device
> drivers.
> > They involve changes in binutils (as, dlltool, ld) as well as gcc. 
> These
> >are still WIP
> I'd like to have fastcall conventions.  I think it is necessary if we
> want
> gcc to be a replacement for MSVC.
 I'll need to think about that.  Do I really want that?

> Out of curiousity, how does fastcall differ from attribute ((regparm
> (n)))?

Like stdcall, callee pops the stacks. In addition fastcall allocates the
first two DWORD (SImode) or  smaller arguments to ECX and EDX.

MS fastcall symbols have decoration similar to stdcall but with leading @ 
eg @foo@nn/_imp_@foo@nn (note no underscore between _imp_ and @)

> Are there any other patches that need to be added to 3.1 to make it a
> good Windows compiler?  I know that the mingw/cygwin gcc 2.95.3 has a
> lot of Mumit Khan additions.  Are these patches either unneeded or
> unnecessary for 3.1?

Mumit's C++ "class __declspec(dll[impex]port)foo" patches don't work as
intended anymore.  
The bug has been reported here:

I am still not familiar enough with all the TREE business to even attempt
to fix this. Mumit has advised me to seek out a C++ guru.

The patches to use MS rule to override dllimport with dllexport when
conflict are still needed. 


http://briefcase.yahoo.com.au - Yahoo! Briefcase
- Manage your files online.

More information about the Cygwin-apps mailing list