--- Christopher Faylor <cgf@...> wrote: > On Thu, Mar 21, 2002 at
06:36:33PM +1100, Danny Smith wrote:
> >I just stumbled across this is gcc 3.1 changelog:
> >2002-02-05 Alexandre Oliva <aoliva@...>
> > * target.h (struct gcc_target): Added ms_bitfield_layout_p.
> > * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New. Added to...
> > (TARGET_INITIALIZER): this.
> > * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
> > (BITFIELD_NBYTES_LIMITED): Markup fix.
> > * tree.h (default_ms_bitfield_layout_p): Declare.
> > (record_layout_info): Added prev_field.
> > * tree.c (default_ms_bitfield_layout_p): New fn.
> > * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
> > PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
> > * stor-layout.c: Include target.h.
> > (start_record_layout): Initialize prev_field.
> > (place_field): Handle MS bit-field layout, and disregard
> > EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
> > PCC_BITFIELD_TYPE_MATTERS in this case. Update prev_field.
> > * Makefile.in (stor-layout.o): Adjust dependencies.
> >Essentially, it provides a hook to do what Donn Terry's -fnative-struct
> >patch did. Has anyone tested this yet on cygwin or mingw? AFAICT, the
> >only target to use a non-default version of this hook is sh (see
> Does this mean that the layout defaults to MS automatically?
No, the default target callback, default_ms_bitfield_layout_p() returns
false, which means don't use ms rules. What we need to do is define a new
function native_ms_bitfield_layout_p that returns true whenever a target
switch is set and define:
#define TARGET_MS_BITFIELD_LAYOUT_P native_ms_bitfield_layout_p
I think this has to go in i386.c where the target hook struct gcc_target
targetm is initialised.
One problem with target switches is that were running out of masks.
Strange that this got into gcc as part of of a large new-port patch, after
Donn's patch languished for so long.
> FWIW, I'm using a recent compiler from sourceware and it builds cygwin
> just fine.
Great. I've had problems recently (since about 15 Mar) with duplicate
.globl labels in some of my dllimport testcases. I'm in middle of
http://movies.yahoo.com.au - Yahoo! Movies
- Vote for your nominees in our online Oscars pool.