From: "Andrew Cottrell" To: "'Charles Sandmann'" Cc: Subject: RE: libm build problem Date: Sun, 20 Jul 2003 16:08:13 +1000 Message-ID: <000b01c34e85$50f00530$0101a8c0@acp42g> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook, Build 10.0.4510 In-Reply-To: <10307191935.AA16637@clio.rice.edu> Importance: Normal X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 Reply-To: djgpp-workers AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp-workers AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk > > If the typedef is included in ieee.h if you change the ieee.h to > > always define it then does it work? If so then looks like > one of the > > #ifndef's = are a problem. > > I removed the ifdef's so it is always included and it still > fails to compile. > > I preprocessed the file, and the problem is that float z; is a > declaration, and it's being done AFTER an assignment. So all > the files doing this need to be changed so they are legal C > so they will compile. Could you send the intermediate files directly to me via email so I can check out the differences. The wf_acos.i output I got by using -save-temps for the fragment of code that I expected to have the problem is as follows:- # 22 "wf_acos.c" 2 float acosf(x) float x; { _float_long_union ux; ux.f = x; float z; z = __ieee754_acosf(x); if(__fdlib_version == __fdlibm_ieee || (((*(long *)&(ux.l) & 0x7f800000L)==0x7f800000L) && ((*(long *)&(ux.l) & 0x007fffffL)!=0000000000L))) return z; if(fabsf(x)>(float)1.0) { return (float)__kernel_standard((double)x,(double)x,101); } else return z; } Thanks, Andrew