Mailing-List: contact cygwin-apps-help AT cygwin DOT com; run by ezmlm Sender: cygwin-apps-owner AT cygwin DOT com List-Subscribe: List-Archive: List-Post: List-Help: , Mail-Followup-To: cygwin-apps AT cygwin DOT com Delivered-To: mailing list cygwin-apps AT cygwin DOT com Message-ID: <20020321185114.33672.qmail@web14501.mail.yahoo.com> Date: Fri, 22 Mar 2002 05:51:14 +1100 (EST) From: =?iso-8859-1?q?Danny=20Smith?= Subject: Re: [MinGW-dvlpr] Re: -fnative-structure revisited. To: cygwin-apps AT cygwin DOT com, mingw-dvlpr In-Reply-To: <20020321162649.GJ8437@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit --- Christopher Faylor 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 > > > > * 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 > >config/sh/sh.c) > > 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: #undef TARGET_MS_BITFIELD_LAYOUT_P #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 bootstrap now. Danny http://movies.yahoo.com.au - Yahoo! Movies - Vote for your nominees in our online Oscars pool.