[cfe-dev] MinGW problem with GSL

Eric Christopher echristo at apple.com
Thu Jul 7 10:06:36 PDT 2011


>> 
>> 
>> a) try passing -no-integrated-as to see if it's a problem with passing down arguments
> 
> Same problem. I have also verified all the commands being run against
> a matching GCC install.

Good to know.

> 
>> b) try to get a testcase of the failing instructions
> 
> Heh, well, yeah. Euhm... My assembly isn't that... good, and that's
> being optimistic. As in, I know *nothing* about it, except that it
> exists. So here I go:
> 
> The bits of assembly causing the problem are these:
> 
> .Ltmp224:
> 	.loc	4 129 5
> 	movsd	%xmm6, -616(%rbp)
> 	fldl	-616(%rbp)
> 	fstpt	-772(%rbp)
> 	fld	%ss
> 	#APP
> 	fabs;
> 	#NO_APP
> 	fstpl	-624(%rbp)
> 	movsd	.LCPI3_10(%rip), %xmm0
> ...
> .Ltmp521:
> 	fstpt	-656(%rbp)
> 	fld	%ss
> 	#APP
> 	fabs;
> 	#NO_APP
> 
> I can't find these or even similar bits in GCC's output, which
> probably isn't surprising.
> 
> The source file this comes from is pretty big, with a lot of GSL
> specific functionality being used (kind of expected). I do know GCC
> does not have a "fld" instruction anywhere in its version of the
> assembler output.
> 
> Would this have anything to do with the <ieeefp.h> header? This is
> used when Clang is used, but a mingw-w64 (which provides the header)
> dev told me it includes ansidecl.h which is a GCC internal header. It
> defines (among a *lot* of other things) some va_args things, but
> there's no error when clang parses this file, so it probably is not
> causing the issue. Plus, the only place where it's being used is GSL's
> sys/infnan.c (grep -r , which couldn't possibly be included in the
> file causing the error.
> 
> I also tried a i686-w64-mingw32 built Clang with matching mingw-w64
> CRT and GCC. It hits the same problem.
> 
> Any tips on what simple testcase couldd produce an fld instruction?
> GCC doesn't in this case, which only adds to the oddity.

Not sure that's really important at the moment, it might be nice to get
you to file a bug report with a preprocessed source file testcase
and the command line that'll get this to show.

Thanks!

-eric



More information about the cfe-dev mailing list